This commit is contained in:
mashuai 2025-10-30 20:23:31 +08:00
parent bebe9ee876
commit 4ef78a3a49
6 changed files with 299 additions and 144 deletions

View File

@ -136,4 +136,13 @@ public class BackApplyDetails extends BaseEntity {
@ApiModelProperty(value = "签名类型") @ApiModelProperty(value = "签名类型")
private int signType; private int signType;
@ApiModelProperty(value = "协议id")
private Long agreementId;
// 是否存在于xmList
private Boolean isXmbUse = false;
// 是否存在于clzInfoList
private Boolean isClzUse = false;
} }

View File

@ -524,4 +524,18 @@ public interface BackApplyInfoMapper {
* @return * @return
*/ */
List<ExitPermit> getCodeList(ExitPermit bean); List<ExitPermit> getCodeList(ExitPermit bean);
/**
* 数据是否存在于项目中
* @param applyInfo
* @return
*/
List<SltAgreementInfo> getXmList(BackApplyDetails applyInfo);
/**
* 数据是否存在于材料项目中
* @param applyInfo
* @return
*/
List<SltAgreementInfo> getClzList(BackApplyDetails applyInfo);
} }

View File

@ -172,10 +172,8 @@ public class BackApplyInfoServiceImpl implements IBackApplyInfoService {
// 3. 优化只有在有编码设备时才查询类型树减少不必要的复杂查询 // 3. 优化只有在有编码设备时才查询类型树减少不必要的复杂查询
Map<Long, BigDecimal> typeNumMap = new HashMap<>(); Map<Long, BigDecimal> typeNumMap = new HashMap<>();
if (hasCodedEquipment(backApplyDetailsList)) { List<TypeTreeNode> listL4 = mapper.getUseTypeTreeL4(backApplyInfo);
List<TypeTreeNode> listL4 = mapper.getUseTypeTreeL4(backApplyInfo); typeNumMap = buildTypeNumMappingSimple(listL4);
typeNumMap = buildTypeNumMappingSimple(listL4);
}
// 4. 一次性查询所有附件信息 // 4. 一次性查询所有附件信息
Map<Long, List<BmFileInfo>> allFileInfoMap = fetchAllFileInfosOptimized(id); Map<Long, List<BmFileInfo>> allFileInfoMap = fetchAllFileInfosOptimized(id);
@ -325,10 +323,8 @@ public class BackApplyInfoServiceImpl implements IBackApplyInfoService {
// 3. 优化只有在有编码设备时才查询类型树减少不必要的复杂查询 // 3. 优化只有在有编码设备时才查询类型树减少不必要的复杂查询
Map<Long, BigDecimal> typeNumMap = new HashMap<>(); Map<Long, BigDecimal> typeNumMap = new HashMap<>();
if (hasCodedEquipment(backApplyDetailsList)) { List<TypeTreeNode> listL4 = mapper.getUseTypeTreeL4(backApplyInfo);
List<TypeTreeNode> listL4 = mapper.getUseTypeTreeL4(backApplyInfo); typeNumMap = buildTypeNumMappingSimple(listL4);
typeNumMap = buildTypeNumMappingSimple(listL4);
}
// 4. 一次性查询所有附件信息 // 4. 一次性查询所有附件信息
Map<Long, List<BmFileInfo>> allFileInfoMap = fetchAllFileInfosOptimized(id); Map<Long, List<BmFileInfo>> allFileInfoMap = fetchAllFileInfosOptimized(id);
@ -1046,21 +1042,18 @@ public class BackApplyInfoServiceImpl implements IBackApplyInfoService {
result += deleteFileInfoForDetails(backApplyDetailsList, id); result += deleteFileInfoForDetails(backApplyDetailsList, id);
// 删除编码设备附件 // 删除编码设备附件
result += deleteFileInfoForMaCodes(maCodeList, id); result += deleteFileInfoForMaCodes(maCodeList, id);
if (result > 0) { //执行新增操作
//执行新增操作 BackApplyInfo info = dto.getBackApplyInfo();
BackApplyInfo info = dto.getBackApplyInfo(); info.setUpdateTime(DateUtils.getNowDate());
info.setUpdateTime(DateUtils.getNowDate()); info.setUpdateBy(SecurityUtils.getLoginUser().getSysUser().getNickName());
info.setUpdateBy(SecurityUtils.getLoginUser().getSysUser().getNickName()); info.setCode(backApplyInfo.getCode());
info.setCode(backApplyInfo.getCode()); result += backApplyInfoMapper.updateBackApplyInfo(info);
result += backApplyInfoMapper.updateBackApplyInfo(info); // 保存退料详情
// 保存退料详情 result = saveBackApplyDetails(dto, info, result);
result = saveBackApplyDetails(dto, info, result);
return AjaxResult.success(result);
}
} catch (Exception e) { } catch (Exception e) {
throw new ServiceException("修改失败,请联系管理员"); throw new ServiceException("修改失败,请联系管理员");
} }
return AjaxResult.error(HttpCodeEnum.FAIL.getCode(), HttpCodeEnum.FAIL.getMsg()); return AjaxResult.success(HttpCodeEnum.SUCCESS);
} }
/** /**
@ -1341,13 +1334,13 @@ public class BackApplyInfoServiceImpl implements IBackApplyInfoService {
* @param allList * @param allList
* @return * @return
*/ */
private int updateSlt4BeanClz(MaterialBackApplyInfo record, List<BackApplyInfo> allList) { private int updateSlt4BeanClz(MaterialBackApplyInfo record, List<BackApplyInfo> allList, Long agreementId) {
for (BackApplyInfo bean : allList) { for (BackApplyInfo bean : allList) {
MaterialBackApplyInfo materialBackApplyInfo = new MaterialBackApplyInfo(); MaterialBackApplyInfo materialBackApplyInfo = new MaterialBackApplyInfo();
materialBackApplyInfo.setAgreementId(bean.getAgreementId()); materialBackApplyInfo.setAgreementId(agreementId);
materialBackApplyInfo.setTypeId(bean.getTypeId()); materialBackApplyInfo.setTypeId(bean.getTypeId());
materialBackApplyInfo.setMaId(bean.getMaId() != null ? bean.getMaId() : null); materialBackApplyInfo.setMaId(bean.getMaId() != null ? bean.getMaId() : null);
List<SltAgreementInfo> infoList = materialBackInfoMapper.getStlInfo(materialBackApplyInfo); List<SltAgreementInfo> infoList = materialBackInfoMapper.getClzInfo(materialBackApplyInfo);
if (infoList.size() > 0) { if (infoList.size() > 0) {
BigDecimal backNum = bean.getBackNum(); BigDecimal backNum = bean.getBackNum();
for (SltAgreementInfo info : infoList) { for (SltAgreementInfo info : infoList) {
@ -1361,12 +1354,11 @@ public class BackApplyInfoServiceImpl implements IBackApplyInfoService {
} else { } else {
BigDecimal many = num.subtract(backNum); BigDecimal many = num.subtract(backNum);
materialBackInfoMapper.updateStlInfoTwo(info, record, backNum); materialBackInfoMapper.updateStlInfoTwo(info, record, backNum);
info.setSource("2");
materialBackInfoMapper.insStlInfoTwo(info, many); materialBackInfoMapper.insStlInfoTwo(info, many);
break; break;
} }
} }
} else {
return 0;
} }
} }
return 1; return 1;
@ -2316,10 +2308,11 @@ public class BackApplyInfoServiceImpl implements IBackApplyInfoService {
} }
// 把后续流程设置为项目部的协议进行处理 // 把后续流程设置为项目部的协议进行处理
SelectDto dto = new SelectDto();
dto.setProjectId(backApplyInfo.getProId().toString()).setUnitId(Math.toIntExact(backApplyInfo.getUnitId()));
backApplyInfo.setAgreementId(leaseOutDetail.getProjectUnitAgreementId()); backApplyInfo.setAgreementId(leaseOutDetail.getProjectUnitAgreementId());
backApplyInfo.setUnitId(leaseOutDetail.getProjectUnitAgreementId()); backApplyInfo.setUnitId(leaseOutDetail.getProjectUnitAgreementId());
SelectDto dto = new SelectDto();
dto.setProId(backApplyInfo.getProId()).setUnitId(Math.toIntExact(backApplyInfo.getUnitId()));
List<AgreementVo> list = mapper.getAgreementInfoByIdBack(dto); List<AgreementVo> list = mapper.getAgreementInfoByIdBack(dto);
List<BackApplyInfo> codeList = new ArrayList<>(); List<BackApplyInfo> codeList = new ArrayList<>();
@ -2330,9 +2323,9 @@ public class BackApplyInfoServiceImpl implements IBackApplyInfoService {
for (BackApplyInfo applyInfo : applyInfoList) { for (BackApplyInfo applyInfo : applyInfoList) {
// 根据maId查询设备是否处于在用状态(需要同时查询机具和材料站) // 根据maId查询设备是否处于在用状态(需要同时查询机具和材料站)
if (applyInfo.getMaId() != null) { if (applyInfo.getMaId() != null) {
//List<SltAgreementInfo> infoList = backApplyInfoMapper.getUserList(applyInfo); List<SltAgreementInfo> infoList = backApplyInfoMapper.getUserList(applyInfo);
List<SltAgreementInfo> clzList = backApplyInfoMapper.getClzUserList(applyInfo); List<SltAgreementInfo> clzList = backApplyInfoMapper.getClzUserList(applyInfo);
if (CollectionUtils.isEmpty(clzList)) { if (CollectionUtils.isEmpty(infoList) && CollectionUtils.isEmpty(clzList)) {
codeList.add(applyInfo); codeList.add(applyInfo);
} }
} }
@ -2358,6 +2351,32 @@ public class BackApplyInfoServiceImpl implements IBackApplyInfoService {
if (CollectionUtils.isEmpty(applyDetails)) { if (CollectionUtils.isEmpty(applyDetails)) {
return AjaxResult.error("退料物资为空,无法进行提交"); return AjaxResult.error("退料物资为空,无法进行提交");
} }
for (BackApplyDetails applyDetail : applyDetails) {
// 根据项目部及材料站协议查询退料设备是否存在于其中若不存在则不用进行退料
applyDetail.setAgreementId(leaseOutDetail.getProjectUnitAgreementId());
List<SltAgreementInfo> xmList = backApplyInfoMapper.getXmList(applyDetail);
if (!CollectionUtils.isEmpty(xmList)) {
applyDetail.setIsXmbUse(true);
}
if (CollectionUtils.isNotEmpty(list)) {
applyDetail.setAgreementId(Long.valueOf(list.get(0).getAgreementId()));
List<SltAgreementInfo> clzInfoList = backApplyInfoMapper.getClzList(applyDetail);
if (!CollectionUtils.isEmpty(clzInfoList)) {
applyDetail.setIsClzUse(true);
}
}
}
// 项目部使用
boolean isXmbUse = false;
// 材料站使用
boolean isClzUse = false;
// 示例统计全局是否有至少一条数据满足xmList
isXmbUse = applyDetails.stream()
.anyMatch(BackApplyDetails::getIsXmbUse);
// 示例统计全局是否有至少一条数据满足clzInfoList
isClzUse = applyDetails.stream()
.anyMatch(BackApplyDetails::getIsClzUse);
// 设置更新信息, // 设置更新信息,
backApplyInfo.setUpdateBy(SecurityUtils.getLoginUser().getSysUser().getNickName()); backApplyInfo.setUpdateBy(SecurityUtils.getLoginUser().getSysUser().getNickName());
backApplyInfo.setUpdateTime(DateUtils.getNowDate()); backApplyInfo.setUpdateTime(DateUtils.getNowDate());
@ -2380,52 +2399,55 @@ public class BackApplyInfoServiceImpl implements IBackApplyInfoService {
result += insertTeamTta(newTaskId, leaseOutDetail.getProjectUnitAgreementId()); result += insertTeamTta(newTaskId, leaseOutDetail.getProjectUnitAgreementId());
// -----------------给材料站新建退料任务处理数据开始 ---------------- // -----------------给材料站新建退料任务处理数据开始 ----------------
MaterialBackApplyInfo materialBackApplyInfo = new MaterialBackApplyInfo(); BackApplyInfo backApplyInfo4 = new BackApplyInfo();
MaterialBackApplyInfo materialBackApplyInfo = new MaterialBackApplyInfo();
BmAgreementInfo bmAgreementInfo = new BmAgreementInfo(); BmAgreementInfo bmAgreementInfo = new BmAgreementInfo();
bmAgreementInfo.setUnitId(teamUnitId); bmAgreementInfo.setUnitId(teamUnitId);
bmAgreementInfo.setProjectId(backApplyInfo.getProId()); bmAgreementInfo.setProjectId(backApplyInfo.getProId());
BmAgreementInfo info = bmAgreementInfoMapper.queryByTeamIdAndProjectIdCl(bmAgreementInfo); BmAgreementInfo info = bmAgreementInfoMapper.queryByTeamIdAndProjectIdCl(bmAgreementInfo);
BackApplyInfo backApplyInfo4 = new BackApplyInfo(); if (isClzUse) {
int thisMonthMaxOrder = taskMapper.getMonthMaxOrderByDate(DateUtils.getCurrentYear(), DateUtils.getCurrentMonth(), TmTaskTypeEnum.TM_TASK_MATERIAL_BACK.getTaskTypeId());
int thisMonthMaxOrder = taskMapper.getMonthMaxOrderByDate(DateUtils.getCurrentYear(), DateUtils.getCurrentMonth(), TmTaskTypeEnum.TM_TASK_MATERIAL_BACK.getTaskTypeId()); String code = genderClzTaskCode(thisMonthMaxOrder);
String code = genderClzTaskCode(thisMonthMaxOrder); TmTask tmTask = new TmTask(null, TmTaskTypeEnum.TM_TASK_MATERIAL_BACK.getTaskTypeId(),
TmTask tmTask = new TmTask(null, TmTaskTypeEnum.TM_TASK_MATERIAL_BACK.getTaskTypeId(), BackTaskStatusEnum.BACK_TASK_IN_FINISHED.getStatus(), null, thisMonthMaxOrder + 1, code);
BackTaskStatusEnum.BACK_TASK_IN_FINISHED.getStatus(), null, thisMonthMaxOrder + 1, code); tmTask.setCreateTime(DateUtils.getNowDate());
tmTask.setCreateTime(DateUtils.getNowDate()); String createBy = SecurityUtils.getLoginUser().getSysUser().getNickName();
String createBy = SecurityUtils.getLoginUser().getSysUser().getNickName(); tmTask.setCreateBy(createBy);
tmTask.setCreateBy(createBy); materialBackApplyInfo.setCode(code);
materialBackApplyInfo.setCode(code); materialBackApplyInfo.setCreateBy(createBy);
materialBackApplyInfo.setCreateBy(createBy); materialBackApplyInfo.setCreateTime(DateUtils.getNowDate());
materialBackApplyInfo.setCreateTime(DateUtils.getNowDate()); // 保存退料信息到 tm_task 表中
// 保存退料信息到 tm_task 表中 result += taskMapper.insertTmTask(tmTask);
result += taskMapper.insertTmTask(tmTask); if (result > 0) {
if (result > 0) { TmTaskAgreement tmTaskAgreement = new TmTaskAgreement(tmTask.getTaskId(), info.getAgreementId());
TmTaskAgreement tmTaskAgreement = new TmTaskAgreement(tmTask.getTaskId(), info.getAgreementId()); tmTaskAgreement.setCreateTime(DateUtils.getNowDate());
tmTaskAgreement.setCreateTime(DateUtils.getNowDate()); tmTaskAgreement.setCreateBy(createBy);
tmTaskAgreement.setCreateBy(createBy); taskAgreementMapper.insertTmTaskAgreement(tmTaskAgreement);
taskAgreementMapper.insertTmTaskAgreement(tmTaskAgreement); materialBackApplyInfo.setTaskId(tmTask.getTaskId());
materialBackApplyInfo.setTaskId(tmTask.getTaskId()); materialBackApplyInfo.setBackStyle("2");
materialBackApplyInfo.setBackStyle("2"); materialBackApplyInfo.setStatus("2");
materialBackApplyInfo.setStatus("2"); BackApplyInfo backApplyInfo1 = backApplyInfoMapper.selectBackApplyInfoById(backApplyInfo.getId());
BackApplyInfo backApplyInfo1 = backApplyInfoMapper.selectBackApplyInfoById(backApplyInfo.getId()); if (backApplyInfo1 != null) {
if (backApplyInfo1 != null) { materialBackApplyInfo.setBackPerson(StringUtils.isNotBlank(backApplyInfo1.getBackPerson()) ? backApplyInfo1.getBackPerson() : "");
materialBackApplyInfo.setBackPerson(StringUtils.isNotBlank(backApplyInfo1.getBackPerson()) ? backApplyInfo1.getBackPerson() : ""); materialBackApplyInfo.setPhone(StringUtils.isNotBlank(backApplyInfo1.getPhone()) ? backApplyInfo1.getPhone() : "");
materialBackApplyInfo.setPhone(StringUtils.isNotBlank(backApplyInfo1.getPhone()) ? backApplyInfo1.getPhone() : ""); }
} result += materialBackInfoMapper.insertBackApplyInfo(materialBackApplyInfo);
result += materialBackInfoMapper.insertBackApplyInfo(materialBackApplyInfo); if (CollectionUtils.isNotEmpty(applyDetails)) {
if (CollectionUtils.isNotEmpty(applyDetails)) { for (BackApplyDetails applyInfo : applyDetails) {
for (BackApplyDetails applyInfo : applyDetails) { MaterialBackApplyDetails details = new MaterialBackApplyDetails();
MaterialBackApplyDetails details = new MaterialBackApplyDetails(); details.setCode(code);
details.setCode(code); details.setParentId(materialBackApplyInfo.getId());
details.setParentId(materialBackApplyInfo.getId()); details.setPreNum(applyInfo.getPreNum());
details.setPreNum(applyInfo.getPreNum()); details.setAuditNum(applyInfo.getPreNum());
details.setAuditNum(applyInfo.getPreNum()); details.setStatus(String.valueOf(BackTaskStatusEnum.BACK_TASK_NO_FINISHED.getStatus()));
details.setStatus(String.valueOf(BackTaskStatusEnum.BACK_TASK_NO_FINISHED.getStatus())); details.setCreateBy(createBy);
details.setCreateBy(createBy); details.setCreateTime(DateUtils.getNowDate());
details.setCreateTime(DateUtils.getNowDate()); details.setTypeId(applyInfo.getTypeId());
details.setTypeId(applyInfo.getTypeId()); // 保存退料详情
// 保存退料详情 if (applyInfo.getIsClzUse()) {
result += materialBackInfoMapper.insertBackApplyDetails(details); result += materialBackInfoMapper.insertBackApplyDetails(details);
}
}
} }
} }
} }
@ -2433,43 +2455,49 @@ public class BackApplyInfoServiceImpl implements IBackApplyInfoService {
// 材料站对分公司建立退料任务 // 材料站对分公司建立退料任务
int backMonthMaxOrder = taskMapper.getMonthMaxOrderByDate(DateUtils.getCurrentYear(), DateUtils.getCurrentMonth(), TmTaskTypeEnum.TM_TASK_BACK.getTaskTypeId()); if (isXmbUse) {
String backCode = genderTaskCode(backMonthMaxOrder); int backMonthMaxOrder = taskMapper.getMonthMaxOrderByDate(DateUtils.getCurrentYear(), DateUtils.getCurrentMonth(), TmTaskTypeEnum.TM_TASK_BACK.getTaskTypeId());
TmTask newTask = new TmTask(null, TmTaskTypeEnum.TM_TASK_BACK.getTaskTypeId(), String backCode = genderTaskCode(backMonthMaxOrder);
BackTaskStatusEnum.BACK_TASK_IN_FINISHED.getStatus(), TmTask newTask = new TmTask(null, TmTaskTypeEnum.TM_TASK_BACK.getTaskTypeId(),
null, backMonthMaxOrder + 1, backCode); BackTaskStatusEnum.BACK_TASK_IN_FINISHED.getStatus(),
newTask.setCreateTime(DateUtils.getNowDate()); null, backMonthMaxOrder + 1, backCode);
newTask.setCreateBy(SecurityUtils.getLoginUser().getSysUser().getNickName()); newTask.setCreateTime(DateUtils.getNowDate());
backApplyInfo4.setCode(backCode); newTask.setCreateBy(SecurityUtils.getLoginUser().getSysUser().getNickName());
backApplyInfo4.setCreateBy(SecurityUtils.getLoginUser().getSysUser().getNickName()); backApplyInfo4.setCode(backCode);
backApplyInfo4.setCreateTime(DateUtils.getNowDate()); backApplyInfo4.setCreateBy(SecurityUtils.getLoginUser().getSysUser().getNickName());
// 保存退料信息到 tm_task 表中 backApplyInfo4.setCreateTime(DateUtils.getNowDate());
result += taskMapper.insertTmTask(newTask); // 保存退料信息到 tm_task 表中
if (result > 0) { result += taskMapper.insertTmTask(newTask);
// 根据单位和工程id查询项目部关联协议id if (result > 0) {
BackApplyInfo backApplyInfo3 = backApplyInfoMapper.selectInfo(backApplyInfo); // 根据单位和工程id查询项目部关联协议id
if (backApplyInfo3 != null) { BackApplyInfo backApplyInfo3 = backApplyInfoMapper.selectInfo(backApplyInfo);
// 给项目部处理的时候要使用挂靠的项目部协议ID if (backApplyInfo3 != null) {
TmTaskAgreement tmTaskAgreement = new TmTaskAgreement(newTask.getTaskId(), leaseOutDetail.getAgreementId()); // 给项目部处理的时候要使用挂靠的项目部协议ID
tmTaskAgreement.setCreateTime(DateUtils.getNowDate()); TmTaskAgreement tmTaskAgreement = new TmTaskAgreement(newTask.getTaskId(), leaseOutDetail.getAgreementId());
tmTaskAgreement.setCreateBy(SecurityUtils.getLoginUser().getSysUser().getNickName()); tmTaskAgreement.setCreateTime(DateUtils.getNowDate());
taskAgreementMapper.insertTmTaskAgreement(tmTaskAgreement); tmTaskAgreement.setCreateBy(SecurityUtils.getLoginUser().getSysUser().getNickName());
taskAgreementMapper.insertTmTaskAgreement(tmTaskAgreement);
}
backApplyInfo4.setTaskId(newTask.getTaskId());
BackApplyInfo backApplyInfo2 = backApplyInfoMapper.selectBackApplyInfoById(backApplyInfo.getId());
if (backApplyInfo2 != null) {
backApplyInfo4.setBackPerson(StringUtils.isNotBlank(backApplyInfo2.getBackPerson()) ? backApplyInfo2.getBackPerson() : "");
backApplyInfo4.setPhone(StringUtils.isNotBlank(backApplyInfo2.getPhone()) ? backApplyInfo2.getPhone() : "");
backApplyInfo4.setBackStyle("2");
}
result += backApplyInfoMapper.insertBackApplyInfo(backApplyInfo4);
} }
backApplyInfo4.setTaskId(newTask.getTaskId()); // 保存退料详情
BackApplyInfo backApplyInfo2 = backApplyInfoMapper.selectBackApplyInfoById(backApplyInfo.getId()); if (CollectionUtils.isNotEmpty(applyDetails)) {
if (backApplyInfo2 != null) { for (BackApplyDetails applyDetail : applyDetails) {
backApplyInfo4.setBackPerson(StringUtils.isNotBlank(backApplyInfo2.getBackPerson()) ? backApplyInfo2.getBackPerson() : ""); // 保存退料详情
backApplyInfo4.setPhone(StringUtils.isNotBlank(backApplyInfo2.getPhone()) ? backApplyInfo2.getPhone() : ""); applyDetail.setAuditNum(applyDetail.getPreNum());
backApplyInfo4.setBackStyle("2"); applyDetail.setParentId(backApplyInfo4.getId());
} applyDetail.setCode(backCode);
result += backApplyInfoMapper.insertBackApplyInfo(backApplyInfo4); if (applyDetail.getIsXmbUse()) {
} result += backApplyInfoMapper.insertBackApplyDetails(applyDetail);
// 保存退料详情 }
if (CollectionUtils.isNotEmpty(applyDetails)) { }
for (BackApplyDetails applyDetail : applyDetails) {
// 保存退料详情
applyDetail.setAuditNum(applyDetail.getPreNum());
result += backApplyInfoMapper.insertBackApplyDetails(applyDetail);
} }
} }
for (String typeId : typeIdList) { for (String typeId : typeIdList) {
@ -2483,42 +2511,48 @@ public class BackApplyInfoServiceImpl implements IBackApplyInfoService {
List<BackApplyInfo> allList = backApplyInfoMapper.selectBackDetails(backApplyInfo); List<BackApplyInfo> allList = backApplyInfoMapper.selectBackDetails(backApplyInfo);
if (CollectionUtils.isNotEmpty(allList)) { if (CollectionUtils.isNotEmpty(allList)) {
// 更新结算协议️表 // 更新结算协议️表
int res = updateBzSlt4Bean(backApplyInfo, allList); int res = updateBzSlt4Bean(backApplyInfo,backApplyInfo4, allList);
// 检查机具是否领料 // 检查机具是否领料
if (res == 0) { throw new RuntimeException("该机具未被领料使用");} if (res == 0) { throw new RuntimeException("该机具未被领料使用");}
List<BackApplyInfo> clzList = new ArrayList<>(); List<BackApplyInfo> clzList = new ArrayList<>();
List<BackApplyInfo> xmList = new ArrayList<>(); if (isXmbUse) {
for (BackApplyInfo applyInfo : allList) { for (BackApplyInfo applyInfo : allList) {
applyInfo.setAgreementId(info.getAgreementId()); BackApplyDetails backApplyDetails = new BackApplyDetails();
MaterialBackApplyDetails details = new MaterialBackApplyDetails(); backApplyDetails.setParentId(backApplyInfo4.getId());
details.setParentId(materialBackApplyInfo.getId()); backApplyDetails.setTypeId(Long.parseLong(typeId));
details.setTypeId(Long.parseLong(typeId)); backApplyDetails.setCreateBy(SecurityUtils.getLoginUser().getSysUser().getNickName());
details.setCreateBy(SecurityUtils.getLoginUser().getSysUser().getNickName()); backApplyDetails.setCreateTime(DateUtils.getNowDate());
details.setCreateTime(DateUtils.getNowDate()); backApplyDetails.setPreNum(applyInfo.getBackNum());
details.setPreNum(applyInfo.getBackNum()); backApplyDetails.setMaId(applyInfo.getMaId() != null ? applyInfo.getMaId() : null);
details.setStatus("0"); backApplyDetails.setStatus("0");
details.setMaId(applyInfo.getMaId() != null ? applyInfo.getMaId() : null); backApplyDetails.setIsFinished(1);
details.setIsFinished(1); result += backApplyInfoMapper.insertCheckDetails(backApplyDetails);
result += materialBackInfoMapper.insertCheckDetails(details); }
}
// 查询材料站同步数据 if (isClzUse) {
clzList = backApplyInfoMapper.selectClzList(details); for (BackApplyInfo applyInfo : allList) {
BackApplyDetails backApplyDetails = new BackApplyDetails(); applyInfo.setAgreementId(info.getAgreementId());
backApplyDetails.setParentId(backApplyInfo4.getId()); MaterialBackApplyDetails details = new MaterialBackApplyDetails();
backApplyDetails.setTypeId(Long.parseLong(typeId)); details.setParentId(materialBackApplyInfo.getId());
backApplyDetails.setCreateBy(SecurityUtils.getLoginUser().getSysUser().getNickName()); details.setTypeId(Long.parseLong(typeId));
backApplyDetails.setCreateTime(DateUtils.getNowDate()); details.setCreateBy(SecurityUtils.getLoginUser().getSysUser().getNickName());
backApplyDetails.setPreNum(applyInfo.getBackNum()); details.setCreateTime(DateUtils.getNowDate());
backApplyDetails.setMaId(applyInfo.getMaId() != null ? applyInfo.getMaId() : null); details.setPreNum(applyInfo.getBackNum());
backApplyDetails.setStatus("0"); details.setStatus("0");
backApplyDetails.setIsFinished(1); details.setMaId(applyInfo.getMaId() != null ? applyInfo.getMaId() : null);
result += backApplyInfoMapper.insertCheckDetails(backApplyDetails); details.setIsFinished(1);
// 查询项目部同步数据 result += materialBackInfoMapper.insertCheckDetails(details);
//xmList = backApplyInfoMapper.selectXmList(backApplyDetails); // 查询材料站同步数据
clzList = backApplyInfoMapper.selectClzList(details);
// 查询项目部同步数据
//xmList = backApplyInfoMapper.selectXmList(backApplyDetails);
}
res = updateSlt4BeanClz(materialBackApplyInfo, clzList, info.getAgreementId());
if (res == 0) {
throw new RuntimeException("同步材料站结算出错");
}
} }
res = updateSlt4BeanClz(materialBackApplyInfo, clzList);
if (res == 0) { throw new RuntimeException("同步材料站结算出错");}
/*res = updateSlt4BeanXm(backApplyInfo4, xmList); /*res = updateSlt4BeanXm(backApplyInfo4, xmList);
if (res == 0) { if (res == 0) {
throw new RuntimeException("同步项目部结算出错"); throw new RuntimeException("同步项目部结算出错");
@ -2526,6 +2560,7 @@ public class BackApplyInfoServiceImpl implements IBackApplyInfoService {
} }
// 完成退料部分更新 back_check_details // 完成退料部分更新 back_check_details
finishBackCheckDetails(backApplyInfo); finishBackCheckDetails(backApplyInfo);
backApplyInfoMapper.updateCheckDetails(backApplyInfo4);
} }
} }
// 如果所有操作都成功 // 如果所有操作都成功
@ -2582,7 +2617,7 @@ public class BackApplyInfoServiceImpl implements IBackApplyInfoService {
* @param allList * @param allList
* @return * @return
*/ */
private int updateBzSlt4Bean(BackApplyInfo record, List<BackApplyInfo> allList) { private int updateBzSlt4Bean(BackApplyInfo record, BackApplyInfo backApplyInfo4, List<BackApplyInfo> allList) {
for (BackApplyInfo bean : allList) { for (BackApplyInfo bean : allList) {
List<SltAgreementInfo> infoList = backApplyInfoMapper.getStlInfo(bean); List<SltAgreementInfo> infoList = backApplyInfoMapper.getStlInfo(bean);
if (CollectionUtils.isEmpty(infoList)) { if (CollectionUtils.isEmpty(infoList)) {
@ -2620,18 +2655,21 @@ public class BackApplyInfoServiceImpl implements IBackApplyInfoService {
// 非班组退料才同步班组分公司数据 // 非班组退料才同步班组分公司数据
BigDecimal tbBackNum = bean.getBackNum(); BigDecimal tbBackNum = bean.getBackNum();
if (CollectionUtils.isNotEmpty(tbList)) { if (CollectionUtils.isNotEmpty(tbList)) {
BackApplyInfo backApplyInfo = new BackApplyInfo();
backApplyInfo.setId(backApplyInfo4.getId());
for (SltAgreementInfo info : tbList) { for (SltAgreementInfo info : tbList) {
// 获取前端要退数量 // 获取前端要退数量
BigDecimal num = info.getBackNum(); BigDecimal num = info.getBackNum();
if (tbBackNum.compareTo(num) == 0) { if (tbBackNum.compareTo(num) == 0) {
backApplyInfoMapper.updateStlInfo(info, record); backApplyInfoMapper.updateStlInfo(info, backApplyInfo);
break; break;
} else if (tbBackNum.compareTo(num) > 0) { } else if (tbBackNum.compareTo(num) > 0) {
tbBackNum = tbBackNum.subtract(num); tbBackNum = tbBackNum.subtract(num);
backApplyInfoMapper.updateStlInfo(info, record); backApplyInfoMapper.updateStlInfo(info, backApplyInfo);
} else { } else {
BigDecimal many = num.subtract(tbBackNum); BigDecimal many = num.subtract(tbBackNum);
backApplyInfoMapper.updateStlInfoTwo(info, record, tbBackNum); backApplyInfoMapper.updateStlInfoTwo(info, backApplyInfo, tbBackNum);
info.setSource("2");
backApplyInfoMapper.insStlInfoTwo(info, many); backApplyInfoMapper.insStlInfoTwo(info, many);
break; break;
} }

View File

@ -268,4 +268,11 @@ public interface MaterialBackInfoMapper {
* @return * @return
*/ */
List<LeaseOutSign> getLeaseOutSignList(MaterialBackApplyInfo backApplyInfo); List<LeaseOutSign> getLeaseOutSignList(MaterialBackApplyInfo backApplyInfo);
/**
* 获取材料站同步数据
* @param materialBackApplyInfo
* @return
*/
List<SltAgreementInfo> getClzInfo(MaterialBackApplyInfo materialBackApplyInfo);
} }

View File

@ -1654,4 +1654,62 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
ORDER BY ORDER BY
createTime DESC; createTime DESC;
</select> </select>
<select id="getXmList" resultType="com.bonus.material.settlement.domain.SltAgreementInfo">
SELECT
id AS id,
agreement_id AS agreementId,
type_id AS typeId,
ma_id AS maId,
num AS backNum,
start_time AS startTime,
end_time AS endTime,
status AS status,
lease_id AS leaseId,
lease_type AS leaseType,
back_id AS backId,
lease_price AS leasePrice,
buy_price AS buyPrice,
company_id AS companyId
FROM
slt_agreement_info
WHERE
status = 0
AND source = '2'
AND type_id = #{typeId}
AND agreement_id = #{agreementId}
<if test="maId != null">
AND ma_id = #{maId}
</if>
order by start_time asc
</select>
<select id="getClzList" resultType="com.bonus.material.settlement.domain.SltAgreementInfo">
SELECT
id AS id,
agreement_id AS agreementId,
type_id AS typeId,
ma_id AS maId,
num AS backNum,
start_time AS startTime,
end_time AS endTime,
status AS status,
lease_id AS leaseId,
lease_type AS leaseType,
back_id AS backId,
lease_price AS leasePrice,
buy_price AS buyPrice,
company_id AS companyId
FROM
clz_slt_agreement_info
WHERE
status = 0
AND source = '2'
AND type_id = #{typeId}
AND agreement_id = #{agreementId}
<if test="maId != null">
AND ma_id = #{maId}
</if>
order by start_time asc
</select>
</mapper> </mapper>

View File

@ -196,8 +196,8 @@
</delete> </delete>
<insert id="insStlInfoTwo"> <insert id="insStlInfoTwo">
insert into clz_slt_agreement_info (agreement_id,type_id,ma_id,num,start_time,status,lease_id,lease_price,buy_price,is_slt,company_id,lease_type,create_time) insert into clz_slt_agreement_info (agreement_id,type_id,ma_id,num,start_time,status,lease_id,lease_price,buy_price,is_slt,company_id,lease_type,create_time,source)
values (#{info.agreementId},#{info.typeId},#{info.maId},#{many},#{info.startTime},#{info.status},#{info.leaseId},#{info.leasePrice},#{info.buyPrice},'0',#{info.companyId},#{info.leaseType},now()); values (#{info.agreementId},#{info.typeId},#{info.maId},#{many},#{info.startTime},#{info.status},#{info.leaseId},#{info.leasePrice},#{info.buyPrice},'0',#{info.companyId},#{info.leaseType},now(),#{info.source});
</insert> </insert>
<select id="selectBackApplyInfoList" resultType="com.bonus.material.clz.domain.back.MaterialBackApplyInfo"> <select id="selectBackApplyInfoList" resultType="com.bonus.material.clz.domain.back.MaterialBackApplyInfo">
@ -942,5 +942,34 @@
AND dfs.id = #{externalId} AND dfs.id = #{externalId}
AND su.nick_name = #{createBy} AND su.nick_name = #{createBy}
</select> </select>
<select id="getClzInfo" resultType="com.bonus.material.settlement.domain.SltAgreementInfo">
SELECT
id AS id,
agreement_id AS agreementId,
type_id AS typeId,
ma_id AS maId,
num AS backNum,
start_time AS startTime,
end_time AS endTime,
status AS status,
lease_id AS leaseId,
lease_type AS leaseType,
back_id AS backId,
lease_price AS leasePrice,
buy_price AS buyPrice,
company_id AS companyId,
lease_style AS leaseStyle
FROM
clz_slt_agreement_info
WHERE
status = 0
and source = '2'
AND agreement_id = #{agreementId}
AND type_id = #{typeId}
<if test="maId != null">
AND ma_id = #{maId}
</if>
order by start_time asc
</select>
</mapper> </mapper>