diff --git a/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/app/mapper/LeaseApplyDetailsMapper.java b/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/app/mapper/LeaseApplyDetailsMapper.java index e046398..7e923a6 100644 --- a/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/app/mapper/LeaseApplyDetailsMapper.java +++ b/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/app/mapper/LeaseApplyDetailsMapper.java @@ -3,6 +3,7 @@ package com.bonus.sgzb.app.mapper; import com.bonus.sgzb.app.domain.LeaseApplyDetails; import com.bonus.sgzb.app.domain.LeaseOutDetailRecord; import com.bonus.sgzb.app.domain.TmTask; +import com.bonus.sgzb.base.api.domain.BackApplyInfo; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -54,4 +55,6 @@ public interface LeaseApplyDetailsMapper { TmTask getOrderHead(String parentId); List getOrderBody(@Param("parentId") String parentId,@Param("typeId") String typeId); + + List getLeaseApplyDetailsTypeCount(BackApplyInfo bean); } \ No newline at end of file diff --git a/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/material/mapper/BackApplyMapper.java b/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/material/mapper/BackApplyMapper.java index ef9b4ec..8aa20d6 100644 --- a/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/material/mapper/BackApplyMapper.java +++ b/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/material/mapper/BackApplyMapper.java @@ -40,7 +40,7 @@ public interface BackApplyMapper { */ String selectTaskNumByMonth(@Param("date") Date date, @Param("taskType") Integer taskType); - List getBackApplyDetailsTypeCount(); + List getBackApplyDetailsTypeCount(BackApplyInfo bean); /** * 增加 diff --git a/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/material/service/impl/BackApplyServiceImpl.java b/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/material/service/impl/BackApplyServiceImpl.java index a59aed2..34ff101 100644 --- a/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/material/service/impl/BackApplyServiceImpl.java +++ b/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/material/service/impl/BackApplyServiceImpl.java @@ -1,6 +1,7 @@ package com.bonus.sgzb.material.service.impl; import cn.hutool.core.collection.CollUtil; +import com.bonus.sgzb.app.mapper.LeaseApplyDetailsMapper; import com.bonus.sgzb.base.api.domain.BackApplyInfo; import com.bonus.sgzb.base.api.domain.MachinePart; import com.bonus.sgzb.common.core.utils.DateUtils; @@ -19,7 +20,9 @@ import org.springframework.stereotype.Service; import java.text.SimpleDateFormat; import java.util.*; +import java.util.stream.Collector; import java.util.stream.Collectors; +import java.util.stream.Stream; /** * @author hay @@ -31,6 +34,9 @@ public class BackApplyServiceImpl implements BackApplyService { @Autowired private BackApplyMapper backApplyMapper; + @Autowired + private LeaseApplyDetailsMapper leaseApplyDetailsMapper; + @Autowired private TaskMapper tmTaskMapper; @@ -89,15 +95,23 @@ public class BackApplyServiceImpl implements BackApplyService { public boolean isBackApplyNumberCorrect(BackApplyInfo bean) { boolean isCorrect = true; //默认合法 // 查看出库数据 - List backTypeList = backApplyMapper.getBackApplyDetailsTypeCount(); - + List backTypes = backApplyMapper.getBackApplyDetailsTypeCount(bean); // 查看退料已审核数据 - - + List leaseTypes = leaseApplyDetailsMapper.getLeaseApplyDetailsTypeCount(bean); // 比较本次退料数据,是否大于前两者的差额,大于就报错 - List backApplyDetails = bean.getBackApplyDetails(); - - + List thisBackTypes = bean.getBackApplyDetails(); + // 判断3个list是否具备合法性 + Map oldBackMap = backTypes.stream().collect(Collectors.groupingBy(BackApplyInfo::getTypeId, + Collectors.summingInt(BackApplyInfo::getBackNum))); + Map leaseMap = leaseTypes.stream().collect(Collectors.groupingBy(LeaseApplyDetails::getTypeId, + Collectors.summingInt(LeaseApplyDetails::getAlNum))); + Map thisBackMap = thisBackTypes.stream().collect(Collectors.groupingBy(BackApplyInfo::getTypeId, + Collectors.summingInt(BackApplyInfo::getNum))); + for (Integer key : leaseMap.keySet()) { + if (oldBackMap.get(String.valueOf(key)) + thisBackMap.get(String.valueOf(key)) > leaseMap.get(key)) { + return false; + } + } return isCorrect; } diff --git a/sgzb-modules/sgzb-material/src/main/resources/mapper/app/LeaseApplyDetailsMapper.xml b/sgzb-modules/sgzb-material/src/main/resources/mapper/app/LeaseApplyDetailsMapper.xml index fd6ad29..4efbb2a 100644 --- a/sgzb-modules/sgzb-material/src/main/resources/mapper/app/LeaseApplyDetailsMapper.xml +++ b/sgzb-modules/sgzb-material/src/main/resources/mapper/app/LeaseApplyDetailsMapper.xml @@ -585,4 +585,14 @@ + + \ No newline at end of file