维修管理--数量维修完善
This commit is contained in:
parent
4821406f98
commit
7a381a0de4
|
|
@ -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) {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue