维修管理--数量维修完善

This commit is contained in:
syruan 2024-11-18 14:51:19 +08:00
parent 4821406f98
commit 7a381a0de4
1 changed files with 119 additions and 96 deletions

View File

@ -46,6 +46,7 @@ public class RepairServiceImpl implements RepairService {
// 维修管理方式--编码 // 维修管理方式--编码
private final int manageTypeByCode = 0; private final int manageTypeByCode = 0;
// 维修管理方式--数量
private final int manageTypeByNumber = 1; private final int manageTypeByNumber = 1;
@ -126,7 +127,7 @@ public class RepairServiceImpl implements RepairService {
case inRepairType: { case inRepairType: {
int repairNum = getNum(bean, details); int repairNum = getNum(bean, details);
// 更新维修数量并修改维修人员 // 更新维修数量并修改维修人员
repairMapper.updateRepairedNum(bean.getId(), repairNum, Long.valueOf(bean.getRepairer()), loginUser.getUserid()); repairMapper.updateRepairedNum(bean.getId(), repairNum, loginUser.getUserid(), loginUser.getUserid());
break; break;
} }
case outRepairType: { case outRepairType: {
@ -292,7 +293,7 @@ public class RepairServiceImpl implements RepairService {
case inRepairType: { case inRepairType: {
partList = bean.getCodeInRepairPartList(); partList = bean.getCodeInRepairPartList();
// 更新维修数量并修改维修人员 // 更新维修数量并修改维修人员
repairMapper.updateRepairedNum(bean.getId(), 1, Long.valueOf(bean.getRepairer()), loginUser.getUserid()); repairMapper.updateRepairedNum(bean.getId(), 1, loginUser.getUserid(), loginUser.getUserid());
break; break;
} }
case outRepairType: { case outRepairType: {
@ -313,66 +314,7 @@ public class RepairServiceImpl implements RepairService {
} }
// 处理配件集合数据 // 处理配件集合数据
if (CollectionUtil.isNotEmpty(partList)) { copeNumberManageInList(bean, partList, loginUser);
// 遍历配件列表判断配件类型收费还是不收费
for (RepairPartDetails partDetails : partList) {
// 维修记录表信息
RepairApplyRecord repairApplyRecord = new RepairApplyRecord();
repairApplyRecord.setTaskId(bean.getTaskId());
repairApplyRecord.setMaId(bean.getMaId());
repairApplyRecord.setTypeId(bean.getTypeId());
repairApplyRecord.setRepairType(bean.getRepairType());
repairApplyRecord.setRepairNum(scrapRepairType != bean.getRepairType() ? 1 : 0);
repairApplyRecord.setScrapNum(scrapRepairType == bean.getRepairType() ? 1 : 0);
repairApplyRecord.setCreateBy(loginUser.getUsername());
repairApplyRecord.setStatus(0L);
if (partDetails.getPartId() != null) {
// 有维修配件时,如果价格为空设置为0
if (partDetails.getPartCost() == null) {
partDetails.setPartCost(new BigDecimal(0));
}
partDetails.setTaskId(bean.getTaskId());
partDetails.setMaId(bean.getMaId());
partDetails.setTypeId(bean.getTypeId());
partDetails.setCreateBy(String.valueOf(loginUser.getUserid()));
partDetails.setCompanyId(null);
// 根据 partId 找配件单价
BigDecimal partPrice = repairMapper.selectPartPrice(partDetails.getPartId());
// 设置配件费用
partDetails.setPartCost(partPrice);
// 添加维修配件明细表
repairMapper.addPart(partDetails);
// 设置配件费用
repairApplyRecord.setPartPrice(partDetails.getPartCost());
repairApplyRecord.setPartId((long) partDetails.getPartId().intValue());
repairApplyRecord.setPartNum(partDetails.getPartNum());
repairApplyRecord.setRepairContent(partDetails.getRepairContent());
repairApplyRecord.setPartType(partDetails.getPartType());
// 添加维修记录表
repairMapper.addRecord(repairApplyRecord);
} else {
// 不选维修配件时, 只添加维修记录表
repairMapper.addRecord(repairApplyRecord);
}
}
} else {
// 配件为空添加维修记录表
// 维修记录表信息
RepairApplyRecord repairApplyRecord = new RepairApplyRecord();
repairApplyRecord.setTaskId(bean.getTaskId());
repairApplyRecord.setMaId(bean.getMaId());
repairApplyRecord.setTypeId(bean.getTypeId());
repairApplyRecord.setRepairType(bean.getRepairType());
repairApplyRecord.setRepairNum(bean.getRepairType() != 3 ? 1 : 0);
repairApplyRecord.setScrapNum(bean.getRepairType() == 3 ? 1 : 0);
repairApplyRecord.setCreateBy(loginUser.getUsername());
repairApplyRecord.setStatus(0L);
// 不选维修配件时, 只添加维修记录表
repairMapper.addRecord(repairApplyRecord);
}
} else if (Objects.equals(manageTypeByNumber, bean.getManageType())) { } else if (Objects.equals(manageTypeByNumber, bean.getManageType())) {
@ -381,47 +323,64 @@ public class RepairServiceImpl implements RepairService {
if (bean.getId() == null) { if (bean.getId() == null) {
throw new ServiceException("请完善参数维修详情ID为空!"); throw new ServiceException("请完善参数维修详情ID为空!");
} }
// 获取维修详情表中的维修详情记录待维修已维修报废的数量 // 获取维修详情表中的维修详情记录待维修已维修报废的数量
RepairTaskDetails details = repairMapper.getById(bean.getId()); RepairTaskDetails details = repairMapper.getById(bean.getId());
if (details == null) { if (details == null) {
throw new ServiceException("此维修记录不存在,请检查!"); throw new ServiceException("此维修记录不存在,请检查后提交!");
} }
// 根据维修方式更新维修数量报废数量 if (CollectionUtil.isNotEmpty(bean.getNumberInRepairPartList())) {
switch (bean.getRepairType()) { partList = bean.getNumberInRepairPartList();
case inRepairType: {
partList = bean.getCodeInRepairPartList();
// 更新维修数量并修改维修人员
repairMapper.updateRepairedNum(bean.getId(), 1, Long.valueOf(bean.getRepairer()), loginUser.getUserid());
break;
}
case outRepairType: {
partList = bean.getCodeOutRepairPartList();
// 更新维修数量维修人员不变
repairMapper.updateRepairedNumTwo(bean.getId(), 1, loginUser.getUserid());
break;
}
case scrapRepairType: {
partList = bean.getCodeScrapRepairPartList();
// -------------校验维修数量---------------- // ---------------校验维修数量-----------------
// 统计历史已报废数量 + 本次报废数量 = 报废总数 // 统计已维修数量 + 本次维修数量
int scrapNum = details.getScrapNum() + bean.getScrapNum(); int repairNum = details.getRepairedNum() + bean.getRepairNum();
// 统计 报废总数 + 历史已维修数量, // 统计报废数量 + 维修合计数量
int num = scrapNum + details.getRepairedNum(); int num = repairNum + details.getScrapNum();
// 不能大与总的待维修数量 if (num > details.getRepairNum()) {
if (num > details.getRepairNum()) { throw new ServiceException("维修数量大于维修总量");
throw new ServiceException("报废数量大于维修总量! 本次报废数量:" + bean.getScrapNum() + ",已报废数量:" + details.getScrapNum() + ",维修总量:" + details.getRepairNum());
}
// 更新报废数量
repairMapper.updateScrapNum(bean.getId(), 1, loginUser.getUserid());
break;
} }
default: // ---------------校验维修数量-----------------
System.err.println("请输入正确的维修类型:" + bean.getRepairType());
break; // 更新维修数量并修改维修人员
repairMapper.updateRepairedNum(bean.getId(), repairNum, loginUser.getUserid(), loginUser.getUserid());
copeNumberManageInList(bean, partList, loginUser);
}
if (CollectionUtil.isNotEmpty(bean.getNumberOutRepairPartList())) {
partList = bean.getNumberOutRepairPartList();
// ---------------校验维修数量-----------------
// 统计已维修数量 + 本次维修数量
int repairNum = details.getRepairedNum() + bean.getRepairNum();
// 统计报废数量 + 维修合计数量
int num = repairNum + details.getScrapNum();
if (num > details.getRepairNum()) {
throw new ServiceException("维修数量大于维修总量");
}
// ---------------校验维修数量-----------------
// 更新维修数量维修人员不变
repairMapper.updateRepairedNumTwo(bean.getId(), repairNum, loginUser.getUserid());
}
if (CollectionUtil.isNotEmpty(bean.getNumberScrapRepairPartList())) {
partList = bean.getNumberScrapRepairPartList();
// -------------校验维修数量开始----------------
// 统计历史已报废数量 + 本次报废数量 = 报废总数
int scrapNum = details.getScrapNum() + bean.getScrapNum();
// 统计 报废总数 + 历史已维修数量,
int num = scrapNum + details.getRepairedNum();
// 不能大与总的待维修数量
if (num > details.getRepairNum()) {
throw new ServiceException("报废数量大于维修总量! 本次报废数量:" + bean.getScrapNum() + ",已报废数量:" + details.getScrapNum() + ",维修总量:" + details.getRepairNum());
}
// -------------校验维修数量结束----------------
// 更新报废数量
repairMapper.updateScrapNum(bean.getId(), 1, loginUser.getUserid());
} }
} else { } else {
@ -433,6 +392,70 @@ public class RepairServiceImpl implements RepairService {
return AjaxResult.success("维修完成"); return AjaxResult.success("维修完成");
} }
private void copeNumberManageInList(RepairDeviceVO bean, List<RepairPartDetails> partList, LoginUser loginUser) {
// 处理配件集合数据
if (CollectionUtil.isNotEmpty(partList)) {
// 遍历配件列表判断配件类型收费还是不收费
for (RepairPartDetails partDetails : partList) {
// 维修记录表信息
RepairApplyRecord repairApplyRecord = new RepairApplyRecord();
repairApplyRecord.setTaskId(bean.getTaskId());
repairApplyRecord.setMaId(bean.getMaId());
repairApplyRecord.setTypeId(bean.getTypeId());
repairApplyRecord.setRepairType(bean.getRepairType());
repairApplyRecord.setRepairNum(scrapRepairType != bean.getRepairType() ? 1 : 0);
repairApplyRecord.setScrapNum(scrapRepairType == bean.getRepairType() ? 1 : 0);
repairApplyRecord.setCreateBy(loginUser.getUsername());
repairApplyRecord.setStatus(0L);
if (partDetails.getPartId() != null) {
// 有维修配件时,如果价格为空设置为0
if (partDetails.getPartCost() == null) {
partDetails.setPartCost(new BigDecimal(0));
}
partDetails.setTaskId(bean.getTaskId());
partDetails.setMaId(bean.getMaId());
partDetails.setTypeId(bean.getTypeId());
partDetails.setCreateBy(String.valueOf(loginUser.getUserid()));
partDetails.setCompanyId(null);
// 根据 partId 找配件单价
BigDecimal partPrice = repairMapper.selectPartPrice(partDetails.getPartId());
// 设置配件费用
partDetails.setPartCost(partPrice);
// 添加维修配件明细表
repairMapper.addPart(partDetails);
// 设置配件费用
repairApplyRecord.setPartPrice(partDetails.getPartCost());
repairApplyRecord.setPartId((long) partDetails.getPartId().intValue());
repairApplyRecord.setPartNum(partDetails.getPartNum());
repairApplyRecord.setRepairContent(partDetails.getRepairContent());
repairApplyRecord.setPartType(partDetails.getPartType());
// 添加维修记录表
repairMapper.addRecord(repairApplyRecord);
} else {
// 不选维修配件时, 只添加维修记录表
repairMapper.addRecord(repairApplyRecord);
}
}
} else {
// 配件为空添加维修记录表
// 维修记录表信息
RepairApplyRecord repairApplyRecord = new RepairApplyRecord();
repairApplyRecord.setTaskId(bean.getTaskId());
repairApplyRecord.setMaId(bean.getMaId());
repairApplyRecord.setTypeId(bean.getTypeId());
repairApplyRecord.setRepairType(bean.getRepairType());
repairApplyRecord.setRepairNum(bean.getRepairType() != 3 ? 1 : 0);
repairApplyRecord.setScrapNum(bean.getRepairType() == 3 ? 1 : 0);
repairApplyRecord.setCreateBy(loginUser.getUsername());
repairApplyRecord.setStatus(0L);
// 不选维修配件时, 只添加维修记录表
repairMapper.addRecord(repairApplyRecord);
}
}
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public AjaxResult endRepairTask(@NotNull List<RepairTask> taskList) { public AjaxResult endRepairTask(@NotNull List<RepairTask> taskList) {