7afa456fdb3d9bafe29a681f674d4d61e97313c8..6da57b610d97be3f79084d43440e7823d707b249
4 天以前 hyingbo
设备管理调整
6da57b 对比 | 目录
4 天以前 Lius
更新说明
bb1a96 对比 | 目录
4 天以前 Lius
同步密网设备管理代码
57945f 对比 | 目录
已重命名1个文件
已添加7个文件
已修改33个文件
已删除1个文件
889 ■■■■ 文件已修改
db/增量SQL/更新脚本.sql 补丁 | 查看 | 原始文档 | blame | 历史
db/更新说明/20250814更新说明.md 补丁 | 查看 | 原始文档 | blame | 历史
db/更新说明/更新说明.md 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/BusinessCodeConst.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/SecondMaintenanceStatusEnum.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/ThirdMaintenanceStatusEnum.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/dto/EquipmentCategoryStatistics.java 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamEquipment.java 90 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamEquipmentExtend.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamEquipmentHistoryLog.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/mapper/EamEquipmentMapper.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/mapper/xml/EamEquipmentMapper.xml 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/request/EamEquipmentQuery.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/IEamEquipmentService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentServiceImpl.java 110 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamRepairOrderServiceImpl.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentController.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentLeanOutController.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamMaintenanceStandardController.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamReportRepairController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamSparePartsController.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamThirdMaintenanceOrderController.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EquipmentHomeController.java 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamEquipmentFluid.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamMaintenanceStandard.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamSparePartInventory.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/SecondMaintenanceOrderExpiredJob.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/ThirdMaintenanceOrderExpiredJob.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EquipmentHomeMapper.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamEquipmentFluidMapper.xml 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamInspectionOrderMapper.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EquipmentHomeMapper.xml 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamEquipmentLeanOutService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamMaintenanceStandardService.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEquipmentHomeService.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentLeanOutServiceImpl.java 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentSealUpServiceImpl.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceStandardServiceImpl.java 32 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamSecondMaintenanceOrderServiceImpl.java 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamThirdMaintenanceOrderServiceImpl.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EquipmentHomeServiceImpl.java 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/entity/SysCategory.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
db/ÔöÁ¿SQL/¸üнű¾.sql
db/¸üÐÂ˵Ã÷/20250814¸üÐÂ˵Ã÷.md
db/¸üÐÂ˵Ã÷/¸üÐÂ˵Ã÷.md
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
20250904
同步涉密网设备管理模块代码
设备管理:
1. äºŒä¿çŠ¶æ€ã€ä¸‰ä¿çŠ¶æ€æ·»åŠ å·²è¿‡æœŸç±»åž‹ï¼Œå®šæ—¶ä»»åŠ¡è®¾ç½®çŠ¶æ€è°ƒæ•´ä¸ºå·²è¿‡æœŸ
2. è®¾å¤‡ç®¡ç†-技术状态字典中的“合格”调整为“合格/完好”,来源国家调整为选择框
3. è®¾å¤‡ç®¡ç†-台账页面添加台账统计,统计结果可导出
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/BusinessCodeConst.java
@@ -58,13 +58,13 @@
    String PCR0001 = "PCR0001";
    //维修工
    String PCR0002 = "PCR0002";
    //班组长
    //维修主任
    String PCR0003 = "PCR0003";
    //设备管理员
    //车间设备管理员
    String PCR0004 = "PCR0004";
    //设备能源部
    String PCR0005 = "PCR0005";
    //机动办管理员
    //机动办
    String PCR0006 = "PCR0006";
    //备件管理员
    String PCR0007 = "PCR0007";
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/SecondMaintenanceStatusEnum.java
@@ -3,10 +3,11 @@
public enum SecondMaintenanceStatusEnum {
    WAIT_MAINTENANCE, //待保养
    UNDER_MAINTENANCE, //保养中
    WAIT_CONFIRM, //待确认
    WAIT_LEADER_CONFIRM, // å¾…领导确认
    WAIT_CONFIRM, //待车间设备管理员确认
    WAIT_LEADER_CONFIRM, // å¾…维修主任确认
    COMPLETE,  //已完成
    ABOLISH, //已作废
    EXPIRED, //已过期
    ;
    public static SecondMaintenanceStatusEnum getInstance(String code) {
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/ThirdMaintenanceStatusEnum.java
@@ -3,10 +3,11 @@
public enum ThirdMaintenanceStatusEnum {
    WAIT_MAINTENANCE, //待保养
    UNDER_MAINTENANCE, //保养中
    WAIT_CONFIRM, //待管理员确认
    WAIT_LEADER_CONFIRM, // å¾…领导确认
    WAIT_CONFIRM, //待机动办确认
    WAIT_LEADER_CONFIRM, // å¾…维修主任确认
    COMPLETE,  //已完成
    ABOLISH, //已作废
    EXPIRED, //已过期
    ;
    public static ThirdMaintenanceStatusEnum getInstance(String code) {
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/dto/EquipmentCategoryStatistics.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,76 @@
package org.jeecg.modules.eam.dto;
import lombok.Data;
import org.jeecgframework.poi.excel.annotation.Excel;
import java.math.BigDecimal;
@Data
public class EquipmentCategoryStatistics {
    /**
     * è®¾å¤‡ç§ç±»
     */
    @Excel(name = "设备种类", width = 15, orderNum = "1")
    private String equipmentType;
    /**
     * è®¾å¤‡æ€»æ•°
     */
    @Excel(name = "设备总数", width = 15, orderNum = "2")
    private Integer equipmentCount;
    /**
     * æ€»åŽŸå€¼
     */
    @Excel(name = "总原值", width = 15, orderNum = "3")
    private BigDecimal originalValue;
    /**
     * é«˜ç²¾åº¦æ€»æ•°
     */
    @Excel(name = "高精度总数", width = 15, orderNum = "4")
    private Integer highPrecisionCount;
    /**
     * é«˜ç²¾åº¦åŽŸå€¼
     */
    @Excel(name = "高精度原值", width = 15, orderNum = "5")
    private BigDecimal highPrecisionOriginalValue;
    /**
     * å›½äº§æ€»æ•°
     */
    @Excel(name = "国产总数", width = 15, orderNum = "6")
    private Integer domesticCount;
    /**
     * å›½äº§åŽŸå€¼
     */
    @Excel(name = "国产原值", width = 15, orderNum = "7")
    private BigDecimal domesticOriginalValue;
    /**
     * è¿›å£æ€»æ•°
     */
    @Excel(name = "进口总数", width = 15, orderNum = "8")
    private Integer importCount;
    /**
     * è¿›å£åŽŸå€¼
     */
    @Excel(name = "进口原值", width = 15, orderNum = "9")
    private BigDecimal importOriginalValue;
    /**
     * å®Œå¥½æ€»æ•°
     */
    @Excel(name = "完好总数", width = 15, orderNum = "10")
    private Integer intactCount;
    /**
     * å®Œå¥½åŽŸå€¼
     */
    @Excel(name = "完好原值", width = 15, orderNum = "11")
    private BigDecimal intactOriginalValue;
}
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamEquipment.java
@@ -36,115 +36,116 @@
     */
    @TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "主键")
    private java.lang.String id;
    private String id;
    /**
     * åˆ›å»ºäºº
     */
    @ApiModelProperty(value = "创建人")
    @Dict(dicCode = "sys_user, realname, username")
    private java.lang.String createBy;
    private String createBy;
    /**
     * åˆ›å»ºæ—¶é—´
     */
    @ApiModelProperty(value = "创建时间")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss ")
    private java.util.Date createTime;
    private Date createTime;
    /**
     * æ›´æ–°äºº
     */
    @ApiModelProperty(value = "更新人")
    @Dict(dicCode = "sys_user, realname, username")
    private java.lang.String updateBy;
    private String updateBy;
    /**
     * æ›´æ–°æ—¶é—´
     */
    @ApiModelProperty(value = "更新时间")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss ")
    private java.util.Date updateTime;
    private Date updateTime;
    /**
     * åˆ é™¤æ ‡è®°
     */
    @ApiModelProperty(value = "删除标记")
    private java.lang.Integer delFlag;
    private Integer delFlag;
    /**
     * è®¾å¤‡ç»Ÿä¸€ç¼–号
     */
    @Excel(name = "设备编号", width = 15, orderNum = "1")
    @ApiModelProperty(value = "设备编号")
    private java.lang.String equipmentCode;
    private String equipmentCode;
    /**
     * è®¾å¤‡åç§°
     */
    @Excel(name = "设备名称", width = 15, orderNum = "2")
    @ApiModelProperty(value = "设备名称")
    private java.lang.String equipmentName;
    private String equipmentName;
    /**
     * ä½¿ç”¨éƒ¨é—¨
     */
    @Excel(name = "使用车间", width = 25, dictTable = "mdc_production", dicText = "production_name", dicCode = "id", orderNum = "9")
    @ApiModelProperty(value = "使用部门")
    @Dict(dicCode = "mdc_production, production_name, id")
    private java.lang.String orgId;
    private String orgId;
    /**
     * è®¾å¤‡ç®¡ç†å‘˜
     */
    @Excel(name = "设备管理员", width = 35, dictTable = "sys_user", dicText = "realname", dicCode = "username", orderNum = "10")
    @ApiModelProperty(value = "设备管理员")
    @Dict(dicCode = "sys_user, realname, username")
    private java.lang.String equipmentManager;
    private String equipmentManager;
    /**
     * è®¾å¤‡ç±»åˆ«
     */
    @Excel(name = "设备类别", width = 15, dicCode = "equipment_category", orderNum = "5")
    @ApiModelProperty(value = "设备类别")
    @Dict(dicCode = "equipment_category")
    private java.lang.String equipmentCategory;
    private String equipmentCategory;
    /**
     * è®¾å¤‡åž‹å·
     */
    @Excel(name = "设备型号", width = 15, orderNum = "3")
    @ApiModelProperty(value = "设备型号")
    private java.lang.String equipmentModel;
    private String equipmentModel;
    /**
     * è®¾å¤‡è§„æ ¼
     */
    @Excel(name = "设备规格", width = 15, orderNum = "4")
    @ApiModelProperty(value = "设备规格")
    private java.lang.String equipmentSpecification;
    private String equipmentSpecification;
    /**
     * å®‰è£…位置
     */
    @Excel(name = "安装位置", width = 15, orderNum = "11")
    @ApiModelProperty(value = "安装位置")
    private java.lang.String installationPosition;
    private String installationPosition;
    /**
     * èµ„产使用状态
     */
    @Excel(name = "资产使用状态", width = 15, dicCode = "asset_status", orderNum = "7")
    @ApiModelProperty(value = "资产状态")
    @Dict(dicCode = "asset_status")
    private java.lang.String assetStatus;
    private String assetStatus;
    /**
     * å‡ºåŽ‚ç¼–å·
     */
    @Excel(name = "出厂编号", width = 15, orderNum = "12")
    @ApiModelProperty(value = "出厂编号")
    private java.lang.String factoryNumber;
    private String factoryNumber;
    /**
     * æœºåºŠåނ家
     */
    @Excel(name = "机床厂家", width = 15, orderNum = "13")
    @ApiModelProperty(value = "机床厂家")
    private java.lang.String manufacturingEnterprise;
    private String manufacturingEnterprise;
    /**
     * æ¥æºå›½å®¶
     */
    @Excel(name = "来源国家", width = 25, orderNum = "14")
    @Excel(name = "来源国家", width = 25, dicCode = "source_country", orderNum = "14")
    @ApiModelProperty(value = "来源国家")
    private java.lang.String originCountry;
    @Dict(dicCode = "source_country")
    private String originCountry;
    /**
     * è®¾å¤‡ä¾›åº”商
     */
@@ -158,7 +159,7 @@
    @ApiModelProperty(value = "出厂日期")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private java.util.Date leaveFactoryDate;
    private Date leaveFactoryDate;
    /**
     * éªŒæ”¶æ—¥æœŸ
     */
@@ -166,12 +167,12 @@
    @ApiModelProperty(value = "验收日期")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private java.util.Date acceptanceCheckDate;
    private Date acceptanceCheckDate;
    /**
     * è®¾å¤‡å›¾ç‰‡
     */
    @ApiModelProperty(value = "设备图片")
    private java.lang.String equipmentImage;
    private String equipmentImage;
    /**
     * ç”µæœºå°æ•°
     */
@@ -183,32 +184,32 @@
     */
    @Excel(name = "总功率(KW)", width = 15, orderNum = "19")
    @ApiModelProperty(value = "总功率")
    private java.lang.String equipmentPower;
    private String equipmentPower;
    /**
     * é‡é‡(吨)
     */
    @Excel(name = "重量(吨)", width = 15, orderNum = "20")
    @ApiModelProperty(value = "重量(吨)")
    private java.lang.String equipmentWeight;
    private String equipmentWeight;
    /**
     * æ˜¯å¦æœ‰å·¥è‰ºå‚æ•°
     */
    @Excel(name = "有无工艺参数", width = 15, dicCode = "has_no", orderNum = "21")
    @ApiModelProperty(value = "是否有工艺参数")
    private java.lang.String processParametersFlag;
    private String processParametersFlag;
    /**
     * æ˜¯å¦æœ‰ç²¾åº¦å‚æ•°
     */
    @Excel(name = "有无精度参数", width = 15, dicCode = "has_no", orderNum = "22")
    @ApiModelProperty(value = "是否有精度参数")
    private java.lang.String precisionParametersFlag;
    private String precisionParametersFlag;
    /**
     * å¤‡æ³¨
     */
    @Excel(name = "备注", width = 50, orderNum = "99")
    @ApiModelProperty(value = "备注")
    private java.lang.String remark;
    private String remark;
    /**
     * å¤–形尺寸
     */
@@ -263,7 +264,7 @@
    @Excel(name = "管理分类", width = 15, dicCode = "equipment_abc_flag", orderNum = "8")
    @ApiModelProperty(value = "管理分类")
    @Dict(dicCode = "equipment_abc_flag")
    private java.lang.String equipmentImportance;
    private String equipmentImportance;
    /**
     * æŠ€æœ¯çŠ¶æ€
@@ -271,9 +272,22 @@
    @Excel(name = "技术状态", width = 15, dicCode = "technology_status", orderNum = "7")
    @ApiModelProperty(value = "技术状态")
    @Dict(dicCode = "technology_status")
    private java.lang.String technologyStatus;
    private String technologyStatus;
    /**
     * è®¾å¤‡ç”¨é€”
     */
    @Excel(name = "设备用途", width = 15, dicCode = "equipment_use", orderNum = "7")
    @ApiModelProperty(value = "设备用途")
    @Dict(dicCode = "equipment_use")
    private String equipmentUse;
    /**
     * æ“ä½œå·¥
     */
    @Excel(name = "操作工", width = 15, orderNum = "28")
    @ApiModelProperty(value = "操作工")
    private String operator;
    /** =================== èˆªå®‡æ•‘生 æœªç”¨çš„字段  å¼€å§‹  ==========================**/
@@ -281,22 +295,22 @@
     * æ“ä½œç³»ç»Ÿ
     */
    @ApiModelProperty(value = "操作系统")
    private java.lang.String operationSystem;
    private String operationSystem;
    /**
     * ä¸»è½´è¿žæŽ¥å°ºå¯¸
     */
    @ApiModelProperty(value = "主轴连接尺寸")
    private java.lang.String spindleConnectDimension;
    private String spindleConnectDimension;
    /**
     * ç«‹é¡¹å¡å·
     */
    @ApiModelProperty(value = "立项卡号")
    private java.lang.String cardNumber;
    private String cardNumber;
    /**
     * æ˜¯å¦å®žæ–½MDC
     */
    @ApiModelProperty(value = "是否实施MDC")
    private java.lang.String mdcFlag;
    private String mdcFlag;
    @ApiModelProperty(value = "MDC设备类型")
    private String deviceType;
@@ -304,17 +318,17 @@
     * è®¾å¤‡ç«¯å£
     */
    @ApiModelProperty(value = "设备端口")
    private java.lang.String equipmentPort;
    private String equipmentPort;
    /**
     * åæ ‡æ•°é‡
     */
    @ApiModelProperty(value = "坐标数量")
    private java.lang.Integer coordinateNum;
    private Integer coordinateNum;
    /**
     * ç‰¹ç§è®¾å¤‡;是否为特种设备
     */
    @ApiModelProperty(value = "是否特种设备")
    private java.lang.String specialEquipment;
    private String specialEquipment;
@@ -324,14 +338,14 @@
    @ApiModelProperty(value = "质保开始日期")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private java.util.Date warrantyStartDate;
    private Date warrantyStartDate;
    /**
     * è´¨ä¿ç»“束日期
     */
    @ApiModelProperty(value = "质保结束日期")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private java.util.Date warrantyEndDate;
    private Date warrantyEndDate;
    /** =================== èˆªå®‡æ•‘生 æœªç”¨çš„字段  ç»“束  ==========================**/
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamEquipmentExtend.java
@@ -28,27 +28,27 @@
    /**主键*/
    @TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "主键")
    private java.lang.String id;
    private String id;
    /**创建人*/
    @ApiModelProperty(value = "创建人")
    private java.lang.String createBy;
    private String createBy;
    /**创建时间*/
    @ApiModelProperty(value = "创建时间")
    private java.util.Date createTime;
    /**更新人*/
    @ApiModelProperty(value = "更新人")
    private java.lang.String updateBy;
    private String updateBy;
    /**更新时间*/
    @ApiModelProperty(value = "更新时间")
    private java.util.Date updateTime;
    /**保养状态*/
    @Excel(name = "保养状态", width = 15)
    @ApiModelProperty(value = "保养状态")
    private java.lang.String maintenanceStatus;
    private String maintenanceStatus;
    /**维修状态*/
    @Excel(name = "维修状态", width = 15)
    @ApiModelProperty(value = "维修状态")
    private java.lang.String repairStatus;
    private String repairStatus;
    /**最新二保日期*/
    @ApiModelProperty(value = "最新二保日期")
    private java.util.Date latestSecondMaintenance;
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamEquipmentHistoryLog.java
@@ -31,11 +31,11 @@
    /**主键*/
    @TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "主键")
    private java.lang.String id;
    private String id;
    /**创建人*/
    @Excel(name = "创建人", width = 15)
    @ApiModelProperty(value = "创建人")
    private java.lang.String createBy;
    private String createBy;
    /**创建时间*/
    @ApiModelProperty(value = "创建时间")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@@ -44,27 +44,27 @@
    /**设备ID*/
    @Excel(name = "设备ID", width = 15)
    @ApiModelProperty(value = "设备ID")
    private java.lang.String equipmentId;
    private String equipmentId;
    /**操作标签*/
    @Excel(name = "操作标签", width = 15)
    @ApiModelProperty(value = "操作标签")
    @Dict(dicCode = "equipment_operation_tag")
    private java.lang.String operationTag;
    private String operationTag;
    /**操作人*/
    @Excel(name = "操作人", width = 15)
    @ApiModelProperty(value = "操作人")
    @Dict(dicCode = "sys_user, realname, username")
    private java.lang.String operator;
    private String operator;
    /**操作描述*/
    @Excel(name = "操作描述", width = 15)
    @ApiModelProperty(value = "操作描述")
    private java.lang.String description;
    private String description;
    /**业务主表*/
    @Excel(name = "业务主表", width = 15)
    @ApiModelProperty(value = "业务主表")
    private java.lang.String businessTable;
    private String businessTable;
    /**业务id*/
    @Excel(name = "业务id", width = 15)
    @ApiModelProperty(value = "业务id")
    private java.lang.String businessId;
    private String businessId;
}
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/mapper/EamEquipmentMapper.java
@@ -1,5 +1,6 @@
package org.jeecg.modules.eam.mapper;
import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -7,6 +8,7 @@
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.jeecg.modules.eam.entity.EamEquipment;
import org.jeecg.modules.system.entity.SysCategory;
import java.util.List;
@@ -32,4 +34,11 @@
     * @return
     */
    IPage<EamEquipment> queryPageList(IPage<EamEquipment> page, @Param(Constants.WRAPPER) Wrapper<EamEquipment> queryWrapper);
    @InterceptorIgnore(
            tenantLine = "true",   // å¿½ç•¥å¤šç§Ÿæˆ·æ¡ä»¶
            blockAttack = "true", // ç»•过全表操作检查
            illegalSql = "true"   // ç¦ç”¨ SQL æ³¨å…¥æ£€æŸ¥
    )
    List<SysCategory> getCategoryTypeMap();
}
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/mapper/xml/EamEquipmentMapper.xml
@@ -9,4 +9,58 @@
        on e.id = ext.id
        ${ew.customSqlSegment}
    </select>
    <select id="getCategoryTypeMap" resultType="org.jeecg.modules.system.entity.SysCategory">
        WITH Level2Nodes AS (
            SELECT
                id AS level_id,
                name,
                2 AS node_level
            FROM sys_category
            WHERE pid IN (SELECT id FROM sys_category WHERE pid = '0')
        ),
             Level3Nodes AS (
                 SELECT
                     tn.id AS level_id,
                     tn.name,
                     3 AS node_level
                 FROM sys_category tn
                          INNER JOIN Level2Nodes l2 ON tn.pid = l2.level_id
             ),
             TargetLevels AS (
                 SELECT level_id, node_level, name FROM Level2Nodes
                 UNION ALL
                 SELECT level_id, node_level, name FROM Level3Nodes
             ),
             NodeHierarchy AS (
                 SELECT
                     tl.level_id AS root_id,
                     tl.name,
                     yt.id AS node_id,
                     yt.code AS node_code
                 FROM TargetLevels tl
                          INNER JOIN sys_category yt ON yt.id = tl.level_id
                 UNION ALL
                 SELECT
                     nh.root_id,
                     nh.name,
                     yt.id AS node_id,
                     yt.code AS node_code
                 FROM sys_category yt
                          INNER JOIN NodeHierarchy nh ON yt.pid = nh.node_id
             )
        SELECT
            root_id AS id,
            name,
            STUFF((
                      SELECT ',' + node_code
                      FROM NodeHierarchy nh2
                      WHERE nh2.root_id = nh1.root_id
                      FOR XML PATH(''), TYPE
                ).value('.', 'NVARCHAR(MAX)'), 1, 1, '') AS childCodes
        FROM NodeHierarchy nh1
        GROUP BY root_id, name
        ORDER BY root_id
    </select>
</mapper>
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/request/EamEquipmentQuery.java
@@ -13,6 +13,14 @@
    private String operationSystem;
    private String orgId;
    private String equipmentCategory;
    private String manufacturingEnterprise;
    private String originalValue;
    private String performanceIndicators;
    private String leaveFactoryStartTime;
    private String leaveFactoryEndTime;
    private String acceptanceCheckStartTime;
    private String acceptanceCheckEndTime;
    private String equipmentUse;
    private String column;
    private String order;
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/IEamEquipmentService.java
@@ -1,12 +1,15 @@
package org.jeecg.modules.eam.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.jeecg.modules.eam.dto.EquipmentCategoryStatistics;
import org.jeecg.modules.eam.entity.EamEquipment;
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.eam.request.EamEquipmentQuery;
import org.jeecg.modules.eam.vo.EamEquipmentTree;
import org.jeecg.modules.eam.vo.EquipmentSearchResult;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
/**
@@ -52,4 +55,8 @@
     * @return
     */
    EamEquipment selectByEquipmentCode(String equipmentCode);
    List<EquipmentCategoryStatistics> queryLedgerStatistics();
    ModelAndView exportLedgerStatisticsXls(HttpServletRequest request, Class<EquipmentCategoryStatistics> equipmentCategoryStatisticsClass, String å°è´¦ç»Ÿè®¡);
}
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentServiceImpl.java
@@ -4,8 +4,11 @@
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.core.toolkit.StringPool;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.apache.commons.compress.utils.Lists;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.jeecg.common.constant.CommonConstant;
@@ -17,6 +20,7 @@
import org.jeecg.modules.eam.constant.EquipmentMaintenanceStatus;
import org.jeecg.modules.eam.constant.EquipmentOperationTagEnum;
import org.jeecg.modules.eam.constant.EquipmentRepairStatus;
import org.jeecg.modules.eam.dto.EquipmentCategoryStatistics;
import org.jeecg.modules.eam.entity.EamEquipment;
import org.jeecg.modules.eam.entity.EamEquipmentExtend;
import org.jeecg.modules.eam.mapper.EamEquipmentMapper;
@@ -27,12 +31,20 @@
import org.jeecg.modules.eam.vo.EamEquipmentTree;
import org.jeecg.modules.eam.vo.EquipmentSearchResult;
import org.jeecg.modules.system.entity.MdcProduction;
import org.jeecg.modules.system.entity.SysCategory;
import org.jeecg.modules.system.service.IMdcProductionService;
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
import org.jeecgframework.poi.excel.entity.ExportParams;
import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.servlet.ModelAndView;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
@@ -54,6 +66,9 @@
    private IEamEquipmentExtendService equipmentExtendService;
    @Autowired
    private IMdcProductionService mdcProductionService;
    @Value("${jeecg.path.upload}")
    private String upLoadPath;
    @Override
    @Transactional(rollbackFor = Exception.class)
@@ -137,6 +152,23 @@
            if (StringUtils.isNotBlank(eamEquipment.getOperationSystem())) {
                queryWrapper.like("e.operation_system", eamEquipment.getOperationSystem());
            }
            if (StringUtils.isNotBlank(eamEquipment.getManufacturingEnterprise())) {
                queryWrapper.like("e.manufacturing_enterprise", eamEquipment.getManufacturingEnterprise());
            }
            if (StringUtils.isNotBlank(eamEquipment.getOriginalValue())) {
                queryWrapper.like("e.original_value", eamEquipment.getOriginalValue());
            }
            if (StringUtils.isNotBlank(eamEquipment.getPerformanceIndicators())) {
                queryWrapper.like("e.performance_indicators", eamEquipment.getPerformanceIndicators());
            }
            if(oConvertUtils.isNotEmpty(eamEquipment.getLeaveFactoryStartTime()) && oConvertUtils.isNotEmpty(eamEquipment.getLeaveFactoryEndTime())){
                queryWrapper.ge("e.leave_factory_date",eamEquipment.getLeaveFactoryStartTime());
                queryWrapper.le("e.leave_factory_date",eamEquipment.getLeaveFactoryEndTime());
            }
            if(oConvertUtils.isNotEmpty(eamEquipment.getAcceptanceCheckStartTime()) && oConvertUtils.isNotEmpty(eamEquipment.getAcceptanceCheckEndTime())){
                queryWrapper.ge("e.acceptance_check_date",eamEquipment.getAcceptanceCheckStartTime());
                queryWrapper.le("e.acceptance_check_date",eamEquipment.getAcceptanceCheckEndTime());
            }
            if (StringUtils.isNotBlank(eamEquipment.getOrgId())) {
                //车间编码不为空
                List<String> productIds = mdcProductionService.recursionChildren(eamEquipment.getOrgId());
@@ -147,6 +179,9 @@
            }
            if (StringUtils.isNotBlank(eamEquipment.getEquipmentCategory())) {
                queryWrapper.like("e.equipment_category", eamEquipment.getEquipmentCategory());
            }
            if (StringUtils.isNotBlank(eamEquipment.getEquipmentUse())) {
                queryWrapper.like("e.equipment_use", eamEquipment.getEquipmentUse());
            }
            if (StringUtils.isNotBlank(eamEquipment.getId())) {
                queryWrapper.eq("e.id", eamEquipment.getId());
@@ -161,13 +196,13 @@
                if (DataBaseConstant.SQL_ASC.equalsIgnoreCase(eamEquipment.getOrder())) {
                    queryWrapper.orderByAsc("e." + oConvertUtils.camelToUnderline(column));
                } else {
                    queryWrapper.orderByDesc("e." + oConvertUtils.camelToUnderline(column));
                    queryWrapper.orderByAsc("e." + oConvertUtils.camelToUnderline(column));
                }
            } else {
                queryWrapper.orderByDesc("e.create_time");
                queryWrapper.orderByAsc("e.equipment_code");
            }
        } else {
            queryWrapper.orderByDesc("e.create_time");
            queryWrapper.orderByAsc("e.equipment_code");
        }
        IPage<EamEquipment> ipage = eamEquipmentMapper.queryPageList(page, queryWrapper);
@@ -240,6 +275,75 @@
        return eamEquipmentMapper.selectOne(queryWrapper);
    }
    @Override
    public List<EquipmentCategoryStatistics> queryLedgerStatistics() {
        List<EquipmentCategoryStatistics> list = Lists.newArrayList();
        //获取所有已设置设备类别的设备信息
        List<EamEquipment> equipmentList = this.list(new LambdaQueryWrapper<EamEquipment>().isNotNull(EamEquipment::getEquipmentType));
        //获取分类字典二级、三级以下包含当前分类的所有分类id
        List<SysCategory> categoryTypeMap = eamEquipmentMapper.getCategoryTypeMap();
        if (CollectionUtils.isEmpty(equipmentList) || CollectionUtils.isEmpty(categoryTypeMap)) {
            return list;
        }
        for (SysCategory sysCategory : categoryTypeMap) {
            List<EamEquipment> eamEquipmentList = equipmentList.stream().filter(eamEquipment -> Arrays.asList(sysCategory.getChildCodes().split(StringPool.COMMA)).contains(eamEquipment.getEquipmentType())).collect(Collectors.toList());
            if (CollectionUtils.isEmpty(eamEquipmentList)) {
                continue;
            }
            EquipmentCategoryStatistics statistics = new EquipmentCategoryStatistics();
            statistics.setEquipmentType(sysCategory.getName());
            //设置设备总数
            statistics.setEquipmentCount(eamEquipmentList.size());
            statistics.setOriginalValue(eamEquipmentList.stream().filter(eamEquipment -> eamEquipment.getOriginalValue() != null).map(EamEquipment::getOriginalValue).reduce(BigDecimal.ZERO, BigDecimal::add));
            //设置高精度信息
            List<EamEquipment> equipmentCategoryList = eamEquipmentList.stream().filter(eamEquipment -> "JMSB".equals(eamEquipment.getEquipmentCategory())).collect(Collectors.toList());
            statistics.setHighPrecisionCount(CollectionUtils.isNotEmpty(equipmentCategoryList) ? equipmentCategoryList.size() : 0);
            statistics.setHighPrecisionOriginalValue(CollectionUtils.isNotEmpty(equipmentCategoryList) ? equipmentCategoryList.stream().map(eamEquipment -> eamEquipment.getOriginalValue() != null ? eamEquipment.getOriginalValue() : BigDecimal.ZERO).reduce(BigDecimal.ZERO, BigDecimal::add) : BigDecimal.ZERO);
            //设置国产信息
            List<EamEquipment> equipmentDomesticList = eamEquipmentList.stream().filter(eamEquipment -> "china".equals(eamEquipment.getOriginCountry())).collect(Collectors.toList());
            statistics.setDomesticCount(CollectionUtils.isNotEmpty(equipmentDomesticList) ? equipmentDomesticList.size() : 0);
            statistics.setDomesticOriginalValue(CollectionUtils.isNotEmpty(equipmentDomesticList) ? equipmentDomesticList.stream().map(eamEquipment -> eamEquipment.getOriginalValue() != null ? eamEquipment.getOriginalValue() : BigDecimal.ZERO).reduce(BigDecimal.ZERO, BigDecimal::add) : BigDecimal.ZERO);
            //设置进口信息
            List<EamEquipment> equipmentImportList = eamEquipmentList.stream().filter(eamEquipment -> !"china".equals(eamEquipment.getOriginCountry())).collect(Collectors.toList());
            statistics.setImportCount(CollectionUtils.isNotEmpty(equipmentImportList) ? equipmentImportList.size() : 0);
            statistics.setImportOriginalValue(CollectionUtils.isNotEmpty(equipmentImportList) ? equipmentImportList.stream().map(eamEquipment -> eamEquipment.getOriginalValue() != null ? eamEquipment.getOriginalValue() : BigDecimal.ZERO).reduce(BigDecimal.ZERO, BigDecimal::add) : BigDecimal.ZERO);
            //设置完好信息
            List<EamEquipment> equipmentIntactList = eamEquipmentList.stream().filter(eamEquipment -> StringPool.ONE.equals(eamEquipment.getTechnologyStatus())).collect(Collectors.toList());
            statistics.setIntactCount(CollectionUtils.isNotEmpty(equipmentIntactList) ? equipmentIntactList.size() : 0);
            statistics.setIntactOriginalValue(CollectionUtils.isNotEmpty(equipmentIntactList) ? equipmentIntactList.stream().map(eamEquipment -> eamEquipment.getOriginalValue() != null ? eamEquipment.getOriginalValue() : BigDecimal.ZERO).reduce(BigDecimal.ZERO, BigDecimal::add) : BigDecimal.ZERO);
            list.add(statistics);
        }
        return list;
    }
    @Override
    public ModelAndView exportLedgerStatisticsXls(HttpServletRequest request, Class<EquipmentCategoryStatistics> clazz, String title) {
        // èŽ·å–å¯¼å‡ºäºº
        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
        // Step.2 èŽ·å–å¯¼å‡ºæ•°æ®
        List<EquipmentCategoryStatistics> exportList = queryLedgerStatistics();
        // Step.3 AutoPoi å¯¼å‡ºExcel
        ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
        //此处设置的filename无效 ,前端会重更新设置一下
        mv.addObject(NormalExcelConstants.FILE_NAME, title);
        mv.addObject(NormalExcelConstants.CLASS, clazz);
        //update-begin--Author:liusq  Date:20210126 for:图片导出报错,ImageBasePath未设置--------------------
        ExportParams exportParams = new ExportParams(title + "报表", "导出人:" + sysUser.getRealname(), title);
        exportParams.setImageBasePath(upLoadPath);
        //update-end--Author:liusq  Date:20210126 for:图片导出报错,ImageBasePath未设置----------------------
        mv.addObject(NormalExcelConstants.PARAMS, exportParams);
        mv.addObject(NormalExcelConstants.DATA_LIST, exportList);
        return mv;
    }
    /**
     * èŽ·å–æ‰€æœ‰çš„äº§çº¿id(包含所有上级)
     */
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamRepairOrderServiceImpl.java
@@ -221,6 +221,7 @@
        eamRepairOrder.setRepairStatus(ReportRepairEnum.WAIT_INTERNAL_CONFIRM.name());
        eamRepairOrder.setActualStartTime(DateUtils.getNow());
        eamRepairOrder.setRepairer(eamReportRepairQuery.getRepairer());
        eamRepairOrder.setReportId(eamReportRepairQuery.getId());
        super.save(eamRepairOrder);
        EamEquipment eamEquipment = eamEquipmentService.getById(eamReportRepair.getEquipmentId());
        // å¯åŠ¨ç»´ä¿®æµç¨‹
@@ -324,7 +325,7 @@
                    //提交机动办维修,车间管理员确认
                    userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getOrgId(), BusinessCodeConst.PCR0003);
                    if (CollectionUtil.isEmpty(userSelectors)) {
                        throw new JeecgBootException("设备未分配给班组长,无法进入下级审批!");
                        throw new JeecgBootException("设备未分配给维修主任,无法进入下级审批!");
                    }
                    userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList());
                    values.put("NextAssignee", userApprovalList);
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentController.java
@@ -18,6 +18,7 @@
import org.jeecg.modules.eam.entity.EamEquipment;
import org.jeecg.modules.eam.entity.EamEquipmentExtend;
import org.jeecg.modules.eam.request.EamEquipmentQuery;
import org.jeecg.modules.eam.dto.EquipmentCategoryStatistics;
import org.jeecg.modules.eam.service.IEamEquipmentExtendService;
import org.jeecg.modules.eam.service.IEamEquipmentService;
import org.jeecg.modules.eam.vo.EamEquipmentTree;
@@ -85,6 +86,29 @@
    }
    /**
     * è®¾å¤‡å°è´¦-台账统计
     *
     * @return
     */
//    @AutoLog(value = "设备台账-分页列表查询")
    @ApiOperation(value = "设备台账-台账统计", notes = "设备台账-台账统计")
    @GetMapping(value = "/queryLedgerStatistics")
    public Result<?> queryLedgerStatistics() {
        List<EquipmentCategoryStatistics> list = eamEquipmentService.queryLedgerStatistics();
        return Result.OK(list);
    }
    /**
     * å¯¼å‡ºå°è´¦ç»Ÿè®¡excel
     *
     * @param request
     */
    @RequestMapping(value = "/exportLedgerStatisticsXls")
    public ModelAndView exportLedgerStatisticsXls(HttpServletRequest request) {
        return eamEquipmentService.exportLedgerStatisticsXls(request, EquipmentCategoryStatistics.class, "台账统计");
    }
    /**
     * æ·»åŠ 
     *
     * @param eamEquipment
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentLeanOutController.java
@@ -194,6 +194,23 @@
    }
    /**
     * å½’还
     *
     * @param id
     * @return
     */
    @AutoLog(value = "设备借出归还-归还")
    @ApiOperation(value = "设备借出归还-归还", notes = "设备借出归还-归还")
    @GetMapping(value = "/equipmentReturn")
    public Result<?> equipmentReturn(@RequestParam(name = "id", required = true) String id) {
        boolean b = eamEquipmentLeanOutService.equipmentReturn(id);
        if (!b) {
            return Result.error("操作失败!");
        }
        return Result.OK("操作成功!");
    }
    /**
     * å®¡æ‰¹
     *
     * @param request
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamMaintenanceStandardController.java
@@ -3,6 +3,8 @@
import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
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;
@@ -16,6 +18,7 @@
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.aspect.annotation.AutoLog;
import org.jeecg.common.constant.CommonConstant;
import org.jeecg.common.exception.ExceptionCast;
import org.jeecg.common.exception.JeecgBootException;
import org.jeecg.common.system.base.controller.JeecgController;
import org.jeecg.common.util.FileUtil;
@@ -29,6 +32,7 @@
import org.jeecg.modules.eam.entity.EamEquipment;
import org.jeecg.modules.eam.entity.EamMaintenanceStandard;
import org.jeecg.modules.eam.entity.EamMaintenanceStandardDetail;
import org.jeecg.modules.eam.entity.EamSysFiles;
import org.jeecg.modules.eam.request.EamMaintenanceStandardRequest;
import org.jeecg.modules.eam.service.IEamEquipmentService;
import org.jeecg.modules.eam.service.IEamMaintenanceStandardService;
@@ -80,10 +84,19 @@
    public Result<?> queryPageList(EamMaintenanceStandard eamMaintenanceStandard,
                                   @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
                                   @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
                                   HttpServletRequest req) {
                                   HttpServletRequest req) throws JsonProcessingException {
//        QueryWrapper<EamMaintenanceStandard> queryWrapper = QueryGenerator.initQueryWrapper(eamMaintenanceStandard, req.getParameterMap());
        Page<EamMaintenanceStandard> page = new Page<EamMaintenanceStandard>(pageNo, pageSize);
        IPage<EamMaintenanceStandard> pageList = eamMaintenanceStandardService.queryPageList(page, eamMaintenanceStandard);
        for (EamMaintenanceStandard record : pageList.getRecords()) {
            String json = record.getReferenceFile();
            if(StringUtils.isNotBlank(json)){
                ObjectMapper mapper = new ObjectMapper();
                Map<String, Object> map = mapper.readValue(json, Map.class);
                String fileName = (String) map.get("fileName");
                record.setFileName(fileName);
            }
        }
        return Result.OK(pageList);
    }
@@ -623,4 +636,10 @@
            log.error("读取Excel信息失败:{}", e.getMessage(), e);
        }
    }
    @GetMapping("/downloadFile")
    public void downloadFile(@RequestParam("id") String id, HttpServletResponse response) throws JsonProcessingException {
        eamMaintenanceStandardService.downloadFile(response, eamMaintenanceStandardService.getById(id));
    }
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamReportRepairController.java
@@ -136,7 +136,7 @@
    public Result<?> abolishBatch(@RequestParam(name = "ids", required = true) String ids) {
        List<EamReportRepair> eamReportRepairs = eamReportRepairService.listByIds(Arrays.asList(ids.split(",")));
        eamReportRepairs.forEach(eamReportRepair -> {
            if(ReportRepairEnum.ABOLISH.name().equals(eamReportRepair.getReportStatus())) {
            if(ReportRepairEnum.WAIT_REPAIR.name().equals(eamReportRepair.getReportStatus())) {
                eamReportRepair.setReportStatus(ReportRepairEnum.ABOLISH.name());
            }
        });
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamSparePartsController.java
@@ -64,7 +64,11 @@
            QueryWrapper<EamSparePartInventory> wrapper = new QueryWrapper<>();
            wrapper.eq("spare_part_id",record.getId()).select("sum(inventory) as inventory");
            EamSparePartInventory one = eamSparePartInventoryService.getOne(wrapper);
            record.setTotalQuantity(one.getInventory().toString());
            if(one == null){
                record.setTotalQuantity("0");
            }else{
                record.setTotalQuantity(one.getInventory().toString());
            }
        }
        return Result.OK(pageList);
    }
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamThirdMaintenanceOrderController.java
@@ -172,8 +172,8 @@
     * @param ids
     * @return
     */
    @AutoLog(value = "周保工单-批量作废")
    @ApiOperation(value = "周保工单-批量作废", notes = "周保工单-批量作废")
    @AutoLog(value = "三保工单-批量作废")
    @ApiOperation(value = "三保工单-批量作废", notes = "三保工单-批量作废")
    @DeleteMapping(value = "/abolishBatch")
    public Result<?> abolishBatch(@RequestParam(name = "ids", required = true) String ids) {
        List<String> list = Arrays.asList(ids.split(","));
@@ -195,8 +195,8 @@
     * @param ids
     * @return
     */
    @AutoLog(value = "周保工单-批量领取")
    @ApiOperation(value = "周保工单-批量领取", notes = "周保工单-批量领取")
    @AutoLog(value = "三保工单-批量领取")
    @ApiOperation(value = "三保工单-批量领取", notes = "三保工单-批量领取")
    @DeleteMapping(value = "/collectBatch")
    public Result<?> collectBatch(@RequestParam(name = "ids", required = true) String ids) {
        List<String> list = Arrays.asList(ids.split(","));
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EquipmentHomeController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,64 @@
package org.jeecg.modules.eam.controller;
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.modules.eam.service.IEquipmentHomeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import java.util.Map;
@Slf4j
@Api(tags = "设备管理首页接口")
@RestController
@RequestMapping("/equipment/home")
public class EquipmentHomeController {
    @Autowired
    private IEquipmentHomeService equipmentHomeService;
    /**
     *首页 æŠ€æœ¯çŠ¶æ€æ•°é‡ç»Ÿè®¡
     */
    @ApiOperation(value = "首页 æŠ€æœ¯çŠ¶æ€æ•°é‡ç»Ÿè®¡", notes = "首页 æŠ€æœ¯çŠ¶æ€æ•°é‡ç»Ÿè®¡")
    @GetMapping("getEquipmentTechnologyStatusList")
    public Result<?> getFactoryEquipmentTechnologyStatusList() {
        List<Map<String, Object>> list = equipmentHomeService.getEquipmentTechnologyStatusList();
        return Result.ok(list);
    }
    /**
     *首页 è®¾å¤‡æŠ¥ä¿®æƒ…况统计
     */
    @ApiOperation(value = "首页 è®¾å¤‡æŠ¥ä¿®æƒ…况统计", notes = "首页 è®¾å¤‡æŠ¥ä¿®æƒ…况统计")
    @GetMapping("getReportRepairEquipmentList")
    public Result<?> getFactoryReportRepairEquipmentList() {
        List<Map<String, Object>> list = equipmentHomeService.getReportRepairEquipmentList();
        return Result.ok(list);
    }
    /**
     *首页 ä¸‰ä¿è®¡åˆ’
     */
    @ApiOperation(value = "首页 ä¸‰ä¿è®¡åˆ’", notes = "首页 ä¸‰ä¿è®¡åˆ’")
    @GetMapping("getThirdGuaranteesPlan")
    public Result<?> getThirdGuaranteesPlan() {
        Map<String, Object> map = equipmentHomeService.getThirdGuaranteesPlan();
        return Result.ok(map);
    }
    /**
     *首页 äºŒä¿è®¡åˆ’
     */
    @ApiOperation(value = "首页 äºŒä¿è®¡åˆ’", notes = "首页 äºŒä¿è®¡åˆ’")
    @GetMapping("getSecondGuaranteesPlan")
    public Result<?> getSecondGuaranteesPlan() {
        Map<String, Object> map = equipmentHomeService.getSecondGuaranteesPlan();
        return Result.ok(map);
    }
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamEquipmentFluid.java
@@ -54,6 +54,20 @@
    @Excel(name = "油液ID", width = 15)
    @ApiModelProperty(value = "油液ID")
    private String fluidId;
    /**使用数量*/
    @Excel(name = "使用数量", width = 15)
    @ApiModelProperty(value = "使用数量")
    private Integer usageQuantity;
    /**加入部位*/
    @Excel(name = "加入部位", width = 15)
    @ApiModelProperty(value = "加入部位")
    private String additionSite;
    /**时间*/
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "时间", width = 15)
    @ApiModelProperty(value = "时间")
    private Date oilTime;
    /**油液编码*/
    @TableField(exist = false)
    private String fluidCode;
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamMaintenanceStandard.java
@@ -129,6 +129,8 @@
    private String equipmentName;
    @TableField(exist = false)
    private String keyword;
    @TableField(exist = false)
    private String fileName;
    /**
     * è®¾å¤‡ç¼–号拼接
     */
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamSparePartInventory.java
@@ -61,7 +61,7 @@
     * å‡ºåŽ‚æ—¥æœŸ(生产日期)
     */
    @ApiModelProperty(value = "出厂日期(生产日期)")
    private java.util.Date manufactureDate;
    private Date manufactureDate;
    /**
     * ä¾›åº”商
     */
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/SecondMaintenanceOrderExpiredJob.java
@@ -70,10 +70,10 @@
            }
            for (EamSecondMaintenanceOrder order : unCompleteOrderList) {
                if (SecondMaintenanceStatusEnum.WAIT_MAINTENANCE.name().equals(order.getMaintenanceStatus())) {
                    order.setMaintenanceStatus(SecondMaintenanceStatusEnum.ABOLISH.name());
                    order.setMaintenanceStatus(SecondMaintenanceStatusEnum.EXPIRED.name());
                } else if (WeekMaintenanceStatusEnum.UNDER_MAINTENANCE.name().equals(order.getMaintenanceStatus())) {
                    //已经被接单 ä½†æœªæ‰§è¡Œå®Œæˆ
                    order.setMaintenanceStatus(SecondMaintenanceStatusEnum.ABOLISH.name());
                    order.setMaintenanceStatus(SecondMaintenanceStatusEnum.EXPIRED.name());
                    //强制结束流程 åˆ é™¤ç”¨æˆ·çš„æ­¤å¾…办任务
                    FlowMyBusiness flowMyBusiness = flowMyBusinessService.selectByDataId(order.getId());
                    if (flowMyBusiness != null) {
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/ThirdMaintenanceOrderExpiredJob.java
@@ -70,10 +70,10 @@
            }
            for (EamThirdMaintenanceOrder order : unCompleteOrderList) {
                if (ThirdMaintenanceStatusEnum.WAIT_MAINTENANCE.name().equals(order.getMaintenanceStatus())) {
                    order.setMaintenanceStatus(ThirdMaintenanceStatusEnum.ABOLISH.name());
                    order.setMaintenanceStatus(ThirdMaintenanceStatusEnum.EXPIRED.name());
                } else if (ThirdMaintenanceStatusEnum.UNDER_MAINTENANCE.name().equals(order.getMaintenanceStatus())) {
                    //已经被接单 ä½†æœªæ‰§è¡Œå®Œæˆ
                    order.setMaintenanceStatus(ThirdMaintenanceStatusEnum.ABOLISH.name());
                    order.setMaintenanceStatus(ThirdMaintenanceStatusEnum.EXPIRED.name());
                    //强制结束流程 åˆ é™¤ç”¨æˆ·çš„æ­¤å¾…办任务
                    FlowMyBusiness flowMyBusiness = flowMyBusinessService.selectByDataId(order.getId());
                    if (flowMyBusiness != null) {
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EquipmentHomeMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,29 @@
package org.jeecg.modules.eam.mapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.eam.entity.EamSecondMaintenanceOrder;
import org.jeecg.modules.eam.entity.EamThirdMaintenanceOrder;
import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Map;
@Mapper
@Repository
public interface EquipmentHomeMapper {
    /**
     *首页 æŠ€æœ¯çŠ¶æ€æ•°é‡ç»Ÿè®¡
     */
    List<Map<String, Object>> getEquipmentTechnologyStatusList();
    /**
     *首页 è®¾å¤‡æŠ¥ä¿®æƒ…况统计
     */
    List<Map<String, Object>> getReportRepairEquipmentList();
    List<EamThirdMaintenanceOrder> getThirdGuaranteesPlan(@Param("date") String date);
    List<EamSecondMaintenanceOrder> getSecondGuaranteesPlan(@Param("date") String date);
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamEquipmentFluidMapper.xml
@@ -6,6 +6,9 @@
        SELECT
            t1.id,
            t1.equipment_id equipmentId,
            t1.usage_quantity usageQuantity,
            t1.addition_site additionSite,
            t1.oil_time oilTime,
            t1.fluid_id fluidId,
            t2.fluid_code fluidCode,
            t2.fluid_name fluidName
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamInspectionOrderMapper.xml
@@ -13,11 +13,13 @@
    <select id="findInspectionUser"  parameterType="String" resultType="org.jeecg.modules.eam.vo.InspectionVo">
        SELECT
            t1.operator,
            t1.confirm_user as confirmUser,
            t2.realname operator,
            t3.realname as confirmUser,
            CONVERT(VARCHAR, DATEPART(DAY, t1.inspection_date)) as dayTime
        FROM
            eam_inspection_order t1
            left join sys_user t2 on t1.operator = t2.username
            left join sys_user t3 on t1.confirm_user = t3.username
        WHERE t1.del_flag = '0'
          AND t1.equipment_id = #{equipmentId}
        AND SUBSTRING ( CONVERT ( VARCHAR ( 10 ), t1.inspection_date, 120 ), 1, 7 ) = SUBSTRING(CONVERT(VARCHAR(10),#{yearMonth}, 120 ), 1, 7 )
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EquipmentHomeMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,37 @@
<?xml version="1.0" encoding="UTF-8"?>
<!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.EquipmentHomeMapper">
    <select id="getEquipmentTechnologyStatusList"  parameterType="String" resultType="Map">
        SELECT
            ( SELECT COUNT ( 0 ) FROM eam_equipment WHERE del_flag = '0' and technology_status = '1') as qualifiedCount,
            ( SELECT COUNT ( 0 ) FROM eam_equipment WHERE del_flag = '0' and technology_status = '2') as  limitedUseCount,
            ( SELECT COUNT ( 0 ) FROM eam_equipment WHERE del_flag = '0' and technology_status = '3')  as disabledCount
    </select>
    <select id="getReportRepairEquipmentList"  parameterType="String" resultType="Map">
        SELECT
            ( select COUNT(0) from eam_report_repair t1 left join eam_equipment t2 on t1.equipment_id = t2.id WHERE t1.del_flag = '0' and SUBSTRING(CONVERT(VARCHAR(10), t1.fault_start_time, 120), 1, 10) = SUBSTRING(CONVERT(VARCHAR(10), GETDATE(), 120), 1, 10)) as failurTotalCount,
            ( select COUNT(0) from eam_report_repair t1 left join eam_equipment t2 on t1.equipment_id = t2.id where t1.del_flag = '0' and t1.breakdown_flag = '1' and SUBSTRING(CONVERT(VARCHAR(10), t1.fault_start_time, 120), 1, 10) = SUBSTRING(CONVERT(VARCHAR(10), GETDATE(), 120), 1, 10)) as  noStopCount,
            ( select COUNT(0) from eam_report_repair t1 left join eam_equipment t2 on t1.equipment_id = t2.id where t1.del_flag = '0' and t1.breakdown_flag = '0' and SUBSTRING(CONVERT(VARCHAR(10), t1.fault_start_time, 120), 1, 10) = SUBSTRING(CONVERT(VARCHAR(10), GETDATE(), 120), 1, 10)) as  stopCount
    </select>
    <select id="getThirdGuaranteesPlan" resultType="org.jeecg.modules.eam.entity.EamThirdMaintenanceOrder">
        SELECT
          *
        FROM
          eam_third_maintenance_order
        WHERE
          del_flag = '0'
          AND SUBSTRING(CONVERT (VARCHAR (10), maintenance_date, 120), 1, 7) = #{date}
    </select>
    <select id="getSecondGuaranteesPlan" resultType="org.jeecg.modules.eam.entity.EamSecondMaintenanceOrder">
        SELECT
          *
        FROM
            eam_second_maintenance_order
        WHERE
          del_flag = '0'
          AND SUBSTRING(CONVERT (VARCHAR (10), maintenance_date, 120), 1, 7) = #{date}
    </select>
</mapper>
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamEquipmentLeanOutService.java
@@ -47,6 +47,13 @@
    boolean submit(String id);
    /**
     * å½’还
     * @param id
     * @return
     */
    boolean equipmentReturn(String id);
    /**
     * å®¡æ‰¹æµç¨‹æŽ§åˆ¶
     * @param request
     * @return
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamMaintenanceStandardService.java
@@ -3,9 +3,12 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.fasterxml.jackson.core.JsonProcessingException;
import org.jeecg.modules.eam.entity.EamMaintenanceStandard;
import org.jeecg.modules.eam.entity.EamSysFiles;
import org.jeecg.modules.eam.request.EamMaintenanceStandardRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
@@ -64,4 +67,7 @@
     * @return
     */
    List<EamMaintenanceStandard> queryListByCategory(String maintenanceCategory);
    void downloadFile(HttpServletResponse response,EamMaintenanceStandard maintenanceStandard) throws JsonProcessingException;
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEquipmentHomeService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
package org.jeecg.modules.eam.service;
import java.util.List;
import java.util.Map;
public interface IEquipmentHomeService {
    /**
     *首页 æŠ€æœ¯çŠ¶æ€æ•°é‡ç»Ÿè®¡
     */
    List<Map<String, Object>> getEquipmentTechnologyStatusList();
    /**
     *首页 è®¾å¤‡æŠ¥ä¿®æƒ…况统计
     */
    List<Map<String, Object>> getReportRepairEquipmentList();
    /**
     *首页 ä¸‰ä¿è®¡åˆ’
     */
    Map<String, Object> getThirdGuaranteesPlan();
    /**
     *首页 äºŒä¿è®¡åˆ’
     */
    Map<String, Object> getSecondGuaranteesPlan();
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentLeanOutServiceImpl.java
@@ -1,5 +1,6 @@
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;
@@ -18,11 +19,10 @@
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.EquipmentLeanOutStatusEnum;
import org.jeecg.modules.eam.constant.EquipmentOperationTagEnum;
import org.jeecg.modules.eam.constant.*;
import org.jeecg.modules.eam.entity.EamEquipment;
import org.jeecg.modules.eam.entity.EamEquipmentLeanOut;
import org.jeecg.modules.eam.entity.EamEquipmentSealUp;
import org.jeecg.modules.eam.mapper.EamEquipmentLeanOutMapper;
import org.jeecg.modules.eam.request.EamEquipmentLeanOutQuery;
import org.jeecg.modules.eam.request.EamEquipmentLeanOutRequest;
@@ -35,12 +35,14 @@
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 javax.annotation.Resource;
import java.util.*;
import java.util.stream.Collectors;
/**
 * @Description: è®¾å¤‡å€Ÿå‡ºå½’还
@@ -245,6 +247,51 @@
    @Override
    @Transactional(rollbackFor = Exception.class)
    public boolean equipmentReturn(String id) {
        EamEquipmentLeanOut entity = equipmentLeanOutMapper.selectById(id);
        if (entity == null) {
            throw new JeecgBootException("要提交的数据不存在,请刷新重试!");
        }
        if (!EquipmentLeanOutStatusEnum.WAIT_RETURN.name().equals(entity.getLeanStatus())) {
            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("当前用户无法编辑封存记录!");
        }
        //启动审批流程
        flowCommonService.initActBusiness("工单号:" + entity.getCode() + ";设备编号: " + equipment.getEquipmentCode() + ";进行设备归还",
                entity.getId(), "IEamEquipmentLeanOutService", "equipment_return", null);
        Map<String, Object> variables = new HashMap<>();
        variables.put("dataId", entity.getId());
        variables.put("organization", "新增归还默认归还流程");
        variables.put("comment", "新增归还默认归还流程");
        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_return", variables);
        if (result != null) {
            entity.setLeanEndTime(new Date());
            entity.setLeanStatus(EquipmentLeanOutStatusEnum.WAIT_CONFIRM.name());
            //保存工单
            equipmentLeanOutMapper.updateById(entity);
            return result.isSuccess();
        }
        return true;
    }
    @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());
@@ -321,6 +368,7 @@
                values.put("organization", request.getReturnComment());
                values.put("comment", request.getReturnComment());
                values.put("NextAssignee", userApprovalList);
                values.put("approvalDealType", "1");
                request.setComment(request.getReturnComment());
                entity.setLeanEndTime(new Date()); //归还时间
                //设置entity
@@ -331,16 +379,18 @@
                break;
            // å½’还确认
            case WAIT_CONFIRM:
                values.put("approvalDealType", "1");
                values.put("dataId", entity.getId());
                values.put("organization", request.getConfirmComment());
                values.put("comment", request.getConfirmComment());
                request.setComment(request.getConfirmComment());
                //设置entity
                entity.setApprovalUser(user.getUsername());// å®¡æ ¸äºº
                entity.setLeanStatus(EquipmentLeanOutStatusEnum.COMPLETE.name());
                entity.setConfirmUser(user.getUsername());
                entity.setConfirmComment(request.getConfirmComment());
                entity.setConfirmTime(new Date());
                // ä¿®æ”¹è®¾å¤‡çŠ¶æ€
                // ä¿®æ”¹è®¾å¤‡çŠ¶æ€0
                equipment.setAssetStatus(AssetStatusEnum.NORMAL.name());
                eamEquipmentService.updateById(equipment);
                break;
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentSealUpServiceImpl.java
@@ -360,6 +360,9 @@
                    entity.setSealStatus(EquipmentSealUpStatusEnum.COMPLETE.name());
                    // ä¿®æ”¹è®¾å¤‡çŠ¶æ€
                    equipment.setAssetStatus(AssetStatusEnum.NORMAL.name());
                    // ä¿®æ”¹è®¾å¤‡çŠ¶æ€
                    equipment.setAssetStatus(AssetStatusEnum.NORMAL.name());
                    eamEquipmentService.updateById(equipment);
                } else {
                    //设置entity
                    entity.setSealStatus(EquipmentSealUpStatusEnum.SEALED.name());
@@ -369,9 +372,6 @@
                entity.setUnsealApprovalComment(request.getUnsealApprovalComment());
                entity.setUnsealApprovalDealType(request.getUnsealApprovalDealType());
                entity.setUnsealApprovalTime(new Date());
                // ä¿®æ”¹è®¾å¤‡çŠ¶æ€
                equipment.setAssetStatus(AssetStatusEnum.NORMAL.name());
                eamEquipmentService.updateById(equipment);
                break;
        }
        request.setValues(values);
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceStandardServiceImpl.java
@@ -12,24 +12,27 @@
import org.apache.shiro.SecurityUtils;
import org.jeecg.common.api.vo.FileUploadResult;
import org.jeecg.common.constant.CommonConstant;
import org.jeecg.common.exception.ExceptionCast;
import org.jeecg.common.exception.JeecgBootException;
import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.common.util.FileUtil;
import org.jeecg.modules.eam.constant.MaintenanceStandardStatusEnum;
import org.jeecg.modules.eam.entity.EamMaintenanceStandard;
import org.jeecg.modules.eam.entity.EamMaintenanceStandardDetail;
import org.jeecg.modules.eam.entity.EamSysFiles;
import org.jeecg.modules.eam.mapper.EamMaintenanceStandardMapper;
import org.jeecg.modules.eam.request.EamMaintenanceStandardRequest;
import org.jeecg.modules.eam.service.IEamMaintenanceStandardDetailService;
import org.jeecg.modules.eam.service.IEamMaintenanceStandardService;
import org.jeecg.modules.eam.service.IEamSysFilesService;
import org.jeecg.modules.system.service.ISysFilesService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import java.util.*;
import java.util.stream.Collectors;
/**
@@ -46,6 +49,9 @@
    @Autowired
    private IEamMaintenanceStandardDetailService eamMaintenanceStandardDetailService;
    @Autowired
    private IEamSysFilesService sysFilesService;
    @Override
    public IPage<EamMaintenanceStandard> queryPageList(Page<EamMaintenanceStandard> page, EamMaintenanceStandard eamMaintenanceStandard) {
@@ -71,7 +77,7 @@
            }
            //名称 æ¨¡ç³ŠæŸ¥è¯¢
            if(StringUtils.isNotBlank(eamMaintenanceStandard.getStandardName())) {
                queryWrapper.like("ems.standard_name", eamMaintenanceStandard.getStandardCode());
                queryWrapper.like("ems.standard_name", eamMaintenanceStandard.getStandardName());
            }
            //设备
            if(StringUtils.isNotBlank(eamMaintenanceStandard.getEquipmentId())) {
@@ -290,4 +296,20 @@
        queryWrapper.eq(EamMaintenanceStandard::getStandardStatus, MaintenanceStandardStatusEnum.NORMAL.name());
        return eamMaintenanceStandardMapper.selectList(queryWrapper);
    }
    @Override
    public void downloadFile(HttpServletResponse response, EamMaintenanceStandard eamMaintenanceStandard) throws JsonProcessingException {
        String json = eamMaintenanceStandard.getReferenceFile();
        if(StringUtils.isNotBlank(json)){
            ObjectMapper mapper = new ObjectMapper();
            Map<String, Object> map = mapper.readValue(json, Map.class);
            String fileEncodeName = (String) map.get("fileEncodeName");
            List<EamSysFiles> list = sysFilesService.lambdaQuery().eq(EamSysFiles::getFileEncodeName, fileEncodeName).list();
            if(list.size()>0){
                FileUtil.downLoadFile(response, list.get(0).getFilePath(), list.get(0).getFileName());
            }else{
                ExceptionCast.cast("文件不存在");
            }
        }
    }
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamSecondMaintenanceOrderServiceImpl.java
@@ -356,12 +356,12 @@
        switch (status) {
            case UNDER_MAINTENANCE:
                //执行完成
                //设备管理员确认
                String equipmentManager = equipment.getEquipmentManager();
                if(StringUtils.isBlank(equipmentManager)) {
                    throw new JeecgBootException("设备未分配设备管理员,无法进入下级审批!");
                //车间设备管理员确认
                userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getOrgId(), BusinessCodeConst.PCR0004);
                if (CollectionUtil.isEmpty(userSelectors)) {
                    throw new JeecgBootException("设备未分配给车间设备管理员,无法进入下级审批!");
                }
                userApprovalList = Collections.singletonList(equipmentManager);
                userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList());
                values.put("dataId", entity.getId());
                values.put("organization", "二保执行结束");
                values.put("comment", "二保执行结束");
@@ -389,11 +389,12 @@
                eamEquipmentExtendService.updateEquipmentMaintenanceStatus(entity.getEquipmentId(), EquipmentMaintenanceStatus.SECOND_MAINTENANCE_WAIT_CONFIRM.name());
                break;
            case WAIT_CONFIRM:
                // ç»´ä¿®ä¸»ä»»ç¡®è®¤
                userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getOrgId(), BusinessCodeConst.PCR0003);
                if (CollectionUtil.isEmpty(userSelectors)) {
                    throw new JeecgBootException("设备未分配给车间班组长,无法进入下级审批!");
                    throw new JeecgBootException("设备未分配给维修主任,无法进入下级审批!");
                }
                //班组长确认
                //维修主任确认
                userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList());
                values.put("dataId", entity.getId());
                values.put("organization", request.getConfirmComment());
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamThirdMaintenanceOrderServiceImpl.java
@@ -283,9 +283,11 @@
        if (equipment == null) {
            throw new JeecgBootException("设备不存在,添加失败!");
        }
        if (StringUtils.isBlank(equipment.getEquipmentManager())) {
            throw new JeecgBootException("设备未分配设备管理员,无法进入下级审批!");
        List<UserSelector> userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getOrgId(), BusinessCodeConst.PCR0002);
        if (CollectionUtil.isEmpty(userSelectors)) {
            throw new JeecgBootException("设备未分配给维修工,无法进入下级审批!");
        }
        List<String> userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList());
        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
        if (sysUser == null || !BusinessCodeConst.PCR0001.equals(sysUser.getPost())) {
            throw new JeecgBootException("不是操作工,无法领取此工单!");
@@ -311,8 +313,10 @@
        }
        variables.put("proofreading", true);
        //并行任务会签
        //操作工执行保养
        variables.put("maintenance_execution", Collections.singletonList(sysUser.getUsername()));
        variables.put("precision_check", Collections.singletonList(equipment.getEquipmentManager()));
        //维修工精度检验
        variables.put("precision_check", userApprovalList);
        Result result = flowDefinitionService.startProcessInstanceByKey("third_maintenance_process", variables);
        if (result != null) {
            //更新设备保养状态
@@ -370,7 +374,7 @@
                //执行完成
                userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getOrgId(), BusinessCodeConst.PCR0006);
                if (CollectionUtil.isEmpty(userSelectors)) {
                    throw new JeecgBootException("设备未分配给车间班组长,无法进入下级审批!");
                    throw new JeecgBootException("设备未分配给机动办,无法进入下级审批!");
                }
                userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList());
                values.put("dataId", entity.getId());
@@ -418,7 +422,7 @@
            case WAIT_CONFIRM:
                userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getOrgId(), BusinessCodeConst.PCR0003);
                if (CollectionUtil.isEmpty(userSelectors)) {
                    throw new JeecgBootException("设备未分配给车间班组长,无法进入下级审批!");
                    throw new JeecgBootException("设备未分配给维修主任,无法进入下级审批!");
                }
                //班组长确认
                userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList());
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EquipmentHomeServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,72 @@
package org.jeecg.modules.eam.service.impl;
import cn.hutool.core.date.DateUtil;
import org.jeecg.modules.eam.constant.SecondMaintenanceStatusEnum;
import org.jeecg.modules.eam.constant.ThirdMaintenanceStatusEnum;
import org.jeecg.modules.eam.entity.EamSecondMaintenanceOrder;
import org.jeecg.modules.eam.entity.EamThirdMaintenanceOrder;
import org.jeecg.modules.eam.mapper.EquipmentHomeMapper;
import org.jeecg.modules.eam.service.IEquipmentHomeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.*;
import java.util.stream.Collectors;
@Service
public class EquipmentHomeServiceImpl implements IEquipmentHomeService {
    @Autowired
    private EquipmentHomeMapper equipmentHomeMapper;
    /**
     *首页 æŠ€æœ¯çŠ¶æ€æ•°é‡ç»Ÿè®¡
     */
    @Override
    public List<Map<String, Object>> getEquipmentTechnologyStatusList() {
        return this.equipmentHomeMapper.getEquipmentTechnologyStatusList();
    }
    /**
     *首页 è®¾å¤‡æŠ¥ä¿®æƒ…况统计
     */
    @Override
    public List<Map<String, Object>> getReportRepairEquipmentList() {
        return this.equipmentHomeMapper.getReportRepairEquipmentList();
    }
    /**
     *首页 ä¸‰ä¿è®¡åˆ’
     * @return
     */
    @Override
    public Map<String, Object> getThirdGuaranteesPlan() {
        Map<String, Object> map = new HashMap<>();
        //获取本月三保计划
        List<EamThirdMaintenanceOrder> thirdMaintenanceOrderList = equipmentHomeMapper.getThirdGuaranteesPlan(DateUtil.format(new Date(), "yyyy-MM"));
        //获取下月三保计划
        List<EamThirdMaintenanceOrder> nextThirdMaintenanceOrderList = equipmentHomeMapper.getThirdGuaranteesPlan(DateUtil.format(DateUtil.nextMonth(), "yyyy-MM"));
        map.put("thisMonthCount", thirdMaintenanceOrderList.size());
        map.put("thisMonthFinishCount", thirdMaintenanceOrderList.stream().filter(eamThirdMaintenanceOrder -> ThirdMaintenanceStatusEnum.COMPLETE.name().equals(eamThirdMaintenanceOrder.getMaintenanceStatus())).collect(Collectors.toList()).size());
        map.put("thisMonthOverdueCount", thirdMaintenanceOrderList.stream().filter(eamThirdMaintenanceOrder -> ThirdMaintenanceStatusEnum.EXPIRED.name().equals(eamThirdMaintenanceOrder.getMaintenanceStatus())).collect(Collectors.toList()).size());
        map.put("nextMonthCount", nextThirdMaintenanceOrderList.size());
        return map;
    }
    /**
     *首页 äºŒä¿è®¡åˆ’
     */
    @Override
    public Map<String, Object> getSecondGuaranteesPlan() {
        Map<String, Object> map = new HashMap<>();
        //获取本月二保计划
        List<EamSecondMaintenanceOrder> secondMaintenanceOrderList = equipmentHomeMapper.getSecondGuaranteesPlan(DateUtil.format(new Date(), "yyyy-MM"));
        //获取下月二保计划
        List<EamSecondMaintenanceOrder> nextsecondMaintenanceOrderList = equipmentHomeMapper.getSecondGuaranteesPlan(DateUtil.format(DateUtil.nextMonth(), "yyyy-MM"));
        map.put("thisMonthCount", secondMaintenanceOrderList.size());
        map.put("thisMonthFinishCount", secondMaintenanceOrderList.stream().filter(eamSecondMaintenanceOrder -> SecondMaintenanceStatusEnum.COMPLETE.name().equals(eamSecondMaintenanceOrder.getMaintenanceStatus())).collect(Collectors.toList()).size());
        map.put("thisMonthOverdueCount", secondMaintenanceOrderList.stream().filter(eamSecondMaintenanceOrder -> SecondMaintenanceStatusEnum.EXPIRED.name().equals(eamSecondMaintenanceOrder.getMaintenanceStatus())).collect(Collectors.toList()).size());
        map.put("nextMonthCount", nextsecondMaintenanceOrderList.size());
        return map;
    }
}
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/entity/SysCategory.java
@@ -86,6 +86,9 @@
    private String parentCode;
    @TableField(exist = false)
    private String childCodes;
    @TableField(exist = false)
    private List<SysCategory> children;
    @Override