新火炬后端单体项目初始化代码
Houjie
2 天以前 67ac603f410319a0d999e5f493c8ef2d74163fe1
src/main/java/org/jeecg/modules/eam/controller/EamEquipmentController.java
@@ -12,15 +12,20 @@
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.aspect.annotation.AutoLog;
import org.jeecg.common.constant.CommonConstant;
import org.jeecg.common.system.base.controller.JeecgController;
import org.jeecg.common.util.TranslateDictTextUtils;
import org.jeecg.modules.eam.constant.MaintenanceCategoryEnum;
import org.jeecg.modules.eam.constant.MaintenanceStandardStatusEnum;
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.service.IEamEquipmentExtendService;
import org.jeecg.modules.eam.service.IEamEquipmentService;
import org.jeecg.modules.eam.vo.EquipmentSearchResult;
import org.jeecg.modules.mes.entity.MesProductionWorkOrder;
import org.jeecg.modules.mes.service.IMesProductionWorkOrderService;
import org.jeecgframework.poi.excel.ExcelImportUtil;
import org.jeecgframework.poi.excel.entity.ImportParams;
import org.springframework.beans.factory.annotation.Autowired;
@@ -33,8 +38,10 @@
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
 * @Description: 设备台账
@@ -60,6 +67,8 @@
    private ObjectMapper objectMapper;
    @Autowired
    private TranslateDictTextUtils translateDictTextUtils;
    @Autowired
    private IMesProductionWorkOrderService mesProductionWorkOrderService;
    /**
     * 分页列表查询
@@ -72,9 +81,7 @@
//    @AutoLog(value = "设备台账-分页列表查询")
    @ApiOperation(value = "设备台账-分页列表查询", notes = "设备台账-分页列表查询")
    @GetMapping(value = "/list")
    public Result<?> queryPageList(EamEquipmentQuery eamEquipment,
                                   @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
                                   @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) {
    public Result<?> queryPageList(EamEquipmentQuery eamEquipment, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) {
//        QueryWrapper<EamEquipment> queryWrapper = QueryGenerator.initQueryWrapper(eamEquipment, req.getParameterMap());
        IPage<EamEquipment> page = new Page<>(pageNo, pageSize);
        IPage<EamEquipment> pageList = eamEquipmentService.queryPageList(page, eamEquipment);
@@ -171,7 +178,7 @@
            return Result.error("未找到对应数据");
        }
        EamEquipmentExtend extend = eamEquipmentExtendService.getById(id);
        if(extend != null){
        if (extend != null) {
            eamEquipment.setRepairStatus(extend.getRepairStatus());
            eamEquipment.setMaintenanceStatus(extend.getMaintenanceStatus());
        }
@@ -219,62 +226,54 @@
            // 获取上传文件对象
            MultipartFile file = entity.getValue();
            ImportParams params = new ImportParams();
            params.setTitleRows(0);
            params.setHeadRows(1);
            params.setNeedSave(true);
            params.setHeadRows(1); // 跳过第1行,从第2行开始读取列名
            params.setTitleRows(1); // 第1行为标题行(可选)
            params.setStartSheetIndex(0);
            params.setSheetNum(1);
            try {
                List<EamEquipment> list = ExcelImportUtil.importExcel(file.getInputStream(), EamEquipment.class, params);
                //update-begin-author:taoyan date:20190528 for:批量插入数据
                long start = System.currentTimeMillis();
//                service.saveBatch(list);
                StringBuilder sb = new StringBuilder();
                for (EamEquipment eamEquipment : list) {
                    //必填字段校验
                    boolean isInvalid = false;
                    StringBuilder errorMsg = new StringBuilder();
                    // 设备编号和设备名称校验
                    if (StringUtils.isBlank(eamEquipment.getEquipmentCode()) || StringUtils.isBlank(eamEquipment.getEquipmentName())) {
                        sb.append(String.format("设备编码[%s]或设备名称[%s]为空,无法导入\n\n", eamEquipment.getEquipmentCode(), eamEquipment.getEquipmentName()));
                        continue;
                        errorMsg.append(String.format("设备编码[%s]或设备名称为空,无法导入\n\n", eamEquipment.getEquipmentCode(), eamEquipment.getEquipmentName()));
                        isInvalid = true;
                    }
                    if (StringUtils.isBlank(eamEquipment.getEquipmentCategory())) {
                        sb.append(String.format("设备编码[%s]设备分类为空,无法导入\n\n", eamEquipment.getEquipmentCode()));
                        continue;
                    // 所属产线校验
                    if (StringUtils.isBlank(eamEquipment.getOrgId())) {
                        errorMsg.append(String.format("设备编码[%s]所属产线为空,无法导入\n\n", eamEquipment.getEquipmentCode()));
                        isInvalid = true;
                    }
                    if (StringUtils.isBlank(eamEquipment.getOrgId()) || StringUtils.isBlank(eamEquipment.getEquipmentManager())) {
                        sb.append(String.format("设备编码[%s]使用车间或设备管理员为空,无法导入\n\n", eamEquipment.getEquipmentCode()));
                        continue;
                    }
//                    if (eamEquipment.getAcceptanceCheckDate() == null) {
//                        sb.append(String.format("设备编码[%s]验收为空,无法导入\n\r", eamEquipment.getEquipmentCode()));
//                        continue;
//                    }
//                    if (StringUtils.isBlank(eamEquipment.getTechnologyStatus())) {
//                        sb.append(String.format("设备编码[%s]技术状态为空,无法导入\n\r", eamEquipment.getEquipmentCode()));
//                        continue;
//                    }
                    // 设备编码唯一性校验
                    EamEquipment one = eamEquipmentService.getOne(new LambdaQueryWrapper<EamEquipment>().eq(EamEquipment::getEquipmentCode, eamEquipment.getEquipmentCode()).eq(EamEquipment::getDelFlag, CommonConstant.DEL_FLAG_0));
                    if (one != null) {
                        sb.append(String.format("设备编码[%s]已存在,无法重复导入\n\r", eamEquipment.getEquipmentCode()));
                        errorMsg.append(String.format("设备编码[%s]已存在,无法重复导入\n\r", eamEquipment.getEquipmentCode()));
                        isInvalid = true;
                    }
                    // 校验不通过,记录错误并跳过导入
                    if (isInvalid) {
                        sb.append(errorMsg);
                        continue;
                    }
                    // 校验通过,执行导入
                    if (!CommonConstant.DEFAULT_1.equals(eamEquipment.getMdcFlag())) {
                        eamEquipment.setMdcFlag(CommonConstant.DEFAULT_0);
                    }
                    EamEquipment equipment = eamEquipmentService.saveEquipment(eamEquipment);
                    if (equipment == null) {
                        //保存失败,跳过本次循环
                        sb.append(String.format("设备编码[%s]保存失败,无法导入\n\r", eamEquipment.getEquipmentCode()));
                        continue;
                    }
                    //调用mdcEquipment插入MDC设备
//                    if (CommonConstant.DEFAULT_1.equals(eamEquipment.getMdcFlag())) {
//                        //插入MDC设备
//                        MdcEquipment mdcEquipment = new MdcEquipment();
//                        mdcEquipment.setEquipmentId(eamEquipment.getEquipmentCode());
//                        mdcEquipment.setEquipmentType(eamEquipment.getDeviceType());
//                        mdcEquipment.setEquipmentName(eamEquipment.getEquipmentName());
//                        mdcEquipmentService.addNewEquipmentFromEam(mdcEquipment, eamEquipment.getOrgId());
//                    }
                    // MDC设备相关逻辑(若有需要)
                    // if (CommonConstant.DEFAULT_1.equals(eamEquipment.getMdcFlag())) {
                    //     MdcEquipment mdcEquipment = new MdcEquipment();
                    //     mdcEquipment.setEquipmentId(eamEquipment.getEquipmentCode());
                    //     mdcEquipment.setEquipmentType(eamEquipment.getDeviceType());
                    //     mdcEquipment.setEquipmentName(eamEquipment.getEquipmentName());
                    //     mdcEquipmentService.addNewEquipmentFromEam(mdcEquipment, eamEquipment.getOrgId());
                    // }
                }
                //400条 saveBatch消耗时间1592毫秒  循环插入消耗时间1947毫秒
                //1200条  saveBatch消耗时间3687毫秒 循环插入消耗时间5212毫秒
@@ -285,7 +284,7 @@
                }
                return Result.ok("文件导入成功!数据行数:" + list.size());
            } catch (Exception e) {
                //update-begin-author:taoyan date:20211124 for: 导入数据重复增加提示
                String msg = e.getMessage();
                log.error(msg, e);
                if (msg != null && msg.indexOf("Duplicate entry") >= 0) {
@@ -293,7 +292,7 @@
                } else {
                    return Result.error("文件导入失败:" + e.getMessage());
                }
                //update-end-author:taoyan date:20211124 for: 导入数据重复增加提示
            } finally {
                try {
                    file.getInputStream().close();
@@ -305,34 +304,51 @@
        return Result.error("文件导入失败!");
    }
//    @ApiOperation(value = "设备表-通过车间ids获取设备树", notes = "设备表-通过车间ids获取设备树")
//    @GetMapping(value = "/loadTreeListByProductionIds")
//    public Result<List<EamEquipmentTree>> loadTreeListByProductionIds(@RequestParam(name = "ids", required = true) String ids) {
//        Result<List<EamEquipmentTree>> result = new Result<>();
//        try {
//            List<EamEquipmentTree> mdcEquipmentTreeList = eamEquipmentService.loadTreeListByProductionIds(ids);
//            result.setSuccess(true);
//            result.setResult(mdcEquipmentTreeList);
//        } catch (Exception e) {
//            log.error(e.getMessage(), e);
//        }
//        return result;
//    }
    /**
     * 检索设备
     * @param keyword 查询关键词 设备编号,设备名称模糊匹配
     *
     * @param keyword  查询关键词 设备编号,设备名称模糊匹配
     * @param pageSize 一次返回多少记录
     * @param id 设备主键
     * @param id       设备主键
     * @return
     */
    @ApiOperation(value = "设备表-异步加载设备列表", notes = "设备表-异步加载设备列表")
    @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) {
    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);
    }
    @AutoLog(value = "查询排产工单所属产线下需要点检的设备列表")
    @ApiOperation(value = "查询排产工单所属产线下需要点检的设备列表", notes = "查询排产工单所属产线下需要点检的设备列表")
    @GetMapping(value = "/listProductionLineInspectionEquipment")
    public Result<?> listProductionLineInspectionEquipment(@RequestParam("orderId") String orderId) {
        MesProductionWorkOrder workOrder = mesProductionWorkOrderService.getById(orderId);
        if (workOrder == null) {
            return Result.error("工单不存在!");
        }
        List<Map<String, Object>> equipmentMapList = eamEquipmentService.list(new LambdaQueryWrapper<EamEquipment>().eq(EamEquipment::getOrgId, workOrder.getFactoryId()).eq(EamEquipment::getDelFlag, CommonConstant.DEL_FLAG_0).apply("NOT EXISTS (SELECT 1 FROM eam_inspection_order t WHERE t.equipment_id = eam_equipment.id AND t.work_order_id = {0})", orderId).apply("EXISTS (SELECT 1 FROM eam_maintenance_standard t WHERE t.equipment_id = eam_equipment.id AND t.del_flag = {0} " + "AND t.standard_status = {1} AND t.maintenance_category = {2})", CommonConstant.DEL_FLAG_0, MaintenanceStandardStatusEnum.NORMAL.name(), MaintenanceCategoryEnum.POINT_INSPECTION.name())).stream().map(e -> (Map<String, Object>) new HashMap<String, Object>() {{
            put("value", e.getId());
            put("label", e.getEquipmentCode() + "[" + e.getEquipmentName() + "]");
            put("text", e.getEquipmentCode() + "[" + e.getEquipmentName() + "]");
        }}).collect(Collectors.toList());
        return Result.ok(equipmentMapList);
    }
    @AutoLog(value = "查询排产工单所属产线下需要工艺点检的设备列表")
    @ApiOperation(value = "查询排产工单所属产线下需要工艺点检的设备列表", notes = "查询排产工单所属产线下需要工艺点检的设备列表")
    @GetMapping(value = "/listProductionLineProcessCheckEquipment")
    public Result<?> listProductionLineProcessCheckEquipment(@RequestParam("orderId") String orderId) {
        MesProductionWorkOrder workOrder = mesProductionWorkOrderService.getById(orderId);
        if (workOrder == null) {
            return Result.error("工单不存在!");
        }
        List<Map<String, Object>> equipmentMapList = eamEquipmentService.list(new LambdaQueryWrapper<EamEquipment>().eq(EamEquipment::getOrgId, workOrder.getFactoryId()).eq(EamEquipment::getDelFlag, CommonConstant.DEL_FLAG_0).apply("EXISTS (SELECT 1 FROM eam_equipment_process_parameters t WHERE t.equipment_id = eam_equipment.id)").apply("NOT EXISTS (SELECT 1 FROM eam_process_check t WHERE t.equipment_id = eam_equipment.id AND t.work_order_id = {0})", orderId)).stream().map(e -> (Map<String, Object>) new HashMap<String, Object>() {{
            put("value", e.getId());
            put("label", e.getEquipmentCode() + "[" + e.getEquipmentName() + "]");
            put("text", e.getEquipmentCode() + "[" + e.getEquipmentName() + "]");
        }}).collect(Collectors.toList());
        return Result.ok(equipmentMapList);
    }
}