db/Êý¾Ý¿â²úÆ·»¯Éè¼Æ.pdma.json
@@ -4,7 +4,7 @@ "avatar": "", "version": "4.9.2", "createdTime": "2025-3-10 16:38:19", "updatedTime": "2025-5-26 14:55:20", "updatedTime": "2025-5-27 10:54:54", "dbConns": [], "profile": { "default": { @@ -14010,6 +14010,62 @@ "extProps": {}, "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", "id": "45EE18F4-2F86-4D31-A5A1-FE3C95BDE686" }, { "defKey": "approval_deal_type", "defName": "å®¡æ ¸ç±»å", "comment": "", "type": "", "len": "", "scale": "", "primaryKey": false, "notNull": false, "autoIncrement": false, "defaultValue": "", "hideInGraph": false, "domain": "73FD2BAD-2358-4336-B96D-45DC897BD792", "refDict": "", "extProps": {}, "notes": {}, "attr1": "", "attr2": "", "attr3": "", "attr4": "", "attr5": "", "attr6": "", "attr7": "", "attr8": "", "attr9": "", "id": "74BA9D2B-0477-46CD-9CD1-0E74A864D8B1", "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64" }, { "defKey": "scrap_status", "defName": "æ¥åºï¼è½¬è®©ï¼ç¶æ", "comment": "", "type": "", "len": "", "scale": "", "primaryKey": false, "notNull": false, "autoIncrement": false, "defaultValue": "", "hideInGraph": false, "domain": "73FD2BAD-2358-4336-B96D-45DC897BD792", "refDict": "", "extProps": {}, "notes": {}, "attr1": "", "attr2": "", "attr3": "", "attr4": "", "attr5": "", "attr6": "", "attr7": "", "attr8": "", "attr9": "", "id": "3147B647-8FB7-41C0-B032-DC415CA853B1", "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64" } ], "correlations": [], lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/aspect/EquipmentHistoryLogAspect.java
@@ -4,7 +4,9 @@ import org.apache.commons.lang3.StringUtils; import org.aspectj.lang.JoinPoint; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.*; import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Pointcut; import org.aspectj.lang.reflect.MethodSignature; import org.jeecg.modules.eam.aspect.annotation.EquipmentHistoryLog; import org.jeecg.modules.eam.constant.*; @@ -128,10 +130,30 @@ case PARTIAL_REPAIR: break; case LEAN_OUT: if (result instanceof EamEquipmentLeanOut) { EamEquipmentLeanOut order = (EamEquipmentLeanOut) result; if (EquipmentLeanOutStatusEnum.COMPLETE.name().equals(order.getLeanStatus())) { log.setEquipmentId(order.getEquipmentId()); log.setBusinessId(order.getId()); log.setOperator(order.getLeanPerson()); log.setDescription(order.getLeanReason()); log.setCreateTime(order.getLeanStartTime()); } } break; case GIVE_BACK: break; case SEAL_UP: if (result instanceof EamEquipmentSealUp) { EamEquipmentSealUp order = (EamEquipmentSealUp) result; if (EquipmentSealUpStatusEnum.COMPLETE.name().equals(order.getSealStatus())) { log.setEquipmentId(order.getEquipmentId()); log.setBusinessId(order.getId()); log.setOperator(order.getReportUser()); log.setDescription(order.getSealUpReason()); log.setCreateTime(order.getSealEndTime()); } } break; case UNSEALED: break; @@ -148,6 +170,16 @@ } break; case SCRAPPED: if (result instanceof EamEquipmentScrap) { EamEquipmentScrap order = (EamEquipmentScrap) result; if (EquipmentScrapStatusEnum.COMPLETE.name().equals(order.getScrapStatus())) { log.setEquipmentId(order.getEquipmentId()); log.setBusinessId(order.getId()); log.setOperator(order.getReportUser()); log.setDescription(order.getScrapReason()); log.setCreateTime(order.getScrapTime()); } } break; default: break; lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/BusinessCodeConst.java
@@ -25,6 +25,8 @@ String SEAL_UP_CODE_RULE = "EquipmentSealUpCodeRule"; //设å¤è°æ¨ç¼ç è§å String TRANSFER_CODE_RULE = "EquipmentTransferCodeRule"; //设å¤è°æ¨ç¼ç è§å String SCRAP_CODE_RULE = "EquipmentScrapCodeRule"; /** * å¤ä»¶è¯·è´åç¶æ 1:å·²å建 2:å·²æäº¤ 3:å·²éè¿ 4:已驳å 5:已宿 */ lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/EquipmentScrapStatusEnum.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,22 @@ package org.jeecg.modules.eam.constant; /** * @author cuikaidong * @date 2025/5/27 */ public enum EquipmentScrapStatusEnum { WAIT_SUBMIT, //å¾ æäº¤ WAIT_CHECK, //å¾ å®¡æ ¸ COMPLETE, //已宿 ; public static EquipmentScrapStatusEnum getInstance(String code) { EquipmentScrapStatusEnum[] values = EquipmentScrapStatusEnum.values(); for (EquipmentScrapStatusEnum value : values) { if (value.name().equals(code)) { return value; } } return null; } } lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamEquipmentLeanOut.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,179 @@ 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; /** * @Description: 设å¤ååºå½è¿ * @Author: jeecg-boot * @Date: 2025-05-13 * @Version: V1.0 */ @Data @TableName("eam_equipment_lean_out") @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) @ApiModel(value = "eam_equipment_lean_out对象", description = "设å¤ååºå½è¿") public class EamEquipmentLeanOut implements Serializable { /** * ä¸»é® */ @TableId(type = IdType.ASSIGN_ID) @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; /** * åæ®å· */ @Excel(name = "åæ®å·", width = 15) @ApiModelProperty(value = "åæ®å·") private String code; /** * åå ¥é¨é¨ */ @Excel(name = "åå ¥é¨é¨", width = 15, dictTable = "mdc_production", dicText = "production_name", dicCode = "id") @ApiModelProperty(value = "åå ¥é¨é¨") @Dict(dicCode = "mdc_production, production_name, id") private String leanDepartId; /** * åå ¥è´£ä»»äºº */ @Excel(name = "åå ¥è´£ä»»äºº", width = 15) @ApiModelProperty(value = "åå ¥è´£ä»»äºº") @Dict(dicCode = "sys_user, realname, username") private String leanPerson; /** * åç¨åå */ @ApiModelProperty(value = "åç¨åå ") private String leanReason; /** * 审æ¹ç±»å */ @ApiModelProperty(value = "审æ¹ç±»å") @Dict(dicCode = "approved_rejected") private String approvalDealType; /** * ååºç¶æ */ @Excel(name = "ååºç¶æ", width = 15) @ApiModelProperty(value = "ååºç¶æ") @Dict(dicCode = "equipment_lean_out_status") private String leanStatus; /** * ååºå¼å§æ¶é´ */ @ApiModelProperty(value = "ååºæ¶é´") @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date leanStartTime; /** * ååºå½è¿æ¶é´ */ @ApiModelProperty(value = "å½è¿æ¶é´") @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date leanEndTime; /** * å®¡æ ¸äºº */ @Excel(name = "å®¡æ ¸äºº", width = 15) @ApiModelProperty(value = "å®¡æ ¸äºº") @Dict(dicCode = "sys_user, realname, username") private String approvalUser; /** * å®¡æ ¸æè§ */ @Excel(name = "å®¡æ ¸æè§", width = 15) @ApiModelProperty(value = "å®¡æ ¸æè§") private String approvalComment; /** * å®¡æ ¸æ¶é´ */ @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 = "确认人") @Dict(dicCode = "sys_user, realname, username") private String confirmUser; /** * 确认æè§ */ @Excel(name = "确认æè§", width = 15) @ApiModelProperty(value = "确认æè§") private String confirmComment; /** * 确认æ¶é´ */ @ApiModelProperty(value = "确认æ¶é´") @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date confirmTime; /** * 夿³¨ */ @Excel(name = "夿³¨", width = 15) @ApiModelProperty(value = "夿³¨") private String remark; /** * 夿³¨ */ @Excel(name = "å½è¿å¤æ³¨", width = 15) @ApiModelProperty(value = "å½è¿å¤æ³¨") private String returnComment; //å表å±ç¤º @TableField(exist = false) private String equipmentCode; @TableField(exist = false) private String equipmentName; } lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamEquipmentScrap.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,151 @@ 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 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 java.io.Serializable; import java.util.Date; /** * @Description: è®¾å¤æ¥åº(转让) * @Author: jeecg-boot * @Date: 2025-05-15 * @Version: V1.0 */ @Data @TableName("eam_equipment_scrap") @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) @ApiModel(value = "eam_equipment_scrap对象", description = "è®¾å¤æ¥åº(转让)") public class EamEquipmentScrap implements Serializable { /** * ä¸»é® */ @TableId(type = IdType.ASSIGN_ID) @ApiModelProperty(value = "主é®") private String id; /** * å建人 */ @Excel(name = "å建人", width = 15) @ApiModelProperty(value = "å建人") private String createBy; /** * å建æ¶é´ */ @ApiModelProperty(value = "å建æ¶é´") private Date createTime; /** * æ´æ°äºº */ @Excel(name = "æ´æ°äºº", width = 15) @ApiModelProperty(value = "æ´æ°äºº") private String updateBy; /** * æ´æ°æ¶é´ */ @ApiModelProperty(value = "æ´æ°æ¶é´") private Date updateTime; /** * å 餿 è®° */ @Excel(name = "å 餿 è®°", width = 15) @ApiModelProperty(value = "å 餿 è®°") private Integer delFlag; /** * åæ®å· */ @Excel(name = "åæ®å·", width = 15) @ApiModelProperty(value = "åæ®å·") private String code; /** * 设å¤ID */ @Excel(name = "设å¤ID", width = 15) @ApiModelProperty(value = "设å¤ID") private String equipmentId; /** * 转让/æ¥åº */ @Excel(name = "转让/æ¥åº", width = 15) @ApiModelProperty(value = "转让/æ¥åº") @Dict(dicCode = "scrap_sell") private String scrapType; /** * ç³è¯·äºº */ @Excel(name = "ç³è¯·äºº", width = 15) @ApiModelProperty(value = "ç³è¯·äºº") @Dict(dicCode = "sys_user, realname, username") private String reportUser; /** * å¤ç½®æ¶é´ */ @ApiModelProperty(value = "å¤ç½®æ¶é´") private Date scrapTime; /** * å¤ç½®çç± */ @Excel(name = "å¤ç½®çç±", width = 15) @ApiModelProperty(value = "å¤ç½®çç±") private String scrapReason; /** * å¤ç½®éé¢ */ @Excel(name = "å¤ç½®éé¢", width = 15) @ApiModelProperty(value = "å¤ç½®éé¢") private java.math.BigDecimal scrapAmount; /** * æ¥åºç¶æ */ @Excel(name = "æ¥åºç¶æ", width = 15) @ApiModelProperty(value = "æ¥åºç¶æ") @Dict(dicCode = "equipment_scrap_status") private String scrapStatus; /** * å®¡æ ¸äºº */ @Excel(name = "å®¡æ ¸äºº", width = 15) @ApiModelProperty(value = "å®¡æ ¸äºº") @Dict(dicCode = "sys_user, realname, username") private String approvalUser; /** * å®¡æ ¸ç±»å */ @Excel(name = "å®¡æ ¸ç±»å", width = 15) @ApiModelProperty(value = "å®¡æ ¸ç±»å") private String approvalDealType; /** * å®¡æ ¸æè§ */ @Excel(name = "å®¡æ ¸æè§", width = 15) @ApiModelProperty(value = "å®¡æ ¸æè§") private String approvalComment; /** * å®¡æ ¸æ¶é´ */ @ApiModelProperty(value = "å®¡æ ¸æ¶é´") 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-common/src/main/java/org/jeecg/modules/eam/entity/EamEquipmentSealUp.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,188 @@ 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; /** * @Description: 设å¤å°åå¯å° * @Author: jeecg-boot * @Date: 2025-05-13 * @Version: V1.0 */ @Data @TableName("eam_equipment_seal_up") @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) @ApiModel(value = "eam_equipment_seal_up对象", description = "设å¤å°åå¯å°") public class EamEquipmentSealUp implements Serializable { /** * ä¸»é® */ @TableId(type = IdType.ASSIGN_ID) @ApiModelProperty(value = "主é®") private String id; /** * å建人 */ @Excel(name = "å建人", width = 15) @ApiModelProperty(value = "å建人") private String createBy; /** * å建æ¶é´ */ @ApiModelProperty(value = "å建æ¶é´") private Date createTime; /** * æ´æ°äºº */ @Excel(name = "æ´æ°äºº", width = 15) @ApiModelProperty(value = "æ´æ°äºº") private String updateBy; /** * æ´æ°æ¶é´ */ @ApiModelProperty(value = "æ´æ°æ¶é´") private Date updateTime; /** * å 餿 è®° */ @Excel(name = "å 餿 è®°", width = 15) @ApiModelProperty(value = "å 餿 è®°") private Integer delFlag; /** * 设å¤ID */ @Excel(name = "设å¤ID", width = 15) @ApiModelProperty(value = "设å¤ID") private String equipmentId; /** * åæ®å· */ @Excel(name = "åæ®å·", width = 15) @ApiModelProperty(value = "åæ®å·") private String code; /** * ç³è¯·äºº */ @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) @ApiModelProperty(value = "å°ååå ") private String sealUpReason; /** * å°åç¶æ */ @Excel(name = "å°åç¶æ", width = 15) @ApiModelProperty(value = "å°åç¶æ") @Dict(dicCode = "equipment_seal_up_status") private String sealStatus; /** * å®¡æ ¸äºº */ @Excel(name = "å®¡æ ¸äºº", width = 15) @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; /** * 夿³¨ */ @Excel(name = "夿³¨", width = 15) @ApiModelProperty(value = "夿³¨") private String remark; /** * å®¡æ ¸ç±»å */ @Excel(name = "å®¡æ ¸ç±»å", width = 15) @ApiModelProperty(value = "å®¡æ ¸ç±»å") private String approvalDealType; /** * å®¡æ ¸æè§ */ @Excel(name = "å®¡æ ¸æè§", width = 15) @ApiModelProperty(value = "å®¡æ ¸æè§") private String approvalComment; /** * å¯å°ç³è¯·äºº */ @Excel(name = "å¯å°ç³è¯·äºº", width = 15) @ApiModelProperty(value = "å¯å°ç³è¯·äºº") private String unsealReportUser; /** * å¯å°åå */ @Excel(name = "å¯å°åå ", width = 15) @ApiModelProperty(value = "å¯å°åå ") private String unsealReason; /** * å¯å°å®¡æ ¸äºº */ @Excel(name = "å¯å°å®¡æ ¸äºº", width = 15) @ApiModelProperty(value = "å¯å°å®¡æ ¸äºº") private String unsealApprovalUser; /** * å¯å°å®¡æ ¸æ¶é´ */ @Excel(name = "å¯å°å®¡æ ¸æ¶é´", width = 15) @ApiModelProperty(value = "å¯å°å®¡æ ¸æ¶é´") private Date unsealApprovalTime; /** * å¯å°å®¡æ ¸ç±»å */ @Excel(name = "å¯å°å®¡æ ¸ç±»å", width = 15) @ApiModelProperty(value = "å¯å°å®¡æ ¸ç±»å") private String unsealApprovalDealType; /** * å¯å°å®¡æ ¸æè§ */ @Excel(name = "å¯å°å®¡æ ¸æè§", width = 15) @ApiModelProperty(value = "å¯å°å®¡æ ¸æè§") private String unsealApprovalComment; //å表å±ç¤º @TableField(exist = false) private String equipmentCode; @TableField(exist = false) private String equipmentName; } lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentScrapController.java
@@ -1,39 +1,32 @@ 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.EamEquipmentScrap; import org.jeecg.modules.eam.service.IEamEquipmentScrapService; 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.EquipmentScrapStatusEnum; import org.jeecg.modules.eam.entity.EamEquipmentScrap; import org.jeecg.modules.eam.request.EamEquipmentScrapQuery; import org.jeecg.modules.eam.request.EamEquipmentScrapRequest; import org.jeecg.modules.eam.service.IEamEquipmentScrapService; 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: è®¾å¤æ¥åº(转让) @@ -48,6 +41,12 @@ public class EamEquipmentScrapController extends JeecgController<EamEquipmentScrap, IEamEquipmentScrapService> { @Autowired private IEamEquipmentScrapService eamEquipmentScrapService; @Autowired private ISysBusinessCodeRuleService businessCodeRuleService; @Autowired private ObjectMapper objectMapper; @Autowired private TranslateDictTextUtils translateDictTextUtils; /** * å页å表æ¥è¯¢ @@ -61,41 +60,55 @@ @AutoLog(value = "è®¾å¤æ¥åº(转让)-å页å表æ¥è¯¢") @ApiOperation(value="è®¾å¤æ¥åº(转让)-å页å表æ¥è¯¢", notes="è®¾å¤æ¥åº(转让)-å页å表æ¥è¯¢") @GetMapping(value = "/list") public Result<?> queryPageList(EamEquipmentScrap eamEquipmentScrap, public Result<?> queryPageList(EamEquipmentScrapQuery query, @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, HttpServletRequest req) { QueryWrapper<EamEquipmentScrap> queryWrapper = QueryGenerator.initQueryWrapper(eamEquipmentScrap, req.getParameterMap()); Page<EamEquipmentScrap> page = new Page<EamEquipmentScrap>(pageNo, pageSize); IPage<EamEquipmentScrap> pageList = eamEquipmentScrapService.page(page, queryWrapper); IPage<EamEquipmentScrap> pageList = eamEquipmentScrapService.queryPageList(page, query); return Result.OK(pageList); } /** * æ·»å * * @param eamEquipmentScrap * @param request * @return */ @AutoLog(value = "è®¾å¤æ¥åº(转让)-æ·»å ") @ApiOperation(value="è®¾å¤æ¥åº(转让)-æ·»å ", notes="è®¾å¤æ¥åº(转让)-æ·»å ") @PostMapping(value = "/add") public Result<?> add(@RequestBody EamEquipmentScrap eamEquipmentScrap) { eamEquipmentScrapService.save(eamEquipmentScrap); public Result<?> add(@RequestBody EamEquipmentScrap request) { if (request == null) { return Result.error("æ·»å ç对象ä¸è½ä¸ºç©ºï¼"); } request.setCode(businessCodeRuleService.generateBusinessCodeSeq(BusinessCodeConst.SCRAP_CODE_RULE)); request.setScrapStatus(EquipmentScrapStatusEnum.WAIT_SUBMIT.name()); request.setDelFlag(CommonConstant.DEL_FLAG_0); boolean b = eamEquipmentScrapService.addScrap(request); if (!b) { return Result.error("æ·»å 失败ï¼"); } return Result.OK("æ·»å æåï¼"); } /** * ç¼è¾ * * @param eamEquipmentScrap * @param request * @return */ @AutoLog(value = "è®¾å¤æ¥åº(转让)-ç¼è¾") @ApiOperation(value="è®¾å¤æ¥åº(转让)-ç¼è¾", notes="è®¾å¤æ¥åº(转让)-ç¼è¾") @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST}) public Result<?> edit(@RequestBody EamEquipmentScrap eamEquipmentScrap) { eamEquipmentScrapService.updateById(eamEquipmentScrap); public Result<?> edit(@RequestBody EamEquipmentScrap request) { if (request == null) { return Result.error("ç¼è¾ç对象ä¸è½ä¸ºç©ºï¼"); } boolean b = eamEquipmentScrapService.editScrap(request); if (!b) { return Result.error("ç¼è¾å¤±è´¥ï¼"); } return Result.OK("ç¼è¾æå!"); } @@ -109,7 +122,11 @@ @ApiOperation(value="è®¾å¤æ¥åº(转让)-éè¿idå é¤", notes="è®¾å¤æ¥åº(转让)-éè¿idå é¤") @DeleteMapping(value = "/delete") public Result<?> delete(@RequestParam(name="id",required=true) String id) { eamEquipmentScrapService.removeById(id); EamEquipmentScrap entity = eamEquipmentScrapService.getById(id); if (entity != null) { entity.setDelFlag(CommonConstant.DEL_FLAG_1); eamEquipmentScrapService.updateById(entity); } return Result.OK("å 餿å!"); } @@ -124,6 +141,14 @@ @DeleteMapping(value = "/deleteBatch") public Result<?> deleteBatch(@RequestParam(name="ids",required=true) String ids) { this.eamEquipmentScrapService.removeByIds(Arrays.asList(ids.split(","))); List<String> list = Arrays.asList(ids.split(",")); list.forEach(id -> { EamEquipmentScrap entity = eamEquipmentScrapService.getById(id); if (entity != null) { entity.setDelFlag(CommonConstant.DEL_FLAG_1); eamEquipmentScrapService.updateById(entity); } }); return Result.OK("æ¹éå 餿åï¼"); } @@ -138,30 +163,53 @@ @GetMapping(value = "/queryById") public Result<?> queryById(@RequestParam(name="id",required=true) String id) { EamEquipmentScrap eamEquipmentScrap = eamEquipmentScrapService.getById(id); return Result.OK(eamEquipmentScrap); if (eamEquipmentScrap == null) { return Result.error("æªæ¾å°å¯¹åºæ°æ®"); } try { String json = objectMapper.writeValueAsString(eamEquipmentScrap); JSONObject item = JSONObject.parseObject(json, Feature.OrderedField); translateDictTextUtils.translateField("reportUser", eamEquipmentScrap.getReportUser(), item, "sys_user,realname,username"); return Result.OK(item); } catch (JsonProcessingException e) { return Result.error("æ°æ®è½¬è¯å¤±è´¥ï¼"); } } /** * 导åºexcel * æäº¤ * * @param request * @param eamEquipmentScrap */ @RequestMapping(value = "/exportXls") public ModelAndView exportXls(HttpServletRequest request, EamEquipmentScrap eamEquipmentScrap) { return super.exportXls(request, eamEquipmentScrap, EamEquipmentScrap.class, "è®¾å¤æ¥åº(转让)"); } /** * éè¿excelå¯¼å ¥æ°æ® * * @param request * @param response * @param id * @return */ @RequestMapping(value = "/importExcel", method = RequestMethod.POST) public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) { return super.importExcel(request, response, EamEquipmentScrap.class); @AutoLog(value = "è®¾å¤æ¥åº(转让)-æäº¤") @ApiOperation(value = "è®¾å¤æ¥åº(转让)-æäº¤", notes = "è®¾å¤æ¥åº(转让)-æäº¤") @GetMapping(value = "/submit") public Result<?> submit(@RequestParam(name = "id", required = true) String id) { boolean b = eamEquipmentScrapService.submit(id); if (!b) { return Result.error("æä½å¤±è´¥ï¼"); } return Result.OK("æä½æå!"); } /** * å®¡æ¹æµ * * @param request * @return */ @AutoLog(value = "è®¾å¤æ¥åº(转让)-å®¡æ¹æµ") @ApiOperation(value = "è®¾å¤æ¥åº(转让)-å®¡æ¹æµ", notes = "è®¾å¤æ¥åº(转让)-å®¡æ¹æµ") @RequestMapping(value = "/approval", method = {RequestMethod.PUT, RequestMethod.POST}) public Result<?> approval(@RequestBody EamEquipmentScrapRequest request) { if (request == null) { return Result.error("æ·»å ç对象ä¸è½ä¸ºç©ºï¼"); } EamEquipmentScrap entity = eamEquipmentScrapService.approval(request); if (entity == null) { return Result.error("æä½å¤±è´¥ï¼"); } return Result.OK("æä½æå!"); } } lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamEquipmentScrap.java
@@ -1,6 +1,7 @@ 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 io.swagger.annotations.ApiModel; @@ -8,10 +9,12 @@ 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 java.io.Serializable; import java.util.Date; /** * @Description: è®¾å¤æ¥åº(转让) * @Author: jeecg-boot @@ -25,68 +28,124 @@ @ApiModel(value="eam_equipment_scrap对象", description="è®¾å¤æ¥åº(转让)") public class EamEquipmentScrap implements Serializable { /**主é®*/ /** * ä¸»é® */ @TableId(type = IdType.ASSIGN_ID) @ApiModelProperty(value = "主é®") private String id; /**å建人*/ /** * å建人 */ @Excel(name = "å建人", width = 15) @ApiModelProperty(value = "å建人") private String createBy; /**å建æ¶é´*/ /** * å建æ¶é´ */ @ApiModelProperty(value = "å建æ¶é´") private Date createTime; /**æ´æ°äºº*/ /** * æ´æ°äºº */ @Excel(name = "æ´æ°äºº", width = 15) @ApiModelProperty(value = "æ´æ°äºº") private String updateBy; /**æ´æ°æ¶é´*/ /** * æ´æ°æ¶é´ */ @ApiModelProperty(value = "æ´æ°æ¶é´") private Date updateTime; /**å 餿 è®°*/ /** * å 餿 è®° */ @Excel(name = "å 餿 è®°", width = 15) @ApiModelProperty(value = "å 餿 è®°") private Integer delFlag; /**åæ®å·*/ /** * åæ®å· */ @Excel(name = "åæ®å·", width = 15) @ApiModelProperty(value = "åæ®å·") private String code; /**设å¤ID*/ /** * 设å¤ID */ @Excel(name = "设å¤ID", width = 15) @ApiModelProperty(value = "设å¤ID") private String equipmentId; /**转让/æ¥åº*/ /** * 转让/æ¥åº */ @Excel(name = "转让/æ¥åº", width = 15) @ApiModelProperty(value = "转让/æ¥åº") @Dict(dicCode = "scrap_sell") private String scrapType; /**ç³è¯·äºº*/ /** * ç³è¯·äºº */ @Excel(name = "ç³è¯·äºº", width = 15) @ApiModelProperty(value = "ç³è¯·äºº") @Dict(dicCode = "sys_user, realname, username") private String reportUser; /**å¤ç½®æ¶é´*/ /** * å¤ç½®æ¶é´ */ @ApiModelProperty(value = "å¤ç½®æ¶é´") private Date scrapTime; /**å¤ç½®çç±*/ /** * å¤ç½®çç± */ @Excel(name = "å¤ç½®çç±", width = 15) @ApiModelProperty(value = "å¤ç½®çç±") private String scrapReason; /**å¤ç½®éé¢*/ /** * å¤ç½®éé¢ */ @Excel(name = "å¤ç½®éé¢", width = 15) @ApiModelProperty(value = "å¤ç½®éé¢") private java.math.BigDecimal scrapAmount; /**å®¡æ ¸äºº*/ /** * æ¥åºç¶æ */ @Excel(name = "æ¥åºç¶æ", width = 15) @ApiModelProperty(value = "æ¥åºç¶æ") @Dict(dicCode = "equipment_scrap_status") private String scrapStatus; /** * å®¡æ ¸äºº */ @Excel(name = "å®¡æ ¸äºº", width = 15) @ApiModelProperty(value = "å®¡æ ¸äºº") @Dict(dicCode = "sys_user, realname, username") private String approvalUser; /**å®¡æ ¸æè§*/ /** * å®¡æ ¸ç±»å */ @Excel(name = "å®¡æ ¸ç±»å", width = 15) @ApiModelProperty(value = "å®¡æ ¸ç±»å") private String approvalDealType; /** * å®¡æ ¸æè§ */ @Excel(name = "å®¡æ ¸æè§", width = 15) @ApiModelProperty(value = "å®¡æ ¸æè§") private String approvalComment; /**å®¡æ ¸æ¶é´*/ /** * å®¡æ ¸æ¶é´ */ @ApiModelProperty(value = "å®¡æ ¸æ¶é´") 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/EamEquipmentScrapMapper.java
@@ -1,10 +1,12 @@ package org.jeecg.modules.eam.mapper; import java.util.List; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; 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.EamEquipmentScrap; import com.baomidou.mybatisplus.core.mapper.BaseMapper; /** * @Description: è®¾å¤æ¥åº(转让) @@ -13,5 +15,14 @@ * @Version: V1.0 */ public interface EamEquipmentScrapMapper extends BaseMapper<EamEquipmentScrap> { /** * å页æ¥è¯¢ * * @param page * @param queryWrapper * @return */ IPage<EamEquipmentScrap> queryPageList(Page<EamEquipmentScrap> page, @Param(Constants.WRAPPER) QueryWrapper<EamEquipmentScrap> queryWrapper); } lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamEquipmentScrapMapper.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.EamEquipmentScrapMapper"> <select id="queryPageList" resultType="org.jeecg.modules.eam.entity.EamEquipmentScrap"> select wmo.*, e.equipment_code, e.equipment_name from eam_equipment_scrap 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/EamEquipmentScrapQuery.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 EamEquipmentScrapQuery { 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/EamEquipmentScrapRequest.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,121 @@ package org.jeecg.modules.eam.request; 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 java.io.Serializable; import java.util.Date; /** * @Description: è®¾å¤æ¥åº(转让) * @Author: jeecg-boot * @Date: 2025-05-30 * @Version: V1.0 */ @Data @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) public class EamEquipmentScrapRequest extends FlowTaskVo implements Serializable { private static final long serialVersionUID = 1L; /** * ä¸»é® */ @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; /** * åæ®å· */ @ApiModelProperty(value = "åæ®å·") private String code; /** * 设å¤ID */ @ApiModelProperty(value = "设å¤ID") private String equipmentId; /** * 转让/æ¥åº */ @ApiModelProperty(value = "转让/æ¥åº") private String scrapType; /** * ç³è¯·äºº */ @ApiModelProperty(value = "ç³è¯·äºº") private String reportUser; /** * å¤ç½®æ¶é´ */ @ApiModelProperty(value = "å¤ç½®æ¶é´") private Date scrapTime; /** * å¤ç½®çç± */ @ApiModelProperty(value = "å¤ç½®çç±") private String scrapReason; /** * å¤ç½®éé¢ */ @ApiModelProperty(value = "å¤ç½®éé¢") private java.math.BigDecimal scrapAmount; /** * åå¨ç¶æ */ @ApiModelProperty(value = "åå¨ç¶æ") @Dict(dicCode = "equipment_transfer_status") private String scrapStatus; /** * å®¡æ ¸äºº */ @ApiModelProperty(value = "å®¡æ ¸äºº") private String approvalUser; /** * å®¡æ ¸ç±»å */ @ApiModelProperty(value = "å®¡æ ¸ç±»å") private String approvalDealType; /** * å®¡æ ¸æè§ */ @ApiModelProperty(value = "å®¡æ ¸æè§") private String approvalComment; /** * å®¡æ ¸æ¶é´ */ @ApiModelProperty(value = "å®¡æ ¸æ¶é´") private Date approvalTime; /** * 夿³¨ */ @ApiModelProperty(value = "夿³¨") private String remark; } lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamEquipmentScrapService.java
@@ -1,7 +1,11 @@ package org.jeecg.modules.eam.service; import org.jeecg.modules.eam.entity.EamEquipmentScrap; 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.EamEquipmentScrap; import org.jeecg.modules.eam.request.EamEquipmentScrapQuery; import org.jeecg.modules.eam.request.EamEquipmentScrapRequest; /** * @Description: è®¾å¤æ¥åº(转让) @@ -10,5 +14,44 @@ * @Version: V1.0 */ public interface IEamEquipmentScrapService extends IService<EamEquipmentScrap> { /** * å页æ¥è¯¢ * * @param page * @param query * @return */ IPage<EamEquipmentScrap> queryPageList(Page<EamEquipmentScrap> page, EamEquipmentScrapQuery query); /** * æ·»å æ¥åºï¼è£ 让ï¼è®°å½ * * @param request * @return */ boolean addScrap(EamEquipmentScrap request); /** * æäº¤ç³è¯· * * @param id * @return */ boolean submit(String id); /** * å®¡æ¹æµç¨æ§å¶ * * @param request * @return */ EamEquipmentScrap approval(EamEquipmentScrapRequest request); /** * ç¼è¾ * * @param request * @return */ boolean editScrap(EamEquipmentScrap request); } lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentLeanOutServiceImpl.java
@@ -17,7 +17,10 @@ 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.*; import org.jeecg.modules.eam.aspect.annotation.EquipmentHistoryLog; import org.jeecg.modules.eam.constant.AssetStatusEnum; import org.jeecg.modules.eam.constant.EquipmentLeanOutStatusEnum; import org.jeecg.modules.eam.constant.EquipmentOperationTagEnum; import org.jeecg.modules.eam.entity.EamEquipment; import org.jeecg.modules.eam.entity.EamEquipmentLeanOut; import org.jeecg.modules.eam.mapper.EamEquipmentLeanOutMapper; @@ -242,6 +245,7 @@ @Override @Transactional(rollbackFor = Exception.class) @EquipmentHistoryLog(operationTag = EquipmentOperationTagEnum.LEAN_OUT, businessTable = "eam_equipment_lean_out") public EamEquipmentLeanOut approval(EamEquipmentLeanOutRequest request) { EamEquipmentLeanOut entity = equipmentLeanOutMapper.selectById(request.getId()); if (entity == null) { lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentScrapServiceImpl.java
@@ -1,19 +1,361 @@ package org.jeecg.modules.eam.service.impl; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; 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.flowable.task.api.Task; 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.aspect.annotation.EquipmentHistoryLog; import org.jeecg.modules.eam.constant.AssetStatusEnum; import org.jeecg.modules.eam.constant.BusinessCodeConst; import org.jeecg.modules.eam.constant.EquipmentOperationTagEnum; import org.jeecg.modules.eam.constant.EquipmentScrapStatusEnum; import org.jeecg.modules.eam.entity.EamEquipment; import org.jeecg.modules.eam.entity.EamEquipmentScrap; import org.jeecg.modules.eam.mapper.EamEquipmentScrapMapper; import org.jeecg.modules.eam.request.EamEquipmentScrapQuery; import org.jeecg.modules.eam.request.EamEquipmentScrapRequest; import org.jeecg.modules.eam.service.IEamEquipmentScrapService; 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: è®¾å¤æ¥åº(转让) * @Description: è®¾å¤æ¥åº(æ¥åº ï¼ è½¬åº ï¼) * @Author: jeecg-boot * @Date: 2025-05-15 * @Version: V1.0 */ @Service public class EamEquipmentScrapServiceImpl extends ServiceImpl<EamEquipmentScrapMapper, EamEquipmentScrap> implements IEamEquipmentScrapService { @Service("IEamEquipmentScrapService") public class EamEquipmentScrapServiceImpl extends ServiceImpl<EamEquipmentScrapMapper, EamEquipmentScrap> implements IEamEquipmentScrapService, FlowCallBackServiceI { @Resource private EamEquipmentScrapMapper equipmentScrapMapper; @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<EamEquipmentScrap> queryPageList(Page<EamEquipmentScrap> page, EamEquipmentScrapQuery query) { QueryWrapper<EamEquipmentScrap> 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.scrap_status", EquipmentScrapStatusEnum.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.scrap_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 equipmentScrapMapper.queryPageList(page, queryWrapper); } @Override @Transactional(rollbackFor = Exception.class) public boolean addScrap(EamEquipmentScrap 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 equipmentScrapMapper.insert(request) > 0; } @Override @Transactional(rollbackFor = Exception.class) public boolean submit(String id) { EamEquipmentScrap entity = equipmentScrapMapper.selectById(id); if (entity == null) { throw new JeecgBootException("è¦æäº¤çæ°æ®ä¸åå¨ï¼è¯·å·æ°éè¯ï¼"); } if (!EquipmentScrapStatusEnum.WAIT_SUBMIT.name().equals(entity.getScrapStatus())) { 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<EamEquipmentScrap> updateWrapper = new UpdateWrapper<>(); updateWrapper.set("scrap_status", EquipmentScrapStatusEnum.WAIT_SUBMIT.name()); updateWrapper.eq("id", id); updateWrapper.eq("report_user", sysUser.getUsername()); boolean success = super.update(updateWrapper); if (success) { equipment.setAssetStatus(AssetStatusEnum.SCRAP.name()); // è®¾å¤æ¥åºï¼è½¬åºï¼ eamEquipmentService.updateById(equipment); } //å¯å¨å®¡æ¹æµç¨ flowCommonService.initActBusiness("å·¥åå·:" + entity.getCode() + ";设å¤ç¼å·: " + equipment.getEquipmentCode() + ";è¿è¡è®¾å¤æ¥åºï¼è½¬åºï¼", entity.getId(), "IEamEquipmentScrapService", "equipment_scrap", null); Map<String, Object> variables = new HashMap<>(); variables.put("dataId", entity.getId()); variables.put("organization", entity.getScrapReason()); variables.put("comment", entity.getScrapReason()); 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_scrap", variables); if (result != null) { entity.setScrapTime(new Date()); entity.setScrapStatus(EquipmentScrapStatusEnum.WAIT_CHECK.name()); //ä¿åå·¥å equipmentScrapMapper.updateById(entity); return result.isSuccess(); } return true; } @Override @Transactional(rollbackFor = Exception.class) @EquipmentHistoryLog(operationTag = EquipmentOperationTagEnum.SCRAPPED, businessTable = "eam_equipment_scrap") public EamEquipmentScrap approval(EamEquipmentScrapRequest request) { EamEquipmentScrap entity = equipmentScrapMapper.selectById(request.getId()); if (entity == null) { throw new JeecgBootException("审æ¹çæ°æ®å·²å é¤ï¼è¯·å·æ°éè¯ï¼"); } // è·åå½åç»å½ç¨æ· LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); if (user == null || StrUtil.isBlank(user.getId())) { throw new JeecgBootException("æªè·åå°ç»å½ç¨æ·ï¼è¯·éæ°ç»å½ååè¯ï¼"); } request.setApprovalUser(user.getUsername()); // è·åæµç¨ä¸å¡è®°å½ FlowMyBusiness flowMyBusiness = flowMyBusinessService.getFlowMyBusiness(request.getInstanceId()); if (flowMyBusiness == null) { throw new JeecgBootException("æµç¨å®ä¾ä¸åå¨ï¼è¯·å·æ°åéè¯ï¼"); } boolean userAuthorized = isUserAuthorized(flowMyBusiness, user); if (!userAuthorized) { throw new JeecgBootException("ç¨æ·æ ææä½æ¤ä»»å¡ï¼è¯·å·æ°åéè¯ï¼"); } // 认é¢ä»»å¡ if (!claimTask(flowMyBusiness.getTaskId(), user)) { throw new JeecgBootException("ä»»å¡ä¸åå¨ã已宿æå·²è¢«ä»äººè®¤é¢ï¼"); } EamEquipment equipment = eamEquipmentService.getById(entity.getEquipmentId()); if (equipment == null) { throw new JeecgBootException("设å¤ä¸åå¨ï¼è¯·æ£æ¥ï¼"); } EquipmentScrapStatusEnum status = EquipmentScrapStatusEnum.getInstance(entity.getScrapStatus()); if (status == null) { return null; } //æµç¨åé Map<String, Object> values = new HashMap<>(); // å®¡æ¹ if (status == EquipmentScrapStatusEnum.WAIT_CHECK) {//æ§è¡å®æ values.put("dataId", entity.getId()); values.put("organization", request.getApprovalComment()); values.put("comment", request.getApprovalComment()); values.put("approvalDealType", request.getApprovalDealType()); request.setComment(request.getApprovalComment()); entity.setApprovalUser(user.getUsername());// å®¡æ ¸äºº entity.setApprovalComment(request.getApprovalComment());// å®¡æ ¸æè§ entity.setApprovalTime(new Date());// å®¡æ ¸æ¶é´ entity.setApprovalDealType(request.getApprovalDealType()); // 审æ¹ç±»å // éªè¯éè¿è¿æ¯é©³å if (request.getApprovalDealType().equals("1")) { //设置entity entity.setScrapStatus(EquipmentScrapStatusEnum.COMPLETE.name()); List<String> userApprovalList = new ArrayList<>(Collections.singletonList(entity.getReportUser())); values.put("NextAssignee", userApprovalList); // ä¿®æ¹è®¾å¤ç¶æ equipment.setAssetStatus(AssetStatusEnum.SCRAP.name()); } else { //设置entity entity.setScrapStatus(EquipmentScrapStatusEnum.COMPLETE.name()); // ä¿®æ¹è®¾å¤ç¶æ equipment.setAssetStatus(AssetStatusEnum.NORMAL.name()); } entity.setApprovalUser(user.getUsername()); entity.setApprovalComment(request.getApprovalComment()); entity.setApprovalTime(new Date()); eamEquipmentService.updateById(equipment); } request.setValues(values); // 宿æµç¨ä»»å¡ Result result = flowTaskService.complete(request); if (!result.isSuccess()) { throw new JeecgBootException("审æ¹å¤±è´¥ï¼è¯·å·æ°æ¥çï¼"); } //ä¿åå·¥å equipmentScrapMapper.updateById(entity); return entity; } @Override @Transactional(rollbackFor = Exception.class) public boolean editScrap(EamEquipmentScrap request) { EamEquipmentScrap entity = equipmentScrapMapper.selectById(request.getId()); if (entity == null) { throw new JeecgBootException("è¦ç¼è¾çæ°æ®ä¸åå¨ï¼è¯·å·æ°éè¯ï¼"); } if (!EquipmentScrapStatusEnum.WAIT_SUBMIT.name().equals(entity.getScrapStatus())) { 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<EamEquipmentScrap> updateWrapper = new UpdateWrapper<>(); updateWrapper.set("equipment_id", request.getEquipmentId()); updateWrapper.set("remark", request.getRemark()); updateWrapper.set("scrap_reason", request.getScrapReason()); updateWrapper.set("scrap_amount", request.getScrapAmount()); updateWrapper.set("scrap_type", request.getScrapType()); updateWrapper.eq("id", request.getId()); updateWrapper.eq("report_user", sysUser.getUsername()); return super.update(updateWrapper); } @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; } /** * å¤æç¨æ·æ¯å¦æ¥ææ¤æé * * @param flowMyBusiness * @param user * @return */ private boolean isUserAuthorized(FlowMyBusiness flowMyBusiness, LoginUser user) { List<String> todoUsers = JSON.parseArray(flowMyBusiness.getTodoUsers(), String.class); return todoUsers != null && todoUsers.contains(user.getUsername()); } private boolean claimTask(String taskId, LoginUser user) { Task task = taskService.createTaskQuery().taskId(taskId).singleResult(); if (task == null) { return false; } if (task.getAssignee() != null && !task.getAssignee().equals(user.getUsername())) { return false; } taskService.claim(taskId, user.getUsername()); return true; } } lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentSealUpServiceImpl.java
@@ -18,8 +18,10 @@ import org.jeecg.common.exception.JeecgBootException; import org.jeecg.common.system.vo.LoginUser; import org.jeecg.common.util.oConvertUtils; import org.jeecg.modules.eam.aspect.annotation.EquipmentHistoryLog; import org.jeecg.modules.eam.constant.AssetStatusEnum; import org.jeecg.modules.eam.constant.BusinessCodeConst; import org.jeecg.modules.eam.constant.EquipmentOperationTagEnum; import org.jeecg.modules.eam.constant.EquipmentSealUpStatusEnum; import org.jeecg.modules.eam.entity.EamEquipment; import org.jeecg.modules.eam.entity.EamEquipmentSealUp; @@ -278,6 +280,7 @@ @Override @Transactional(rollbackFor = Exception.class) @EquipmentHistoryLog(operationTag = EquipmentOperationTagEnum.SEAL_UP, businessTable = "eam_equipment_seal_up") public EamEquipmentSealUp approval(EamEquipmentSealUpRequest request) { EamEquipmentSealUp entity = equipmentSealUpMapper.selectById(request.getId()); if (entity == null) { @@ -336,7 +339,7 @@ values.put("NextAssignee", userApprovalList); } else { //设置entity entity.setSealStatus(EquipmentSealUpStatusEnum.WAIT_SUBMIT.name()); entity.setSealStatus(EquipmentSealUpStatusEnum.COMPLETE.name()); // ä¿®æ¹è®¾å¤ç¶æ equipment.setAssetStatus(AssetStatusEnum.NORMAL.name()); eamEquipmentService.updateById(equipment); lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentTransferServiceImpl.java
@@ -259,13 +259,12 @@ entity.setTransferStatus(EquipmentTransferStatusEnum.COMPLETE.name()); List<String> userApprovalList = new ArrayList<>(Collections.singletonList(entity.getReportUser())); values.put("NextAssignee", userApprovalList); // ä¿®æ¹è®¾å¤ç¶æ equipment.setAssetStatus(AssetStatusEnum.NORMAL.name()); } else { //设置entity entity.setTransferStatus(EquipmentTransferStatusEnum.WAIT_SUBMIT.name()); // ä¿®æ¹è®¾å¤ç¶æ entity.setTransferStatus(EquipmentTransferStatusEnum.COMPLETE.name()); } // ä¿®æ¹è®¾å¤ç¶æ equipment.setAssetStatus(AssetStatusEnum.NORMAL.name()); entity.setApprovalUser(user.getUsername()); entity.setApprovalComment(request.getApprovalComment()); entity.setApprovalTime(new Date());