8904f9e6005e7e1f3cc06f415fdcde0033c32332..ee530992793ed7d0b7f16f1ce07b6c53ae265068
7 小时以前 zhangherong
art: 技术状态变更申请-字典转译
ee5309 对比 | 目录
9 小时以前 zhangherong
art: 技术状态变更申请-验收接口
57df70 对比 | 目录
11 小时以前 zhangherong
art: 设备台账-设备选择接口
efd6a9 对比 | 目录
已修改9个文件
207 ■■■■ 文件已修改
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/IEamEquipmentService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentServiceImpl.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/vo/EquipmentSearchResult.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentController.java 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamTechnicalStatusChangeController.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamTechnicalStatusChangeDetailController.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamTechnicalStatusChangeDetail.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamTechnicalStatusChangeService.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamTechnicalStatusChangeServiceImpl.java 89 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/IEamEquipmentService.java
@@ -57,7 +57,7 @@
     * @param pageSize
     * @return
     */
    List<EquipmentSearchResult> asyncLoadEquipment(String keyword, Integer pageSize, String id);
    List<EquipmentSearchResult> asyncLoadEquipment(String keyword, Integer pageSize, String id, String factoryOrgCode);
    /**
     * 查询设备信息
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentServiceImpl.java
@@ -235,7 +235,7 @@
    }
    @Override
    public List<EquipmentSearchResult> asyncLoadEquipment(String keyword, Integer pageSize, String id) {
    public List<EquipmentSearchResult> asyncLoadEquipment(String keyword, Integer pageSize, String id, String factoryOrgCode) {
        if (StringUtils.isNotBlank(id)) {
            EamEquipment eamEquipment = eamEquipmentMapper.selectById(id);
            if (eamEquipment != null) {
@@ -261,7 +261,7 @@
                    list(new LambdaQueryWrapper<BaseFactoryUser>().eq(BaseFactoryUser::getUserId,sysUser.getId()));
            if(!CollectionUtils.isEmpty(baseFactoryUserList)){
                Set<String> factoryIds = baseFactoryUserList.stream().map(BaseFactoryUser::getFactoryId).collect(Collectors.toSet());
                Set<String> factoryCode= baseFactoryService.listByIds(factoryIds).stream().map(BaseFactory::getOrgCode).collect(Collectors.toSet());
                Set<String> factoryCode = baseFactoryService.listByIds(factoryIds).stream().map(BaseFactory::getOrgCode).collect(Collectors.toSet());
                queryWrapper.in("e.factory_org_code", factoryCode);
            } else {
                return Collections.emptyList();
@@ -269,10 +269,13 @@
        }
        if (StringUtils.isNotBlank(keyword)) {
            queryWrapper.like("equipment_code", keyword);
            queryWrapper.or().like("equipment_name", keyword);
            queryWrapper.like("e.equipment_code", keyword);
            queryWrapper.or().like("e.equipment_name", keyword);
        }
        queryWrapper.eq("del_flag", CommonConstant.DEL_FLAG_0);
        if(StringUtils.isNotBlank(factoryOrgCode)){
            queryWrapper.likeRight("e.factory_org_code", factoryOrgCode);
        }
        queryWrapper.eq("e.del_flag", CommonConstant.DEL_FLAG_0);
        IPage<EamEquipment> pageResult = eamEquipmentMapper.queryPageList(page, queryWrapper);
        if (pageResult != null && CollectionUtil.isNotEmpty(pageResult.getRecords())) {
            List<EquipmentSearchResult> resultList = new ArrayList<>();
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/vo/EquipmentSearchResult.java
@@ -16,11 +16,20 @@
     */
    private String text;
    private String equipmentModel;
    private String equipmentCode;
    private String equipmentName;
    private String factoryOrgCode;
    public EquipmentSearchResult() {
    }
    public EquipmentSearchResult(EamEquipment eamEquipment) {
        this.value = eamEquipment.getId();
        this.text = eamEquipment.getEquipmentCode() + "[" + eamEquipment.getEquipmentName() + "]";
        this.equipmentModel = eamEquipment.getEquipmentModel();
        this.equipmentCode = eamEquipment.getEquipmentCode();
        this.equipmentName = eamEquipment.getEquipmentName();
        this.factoryOrgCode = eamEquipment.getFactoryOrgCode();
    }
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentController.java
@@ -384,9 +384,21 @@
    @GetMapping(value = "/asyncLoadEquipment")
    public Result<?> asyncLoadEquipment(@RequestParam(name="keyword",required = false) String keyword,
                                        @RequestParam(value = "pageSize", required = false, defaultValue = "20") Integer pageSize,
                                        @RequestParam(name="id",required = false) String id) {
        List<EquipmentSearchResult> resultList = eamEquipmentService.asyncLoadEquipment(keyword, pageSize, id);
        return Result.ok(resultList);
                                        @RequestParam(name="id",required = false) String id,
                                        @RequestParam(name="factoryOrgCode",required = false) String factoryOrgCode) {
        List<EquipmentSearchResult> resultList = eamEquipmentService.asyncLoadEquipment(keyword, pageSize, id, factoryOrgCode);
        List<JSONObject> items = new ArrayList<>();
        try {
            for(EquipmentSearchResult vo : resultList) {
                String json = objectMapper.writeValueAsString(vo);
                JSONObject item = JSONObject.parseObject(json, Feature.OrderedField);
                translateDictTextUtils.translateField("factoryOrgCode", vo.getFactoryOrgCode(), item, "eam_base_factory,factory_name,org_code");
                items.add(item);
            }
            return Result.OK(items);
        }catch (Exception e) {
            return Result.error("数据转译失败!");
        }
    }
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamTechnicalStatusChangeController.java
@@ -2,16 +2,22 @@
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.parser.Feature;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.aspect.annotation.AutoLog;
import org.jeecg.common.system.base.controller.JeecgController;
import org.jeecg.common.util.TranslateDictTextUtils;
import org.jeecg.modules.eam.constant.TechnicalStatusChangeOrderStatusEnum;
import org.jeecg.modules.eam.entity.EamTechnicalStatusChange;
import org.jeecg.modules.eam.entity.EamTechnicalStatusChangeDetail;
import org.jeecg.modules.eam.request.EamTechnicalStatusChangeQuery;
import org.jeecg.modules.eam.request.EamTechnicalStatusChangeRequest;
import org.jeecg.modules.eam.service.IEamTechnicalStatusChangeService;
@@ -31,6 +37,10 @@
public class EamTechnicalStatusChangeController extends JeecgController<EamTechnicalStatusChange, IEamTechnicalStatusChangeService> {
    @Autowired
    private IEamTechnicalStatusChangeService eamTechnicalStatusChangeService;
     @Autowired
     private ObjectMapper objectMapper;
     @Autowired
     private TranslateDictTextUtils translateDictTextUtils;
    
    /**
     * 分页列表查询
@@ -149,7 +159,36 @@
    @GetMapping(value = "/queryById")
    public Result<?> queryById(@RequestParam(name="id",required=true) String id) {
        EamTechnicalStatusChange eamTechnicalStatusChange = eamTechnicalStatusChangeService.getById(id);
        return Result.OK(eamTechnicalStatusChange);
        if (eamTechnicalStatusChange == null) {
            return Result.error("未找到对应数据");
        }
        try {
            String json = objectMapper.writeValueAsString(eamTechnicalStatusChange);
            JSONObject item = JSONObject.parseObject(json, Feature.OrderedField);
            translateDictTextUtils.translateField("designer", eamTechnicalStatusChange.getDesigner(), item, "sys_user,realname,username");
            translateDictTextUtils.translateField("factoryOrgCode", eamTechnicalStatusChange.getFactoryOrgCode(), item, "eam_base_factory,factory_name,org_code");
            return Result.OK(item);
        } catch (JsonProcessingException e) {
            return Result.error("数据转译失败!");
        }
    }
     /**
      * 验收
      * @param request
      * @return
      */
     @ApiOperation(value = "技术状态变更申请明细-验收", notes = "技术状态变更申请明细-验收")
     @PostMapping(value = "/acceptance")
     public Result<?> acceptance(@RequestBody EamTechnicalStatusChangeDetail request) {
         if (request == null) {
             return Result.error("验收结果对象不能为空!");
         }
         boolean b = eamTechnicalStatusChangeService.acceptance(request);
         if (!b) {
             return Result.error("操作失败!");
         }
         return Result.OK("操作成功!");
     }
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamTechnicalStatusChangeDetailController.java
@@ -1,10 +1,14 @@
package org.jeecg.modules.eam.controller;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.parser.Feature;
import com.fasterxml.jackson.databind.ObjectMapper;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.system.base.controller.JeecgController;
import org.jeecg.common.util.TranslateDictTextUtils;
import org.jeecg.modules.eam.entity.EamTechnicalStatusChangeDetail;
import org.jeecg.modules.eam.service.IEamTechnicalStatusChangeDetailService;
import org.springframework.beans.factory.annotation.Autowired;
@@ -13,6 +17,7 @@
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.List;
/**
@@ -28,6 +33,10 @@
public class EamTechnicalStatusChangeDetailController extends JeecgController<EamTechnicalStatusChangeDetail, IEamTechnicalStatusChangeDetailService> {
    @Autowired
    private IEamTechnicalStatusChangeDetailService orderDetailService;
    @Autowired
    private ObjectMapper objectMapper;
    @Autowired
    private TranslateDictTextUtils translateDictTextUtils;
    /**
     * 一次加载
@@ -39,6 +48,19 @@
    @GetMapping(value = "/queryList")
    public Result<?> queryList(@RequestParam("orderId") String orderId) {
        List<EamTechnicalStatusChangeDetail> list = orderDetailService.queryList(orderId);
        return Result.OK(list);
        List<JSONObject> items = new ArrayList<>();
        try {
            for(EamTechnicalStatusChangeDetail vo : list) {
                String json = objectMapper.writeValueAsString(vo);
                JSONObject item = JSONObject.parseObject(json, Feature.OrderedField);
                translateDictTextUtils.translateField("changeCategory", vo.getChangeCategory(), item, "technical_status_change_reason");
                translateDictTextUtils.translateField("changeTechnicalStatus", vo.getChangeTechnicalStatus(), item, "equipment_technology_status");
                translateDictTextUtils.translateField("acceptanceCheckResult", vo.getAcceptanceCheckResult(), item, "equipment_technology_status");
                items.add(item);
            }
            return Result.OK(items);
        }catch (Exception e) {
            return Result.error("数据转译失败!");
        }
    }
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamTechnicalStatusChangeDetail.java
@@ -69,6 +69,9 @@
    /**验收检查结果;大修、改造 需要填写验收结果,搬迁按照技术状态鉴定工单维护,其他暂未使用到,只预留此类型*/
    @ApiModelProperty(value = "验收检查结果;大修、改造 需要填写验收结果,搬迁按照技术状态鉴定工单维护,其他暂未使用到,只预留此类型")
    private String acceptanceCheckResult;
    /**验收意见*/
    @ApiModelProperty(value = "验收意见")
    private String acceptanceCheckComment;
    //列表展示
    @TableField(exist = false)
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamTechnicalStatusChangeService.java
@@ -4,6 +4,7 @@
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.entity.EamTechnicalStatusChangeDetail;
import org.jeecg.modules.eam.request.EamTechnicalStatusChangeQuery;
import org.jeecg.modules.eam.request.EamTechnicalStatusChangeRequest;
@@ -48,4 +49,11 @@
     * @return
     */
    EamTechnicalStatusChange approval(EamTechnicalStatusChangeRequest request);
    /**
     * 验收
     * @param request
     * @return
     */
    boolean acceptance(EamTechnicalStatusChangeDetail request);
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamTechnicalStatusChangeServiceImpl.java
@@ -15,22 +15,16 @@
import org.jeecg.common.constant.DataBaseConstant;
import org.jeecg.common.exception.JeecgBootException;
import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.common.util.DateUtils;
import org.jeecg.common.util.TranslateDictTextUtils;
import org.jeecg.common.util.oConvertUtils;
import org.jeecg.modules.eam.constant.BusinessCodeConst;
import org.jeecg.modules.eam.constant.HfTemplateCategoryEnum;
import org.jeecg.modules.eam.constant.TechnicalStatusChangeOrderStatusEnum;
import org.jeecg.modules.eam.constant.TechnicalStatusEvaluationOrderChangeStatusEnum;
import org.jeecg.modules.eam.entity.EamBaseHFCode;
import org.jeecg.modules.eam.entity.EamEquipment;
import org.jeecg.modules.eam.entity.EamTechnicalStatusChange;
import org.jeecg.modules.eam.constant.*;
import org.jeecg.modules.eam.entity.*;
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.IEamBaseHFCodeService;
import org.jeecg.modules.eam.service.IEamEquipmentService;
import org.jeecg.modules.eam.service.IEamTechnicalStatusChangeDetailService;
import org.jeecg.modules.eam.service.IEamTechnicalStatusChangeService;
import org.jeecg.modules.eam.request.EamTechnicalStatusEvaluationOrderRequest;
import org.jeecg.modules.eam.service.*;
import org.jeecg.modules.flowable.apithird.business.entity.FlowMyBusiness;
import org.jeecg.modules.flowable.apithird.business.service.IFlowMyBusinessService;
import org.jeecg.modules.flowable.apithird.service.FlowCallBackServiceI;
@@ -48,6 +42,7 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDate;
import java.util.*;
import java.util.stream.Collectors;
@@ -83,6 +78,12 @@
    private IFlowTaskService flowTaskService;
    @Autowired
    private TranslateDictTextUtils translateDictTextUtils;
    @Autowired
    private IEamEquipmentExtendService equipmentExtendService;
    @Autowired
    private IEamTechnicalStatusEvaluationStandardService evaluationStandardService;
    @Autowired
    private IEamTechnicalStatusEvaluationOrderService evaluationOrderService;
    @Override
    public IPage<EamTechnicalStatusChange> queryPageList(Page<EamTechnicalStatusChange> page, EamTechnicalStatusChangeQuery query) {
@@ -175,6 +176,7 @@
            detail.setCreateTime(null);
            detail.setUpdateBy(null);
            detail.setUpdateTime(null);
            detail.setChangeOrderId(order.getId());
        });
        changeDetailService.saveBatch(request.getTableDetailList());
        return true;
@@ -211,6 +213,7 @@
            detail.setCreateTime(null);
            detail.setUpdateBy(null);
            detail.setUpdateTime(null);
            detail.setChangeOrderId(entity.getId());
        });
        changeDetailService.saveBatch(request.getTableDetailList());
        return true;
@@ -370,6 +373,70 @@
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public boolean acceptance(EamTechnicalStatusChangeDetail request) {
        // 获取当前登录用户
        LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
        if (user == null || StrUtil.isBlank(user.getId())) {
            throw new JeecgBootException("未获取到登录用户,请重新登录后再试!");
        }
        EamTechnicalStatusChange order = this.getBaseMapper().selectById(request.getChangeOrderId());
        if(order == null) {
            throw new JeecgBootException("变更工单不存在,请刷新重试!");
        }
        if(!TechnicalStatusChangeOrderStatusEnum.COMPLETED.name().equals(order.getChangeStatus())) {
            throw new JeecgBootException("变更工单未完成,无法提交验收!");
        }
        TechnicalStatusChangeReasonEnum instance = TechnicalStatusChangeReasonEnum.getInstance(request.getChangeCategory());
        if(instance == null) {
            throw new JeecgBootException("变更原因无效,操作失败!");
        }
        EamEquipment equipment = equipmentService.getById(request.getEquipmentId());
        if(equipment == null) {
            throw new JeecgBootException("设备信息不存在,操作失败!");
        }
        EamEquipmentExtend extend = equipmentExtendService.getById(request.getEquipmentId());
        if(extend == null) {
            throw new JeecgBootException("设备信息不存在,操作失败!");
        }
        switch (instance) {
            case EQUIPMENT_MAJOR:
            case EQUIPMENT_RETROFITTING:
            case OTHER:
                //设备大修、改造、其他的逻辑
                request.setAcceptanceChecker(user.getUsername());
                request.setAcceptanceCheckTime(new Date());
                changeDetailService.updateById(request);
                //更新设备技术鉴定状态
                equipmentExtendService.updateTechnologyParam(request.getEquipmentId(), request.getAcceptanceCheckResult(), DateUtils.localDateToDate(LocalDate.now()), null);
                break;
            case EQUIPMENT_RELOCATION:
                //设备搬迁逻辑
                request.setAcceptanceChecker(user.getUsername());
                request.setAcceptanceCheckTime(new Date());
                request.setAcceptanceCheckResult(null);
                changeDetailService.updateById(request);
                //生成技术状态鉴定工单
                EamTechnicalStatusEvaluationStandard standard = evaluationStandardService.queryEnableStandard(request.getId());
                if (standard == null) {
                    throw new JeecgBootException("设备:{"+equipment.getEquipmentCode()+"},未配置技术状态鉴定规范,无法生成技术鉴定工单!");
                }
                EamTechnicalStatusEvaluationOrderRequest orderRequest = new EamTechnicalStatusEvaluationOrderRequest();
                orderRequest.setEquipmentId(extend.getId());
                orderRequest.setStandardId(standard.getId());
                orderRequest.setEvaluationDate(DateUtils.localDateToDate(LocalDate.now()));
                orderRequest.setFreezeOrderDate(null);
                orderRequest.setOrderExpirationDate(null);
                orderRequest.setCreationMethod(OrderCreationMethodEnum.AUTO.name());
                evaluationOrderService.addTechnicalStatusEvaluationOrder(orderRequest);
                //更新扩展表中的生成标识
                equipmentExtendService.updateTechnologyParam(equipment.getId(), null, null, CommonConstant.STATUS_1);
                break;
        }
        return false;
    }
    @Override
    public void afterFlowHandle(FlowMyBusiness business) {
        business.getTaskNameId();//接下来审批的节点
        business.getValues();//前端传进来的参数