From e31a4eec892a7aae9914acb096a2be0ae48b5dc6 Mon Sep 17 00:00:00 2001 From: syruan <321359594@qq.com> Date: Wed, 13 Nov 2024 09:06:48 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=B4=E4=BF=AE=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../repair/controller/RepairController.java | 153 +++++++++ .../repair/domain/RepairApplyRecord.java | 14 +- .../repair/domain/RepairPartDetails.java | 15 +- .../material/repair/domain/RepairTask.java | 150 +++++++++ .../repair/domain/RepairTaskDetails.java | 75 +++++ .../material/repair/mapper/RepairMapper.java | 145 +++++++++ .../repair/service/RepairService.java | 73 +++++ .../service/impl/RepairServiceImpl.java | 231 ++++++++++++++ .../mapper/material/repair/RepairMapper.xml | 296 ++++++++++++++++++ 9 files changed, 1148 insertions(+), 4 deletions(-) create mode 100644 bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/controller/RepairController.java create mode 100644 bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/domain/RepairTask.java create mode 100644 bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/domain/RepairTaskDetails.java create mode 100644 bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/mapper/RepairMapper.java create mode 100644 bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/service/RepairService.java create mode 100644 bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/service/impl/RepairServiceImpl.java create mode 100644 bonus-modules/bonus-material/src/main/resources/mapper/material/repair/RepairMapper.xml diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/controller/RepairController.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/controller/RepairController.java new file mode 100644 index 00000000..64ecdaf7 --- /dev/null +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/controller/RepairController.java @@ -0,0 +1,153 @@ +package com.bonus.material.repair.controller; + +import com.bonus.common.core.exception.ServiceException; +import com.bonus.common.core.utils.poi.ExcelUtil; +import com.bonus.common.core.web.controller.BaseController; +import com.bonus.common.core.web.domain.AjaxResult; +import com.bonus.common.core.web.page.TableDataInfo; +import com.bonus.common.security.annotation.RequiresPermissions; +import com.bonus.material.repair.domain.RepairApplyRecord; +import com.bonus.material.repair.domain.RepairPartDetails; +import com.bonus.material.repair.domain.RepairTask; +import com.bonus.material.repair.domain.RepairTaskDetails; +import com.bonus.material.repair.service.RepairService; +import com.bonus.system.api.domain.SysUser; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.ObjectMapper; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import javax.validation.constraints.NotNull; +import java.util.ArrayList; +import java.util.List; + +/** + * @author syruan + */ +@RestController +@RequestMapping("/repair") +@Api(tags = "维修管理") +public class RepairController extends BaseController { + + @Resource + private RepairService service; + + /** + * Jackson -- 避免反序列化漏洞 + */ + private final ObjectMapper objectMapper = new ObjectMapper(); + + /** + * 获取维修任务列表 + */ + @ApiOperation(value = "获取维修任务列表") + @GetMapping("/getRepairTaskList") + @RequiresPermissions(value = "repair:manage:list") + public TableDataInfo getRepairTaskList(RepairTask bean) { + startPage(); + List list = service.getRepairTaskList(bean); + return getDataTable(list); + } + + /** + * 导出维修任务列表 + */ + @PostMapping("/export") + @RequiresPermissions("repair:manage:export") + @ApiOperation(value = "导出维修任务列表") + public void export(HttpServletResponse response, RepairTask bean) { + List list = service.exportRepairTaskList(bean); + ExcelUtil util = new ExcelUtil<>(RepairTask.class); + util.exportExcel(response, list, "维修任务列表"); + } + + /** + * 获取维修任务列表--APP + */ + @ApiOperation(value = "获取维修任务列表---APP") + @GetMapping("/getAppRepairTaskList") + @RequiresPermissions("repair:manage:list") + public AjaxResult getAppRepairTaskList(RepairTask bean) { + List list = service.getRepairTaskList(bean); + return AjaxResult.success(list); + } + + /** + * 获取维修任务物资设备列表 + */ + @ApiOperation(value = "获取维修物资设备列表") + @GetMapping("/getRepairMaTypeList") + @RequiresPermissions("repair:manage:preview") + public TableDataInfo getRepairMaTypeList(RepairTaskDetails bean) { + startPage(); + List list = service.getRepairMaTypeList(bean); + return getDataTable(list); + } + + /** + * 获取维修任务机具列表 + */ + @ApiOperation(value = "获取维修任务机具列表") + @GetMapping("/getAppRepairMaTypeList") + public AjaxResult getAppRepairMaTypeList(RepairTaskDetails bean) { + List list = service.getRepairMaTypeList(bean); + return AjaxResult.success(list); + } + + /** + * 新增维修记录 + */ + @ApiOperation(value = "新增维修记录") + @PostMapping("/submitRepairApply") + public AjaxResult submitRepairApply(@RequestBody @NotNull RepairApplyRecord bean) { + try { + String partStrList = bean.getPartStrList(); + List repairPartDetails = objectMapper.readValue(partStrList, new TypeReference>() {}); + bean.setPartList(repairPartDetails); + return service.submitRepairApply(bean); + } catch (JsonProcessingException e) { + throw new ServiceException("Jackson反序列化异常:" + e.getMessage()); + } + } + + /** + * 快捷维修记录 + */ + @ApiOperation(value = "快捷维修记录") + @PostMapping("/fastRepairApply") + public AjaxResult fastRepairApply(@RequestBody List list) { + return service.fastRepairApply(list); + } + + /** + * 完成维修 + */ + @ApiOperation(value = "完成维修") + @PostMapping("/completeRepair") + public AjaxResult completeRepair(@RequestBody ArrayList ids) { + return toAjax(service.completeRepair(ids)); + } + + /** + * 提交审核 + */ + @ApiOperation(value = "提交审核") + @PostMapping("/endRepairTask") + public AjaxResult endRepairTask(@RequestBody ArrayList taskList) { + return service.endRepairTask(taskList); + } + + /** + * 获取维修员下拉选 + */ + @GetMapping("/getUserSelect") + public AjaxResult getUserSelect() { + List list = service.selectUserList(); + return AjaxResult.success(list); + } + +} diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/domain/RepairApplyRecord.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/domain/RepairApplyRecord.java index 688e5cd8..261b17d0 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/domain/RepairApplyRecord.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/domain/RepairApplyRecord.java @@ -1,6 +1,9 @@ package com.bonus.material.repair.domain; import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; + import com.bonus.common.core.annotation.Excel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -41,12 +44,12 @@ public class RepairApplyRecord extends BaseEntity { /** 维修数量 */ @Excel(name = "维修数量") @ApiModelProperty(value = "维修数量") - private Long repairNum; + private Integer repairNum; /** 报废数量 */ @Excel(name = "报废数量") @ApiModelProperty(value = "报废数量") - private Long scrapNum; + private Integer scrapNum; /** 维修方式(1内部2返厂3报废) */ @Excel(name = "维修方式", readConverterExp = "1=内部2返厂3报废") @@ -74,7 +77,7 @@ public class RepairApplyRecord extends BaseEntity { /** 配件数量 */ @Excel(name = "配件数量") @ApiModelProperty(value = "配件数量") - private Long partNum; + private Integer partNum; /** 配件单价 */ @Excel(name = "配件单价") @@ -119,5 +122,10 @@ public class RepairApplyRecord extends BaseEntity { @Excel(name = "是否结算", readConverterExp = "0=,未=结算,1=已结算") private Long isSlt; + /** 配件明细 */ + private List partList = new ArrayList<>(); + + @ApiModelProperty(value = "配件明细string字符串") + private String partStrList; } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/domain/RepairPartDetails.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/domain/RepairPartDetails.java index 72921f8c..e7cf18b6 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/domain/RepairPartDetails.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/domain/RepairPartDetails.java @@ -46,7 +46,7 @@ public class RepairPartDetails extends BaseEntity { /** 配件数量 */ @Excel(name = "配件数量") @ApiModelProperty(value = "配件数量") - private Long partNum; + private Integer partNum; /** 配件费用 */ @Excel(name = "配件费用") @@ -67,5 +67,18 @@ public class RepairPartDetails extends BaseEntity { @ApiModelProperty(value = "维修内容") private String repairContent; + /** 维修数量 */ + private Integer repairNum; + /** 维修人员 */ + private String repairer; + + @ApiModelProperty(value = "配件名称") + private String partName; + + @ApiModelProperty(value = "物资厂家id") + private Long supplierId; + + @ApiModelProperty(value = "配件价格") + private BigDecimal partPrice; } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/domain/RepairTask.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/domain/RepairTask.java new file mode 100644 index 00000000..bed292e1 --- /dev/null +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/domain/RepairTask.java @@ -0,0 +1,150 @@ +package com.bonus.material.repair.domain; + +import com.bonus.common.core.annotation.Excel; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @author syruan + */ +@Data +@ApiModel(value="维修任务") +public class RepairTask { + /** + * 任务id + */ + @ApiModelProperty(value = "任务id") + private String taskId; + /** + * 维修单号 + */ + @ApiModelProperty(value = "维修单号") + @Excel(name = "维修单号",sort = 1) + private String repairCode; + /** + * 退料单位名称 + */ + @ApiModelProperty(value = "退料单位名称") + @Excel(name = "退料单位名称",sort = 2) + private String backUnit; + /** + * 退料工程名称 + */ + @ApiModelProperty(value = "退料工程名称") + @Excel(name = "退料工程名称",sort = 3) + private String backPro; + /** + * 任务创建人 + */ + @ApiModelProperty(value = "任务创建人") + private Long createBy; + /** + * 任务创建人 + */ + @ApiModelProperty(value = "任务创建人") + @Excel(name = "任务创建人",sort = 4) + private String createName; + + /** + * 任务创建时间 + */ + @ApiModelProperty(value = "任务创建时间") + @Excel(name = "任务创建时间",sort = 5) + private String createTime; + /** + * 退料单号 + */ + @ApiModelProperty(value = "退料单号") + @Excel(name = "退料单号",sort = 6) + private String backCode; + /** + * 维修状态 + */ + @ApiModelProperty(value = "维修状态") + @Excel(name = "维修状态",sort = 7) + private String repairStatus; + /** + * 关键字 + */ + private String keyword; + /** + * 开始时间 + */ + private String startTime; + /** + * 结束时间 + */ + private String endTime; + + @ApiModelProperty(value = "组织id") + private Long companyId; + + @ApiModelProperty(value = "协议id") + private Long agreementId; + + @ApiModelProperty(value = "维修状态编码CODE") + private String repairStatusCode; + + /** + * 维修机具类型 + */ + @ApiModelProperty(value = "维修机具类型") + @Excel(name = "维修机具类型",sort = 8) + private String type; + /** + * 规格型号 + */ + @ApiModelProperty(value = "规格型号") + @Excel(name = "规格型号",sort = 9) + private String typeName; + /** + * 编码 + */ + @ApiModelProperty(value = "编码") + @Excel(name = "编码",sort = 10) + private String code; + /** + * 维修总量 + */ + @ApiModelProperty(value = "维修总量") + @Excel(name = "维修总量",sort = 11) + private int repairNum; + /** + * 维修合格数量 + */ + @ApiModelProperty(value = "维修合格数量") + @Excel(name = "维修合格数量",sort = 12) + private int repairedNum; + /** + * 维修报废数量 + */ + @ApiModelProperty(value = "报废数量") + @Excel(name = "维修报废数量",sort = 13) + private int scrapNum; + /** + * 待修状态 + */ + @ApiModelProperty(value = "待修状态") + @Excel(name = "待修状态",sort = 14) + private String status; + /** + * 维修人员 + */ + @ApiModelProperty(value = "维修人员") + @Excel(name = "维修人员",sort = 15) + private String repairer; + /** + * 维修时间 + */ + @ApiModelProperty(value = "维修时间") + @Excel(name = "维修时间",sort = 16) + private String updateTime; + + /** 导出选中列表 */ + @ApiModelProperty(value = "导出选中列表") + private List dataCondition; + +} diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/domain/RepairTaskDetails.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/domain/RepairTaskDetails.java new file mode 100644 index 00000000..acb2d27f --- /dev/null +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/domain/RepairTaskDetails.java @@ -0,0 +1,75 @@ +package com.bonus.material.repair.domain; + +import com.bonus.common.core.web.domain.BaseEntity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * @author syruan + */ +@EqualsAndHashCode(callSuper = false) +@Data +@ApiModel(value="维修任务明细") +public class RepairTaskDetails extends BaseEntity { + /** + * id + */ + @ApiModelProperty(value = "id") + private Long id; + /** + * 任务ID + */ + @ApiModelProperty(value = "任务ID") + private String taskId; + /** + * 机具ID + */ + @ApiModelProperty(value = "机具ID") + private String maId; + /** + * 类型名称 + */ + @ApiModelProperty(value = "类型名称") + private String typeName; + /** + * 规格型号 + */ + @ApiModelProperty(value = "规格型号") + private String type; + /** + * 编码 + */ + @ApiModelProperty(value = "编码") + private String code; + /** + * 维修总量 + */ + @ApiModelProperty(value = "维修总量") + private int repairNum; + /** + * 维修合格数量 + */ + @ApiModelProperty(value = "维修合格数量") + private int repairedNum; + /** + * 维修报废数量 + */ + @ApiModelProperty(value = "维修报废数量") + private int scrapNum; + /** + * 待修状态 + */ + @ApiModelProperty(value = "待修状态") + private String status; + + /** + * 规格类型id + */ + @ApiModelProperty(value = "规格型号id") + private String typeId; + + @ApiModelProperty(value = "组织id") + private Long companyId; +} diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/mapper/RepairMapper.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/mapper/RepairMapper.java new file mode 100644 index 00000000..07326577 --- /dev/null +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/mapper/RepairMapper.java @@ -0,0 +1,145 @@ +package com.bonus.material.repair.mapper; + +import com.bonus.material.repair.domain.RepairApplyRecord; +import com.bonus.material.repair.domain.RepairPartDetails; +import com.bonus.material.repair.domain.RepairTask; +import com.bonus.material.repair.domain.RepairTaskDetails; +import com.bonus.system.api.domain.SysUser; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; + +/** + * @author syruan + */ +@Mapper +public interface RepairMapper { + /** + * 获取维修任务列表 + * @param bean 维修任务信息--查询条件 + */ + List getRepairTaskList(RepairTask bean); + + /** + * 获取维修详细列表 + * @param bean 维修任务详情--查询条件 + */ + List getRepairMaTypeList(RepairTaskDetails bean); + + /** + * 新增维修记录 + * @param bean 维修记录信息 + */ + int addRecord(RepairApplyRecord bean); + + /** + * 根据id查询维修明细 + * @param id 主键key + */ + RepairTaskDetails getById(Long id); + + /** + * 修改维修数量 + * @param id 主键key + * @param repairNum 维修数量 + * @param repairer 维修人员 + * @param userId 用户id + */ + int updateRepairedNum(@Param("id") Long id, @Param("repairNum")int repairNum,@Param("repairer") Long repairer,@Param("userId") Long userId); + + /** + * 修改报废数量 + * @param id 主键key + * @param scrapNum 报废数量 + * @param userId 用户id + */ + int updateScrapNum(@Param("id")Long id, @Param("scrapNum")int scrapNum,@Param("userId")Long userId); + + /** + * 新增配件维修记录 + * @param partDetails 配件详情 + */ + int addPart(RepairPartDetails partDetails); + + /** + * 完成维修--更改维修状态 + * @param ids 主键集合 + * @param userId 用户id + */ + int completeRepair(@Param("ids") ArrayList ids, @Param("userId")Long userId); + + /** + * 查询维修人员列表 + */ + List selectUserList(); + + /** + * 修改维修任务状态 + * @param taskList 任务列表集合 + * @param userid 用户id + */ + int updateTaskStatus(@Param("taskList") List taskList, @Param("userId") Long userid); + + /** + * 新增任务 + * @param task 任务信息 + */ + int addTask(RepairTask task); + + /** + * 查询协议Id + * @param task 任务信息 + */ + Long getAgreementId(RepairTask task); + + /** + * 新增 协议与任务关联 + * @param task 任务信息 + */ + int createAgreementTask(RepairTask task); + + /** + * 修改维修数量 + * @param id 主键 key + * @param repairNum 维修数量 + * @param userid 用户id + */ + int updateRepairedNumTwo(@Param("id")Long id, @Param("repairNum")int repairNum, @Param("userId")Long userid); + + /** + * 查询是否存在未完成维修的 + * @param task 任务信息 + */ + int getUnFinish(RepairTask task); + + /** + * 根据任务Id获取维修详细 + * @param task 任务信息 + */ + List getDetailsListByTaskId(RepairTask task); + + /** + * 新增实验建议审核数据 + * @param details 数据详情 + */ + int addAuditDetails(RepairTaskDetails details); + + /** + * 导出维修任务 + */ + List exportRepairTaskList(RepairTask bean); + + /** + * 新增维修费用 + */ + int addRepairCost(@Param("bean") RepairApplyRecord bean, @Param("costs") BigDecimal costs,@Param("partType") String partType); + + /** + * 查询配件价格 + * @param partId 配件id + */ + BigDecimal selectPartPrice(Long partId); +} diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/service/RepairService.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/service/RepairService.java new file mode 100644 index 00000000..e1e0ebe4 --- /dev/null +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/service/RepairService.java @@ -0,0 +1,73 @@ +package com.bonus.material.repair.service; + + +import com.bonus.common.core.web.domain.AjaxResult; +import com.bonus.material.repair.domain.RepairApplyRecord; +import com.bonus.material.repair.domain.RepairTask; +import com.bonus.material.repair.domain.RepairTaskDetails; +import com.bonus.system.api.domain.SysUser; + +import java.util.ArrayList; +import java.util.List; + +/** + * @author syruan + */ +public interface RepairService { + + /** + * 获取维修任务列表 + * @param bean + * @return + */ + List getRepairTaskList(RepairTask bean); + + /** + * 获取维修详细列表 + * @param bean + * @return + */ + List getRepairMaTypeList(RepairTaskDetails bean); + + /** + * 新增维修记录 + * @param bean + * @return + */ + AjaxResult submitRepairApply(RepairApplyRecord bean); + + /** + * 快捷维修记录 + * @param list + * @return + */ + AjaxResult fastRepairApply(List list); + + /** + * 完成维修 + * @param ids + * @return + */ + int completeRepair(ArrayList ids); + + /** + * 查询维修人员列表 + * @return + */ + List selectUserList(); + + /** + * 提交审核 + * @param taskList + * @return + */ + AjaxResult endRepairTask(List taskList); + + + /** + * 导出维修列表 + * @param bean + * @return + */ + List exportRepairTaskList(RepairTask bean); +} diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/service/impl/RepairServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/service/impl/RepairServiceImpl.java new file mode 100644 index 00000000..181d2ee3 --- /dev/null +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/service/impl/RepairServiceImpl.java @@ -0,0 +1,231 @@ +package com.bonus.material.repair.service.impl; + +import com.bonus.common.core.exception.ServiceException; +import com.bonus.common.core.web.domain.AjaxResult; +import com.bonus.common.security.utils.SecurityUtils; +import com.bonus.material.repair.domain.RepairApplyRecord; +import com.bonus.material.repair.domain.RepairPartDetails; +import com.bonus.material.repair.domain.RepairTask; +import com.bonus.material.repair.domain.RepairTaskDetails; +import com.bonus.material.repair.mapper.RepairMapper; +import com.bonus.material.repair.service.RepairService; +import com.bonus.system.api.domain.SysUser; +import com.bonus.system.api.model.LoginUser; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; + +/** + * @author syruan + */ +@Service("RepairService") +public class RepairServiceImpl implements RepairService { + + @Resource + private RepairMapper repairMapper; + + + @Override + public List getRepairTaskList(RepairTask bean) { + return repairMapper.getRepairTaskList(bean); + } + + @Override + public List exportRepairTaskList(RepairTask bean) { + return repairMapper.exportRepairTaskList(bean); + } + + @Override + public List getRepairMaTypeList(RepairTaskDetails bean) { + //Long companyId = SecurityUtils.getLoginUser().getSysUser().getDeptId(); + bean.setCompanyId(null); + return repairMapper.getRepairMaTypeList(bean); + } + + + /** + * 新增维修记录 + * @param bean repairApplyRecord + */ + @Override + @Transactional(rollbackFor = Exception.class) + public AjaxResult submitRepairApply(RepairApplyRecord bean) { + RepairTaskDetails details = repairMapper.getById(bean.getId()); + LoginUser loginUser = SecurityUtils.getLoginUser(); + bean.setCreateBy(String.valueOf(loginUser.getUserid())); + List partList = bean.getPartList(); + BigDecimal sfCosts = new BigDecimal("0"); + String nbType = "1"; + String fcType = "2"; + String sfPart = "1"; + String bsfPart = "0"; + if (partList != null && !partList.isEmpty()) { + bean.setRepairNum(partList.get(0).getRepairNum()); + bean.setRepairer(partList.get(0).getRepairer()); + } + switch (bean.getRepairType()) { + case "1": { + int repairNum = (details.getRepairedNum() + bean.getRepairNum()); + int num = repairNum + details.getScrapNum(); + if (num > details.getRepairNum()) { + throw new ServiceException("维修数量大于维修总量"); + } + repairMapper.updateRepairedNum(bean.getId(), repairNum, Long.valueOf(bean.getRepairer()), loginUser.getUserid()); + break; + } + case "2": { + int repairNum = (int) (details.getRepairedNum() + bean.getRepairNum()); + int num = repairNum + details.getScrapNum(); + if (num > details.getRepairNum()) { + throw new ServiceException("维修数量大于维修总量"); + } + repairMapper.updateRepairedNumTwo(bean.getId(), repairNum, loginUser.getUserid()); + break; + } + case "3": { + int scrapNum = (int) (details.getScrapNum() + bean.getScrapNum()); + int num = scrapNum + details.getRepairedNum(); + if (num > details.getRepairNum()) { + throw new ServiceException("维修数量大于维修总量"); + } + repairMapper.updateScrapNum(bean.getId(), scrapNum, loginUser.getUserid()); + break; + } + default: + break; + } + if (partList != null && !partList.isEmpty()) { + if (nbType.equals(bean.getRepairType())) { + for (RepairPartDetails partDetails : partList) { + if (partDetails.getPartId() != null) { + // 有维修配件时 + 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(bean.getCompanyId()); + // 根据partid 找到配件单价 + BigDecimal partPrice = repairMapper.selectPartPrice(partDetails.getPartId()); + partDetails.setPartCost(partPrice); + repairMapper.addPart(partDetails); + bean.setPartPrice(partDetails.getPartCost()); + bean.setPartId((long) partDetails.getPartId().intValue()); + bean.setPartNum(partDetails.getPartNum()); + bean.setRepairContent(partDetails.getRepairContent()); + bean.setPartType(partDetails.getPartType()); + repairMapper.addRecord(bean); + } else { + // 不选维修配件时 + repairMapper.addRecord(bean); + } + } + } + if (fcType.equals(bean.getRepairType())) { + bean.setPartName(partList.get(0).getPartName()); + bean.setPartType(partList.get(0).getPartType()); + bean.setRepairContent(partList.get(0).getRepairContent()); + if (partList.get(0).getSupplierId() == null) { + throw new ServiceException("请选择返厂厂家"); + } else { + bean.setSupplierId(partList.get(0).getSupplierId()); + } + if (partList.get(0).getPartPrice() == null) { + bean.setPartPrice(new BigDecimal(0)); + } else { + bean.setPartPrice(partList.get(0).getPartPrice()); + } + bean.setPartNum(partList.get(0).getPartNum()); + repairMapper.addRecord(bean); + } + for (RepairPartDetails partDetails : partList) { + if (partDetails.getPartCost() != null) { + BigDecimal partCost = partDetails.getPartCost(); + BigDecimal partNumber = new BigDecimal(partDetails.getPartNum()); + sfCosts = sfCosts.add(partCost.multiply(partNumber)); + } + } + + if (!"0".equals(sfCosts.toString())) { + repairMapper.addRepairCost(bean, sfCosts, sfPart); + } + } else { + // 新增预报废记录 + repairMapper.addRecord(bean); + } + return AjaxResult.success(); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public AjaxResult fastRepairApply(List list) { + LoginUser loginUser = SecurityUtils.getLoginUser(); + for (RepairTaskDetails bean : list) { + int repairedNum = bean.getRepairNum() - bean.getRepairedNum() - bean.getScrapNum(); + if (repairedNum <= 0) { + throw new ServiceException("选中的数据中包含待维修数量为0的机具,请重新选择"); + } + } + for (RepairTaskDetails bean : list) { + int repairedNum = bean.getRepairNum() - bean.getRepairedNum() - bean.getScrapNum(); + RepairApplyRecord partDetails = new RepairApplyRecord(); + partDetails.setTaskId(Long.valueOf(bean.getTaskId())); + partDetails.setMaId(Long.valueOf(bean.getMaId())); + partDetails.setTypeId(Long.valueOf(bean.getTypeId())); + partDetails.setRepairNum(repairedNum); + partDetails.setRepairType("1"); + partDetails.setCreateBy(String.valueOf(loginUser.getUserid())); + partDetails.setCompanyId(bean.getCompanyId()); + repairMapper.addRecord(partDetails); + int i = repairedNum + bean.getRepairedNum(); + repairMapper.updateRepairedNumTwo(bean.getId(), i, loginUser.getUserid()); + } + return AjaxResult.success(); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public AjaxResult endRepairTask(List taskList) { + LoginUser loginUser = SecurityUtils.getLoginUser(); + for (RepairTask task : taskList) { + int i = repairMapper.getUnFinish(task); + if (i > 0) { + throw new ServiceException("选中的数据中包含维修未完成的,请完成维修再进行提交审核"); + } + } + int i = repairMapper.updateTaskStatus(taskList, loginUser.getUserid()); + for (RepairTask task : taskList) { + task.setCreateBy(loginUser.getUserid()); + Long agreementId = repairMapper.getAgreementId(task); + List detailsList = repairMapper.getDetailsListByTaskId(task); + repairMapper.addTask(task); + for (RepairTaskDetails details : detailsList) { + details.setCreateBy(String.valueOf(loginUser.getUserid())); + details.setTaskId(task.getTaskId()); + repairMapper.addAuditDetails(details); + } + task.setAgreementId(agreementId); + repairMapper.createAgreementTask(task); + } + return AjaxResult.success(); + } + + + @Override + public int completeRepair(ArrayList ids) { + LoginUser loginUser = SecurityUtils.getLoginUser(); + return repairMapper.completeRepair(ids, loginUser.getUserid()); + } + + @Override + public List selectUserList() { + return repairMapper.selectUserList(); + } + +} diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/repair/RepairMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/repair/RepairMapper.xml new file mode 100644 index 00000000..7777f719 --- /dev/null +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/repair/RepairMapper.xml @@ -0,0 +1,296 @@ + + + + + insert into repair_apply_record (task_id,ma_id,type_id,repair_num,scrap_num,repair_type,create_by,create_time,repair_content,company_id,scrap_reason,scrap_type,supplier_id,part_num,part_price,part_type,part_name,repairer,file_ids,remark,part_id) + values (#{taskId},#{maId},#{typeId},#{repairNum},#{scrapNum},#{repairType},#{createBy},now(),#{repairContent},#{companyId},#{scrapReason},#{scrapType},#{supplierId},#{partNum},#{partPrice},#{partType},#{partName},#{repairer},#{fileIds},#{remark},#{partId}); + + + + insert into repair_part_details (task_id,ma_id,type_id,part_id,part_num,part_cost,part_type,create_by,create_time,company_id,repair_content) + values (#{taskId},#{maId},#{typeId},#{partId},#{partNum},#{partCost},#{partType},#{createBy},now(),#{companyId},#{repairContent}); + + + + insert into tm_task (task_status,task_type,code,create_by,create_time,company_id) + values (46,45,#{repairCode},#{createBy},now(),#{companyId}); + + + + insert into tm_task_agreement (task_id,agreement_id,create_by,create_time,company_id) + values (#{taskId},#{agreementId},#{createBy},now(),#{companyId}); + + + + insert into repair_audit_details (task_id,repair_id,ma_id,type_id,repair_num,repaired_num,scrap_num,status,create_by,create_time,company_id) + values (#{taskId},#{id},#{maId},#{typeId},#{repairNum},#{repairedNum},#{scrapNum},'0',#{createBy},now(),#{companyId}); + + + + insert into repair_cost (task_id,repair_id,type_id,ma_id,repair_num,costs,part_type,status,company_id) + values (#{bean.taskId},#{bean.id},#{bean.typeId},#{bean.maId},#{bean.repairNum},#{costs},#{partType},'0',#{bean.companyId}); + + + + update repair_apply_details + set repaired_num = #{repairNum}, + repairer = #{repairer}, + update_by = #{userId}, + update_time = now() + where id = #{id} + + + + update repair_apply_details + set scrap_num = #{scrapNum}, + update_by = #{userId}, + update_time = now() + where id = #{id} + + + + update repair_apply_details + set status = '1', + update_by = #{userId}, + update_time = now() + where id in + + #{id} + + + + + update tm_task + set task_status = '44', + update_by = #{userId}, + update_time = now() + where task_id in + + #{task.taskId} + + + + + update repair_apply_details + set repaired_num = #{repairNum}, + update_by = #{userId}, + update_time = now() + where id = #{id} + + + + + + + + + + + + + + + + + + + + + + +