Lius
2025-04-07 7cfedf9390f245c84254eedba1f08d3ac06df102
设备工单
已添加7个文件
已修改2个文件
471 ■■■■■ 文件已修改
lxzn-boot-base-core/src/main/java/org/jeecg/common/constant/CommonConstant.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/ReportRepairEnum.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamRepairOrderController.java 169 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamReportRepairController.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamRepairOrder.java 128 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamRepairOrderMapper.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamRepairOrderMapper.xml 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamRepairOrderService.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamRepairOrderServiceImpl.java 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-boot-base-core/src/main/java/org/jeecg/common/constant/CommonConstant.java
@@ -618,9 +618,4 @@
    Integer SHIFT_TYPE_1 = 1;
    Integer SHIFT_TYPE_2 = 2;
    /**
     * æŠ¥ä¿®çŠ¶æ€
     */
    String REPORT_STATUS = "1";
}
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/ReportRepairEnum.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
package org.jeecg.modules.eam.constant;
public enum ReportRepairEnum {
    WAIT_REPAIR, // å¾…ç»´ä¿®
    UNDER_REPAIR, // ç»´ä¿®ä¸­
    WAIT_SPARES, // ç­‰å¤‡ä»¶
    WAIT_CONFIRM, // å¾…确认
    COMPLETE, // å·²å®Œæˆ
    ABOLISH, // å·²ä½œåºŸ
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamRepairOrderController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,169 @@
package org.jeecg.modules.eam.controller;
import java.util.Arrays;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.constant.CommonConstant;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.aspect.annotation.AutoLog;
import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.modules.eam.constant.BusinessCodeConst;
import org.jeecg.modules.eam.constant.ReportRepairEnum;
import org.jeecg.modules.eam.entity.EamRepairOrder;
import org.jeecg.modules.eam.entity.EamReportRepair;
import org.jeecg.modules.eam.service.IEamRepairOrderService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.system.base.controller.JeecgController;
import org.jeecg.modules.eam.service.IEamReportRepairService;
import org.jeecg.modules.mdc.util.DateUtils;
import org.jeecg.modules.system.service.ISysBusinessCodeRuleService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
/**
 * @Description: ç»´ä¿®å·¥å•
 * @Author: Lius
 * @Date: 2025-04-03
 */
@Slf4j
@Api(tags = "维修工单")
@RestController
@RequestMapping("/eam/eamRepairOrder")
public class EamRepairOrderController extends JeecgController<EamRepairOrder, IEamRepairOrderService> {
    @Resource
    private IEamRepairOrderService eamRepairOrderService;
    @Resource
    private ISysBusinessCodeRuleService businessCodeRuleService;
    @Resource
    private IEamReportRepairService eamReportRepairService;
    /**
     * åˆ†é¡µåˆ—表查询
     *
     * @param eamRepairOrder
     * @param pageNo
     * @param pageSize
     * @return
     */
    @AutoLog(value = "维修工单-分页列表查询")
    @ApiOperation(value = "维修工单-分页列表查询", notes = "维修工单-分页列表查询")
    @GetMapping(value = "/list")
    public Result<?> queryPageList(EamRepairOrder eamRepairOrder,
                                   @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
                                   @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) {
        Page<EamRepairOrder> page = new Page<EamRepairOrder>(pageNo, pageSize);
        IPage<EamRepairOrder> pageList = eamRepairOrderService.pageList(page, eamRepairOrder);
        return Result.OK(pageList);
    }
    /**
     * é¢†å–
     *
     * @param eamRepairOrder
     * @return
     */
    @AutoLog(value = "维修工单-领取")
    @ApiOperation(value = "维修工单-领取", notes = "维修工单-领取")
    @PostMapping(value = "/add")
    public Result<?> add(@RequestBody EamRepairOrder eamRepairOrder) {
        if (StringUtils.isBlank(eamRepairOrder.getReportId())) {
            return Result.error("领取失败,请选择维修记录!");
        }
        String codeSeq = businessCodeRuleService.generateBusinessCodeSeq(BusinessCodeConst.REPAIR_ORDER_CODE_RULE);
        eamRepairOrder.setRepairCode(codeSeq);
        EamReportRepair eamReportRepair = eamReportRepairService.getById(eamRepairOrder.getReportId());
        eamRepairOrder.setDelFlag(CommonConstant.DEL_FLAG_0);
        eamRepairOrder.setEquipmentId(eamReportRepair.getEquipmentId());
        eamReportRepair.setReportStatus(ReportRepairEnum.UNDER_REPAIR.name());
        eamRepairOrder.setRepairStatus(ReportRepairEnum.UNDER_REPAIR.name());
        eamRepairOrder.setActualStartTime(DateUtils.getNow());
        LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
        eamRepairOrder.setRepairer(user.getRealname());
        eamReportRepairService.updateById(eamReportRepair);
        eamRepairOrderService.save(eamRepairOrder);
        // TODO å¯åŠ¨æµç¨‹
        return Result.OK("添加成功!");
    }
    /**
     * ç¼–辑
     *
     * @param eamRepairOrder
     * @return
     */
    @AutoLog(value = "维修工单-编辑")
    @ApiOperation(value = "维修工单-编辑", notes = "维修工单-编辑")
    @RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST})
    public Result<?> edit(@RequestBody EamRepairOrder eamRepairOrder) {
        eamRepairOrderService.updateById(eamRepairOrder);
        return Result.OK("编辑成功!");
    }
    /**
     * é€šè¿‡id删除
     *
     * @param id
     * @return
     */
    @AutoLog(value = "维修工单-通过id删除")
    @ApiOperation(value = "维修工单-通过id删除", notes = "维修工单-通过id删除")
    @DeleteMapping(value = "/delete")
    public Result<?> delete(@RequestParam(name = "id", required = true) String id) {
        eamRepairOrderService.removeById(id);
        return Result.OK("删除成功!");
    }
    /**
     * æ‰¹é‡åˆ é™¤
     *
     * @param ids
     * @return
     */
    @AutoLog(value = "维修工单-批量删除")
    @ApiOperation(value = "维修工单-批量删除", notes = "维修工单-批量删除")
    @DeleteMapping(value = "/deleteBatch")
    public Result<?> deleteBatch(@RequestParam(name = "ids", required = true) String ids) {
        this.eamRepairOrderService.removeByIds(Arrays.asList(ids.split(",")));
        return Result.OK("批量删除成功!");
    }
    /**
     * é€šè¿‡id查询
     *
     * @param id
     * @return
     */
    @AutoLog(value = "维修工单-通过id查询")
    @ApiOperation(value = "维修工单-通过id查询", notes = "维修工单-通过id查询")
    @GetMapping(value = "/queryById")
    public Result<?> queryById(@RequestParam(name = "id", required = true) String id) {
        EamRepairOrder eamRepairOrder = eamRepairOrderService.getById(id);
        return Result.OK(eamRepairOrder);
    }
    /**
     * å¯¼å‡ºexcel
     *
     * @param request
     * @param eamRepairOrder
     */
    @RequestMapping(value = "/exportXls")
    public ModelAndView exportXls(HttpServletRequest request, EamRepairOrder eamRepairOrder) {
        return super.exportXls(request, eamRepairOrder, EamRepairOrder.class, "维修工单");
    }
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamReportRepairController.java
@@ -5,10 +5,12 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.constant.CommonConstant;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.aspect.annotation.AutoLog;
import org.jeecg.modules.eam.constant.ReportRepairEnum;
import org.jeecg.modules.eam.entity.EamReportRepair;
import org.jeecg.modules.eam.request.EamReportRepairQuery;
import org.jeecg.modules.eam.service.IEamReportRepairService;
@@ -66,7 +68,7 @@
    @ApiOperation(value = "故障报修-添加", notes = "故障报修-添加")
    @PostMapping(value = "/add")
    public Result<?> add(@RequestBody EamReportRepair eamReportRepair) {
        eamReportRepair.setReportStatus(CommonConstant.REPORT_STATUS);
        eamReportRepair.setReportStatus(ReportRepairEnum.WAIT_REPAIR.name());
        eamReportRepair.setDelFlag(CommonConstant.DEL_FLAG_0);
        eamReportRepairService.save(eamReportRepair);
        return Result.OK("添加成功!");
@@ -87,6 +89,20 @@
    }
    /**
     * é€šè¿‡id作废
     *
     * @param id
     * @return
     */
    @AutoLog(value = "故障报修-作废")
    @ApiOperation(value = "故障报修-作废", notes = "故障报修-作废")
    @DeleteMapping(value = "/abolish")
    public Result<?> abolish(@RequestParam(name = "id", required = true) String id) {
        eamReportRepairService.update(new LambdaUpdateWrapper<EamReportRepair>().set(EamReportRepair::getReportStatus, ReportRepairEnum.ABOLISH.name()).eq(EamReportRepair::getId, id));
        return Result.OK("作废成功!");
    }
    /**
     * é€šè¿‡id删除
     *
     * @param id
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamRepairOrder.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,128 @@
package org.jeecg.modules.eam.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecg.common.system.base.entity.JeecgEntity;
import org.jeecgframework.poi.excel.annotation.Excel;
import java.io.Serializable;
import java.util.Date;
/**
 * @Description: ç»´ä¿®å·¥å•
 * @Author: Lius
 * @Date: 2025-04-03
 */
@Data
@TableName("eam_repair_order")
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value = "eam_repair_order对象", description = "维修工单")
public class EamRepairOrder extends JeecgEntity implements Serializable {
    private static final long serialVersionUID = -2336763554235629574L;
    /**
     * åˆ é™¤æ ‡è®°
     */
    @Excel(name = "删除标记", width = 15)
    @ApiModelProperty(value = "删除标记")
    private Integer delFlag;
    /**
     * å·¥å•编号
     */
    @Excel(name = "工单编号", width = 15)
    @ApiModelProperty(value = "工单编号")
    private String repairCode;
    /**
     * æŠ¥ä¿®ID
     */
    @Excel(name = "报修ID", width = 15)
    @ApiModelProperty(value = "报修ID")
    private String reportId;
    /**
     * è®¾å¤‡ID
     */
    @Excel(name = "设备ID", width = 15)
    @ApiModelProperty(value = "设备ID")
    @Dict(dictTable = "eam_equipment", dicCode = "id", dicText = "equipment_code")
    private String equipmentId;
    /**
     * ç»´ä¿®çŠ¶æ€
     */
    @Excel(name = "维修状态", width = 15)
    @ApiModelProperty(value = "维修状态")
    private String repairStatus;
    /**
     * ç»´ä¿®å¼€å§‹æ—¶é—´
     */
    @ApiModelProperty(value = "维修开始时间")
    private Date actualStartTime;
    /**
     * ç»´ä¿®ç»“束时间
     */
    @ApiModelProperty(value = "维修结束时间")
    private Date actualEndTime;
    /**
     * æ•…障原因
     */
    @Excel(name = "故障原因", width = 15)
    @ApiModelProperty(value = "故障原因")
    private String faultReason;
    /**
     * ç»´ä¿®ç»“果描述
     */
    @Excel(name = "维修结果描述", width = 15)
    @ApiModelProperty(value = "维修结果描述")
    private String repairDescription;
    /**
     * ç»´ä¿®è´Ÿè´£äºº
     */
    @Excel(name = "维修负责人", width = 15)
    @ApiModelProperty(value = "维修负责人")
    private String repairer;
    /**
     * æ˜¯å¦å§”外
     */
    @Excel(name = "是否委外", width = 15)
    @ApiModelProperty(value = "是否委外")
    private String outsourcedFlag;
    /**
     * å§”外维修描述
     */
    @Excel(name = "委外维修描述", width = 15)
    @ApiModelProperty(value = "委外维修描述")
    private String outsourcedRepairDescription;
    /**
     * å§”外维修开始时间
     */
    @ApiModelProperty(value = "委外维修开始时间")
    private Date outsourcedStartTime;
    /**
     * å§”外维修结束时间
     */
    @ApiModelProperty(value = "委外维修结束时间")
    private Date outsourcedEndTime;
    /**
     * å§”外负责人
     */
    @Excel(name = "委外负责人", width = 15)
    @ApiModelProperty(value = "委外负责人")
    private String outsourcedPerson;
    /**
     * ç…§ç‰‡æ–‡ä»¶ids;id以逗号分隔
     */
    @Excel(name = "照片文件ids;id以逗号分隔", width = 15)
    @ApiModelProperty(value = "照片文件ids;id以逗号分隔")
    private String imageFiles;
    @TableField(exist = false)
    @ApiModelProperty(value = "设备名称")
    private String equipmentName;
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamRepairOrderMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,28 @@
package org.jeecg.modules.eam.mapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.eam.entity.EamRepairOrder;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import java.util.List;
/**
 * @Description: ç»´ä¿®å·¥å•
 * @Author: Lius
 * @Date: 2025-04-03
 */
public interface EamRepairOrderMapper extends BaseMapper<EamRepairOrder> {
    /**
     * åˆ†é¡µåˆ—表
     *
     * @param page
     * @param eamRepairOrder
     * @param userId
     * @param equipmentIds
     * @return
     */
    IPage<EamRepairOrder> pageList(Page<EamRepairOrder> page, @Param("eamRepairOrder") EamRepairOrder eamRepairOrder, @Param("userId") String userId, @Param("equipmentIds") List<String> equipmentIds);
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamRepairOrderMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,42 @@
<?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.EamRepairOrderMapper">
    <select id="pageList" resultType="org.jeecg.modules.eam.entity.EamRepairOrder">
        SELECT
            t1.*,
            t2.equipment_name
        FROM
            eam_repair_order t1
                LEFT JOIN eam_equipment t2 ON t1.equipment_id = t2.id
        <where>
            <choose>
                <when test="equipmentIds != null and equipmentIds.size() > 0 ">
                    AND t2.equipment_code IN
                    <foreach collection="equipmentIds" item="equipmentId" index="index" open="(" close=")" separator=",">
                        {equipmentId}
                    </foreach>
                </when>
                <otherwise>
                    EXISTS ( SELECT 1 FROM mdc_user_production t3 WHERE t3.user_id = #{userId} AND t3.pro_id= t2.org_id )
                </otherwise>
            </choose>
            <if test="eamRepairOrder.equipmentId != null and eamRepairOrder.equipmentId != ''">
                AND t2.equipment_code LIKE CONCAT(CONCAT('%',#{ eamRepairOrder.equipmentId }),'%')
            </if>
            <if test="eamRepairOrder.equipmentName != null and eamRepairOrder.equipmentName != ''">
                AND t2.equipment_name LIKE CONCAT(CONCAT('%',#{ eamRepairOrder.equipmentName }),'%')
            </if>
            <if test="eamRepairOrder.repairStatus != null and eamRepairOrder.repairStatus != ''">
                AND t1.repair_status = #{ eamRepairOrder.repairStatus }
            </if>
            <if test="eamRepairOrder.repairer != null and eamRepairOrder.repairer != ''">
                AND t1.repairer LIKE CONCAT(CONCAT('%',#{ eamRepairOrder.repairer }),'%')
            </if>
            <if test="eamRepairOrder.repairCode != null and eamRepairOrder.repairCode != ''">
                AND t1.repair_code LIKE CONCAT(CONCAT('%',#{ eamRepairOrder.repairCode }),'%')
            </if>
        </where>
        ORDER BY t1.create_time
    </select>
</mapper>
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamRepairOrderService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
package org.jeecg.modules.eam.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.jeecg.modules.eam.entity.EamRepairOrder;
import com.baomidou.mybatisplus.extension.service.IService;
/**
 * @Description: ç»´ä¿®å·¥å•
 * @Author: Lius
 * @Date: 2025-04-03
 */
public interface IEamRepairOrderService extends IService<EamRepairOrder> {
    /**
     * åˆ†é¡µåˆ—表
     * @param page
     * @param eamRepairOrder
     * @return
     */
    IPage<EamRepairOrder> pageList(Page<EamRepairOrder> page, EamRepairOrder eamRepairOrder);
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamRepairOrderServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,48 @@
package org.jeecg.modules.eam.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.modules.eam.entity.EamRepairOrder;
import org.jeecg.modules.eam.mapper.EamRepairOrderMapper;
import org.jeecg.modules.eam.service.IEamRepairOrderService;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
 * @Description: ç»´ä¿®å·¥å•
 * @Author: Lius
 * @Date: 2025-04-03
 */
@Service
public class EamRepairOrderServiceImpl extends ServiceImpl<EamRepairOrderMapper, EamRepairOrder> implements IEamRepairOrderService {
    /**
     * åˆ†é¡µåˆ—表
     *
     * @param page
     * @param eamRepairOrder
     * @return
     */
    @Override
    public IPage<EamRepairOrder> pageList(Page<EamRepairOrder> page, EamRepairOrder eamRepairOrder) {
        //用户数据权限
        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
        if (sysUser == null) {
            return page;
        }
        List<String> equipmentIds = new ArrayList<>();
        if (StringUtils.isNotBlank(sysUser.getEquipmentIds())) {
            //选择了设备,根据设备id过滤设备
            equipmentIds = Arrays.asList(sysUser.getEquipmentIds().split(","));
        }
        return this.baseMapper.pageList(page, eamRepairOrder, sysUser.getId(), equipmentIds);
    }
}