维修单分拆

This commit is contained in:
sxu 2024-11-28 16:41:39 +08:00
parent 11d34c654a
commit 989a2fa452
1 changed files with 39 additions and 12 deletions

View File

@ -85,11 +85,13 @@ public class RepairServiceImpl implements RepairService {
Long[] ids = tempList.stream().map(RepairDeviceVO::getId).toArray(Long[]::new); Long[] ids = tempList.stream().map(RepairDeviceVO::getId).toArray(Long[]::new);
int repairNumSum = tempList.stream().mapToInt(RepairDeviceVO::getRepairNum).sum(); int repairNumSum = tempList.stream().mapToInt(RepairDeviceVO::getRepairNum).sum();
int repairedNumSum = tempList.stream().mapToInt(RepairDeviceVO::getRepairedNum).sum(); int repairedNumSum = tempList.stream().mapToInt(RepairDeviceVO::getRepairedNum).sum();
int scrapNumSum = tempList.stream().mapToInt(RepairDeviceVO::getScrapNum).sum();
//BigDecimal typeCostSum = tempList.stream().map(RepairDeviceVO::getTotalCost).reduce(BigDecimal.ZERO, BigDecimal::add); //BigDecimal typeCostSum = tempList.stream().map(RepairDeviceVO::getTotalCost).reduce(BigDecimal.ZERO, BigDecimal::add);
vo.setRepairDeviceList(toRepairList); vo.setRepairDeviceList(toRepairList);
vo.setIds(ids); vo.setIds(ids);
vo.setTypeRepairNum(repairNumSum); vo.setTypeRepairNum(repairNumSum);
vo.setTypeRepairedNum(repairedNumSum); vo.setTypeRepairedNum(repairedNumSum);
vo.setTypeScrapNum(scrapNumSum);
//vo.setTypeCost(typeCostSum); //vo.setTypeCost(typeCostSum);
vo.setTaskId(tempList.get(0).getTaskId()); vo.setTaskId(tempList.get(0).getTaskId());
vo.setCode(tempList.get(0).getCode()); vo.setCode(tempList.get(0).getCode());
@ -557,19 +559,27 @@ public class RepairServiceImpl implements RepairService {
if (Objects.isNull(details)) { if (Objects.isNull(details)) {
throw new ServiceException("此维修记录不存在,请检查后提交!"); 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 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);
if (CollectionUtil.isNotEmpty(bean.getNumberScrapRepairPartList().get(0).getFileList())) { if (CollectionUtil.isNotEmpty(bean.getNumberScrapRepairPartList().get(0).getFileList())) {
for (BmFileInfo fileInfo : bean.getNumberScrapRepairPartList().get(0).getFileList()) { for (BmFileInfo fileInfo : bean.getNumberScrapRepairPartList().get(0).getFileList()) {
@ -634,6 +644,23 @@ public class RepairServiceImpl implements RepairService {
} }
} }
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());
}
}
/** /**
* 配件列表价格合计 * 配件列表价格合计
* @param partList 配件列表 * @param partList 配件列表