lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/EamReportThreeNoSpareEnum.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,12 @@ package org.jeecg.modules.eam.constant; public enum EamReportThreeNoSpareEnum { //å¾ æäº¤ PENDING_SUBMIT, //å¾ å®¡æ¹ PENDING_APPROVAL, //已宿 REPAIR_COMPLETED, //已驳å REJECTED; } lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/dto/EamEquipmentDto.java
@@ -269,7 +269,7 @@ /** * éªæ¶æ¥æ */ @Excel(name = "æç¨æ¥æ", width = 25, format = "yyyy/MM/dd", orderNum = "29") @Excel(name = "éªæ¶æ¥æ", width = 25, format = "yyyy/MM/dd", orderNum = "29") @ApiModelProperty(value = "éªæ¶æ¥æ") @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd") lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/dto/EamReportThreeNoSpareDto.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,131 @@ package org.jeecg.modules.eam.dto; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableLogic; 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.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-07-17 * @Version: V1.0 */ @Data @TableName("eam_report_three_no_spare") @Accessors(chain = true) @EqualsAndHashCode(callSuper = false) @ApiModel(value="eam_report_three_no_spare对象", description="âä¸ä¸æ¾è¿çååâåæè¡¨") public class EamReportThreeNoSpareDto extends FlowTaskVo implements Serializable { private static final long serialVersionUID = 1L; /**主é®*/ @TableId(type = IdType.ASSIGN_ID) @ApiModelProperty(value = "主é®") private String id; /**å建人*/ @ApiModelProperty(value = "å建人") private String createBy; /**åå»ºæ¥æ*/ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") @ApiModelProperty(value = "åå»ºæ¥æ") private Date createTime; /**æ´æ°äºº*/ @ApiModelProperty(value = "æ´æ°äºº") private String updateBy; /**æ´æ°æ¥æ*/ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") @ApiModelProperty(value = "æ´æ°æ¥æ") private Date updateTime; /**å 餿 è®°*/ @Excel(name = "å 餿 è®°", width = 15) @ApiModelProperty(value = "å 餿 è®°") @TableLogic private Integer delFlag; /**æ¥ä¿®ID*/ @Excel(name = "æ¥ä¿®ID", width = 15) @ApiModelProperty(value = "æ¥ä¿®ID") private String reportId; /**设å¤ID*/ @Excel(name = "设å¤ID", width = 15) @ApiModelProperty(value = "设å¤ID") private String equipmentId; /**æäº¤ç¶æ*/ @Excel(name = "æäº¤ç¶æ", width = 15) @ApiModelProperty(value = "æäº¤ç¶æ") private String submitStatus; /**åå åæ*/ @Excel(name = "åå åæ", width = 15) @ApiModelProperty(value = "åå åæ") private String causeAnalysis; /**å¹è®æè²*/ @Excel(name = "å¹è®æè²", width = 15) @ApiModelProperty(value = "å¹è®æè²") private String isTrainingEducation; /**å¹è®å½¢å¼*/ @Excel(name = "å¹è®å½¢å¼", width = 15) @ApiModelProperty(value = "å¹è®å½¢å¼") private String trainingFormat; /**å¹è®å 容*/ @Excel(name = "å¹è®å 容", width = 15) @ApiModelProperty(value = "å¹è®å 容") private String trainingContent; /**å¹è®äºº*/ @Excel(name = "å¹è®äºº", width = 15) @ApiModelProperty(value = "å¹è®äºº") private String trainingUser; /**å¹è®æ¶é´*/ @Excel(name = "å¹è®æ¶é´", width = 15, format = "yyyy-MM-dd") @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") @DateTimeFormat(pattern="yyyy-MM-dd") @ApiModelProperty(value = "å¹è®æ¶é´") private Date trainingUserTime; /**é¢é²æªæ½*/ @Excel(name = "é¢é²æªæ½", width = 15) @ApiModelProperty(value = "é¢é²æªæ½") private String preventionMeasures; /**åä½é¢å¯¼*/ @Excel(name = "åä½é¢å¯¼", width = 15) @ApiModelProperty(value = "åä½é¢å¯¼") private String unitLeader; /**é¢å¯¼æè§*/ @Excel(name = "é¢å¯¼æè§", width = 15) @ApiModelProperty(value = "é¢å¯¼æè§") private String leaderOpinion; /**é¢å¯¼ç¡®è®¤ç»æ*/ @Excel(name = "é¢å¯¼ç¡®è®¤ç»æ", width = 15) @ApiModelProperty(value = "é¢å¯¼ç¡®è®¤ç»æ") private String leaderConfirmResult; /**é¢å¯¼ç¡®è®¤æ¶é´*/ @Excel(name = "é¢å¯¼ç¡®è®¤æ¶é´", width = 15, format = "yyyy-MM-dd") @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") @DateTimeFormat(pattern="yyyy-MM-dd") @ApiModelProperty(value = "é¢å¯¼ç¡®è®¤æ¶é´") private Date leaderConfirmTime; /**äºæ ç°è±¡*/ @Excel(name = "äºæ ç°è±¡", width = 15) @ApiModelProperty(value = "äºæ ç°è±¡") private transient String accidentPhenomenon; /**éåæªæ½*/ @Excel(name = "éåæªæ½", width = 15) @ApiModelProperty(value = "éåæªæ½") private transient String measure; /**é æç»æ*/ @Excel(name = "é æç»æ", width = 15) @ApiModelProperty(value = "é æç»æ") private transient String causingResults; } lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamEquipment.java
@@ -280,7 +280,7 @@ /** * éªæ¶æ¥æ */ @Excel(name = "æç¨æ¥æ", width = 25, format = "yyyy/MM/dd", orderNum = "29") @Excel(name = "éªæ¶æ¥æ", width = 25, format = "yyyy/MM/dd", orderNum = "29") @ApiModelProperty(value = "éªæ¶æ¥æ") @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd") lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamReportThreeNoSpare.java
@@ -56,7 +56,7 @@ @Excel(name = "å 餿 è®°", width = 15) @ApiModelProperty(value = "å 餿 è®°") @TableLogic private String delFlag; private Integer delFlag; /**æ¥ä¿®ID*/ @Excel(name = "æ¥ä¿®ID", width = 15) @ApiModelProperty(value = "æ¥ä¿®ID") @@ -65,13 +65,18 @@ @Excel(name = "设å¤ID", width = 15) @ApiModelProperty(value = "设å¤ID") private String equipmentId; /**æäº¤ç¶æ*/ @Excel(name = "æäº¤ç¶æ", width = 15) @ApiModelProperty(value = "æäº¤ç¶æ") @Dict(dicCode = "report_three_no_spare_submit_status") private String submitStatus; /**åå åæ*/ @Excel(name = "åå åæ", width = 15) @ApiModelProperty(value = "åå åæ") private String causeAnalysis; /**å¹è®æè²æ¯ å¦*/ @Excel(name = "å¹è®æè²æ¯ å¦", width = 15) @ApiModelProperty(value = "å¹è®æè²æ¯ å¦") /**å¹è®æè²*/ @Excel(name = "å¹è®æè²", width = 15) @ApiModelProperty(value = "å¹è®æè²") private String isTrainingEducation; /**å¹è®å½¢å¼*/ @Excel(name = "å¹è®å½¢å¼", width = 15) @@ -91,4 +96,38 @@ @DateTimeFormat(pattern="yyyy-MM-dd") @ApiModelProperty(value = "å¹è®æ¶é´") private Date trainingUserTime; /**é¢é²æªæ½*/ @Excel(name = "é¢é²æªæ½", width = 15) @ApiModelProperty(value = "é¢é²æªæ½") private String preventionMeasures; /**åä½é¢å¯¼*/ @Excel(name = "åä½é¢å¯¼", width = 15) @ApiModelProperty(value = "åä½é¢å¯¼") private String unitLeader; /**é¢å¯¼æè§*/ @Excel(name = "é¢å¯¼æè§", width = 15) @ApiModelProperty(value = "é¢å¯¼æè§") private String leaderOpinion; /**é¢å¯¼ç¡®è®¤æ¶é´*/ @Excel(name = "é¢å¯¼ç¡®è®¤æ¶é´", width = 15, format = "yyyy-MM-dd") @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") @DateTimeFormat(pattern="yyyy-MM-dd") @ApiModelProperty(value = "é¢å¯¼ç¡®è®¤æ¶é´") private Date leaderConfirmTime; /**é¢å¯¼ç¡®è®¤ç»æ*/ @Excel(name = "é¢å¯¼ç¡®è®¤ç»æ", width = 15) @ApiModelProperty(value = "é¢å¯¼ç¡®è®¤ç»æ") private String leaderConfirmResult; /**äºæ ç°è±¡*/ @Excel(name = "äºæ ç°è±¡", width = 15) @ApiModelProperty(value = "äºæ ç°è±¡") private transient String accidentPhenomenon; /**éåæªæ½*/ @Excel(name = "éåæªæ½", width = 15) @ApiModelProperty(value = "éåæªæ½") private transient String measure; /**é æç»æ*/ @Excel(name = "é æç»æ", width = 15) @ApiModelProperty(value = "é æç»æ") private transient String causingResults; } lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/mapper/EamRepairOrderMapper.java
@@ -12,7 +12,7 @@ import java.util.List; /** * @Description: 维修工å * @Description: ertns * @Author: Lius * @Date: 2025-04-03 */ lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/mapper/EamReportThreeNoSpareMapper.java
@@ -2,9 +2,13 @@ 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 org.apache.ibatis.annotations.Param; import org.jeecg.modules.eam.entity.EamReportThreeNoSpare; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.jeecg.modules.eam.request.EamReportThreeNoSpareQuery; /** * @Description: âä¸ä¸æ¾è¿çååâåæè¡¨ @@ -14,4 +18,5 @@ */ public interface EamReportThreeNoSpareMapper extends BaseMapper<EamReportThreeNoSpare> { IPage<EamReportThreeNoSpareQuery> queryPageList(IPage<EamReportThreeNoSpareQuery> page, @Param(Constants.WRAPPER) QueryWrapper<EamReportThreeNoSpareQuery> EamReportThreeNoSpareQuery); } lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/mapper/xml/EamReportThreeNoSpareMapper.xml
@@ -2,4 +2,23 @@ <!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.EamReportThreeNoSpareMapper"> <select id="queryPageList" resultType="org.jeecg.modules.eam.request.EamReportThreeNoSpareQuery"> SELECT ertns.*, e.equipment_code, e.equipment_name, e.equipment_model, e.installation_position, erar.accident_phenomenon, erar.measure, erar.causing_results FROM eam_report_three_no_spare ertns LEFT JOIN eam_report_accidents_register erar ON ertns.report_id = erar.report_id AND erar.del_flag = 0 INNER JOIN eam_equipment e ON erar.equipment_id = e.id AND e.del_flag = 0 ${ew.customSqlSegment} </select> </mapper> lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/request/EamReportThreeNoSpareQuery.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,139 @@ package org.jeecg.modules.eam.request; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableLogic; 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; @Data @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) @ApiModel(value="ä¸ä¸åå", description="ä¸ä¸åå") public class EamReportThreeNoSpareQuery implements Serializable { private static final long serialVersionUID = 1L; /**主é®*/ @TableId(type = IdType.ASSIGN_ID) @ApiModelProperty(value = "主é®") private String id; /**å建人*/ @ApiModelProperty(value = "å建人") private String createBy; /**åå»ºæ¥æ*/ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") @ApiModelProperty(value = "åå»ºæ¥æ") private Date createTime; /**æ´æ°äºº*/ @ApiModelProperty(value = "æ´æ°äºº") private String updateBy; /**æ´æ°æ¥æ*/ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") @ApiModelProperty(value = "æ´æ°æ¥æ") private Date updateTime; /**å 餿 è®°*/ @Excel(name = "å 餿 è®°", width = 15) @ApiModelProperty(value = "å 餿 è®°") @TableLogic private Integer delFlag; /**æ¥ä¿®ID*/ @Excel(name = "æ¥ä¿®ID", width = 15) @ApiModelProperty(value = "æ¥ä¿®ID") private String reportId; /**设å¤ID*/ @Excel(name = "设å¤ID", width = 15) @ApiModelProperty(value = "设å¤ID") private String equipmentId; /**æäº¤ç¶æ*/ @Excel(name = "æäº¤ç¶æ", width = 15) @ApiModelProperty(value = "æäº¤ç¶æ") @Dict(dicCode = "report_three_no_spare_submit_status") private String submitStatus; /**åå åæ*/ @Excel(name = "åå åæ", width = 15) @ApiModelProperty(value = "åå åæ") private String causeAnalysis; /**å¹è®æè²*/ @Excel(name = "å¹è®æè²", width = 15) @ApiModelProperty(value = "å¹è®æè²") @Dict(dicCode = "yn") private String isTrainingEducation; /**å¹è®å½¢å¼*/ @Excel(name = "å¹è®å½¢å¼", width = 15) @ApiModelProperty(value = "å¹è®å½¢å¼") private String trainingFormat; /**å¹è®å 容*/ @Excel(name = "å¹è®å 容", width = 15) @ApiModelProperty(value = "å¹è®å 容") private String trainingContent; /**å¹è®äºº*/ @Excel(name = "å¹è®äºº", width = 15) @ApiModelProperty(value = "å¹è®äºº") @Dict(dictTable = "sys_user", dicText = "realname", dicCode = "username") private String trainingUser; /**å¹è®æ¶é´*/ @Excel(name = "å¹è®æ¶é´", width = 15, format = "yyyy-MM-dd") @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") @DateTimeFormat(pattern="yyyy-MM-dd") @ApiModelProperty(value = "å¹è®æ¶é´") private Date trainingUserTime; /**é¢é²æªæ½*/ @Excel(name = "é¢é²æªæ½", width = 15) @ApiModelProperty(value = "é¢é²æªæ½") private String preventionMeasures; /**åä½é¢å¯¼*/ @Excel(name = "åä½é¢å¯¼", width = 15) @ApiModelProperty(value = "åä½é¢å¯¼") @Dict(dictTable = "sys_user", dicText = "realname", dicCode = "username") private String unitLeader; /**é¢å¯¼æè§*/ @Excel(name = "é¢å¯¼æè§", width = 15) @ApiModelProperty(value = "é¢å¯¼æè§") private String leaderOpinion; /**é¢å¯¼ç¡®è®¤ç»æ*/ @Excel(name = "é¢å¯¼ç¡®è®¤ç»æ", width = 15) @ApiModelProperty(value = "é¢å¯¼ç¡®è®¤ç»æ") private String leaderConfirmResult; /**é¢å¯¼ç¡®è®¤æ¶é´*/ @Excel(name = "é¢å¯¼ç¡®è®¤æ¶é´", width = 15, format = "yyyy-MM-dd") @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") @DateTimeFormat(pattern="yyyy-MM-dd") @ApiModelProperty(value = "é¢å¯¼ç¡®è®¤æ¶é´") private Date leaderConfirmTime; /**äºæ ç°è±¡*/ @Excel(name = "äºæ ç°è±¡", width = 15) @ApiModelProperty(value = "äºæ ç°è±¡") private transient String accidentPhenomenon; /**éåæªæ½*/ @Excel(name = "éåæªæ½", width = 15) @ApiModelProperty(value = "éåæªæ½") private transient String measure; /**é æç»æ*/ @Excel(name = "é æç»æ", width = 15) @ApiModelProperty(value = "é æç»æ") private transient String causingResults; //å表å±ç¤º @TableField(exist = false) private String equipmentCode; @TableField(exist = false) private String equipmentName; @TableField(exist = false) private String equipmentModel; @TableField(exist = false) private String installationPosition; private String column; private String order; } lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/IEamReportThreeNoSpareService.java
@@ -1,7 +1,13 @@ package org.jeecg.modules.eam.service; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.jeecg.common.api.vo.Result; import org.jeecg.modules.eam.dto.EamReportAccidentsRegisterDto; import org.jeecg.modules.eam.dto.EamReportThreeNoSpareDto; import org.jeecg.modules.eam.entity.EamReportThreeNoSpare; import com.baomidou.mybatisplus.extension.service.IService; import org.jeecg.modules.eam.request.EamReportThreeNoSpareQuery; /** * @Description: âä¸ä¸æ¾è¿çååâåæè¡¨ @@ -11,4 +17,25 @@ */ public interface IEamReportThreeNoSpareService extends IService<EamReportThreeNoSpare> { /** * å页å表 * @param page * @param EamReportThreeNoSpareQuery * @return */ IPage<EamReportThreeNoSpareQuery> pageList(Page<EamReportThreeNoSpareQuery> page, EamReportThreeNoSpareQuery EamReportThreeNoSpareQuery); /** * æä½å·¥æäº¤-åèµ·æµç¨ * @param id * @return */ Result<?> submit(String id); /** * æµç¨å®¡æ ¸ * @param eamReportThreeNoSpareDto */ Result<?> audit(EamReportThreeNoSpareDto eamReportThreeNoSpareDto); } lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentServiceImpl.java
@@ -62,7 +62,7 @@ @Override @Transactional(rollbackFor = Exception.class) // @EquipmentHistoryLog(operationTag = EquipmentOperationTagEnum.ACCEPTANCE, businessTable = "eam_equipment") @EquipmentHistoryLog(operationTag = EquipmentOperationTagEnum.ACCEPTANCE, businessTable = "eam_equipment") public EamEquipment saveEquipment(EamEquipment eamEquipment) { if (eamEquipment == null) { return null; lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamReportRepairServiceImpl.java
@@ -63,6 +63,8 @@ private IEamRepairOrderService iEamRepairOrderService; @Autowired private ISysBusinessCodeRuleService businessCodeRuleService; @Autowired private IEamReportThreeNoSpareService eamReportThreeNoSpareService; /** * å页å表 * @@ -205,10 +207,20 @@ //æ·»å 设å¤äºæ ç»è®°è¡¨ EamReportAccidentsRegister eamReportAccidentsRegister = new EamReportAccidentsRegister(); BeanUtils.copyProperties(eamReportRepairRequest, eamReportAccidentsRegister); eamReportAccidentsRegister.setId(null); eamReportAccidentsRegister.setReportId(eamReportRepair.getId()); eamReportAccidentsRegister.setDelFlag(Integer.valueOf(CommonConstant.DEFAULT_0)); eamReportAccidentsRegister.setRegisterStatus(EamReportAccidentsRegisterEnum.PENDING_SUBMIT.name()); iEamReportAccidentsRegisterService.save(eamReportAccidentsRegister); //çæä¸ä¸åå EamReportThreeNoSpare eamReportThreeNoSpare = new EamReportThreeNoSpare(); BeanUtils.copyProperties(eamReportRepairRequest, eamReportThreeNoSpare); eamReportThreeNoSpare.setId(null); eamReportThreeNoSpare.setReportId(eamReportRepair.getId()); eamReportThreeNoSpare.setPreventionMeasures(eamReportAccidentsRegister.getTakeSteps()); eamReportThreeNoSpare.setSubmitStatus(EamReportThreeNoSpareEnum.PENDING_SUBMIT.name()); eamReportThreeNoSpare.setDelFlag(Integer.valueOf(CommonConstant.DEFAULT_0)); eamReportThreeNoSpareService.save(eamReportThreeNoSpare); } //çæç»´ä¿®å·¥å EamRepairOrder eamRepairOrder=new EamRepairOrder(); lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamReportThreeNoSpareServiceImpl.java
@@ -1,11 +1,53 @@ package org.jeecg.modules.eam.service.impl; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; 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.constant.BusinessCodeConst; import org.jeecg.modules.eam.constant.EamReportThreeNoSpareEnum; import org.jeecg.modules.eam.dto.EamReportThreeNoSpareDto; import org.jeecg.modules.eam.entity.EamEquipment; import org.jeecg.modules.eam.entity.EamReportThreeNoSpare; import org.jeecg.modules.eam.mapper.EamReportThreeNoSpareMapper; import org.jeecg.modules.eam.request.EamReportThreeNoSpareQuery; import org.jeecg.modules.eam.service.IEamEquipmentService; import org.jeecg.modules.eam.service.IEamReportRepairService; import org.jeecg.modules.eam.service.IEamReportThreeNoSpareService; 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.entity.BaseFactory; import org.jeecg.modules.system.entity.BaseFactoryUser; import org.jeecg.modules.system.service.IBaseFactoryService; import org.jeecg.modules.system.service.IBaseFactoryUserService; import org.jeecg.modules.system.service.ISysUserService; import org.jeecg.modules.system.vo.UserSelector; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import javax.annotation.Resource; import java.util.*; import java.util.stream.Collectors; /** * @Description: âä¸ä¸æ¾è¿çååâåæè¡¨ @@ -13,7 +55,259 @@ * @Date: 2025-07-17 * @Version: V1.0 */ @Service public class EamReportThreeNoSpareServiceImpl extends ServiceImpl<EamReportThreeNoSpareMapper, EamReportThreeNoSpare> implements IEamReportThreeNoSpareService { @Service("eamReportThreeNoSpareService") public class EamReportThreeNoSpareServiceImpl extends ServiceImpl<EamReportThreeNoSpareMapper, EamReportThreeNoSpare> implements IEamReportThreeNoSpareService , FlowCallBackServiceI { @Autowired private IBaseFactoryUserService baseFactoryUserService; @Autowired private IBaseFactoryService baseFactoryService; @Autowired @Lazy private IEamReportRepairService iEamReportRepairService; @Resource private FlowCommonService flowCommonService; @Resource private IFlowDefinitionService flowDefinitionService; @Resource private IEamEquipmentService eamEquipmentService; @Resource private IFlowMyBusinessService flowMyBusinessService; @Resource private TaskService taskService; @Resource private IFlowTaskService flowTaskService; @Autowired private ISysUserService sysUserService; /** * å页å表 * @param page * @param EamReportThreeNoSpareQuery * @return */ @Override public IPage<EamReportThreeNoSpareQuery> pageList(Page<EamReportThreeNoSpareQuery> page, EamReportThreeNoSpareQuery EamReportThreeNoSpareQuery){ QueryWrapper<EamReportThreeNoSpareQuery> queryWrapper = new QueryWrapper<>(); queryWrapper.eq("ertns.del_flag", CommonConstant.DEL_FLAG_0); //ç¨æ·æ°æ®æé LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); if (sysUser == null) { return page; } if (StringUtils.isNotBlank(sysUser.getEamEquipmentIds())) { //éæ©äºè®¾å¤ï¼æ ¹æ®è®¾å¤idè¿æ»¤è®¾å¤ List<String> equipArr = Arrays.asList(sysUser.getEamEquipmentIds().split(",")); queryWrapper.in("e.equipment_code", equipArr); } else { //没æéæ©è®¾å¤ï¼æ ¹æ®ä¸å¿è¿æ»¤è®¾å¤ List<BaseFactoryUser> baseFactoryUserList = baseFactoryUserService. list(new LambdaQueryWrapper<BaseFactoryUser>().eq(BaseFactoryUser::getUserId, sysUser.getId())); if (!CollectionUtils.isEmpty(baseFactoryUserList)) { Set<String> factoryIds = baseFactoryUserList.stream().map(BaseFactoryUser::getFactoryId).collect(Collectors.toSet()); Set<String> factoryCode = baseFactoryService.listByIds(factoryIds).stream().map(BaseFactory::getOrgCode).collect(Collectors.toSet()); queryWrapper.in("e.factory_org_code", factoryCode); } else { return page; } } //æ¥è¯¢æ¡ä»¶è¿æ»¤ if (EamReportThreeNoSpareQuery != null) { if (StringUtils.isNotBlank(EamReportThreeNoSpareQuery.getEquipmentId())) { queryWrapper.eq("ertns.equipment_id", EamReportThreeNoSpareQuery.getEquipmentId()); } if (StringUtils.isNotBlank(EamReportThreeNoSpareQuery.getEquipmentCode())) { queryWrapper.like("e.equipment_code", EamReportThreeNoSpareQuery.getEquipmentCode()); } if (StringUtils.isNotBlank(EamReportThreeNoSpareQuery.getEquipmentName())) { queryWrapper.like("e.equipment_name", EamReportThreeNoSpareQuery.getEquipmentName()); } if (StringUtils.isNotBlank(EamReportThreeNoSpareQuery.getSubmitStatus())) { queryWrapper.eq("ertns.submit_status", EamReportThreeNoSpareQuery.getSubmitStatus()); } if (StringUtils.isNotBlank(EamReportThreeNoSpareQuery.getCauseAnalysis())) { queryWrapper.like("ertns.cause_analysis", EamReportThreeNoSpareQuery.getCauseAnalysis()); } if (StringUtils.isNotBlank(EamReportThreeNoSpareQuery.getTrainingFormat())) { queryWrapper.like("ertns.training_format", EamReportThreeNoSpareQuery.getTrainingFormat()); } if (StringUtils.isNotBlank(EamReportThreeNoSpareQuery.getTrainingContent())) { queryWrapper.like("ertns.training_content", EamReportThreeNoSpareQuery.getTrainingContent()); } //æåº if (StringUtils.isNotBlank(EamReportThreeNoSpareQuery.getColumn()) && StringUtils.isNotBlank(EamReportThreeNoSpareQuery.getOrder())) { String column = EamReportThreeNoSpareQuery.getColumn(); if (column.endsWith(CommonConstant.DICT_TEXT_SUFFIX)) { column = column.substring(0, column.lastIndexOf(CommonConstant.DICT_TEXT_SUFFIX)); } if (DataBaseConstant.SQL_ASC.equalsIgnoreCase(EamReportThreeNoSpareQuery.getOrder())) { queryWrapper.orderByAsc("ertns." + oConvertUtils.camelToUnderline(column)); } else { queryWrapper.orderByDesc("ertns." + oConvertUtils.camelToUnderline(column)); } } else { queryWrapper.orderByDesc("ertns.create_time"); } } else { queryWrapper.orderByDesc("ertns.create_time"); } return baseMapper.queryPageList(page, queryWrapper); } /** * æä½å·¥æäº¤-åèµ·æµç¨ * @param id * @return */ @Override public Result<?> submit(String id){ EamReportThreeNoSpare eamReportThreeNoSpare=this.getById(id); LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); EamEquipment eamEquipment = eamEquipmentService.getById(eamReportThreeNoSpare.getEquipmentId()); //æ ¹æ®userçå²ä½è¿è¡å¤æä¸ä¸æ¥å¤ç人 List<UserSelector> userSelectorList = sysUserService.selectOperatorList(eamEquipment.getEquipmentCode(), eamEquipment.getFactoryOrgCode(), BusinessCodeConst.PCR0019); // å¯å¨è®¾å¤äºæ ç»è®°æµç¨ flowCommonService.initActBusiness("设å¤ç¼å·ï¼" + eamEquipment.getEquipmentCode() + ", 设å¤åç§°ï¼" + eamEquipment.getEquipmentName()+"åèµ·âä¸ä¸æ¾è¿çååâåææµç¨", eamReportThreeNoSpare.getId(), "eamReportThreeNoSpareService", "eam_report_three_no_spare", null); Map<String, Object> variables = new HashMap<>(); variables.put("dataId", eamReportThreeNoSpare.getId()); variables.put("organization", "å¹è®äººæäº¤å¯å¨æµç¨"); variables.put("comment", "å¹è®äººæäº¤åå¯å¨æµç¨"); variables.put("proofreading", true); if (CollectionUtils.isEmpty(userSelectorList)) { throw new JeecgBootException("è®¾å¤æªåå¨å®¡æ ¸é¢å¯¼ï¼æ æ³è¿å ¥ä¸çº§å®¡æ¹ï¼"); }else { List<String> usernameList = userSelectorList.stream().map(UserSelector::getUsername).collect(Collectors.toList()); variables.put("NextAssignee", usernameList); } Result result = flowDefinitionService.startProcessInstanceByKey("eam_report_three_no_spare", variables); if (!result.isSuccess()) { return Result.error("æµç¨å¯å¨å¤±è´¥"); } else { eamReportThreeNoSpare.setTrainingUser(user.getUsername()); eamReportThreeNoSpare.setTrainingUserTime(new Date()); eamReportThreeNoSpare.setSubmitStatus(EamReportThreeNoSpareEnum.PENDING_APPROVAL.name()); this.updateById(eamReportThreeNoSpare); return result; } } /** * æµç¨å®¡æ ¸ * @param eamReportThreeNoSpareDto */ @Override public Result<?> audit(EamReportThreeNoSpareDto eamReportThreeNoSpareDto){ EamReportThreeNoSpare eamReportThreeNoSpare = this.baseMapper.selectById(eamReportThreeNoSpareDto.getId()); if (eamReportThreeNoSpare == null) { throw new JeecgBootException("å·¥åä¸åå¨ï¼è¯·å·æ°éè¯ï¼"); } // è·åå½åç»å½ç¨æ· LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); if (user == null || StrUtil.isBlank(user.getId())) { throw new JeecgBootException("æªè·åå°ç»å½ç¨æ·ï¼è¯·éæ°ç»å½ååè¯ï¼"); } eamReportThreeNoSpareDto.setAssignee(user.getUsername()); // è·åæµç¨ä¸å¡è®°å½ FlowMyBusiness flowMyBusiness = flowMyBusinessService.getFlowMyBusiness(eamReportThreeNoSpareDto.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(eamReportThreeNoSpareDto.getEquipmentId()); if (equipment == null) { throw new JeecgBootException("设å¤ä¸åå¨ï¼è¯·æ£æ¥ï¼"); } //æµç¨åé Map<String, Object> values = new HashMap<>(); values.put("dataId", eamReportThreeNoSpareDto.getId()); values.put("assignee", user.getId()); if(StrUtil.isEmpty(eamReportThreeNoSpareDto.getLeaderOpinion())){ eamReportThreeNoSpareDto.setLeaderOpinion(""); } values.put("organization", eamReportThreeNoSpareDto.getLeaderOpinion()); values.put("comment", eamReportThreeNoSpareDto.getLeaderOpinion()); values.put("leaderConfirmResult", eamReportThreeNoSpareDto.getLeaderConfirmResult()); values.put("proofreading", true); if ("1".equals(eamReportThreeNoSpareDto.getLeaderConfirmResult())){ eamReportThreeNoSpare.setSubmitStatus(EamReportThreeNoSpareEnum.REPAIR_COMPLETED.name()); }else { eamReportThreeNoSpare.setSubmitStatus(EamReportThreeNoSpareEnum.REJECTED.name()); } eamReportThreeNoSpare.setUnitLeader(user.getUsername()); eamReportThreeNoSpare.setLeaderOpinion(eamReportThreeNoSpareDto.getLeaderOpinion()); eamReportThreeNoSpare.setLeaderConfirmResult(eamReportThreeNoSpareDto.getLeaderConfirmResult()); eamReportThreeNoSpare.setLeaderConfirmTime(new Date()); eamReportThreeNoSpareDto.setComment(eamReportThreeNoSpareDto.getLeaderOpinion()); eamReportThreeNoSpareDto.setValues(values); //ä¿åå·¥å this.updateById(eamReportThreeNoSpare); Result result = flowTaskService.complete(eamReportThreeNoSpareDto); if (!result.isSuccess()) { throw new JeecgBootException("审æ¹å¤±è´¥ï¼è¯·å·æ°æ¥çï¼"); } return Result.ok("å®¡æ¹æå"); } 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; } /** * å¤æç¨æ·æ¯å¦æ¥ææ¤æé * @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()); } @Override public void afterFlowHandle(FlowMyBusiness business) { } @Override public Object getBusinessDataById(String dataId) { return null; } @Override public Map<String, Object> flowValuesOfTask(String taskNameId, Map<String, Object> values) { return Collections.emptyMap(); } @Override public List<String> flowCandidateUsernamesOfTask(String taskNameId, Map<String, Object> values) { //è·åä¸ä¸æ¥å¤ç人 Object object = values.get("NextAssignee"); return (List<String>) object; } } lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamReportThreeNoSpareController.java
@@ -1,6 +1,7 @@ package org.jeecg.modules.eam.controller; import java.util.Arrays; import java.util.Date; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @@ -9,10 +10,16 @@ import java.net.URLDecoder; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import cn.hutool.core.util.StrUtil; import org.apache.shiro.SecurityUtils; import org.jeecg.common.api.vo.Result; import org.jeecg.common.system.query.QueryGenerator; import org.jeecg.common.system.vo.LoginUser; import org.jeecg.common.util.oConvertUtils; import org.jeecg.modules.eam.dto.EamReportThreeNoSpareDto; import org.jeecg.modules.eam.entity.EamReportThreeNoSpare; import org.jeecg.modules.eam.request.EamReportThreeNoSpareQuery; import org.jeecg.modules.eam.service.IEamReportThreeNoSpareService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -53,7 +60,7 @@ /** * å页å表æ¥è¯¢ * * @param eamReportThreeNoSpare * @param eamReportThreeNoSpareQuery * @param pageNo * @param pageSize * @param req @@ -62,13 +69,12 @@ //@AutoLog(value = "âä¸ä¸æ¾è¿çååâåæè¡¨-å页å表æ¥è¯¢") @ApiOperation(value="âä¸ä¸æ¾è¿çååâåæè¡¨-å页å表æ¥è¯¢", notes="âä¸ä¸æ¾è¿çååâåæè¡¨-å页å表æ¥è¯¢") @GetMapping(value = "/list") public Result<IPage<EamReportThreeNoSpare>> queryPageList(EamReportThreeNoSpare eamReportThreeNoSpare, public Result<IPage<EamReportThreeNoSpareQuery>> queryPageList(EamReportThreeNoSpareQuery eamReportThreeNoSpareQuery, @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, HttpServletRequest req) { QueryWrapper<EamReportThreeNoSpare> queryWrapper = QueryGenerator.initQueryWrapper(eamReportThreeNoSpare, req.getParameterMap()); Page<EamReportThreeNoSpare> page = new Page<EamReportThreeNoSpare>(pageNo, pageSize); IPage<EamReportThreeNoSpare> pageList = eamReportThreeNoSpareService.page(page, queryWrapper); Page<EamReportThreeNoSpareQuery> page = new Page<EamReportThreeNoSpareQuery>(pageNo, pageSize); IPage<EamReportThreeNoSpareQuery> pageList = eamReportThreeNoSpareService.pageList(page, eamReportThreeNoSpareQuery); return Result.OK(pageList); } @@ -98,11 +104,44 @@ //@RequiresPermissions("org.jeecg.modules.mdc:eam_report_three_no_spare:edit") @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST}) public Result<String> edit(@RequestBody EamReportThreeNoSpare eamReportThreeNoSpare) { LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); eamReportThreeNoSpare.setTrainingUser(user.getUsername()); eamReportThreeNoSpare.setTrainingUserTime(new Date()); eamReportThreeNoSpareService.updateById(eamReportThreeNoSpare); return Result.OK("ç¼è¾æå!"); } /** * æä½å·¥æäº¤-åèµ·æµç¨ * @param id * @return */ @ApiOperation(value = "âä¸ä¸æ¾è¿çååâåæè¡¨--æäº¤", notes = "âä¸ä¸æ¾è¿çååâåæè¡¨--æäº¤") @GetMapping(value = "/submit") public Result<?> submit(String id){ eamReportThreeNoSpareService.submit(id); return Result.OK("æäº¤æåï¼"); } /** * æµç¨å®¡æ ¸ * @param eamReportThreeNoSpareDto */ @AutoLog(value = "âä¸ä¸æ¾è¿çååâåæè¡¨--æ§è¡/审æ¹") @ApiOperation(value = "âä¸ä¸æ¾è¿çååâåæè¡¨--æ§è¡/审æ¹", notes = "âä¸ä¸æ¾è¿çååâåæè¡¨--æ§è¡/审æ¹") @PostMapping(value = "/perform") public Result<?> audit(@RequestBody EamReportThreeNoSpareDto eamReportThreeNoSpareDto){ if (eamReportThreeNoSpareDto == null) { return Result.error("审æ¹ç对象ä¸è½ä¸ºç©ºï¼"); } // æ£æ¥è¯·æ±åæ° if (StrUtil.isBlank(eamReportThreeNoSpareDto.getTaskId()) || StrUtil.isBlank(eamReportThreeNoSpareDto.getDataId()) || StrUtil.isBlank(eamReportThreeNoSpareDto.getInstanceId())) { return Result.error("审æ¹ä»»å¡é误æä¸åå¨ï¼"); } return eamReportThreeNoSpareService.audit(eamReportThreeNoSpareDto); } /** * éè¿idå é¤ * * @param id lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/BaseFactoryServiceImpl.java
@@ -225,6 +225,7 @@ QueryWrapper<BaseFactory> baseFactoryQueryWrapper = new QueryWrapper<>(); baseFactoryQueryWrapper.eq(StrUtil.isNotEmpty(baseFactory.getFactoryCode()), "factory_code", baseFactory.getFactoryCode()); baseFactoryQueryWrapper.eq("del_flag", CommonConstant.DEL_FLAG_0.toString()); baseFactoryQueryWrapper.ne(baseFactory.getId() != null, "id", baseFactory.getId()); if (this.getOne(baseFactoryQueryWrapper) != null) { throw new JeecgBootException("æºæç¼ç å·²åå¨"); }