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

View File

@ -268,4 +268,11 @@ public interface MaterialBackInfoMapper {
* @return
*/
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
createTime DESC;
</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>

View File

@ -196,8 +196,8 @@
</delete>
<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)
values (#{info.agreementId},#{info.typeId},#{info.maId},#{many},#{info.startTime},#{info.status},#{info.leaseId},#{info.leasePrice},#{info.buyPrice},'0',#{info.companyId},#{info.leaseType},now());
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(),#{info.source});
</insert>
<select id="selectBackApplyInfoList" resultType="com.bonus.material.clz.domain.back.MaterialBackApplyInfo">
@ -942,5 +942,34 @@
AND dfs.id = #{externalId}
AND su.nick_name = #{createBy}
</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>