lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/BusinessCodeConst.java
@@ -21,6 +21,8 @@ String THIRD_MAINTENANCE_CODE_RULE = "ThirdMaintenanceCodeRule"; //设å¤ååºå½è¿ String LEAN_OUT_CODE_RULE = "EquipmentLeanOutCodeRule"; //设å¤å°åå¯å° String SEAL_UP_CODE_RULE = "EquipmentSealUpCodeRule"; /** * å¤ä»¶è¯·è´åç¶æ 1:å·²å建 2:å·²æäº¤ 3:å·²éè¿ 4:已驳å 5:已宿 */ lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/EquipmentSealUpStatusEnum.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,23 @@ package org.jeecg.modules.eam.constant; /** * @author cuikaidong * @date 2025/5/22 */ public enum EquipmentSealUpStatusEnum { WAIT_SUBMIT, //å¾ æäº¤ WAIT_CHECK, //å¾ å®¡æ ¸ SEALED, //å·²å°å COMPLETE, //已宿 ; public static EquipmentSealUpStatusEnum getInstance(String code) { EquipmentSealUpStatusEnum[] values = EquipmentSealUpStatusEnum.values(); for (EquipmentSealUpStatusEnum value : values) { if (value.name().equals(code)) { return value; } } return null; } } lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentSealUpController.java
@@ -1,167 +1,193 @@ package org.jeecg.modules.eam.controller; import java.util.Arrays; import java.util.List; import java.util.Map; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.net.URLDecoder; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.jeecg.common.api.vo.Result; import org.jeecg.common.system.query.QueryGenerator; import org.jeecg.common.aspect.annotation.AutoLog; import org.jeecg.common.util.oConvertUtils; import org.jeecg.modules.eam.entity.EamEquipmentSealUp; import org.jeecg.modules.eam.service.IEamEquipmentSealUpService; import java.util.Date; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.parser.Feature; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import lombok.extern.slf4j.Slf4j; import org.jeecg.common.system.base.controller.JeecgController; import org.jeecgframework.poi.excel.ExcelImportUtil; import org.jeecgframework.poi.excel.def.NormalExcelConstants; import org.jeecgframework.poi.excel.entity.ExportParams; import org.jeecgframework.poi.excel.entity.ImportParams; import org.jeecgframework.poi.excel.view.JeecgEntityExcelView; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartHttpServletRequest; import org.springframework.web.servlet.ModelAndView; import com.alibaba.fastjson.JSON; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.jeecg.common.api.vo.Result; import org.jeecg.common.aspect.annotation.AutoLog; import org.jeecg.common.constant.CommonConstant; import org.jeecg.common.system.base.controller.JeecgController; import org.jeecg.common.util.TranslateDictTextUtils; import org.jeecg.modules.eam.constant.BusinessCodeConst; import org.jeecg.modules.eam.constant.EquipmentSealUpStatusEnum; import org.jeecg.modules.eam.entity.EamEquipmentSealUp; import org.jeecg.modules.eam.request.EamEquipmentSealUpQuery; import org.jeecg.modules.eam.service.IEamEquipmentSealUpService; import org.jeecg.modules.system.service.ISysBusinessCodeRuleService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; /** import javax.servlet.http.HttpServletRequest; import java.util.Arrays; import java.util.List; /** * @Description: 设å¤å°åå¯å° * @Author: jeecg-boot * @Date: 2025-05-13 * @Date: 2025-05-13 * @Version: V1.0 */ @Slf4j @Api(tags="设å¤å°åå¯å°") @Api(tags = "设å¤å°åå¯å°") @RestController @RequestMapping("/eam/eamEquipmentSealUp") public class EamEquipmentSealUpController extends JeecgController<EamEquipmentSealUp, IEamEquipmentSealUpService> { @Autowired private IEamEquipmentSealUpService eamEquipmentSealUpService; /** * å页å表æ¥è¯¢ * * @param eamEquipmentSealUp * @param pageNo * @param pageSize * @param req * @return */ @AutoLog(value = "设å¤å°åå¯å°-å页å表æ¥è¯¢") @ApiOperation(value="设å¤å°åå¯å°-å页å表æ¥è¯¢", notes="设å¤å°åå¯å°-å页å表æ¥è¯¢") @GetMapping(value = "/list") public Result<?> queryPageList(EamEquipmentSealUp eamEquipmentSealUp, @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, HttpServletRequest req) { QueryWrapper<EamEquipmentSealUp> queryWrapper = QueryGenerator.initQueryWrapper(eamEquipmentSealUp, req.getParameterMap()); Page<EamEquipmentSealUp> page = new Page<EamEquipmentSealUp>(pageNo, pageSize); IPage<EamEquipmentSealUp> pageList = eamEquipmentSealUpService.page(page, queryWrapper); return Result.OK(pageList); } /** * æ·»å * * @param eamEquipmentSealUp * @return */ @AutoLog(value = "设å¤å°åå¯å°-æ·»å ") @ApiOperation(value="设å¤å°åå¯å°-æ·»å ", notes="设å¤å°åå¯å°-æ·»å ") @PostMapping(value = "/add") public Result<?> add(@RequestBody EamEquipmentSealUp eamEquipmentSealUp) { eamEquipmentSealUpService.save(eamEquipmentSealUp); return Result.OK("æ·»å æåï¼"); } /** * ç¼è¾ * * @param eamEquipmentSealUp * @return */ @AutoLog(value = "设å¤å°åå¯å°-ç¼è¾") @ApiOperation(value="设å¤å°åå¯å°-ç¼è¾", notes="设å¤å°åå¯å°-ç¼è¾") @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST}) public Result<?> edit(@RequestBody EamEquipmentSealUp eamEquipmentSealUp) { eamEquipmentSealUpService.updateById(eamEquipmentSealUp); return Result.OK("ç¼è¾æå!"); } /** * éè¿idå é¤ * * @param id * @return */ @AutoLog(value = "设å¤å°åå¯å°-éè¿idå é¤") @ApiOperation(value="设å¤å°åå¯å°-éè¿idå é¤", notes="设å¤å°åå¯å°-éè¿idå é¤") @DeleteMapping(value = "/delete") public Result<?> delete(@RequestParam(name="id",required=true) String id) { eamEquipmentSealUpService.removeById(id); return Result.OK("å 餿å!"); } /** * æ¹éå é¤ * * @param ids * @return */ @AutoLog(value = "设å¤å°åå¯å°-æ¹éå é¤") @ApiOperation(value="设å¤å°åå¯å°-æ¹éå é¤", notes="设å¤å°åå¯å°-æ¹éå é¤") @DeleteMapping(value = "/deleteBatch") public Result<?> deleteBatch(@RequestParam(name="ids",required=true) String ids) { this.eamEquipmentSealUpService.removeByIds(Arrays.asList(ids.split(","))); return Result.OK("æ¹éå 餿åï¼"); } /** * éè¿idæ¥è¯¢ * * @param id * @return */ @AutoLog(value = "设å¤å°åå¯å°-éè¿idæ¥è¯¢") @ApiOperation(value="设å¤å°åå¯å°-éè¿idæ¥è¯¢", notes="设å¤å°åå¯å°-éè¿idæ¥è¯¢") @GetMapping(value = "/queryById") public Result<?> queryById(@RequestParam(name="id",required=true) String id) { EamEquipmentSealUp eamEquipmentSealUp = eamEquipmentSealUpService.getById(id); return Result.OK(eamEquipmentSealUp); } @Autowired private IEamEquipmentSealUpService eamEquipmentSealUpService; @Autowired private ISysBusinessCodeRuleService businessCodeRuleService; @Autowired private ObjectMapper objectMapper; @Autowired private TranslateDictTextUtils translateDictTextUtils; /** * 导åºexcel * * @param request * @param eamEquipmentSealUp */ @RequestMapping(value = "/exportXls") public ModelAndView exportXls(HttpServletRequest request, EamEquipmentSealUp eamEquipmentSealUp) { return super.exportXls(request, eamEquipmentSealUp, EamEquipmentSealUp.class, "设å¤å°åå¯å°"); } /** * å页å表æ¥è¯¢ * * @param query * @param pageNo * @param pageSize * @param req * @return */ @AutoLog(value = "设å¤å°åå¯å°-å页å表æ¥è¯¢") @ApiOperation(value = "设å¤å°åå¯å°-å页å表æ¥è¯¢", notes = "设å¤å°åå¯å°-å页å表æ¥è¯¢") @GetMapping(value = "/list") public Result<?> queryPageList(EamEquipmentSealUpQuery query, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest req) { Page<EamEquipmentSealUp> page = new Page<EamEquipmentSealUp>(pageNo, pageSize); IPage<EamEquipmentSealUp> pageList = eamEquipmentSealUpService.queryPageList(page, query); return Result.OK(pageList); } /** * éè¿excelå¯¼å ¥æ°æ® * * @param request * @param response * @return */ @RequestMapping(value = "/importExcel", method = RequestMethod.POST) public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) { return super.importExcel(request, response, EamEquipmentSealUp.class); } /** * æ·»å * * @param request * @return */ @AutoLog(value = "设å¤å°åå¯å°-æ·»å ") @ApiOperation(value = "设å¤å°åå¯å°-æ·»å ", notes = "设å¤å°åå¯å°-æ·»å ") @PostMapping(value = "/add") public Result<?> add(@RequestBody EamEquipmentSealUp request) { if (request == null) { return Result.error("æ·»å ç对象ä¸è½ä¸ºç©ºï¼"); } request.setCode(businessCodeRuleService.generateBusinessCodeSeq(BusinessCodeConst.SEAL_UP_CODE_RULE)); request.setSealStatus(EquipmentSealUpStatusEnum.WAIT_SUBMIT.name()); request.setDelFlag(CommonConstant.DEL_FLAG_0); boolean b = eamEquipmentSealUpService.addSealUp(request); if (!b) { return Result.error("æ·»å 失败ï¼"); } return Result.OK("æ·»å æåï¼"); } /** * ç¼è¾ * * @param request * @return */ @AutoLog(value = "设å¤å°åå¯å°-ç¼è¾") @ApiOperation(value = "设å¤å°åå¯å°-ç¼è¾", notes = "设å¤å°åå¯å°-ç¼è¾") @RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST}) public Result<?> edit(@RequestBody EamEquipmentSealUp request) { if (request == null) { return Result.error("ç¼è¾ç对象ä¸è½ä¸ºç©ºï¼"); } boolean b = eamEquipmentSealUpService.editSealUp(request); if (!b) { return Result.error("ç¼è¾å¤±è´¥ï¼"); } return Result.OK("ç¼è¾æå!"); } /** * éè¿idå é¤ * * @param id * @return */ @AutoLog(value = "设å¤å°åå¯å°-éè¿idå é¤") @ApiOperation(value = "设å¤å°åå¯å°-éè¿idå é¤", notes = "设å¤å°åå¯å°-éè¿idå é¤") @DeleteMapping(value = "/delete") public Result<?> delete(@RequestParam(name = "id", required = true) String id) { EamEquipmentSealUp entity = eamEquipmentSealUpService.getById(id); if (entity != null) { entity.setDelFlag(CommonConstant.DEL_FLAG_1); eamEquipmentSealUpService.updateById(entity); } return Result.OK("å 餿å!"); } /** * æ¹éå é¤ * * @param ids * @return */ @AutoLog(value = "设å¤å°åå¯å°-æ¹éå é¤") @ApiOperation(value = "设å¤å°åå¯å°-æ¹éå é¤", notes = "设å¤å°åå¯å°-æ¹éå é¤") @DeleteMapping(value = "/deleteBatch") public Result<?> deleteBatch(@RequestParam(name = "ids", required = true) String ids) { List<String> list = Arrays.asList(ids.split(",")); list.forEach(id -> { EamEquipmentSealUp entity = eamEquipmentSealUpService.getById(id); if (entity != null) { entity.setDelFlag(CommonConstant.DEL_FLAG_1); eamEquipmentSealUpService.updateById(entity); } }); return Result.OK("æ¹éå 餿åï¼"); } /** * éè¿idæ¥è¯¢ * * @param id * @return */ @AutoLog(value = "设å¤å°åå¯å°-éè¿idæ¥è¯¢") @ApiOperation(value = "设å¤å°åå¯å°-éè¿idæ¥è¯¢", notes = "设å¤å°åå¯å°-éè¿idæ¥è¯¢") @GetMapping(value = "/queryById") public Result<?> queryById(@RequestParam(name = "id", required = true) String id) { EamEquipmentSealUp eamEquipmentSealUp = eamEquipmentSealUpService.getById(id); if (eamEquipmentSealUp == null) { return Result.error("æªæ¾å°å¯¹åºæ°æ®"); } try { String json = objectMapper.writeValueAsString(eamEquipmentSealUp); JSONObject item = JSONObject.parseObject(json, Feature.OrderedField); translateDictTextUtils.translateField("reportUser", eamEquipmentSealUp.getReportUser(), item, "sys_user,realname,username"); return Result.OK(item); } catch (JsonProcessingException e) { return Result.error("æ°æ®è½¬è¯å¤±è´¥ï¼"); } } /** * æäº¤ * * @param id * @return */ @AutoLog(value = "设å¤å°åå¯å°-æäº¤") @ApiOperation(value = "设å¤å°åå¯å°-æäº¤", notes = "设å¤å°åå¯å°-æäº¤") @GetMapping(value = "/submit") public Result<?> submit(@RequestParam(name = "id", required = true) String id) { boolean b = eamEquipmentSealUpService.submit(id); if (!b) { return Result.error("æä½å¤±è´¥ï¼"); } return Result.OK("æä½æå!"); } } lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamEquipmentSealUp.java
@@ -1,14 +1,18 @@ package org.jeecg.modules.eam.entity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; import org.jeecg.common.aspect.annotation.Dict; import org.jeecgframework.poi.excel.annotation.Excel; import org.springframework.format.annotation.DateTimeFormat; import java.io.Serializable; import java.util.Date; @@ -58,12 +62,17 @@ /**ç³è¯·äºº*/ @Excel(name = "ç³è¯·äºº", width = 15) @ApiModelProperty(value = "ç³è¯·äºº") @Dict(dicCode = "sys_user, realname, username") private String reportUser; /**å°åå¼å§æ¶é´*/ @ApiModelProperty(value = "å°åå¼å§æ¶é´") @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date sealStartTime; /**å°åç»ææ¶é´*/ @ApiModelProperty(value = "å°åç»ææ¶é´") @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date sealEndTime; /**å°ååå */ @Excel(name = "å°ååå ", width = 15) @@ -72,6 +81,7 @@ /**å°åç¶æ*/ @Excel(name = "å°åç¶æ", width = 15) @ApiModelProperty(value = "å°åç¶æ") @Dict(dicCode = "equipment_seal_up_status") private String sealStatus; /**å®¡æ ¸äºº*/ @Excel(name = "å®¡æ ¸äºº", width = 15) @@ -79,9 +89,18 @@ private String approvalUser; /**å®¡æ ¸æ¶é´*/ @ApiModelProperty(value = "å®¡æ ¸æ¶é´") @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date approvalTime; /**夿³¨*/ @Excel(name = "夿³¨", width = 15) @ApiModelProperty(value = "夿³¨") private String remark; //å表å±ç¤º @TableField(exist = false) private String equipmentCode; @TableField(exist = false) private String equipmentName; } lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamEquipmentSealUpMapper.java
@@ -2,7 +2,12 @@ import java.util.List; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Constants; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.apache.ibatis.annotations.Param; import org.jeecg.modules.eam.entity.EamEquipmentLeanOut; import org.jeecg.modules.eam.entity.EamEquipmentSealUp; import com.baomidou.mybatisplus.core.mapper.BaseMapper; @@ -13,5 +18,12 @@ * @Version: V1.0 */ public interface EamEquipmentSealUpMapper extends BaseMapper<EamEquipmentSealUp> { /** * å页æ¥è¯¢ * * @param page * @param queryWrapper * @return */ IPage<EamEquipmentSealUp> queryPageList(Page<EamEquipmentSealUp> page, @Param(Constants.WRAPPER) QueryWrapper<EamEquipmentSealUp> queryWrapper); } lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamEquipmentSealUpMapper.xml
@@ -2,4 +2,11 @@ <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="org.jeecg.modules.eam.mapper.EamEquipmentSealUpMapper"> <select id="queryPageList" resultType="org.jeecg.modules.eam.entity.EamEquipmentSealUp"> select wmo.*, e.equipment_code, e.equipment_name from eam_equipment_seal_up wmo inner join eam_equipment e on wmo.equipment_id = e.id ${ew.customSqlSegment} </select> </mapper> lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamEquipmentSealUpQuery.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,23 @@ package org.jeecg.modules.eam.request; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; import java.util.Date; @Data public class EamEquipmentSealUpQuery { private String code; private String equipmentId; @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd") private Date leanDateBegin; @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd") private Date leanDateEnd; private String sealStatus; private String column; private String order; } lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamEquipmentSealUpRequest.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,86 @@ package org.jeecg.modules.eam.request; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; import org.jeecg.common.aspect.annotation.Dict; import org.jeecg.modules.flowable.domain.vo.FlowTaskVo; import org.jeecgframework.poi.excel.annotation.Excel; import org.springframework.format.annotation.DateTimeFormat; import java.io.Serializable; import java.util.Date; /** * @Description: 设å¤å°åå¯å° * @Author: jeecg-boot * @Date: 2025-05-13 * @Version: V1.0 */ @Data @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) public class EamEquipmentSealUpRequest extends FlowTaskVo implements Serializable { /**主é®*/ @ApiModelProperty(value = "主é®") private String id; /**å建人*/ @ApiModelProperty(value = "å建人") private String createBy; /**å建æ¶é´*/ @ApiModelProperty(value = "å建æ¶é´") private Date createTime; /**æ´æ°äºº*/ @ApiModelProperty(value = "æ´æ°äºº") private String updateBy; /**æ´æ°æ¶é´*/ @ApiModelProperty(value = "æ´æ°æ¶é´") private Date updateTime; /**å 餿 è®°*/ @ApiModelProperty(value = "å 餿 è®°") private Integer delFlag; /**设å¤ID*/ @ApiModelProperty(value = "设å¤ID") private String equipmentId; /**åæ®å·*/ @ApiModelProperty(value = "åæ®å·") private String code; /**ç³è¯·äºº*/ @ApiModelProperty(value = "ç³è¯·äºº") private String reportUser; /**å°åå¼å§æ¶é´*/ @ApiModelProperty(value = "å°åå¼å§æ¶é´") @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date sealStartTime; /**å°åç»ææ¶é´*/ @ApiModelProperty(value = "å°åç»ææ¶é´") @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date sealEndTime; /**å°ååå */ @ApiModelProperty(value = "å°ååå ") private String sealUpReason; /**å°åç¶æ*/ @ApiModelProperty(value = "å°åç¶æ") @Dict(dicCode = "equipment_seal_up_status") private String sealStatus; /**å®¡æ ¸äºº*/ @ApiModelProperty(value = "å®¡æ ¸äºº") private String approvalUser; /**å®¡æ ¸æ¶é´*/ @ApiModelProperty(value = "å®¡æ ¸æ¶é´") @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date approvalTime; /**夿³¨*/ @ApiModelProperty(value = "夿³¨") private String remark; } lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamEquipmentSealUpService.java
@@ -1,14 +1,58 @@ package org.jeecg.modules.eam.service; import org.jeecg.modules.eam.entity.EamEquipmentSealUp; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import org.jeecg.modules.eam.entity.EamEquipmentSealUp; import org.jeecg.modules.eam.request.EamEquipmentSealUpQuery; import org.jeecg.modules.eam.request.EamEquipmentSealUpRequest; /** * @Description: 设å¤å°åå¯å° * @Author: jeecg-boot * @Date: 2025-05-13 * @Date: 2025-05-13 * @Version: V1.0 */ public interface IEamEquipmentSealUpService extends IService<EamEquipmentSealUp> { /** * å页æ¥è¯¢ * * @param page * @param query * @return */ IPage<EamEquipmentSealUp> queryPageList(Page<EamEquipmentSealUp> page, EamEquipmentSealUpQuery query); /** * æ·»å å°åè®°å½ * * @param request * @return */ boolean addSealUp(EamEquipmentSealUp request); /** * ç¼è¾ * * @param request * @return */ boolean editSealUp(EamEquipmentSealUp request); /** * æäº¤ç³è¯· * * @param id * @return */ boolean submit(String id); /** * å®¡æ¹æµç¨æ§å¶ * * @param request * @return */ EamEquipmentSealUp approval(EamEquipmentSealUpRequest request); } lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentSealUpServiceImpl.java
@@ -1,19 +1,261 @@ package org.jeecg.modules.eam.service.impl; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; import org.flowable.engine.TaskService; import org.jeecg.common.api.vo.Result; import org.jeecg.common.constant.CommonConstant; import org.jeecg.common.constant.DataBaseConstant; import org.jeecg.common.exception.JeecgBootException; import org.jeecg.common.system.vo.LoginUser; import org.jeecg.common.util.oConvertUtils; import org.jeecg.modules.eam.constant.AssetStatusEnum; import org.jeecg.modules.eam.constant.BusinessCodeConst; import org.jeecg.modules.eam.constant.EquipmentLeanOutStatusEnum; import org.jeecg.modules.eam.constant.EquipmentSealUpStatusEnum; import org.jeecg.modules.eam.entity.EamEquipment; import org.jeecg.modules.eam.entity.EamEquipmentSealUp; import org.jeecg.modules.eam.mapper.EamEquipmentSealUpMapper; import org.jeecg.modules.eam.request.EamEquipmentSealUpQuery; import org.jeecg.modules.eam.request.EamEquipmentSealUpRequest; import org.jeecg.modules.eam.service.IEamEquipmentSealUpService; import org.jeecg.modules.eam.service.IEamEquipmentService; import org.jeecg.modules.flowable.apithird.business.entity.FlowMyBusiness; import org.jeecg.modules.flowable.apithird.business.service.IFlowMyBusinessService; import org.jeecg.modules.flowable.apithird.service.FlowCallBackServiceI; import org.jeecg.modules.flowable.apithird.service.FlowCommonService; import org.jeecg.modules.flowable.service.IFlowDefinitionService; import org.jeecg.modules.flowable.service.IFlowTaskService; import org.jeecg.modules.system.service.ISysUserService; import org.jeecg.modules.system.vo.UserSelector; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import javax.annotation.Resource; import java.util.*; import java.util.stream.Collectors; /** * @Description: 设å¤å°åå¯å° * @Author: jeecg-boot * @Date: 2025-05-13 * @Date: 2025-05-13 * @Version: V1.0 */ @Service public class EamEquipmentSealUpServiceImpl extends ServiceImpl<EamEquipmentSealUpMapper, EamEquipmentSealUp> implements IEamEquipmentSealUpService { @Service("IEamEquipmentSealUpService") public class EamEquipmentSealUpServiceImpl extends ServiceImpl<EamEquipmentSealUpMapper, EamEquipmentSealUp> implements IEamEquipmentSealUpService, FlowCallBackServiceI { @Resource private EamEquipmentSealUpMapper equipmentSealUpMapper; @Autowired private IEamEquipmentService eamEquipmentService; @Autowired private FlowCommonService flowCommonService; @Autowired private IFlowDefinitionService flowDefinitionService; @Autowired private IFlowMyBusinessService flowMyBusinessService; @Autowired private TaskService taskService; @Autowired private IFlowTaskService flowTaskService; @Autowired private ISysUserService sysUserService; @Override public IPage<EamEquipmentSealUp> queryPageList(Page<EamEquipmentSealUp> page, EamEquipmentSealUpQuery query) { QueryWrapper<EamEquipmentSealUp> queryWrapper = new QueryWrapper<>(); queryWrapper.eq("wmo.del_flag", CommonConstant.DEL_FLAG_0); //ç¨æ·æ°æ®æé LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); if (sysUser == null) { return page; } if (StringUtils.isNotBlank(sysUser.getEquipmentIds())) { //éæ©äºè®¾å¤ï¼æ ¹æ®è®¾å¤idè¿æ»¤è®¾å¤ List<String> equipArr = Arrays.asList(sysUser.getEquipmentIds().split(",")); queryWrapper.in("e.equipment_code", equipArr); } else { //没æéæ©è®¾å¤ï¼æ ¹æ®è½¦é´è¿æ»¤è®¾å¤ queryWrapper.exists("select 1 from mdc_user_production t where t.user_id={0} and t.pro_id=e.org_id ", sysUser.getId()); } //æ§å¶å¾ æäº¤ç¶æçæ°æ®åªè½æ¬äººæ¥ç queryWrapper.and(i -> i.ne("wmo.seal_status", EquipmentSealUpStatusEnum.WAIT_SUBMIT).or().eq("wmo.report_user", sysUser.getUsername())); //æ¥è¯¢æ¡ä»¶è¿æ»¤ if (query != null) { if (StringUtils.isNotBlank(query.getEquipmentId())) { queryWrapper.eq("wmo.equipment_id", query.getEquipmentId()); } if (StringUtils.isNotBlank(query.getCode())) { queryWrapper.like("wmo.code", query.getCode()); } if (StringUtils.isNotBlank(query.getSealStatus())) { queryWrapper.eq("wmo.seal_status", query.getSealStatus()); } if (query.getLeanDateBegin() != null && query.getLeanDateEnd() != null) { queryWrapper.between("wmo.lean_start_time", query.getLeanDateBegin(), query.getLeanDateEnd()); } //æåº if (StringUtils.isNotBlank(query.getColumn()) && StringUtils.isNotBlank(query.getOrder())) { String column = query.getColumn(); if (column.endsWith(CommonConstant.DICT_TEXT_SUFFIX)) { column = column.substring(0, column.lastIndexOf(CommonConstant.DICT_TEXT_SUFFIX)); } if (DataBaseConstant.SQL_ASC.equalsIgnoreCase(query.getOrder())) { queryWrapper.orderByAsc("wmo." + oConvertUtils.camelToUnderline(column)); } else { queryWrapper.orderByDesc("wmo." + oConvertUtils.camelToUnderline(column)); } } else { queryWrapper.orderByDesc("wmo.create_time"); } } else { queryWrapper.orderByDesc("wmo.create_time"); } return equipmentSealUpMapper.queryPageList(page, queryWrapper); } @Override @Transactional(rollbackFor = Exception.class) public boolean addSealUp(EamEquipmentSealUp request) { //æ£æ¥è®¾å¤ EamEquipment equipment = eamEquipmentService.getById(request.getEquipmentId()); if (equipment == null) { throw new JeecgBootException("设å¤ä¸åå¨ï¼"); } if (!AssetStatusEnum.NORMAL.name().equals(equipment.getAssetStatus())) { throw new JeecgBootException("æ¤è®¾å¤å½åèµäº§ç¶æä¸å 许ååºï¼"); } LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); if (sysUser == null) { throw new JeecgBootException("å½åç¨æ·æ æ³æ·»å åç¨è®°å½ï¼"); } request.setReportUser(sysUser.getUsername()); return equipmentSealUpMapper.insert(request) > 0; } @Override @Transactional(rollbackFor = Exception.class) public boolean editSealUp(EamEquipmentSealUp request) { EamEquipmentSealUp entity = equipmentSealUpMapper.selectById(request.getId()); if (entity == null) { throw new JeecgBootException("è¦ç¼è¾çæ°æ®ä¸åå¨ï¼è¯·å·æ°éè¯ï¼"); } if (!EquipmentSealUpStatusEnum.WAIT_SUBMIT.name().equals(entity.getSealStatus())) { throw new JeecgBootException("å½åæ°æ®ç¶æä¸å 许ç¼è¾ï¼"); } //æ£æ¥è®¾å¤ EamEquipment equipment = eamEquipmentService.getById(request.getEquipmentId()); if (equipment == null) { throw new JeecgBootException("设å¤ä¸åå¨ï¼"); } LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); if (sysUser == null) { throw new JeecgBootException("å½åç¨æ·æ æ³ç¼è¾åç¨è®°å½ï¼"); } UpdateWrapper<EamEquipmentSealUp> updateWrapper = new UpdateWrapper<>(); updateWrapper.set("equipment_id", request.getEquipmentId()); updateWrapper.set("remark", request.getRemark()); updateWrapper.set("seal_up_reason", request.getSealUpReason()); updateWrapper.eq("id", request.getId()); updateWrapper.eq("report_user", sysUser.getUsername()); return super.update(updateWrapper); } @Override @Transactional(rollbackFor = Exception.class) public boolean submit(String id) { EamEquipmentSealUp entity = equipmentSealUpMapper.selectById(id); if (entity == null) { throw new JeecgBootException("è¦æäº¤çæ°æ®ä¸åå¨ï¼è¯·å·æ°éè¯ï¼"); } if (!EquipmentLeanOutStatusEnum.WAIT_SUBMIT.name().equals(entity.getSealStatus())) { throw new JeecgBootException("å½åæ°æ®ç¶æä¸å 许ç¼è¾ï¼"); } //æ£æ¥è®¾å¤ EamEquipment equipment = eamEquipmentService.getById(entity.getEquipmentId()); if (equipment == null) { throw new JeecgBootException("设å¤ä¸åå¨ï¼"); } LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); if (sysUser == null) { throw new JeecgBootException("å½åç¨æ·æ æ³ç¼è¾å°åè®°å½ï¼"); } UpdateWrapper<EamEquipmentSealUp> updateWrapper = new UpdateWrapper<>(); updateWrapper.set("seal_status", EquipmentSealUpStatusEnum.WAIT_SUBMIT.name()); updateWrapper.eq("id", id); updateWrapper.eq("report_user", sysUser.getUsername()); boolean success = super.update(updateWrapper); if (success) { equipment.setAssetStatus(AssetStatusEnum.SEAL_UP.name()); // 设å¤å°å eamEquipmentService.updateById(equipment); } //å¯å¨å®¡æ¹æµç¨ flowCommonService.initActBusiness("å·¥åå·:" + entity.getCode() + ";设å¤ç¼å·: " + equipment.getEquipmentCode() + ";è¿è¡è®¾å¤å°å", entity.getId(), "IEamEquipmentSealUpService", "equipment_seal_up", null); Map<String, Object> variables = new HashMap<>(); variables.put("dataId", entity.getId()); if (StrUtil.isEmpty(entity.getSealUpReason())) { variables.put("organization", "æ°å¢å°åé»è®¤å¯å¨æµç¨"); variables.put("comment", "æ°å¢å°åå·¥åé»è®¤å¯å¨æµç¨"); } else { variables.put("organization", entity.getSealUpReason()); variables.put("comment", entity.getSealUpReason()); } variables.put("proofreading", true); // åé ç»è®¾å¤ç®¡çå List<UserSelector> userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getOrgId(), BusinessCodeConst.PCR0004); if (CollectionUtil.isEmpty(userSelectors)) { throw new JeecgBootException("è®¾å¤æªåé ç»è®¾å¤ç®¡çåï¼æ æ³è¿å ¥ä¸çº§å®¡æ¹ï¼"); } List<String> usernames = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList()); variables.put("NextAssignee", usernames); Result result = flowDefinitionService.startProcessInstanceByKey("equipment_seal_up", variables); if (result != null) { entity.setSealStartTime(new Date()); entity.setSealStatus(EquipmentSealUpStatusEnum.WAIT_CHECK.name()); //ä¿åå·¥å equipmentSealUpMapper.updateById(entity); return result.isSuccess(); } return true; } @Override @Transactional(rollbackFor = Exception.class) public EamEquipmentSealUp approval(EamEquipmentSealUpRequest request) { return null; } @Override public void afterFlowHandle(FlowMyBusiness business) { business.getTaskNameId();//æ¥ä¸æ¥å®¡æ¹çèç¹ business.getValues();//åç«¯ä¼ è¿æ¥çåæ° business.getActStatus(); } @Override public Object getBusinessDataById(String dataId) { return this.getById(dataId); } @Override public Map<String, Object> flowValuesOfTask(String taskNameId, Map<String, Object> values) { return null; } @Override public List<String> flowCandidateUsernamesOfTask(String taskNameId, Map<String, Object> values) { return null; } }