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());