Merge remote-tracking branch 'origin/master'

This commit is contained in:
sxu 2024-11-15 11:12:06 +08:00
commit 99a9422d8e
3 changed files with 45 additions and 33 deletions

View File

@ -158,10 +158,10 @@ public interface BackApplyInfoMapper {
/**
* 查询详情
* @param id
* @param backApplyInfo
* @return
*/
List<BackApplyInfo> selectBackDetails(Long id);
List<BackApplyInfo> selectBackDetails(BackApplyInfo backApplyInfo);
/**
* 更新任务状态

View File

@ -556,7 +556,7 @@ public class BackApplyInfoServiceImpl implements IBackApplyInfoService {
@Transactional(rollbackFor = Exception.class)
public AjaxResult submitBackApply(BackApplyInfo backApplyInfo) {
// 根据传入的id查询退料申请信息
List<BackApplyInfo> applyInfoList = backApplyInfoMapper.selectBackDetails(backApplyInfo.getId());
List<BackApplyInfo> applyInfoList = backApplyInfoMapper.selectBackDetails(backApplyInfo);
// 设置更新信息
backApplyInfo.setUpdateBy(SecurityUtils.getUsername());
backApplyInfo.setUpdateTime(DateUtils.getNowDate());
@ -564,22 +564,29 @@ public class BackApplyInfoServiceImpl implements IBackApplyInfoService {
// 更新任务表及退料申请表状态
int result = updateTaskAndBackInfo(backApplyInfo);
if (result > 0 && CollectionUtils.isNotEmpty(applyInfoList)) {
for (BackApplyInfo applyInfo : applyInfoList) {
// 获取applyInfoList的typeId并生成集合
List<String> typeIdList = applyInfoList.stream()
.map(BackApplyInfo::getTypeId).distinct()
.collect(Collectors.toList());
// 插入任务表
Long newTaskId = insertTt(SecurityUtils.getUsername());
// 插入协议任务表
result += insertTta(newTaskId, applyInfoList);
for (String typeId : typeIdList) {
// 查询待维修的机具设备
backApplyInfo.setTypeId(applyInfo.getTypeId());
backApplyInfo.setTypeId(typeId);
List<BackApplyInfo> wxList = backApplyInfoMapper.getWxList(backApplyInfo);
if (CollectionUtils.isNotEmpty(wxList)) {
// 插入任务表
Long newTaskId = insertTt(SecurityUtils.getUsername());
// 插入协议任务表
result += insertTta(newTaskId, wxList);
// 插入维修记录表
result += insertRad(newTaskId, wxList);
// 更新结算表
int res = updateSlt4Bean(backApplyInfo, applyInfo);
// 检查机具是否领料
if (res == 0) {
throw new RuntimeException("该机具未被领料使用");
List<BackApplyInfo> allList = backApplyInfoMapper.selectBackDetails(backApplyInfo);
if (CollectionUtils.isNotEmpty(allList)) {
int res = updateSlt4Bean(backApplyInfo, allList);
// 检查机具是否领料
if (res == 0) {
throw new RuntimeException("该机具未被领料使用");
}
}
// 完成退料部分更新 back_check_details
finishBackCheckDetails(backApplyInfo);
@ -620,30 +627,32 @@ public class BackApplyInfoServiceImpl implements IBackApplyInfoService {
/**
* 更新结算表
* @param record
* @param bean
* @param allList
* @return
*/
private int updateSlt4Bean(BackApplyInfo record, BackApplyInfo bean) {
List<SltAgreementInfo> infoList = backApplyInfoMapper.getStlInfo(bean);
if (infoList.size() > 0) {
Integer backNum = bean.getBackNum();
for (SltAgreementInfo info : infoList) {
Integer num = info.getBackNum();
if (backNum.equals(num)) {
backApplyInfoMapper.updateStlInfo(info, record);
break;
} else if (backNum > num) {
backNum = backNum - num;
backApplyInfoMapper.updateStlInfo(info, record);
} else {
Integer many = num - backNum;
backApplyInfoMapper.updateStlInfoTwo(info, record, backNum);
backApplyInfoMapper.insStlInfoTwo(info, many);
break;
private int updateSlt4Bean(BackApplyInfo record, List<BackApplyInfo> allList) {
for (BackApplyInfo bean : allList) {
List<SltAgreementInfo> infoList = backApplyInfoMapper.getStlInfo(bean);
if (infoList.size() > 0) {
Integer backNum = bean.getBackNum();
for (SltAgreementInfo info : infoList) {
Integer num = info.getBackNum();
if (backNum.equals(num)) {
backApplyInfoMapper.updateStlInfo(info, record);
break;
} else if (backNum > num) {
backNum = backNum - num;
backApplyInfoMapper.updateStlInfo(info, record);
} else {
Integer many = num - backNum;
backApplyInfoMapper.updateStlInfoTwo(info, record, backNum);
backApplyInfoMapper.insStlInfoTwo(info, many);
break;
}
}
} else {
return 0;
}
} else {
return 0;
}
return 1;
}

View File

@ -213,6 +213,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
LEFT JOIN tm_task_agreement tta ON tta.task_id = bai.task_id
WHERE
bcd.parent_id = #{id} and (bcd.is_finished is null or bcd.is_finished != 1)
<if test="typeId != '' and typeId != null">
and bcd.type_id = #{typeId}
</if>
GROUP By bcd.type_id,bcd.ma_id
</select>