diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/back/service/impl/BackChangeServiceImpl.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/back/service/impl/BackChangeServiceImpl.java index 8e235c6..65af4f7 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/back/service/impl/BackChangeServiceImpl.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/back/service/impl/BackChangeServiceImpl.java @@ -18,6 +18,9 @@ import com.bonus.material.back.mapper.BackChangeMapper; import com.bonus.material.back.service.BackChangeService; import com.bonus.material.common.constants.TypeConstants; import com.bonus.material.common.enums.TypeEnums; +import com.bonus.material.devchange.domain.CsDeviceInfo; +import com.bonus.material.repair.domain.ToBeRepair; +import com.bonus.material.repair.mapper.RepairMapper; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -42,6 +45,9 @@ public class BackChangeServiceImpl implements BackChangeService { @Resource private BackChangeMapper mapper; + @Resource + private RepairMapper repairMapper; + @Resource private ApprovalInstanceMapper instanceMapper; @@ -403,6 +409,12 @@ public class BackChangeServiceImpl implements BackChangeService { } } if (CollectionUtils.isNotEmpty(devDetailsList)) { + // 创建维修任务 + String re = createRepairTask(devDetailsList); + if ("-1".equals(re)){ + throw new RuntimeException("创建维修任务失败"); + } + for (BackCsDeviceDetails csDeviceDetails : devDetailsList) { // 装备 if ("1".equals(csDeviceDetails.getDevType())) { @@ -466,4 +478,75 @@ public class BackChangeServiceImpl implements BackChangeService { } return AjaxResult.success("审核成功"); } + + private String createRepairTask(List devDetailsList){ + try { + //在此处将需要维修的设备,生成一个维修单 + List toBeRepairList = new ArrayList<>(); + for (BackCsDeviceDetails csDeviceDetails : devDetailsList){ + if ("1".equals(csDeviceDetails.getIsRepair())){ + ToBeRepair toBeRepair = new ToBeRepair(); + toBeRepair.setCode(csDeviceDetails.getDevCode()); + toBeRepair.setDevType(csDeviceDetails.getDevType()); + toBeRepair.setRepairNum(csDeviceDetails.getRealNum()); + toBeRepair.setTypeId(csDeviceDetails.getTypeId()+ ""); + toBeRepairList.add(toBeRepair); + } + } + //如果有需要维修的设备 + if (toBeRepairList.size() > 0){ + //创建维修任务 + String userName = SecurityUtils.getLoginUser().getSysUser().getNickName(); + Long changeId = addRepairTask(userName); + //保存明细 + for (ToBeRepair toBeRepair : toBeRepairList){ + toBeRepair.setChangeId(changeId); + toBeRepair.setCreateUser(userName); + repairMapper.addRepairData(toBeRepair); + } + } + return "1"; + } catch (Exception e) { + log.error(e.getMessage()); + return "-1"; + } + + } + + + /** + * 创建维修任务 + */ + private Long addRepairTask(String username) throws Exception { + int maxOrder = repairMapper.getMonthMaxOrderByDate( + DateUtils.getCurrentYear(), + DateUtils.getCurrentMonth(), + TypeEnums.TM_TASK_REPAIR.getTaskTypeId() + ); + String code = genderRepairTaskCode(maxOrder); + CsDeviceInfo deviceInfo = new CsDeviceInfo(); + deviceInfo.setType("4"); + deviceInfo.setCode(code); + deviceInfo.setReviewStatus("5"); + deviceInfo.setCreateUser(username); + deviceInfo.setCompanyId(SecurityUtils.getLoginUser().getSysUser().getDeptId()); + int result = repairMapper.addDeviceChange(deviceInfo); + if (result < 1) { + throw new Exception("添加任务失败"); + } + return deviceInfo.getId(); + } + + /** + * 生成维修任务编号 + * @param thisMonthMaxOrder + * @return + */ + private String genderRepairTaskCode(int thisMonthMaxOrder) { + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); + Date nowDate = DateUtils.getNowDate(); + String format = dateFormat.format(nowDate); + String result = format.replace("-", ""); + return TypeConstants.REPAIR_TASK_TYPE_LABEL + result + String.format("-%04d", thisMonthMaxOrder + 1); + } } diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/repair/domain/ToBeRepair.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/repair/domain/ToBeRepair.java index d9f1259..be77aee 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/repair/domain/ToBeRepair.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/repair/domain/ToBeRepair.java @@ -147,4 +147,7 @@ public class ToBeRepair { @ApiModelProperty(value = "所属公司id") private Long companyId; + + @ApiModelProperty(value = "是否是审核") + private int isAudit; } diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/repair/mapper/RepairMapper.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/repair/mapper/RepairMapper.java index b99be93..9f4c29f 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/repair/mapper/RepairMapper.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/repair/mapper/RepairMapper.java @@ -142,4 +142,39 @@ public interface RepairMapper { * @return */ int auditInfoById(ToBeRepair info); + + /** + * 物理删除设备详情信息 + * @param bean + * @return + */ + int physicalDeletionDetailsByChangeId(ToBeRepair bean); + + /** + * 更新任务状态 + * @param bean + * @return + */ + int updateStatusById(ToBeRepair bean); + + /** + * 更新设备状态 + * @param detail + * @return + */ + int updateDevStatus(ToBeRepair detail); + + /** + * 获取设备详情信息 + * @param detail + * @return + */ + int updateToolStatus(ToBeRepair detail); + + /** + * 获取设备详情信息 + * @param detail + * @return + */ + int updateToolNum(ToBeRepair detail); } diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/repair/service/impl/RepairServiceImpl.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/repair/service/impl/RepairServiceImpl.java index 9ae5f50..21a11bc 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/repair/service/impl/RepairServiceImpl.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/repair/service/impl/RepairServiceImpl.java @@ -74,9 +74,33 @@ public class RepairServiceImpl implements RepairService { } String username = getCurrentUsername(); - // 1. 创建维修任务 - Long changeId = createRepairTask(username); - + Long changeId; + if (bean.getChangeId()==null){ + // 1. 创建维修任务 + changeId = createRepairTask(username); + //将申请的设备状态都改为维修 + for (ToBeRepair detail : list){ + if ("编码管理".equals(detail.getManageMode()) && !StringHelper.isNullOrEmptyString(detail.getCode())){ + //1、如果是编码管理,将设备状态改为维修状态 + if ("装备".equals(detail.getType())){ + int re1 = mapper.updateDevStatus(detail); + } else if ("工具".equals(detail.getType())){ + int re2 = mapper.updateToolStatus(detail); + } + } else if ("数量管理".equals(detail.getManageMode())){ + //目前数量管理的设备都是工具 + //将在库数量减掉增加维修数量 + int re3 = mapper.updateToolNum(detail); + } + } + } else { + //退料维修任务提交 + changeId = bean.getChangeId(); + //清除旧数据 + int res = mapper.physicalDeletionDetailsByChangeId(bean); + //修改主表任务为待审核 + int re = mapper.updateStatusById(bean); + } // 2. 保存明细 for (ToBeRepair detail : list) { processRepairDetail(detail, changeId, username); diff --git a/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/repair/RepairMapper.xml b/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/repair/RepairMapper.xml index 8f5e3a7..11653c8 100644 --- a/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/repair/RepairMapper.xml +++ b/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/repair/RepairMapper.xml @@ -137,6 +137,33 @@ review_time=NOW() where id = #{changeId} + + update cs_device_change + set review_status = '0', + update_time = NOW() + where id = #{changeId} + + + update ma_dev_info + set ma_status ='5' + where type_id = #{typeId} + and `code` = #{code} + + + update tool_ledger + set status = '2' + where type_id = #{typeId} + and tool_code = #{code} + + + update tool_ledger + set available_num=available_num - #{repairNum}, + repair_num=repair_num + #{repairNum} + where type_id = #{typeId} + + + delete from cs_device_change_details where change_id = #{changeId} +