From 53ac43dcb2c3d3af96f94ae8fe138792beb3ab67 Mon Sep 17 00:00:00 2001 From: mashuai Date: Sat, 15 Nov 2025 18:18:35 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A2=86=E7=94=A8=E5=87=BA=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/DevChangeController.java | 11 + .../devchange/domain/CsDeviceDetails.java | 9 +- .../devchange/domain/CsDeviceInfo.java | 19 +- .../devchange/mapper/DevChangeMapper.java | 21 ++ .../devchange/service/DevChangeService.java | 7 + .../service/DevChangeServiceImpl.java | 61 +++++- .../material/devchange/DevChangeMapper.xml | 194 ++++++++++++------ 7 files changed, 243 insertions(+), 79 deletions(-) diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/devchange/controller/DevChangeController.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/devchange/controller/DevChangeController.java index 4b2dc32..34516e7 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/devchange/controller/DevChangeController.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/devchange/controller/DevChangeController.java @@ -194,4 +194,15 @@ public class DevChangeController extends BaseController { return AjaxResult.success(getDataTable(list)); } + /** + * 审核出库 + * @param csDeviceInfo + * @return + */ + @ApiOperation(value = "审核出库") + @PostMapping("/approve") + public AjaxResult approve(@RequestBody CsDeviceInfo csDeviceInfo) { + return service.approve(csDeviceInfo); + } + } diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/devchange/domain/CsDeviceDetails.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/devchange/domain/CsDeviceDetails.java index 819f35c..2d3b54d 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/devchange/domain/CsDeviceDetails.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/devchange/domain/CsDeviceDetails.java @@ -1,8 +1,10 @@ package com.bonus.material.devchange.domain; +import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.math.BigDecimal; import java.util.Date; /** @@ -42,13 +44,14 @@ public class CsDeviceDetails { private String devCode; @ApiModelProperty(value = "当前库存") - private Integer storageNum; + private BigDecimal storageNum; @ApiModelProperty(value = "申请数量") - private Integer num; + private BigDecimal num = BigDecimal.ZERO; @ApiModelProperty(value = "使用到期日期") - private String useTime; + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private Date useTime; @ApiModelProperty(value = "创建时间") private Date createTime; 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 3b0687a..f9037b9 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 @@ -1,8 +1,11 @@ package com.bonus.material.devchange.domain; +import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; +import java.math.BigDecimal; import java.util.Date; /** @@ -39,7 +42,8 @@ public class CsDeviceInfo { private String proCounty; @ApiModelProperty(value = "使用到期日期") - private String useTime; + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private Date useTime; @ApiModelProperty(value = "领用单号") private String code; @@ -51,6 +55,8 @@ public class CsDeviceInfo { private String leaseType; @ApiModelProperty(value = "创建时间") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") private Date createTime; @ApiModelProperty(value = "更新时间") @@ -66,9 +72,9 @@ public class CsDeviceInfo { private Integer devNum; @ApiModelProperty(value = "申请工具数量") - private Integer toolNum; + private BigDecimal toolNum; - @ApiModelProperty(value = "任务状态") + @ApiModelProperty(value = "任务状态 0审核中 1已通过 2已驳回") private String taskStatus; @ApiModelProperty(value = "开始时间") @@ -76,4 +82,11 @@ public class CsDeviceInfo { @ApiModelProperty(value = "结束时间") private String endTime; + + private String changeStatus; + + /** + * 变更前单位 + */ + private String changeUnit; } diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/devchange/mapper/DevChangeMapper.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/devchange/mapper/DevChangeMapper.java index ce06162..01cb6a4 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/devchange/mapper/DevChangeMapper.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/devchange/mapper/DevChangeMapper.java @@ -214,4 +214,25 @@ public interface DevChangeMapper { * @return */ List getList(CsDeviceInfo dto); + + /** + * 审批 + * @param csDeviceInfo + * @return + */ + int approve(CsDeviceInfo csDeviceInfo); + + /** + * 获取装备类型 + * @param csDeviceDetails + * @return + */ + CsDeviceDetails getTypeMaDevInfo(CsDeviceDetails csDeviceDetails); + + /** + * 获取工具类型 + * @param csDeviceDetails + * @return + */ + CsDeviceDetails getTypeToolInfo(CsDeviceDetails csDeviceDetails); } diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/devchange/service/DevChangeService.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/devchange/service/DevChangeService.java index 4316eeb..e82a1a8 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/devchange/service/DevChangeService.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/devchange/service/DevChangeService.java @@ -101,4 +101,11 @@ public interface DevChangeService { * @return */ List getList(CsDeviceInfo dto); + + /** + * 审批 + * @param csDeviceInfo + * @return + */ + AjaxResult approve(CsDeviceInfo csDeviceInfo); } diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/devchange/service/DevChangeServiceImpl.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/devchange/service/DevChangeServiceImpl.java index 2e1d619..5281f7c 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/devchange/service/DevChangeServiceImpl.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/devchange/service/DevChangeServiceImpl.java @@ -228,13 +228,14 @@ public class DevChangeServiceImpl implements DevChangeService { if (csDeviceVo == null || csDeviceVo.getDevInfo() == null || CollectionUtils.isEmpty(csDeviceVo.getDevDetailsList())) { return AjaxResult.error("请选择需要添加的设备"); } - Long userId = SecurityUtils.getLoginUser().getUserid(); + String nickName = SecurityUtils.getLoginUser().getSysUser().getNickName(); // 获取申请编号 int thisMonthMaxOrder = mapper.getMonthMaxOrderByDate(DateUtils.getCurrentYear(), DateUtils.getCurrentMonth(), TypeEnums.TM_TASK_LEASE.getTaskTypeId()); String code = genderTaskCode(thisMonthMaxOrder); CsDeviceInfo devInfo = csDeviceVo.getDevInfo(); devInfo.setCode(code); - devInfo.setCreateBy(userId.toString()); + devInfo.setCreateBy(nickName); + devInfo.setTaskStatus("0"); // 添加主任务 int num = mapper.addChangeInfoNew(devInfo); if (num < 1) { @@ -242,7 +243,7 @@ public class DevChangeServiceImpl implements DevChangeService { } csDeviceVo.getDevDetailsList().forEach(devDetails -> { devDetails.setChangeId(devInfo.getId()); - devDetails.setCreateBy(userId.toString()); + devDetails.setCreateBy(nickName); devDetails.setCreateTime(DateUtils.getNowDate()); }); // 添加设备详情 @@ -251,7 +252,8 @@ public class DevChangeServiceImpl implements DevChangeService { throw new RuntimeException("添加设备详情失败"); } } catch (Exception e) { - e.printStackTrace(); + log.error(e.getMessage()); + return AjaxResult.error("添加失败"); } return AjaxResult.success("添加成功"); } @@ -268,8 +270,8 @@ public class DevChangeServiceImpl implements DevChangeService { || CollectionUtils.isEmpty(csDeviceVo.getDevDetailsList())) { return AjaxResult.error("请选择需要修改的设备"); } - Long userId = SecurityUtils.getLoginUser().getUserid(); - csDeviceVo.getDevInfo().setUpdateBy(userId.toString()); + String nickName = SecurityUtils.getLoginUser().getSysUser().getNickName(); + csDeviceVo.getDevInfo().setUpdateBy(nickName); // 修改主任务 int num = mapper.updateCsDevInfo(csDeviceVo.getDevInfo()); if (num < 1) { @@ -282,13 +284,18 @@ public class DevChangeServiceImpl implements DevChangeService { } csDeviceVo.getDevDetailsList().forEach(devDetails -> { devDetails.setChangeId(csDeviceVo.getDevInfo().getId()); - devDetails.setUpdateBy(userId.toString()); - devDetails.setCreateBy(userId.toString()); + devDetails.setUpdateBy(nickName); + devDetails.setCreateBy(nickName); devDetails.setCreateTime(DateUtils.getNowDate()); devDetails.setUpdateTime(DateUtils.getNowDate()); }); + num = mapper.addDetails(csDeviceVo.getDevDetailsList()); + if (num < 1) { + throw new RuntimeException("添加设备详情失败"); + } } catch (Exception e) { - e.printStackTrace(); + log.error(e.getMessage()); + return AjaxResult.error("修改失败"); } return AjaxResult.success("修改成功"); } @@ -305,6 +312,27 @@ public class DevChangeServiceImpl implements DevChangeService { CsDeviceInfo devInfo = mapper.getDevInfoById(dto); // 根据id查询设备详情表数据 List devDetailsList = mapper.getDevDetailsById(dto); + if (CollectionUtils.isNotEmpty(devDetailsList)) { + // 根据devType去查询装备或工具详情 + for (CsDeviceDetails csDeviceDetails : devDetailsList) { + CsDeviceDetails devDetails = new CsDeviceDetails(); + if (StringUtils.isNotBlank(csDeviceDetails.getDevType()) && "1".equals(csDeviceDetails.getDevType())) { + devDetails = mapper.getTypeMaDevInfo(csDeviceDetails); + } else if (StringUtils.isNotBlank(csDeviceDetails.getDevType()) && "2".equals(csDeviceDetails.getDevType())) { + devDetails = mapper.getTypeToolInfo(csDeviceDetails); + } + if (devDetails != null) { + csDeviceDetails.setCategory(StringUtils.isNotBlank(devDetails.getCategory()) ? devDetails.getCategory() : ""); + csDeviceDetails.setTypeName(StringUtils.isNotBlank(devDetails.getTypeName()) ? devDetails.getTypeName() : ""); + csDeviceDetails.setTypeModelName(StringUtils.isNotBlank(devDetails.getTypeModelName()) ? devDetails.getTypeModelName() : ""); + csDeviceDetails.setManageType(StringUtils.isNotBlank(devDetails.getManageType()) ? devDetails.getManageType() : ""); + csDeviceDetails.setDevCode(StringUtils.isNotBlank(devDetails.getDevCode()) ? devDetails.getDevCode() : ""); + csDeviceDetails.setStorageNum(devDetails.getStorageNum()); + // 用于编辑显示数据是否选中(前端根据typeId和id结合判断) + csDeviceDetails.setId(devDetails.getId()); + } + } + } csDeviceVo.setDevInfo(devInfo); csDeviceVo.setDevDetailsList(devDetailsList); return csDeviceVo; @@ -330,7 +358,8 @@ public class DevChangeServiceImpl implements DevChangeService { throw new RuntimeException("删除设备详情失败"); } } catch (RuntimeException e) { - e.printStackTrace(); + log.error(e.getMessage()); + return AjaxResult.error("删除失败"); } return AjaxResult.success("删除成功"); } @@ -345,6 +374,18 @@ public class DevChangeServiceImpl implements DevChangeService { return mapper.getList(dto); } + /** + * 审核出库 + * @param csDeviceInfo + * @return + */ + @Override + public AjaxResult approve(CsDeviceInfo csDeviceInfo) { + csDeviceInfo.setUpdateBy(SecurityUtils.getLoginUser().getUserid().toString()); + int num = mapper.approve(csDeviceInfo); + return num > 0 ? AjaxResult.success("审核成功") : AjaxResult.error("审核失败"); + } + /** * 生成任务编号 * @param thisMonthMaxOrder diff --git a/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/devchange/DevChangeMapper.xml b/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/devchange/DevChangeMapper.xml index dfdb621..986bb00 100644 --- a/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/devchange/DevChangeMapper.xml +++ b/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/devchange/DevChangeMapper.xml @@ -234,7 +234,8 @@ @@ -331,57 +357,14 @@ + + + insert into cs_device_change(change_status, type, lease_type, pro_code, pro_name, pro_type, voltage_level, use_unit, pro_province, pro_city, - pro_county, create_time, create_user, del_flag, change_unit, code, use_time) + pro_county, create_time, create_user, del_flag, change_unit, code, use_time,review_status) values ( #{changeStatus}, #{type}, #{leaseType}, #{proCode}, #{proName}, #{proType}, #{voltageLevel}, #{useUnit}, #{proProvince}, #{proCity}, #{proCounty}, - now(), #{createUser}, 0, #{changeUnit}, #{code}, #{useTime}) + now(), #{createBy}, 0, #{changeUnit}, #{code}, #{useTime}, #{taskStatus}) @@ -463,7 +517,7 @@ pro_county = #{proCounty}, - + use_time = #{useTime}, @@ -474,6 +528,20 @@ where id = #{id} + + update cs_device_change + + + review_status = #{taskStatus}, + + + review_by = #{updateBy}, + + review_time = NOW() + + where id = #{id} + + update cs_device_change_details set del_flag = '1' where change_id = #{id}