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 f45017c3..ce47fff1 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 @@ -106,17 +106,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/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 5a2057d7..05daeccc 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,4 +72,6 @@ public interface HandlingGroupUserAmountMapper extends BaseMapperX getByHandlingGroupAmountSpecificationsId(@Param("handlingGroupAmountSpecificationsIds") List handlingGroupAmountSpecificationsIds); + + List getByHandlingGroupIds(@Param("handlingGroupIds") List handlingGroupIds); } 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 c630d8fc..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 @@ -7,8 +7,10 @@ import cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroup.vo.Ha 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; @@ -41,6 +43,8 @@ public class HandlingGroupAmountSpecificationsServiceImpl implements HandlingGro private HandlingGroupAmountSpecificationsMapper handlingGroupAmountSpecificationsMapper; @Resource private HandlingSpecificationsService handlingSpecificationsService; + @Resource + private HandlingGroupUserAmountService handlingGroupUserAmountService; @Resource private AdminUserApi userApi; @@ -64,8 +68,7 @@ public class HandlingGroupAmountSpecificationsServiceImpl implements HandlingGro @Override public PageResult getHandlingGroupAmountSpecificationsPage(HandlingGroupAmountSpecificationsPageReqVO pageReqVO) { // 判断当前登录人是否属于工厂主管 - AdminUserRespDTO userRespDTO = userApi.getUser(getLoginUserId()).getCheckedData(); - List deptRespDTOS = deptApi.getDeptByLeaderId(userRespDTO.getDeptId()).getCheckedData(); + List deptRespDTOS = deptApi.getDeptByLeaderId(getLoginUserId()).getCheckedData(); if (CollUtil.isNotEmpty(deptRespDTOS)) { pageReqVO.setFactoryIds(deptRespDTOS.stream().map(DeptRespDTO::getFactoryId).distinct().collect(Collectors.toList())); } @@ -152,17 +155,21 @@ 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) { // 判断当前登录人是否属于工厂主管 - AdminUserRespDTO userRespDTO = userApi.getUser(getLoginUserId()).getCheckedData(); - List deptRespDTOS = deptApi.getDeptByLeaderId(userRespDTO.getDeptId()).getCheckedData(); + List deptRespDTOS = deptApi.getDeptByLeaderId(getLoginUserId()).getCheckedData(); if (CollUtil.isNotEmpty(deptRespDTOS)) { dto.setFactoryIds(deptRespDTOS.stream().map(DeptRespDTO::getFactoryId).distinct().collect(Collectors.toList())); } 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 11b875ef..52d4d7da 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 @@ -95,4 +95,6 @@ public interface HandlingGroupUserAmountService extends IService getByHandlingGroupAmountSpecificationsId(List handlingGroupAmountSpecificationsIds); + + List 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 d8a81842..a1e74213 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 @@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.smartfactory.service.handlinggroupuseramount; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.date.DateUtils; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; import cn.iocoder.yudao.framework.mybatis.core.util.MyBatisUtils; import cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroupuseramount.dto.StaffWagesPageDTO; import cn.iocoder.yudao.module.smartfactory.controller.admin.handlinggroupuseramount.vo.*; @@ -80,6 +81,7 @@ 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 8f1a1df8..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 @@ -47,7 +43,13 @@ - 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 + ) @@ -58,9 +60,6 @@ - - group by a.id - +