This commit is contained in:
sxu 2025-01-16 20:32:43 +08:00
parent 8ebfcc580f
commit b507147335
4 changed files with 35 additions and 8 deletions

View File

@ -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<LeaseOutDetailRecord> getOrderBody(@Param("parentId") String parentId,@Param("typeId") String typeId);
List<com.bonus.sgzb.material.domain.LeaseApplyDetails> getLeaseApplyDetailsTypeCount(BackApplyInfo bean);
}

View File

@ -40,7 +40,7 @@ public interface BackApplyMapper {
*/
String selectTaskNumByMonth(@Param("date") Date date, @Param("taskType") Integer taskType);
List<BackApplyInfo> getBackApplyDetailsTypeCount();
List<BackApplyInfo> getBackApplyDetailsTypeCount(BackApplyInfo bean);
/**
* 增加

View File

@ -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<BackApplyInfo> backTypeList = backApplyMapper.getBackApplyDetailsTypeCount();
List<BackApplyInfo> backTypes = backApplyMapper.getBackApplyDetailsTypeCount(bean);
// 查看退料已审核数据
List<LeaseApplyDetails> leaseTypes = leaseApplyDetailsMapper.getLeaseApplyDetailsTypeCount(bean);
// 比较本次退料数据是否大于前两者的差额大于就报错
List<BackApplyInfo> backApplyDetails = bean.getBackApplyDetails();
List<BackApplyInfo> thisBackTypes = bean.getBackApplyDetails();
// 判断3个list是否具备合法性
Map<String, Integer> oldBackMap = backTypes.stream().collect(Collectors.groupingBy(BackApplyInfo::getTypeId,
Collectors.summingInt(BackApplyInfo::getBackNum)));
Map<Integer, Integer> leaseMap = leaseTypes.stream().collect(Collectors.groupingBy(LeaseApplyDetails::getTypeId,
Collectors.summingInt(LeaseApplyDetails::getAlNum)));
Map<String, Integer> 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;
}

View File

@ -585,4 +585,14 @@
</if>
</trim>
</insert>
<select id="getLeaseApplyDetailsTypeCount" resultType="com.bonus.sgzb.material.domain.LeaseApplyDetails">
select lad.type_id as typeId, sum(lad.al_num) as alNum
from lease_apply_details lad
LEFT join lease_apply_info lai on lai.id = lad.parennt_id
LEFT join tm_task tt on lai.task_id = tt.task_id
LEFT join tm_task_agreement tta on tta.task_id = tt.task_id
where tta.agreement_id = #{agreementId}
group by lad.type_id
</select>
</mapper>