From aecc3d5eda3f7aedf4d45e9c2cbd71d0466b9fc6 Mon Sep 17 00:00:00 2001 From: FCL Date: Sat, 28 Feb 2026 09:08:10 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E8=AE=BE=E5=A4=87=E7=8A=B6=E6=80=81?= =?UTF-8?q?=E5=AD=97=E6=AE=B5=E8=B0=83=E6=95=B4=EF=BC=8C=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E5=AD=97=E6=AE=B5=EF=BC=8C=E6=94=B9=E4=B8=BA?= =?UTF-8?q?json=E5=AD=97=E6=AE=B5=E4=BF=9D=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/DeviceInfomationController.java | 32 +++- .../vo/DeviceInfomationPageReqVO.java | 23 +-- .../controller/vo/DeviceInfomationRespVO.java | 25 +-- .../vo/DeviceInfomationSaveReqVO.java | 18 --- .../dal/dataobject/DeviceInfomationDO.java | 34 +---- .../dal/mapper/DeviceInfomationMapper.java | 44 +----- .../resource/device/enums/DeviceBizEnum.java | 71 ++++++++- .../service/DeviceApplyServiceImpl.java | 60 ++------ .../service/DeviceInfomationService.java | 5 +- .../service/DeviceInfomationServiceImpl.java | 144 +++++++++--------- .../dal/mapper/DeviceInfomationMapper.xml | 91 +++++++++++ 11 files changed, 287 insertions(+), 260 deletions(-) diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/admin/DeviceInfomationController.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/admin/DeviceInfomationController.java index b304d24d..3fb636c6 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/admin/DeviceInfomationController.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/admin/DeviceInfomationController.java @@ -1,5 +1,7 @@ package com.zt.plat.module.qms.resource.device.controller.admin; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; import com.zt.plat.framework.apilog.core.annotation.ApiAccessLog; import com.zt.plat.framework.business.annotation.FileUploadController; import com.zt.plat.framework.business.controller.AbstractFileUploadController; @@ -11,12 +13,10 @@ import com.zt.plat.framework.common.pojo.vo.BatchDeleteReqVO; import com.zt.plat.framework.common.util.object.BeanUtils; import com.zt.plat.framework.datapermission.core.annotation.DeptDataPermissionIgnore; import com.zt.plat.framework.excel.core.util.ExcelUtils; -import com.zt.plat.module.qms.core.constant.DataTypeConstant; import com.zt.plat.module.qms.resource.device.controller.vo.DeviceInfomationPageReqVO; import com.zt.plat.module.qms.resource.device.controller.vo.DeviceInfomationRespVO; import com.zt.plat.module.qms.resource.device.controller.vo.DeviceInfomationSaveReqVO; import com.zt.plat.module.qms.resource.device.dal.dataobject.DeviceInfomationDO; -import com.zt.plat.module.qms.resource.device.dal.dataobject.DeviceProductDO; import com.zt.plat.module.qms.resource.device.service.DeviceInfomationService; import com.zt.plat.module.qms.resource.device.service.DeviceProductService; import io.swagger.v3.oas.annotations.Operation; @@ -26,6 +26,7 @@ import jakarta.annotation.Resource; import jakarta.servlet.http.HttpServletResponse; import jakarta.validation.Valid; import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.util.ObjectUtils; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -53,6 +54,28 @@ public class DeviceInfomationController extends AbstractFileUploadController imp @Resource private DeviceInfomationService deviceInfomationService; @Resource private DeviceProductService deviceProductService; + + + /** + * 更新设备状态 + * 参数举例: + * 维修:{"deviceId": "XX","bizType": "Accept","switchState": "1"} + * 维修完成:{"deviceId": "XX","bizType": "Accept","switchState": "0"} + * 验收:{"deviceId": "XX","bizType": "Accept","switchState": "1"} + * 取消验收:{"deviceId": "XX","bizType": "Accept","switchState": "0"} + * 启用:{"deviceId": "XX","bizType": "Enable","switchState": "1"} + * 停用:{"deviceId": "XX","bizType": "Enable","switchState": "0"} + * 降级:{"deviceId": "XX","bizType": "Demote","switchState": "1"} + * (降级)还原:{"deviceId": "XX","bizType": "Demote","switchState": "0"} + * 报废:{"deviceId": "XX","bizType": "Scrap","switchState": "1"} + * (报废)还原:{"deviceId": "XX","bizType": "Scrap","switchState": "0"} + * */ + @PostMapping("/updateDeviceStatus") + @Operation(summary = "更新设备状态") + public CommonResult updateDeviceStatus(@RequestBody JSONObject param) { + return deviceInfomationService.updateDeviceStatus(param); + } + @PostMapping("/saveDevice") @Operation(summary = "创建设备-设备信息") // @PreAuthorize("@ss.hasPermission('resource:device-infomation:create')") @@ -114,6 +137,11 @@ public class DeviceInfomationController extends AbstractFileUploadController imp pageReqVO.setProductId(null); } } + String deviceStatus = pageReqVO.getDeviceStatus(); + if("0".equals(deviceStatus)) + deviceStatus = "{\"Enable\":\"1\"}"; + if(!ObjectUtils.isEmpty(deviceStatus)) + pageReqVO.setDeviceStatusJson(JSON.parseObject(deviceStatus)); PageResult pageResult = deviceInfomationService.getDeviceInfomationPage(pageReqVO); return success(BeanUtils.toBean(pageResult, DeviceInfomationRespVO.class)); } diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/vo/DeviceInfomationPageReqVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/vo/DeviceInfomationPageReqVO.java index dbb3db7b..4a1ba429 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/vo/DeviceInfomationPageReqVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/vo/DeviceInfomationPageReqVO.java @@ -1,5 +1,6 @@ package com.zt.plat.module.qms.resource.device.controller.vo; +import com.alibaba.fastjson.JSONObject; import com.zt.plat.framework.common.pojo.PageParam; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; @@ -27,24 +28,6 @@ public class DeviceInfomationPageReqVO extends PageParam { @Schema(description = "设备状态", example = "2") private String deviceStatus; - @Schema(description = "维修状态") - private String repairFlag; - - @Schema(description = "降级状态") - private String demoteFlag; - - @Schema(description = "报废状态") - private String scrapFlag; - - @Schema(description = "停用状态") - private String disableFlag; - - @Schema(description = "验收状态") - private String acceptanceFlag; - - @Schema(description = "外借状态") - private String lendFlag; - @Schema(description = "使用中状态") private String inUseFlag; @@ -135,4 +118,8 @@ public class DeviceInfomationPageReqVO extends PageParam { //===================扩展属性============== @Schema(description = "大类ids") List productIds; + + @Schema(description = "设备状态JSON") + JSONObject deviceStatusJson; + } \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/vo/DeviceInfomationRespVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/vo/DeviceInfomationRespVO.java index cc6549aa..38a505d0 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/vo/DeviceInfomationRespVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/vo/DeviceInfomationRespVO.java @@ -2,6 +2,7 @@ package com.zt.plat.module.qms.resource.device.controller.vo; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.fastjson.JSONObject; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; @@ -33,30 +34,6 @@ public class DeviceInfomationRespVO { @ExcelProperty("设备状态") private String deviceStatus; - @Schema(description = "维修状态") - @ExcelProperty("维修状态") - private String repairFlag; - - @Schema(description = "降级状态") - @ExcelProperty("降级状态") - private String demoteFlag; - - @Schema(description = "报废状态") - @ExcelProperty("报废状态") - private String scrapFlag; - - @Schema(description = "停用状态") - @ExcelProperty("停用状态") - private String disableFlag; - - @Schema(description = "验收状态") - @ExcelProperty("验收状态") - private String acceptanceFlag; - - @Schema(description = "外借状态") - @ExcelProperty("外借状态") - private String lendFlag; - @Schema(description = "使用中状态") @ExcelProperty("使用中状态") private String inUseFlag; diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/vo/DeviceInfomationSaveReqVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/vo/DeviceInfomationSaveReqVO.java index 5b487dc2..59c17a94 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/vo/DeviceInfomationSaveReqVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/controller/vo/DeviceInfomationSaveReqVO.java @@ -28,24 +28,6 @@ public class DeviceInfomationSaveReqVO { @Schema(description = "设备状态", example = "2") private String deviceStatus; - @Schema(description = "维修状态") - private String repairFlag; - - @Schema(description = "降级状态") - private String demoteFlag; - - @Schema(description = "报废状态") - private String scrapFlag; - - @Schema(description = "停用状态") - private String disableFlag; - - @Schema(description = "验收状态") - private String acceptanceFlag; - - @Schema(description = "外借状态") - private String lendFlag; - @Schema(description = "使用中状态") private String inUseFlag; diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/dal/dataobject/DeviceInfomationDO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/dal/dataobject/DeviceInfomationDO.java index 6345191d..ee27b67b 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/dal/dataobject/DeviceInfomationDO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/dal/dataobject/DeviceInfomationDO.java @@ -53,38 +53,8 @@ public class DeviceInfomationDO extends BusinessBaseDO { @TableField("DEV_STS") private String deviceStatus; /** - * 维修状态 - */ - @TableField("RPR_FLG") - private String repairFlag; - /** - * 降级状态 - */ - @TableField("DMOT_FLG") - private String demoteFlag; - /** - * 报废状态 - */ - @TableField("SCR_FLG") - private String scrapFlag; - /** - * 停用状态 - */ - @TableField("DSBL_FLG") - private String disableFlag; - /** - * 验收状态 - */ - @TableField("ACPT_FLG") - private String acceptanceFlag; - /** - * 外借状态 - */ - @TableField("LND_FLG") - private String lendFlag; - /** - * 使用中状态 - */ + * 使用中状态 + */ @TableField("IN_USE_FLG") private String inUseFlag; /** diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/dal/mapper/DeviceInfomationMapper.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/dal/mapper/DeviceInfomationMapper.java index e0efedac..fe1f490e 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/dal/mapper/DeviceInfomationMapper.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/dal/mapper/DeviceInfomationMapper.java @@ -1,5 +1,7 @@ package com.zt.plat.module.qms.resource.device.dal.mapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.zt.plat.framework.common.pojo.PageResult; import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX; import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX; @@ -24,47 +26,7 @@ import static com.zt.plat.module.qms.enums.QmsPermissionConstant.DEVICE_MANAGER; @Mapper public interface DeviceInfomationMapper extends BaseMapperX { -// @QmsPermission(deptDataRoleCodes = DEPT_DATA_AND_SUB, moduleDataRoleCodes = DEVICE_MANAGER) - default PageResult selectPage(DeviceInfomationPageReqVO reqVO) { - return selectPage(reqVO, new LambdaQueryWrapperX() - .eqIfPresent(DeviceInfomationDO::getProductId, reqVO.getProductId()) - .inIfPresent(DeviceInfomationDO::getProductId, reqVO.getProductIds()) - .likeIfPresent(DeviceInfomationDO::getDeviceName, reqVO.getDeviceName()) - .eqIfPresent(DeviceInfomationDO::getAlias, reqVO.getAlias()) - .eqIfPresent(DeviceInfomationDO::getDeviceStatus, reqVO.getDeviceStatus()) - .eqIfPresent(DeviceInfomationDO::getRepairFlag, reqVO.getRepairFlag()) - .eqIfPresent(DeviceInfomationDO::getDemoteFlag, reqVO.getDemoteFlag()) - .eqIfPresent(DeviceInfomationDO::getScrapFlag, reqVO.getScrapFlag()) - .eqIfPresent(DeviceInfomationDO::getDisableFlag, reqVO.getDisableFlag()) - .eqIfPresent(DeviceInfomationDO::getAcceptanceFlag, reqVO.getAcceptanceFlag()) - .eqIfPresent(DeviceInfomationDO::getLendFlag, reqVO.getLendFlag()) - .eqIfPresent(DeviceInfomationDO::getInUseFlag, reqVO.getInUseFlag()) - .eqIfPresent(DeviceInfomationDO::getGradeCategory, reqVO.getGradeCategory()) - .eqIfPresent(DeviceInfomationDO::getDeviceNumber, reqVO.getDeviceNumber()) - .eqIfPresent(DeviceInfomationDO::getDeviceCode, reqVO.getDeviceCode()) - .eqIfPresent(DeviceInfomationDO::getAssetCode, reqVO.getAssetCode()) - .eqIfPresent(DeviceInfomationDO::getFactoryCode, reqVO.getFactoryCode()) - .eqIfPresent(DeviceInfomationDO::getPosition, reqVO.getPosition()) - .eqIfPresent(DeviceInfomationDO::getPurchasePrice, reqVO.getPurchasePrice()) - .betweenIfPresent(DeviceInfomationDO::getPurchaseDate, reqVO.getPurchaseDate()) - .betweenIfPresent(DeviceInfomationDO::getProductiveDate, reqVO.getProductiveDate()) - .betweenIfPresent(DeviceInfomationDO::getDeployDate, reqVO.getDeployDate()) - .eqIfPresent(DeviceInfomationDO::getDeployEngineer, reqVO.getDeployEngineer()) - .eqIfPresent(DeviceInfomationDO::getDeployLocation, reqVO.getDeployLocation()) - .eqIfPresent(DeviceInfomationDO::getAcceptanceUserId, reqVO.getAcceptanceUserId()) - .likeIfPresent(DeviceInfomationDO::getAcceptanceUserName, reqVO.getAcceptanceUserName()) - .eqIfPresent(DeviceInfomationDO::getManagerUserId, reqVO.getManagerUserId()) - .likeIfPresent(DeviceInfomationDO::getManagerUserName, reqVO.getManagerUserName()) - .eqIfPresent(DeviceInfomationDO::getCustomFormData, reqVO.getCustomFormData()) - .eqIfPresent(DeviceInfomationDO::getPhoto, reqVO.getPhoto()) - .eqIfPresent(DeviceInfomationDO::getDeviceParameter, reqVO.getDeviceParameter()) - .eqIfPresent(DeviceInfomationDO::getStateShow, reqVO.getStateShow()) - .eqIfPresent(DeviceInfomationDO::getStateStack, reqVO.getStateStack()) - .eqIfPresent(DeviceInfomationDO::getSystemDepartmentCode, reqVO.getSystemDepartmentCode()) - .eqIfPresent(DeviceInfomationDO::getRemark, reqVO.getRemark()) - .betweenIfPresent(DeviceInfomationDO::getCreateTime, reqVO.getCreateTime()) - .orderByDesc(DeviceInfomationDO::getId)); - } + Page selectPage(IPage page, @Param("param") DeviceInfomationPageReqVO param); //查询需要“某个业务类型”的设备列表 List getListNeedByRule(@Param("param") Map param); diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/enums/DeviceBizEnum.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/enums/DeviceBizEnum.java index ffacc1a3..82c19bc4 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/enums/DeviceBizEnum.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/enums/DeviceBizEnum.java @@ -1,16 +1,22 @@ package com.zt.plat.module.qms.resource.device.enums; +import com.alibaba.fastjson.JSONObject; + +import java.util.Objects; + public enum DeviceBizEnum { accept("Accept", "验收"), repair("Repair", "维修"), demote("Demote", "降级"), scrap("Scrap", "报废"), - disable("Disable", "停用"), +// disable("Disable", "停用"), enable("Enable", "启用"), - borrow("Borrow", "借用"), - giveback("Giveback", "归还"); + borrow("Borrow", "借用"); +// giveback("Giveback", "归还"); + public static final Integer switchOn = 1; + public static final Integer switchOff = 0; private String code; private String describe; @@ -48,6 +54,65 @@ public enum DeviceBizEnum { return describe; } + /* + * 根据业务类型、开关状态,获取状态值 + * + * */ + public static JSONObject getStateBySwitch(String code, Integer switchState){ + DeviceBizEnum biz = getByCode(code); + String flag = ""; + boolean updateStateShow = false; + if(biz == null) + return null; + switch (biz){ + case accept: + flag = String.valueOf(switchState); + updateStateShow = false; + break; + case repair: + flag = String.valueOf(switchState); + updateStateShow = true; + break; + case demote: + flag = String.valueOf(switchState); + updateStateShow = true; + break; + case scrap: + flag = String.valueOf(switchState); + updateStateShow = true; + break; +// case disable: +// flag = String.valueOf(switchState); +// updateStateShow = true; +// break; + case enable: + if(Objects.equals(switchState, switchOn)) + flag = "0"; + else + flag = "1"; + updateStateShow = true; + break; + case borrow: + flag = String.valueOf(switchState); + updateStateShow = true; + break; +// case giveback: +// if(Objects.equals(switchState, DeviceBizEnum.switchOn)) +// flag = "0"; +// else +// flag = "1"; +// updateStateShow = true; +// break; + default: + return null; + } + JSONObject json = new JSONObject(); + json.put("flag", flag); + json.put("updateStateShow", updateStateShow); + return json; + } + + public String getCode() { return code; } diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/service/DeviceApplyServiceImpl.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/service/DeviceApplyServiceImpl.java index 929584fc..229bab78 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/service/DeviceApplyServiceImpl.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/service/DeviceApplyServiceImpl.java @@ -72,8 +72,6 @@ public class DeviceApplyServiceImpl implements DeviceApplyService, BMPCallbackIn @Resource private DataKeyCheckService dataKeyCheckService; @Resource private DataOpinionService dataOpinionService; private final String titleKey = "title"; - private final Integer switchOn = 1; - private final Integer switchOff = 0; private final String borrowConfirmKey = "borrowConfirm"; @Override @@ -259,7 +257,7 @@ public class DeviceApplyServiceImpl implements DeviceApplyService, BMPCallbackIn //设备维修流程,修改设备状态为维修中 if(DeviceBizEnum.repair.getCode().equals(businessCode)){ - updateDeviceStateByApply(entity, switchOn); + updateDeviceStateByApply(entity, DeviceBizEnum.switchOn); } return CommonResult.success(respVO); @@ -425,11 +423,11 @@ public class DeviceApplyServiceImpl implements DeviceApplyService, BMPCallbackIn if("1".equals(lastActivityFlag)){ entity.setBusinessStatus(QmsCommonConstant.COMPLETED); //结束审批 //更新设备状态 - updateDeviceStateByApply(entity, switchOff); + updateDeviceStateByApply(entity, DeviceBizEnum.switchOff); } if("1".equals(borrowConfirm)){ //更新设备状态 - updateDeviceStateByApply(entity, switchOn); + updateDeviceStateByApply(entity, DeviceBizEnum.switchOn); } } deviceApplyMapper.updateById(entity); @@ -437,57 +435,21 @@ public class DeviceApplyServiceImpl implements DeviceApplyService, BMPCallbackIn return CommonResult.success(ret); } + /* + * 修改设备状态 + * switchState: 切换状态(switchOn(1): 切换为开, switchOff(0):切换为关。 按bizType判断要更新的字段。按bizType语义判断更新的值。) + * */ @Override + @Transactional(rollbackFor = Exception.class) public void updateDeviceStateByApply(DeviceApplyDO entity, Integer switchState){ List deviceList = new ArrayList<>(); List detailList = deviceApplyDetailService.selectListByApplyId(entity.getId()); String bizType = entity.getBusinessCode(); - String flag = ""; - boolean updateStateShow = false; - DeviceBizEnum biz = DeviceBizEnum.getByCode(bizType); - if(biz == null) - throw exception0(DEVICE_INFOMATION_NOT_EXISTS.getCode(), "更新设备状态时发生错误,业务类型不存在:" + bizType); - if (bizType.equals(DeviceBizEnum.accept.getCode())) { - flag = String.valueOf(switchState); - updateStateShow = false; - } - if (bizType.equals(DeviceBizEnum.repair.getCode())) { - flag = String.valueOf(switchState); - updateStateShow = true; - } - if (bizType.equals(DeviceBizEnum.demote.getCode())) { - flag = String.valueOf(switchState); - updateStateShow = true; - } - if (bizType.equals(DeviceBizEnum.scrap.getCode())) { - flag = String.valueOf(switchState); - updateStateShow = true; - } - if (bizType.equals(DeviceBizEnum.disable.getCode())) { - flag = String.valueOf(switchState); - updateStateShow = true; - } - if(bizType.equals(DeviceBizEnum.enable.getCode())){ - if(Objects.equals(switchState, switchOn)) - flag = "0"; - else - flag = "1"; - updateStateShow = true; - } - if (bizType.equals(DeviceBizEnum.borrow.getCode())) { - flag = String.valueOf(switchState); - updateStateShow = true; - } - if(bizType.equals(DeviceBizEnum.giveback.getCode())){ - if(Objects.equals(switchState, switchOn)) - flag = "0"; - else - flag = "1"; - updateStateShow = true; - } +// String flag = json.getString("flag"); +// boolean updateStateShow = json.getBoolean("updateStateShow"); for(DeviceApplyDetailDO detail : detailList){ DeviceInfomationDO device = deviceInfomationService.getDeviceInfomation(detail.getDeviceInfomationId()); - device = deviceInfomationService.initDeviceStatusByBizType(device, bizType, flag, updateStateShow).getData(); + device = deviceInfomationService.initDeviceStatusByBizType(device, bizType, switchState).getData(); deviceList.add(device); } deviceInfomationService.updateBatch(deviceList); diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/service/DeviceInfomationService.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/service/DeviceInfomationService.java index 49f4bae5..73b65f7c 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/service/DeviceInfomationService.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/service/DeviceInfomationService.java @@ -21,6 +21,9 @@ public interface DeviceInfomationService { CommonResult saveDevice(@Valid DeviceInfomationSaveReqVO reqVO); + //更新设备状态 + CommonResult updateDeviceStatus(JSONObject param); + CommonResult checkDeviceUsable(Long id ); DeviceInfomationDO getByCode(String code); @@ -35,7 +38,7 @@ public interface DeviceInfomationService { List getListNeedByRule(JSONObject params); // 更新设备的生命周期状态 - CommonResult initDeviceStatusByBizType(DeviceInfomationDO info, String bizType, String flag, boolean updateStateShow); + CommonResult initDeviceStatusByBizType(DeviceInfomationDO info, String bizType, Integer switchState); diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/service/DeviceInfomationServiceImpl.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/service/DeviceInfomationServiceImpl.java index 20a55b6a..0b20b507 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/service/DeviceInfomationServiceImpl.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/device/service/DeviceInfomationServiceImpl.java @@ -6,7 +6,8 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; -import com.baomidou.mybatisplus.core.toolkit.support.SFunction; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.zt.plat.framework.common.pojo.CommonResult; import com.zt.plat.framework.common.pojo.PageResult; import com.zt.plat.framework.common.util.object.BeanUtils; @@ -14,7 +15,6 @@ import com.zt.plat.module.qms.core.constant.DataTypeConstant; import com.zt.plat.module.qms.resource.device.controller.vo.DeviceInfomationPageReqVO; import com.zt.plat.module.qms.resource.device.controller.vo.DeviceInfomationRespVO; import com.zt.plat.module.qms.resource.device.controller.vo.DeviceInfomationSaveReqVO; -import com.zt.plat.module.qms.resource.device.controller.vo.DeviceProductRespVO; import com.zt.plat.module.qms.resource.device.dal.dataobject.DeviceInfoWithBizConfigVO; import com.zt.plat.module.qms.resource.device.dal.dataobject.DeviceInfomationDO; import com.zt.plat.module.qms.resource.device.dal.dataobject.DeviceProductDO; @@ -74,18 +74,34 @@ public class DeviceInfomationServiceImpl implements DeviceInfomationService { return CommonResult.success(BeanUtils.toBean(reqVO, DeviceInfomationRespVO.class)); } + @Override + public CommonResult updateDeviceStatus(JSONObject param) { + Long deviceId = param.getLong("deviceId"); + String bizType = param.getString("bizType"); + Integer switchState = param.getInteger("switchState"); + DeviceInfomationDO deviceDO = this.getDeviceInfomation(deviceId); + initDeviceStatusByBizType(deviceDO, bizType, switchState); + this.updateDeviceInfomation(deviceDO); + return CommonResult.success(BeanUtils.toBean(deviceDO, DeviceInfomationRespVO.class)); + } + @Override public CommonResult checkDeviceUsable(Long id) { DeviceInfomationDO deviceDO = this.getDeviceInfomation(id); if (ObjectUtils.isEmpty(deviceDO)) return CommonResult.error(DEVICE_INFOMATION_NOT_EXISTS.getCode(), "设备不存在,请刷新后重试!"); - if ("1".equals(deviceDO.getDisableFlag())) + String deviceStatus = deviceDO.getDeviceStatus(); + if(ObjectUtils.isEmpty(deviceStatus)) + return CommonResult.success(true); + JSONObject deviceStatusJson = JSON.parseObject(deviceStatus); + + if ("1".equals(deviceStatusJson.getString(DeviceBizEnum.enable.getCode()))) return CommonResult.error(DEVICE_INFOMATION_NOT_EXISTS.getCode(), "设备已停用!"); - if ("1".equals(deviceDO.getScrapFlag())) + if ("1".equals(deviceStatusJson.getString(DeviceBizEnum.scrap.getCode()))) return CommonResult.error(DEVICE_INFOMATION_NOT_EXISTS.getCode(), "设备已报废!"); - if ("1".equals(deviceDO.getLendFlag())) + if ("1".equals(deviceStatusJson.getString(DeviceBizEnum.borrow.getCode()))) return CommonResult.error(DEVICE_INFOMATION_NOT_EXISTS.getCode(), "设备已外借!"); - if ("1".equals(deviceDO.getRepairFlag())) + if ("1".equals(deviceStatusJson.getString(DeviceBizEnum.repair.getCode()))) return CommonResult.error(DEVICE_INFOMATION_NOT_EXISTS.getCode(), "设备在维修中"); return CommonResult.success(true); } @@ -102,76 +118,57 @@ public class DeviceInfomationServiceImpl implements DeviceInfomationService { * */ @Override // @Transactional(rollbackFor = Exception.class) - public CommonResult initDeviceStatusByBizType(DeviceInfomationDO info, String bizType, String flag, boolean updateStateShow) { + public CommonResult initDeviceStatusByBizType(DeviceInfomationDO info, String bizType, Integer switchState) { String stateStack = info.getStateStack(); JSONArray arr = new JSONArray(); if (!ObjectUtils.isEmpty(stateStack)) arr = JSON.parseArray(stateStack); - String state = "-1"; -// DeviceInfomationDO updateInfo = new DeviceInfomationDO(); -// updateInfo.setId(info.getId()); - SFunction tableField = null; +// String state = "-1"; DeviceBizEnum biz = DeviceBizEnum.getByCode(bizType); - if(biz == null) + if (biz == null) throw exception0(DEVICE_INFOMATION_NOT_EXISTS.getCode(), "更新设备状态时发生错误,业务类型不存在:" + bizType); - /* - todo running状态处理。需要额外字段记录running状态 - todo 设备状态改为json保存。 - */ - if (bizType.equals(DeviceBizEnum.accept.getCode())) { - if ("1".equals(flag)) - info.setAcceptanceFlag("1"); - else if ("0".equals(flag)) - info.setAcceptanceFlag("0"); - else - info.setAcceptanceFlag(flag); - } - if (bizType.equals(DeviceBizEnum.repair.getCode())) { - if ("1".equals(flag)) - info.setRepairFlag("1"); - else if ("0".equals(flag)) - info.setRepairFlag("0"); - else - info.setRepairFlag(flag); - } - if (bizType.equals(DeviceBizEnum.demote.getCode())) { - if ("1".equals(flag)) - info.setDemoteFlag("1"); - else if ("0".equals(flag)) - info.setDemoteFlag("0"); - else - info.setDemoteFlag(flag); - } - if (bizType.equals(DeviceBizEnum.scrap.getCode())) { - if ("1".equals(flag)) - info.setScrapFlag("1"); - else if ("0".equals(flag)) - info.setScrapFlag("0"); - else - info.setScrapFlag(flag); - } - if (bizType.equals(DeviceBizEnum.disable.getCode()) || bizType.equals(DeviceBizEnum.enable.getCode())) { - if ("1".equals(flag)) - info.setDisableFlag("1"); - else if ("0".equals(flag)) - info.setDisableFlag("0"); - else - info.setDisableFlag(flag); - } - if (bizType.equals(DeviceBizEnum.borrow.getCode()) || bizType.equals(DeviceBizEnum.giveback.getCode())) { - if ("1".equals(flag)) - info.setLendFlag("1"); - else if ("0".equals(flag)) - info.setLendFlag("0"); - else - info.setLendFlag(flag); + JSONObject bizJson = DeviceBizEnum.getStateBySwitch(bizType, switchState); + if(bizJson == null) + throw exception0(DEVICE_INFOMATION_NOT_EXISTS.getCode(), "更新设备状态时发生错误,业务类型不存在:" + bizType); + String flag = bizJson.getString("flag"); + boolean updateStateShow = bizJson.getBoolean("updateStateShow"); + String deviceStatus = info.getDeviceStatus(); + JSONObject deviceStatusJson = new JSONObject(); + if(!ObjectUtils.isEmpty(deviceStatus)){ + deviceStatusJson = JSON.parseObject(deviceStatus); +// Object obj = JSON.parse(deviceStatus); +// if (obj instanceof JSONObject) { +// deviceStatusJson = (JSONObject) obj; +// }else if (obj instanceof String) { +// // 如果解析出来是 String,说明它是 "{\"A\":\"1\"}" 这种格式 +// // 需要再解析一次 +// String innerJson = (String) obj; +// deviceStatusJson = JSON.parseObject(innerJson); +// } } +// + deviceStatusJson.put(bizType, flag); + info.setDeviceStatus(deviceStatusJson.toJSONString()); +// if (bizType.equals(DeviceBizEnum.accept.getCode())) { +// info.setAcceptanceFlag(flag); +// } +// if (bizType.equals(DeviceBizEnum.repair.getCode())) { +// info.setRepairFlag(flag); +// } +// if (bizType.equals(DeviceBizEnum.demote.getCode())) { +// info.setDemoteFlag(flag); +// } +// if (bizType.equals(DeviceBizEnum.scrap.getCode())) { +// info.setScrapFlag(flag); +// } +// if (bizType.equals(DeviceBizEnum.enable.getCode())) { +// info.setDisableFlag(flag); +// } +// if (bizType.equals(DeviceBizEnum.borrow.getCode())) { +// info.setLendFlag(flag); +// } //未传入状态,则切换状态 - if (flag == null) { - state = "1".equals(state) ? "0" : "1"; - } else { - state = flag.equals(1) ? "1" : "0"; - } + if(updateStateShow){ JSONObject json = null; int index = -1; @@ -188,18 +185,18 @@ public class DeviceInfomationServiceImpl implements DeviceInfomationService { //如果栈里不存在记录 if (json == null) { //状态为正常,不做处理 - if (!"0".equals(state)) { + if (!"0".equals(flag)) { //插入记录 json = new JSONObject(); json.put("bizType", bizType); - json.put("state", state); + json.put("state", flag); arr.add(0, json); } } else { //存在记录,移至最前端 if (itemFindFlag) arr.remove(index); - if ("1".equals(state)) + if ("1".equals(flag)) arr.add(0, json); } info.setStateStack(arr.toJSONString()); @@ -327,7 +324,10 @@ public class DeviceInfomationServiceImpl implements DeviceInfomationService { @Override public PageResult getDeviceInfomationPage(DeviceInfomationPageReqVO pageReqVO) { - return deviceInfomationMapper.selectPage(pageReqVO); + IPage page = new Page<>(pageReqVO.getPageNo(), pageReqVO.getPageSize()); + Page pageList = deviceInfomationMapper.selectPage(page, pageReqVO); + PageResult pageResult = new PageResult<>(pageList.getRecords(), pageList.getTotal()); + return pageResult; } } \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/resource/device/dal/mapper/DeviceInfomationMapper.xml b/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/resource/device/dal/mapper/DeviceInfomationMapper.xml index a175453a..de991443 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/resource/device/dal/mapper/DeviceInfomationMapper.xml +++ b/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/resource/device/dal/mapper/DeviceInfomationMapper.xml @@ -9,6 +9,97 @@ 文档可见:https://www.iocoder.cn/MyBatis/x-plugins/ --> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +