diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupamountspecifications/HandlingGroupAmountSpecificationsController.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupamountspecifications/HandlingGroupAmountSpecificationsController.java index 3776454d..983b8154 100644 --- a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupamountspecifications/HandlingGroupAmountSpecificationsController.java +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupamountspecifications/HandlingGroupAmountSpecificationsController.java @@ -101,17 +101,17 @@ public class HandlingGroupAmountSpecificationsController { PageResult result = BeanUtils.toBean(pageResult, HandlingGroupAmountSpecificationsRespVO.class); // 计算合计 - 先根据工厂+搬运组+日期进行分组 Map> map = result.getList().stream().collect(Collectors.groupingBy(a -> a.getFactoryId() + "_" + a.getHandlingGroupId() + "_" + a.getDateStr())); - List ids = result.getList().stream().map(HandlingGroupAmountSpecificationsRespVO::getId).collect(Collectors.toList()); + List ids = result.getList().stream().map(HandlingGroupAmountSpecificationsRespVO::getHandlingGroupId).distinct().collect(Collectors.toList()); Map> handlingGroupUserAmountMap = new HashMap<>(); if (CollUtil.isNotEmpty(ids)) { - List list = handlingGroupUserAmountService.getByHandlingGroupAmountSpecificationsId(ids); - handlingGroupUserAmountMap = list.stream().collect(Collectors.groupingBy(HandlingGroupUserAmountDO::getHandlingGroupAmountSpecificationsId)); + List list = handlingGroupUserAmountService.getByHandlingGroupIds(ids); + handlingGroupUserAmountMap = list.stream().collect(Collectors.groupingBy(HandlingGroupUserAmountDO::getHandlingGroupId)); } for (HandlingGroupAmountSpecificationsRespVO handlingGroupAmountSpecificationsDO : result.getList()) { String key = handlingGroupAmountSpecificationsDO.getFactoryId() + "_" + handlingGroupAmountSpecificationsDO.getHandlingGroupId() + "_" + handlingGroupAmountSpecificationsDO.getDateStr(); handlingGroupAmountSpecificationsDO.setTotalAmount(getSumValue(map.get(key), HandlingGroupAmountSpecificationsRespVO::getAmount, BigDecimal::add)); handlingGroupAmountSpecificationsDO.setTotalNum(getSumValue(map.get(key), HandlingGroupAmountSpecificationsRespVO::getTotalCount, Integer::sum)); - List items = handlingGroupUserAmountMap.get(handlingGroupAmountSpecificationsDO.getId()); + List items = handlingGroupUserAmountMap.get(handlingGroupAmountSpecificationsDO.getHandlingGroupId()); if (CollUtil.isNotEmpty(items)) { List handlingGroupUserAmountItemVOS = BeanUtils.toBean(items, HandlingGroupUserAmountItemVO.class); handlingGroupAmountSpecificationsDO.setHandlingGroupUserAmountItemVOS(handlingGroupUserAmountItemVOS); diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupamountspecifications/dto/HandlingGroupAmountSpecificationsTotalNumDTO.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupamountspecifications/dto/HandlingGroupAmountSpecificationsTotalNumDTO.java index 7f7c76a6..bc7a5ff4 100644 --- a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupamountspecifications/dto/HandlingGroupAmountSpecificationsTotalNumDTO.java +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupamountspecifications/dto/HandlingGroupAmountSpecificationsTotalNumDTO.java @@ -6,6 +6,7 @@ import lombok.ToString; import org.springframework.format.annotation.DateTimeFormat; import java.time.LocalDateTime; +import java.util.List; import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; @@ -23,4 +24,6 @@ public class HandlingGroupAmountSpecificationsTotalNumDTO { @Schema(description = "创建时间") @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDateTime[] createTime; + @Schema(description = "工厂ids") + private List factoryIds; } diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupamountspecifications/vo/HandlingGroupAmountSpecificationsPageReqVO.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupamountspecifications/vo/HandlingGroupAmountSpecificationsPageReqVO.java index f3590058..bd566508 100644 --- a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupamountspecifications/vo/HandlingGroupAmountSpecificationsPageReqVO.java +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/handlinggroupamountspecifications/vo/HandlingGroupAmountSpecificationsPageReqVO.java @@ -10,6 +10,7 @@ import org.springframework.format.annotation.DateTimeFormat; import java.math.BigDecimal; import java.time.LocalDateTime; +import java.util.List; import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; @@ -47,4 +48,7 @@ public class HandlingGroupAmountSpecificationsPageReqVO extends PageParam { @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDateTime[] createTime; + @Schema(description = "工厂ids", example = "23178") + private List factoryIds; + } diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/dal/mysql/handlinggroupuseramount/HandlingGroupUserAmountMapper.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/dal/mysql/handlinggroupuseramount/HandlingGroupUserAmountMapper.java index 5155c2c3..0b822e02 100644 --- a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/dal/mysql/handlinggroupuseramount/HandlingGroupUserAmountMapper.java +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/dal/mysql/handlinggroupuseramount/HandlingGroupUserAmountMapper.java @@ -72,6 +72,8 @@ public interface HandlingGroupUserAmountMapper extends BaseMapperX getByHandlingGroupAmountSpecificationsId(@Param("handlingGroupAmountSpecificationsIds") List handlingGroupAmountSpecificationsIds); + List getByHandlingGroupIds(@Param("handlingGroupIds") List handlingGroupIds); + List selectAmountSum(@Param("factoryId") Long factoryId, @Param("month") String month); Long selectIsExists(@Param("factoryId") Long factoryId, @Param("month") String month); diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/handlinggroupamountspecifications/HandlingGroupAmountSpecificationsServiceImpl.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/handlinggroupamountspecifications/HandlingGroupAmountSpecificationsServiceImpl.java index 46d93a9c..6802424e 100644 --- a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/handlinggroupamountspecifications/HandlingGroupAmountSpecificationsServiceImpl.java +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/handlinggroupamountspecifications/HandlingGroupAmountSpecificationsServiceImpl.java @@ -1,13 +1,16 @@ package cn.iocoder.yudao.module.smartfactory.service.handlinggroupamountspecifications; +import cn.hutool.core.collection.CollUtil; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.mybatis.core.util.MyBatisUtils; import cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroup.vo.HandlingGroupListVO; import cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroupamountspecifications.dto.HandlingGroupAmountSpecificationsTotalNumDTO; import cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroupamountspecifications.vo.*; import cn.iocoder.yudao.module.smartfactory.dal.dataobject.handlinggroupamountspecifications.HandlingGroupAmountSpecificationsDO; +import cn.iocoder.yudao.module.smartfactory.dal.dataobject.handlinggroupuseramount.HandlingGroupUserAmountDO; import cn.iocoder.yudao.module.smartfactory.dal.dataobject.handlingspecifications.HandlingSpecificationsDO; import cn.iocoder.yudao.module.smartfactory.dal.mysql.handlinggroupamountspecifications.HandlingGroupAmountSpecificationsMapper; +import cn.iocoder.yudao.module.smartfactory.service.handlinggroupuseramount.HandlingGroupUserAmountService; import cn.iocoder.yudao.module.smartfactory.service.handlingspecifications.HandlingSpecificationsService; import cn.iocoder.yudao.module.system.api.dept.DeptApi; import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO; @@ -40,6 +43,8 @@ public class HandlingGroupAmountSpecificationsServiceImpl implements HandlingGro private HandlingGroupAmountSpecificationsMapper handlingGroupAmountSpecificationsMapper; @Resource private HandlingSpecificationsService handlingSpecificationsService; + @Resource + private HandlingGroupUserAmountService handlingGroupUserAmountService; @Resource private AdminUserApi userApi; @@ -63,12 +68,10 @@ public class HandlingGroupAmountSpecificationsServiceImpl implements HandlingGro @Override public PageResult getHandlingGroupAmountSpecificationsPage(HandlingGroupAmountSpecificationsPageReqVO pageReqVO) { // 判断当前登录人是否属于工厂主管 - AdminUserRespDTO userRespDTO = userApi.getUser(getLoginUserId()).getCheckedData(); - DeptRespDTO deptRespDTO = deptApi.getDept(userRespDTO.getDeptId()).getCheckedData(); - if (deptRespDTO.getFactoryId() != null) { - pageReqVO.setFactoryId(deptRespDTO.getFactoryId()); + List deptRespDTOS = deptApi.getDeptByLeaderId(getLoginUserId()).getCheckedData(); + if (CollUtil.isNotEmpty(deptRespDTOS)) { + pageReqVO.setFactoryIds(deptRespDTOS.stream().map(DeptRespDTO::getFactoryId).distinct().collect(Collectors.toList())); } - IPage pageResult = handlingGroupAmountSpecificationsMapper.getHandlingGroupAmountSpecificationsPage(MyBatisUtils.buildPage(pageReqVO), pageReqVO); return new PageResult<>(pageResult.getRecords(), pageResult.getTotal()); } @@ -152,14 +155,24 @@ public class HandlingGroupAmountSpecificationsServiceImpl implements HandlingGro @Override public void batchDelete(HandlingGroupAmountSpecificationsBatchDelVO vo) { - handlingGroupAmountSpecificationsMapper.delete(new LambdaQueryWrapper() + List list = handlingGroupAmountSpecificationsMapper.selectList(new LambdaQueryWrapper() .eq(HandlingGroupAmountSpecificationsDO::getFactoryId, vo.getFactoryId()) .eq(HandlingGroupAmountSpecificationsDO::getHandlingGroupId, vo.getHandlingGroupId()) .eq(HandlingGroupAmountSpecificationsDO::getDateStr, vo.getDateStr())); - } + List ids = list.stream().map(HandlingGroupAmountSpecificationsDO::getId).collect(Collectors.toList()); + handlingGroupAmountSpecificationsMapper.deleteBatchIds(ids); + handlingGroupUserAmountService.remove(new LambdaQueryWrapper() + .in(HandlingGroupUserAmountDO::getHandlingGroupAmountSpecificationsId, ids) + ); + } @Override public HandlingGroupAmountSpecificationsTotalNumVO getTotalNum(HandlingGroupAmountSpecificationsTotalNumDTO dto) { + // 判断当前登录人是否属于工厂主管 + List deptRespDTOS = deptApi.getDeptByLeaderId(getLoginUserId()).getCheckedData(); + if (CollUtil.isNotEmpty(deptRespDTOS)) { + dto.setFactoryIds(deptRespDTOS.stream().map(DeptRespDTO::getFactoryId).distinct().collect(Collectors.toList())); + } return handlingGroupAmountSpecificationsMapper.getTotalNum(dto); } diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/handlinggroupuseramount/HandlingGroupUserAmountService.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/handlinggroupuseramount/HandlingGroupUserAmountService.java index 7df2ab95..b2761798 100644 --- a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/handlinggroupuseramount/HandlingGroupUserAmountService.java +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/handlinggroupuseramount/HandlingGroupUserAmountService.java @@ -102,4 +102,6 @@ public interface HandlingGroupUserAmountService extends IService getByHandlingGroupIds(List handlingGroupIds); } diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/handlinggroupuseramount/HandlingGroupUserAmountServiceImpl.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/handlinggroupuseramount/HandlingGroupUserAmountServiceImpl.java index 60044ec1..ecdd6a8f 100644 --- a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/handlinggroupuseramount/HandlingGroupUserAmountServiceImpl.java +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/handlinggroupuseramount/HandlingGroupUserAmountServiceImpl.java @@ -248,4 +248,10 @@ public class HandlingGroupUserAmountServiceImpl extends ServiceImpl getByHandlingGroupIds(List handlingGroupIds) { + return handlingGroupUserAmountMapper.getByHandlingGroupIds(handlingGroupIds); + } + } diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/resources/mapper/handlinggroupamountspecifications/HandlingGroupAmountSpecificationsMapper.xml b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/resources/mapper/handlinggroupamountspecifications/HandlingGroupAmountSpecificationsMapper.xml index 686be192..2a3a3b55 100644 --- a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/resources/mapper/handlinggroupamountspecifications/HandlingGroupAmountSpecificationsMapper.xml +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/resources/mapper/handlinggroupamountspecifications/HandlingGroupAmountSpecificationsMapper.xml @@ -21,10 +21,6 @@ LEFT JOIN sf_handling_specifications AS b ON a.handling_specifications_id = b.id LEFT JOIN sf_staff AS c ON c.id = a.staff_id left join sf_handling_group as d on a.handling_group_id = d.id - - left join sf_handling_group_user_amount as e on a.id = e.handling_group_amount_specifications_id - left join sf_staff as g on g.id = e.user_id - a.deleted = 0 and b.deleted = 0 @@ -40,8 +36,20 @@ AND a.factory_id = #{vo.factoryId} + + and a.factory_id in + + #{item} + + - and g.nick_name like concat('%', #{vo.porterName}, '%') + AND EXISTS ( + select e.id from sf_handling_group_user_amount as e + left join sf_staff as g on g.id = e.user_id + where a.id = e.handling_group_amount_specifications_id + and g.nick_name like concat('%', #{vo.porterName}, '%') + and e.deleted = 0 + ) @@ -52,9 +60,6 @@ - - group by a.id - + +