Lius
2025-04-25 8e9471d884fe129a1b36310d19771d087952ab57
维修记录指派
已修改11个文件
187 ■■■■ 文件已修改
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamRepairOrderController.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamReportRepairController.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamReportRepairQuery.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamRepairOrderService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamRepairOrderServiceImpl.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamReportRepairServiceImpl.java 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc-common/src/main/java/org/jeecg/modules/mdc/mapper/EquipmentMapper.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/MesPartProcessInfoJob.java 53 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcOeeInfoServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/dto/MesRcJobreport.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/impl/MesRcJobreportServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamRepairOrderController.java
@@ -18,12 +18,13 @@
import org.jeecg.modules.eam.request.EamRepairOrderQuery;
import org.jeecg.modules.eam.request.EamRepairOrderRequest;
import org.jeecg.modules.eam.request.EamRepairOrderResponse;
import org.jeecg.modules.eam.service.IEamEquipmentService;
import org.jeecg.modules.eam.request.EamReportRepairQuery;
import org.jeecg.modules.eam.service.IEamRepairOrderService;
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.system.entity.SysUser;
import org.jeecg.modules.system.service.ISysUserService;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
@@ -49,6 +50,9 @@
    @Resource
    private TranslateDictTextUtils translateDictTextUtils;
    @Resource
    private ISysUserService sysUserService;
    /**
     * 分页列表查询
@@ -91,6 +95,37 @@
    }
    /**
     * 指派
     *
     * @param
     * @return
     */
    @AutoLog(value = "故障报修-指派")
    @ApiOperation(value = "故障报修-指派", notes = "故障报修-指派")
    @GetMapping(value = "/assign")
    public Result<?> assign(@RequestBody EamReportRepairQuery eamReportRepairQuery) {
        if (StringUtils.isBlank(eamReportRepairQuery.getRepairer())) {
            return Result.error("指派失败,请选择维修工!");
        }
        // 校验指派权限
        LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
        if (!BusinessCodeConst.PCR0004.equals(user.getPost())) {
            return Result.error("指派失败,没有指派权限!");
        }
        // 校验维修工权限
        SysUser sysUser = sysUserService.getUserByName(eamReportRepairQuery.getRepairer());
        if (sysUser == null) {
            return Result.error("指派失败,未找到此维修工用户!");
        }
        if (!BusinessCodeConst.PCR0002.equals(sysUser.getPost())) {
            return Result.error("指派失败,此用户不是维修工!");
        }
        eamRepairOrderService.assign(eamReportRepairQuery);
        return Result.OK("指派成功!");
    }
    /**
     * 我的待办 执行/审批
     *
     * @param request
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamReportRepairController.java
@@ -10,12 +10,16 @@
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.jeecg.common.api.vo.FileUploadResult;
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.common.util.TranslateDictTextUtils;
import org.jeecg.modules.eam.constant.BusinessCodeConst;
import org.jeecg.modules.eam.constant.ReportRepairEnum;
import org.jeecg.modules.eam.entity.EamReportRepair;
import org.jeecg.modules.eam.request.EamReportRepairQuery;
@@ -26,6 +30,8 @@
import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.system.base.controller.JeecgController;
import org.jeecg.modules.system.entity.SysUser;
import org.jeecg.modules.system.service.ISysUserService;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import io.swagger.annotations.Api;
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamReportRepairQuery.java
@@ -34,4 +34,8 @@
     * 结束时间
     */
    private String endTime;
    /**
     * 指派人(维修负责人)
     */
    private String repairer;
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamRepairOrderService.java
@@ -7,6 +7,7 @@
import org.jeecg.modules.eam.request.EamRepairOrderQuery;
import org.jeecg.modules.eam.request.EamRepairOrderRequest;
import org.jeecg.modules.eam.request.EamRepairOrderResponse;
import org.jeecg.modules.eam.request.EamReportRepairQuery;
/**
 * @Description: 维修工单
@@ -37,4 +38,10 @@
    EamRepairOrder perform(EamRepairOrderRequest request);
    EamRepairOrderResponse findById(String id);
    /**
     * 指派
     * @param eamReportRepairQuery
     */
    void assign(EamReportRepairQuery eamReportRepairQuery);
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamRepairOrderServiceImpl.java
@@ -25,6 +25,7 @@
import org.jeecg.modules.eam.request.EamRepairOrderQuery;
import org.jeecg.modules.eam.request.EamRepairOrderRequest;
import org.jeecg.modules.eam.request.EamRepairOrderResponse;
import org.jeecg.modules.eam.request.EamReportRepairQuery;
import org.jeecg.modules.eam.service.IEamEquipmentExtendService;
import org.jeecg.modules.eam.service.IEamEquipmentService;
import org.jeecg.modules.eam.service.IEamRepairOrderService;
@@ -144,6 +145,50 @@
    }
    /**
     * 指派
     * @param eamReportRepairQuery
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void assign(EamReportRepairQuery eamReportRepairQuery) {
        EamRepairOrder eamRepairOrder = new EamRepairOrder();
        String codeSeq = businessCodeRuleService.generateBusinessCodeSeq(BusinessCodeConst.REPAIR_ORDER_CODE_RULE);
        eamRepairOrder.setRepairCode(codeSeq);
        EamReportRepair eamReportRepair = eamReportRepairService.getById(eamReportRepairQuery.getId());
        eamRepairOrder.setDelFlag(CommonConstant.DEL_FLAG_0);
        eamRepairOrder.setEquipmentId(eamReportRepair.getEquipmentId());
        eamRepairOrder.setRepairStatus(ReportRepairEnum.UNDER_REPAIR.name());
        eamRepairOrder.setActualStartTime(DateUtils.getNow());
        eamRepairOrder.setIsUseSpare(0);
        eamRepairOrder.setRepairer(eamReportRepairQuery.getRepairer());
        super.save(eamRepairOrder);
        EamEquipment eamEquipment = eamEquipmentService.getById(eamReportRepair.getEquipmentId());
        // 启动维修流程
        flowCommonService.initActBusiness("维修工单号:" + codeSeq + ", 设备编号:" + eamEquipment.getEquipmentCode() + "开始维修",
                eamRepairOrder.getId(),
                "IEamRepairOrderService",
                "eam_repair",
                null);
        Map<String, Object> variables = new HashMap<>();
        variables.put("dataId", eamRepairOrder.getId());
        variables.put("organization", "维修工单启动流程");
        variables.put("comment", "维修工单启动流程");
        variables.put("proofreading", true);
        List<String> usernames = new ArrayList<>();
        usernames.add(eamReportRepairQuery.getRepairer());
        variables.put("NextAssignee", usernames);
        Result result = flowDefinitionService.startProcessInstanceByKey("eam_repair", variables);
        if (!result.isSuccess()) {
            super.removeById(eamRepairOrder);
        } else {
            eamReportRepair.setReportStatus(ReportRepairEnum.UNDER_REPAIR.name());
            eamReportRepairService.updateById(eamReportRepair);
            //更新设备维修状态
            eamEquipmentExtendService.updateEquipmentRepairStatus(eamReportRepair.getEquipmentId(), EquipmentRepairStatus.UNDER_REPAIR.name());
        }
    }
    /**
     * 流程操作
     *
     * @param request
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamReportRepairServiceImpl.java
@@ -7,32 +7,21 @@
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.jeecg.common.api.vo.FileUploadResult;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.constant.CommonConstant;
import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.modules.eam.aspect.annotation.EquipmentHistoryLog;
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.constant.ReportRepairEnum;
import org.jeecg.modules.eam.entity.EamInspectionOrderDetail;
import org.jeecg.modules.eam.entity.EamReportRepair;
import org.jeecg.modules.eam.entity.EamWeekMaintenanceOrderDetail;
import org.jeecg.modules.eam.constant.*;
import org.jeecg.modules.eam.entity.*;
import org.jeecg.modules.eam.mapper.EamReportRepairMapper;
import org.jeecg.modules.eam.request.EamReportRepairQuery;
import org.jeecg.modules.eam.service.IEamEquipmentExtendService;
import org.jeecg.modules.eam.service.IEamReportRepairService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.*;
/**
 * @Description: 故障报修
lxzn-module-mdc-common/src/main/java/org/jeecg/modules/mdc/mapper/EquipmentMapper.java
@@ -19,15 +19,15 @@
    @Select(" SELECT name FROM SysObjects Where XType='U' AND name = '${saveTableName}' ")
    String checkTableExists(@Param("saveTableName") String saveTableName);
    @Select(" SELECT COUNT(CollectTime) num FROM ${saveTableName} WHERE CollectTime < '${day}' ")
    @Select(" SELECT COUNT(CollectTime) num FROM [${saveTableName}] WHERE CollectTime < '${day}' ")
    Integer checkTableDataNum(@Param("saveTableName") String saveTableName, @Param("day") String day);
    @Insert(" INSERT INTO ${tableName} SELECT * FROM ${lastTableName}  WHERE CollectTime < '${date}' ")
    @Insert(" INSERT INTO [${tableName}] SELECT * FROM [${lastTableName}]  WHERE CollectTime < '${date}' ")
    void insertTableData(@Param("tableName") String tableName, @Param("lastTableName") String lastTableName, @Param("date") String date);
    @Delete(" delete from ${tableName} where CollectTime < '${day}' ")
    @Delete(" delete from [${tableName}] where CollectTime < '${day}' ")
    void deleteTableData(@Param("tableName") String saveTableName, @Param("day") String day);
    @Insert(" SELECT * INTO ${tableName} FROM ${lastTableName} WHERE CollectTime < '${date}' ")
    @Insert(" SELECT * INTO [${tableName}] FROM [${lastTableName}] WHERE CollectTime < '${date}' ")
    void insertNoTableData(@Param("tableName") String tableName, @Param("lastTableName") String lastTableName, @Param("date") String date);
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/MesPartProcessInfoJob.java
@@ -72,37 +72,36 @@
        log.info("定时获取MES系统加工个数任务 MesPartProcessInfoJob start!  时间:" + DateUtils.getNow());
        long startTime = System.currentTimeMillis();
        try {
            if (StringUtils.isNotBlank(parameter)) {
                String date = "";
                if (StringUtils.isNotBlank(this.parameter)) {
                    date = DateUtils.format(DateUtils.toDate(this.parameter, DateUtils.STRDATE), DateUtils.STR_DATE);
                } else {
                    date = DateUtils.format(DateUtils.getNow(), DateUtils.STR_DATE);
                }
                mdcJcRcJobreportService.remove(new LambdaQueryWrapper<MdcJcRcJobreport>().eq(MdcJcRcJobreport::getTheDate, date));
            String date = "";
            if (StringUtils.isNotBlank(this.parameter)) {
                date = DateUtils.format(DateUtils.toDate(this.parameter, DateUtils.STRDATE), DateUtils.STR_DATE);
            } else {
                date = DateUtils.format(DateUtils.getNow(), DateUtils.STR_DATE);
            }
                //获取设备列表
                List<MdcEquipment> mdcEquipmentList = mdcEquipmentService.list();
                if (mdcEquipmentList != null && !mdcEquipmentList.isEmpty()) {
                    List<String> equipmentIdList = mdcEquipmentList.stream().map(MdcEquipment::getEquipmentId).collect(Collectors.toList());
                    List<MesRcJobreport> mesRcJobreportList = mesRcJobreportService.findPartProcessInfo(date, equipmentIdList);
                    if (mesRcJobreportList != null && !mesRcJobreportList.isEmpty()) {
                        List<MdcJcRcJobreport> mdcJcRcJobreportList = new ArrayList<>();
                        for (MesRcJobreport mesRcJobreport : mesRcJobreportList) {
                            MdcJcRcJobreport mdcJcRcJobreport = new MdcJcRcJobreport();
                            mdcJcRcJobreport.setEquipmentId(mesRcJobreport.getDeviceNumber());
                            mdcJcRcJobreport.setOkuqty(mesRcJobreport.getOkuqty().intValue());
                            mdcJcRcJobreport.setProcessCount(mesRcJobreport.getQty().intValue());
                            mdcJcRcJobreport.setTheDate(date);
                            mdcJcRcJobreportList.add(mdcJcRcJobreport);
                        }
                        if (!mdcEquipmentList.isEmpty()) {
                            mdcJcRcJobreportService.saveBatch(mdcJcRcJobreportList);
                        }
            mdcJcRcJobreportService.remove(new LambdaQueryWrapper<MdcJcRcJobreport>().eq(MdcJcRcJobreport::getTheDate, date));
            //获取设备列表
            List<MdcEquipment> mdcEquipmentList = mdcEquipmentService.list();
            if (mdcEquipmentList != null && !mdcEquipmentList.isEmpty()) {
                List<String> equipmentIdList = mdcEquipmentList.stream().map(MdcEquipment::getEquipmentId).collect(Collectors.toList());
                List<MesRcJobreport> mesRcJobreportList = mesRcJobreportService.findPartProcessInfo(date, equipmentIdList);
                if (mesRcJobreportList != null && !mesRcJobreportList.isEmpty()) {
                    List<MdcJcRcJobreport> mdcJcRcJobreportList = new ArrayList<>();
                    for (MesRcJobreport mesRcJobreport : mesRcJobreportList) {
                        MdcJcRcJobreport mdcJcRcJobreport = new MdcJcRcJobreport();
                        mdcJcRcJobreport.setEquipmentId(mesRcJobreport.getDeviceNumber());
                        mdcJcRcJobreport.setOkuqty(mesRcJobreport.getOkuqty().intValue());
                        mdcJcRcJobreport.setProcessCount(mesRcJobreport.getQty().intValue());
                        mdcJcRcJobreport.setTheDate(date);
                        mdcJcRcJobreportList.add(mdcJcRcJobreport);
                    }
                    if (!mdcEquipmentList.isEmpty()) {
                        mdcJcRcJobreportService.saveBatch(mdcJcRcJobreportList);
                    }
                }
            }
            quartzLog.setIsSuccess(0);
        } catch (Exception e) {
            quartzLog.setIsSuccess(-1);
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcOeeInfoServiceImpl.java
@@ -244,7 +244,7 @@
                    Integer passCount = mdcJcRcJobreportService.selectTotalPassCount(equipmentId, validDate);
                    mdcOeeInfo.setPassCount(passCount);
                    // 合格率 --- 合格数/加工数
                    BigDecimal passRate = BigDecimal.ZERO;
                    BigDecimal passRate = BigDecimal.ONE;
                    if (processCount != 0 && passCount != 0) {
                        passRate = new BigDecimal(passCount).divide(new BigDecimal(processCount), 4, RoundingMode.HALF_UP).multiply(new BigDecimal("100")).setScale(2, RoundingMode.HALF_UP);
                    }
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/dto/MesRcJobreport.java
@@ -19,10 +19,10 @@
    /**
     * 合格数
     */
    private BigDecimal okuqty;
    private BigDecimal okuqty = BigDecimal.ZERO;
    /**
     * 总数
     */
    private BigDecimal qty;
    private BigDecimal qty = BigDecimal.ZERO;
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/impl/MesRcJobreportServiceImpl.java
@@ -58,8 +58,8 @@
            MesRcJobreport mesRcJobreport = new MesRcJobreport();
            mesRcJobreport.setBillDate(map.get("thedate").toString());
            mesRcJobreport.setDeviceNumber(map.get("deviceNumber").toString());
            mesRcJobreport.setOkuqty(new BigDecimal(map.get("okuqty").toString()));
            mesRcJobreport.setQty(new BigDecimal(map.get("qty").toString()));
            mesRcJobreport.setOkuqty(map.get("okuqty") == null ? BigDecimal.ZERO : new BigDecimal(map.get("okuqty").toString()));
            mesRcJobreport.setQty(map.get("qty") == null ? BigDecimal.ZERO : new BigDecimal(map.get("qty").toString()));
            return mesRcJobreport;
        }).collect(Collectors.toList());