diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/common/constants/TypeConstants.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/common/constants/TypeConstants.java index 20ef431..32accae 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/common/constants/TypeConstants.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/common/constants/TypeConstants.java @@ -9,4 +9,7 @@ public class TypeConstants { /** 领料单号的开头字母 */ public static final String LEASE_TASK_TYPE_LABEL = "L"; + + /** 维修单号的开头字母 */ + public static final String REPAIR_TASK_TYPE_LABEL = "W"; } diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/devchange/domain/CsDeviceInfo.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/devchange/domain/CsDeviceInfo.java index c6afeda..4530cf3 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/devchange/domain/CsDeviceInfo.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/devchange/domain/CsDeviceInfo.java @@ -78,4 +78,14 @@ public class CsDeviceInfo { @ApiModelProperty(value = "结束时间") private String endTime; + + /** + * 审核状态 + */ + private String reviewStatus; + + /** + * 创建人 + */ + private String createUser; } diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/repair/controller/RepairController.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/repair/controller/RepairController.java index 74f6cdc..de515c2 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/repair/controller/RepairController.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/repair/controller/RepairController.java @@ -2,6 +2,8 @@ package com.bonus.material.repair.controller; import com.bonus.common.core.web.controller.BaseController; import com.bonus.common.core.web.domain.AjaxResult; +import com.bonus.material.devchange.domain.CsDeviceInfo; +import com.bonus.material.devchange.domain.CsDeviceVo; import com.bonus.material.repair.domain.ToBeRepair; import com.bonus.material.repair.service.RepairService; import io.swagger.annotations.Api; @@ -37,4 +39,49 @@ public class RepairController extends BaseController { return AjaxResult.success(list); } + /** + * 新增维修申请 + * @param bean + * @return + */ + @ApiOperation(value = "新增维修申请") + @PostMapping("/addRepairData") + public AjaxResult addRepairData(@RequestBody ToBeRepair bean) { + return service.addRepairData(bean); + } + + /** + * 查询维修列表 + */ + @ApiOperation(value = "查询维修列表") + @GetMapping("/getRepairList") + public AjaxResult getRepairList(ToBeRepair bean) + { + startPage(); + List list = service.getRepairList(bean); + return AjaxResult.success(getDataTable(list)); + } + + /** + * 删除维修列表 + * @param bean + * @return + */ + @ApiOperation(value = "删除维修列表") + @PostMapping("/deleteRepairList") + public AjaxResult deleteRepairList(@RequestBody ToBeRepair bean) { + return service.deleteRepairList(bean); + } + + /** + * 维修详情列表 + */ + @ApiOperation(value = "维修详情列表") + @GetMapping("/getRepairDetailsList") + public AjaxResult getRepairDetailsList(ToBeRepair bean) + { + List list = service.getRepairDetailsList(bean); + return AjaxResult.success(list); + } + } 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 47016af..e74c9d4 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 @@ -1,8 +1,10 @@ package com.bonus.material.repair.domain; +import com.bonus.common.biz.domain.BmFileInfo; import lombok.Data; import java.math.BigDecimal; +import java.util.List; /** * @author hay @@ -12,6 +14,8 @@ public class ToBeRepair { private Long id; + private Long changeId; + /** * 用作key */ @@ -22,6 +26,16 @@ public class ToBeRepair { */ private String type; + /** + * 类型id + */ + private String typeId; + + /** + * 设备类型 1-装备,2-工具 + */ + private String devType; + /** * 类目 */ @@ -56,4 +70,62 @@ public class ToBeRepair { * 维修数量 */ private BigDecimal repairNum; + + private String repairUrl; + private String scrapUrl; + + private String url; + + /** + * 是否报废 + */ + private String isScrap; + + /** + * 创建人 + */ + private String createUser; + + /** + * 维修时间 + */ + private String repairTime; + + /** + * 退役原因 + */ + private String reasonVal; + private List bmFileInfos; + + private List toBeRepairList; + + /** + * 装备数 + */ + private BigDecimal equipmentNum; + + /** + * 工具数 + */ + private BigDecimal toolNum; + + /** + * 状态 + */ + private String status; + + /** + * 创建时间 + */ + private String createTime; + + /** + * 开始时间 + */ + private String startTime; + + /** + * 结束时间 + */ + private String endTime; } 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 394b061..56a859f 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 @@ -1,6 +1,8 @@ package com.bonus.material.repair.mapper; +import com.bonus.material.devchange.domain.CsDeviceInfo; import com.bonus.material.repair.domain.ToBeRepair; +import org.apache.ibatis.annotations.Param; import java.util.List; @@ -12,4 +14,55 @@ public interface RepairMapper { * @return */ List selectToBeRepairList(ToBeRepair bean); + + /** + * 获取申请编号 + * @param year + * @param month + * @param type + * @return + */ + int getMonthMaxOrderByDate(@Param("year") String year, @Param("month") String month, @Param("type") Integer type); + + /** + * 新增数据 + * @param deviceInfo + * @return + */ + int addDeviceChange(CsDeviceInfo deviceInfo); + + /** + * 新增设备详情 + * @param toBeRepair + * @return + */ + int addRepairData(ToBeRepair toBeRepair); + + /** + * 获取维修列表 + * @param bean + * @return + */ + List getRepairList(ToBeRepair bean); + + /** + * 删除设备变更信息 + * @param bean + * @return + */ + int deleteChangeInfo(ToBeRepair bean); + + /** + * 删除设备详情信息 + * @param bean + * @return + */ + int deleteChangeDetails(ToBeRepair bean); + + /** + * 获取设备详情列表 + * @param bean + * @return + */ + List getRepairDetailsList(ToBeRepair bean); } diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/repair/service/RepairService.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/repair/service/RepairService.java index 1969e1b..e263663 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/repair/service/RepairService.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/repair/service/RepairService.java @@ -1,5 +1,6 @@ package com.bonus.material.repair.service; +import com.bonus.common.core.web.domain.AjaxResult; import com.bonus.material.repair.domain.ToBeRepair; import java.util.List; @@ -14,4 +15,32 @@ public interface RepairService { * @return */ List getToBeRepairList(ToBeRepair bean); + + /** + * 新增维修数据 + * @param bean + * @return + */ + AjaxResult addRepairData(ToBeRepair bean); + + /** + * 获取维修列表 + * @param bean + * @return + */ + List getRepairList(ToBeRepair bean); + + /** + * 删除维修数据 + * @param bean + * @return + */ + AjaxResult deleteRepairList(ToBeRepair bean); + + /** + * 获取维修详情列表 + * @param bean + * @return + */ + List getRepairDetailsList(ToBeRepair bean); } 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 3c5afbd..f0a3e43 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 @@ -1,13 +1,24 @@ package com.bonus.material.repair.service.impl; +import com.bonus.common.core.utils.DateUtils; +import com.bonus.common.core.web.domain.AjaxResult; +import com.bonus.common.security.utils.SecurityUtils; +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 com.bonus.material.repair.service.RepairService; +import org.hibernate.validator.internal.util.StringHelper; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.transaction.interceptor.TransactionAspectSupport; import javax.annotation.Resource; +import java.text.SimpleDateFormat; import java.util.ArrayList; +import java.util.Date; import java.util.List; import java.util.Map; @@ -20,6 +31,7 @@ public class RepairServiceImpl implements RepairService { @Resource private RepairMapper mapper; + @Override public List getToBeRepairList(ToBeRepair bean) { try { @@ -29,4 +41,110 @@ public class RepairServiceImpl implements RepairService { return new ArrayList<>(); } } + + @Override + @Transactional(rollbackFor = Exception.class) + public AjaxResult addRepairData(ToBeRepair bean) { + try { + if (bean.getToBeRepairList().size() <= 0) { + return AjaxResult.error("请添加维修数据"); + } + String username = SecurityUtils.getLoginUser().getSysUser().getNickName(); + //先创建任务--台账变更表 + //1、创建维修单号 + int thisMonthMaxOrder = mapper.getMonthMaxOrderByDate(DateUtils.getCurrentYear(), DateUtils.getCurrentMonth(), TypeEnums.TM_TASK_REPAIR.getTaskTypeId()); + String code = genderTaskCode(thisMonthMaxOrder); + CsDeviceInfo deviceInfo = new CsDeviceInfo(); + deviceInfo.setType("4"); + deviceInfo.setCode(code); + deviceInfo.setReviewStatus("0"); + deviceInfo.setCreateUser(username); + // 添加任务 + int num = mapper.addDeviceChange(deviceInfo); + if (num < 1) { + throw new Exception("添加任务失败"); + } + Long changeId = deviceInfo.getId(); + for (ToBeRepair toBeRepair : bean.getToBeRepairList()) { + toBeRepair.setChangeId(changeId); + toBeRepair.setCreateUser(username); + if (!StringHelper.isNullOrEmptyString(toBeRepair.getIsScrap())) { + if (toBeRepair.getBmFileInfos()!=null && toBeRepair.getBmFileInfos().size() > 0) { + if ("0".equals(toBeRepair.getIsScrap())) { + toBeRepair.setRepairUrl(toBeRepair.getBmFileInfos().get(0).getFileUrl()); + } else { + toBeRepair.setScrapUrl(toBeRepair.getBmFileInfos().get(0).getFileUrl()); + } + } + } else { + throw new Exception("缺少合格状态数据"); + } + int res = mapper.addRepairData(toBeRepair); + if (res <= 0) { + throw new Exception("添加设备详情失败"); + } + } + return AjaxResult.success("申请成功"); + + } catch (Exception e) { + e.printStackTrace(); + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return AjaxResult.error("申请失败"); + } + } + + @Override + public List getRepairList(ToBeRepair bean) { + try { + return mapper.getRepairList(bean); + } catch (Exception e) { + e.printStackTrace(); + return new ArrayList<>(); + } + } + + @Override + @Transactional(rollbackFor = Exception.class) + public AjaxResult deleteRepairList(ToBeRepair bean) { + try { + //删除主任务 + int num = mapper.deleteChangeInfo(bean); + if (num < 1) { + throw new Exception("删除主任务失败"); + } + //删除设备详情 + num = mapper.deleteChangeDetails(bean); + if (num < 1) { + throw new Exception("删除设备详情失败"); + } + return AjaxResult.success("删除成功"); + } catch (Exception e) { + e.printStackTrace(); + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return AjaxResult.error("删除失败"); + } + } + + @Override + public List getRepairDetailsList(ToBeRepair bean) { + try { + return mapper.getRepairDetailsList(bean); + } catch (Exception e) { + e.printStackTrace(); + return new ArrayList<>(); + } + } + + /** + * 生成任务编号 + * @param thisMonthMaxOrder + * @return + */ + private String genderTaskCode(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/resources/mapper/material/repair/RepairMapper.xml b/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/repair/RepairMapper.xml index 1398961..239f1ab 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 @@ -1,13 +1,59 @@ + + insert into cs_device_change(type, code, review_status, create_user, create_time, del_flag) + values (#{type}, #{code}, #{reviewStatus}, #{createUser}, NOW(), '0') + + + insert into cs_device_change_details( + change_id, + dev_code, + dev_type_id, + dev_type, + num, + real_num, + repairman, + repair_time, + repair_url, + reason_val, + reason_url, + is_scrap, + create_user, + create_time + ) + values ( + #{changeId}, + #{code}, + #{typeId}, + #{devType}, + #{repairNum}, + #{repairNum}, + #{createUser}, + #{repairTime}, + #{repairUrl}, + #{reasonVal}, + #{scrapUrl}, + #{isScrap}, + #{createUser}, + NOW() + ) + + + update cs_device_change set del_flag = '1' where id = #{id} + + + update cs_device_change_details set del_flag = '1' where change_id = #{id} + + + + \ No newline at end of file