维修单分拆

This commit is contained in:
sxu 2024-11-28 18:50:16 +08:00
parent 29ce4f6aeb
commit b970a71b9c
1 changed files with 23 additions and 71 deletions

View File

@ -1,7 +1,6 @@
package com.bonus.material.repair.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import com.bonus.common.biz.domain.R;
import com.bonus.common.biz.enums.MaTypeManageTypeEnum;
import com.bonus.common.biz.enums.RepairTaskStatusEnum;
import com.bonus.common.biz.enums.RepairTypeEnum;
@ -462,6 +461,10 @@ public class RepairServiceImpl implements RepairService {
continue;
}
int innerRepairNum = 0;
int outerRepairNum = 0;
int scrapNum = 0;
// 处理配件--数量管理--内部维修
if (CollectionUtil.isNotEmpty(bean.getNumberInRepairPartList())) {
// 获取维修详情表中的维修详情记录待维修已维修已报废的数量
@ -473,20 +476,8 @@ public class RepairServiceImpl implements RepairService {
partList = bean.getNumberInRepairPartList();
if (bean.getNumberInRepairPartList().get(0).getRepairNum() != null && bean.getNumberInRepairPartList().get(0).getRepairNum() != 0) {
// ---------------校验维修数量-----------------
// 统计已维修数量 + 本次维修数量
// int repairNum = OptionalInt.of(details.getRepairedNum()).orElse(0) + bean.getNumberInRepairPartList().get(0).getRepairNum();
// // 统计报废数量 + 维修合计数量
// int num = repairNum + details.getScrapNum();
// if (num > details.getRepairNum()) {
// throw new ServiceException("维修数量大于维修总量");
// }
// 分拆维修单
int thisTimeRepairedNum = bean.getNumberInRepairPartList().get(0).getRepairNum();
splitRepairList(bean, thisTimeRepairedNum, loginUser);
// 分拆维修单, 准备数据
innerRepairNum = bean.getNumberInRepairPartList().get(0).getRepairNum();
// 处理配件集合数据
copeNumberManageInList(bean, partList, loginUser, bean.getManageType());
}
@ -509,21 +500,8 @@ public class RepairServiceImpl implements RepairService {
// 判断外部维修配件数量是否为空
if (partList.get(0).getRepairNum() != null && partList.get(0).getRepairNum() != 0) {
// // 统计已维修数量 + 本次维修数量
// int repairNum = OptionalInt.of(details.getRepairedNum()).orElse(0) + partList.get(0).getRepairNum();
// // 统计报废数量 + 维修合计数量
// if ((repairNum + OptionalInt.of(details.getScrapNum()).orElse(0)) > details.getRepairNum()) {
// throw new ServiceException("维修数量大于维修总量");
// }
//
// // 更新维修数量维修人员不变
// repairMapper.updateRepairedNumTwo(bean.getId(), repairNum, loginUser.getUserid());
// 分拆维修单
int thisTimeRepairedNum = partList.get(0).getRepairNum();
splitRepairList(bean, thisTimeRepairedNum, loginUser);
// 分拆维修单, 准备数据
outerRepairNum = partList.get(0).getRepairNum();
if (partList.get(0).getSupplierId() == null) {
throw new ServiceException("请选择返厂厂家");
@ -562,25 +540,8 @@ public class RepairServiceImpl implements RepairService {
throw new ServiceException("此维修记录不存在,请检查后提交!");
}
// // -------------校验维修数量开始----------------
// // 统计历史已报废数量 + 本次报废数量 = 报废总数
// int scrapNum = OptionalInt.of(details.getScrapNum()).orElse(0) + bean.getNumberScrapRepairPartList().get(0).getScrapNum();
// // 统计 报废总数 + 历史已维修数量,
// int num = scrapNum + details.getRepairedNum();
// // 不能大与总的待维修数量
// if (num > details.getRepairNum()) {
// throw new ServiceException("报废数量大于维修总量! 本次报废数量:" + bean.getScrapNum() + ",已报废数量:" + details.getScrapNum() + ",维修总量:" + details.getRepairNum());
// }
// // -------------校验维修数量结束----------------
//
// // 更新报废数量
// repairMapper.updateScrapNum(bean.getId(), scrapNum, loginUser.getUserid());
// 维修单拆分--报废机具
int thisTimeScrapNumber = bean.getNumberScrapRepairPartList().get(0).getScrapNum();
splitRepairListToScrap(bean, thisTimeScrapNumber, loginUser);
// 分拆维修单, 准备数据
scrapNum = bean.getNumberScrapRepairPartList().get(0).getScrapNum();
if (CollectionUtil.isNotEmpty(bean.getNumberScrapRepairPartList().get(0).getFileList())) {
@ -621,6 +582,11 @@ public class RepairServiceImpl implements RepairService {
}
}
// 拆分维修单
SplitRepairDetailsToMultiple(bean, innerRepairNum, outerRepairNum, scrapNum, loginUser);
} else {
throw new ServiceException("请选择正确的维修类型");
}
@ -629,39 +595,25 @@ public class RepairServiceImpl implements RepairService {
return AjaxResult.success("维修完成");
}
private void splitRepairList(RepairDeviceVO bean, int thisTimeRepairedNum, LoginUser loginUser) {
if ((bean.getRepairNum() - thisTimeRepairedNum) == 0) { //本次修完了
repairMapper.updateRepairedNum(bean.getId(), thisTimeRepairedNum, loginUser.getUserid(), loginUser.getUserid());
private void SplitRepairDetailsToMultiple(RepairDeviceVO bean, int innerRepairNum, int outerRepairNum, int scrapNum, LoginUser loginUser) {
if ((bean.getRepairNum() - innerRepairNum - outerRepairNum - scrapNum) == 0) { //本次修完了
repairMapper.updateRepairedNum(bean.getId(), innerRepairNum + outerRepairNum, loginUser.getUserid(), loginUser.getUserid());
repairMapper.updateScrapNum(bean.getId(), scrapNum, loginUser.getUserid());
} else {
RepairApplyDetails newDetail = new RepairApplyDetails();
BeanUtils.copyProperties(bean, newDetail);
newDetail.setRepairNum((long) (thisTimeRepairedNum));
newDetail.setRepairedNum((long) thisTimeRepairedNum);
newDetail.setRepairNum((long) (innerRepairNum + outerRepairNum + scrapNum));
newDetail.setRepairedNum((long) innerRepairNum + outerRepairNum);
newDetail.setScrapNum((long) scrapNum);
newDetail.setCreateBy(SecurityUtils.getUsername());
newDetail.setCreateTime(DateUtils.getNowDate());
newDetail.setRepairer(SecurityUtils.getUsername());
newDetail.setStatus("1");
repairApplyDetailsMapper.insertRepairApplyDetails(newDetail);
repairMapper.updateRepairNum(bean.getId(), bean.getRepairNum() - thisTimeRepairedNum, loginUser.getUserid(), loginUser.getUserid());
repairMapper.updateRepairNum(bean.getId(), bean.getRepairNum() - innerRepairNum - outerRepairNum - scrapNum, loginUser.getUserid(), loginUser.getUserid());
}
}
private void splitRepairListToScrap(RepairDeviceVO bean, int thisTimeScrapNum, LoginUser loginUser) {
if ((bean.getRepairNum() - thisTimeScrapNum) == 0) {
repairMapper.updateScrapNum(bean.getId(), thisTimeScrapNum, loginUser.getUserid());
} else {
RepairApplyDetails newDetail = new RepairApplyDetails();
BeanUtils.copyProperties(bean, newDetail);
newDetail.setRepairNum((long) (thisTimeScrapNum));
newDetail.setScrapNum((long) thisTimeScrapNum);
newDetail.setCreateBy(SecurityUtils.getUsername());
newDetail.setCreateTime(DateUtils.getNowDate());
newDetail.setRepairer(SecurityUtils.getUsername());
newDetail.setStatus("1");
repairApplyDetailsMapper.insertRepairApplyDetails(newDetail);
repairMapper.updateRepairNum(bean.getId(), bean.getRepairNum() - thisTimeScrapNum, loginUser.getUserid(), loginUser.getUserid());
}
}
/**
* 配件列表价格合计