zhangherong
7 天以前 c3ae2cc63c6e771ee7007c041a5f499cc9861f29
art: 技术状态变更-基础代码提交
已添加4个文件
已修改11个文件
652 ■■■■■ 文件已修改
db/430设备管理数据库设计.pdma.json 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/TechnicalStatusChangeOrderStatusEnum.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/TechnicalStatusChangeReasonEnum.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamTechnicalStatusChangeController.java 139 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamTechnicalStatusChangeDetailController.java 151 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamTechnicalStatusChange.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamTechnicalStatusChangeDetail.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamTechnicalStatusChangeDetailMapper.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamTechnicalStatusChangeDetailMapper.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamTechnicalStatusChangeQuery.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamTechnicalStatusChangeRequest.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamTechnicalStatusChangeDetailService.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamTechnicalStatusChangeService.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamTechnicalStatusChangeDetailServiceImpl.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamTechnicalStatusChangeServiceImpl.java 137 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
db/430É豸¹ÜÀíÊý¾Ý¿âÉè¼Æ.pdma.json
@@ -4,7 +4,7 @@
  "avatar": "",
  "version": "4.9.2",
  "createdTime": "2025-3-10 16:38:19",
  "updatedTime": "2025-7-16 16:54:24",
  "updatedTime": "2025-7-16 17:21:35",
  "dbConns": [],
  "profile": {
    "default": {
@@ -30136,6 +30136,24 @@
          "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098"
        },
        {
          "defKey": "change_order_id",
          "defName": "变更ID",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
          "extProps": {},
          "domain": "16120F75-6AA7-4483-868D-F07F511BB081",
          "id": "F4CA33AF-7AFC-481E-BC01-0263405029BE"
        },
        {
          "defKey": "equipment_id",
          "defName": "设备ID",
          "comment": "",
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/TechnicalStatusChangeOrderStatusEnum.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,21 @@
package org.jeecg.modules.eam.constant;
public enum TechnicalStatusChangeOrderStatusEnum {
    WAIT_SUBMIT, //待提交
    DEPART_HEADER_SIGNING, //使用单位室级主管签字中
    DEPART_LEADER_SIGNING, //使用单位部级主管签字中
    ABOLISH, //已作废
    REJECTED, //已驳回
    COMPLETED, //已完成
    ;
    public static TechnicalStatusChangeOrderStatusEnum getInstance(String code) {
        TechnicalStatusChangeOrderStatusEnum[] values = TechnicalStatusChangeOrderStatusEnum.values();
        for (TechnicalStatusChangeOrderStatusEnum value : values) {
            if (value.name().equals(code)) {
                return value;
            }
        }
        return null;
    }
}
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/TechnicalStatusChangeReasonEnum.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
package org.jeecg.modules.eam.constant;
public enum TechnicalStatusChangeReasonEnum {
    EQUIPMENT_MAJOR, //设备大修
    EQUIPMENT_RELOCATION, //设备搬迁
    EQUIPMENT_RETROFITTING, //设备改造
    OTHER, //其他
    ;
    public static TechnicalStatusChangeReasonEnum getInstance(String code) {
        TechnicalStatusChangeReasonEnum[] values = TechnicalStatusChangeReasonEnum.values();
        for (TechnicalStatusChangeReasonEnum value : values) {
            if (value.name().equals(code)) {
                return value;
            }
        }
        return null;
    }
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamTechnicalStatusChangeController.java
@@ -1,6 +1,6 @@
package org.jeecg.modules.eam.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.annotations.Api;
@@ -9,16 +9,16 @@
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.aspect.annotation.AutoLog;
import org.jeecg.common.system.base.controller.JeecgController;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.modules.eam.constant.TechnicalStatusChangeOrderStatusEnum;
import org.jeecg.modules.eam.constant.TechnicalStatusEvaluationOrderChangeStatusEnum;
import org.jeecg.modules.eam.entity.EamTechnicalStatusChange;
import org.jeecg.modules.eam.request.EamTechnicalStatusChangeQuery;
import org.jeecg.modules.eam.request.EamTechnicalStatusChangeRequest;
import org.jeecg.modules.eam.service.IEamTechnicalStatusChangeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Arrays;
 /**
 * @Description: æŠ€æœ¯çŠ¶æ€å˜æ›´ç”³è¯·
@@ -37,7 +37,7 @@
    /**
     * åˆ†é¡µåˆ—表查询
     *
     * @param eamTechnicalStatusChange
     * @param query
     * @param pageNo
     * @param pageSize
     * @param req
@@ -45,72 +45,100 @@
     */
    @ApiOperation(value="技术状态变更申请-分页列表查询", notes="技术状态变更申请-分页列表查询")
    @GetMapping(value = "/list")
    public Result<?> queryPageList(EamTechnicalStatusChange eamTechnicalStatusChange,
    public Result<?> queryPageList(EamTechnicalStatusChangeQuery query,
                                   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
                                   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
                                   HttpServletRequest req) {
        QueryWrapper<EamTechnicalStatusChange> queryWrapper = QueryGenerator.initQueryWrapper(eamTechnicalStatusChange, req.getParameterMap());
        Page<EamTechnicalStatusChange> page = new Page<EamTechnicalStatusChange>(pageNo, pageSize);
        IPage<EamTechnicalStatusChange> pageList = eamTechnicalStatusChangeService.page(page, queryWrapper);
        IPage<EamTechnicalStatusChange> pageList = eamTechnicalStatusChangeService.queryPageList(page, query);
        return Result.OK(pageList);
    }
    
    /**
     * æ·»åŠ 
     *
     * @param eamTechnicalStatusChange
     * @param request
     * @return
     */
    @AutoLog(value = "技术状态变更申请-添加")
    @ApiOperation(value="技术状态变更申请-添加", notes="技术状态变更申请-添加")
    @PostMapping(value = "/add")
    public Result<?> add(@RequestBody EamTechnicalStatusChange eamTechnicalStatusChange) {
        eamTechnicalStatusChangeService.save(eamTechnicalStatusChange);
    public Result<?> add(@RequestBody EamTechnicalStatusChangeRequest request) {
        if (request == null) {
            return Result.error("添加的对象不能为空!");
        }
        boolean b = eamTechnicalStatusChangeService.addEamTechnicalStatusChange(request);
        if (!b) {
            return Result.error("添加失败!");
        }
        return Result.OK("添加成功!");
    }
    
    /**
     * ç¼–辑
     *
     * @param eamTechnicalStatusChange
     * @param request
     * @return
     */
    @AutoLog(value = "技术状态变更申请-编辑")
    @ApiOperation(value="技术状态变更申请-编辑", notes="技术状态变更申请-编辑")
    @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
    public Result<?> edit(@RequestBody EamTechnicalStatusChange eamTechnicalStatusChange) {
        eamTechnicalStatusChangeService.updateById(eamTechnicalStatusChange);
    public Result<?> edit(@RequestBody EamTechnicalStatusChangeRequest request) {
        if (request == null) {
            return Result.error("编辑的对象不能为空!");
        }
        boolean b = eamTechnicalStatusChangeService.editEamTechnicalStatusChange(request);
        if (!b) {
            return Result.error("编辑失败!");
        }
        return Result.OK("编辑成功!");
    }
    /**
     * é€šè¿‡id删除
     *
     * @param id
     * @return
     */
    @AutoLog(value = "技术状态变更申请-通过id删除")
    @ApiOperation(value="技术状态变更申请-通过id删除", notes="技术状态变更申请-通过id删除")
    @DeleteMapping(value = "/delete")
    public Result<?> delete(@RequestParam(name="id",required=true) String id) {
        eamTechnicalStatusChangeService.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.eamTechnicalStatusChangeService.removeByIds(Arrays.asList(ids.split(",")));
        return Result.OK("批量删除成功!");
    }
     @AutoLog(value = "技术状态变更申请-提交")
     @ApiOperation(value = "技术状态变更申请-提交", notes = "技术状态变更申请-提交")
     @GetMapping("/submit")
     public Result<?> submit(@RequestParam(name = "id") String id) {
         boolean b = eamTechnicalStatusChangeService.submit(id);
         if (!b) {
             return Result.error("提交失败!");
         }
         return Result.OK("提交成功!");
     }
     @AutoLog(value = "技术状态变更申请-作废")
     @ApiOperation(value = "技术状态变更申请-作废", notes = "技术状态变更申请-作废")
     @GetMapping("/abolish")
     public Result<?> abolish(@RequestParam(name = "id") String id) {
         EamTechnicalStatusChange entity = eamTechnicalStatusChangeService.getById(id);
         if (entity == null) {
             return Result.error("要作废的数据不存在,请刷新重试!");
         }
         if (!TechnicalStatusEvaluationOrderChangeStatusEnum.WAIT_SUBMIT.name().equals(entity.getChangeStatus())) {
             return Result.error("该状态的数据不允许进行作废!");
         }
         entity.setChangeStatus(TechnicalStatusChangeOrderStatusEnum.ABOLISH.name());
         eamTechnicalStatusChangeService.updateById(entity);
         return Result.OK("作废成功!");
     }
     @AutoLog(value = "技术状态变更申请-审批")
     @ApiOperation(value = "技术状态变更申请-审批", notes = "技术状态变更申请-审批")
     @PostMapping("/approval")
     public Result<?> approval(@RequestBody EamTechnicalStatusChangeRequest request) {
         if (request == null) {
             return Result.error("审批的对象不能为空!");
         }
         // æ£€æŸ¥è¯·æ±‚参数
         if (StrUtil.isBlank(request.getTaskId()) || StrUtil.isBlank(request.getDataId()) || StrUtil.isBlank(request.getInstanceId())) {
             return Result.error("审批任务错误或不存在!");
         }
         EamTechnicalStatusChange b = eamTechnicalStatusChangeService.approval(request);
         if (b == null) {
             return Result.error("操作失败!");
         }
         return Result.ok("操作成功!");
     }
    /**
     * é€šè¿‡id查询
     *
@@ -124,28 +152,5 @@
        EamTechnicalStatusChange eamTechnicalStatusChange = eamTechnicalStatusChangeService.getById(id);
        return Result.OK(eamTechnicalStatusChange);
    }
  /**
   * å¯¼å‡ºexcel
   *
   * @param request
   * @param eamTechnicalStatusChange
   */
  @RequestMapping(value = "/exportXls")
  public ModelAndView exportXls(HttpServletRequest request, EamTechnicalStatusChange eamTechnicalStatusChange) {
      return super.exportXls(request, eamTechnicalStatusChange, EamTechnicalStatusChange.class, "技术状态变更申请");
  }
  /**
   * é€šè¿‡excel导入数据
   *
   * @param request
   * @param response
   * @return
   */
  @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
  public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
      return super.importExcel(request, response, EamTechnicalStatusChange.class);
  }
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamTechnicalStatusChangeDetailController.java
@@ -1,151 +1,44 @@
package org.jeecg.modules.eam.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.aspect.annotation.AutoLog;
import org.jeecg.common.system.base.controller.JeecgController;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.modules.eam.entity.EamTechnicalStatusChangeDetail;
import org.jeecg.modules.eam.service.IEamTechnicalStatusChangeDetailService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Arrays;
import java.util.List;
 /**
/**
 * @Description: æŠ€æœ¯çŠ¶æ€å˜æ›´ç”³è¯·æ˜Žç»†
 * @Author: jeecg-boot
 * @Date:   2025-07-09
 * @Date: 2025-07-09
 * @Version: V1.0
 */
@Slf4j
@Api(tags="技术状态变更申请明细")
@Api(tags = "技术状态变更申请明细")
@RestController
@RequestMapping("/eam/eamTechnicalStatusChangeDetail")
public class EamTechnicalStatusChangeDetailController extends JeecgController<EamTechnicalStatusChangeDetail, IEamTechnicalStatusChangeDetailService> {
    @Autowired
    private IEamTechnicalStatusChangeDetailService eamTechnicalStatusChangeDetailService;
    /**
     * åˆ†é¡µåˆ—表查询
     *
     * @param eamTechnicalStatusChangeDetail
     * @param pageNo
     * @param pageSize
     * @param req
     * @return
     */
    @ApiOperation(value="技术状态变更申请明细-分页列表查询", notes="技术状态变更申请明细-分页列表查询")
    @GetMapping(value = "/list")
    public Result<?> queryPageList(EamTechnicalStatusChangeDetail eamTechnicalStatusChangeDetail,
                                   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
                                   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
                                   HttpServletRequest req) {
        QueryWrapper<EamTechnicalStatusChangeDetail> queryWrapper = QueryGenerator.initQueryWrapper(eamTechnicalStatusChangeDetail, req.getParameterMap());
        Page<EamTechnicalStatusChangeDetail> page = new Page<EamTechnicalStatusChangeDetail>(pageNo, pageSize);
        IPage<EamTechnicalStatusChangeDetail> pageList = eamTechnicalStatusChangeDetailService.page(page, queryWrapper);
        return Result.OK(pageList);
    }
    /**
     * æ·»åŠ 
     *
     * @param eamTechnicalStatusChangeDetail
     * @return
     */
    @AutoLog(value = "技术状态变更申请明细-添加")
    @ApiOperation(value="技术状态变更申请明细-添加", notes="技术状态变更申请明细-添加")
    @PostMapping(value = "/add")
    public Result<?> add(@RequestBody EamTechnicalStatusChangeDetail eamTechnicalStatusChangeDetail) {
        eamTechnicalStatusChangeDetailService.save(eamTechnicalStatusChangeDetail);
        return Result.OK("添加成功!");
    }
    /**
     * ç¼–辑
     *
     * @param eamTechnicalStatusChangeDetail
     * @return
     */
    @AutoLog(value = "技术状态变更申请明细-编辑")
    @ApiOperation(value="技术状态变更申请明细-编辑", notes="技术状态变更申请明细-编辑")
    @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
    public Result<?> edit(@RequestBody EamTechnicalStatusChangeDetail eamTechnicalStatusChangeDetail) {
        eamTechnicalStatusChangeDetailService.updateById(eamTechnicalStatusChangeDetail);
        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) {
        eamTechnicalStatusChangeDetailService.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.eamTechnicalStatusChangeDetailService.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) {
        EamTechnicalStatusChangeDetail eamTechnicalStatusChangeDetail = eamTechnicalStatusChangeDetailService.getById(id);
        return Result.OK(eamTechnicalStatusChangeDetail);
    }
    @Autowired
    private IEamTechnicalStatusChangeDetailService orderDetailService;
  /**
   * å¯¼å‡ºexcel
   *
   * @param request
   * @param eamTechnicalStatusChangeDetail
   */
  @RequestMapping(value = "/exportXls")
  public ModelAndView exportXls(HttpServletRequest request, EamTechnicalStatusChangeDetail eamTechnicalStatusChangeDetail) {
      return super.exportXls(request, eamTechnicalStatusChangeDetail, EamTechnicalStatusChangeDetail.class, "技术状态变更申请明细");
  }
  /**
   * é€šè¿‡excel导入数据
   *
   * @param request
   * @param response
   * @return
   */
  @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
  public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
      return super.importExcel(request, response, EamTechnicalStatusChangeDetail.class);
  }
    /**
     * ä¸€æ¬¡åŠ è½½
     *
     * @param orderId
     * @return
     */
    @ApiOperation(value = "技术状态变更申请明细-不分页列表查询", notes = "技术状态变更申请明细-不分页列表查询")
    @GetMapping(value = "/queryList")
    public Result<?> queryList(@RequestParam("orderId") String orderId) {
        List<EamTechnicalStatusChangeDetail> list = orderDetailService.queryList(orderId);
        return Result.OK(list);
    }
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamTechnicalStatusChange.java
@@ -49,6 +49,9 @@
    /**变更单状态*/
    @ApiModelProperty(value = "变更单状态")
    private String changeStatus;
    /**申请单位*/
    @ApiModelProperty(value = "申请单位")
    private String factoryOrgCode;
    /**编制人*/
    @ApiModelProperty(value = "编制人")
    private String designer;
@@ -61,19 +64,28 @@
    /**使用单位室主管签字时间*/
    @ApiModelProperty(value = "使用单位室主管签字时间")
    private Date departHeaderSignatureTime;
    /**使用单位室主管签字结果*/
    @ApiModelProperty(value = "使用单位室主管签字结果")
    private String departHeaderSignatureResult;
    /**使用单位室主管意见*/
    @ApiModelProperty(value = "使用单位室主管意见")
    private String departHeaderSignatureComment;
    private String departHeaderComment;
    /**使用单位部主管签字*/
    @ApiModelProperty(value = "使用单位部主管签字")
    private String departLeaderSignature;
    /**使用单位部主管签字时间*/
    @ApiModelProperty(value = "使用单位部主管签字时间")
    private Date departLeaderSignatureTime;
    /**使用单位部主管签字结果*/
    @ApiModelProperty(value = "使用单位部主管签字结果")
    private String departLeaderSignatureResult;
    /**使用单位部主管签字*/
    @ApiModelProperty(value = "使用单位部主管签字")
    private String departLeaderSignatureComment;
    private String departLeaderComment;
    /**HF编码*/
    @ApiModelProperty(value = "HF编码")
    private String hfCode;
    /**备注*/
    @ApiModelProperty(value = "备注")
    private String remark;
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamTechnicalStatusChangeDetail.java
@@ -1,6 +1,7 @@
package org.jeecg.modules.eam.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
@@ -40,6 +41,9 @@
    /**更新时间*/
    @ApiModelProperty(value = "更新时间")
    private Date updateTime;
    /**变更单ID*/
    @ApiModelProperty(value = "变更单ID")
    private String changeOrderId;
    /**设备ID*/
    @ApiModelProperty(value = "设备ID")
    private String equipmentId;
@@ -64,4 +68,14 @@
    /**技术状态鉴定工单ID;搬迁使用*/
    @ApiModelProperty(value = "技术状态鉴定工单ID;搬迁使用")
    private String orderId;
    //列表展示
    @TableField(exist = false)
    private String equipmentCode;
    @TableField(exist = false)
    private String equipmentName;
    @TableField(exist = false)
    private String equipmentModel;
    @TableField(exist = false)
    private String factoryName;
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamTechnicalStatusChangeDetailMapper.java
@@ -2,6 +2,8 @@
import java.util.List;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.eam.entity.EamTechnicalStatusChangeDetail;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@@ -14,4 +16,10 @@
 */
public interface EamTechnicalStatusChangeDetailMapper extends BaseMapper<EamTechnicalStatusChangeDetail> {
    /**
     * è®¾å¤‡æ˜Žç»†æŸ¥è¯¢
     * @param queryWrapper
     * @return
     */
    List<EamTechnicalStatusChangeDetail> queryList(@Param(Constants.WRAPPER) QueryWrapper<EamTechnicalStatusChangeDetail> queryWrapper);
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamTechnicalStatusChangeDetailMapper.xml
@@ -2,4 +2,13 @@
<!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.EamTechnicalStatusChangeDetailMapper">
    <select id="queryList" resultType="org.jeecg.modules.eam.entity.EamTechnicalStatusChangeDetail">
        select ems.*, e.equipment_code, e.equipment_name, e.equipment_model, f.factory_name
        from eam_technical_status_change_detail ems
        inner join eam_equipment e
        on ems.equipment_id = e.id
        left join eam_base_factory f
        on e.factory_org_code = f.org_code
        ${ew.customSqlSegment}
    </select>
</mapper>
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamTechnicalStatusChangeQuery.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
package org.jeecg.modules.eam.request;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
@Data
public class EamTechnicalStatusChangeQuery {
    private String changeOrderNum;
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date dateBegin;
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date dateEnd;
    private String changeStatus;
    private String factoryOrgCode;
    private String column;
    private String order;
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamTechnicalStatusChangeRequest.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,40 @@
package org.jeecg.modules.eam.request;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecg.modules.eam.entity.EamTechnicalStatusChangeDetail;
import org.jeecg.modules.flowable.domain.vo.FlowTaskVo;
import java.io.Serializable;
import java.util.List;
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value="技术状态变更审批对象", description="技术状态变更审批")
public class EamTechnicalStatusChangeRequest extends FlowTaskVo implements Serializable {
    /**主键*/
    @ApiModelProperty(value = "主键")
    private String id;
    /**使用单位室主管签字结果*/
    @ApiModelProperty(value = "使用单位室主管签字结果")
    private String departHeaderSignatureResult;
    /**使用单位室主管意见*/
    @ApiModelProperty(value = "使用单位室主管意见")
    private String departHeaderComment;
    /**使用单位部主管签字结果*/
    @ApiModelProperty(value = "使用单位部主管签字结果")
    private String departLeaderSignatureResult;
    /**使用单位部主管签字*/
    @ApiModelProperty(value = "使用单位部主管签字")
    private String departLeaderComment;
    /**备注*/
    @ApiModelProperty(value = "备注")
    private String remark;
    /**列表 è®¾å¤‡æ˜Žç»†*/
    @ApiModelProperty(value = "列表 è®¾å¤‡æ˜Žç»†")
    private List<EamTechnicalStatusChangeDetail> tableDetailList;
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamTechnicalStatusChangeDetailService.java
@@ -3,6 +3,8 @@
import org.jeecg.modules.eam.entity.EamTechnicalStatusChangeDetail;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
 * @Description: æŠ€æœ¯çŠ¶æ€å˜æ›´ç”³è¯·æ˜Žç»†
 * @Author: jeecg-boot
@@ -11,4 +13,10 @@
 */
public interface IEamTechnicalStatusChangeDetailService extends IService<EamTechnicalStatusChangeDetail> {
    /**
     * æŸ¥è¯¢è®¾å¤‡æ˜Žç»†
     * @param orderId
     * @return
     */
    List<EamTechnicalStatusChangeDetail> queryList(String orderId);
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamTechnicalStatusChangeService.java
@@ -1,7 +1,11 @@
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.EamTechnicalStatusChange;
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.eam.request.EamTechnicalStatusChangeQuery;
import org.jeecg.modules.eam.request.EamTechnicalStatusChangeRequest;
/**
 * @Description: æŠ€æœ¯çŠ¶æ€å˜æ›´ç”³è¯·
@@ -11,4 +15,37 @@
 */
public interface IEamTechnicalStatusChangeService extends IService<EamTechnicalStatusChange> {
    /**
     * åˆ†é¡µæŸ¥è¯¢
     * @param page
     * @param query
     * @return
     */
    IPage<EamTechnicalStatusChange> queryPageList(Page<EamTechnicalStatusChange> page, EamTechnicalStatusChangeQuery query);
    /**
     * æ–°å¢ž
     * @param request
     */
    boolean addEamTechnicalStatusChange(EamTechnicalStatusChangeRequest request);
    /**
     * ç¼–辑
     * @param request
     */
    boolean editEamTechnicalStatusChange(EamTechnicalStatusChangeRequest request);
    /**
     * æäº¤
     * @param id
     * @return
     */
    boolean submit(String id);
    /**
     * å®¡æ‰¹
     * @param request
     * @return
     */
    EamTechnicalStatusChange approval(EamTechnicalStatusChangeRequest request);
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamTechnicalStatusChangeDetailServiceImpl.java
@@ -1,11 +1,14 @@
package org.jeecg.modules.eam.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.jeecg.modules.eam.entity.EamTechnicalStatusChangeDetail;
import org.jeecg.modules.eam.mapper.EamTechnicalStatusChangeDetailMapper;
import org.jeecg.modules.eam.service.IEamTechnicalStatusChangeDetailService;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import java.util.List;
/**
 * @Description: æŠ€æœ¯çŠ¶æ€å˜æ›´ç”³è¯·æ˜Žç»†
@@ -16,4 +19,11 @@
@Service
public class EamTechnicalStatusChangeDetailServiceImpl extends ServiceImpl<EamTechnicalStatusChangeDetailMapper, EamTechnicalStatusChangeDetail> implements IEamTechnicalStatusChangeDetailService {
    @Override
    public List<EamTechnicalStatusChangeDetail> queryList(String changeOrderId) {
        QueryWrapper<EamTechnicalStatusChangeDetail> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("ems.change_order_id", changeOrderId);
        queryWrapper.orderByAsc("ems.create_time");
        return this.getBaseMapper().queryList(queryWrapper);
    }
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamTechnicalStatusChangeServiceImpl.java
@@ -1,11 +1,36 @@
package org.jeecg.modules.eam.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.jeecg.common.constant.CommonConstant;
import org.jeecg.common.constant.DataBaseConstant;
import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.common.util.oConvertUtils;
import org.jeecg.modules.eam.entity.EamTechnicalStatusChange;
import org.jeecg.modules.eam.mapper.EamTechnicalStatusChangeMapper;
import org.jeecg.modules.eam.request.EamTechnicalStatusChangeQuery;
import org.jeecg.modules.eam.request.EamTechnicalStatusChangeRequest;
import org.jeecg.modules.eam.service.IEamTechnicalStatusChangeService;
import org.jeecg.modules.flowable.apithird.business.entity.FlowMyBusiness;
import org.jeecg.modules.flowable.apithird.service.FlowCallBackServiceI;
import org.jeecg.modules.system.entity.BaseFactory;
import org.jeecg.modules.system.entity.BaseFactoryUser;
import org.jeecg.modules.system.service.IBaseFactoryService;
import org.jeecg.modules.system.service.IBaseFactoryUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
/**
 * @Description: æŠ€æœ¯çŠ¶æ€å˜æ›´ç”³è¯·
@@ -13,7 +38,113 @@
 * @Date:   2025-07-09
 * @Version: V1.0
 */
@Service
public class EamTechnicalStatusChangeServiceImpl extends ServiceImpl<EamTechnicalStatusChangeMapper, EamTechnicalStatusChange> implements IEamTechnicalStatusChangeService {
@Service("IEamTechnicalStatusChangeService")
public class EamTechnicalStatusChangeServiceImpl extends ServiceImpl<EamTechnicalStatusChangeMapper, EamTechnicalStatusChange> implements IEamTechnicalStatusChangeService, FlowCallBackServiceI {
    @Autowired
    private IBaseFactoryUserService baseFactoryUserService;
    @Autowired
    private IBaseFactoryService baseFactoryService;
    @Override
    public IPage<EamTechnicalStatusChange> queryPageList(Page<EamTechnicalStatusChange> page, EamTechnicalStatusChangeQuery query) {
        QueryWrapper<EamTechnicalStatusChange> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("del_flag", CommonConstant.DEL_FLAG_0);
        //用户数据权限
        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
        if (sysUser == null) {
            return page;
        }
        //根据中心过滤数据权限
        List<BaseFactoryUser> baseFactoryUserList = baseFactoryUserService.
                list(new LambdaQueryWrapper<BaseFactoryUser>().eq(BaseFactoryUser::getUserId, sysUser.getId()));
        if (!CollectionUtils.isEmpty(baseFactoryUserList)) {
            Set<String> factoryIds = baseFactoryUserList.stream().map(BaseFactoryUser::getFactoryId).collect(Collectors.toSet());
            Set<String> factoryCodeList = baseFactoryService.listByIds(factoryIds).stream().map(BaseFactory::getOrgCode).collect(Collectors.toSet());
            queryWrapper.in("factory_org_code", factoryCodeList);
        } else {
            return page;
        }
        if (query != null) {
            //编码 æ¨¡ç³ŠæŸ¥è¯¢
            if (StringUtils.isNotBlank(query.getChangeOrderNum())) {
                queryWrapper.like("change_order_num", query.getChangeOrderNum());
            }
            //保养分类
            if (StringUtils.isNotBlank(query.getChangeStatus())) {
                queryWrapper.eq("change_status", query.getChangeStatus());
            }
            if (query.getDateBegin() != null && query.getDateEnd() != null) {
                queryWrapper.between("designer_time", query.getDateBegin(), query.getDateEnd());
            }
            //申请单位
            if(StringUtils.isNotBlank(query.getFactoryOrgCode())) {
                queryWrapper.eq("factory_org_code", query.getFactoryOrgCode());
            }
            //排序
            if (StringUtils.isNotBlank(query.getColumn()) && StringUtils.isNotBlank(query.getOrder())) {
                String column = query.getColumn();
                if (column.endsWith(CommonConstant.DICT_TEXT_SUFFIX)) {
                    column = column.substring(0, column.lastIndexOf(CommonConstant.DICT_TEXT_SUFFIX));
                }
                if (DataBaseConstant.SQL_ASC.equalsIgnoreCase(query.getOrder())) {
                    queryWrapper.orderByAsc(oConvertUtils.camelToUnderline(column));
                } else {
                    queryWrapper.orderByDesc(oConvertUtils.camelToUnderline(column));
                }
            } else {
                queryWrapper.orderByDesc("create_time");
            }
        } else {
            queryWrapper.orderByDesc("create_time");
        }
        return this.getBaseMapper().selectPage(page, queryWrapper);
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public boolean addEamTechnicalStatusChange(EamTechnicalStatusChangeRequest request) {
        return false;
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public boolean editEamTechnicalStatusChange(EamTechnicalStatusChangeRequest request) {
        return false;
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public boolean submit(String id) {
        return false;
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public EamTechnicalStatusChange approval(EamTechnicalStatusChangeRequest request) {
        return null;
    }
    @Override
    public void afterFlowHandle(FlowMyBusiness business) {
        business.getTaskNameId();//接下来审批的节点
        business.getValues();//前端传进来的参数
        business.getActStatus();
    }
    @Override
    public Object getBusinessDataById(String dataId) {
        return this.getById(dataId);
    }
    @Override
    public Map<String, Object> flowValuesOfTask(String taskNameId, Map<String, Object> values) {
        return null;
    }
    @Override
    public List<String> flowCandidateUsernamesOfTask(String taskNameId, Map<String, Object> values) {
        //业务是否干预流程,业务干预,流程干预,指定人员进行处理
        //获取下一步处理人
        Object object = values.get("NextAssignee");
        return (List<String>) object;
    }
}