diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/RemoteQualityService.java b/op-api/op-api-system/src/main/java/com/op/system/api/RemoteQualityService.java index 646c3fa53..768b7b65d 100644 --- a/op-api/op-api-system/src/main/java/com/op/system/api/RemoteQualityService.java +++ b/op-api/op-api-system/src/main/java/com/op/system/api/RemoteQualityService.java @@ -28,4 +28,7 @@ public interface RemoteQualityService { @PostMapping("/qcWarehousing/createProductTask") public R createProductTask(@RequestBody QcCheckTaskWarehousingDTO qcCheckTaskIncome); + + @PostMapping("/qcIncome/createIncomeBatchTask") + public R createIncomeBatchTask(); } diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/domain/sap/SapRFW.java b/op-api/op-api-system/src/main/java/com/op/system/api/domain/sap/SapRFW.java index 534fd004d..b379c598d 100644 --- a/op-api/op-api-system/src/main/java/com/op/system/api/domain/sap/SapRFW.java +++ b/op-api/op-api-system/src/main/java/com/op/system/api/domain/sap/SapRFW.java @@ -8,9 +8,18 @@ import java.util.List; public class SapRFW { private String aufnr; private String gamng; + private String anzma; private lt_gs lt_gs; private List lt_hwList; + public String getAnzma() { + return anzma; + } + + public void setAnzma(String anzma) { + this.anzma = anzma; + } + public List getLt_hwList() { return lt_hwList; } diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteQualityFallbackFactory.java b/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteQualityFallbackFactory.java index 0400c399a..01e7bf349 100644 --- a/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteQualityFallbackFactory.java +++ b/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteQualityFallbackFactory.java @@ -37,6 +37,11 @@ public class RemoteQualityFallbackFactory implements FallbackFactory selectEquipmentList(EquOperation equOperation); + List selectEquipmentVOList(EquOperation equOperation); /** * 获取维修工单中设备信息 diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceInterfaceServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceInterfaceServiceImpl.java index 0a560a28c..238a36b6f 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceInterfaceServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceInterfaceServiceImpl.java @@ -53,7 +53,7 @@ public class DeviceInterfaceServiceImpl implements IDeviceInterfaceService { /** * 获取设备信息 * 故障停机率:(设备停机时间总和/一定时间内运行总时间(年)) - * 设备有效利用率:(实际产量/理论产量) + * 设备有效利用率:(实际产量/理论产量)改为:一定天数内该设备的总开机时间/(天数*24小时) * * @return */ @@ -61,10 +61,10 @@ public class DeviceInterfaceServiceImpl implements IDeviceInterfaceService { @DS("#header.poolName") public AjaxResult getEquipmentInfo(EquOperation equOperation) { if (equOperation.getTimeDimension() == null) { - equOperation.setTimeDimension("dd"); + equOperation.setTimeDimension("yyyy"); } // 获取所有设备信息 - List equipmentVOList = deviceInterfaceMapper.selectEquipmentList(equOperation); + List equipmentVOList = deviceInterfaceMapper.selectEquipmentVOList(equOperation); return success(equipmentVOList); } @@ -95,26 +95,26 @@ public class DeviceInterfaceServiceImpl implements IDeviceInterfaceService { runTime += diffTime; } // 计算维修质量(故障时间(小时)/故障次数) - double rapairQuantity = runTime / 3600000 / workOrderList.size(); - equipmentVO.setRapairQuantity(Double.valueOf(rapairQuantity)); + Double rapairQuantity = runTime / 3600000 / workOrderList.size(); + String douStr = String.format("%.2f", rapairQuantity); + equipmentVO.setRapairQuantity(douStr); } else { // 没有该记录则默认为0 - equipmentVO.setRapairQuantity(0D); + equipmentVO.setRapairQuantity("0.00"); } } // 按照raparQuantity字段进行排序,并使用subList获取前10个结果 List top10 = equipmentVOList.stream() - .sorted(Comparator.comparingDouble(IEquipmentVO::getRapairQuantity)) // 排序 - .limit(10) // 限制结果数量为10 - .collect(Collectors.toList()); // 将结果收集到List中 - + .sorted(Comparator.comparing(IEquipmentVO::getRapairQuantity).reversed())// 由正序改为 反转排序 倒序 + .limit(10) // 限制结果数量为10 改为不限制结果数量 + .collect(Collectors.toList()); //将结果收集到List中 return success(top10); } /** - * 设备稳定性-MTBF top10 + * 设备稳定性-MTBF * 公式:实际运转时间/停机次数 */ @Override @@ -132,13 +132,12 @@ public class DeviceInterfaceServiceImpl implements IDeviceInterfaceService { /** * 完好设备占比 - * 公式:维修/故障设备 + * 公式:(所有设备-故障设备)/所有设备 */ @Override @DS("#header.poolName") public AjaxResult getEquipmentIntactRate(EquOperation equOperation) { //查询所有设备(设备停用的除外) - // CAST(SUM(CASE WHEN equipment_status = '1' or equipment_status = '3' THEN 1 Else 0 END)*100.00/COUNT(*) as decimal(18,2)) AS intactRate EquOperation equipmentIntactRate = deviceInterfaceMapper.getEquipmentIntactRate(equOperation); Double totalEquipment = new Double(equipmentIntactRate.getTotalEquipment()); Double operationEquipment = new Double(equipmentIntactRate.getOperationEquipment()); diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairWorkOrderServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairWorkOrderServiceImpl.java index 77360fa08..3698d7ec3 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairWorkOrderServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairWorkOrderServiceImpl.java @@ -150,7 +150,14 @@ public class EquRepairWorkOrderServiceImpl implements IEquRepairWorkOrderService HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); String key = "#header.poolName"; equRepairWorkOrder.setFactoryCode(request.getHeader(key.substring(8)).replace("ds_", "")); - return equRepairWorkOrderMapper.insertEquRepairWorkOrder(equRepairWorkOrder); + int result = equRepairWorkOrderMapper.insertEquRepairWorkOrder(equRepairWorkOrder); + + //2.修改设备状态 + EquEquipment equEquipment = new EquEquipment(); + equEquipment.setEquipmentCode(equipmentCode); + equEquipment.setEquipmentStatus("0");//0故障 + equRepairWorkOrderMapper.updateEquipmentStatus(equEquipment); + return result; } /** diff --git a/op-modules/op-device/src/main/resources/mapper/device/DeviceInterfaceMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/DeviceInterfaceMapper.xml index b21f9adb5..05bcf3876 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/DeviceInterfaceMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/DeviceInterfaceMapper.xml @@ -21,7 +21,8 @@ + + diff --git a/op-modules/op-mes/src/main/resources/mapper/mes/MesRWMapper.xml b/op-modules/op-mes/src/main/resources/mapper/mes/MesRWMapper.xml index 16dd96ce6..7f96c7c3a 100644 --- a/op-modules/op-mes/src/main/resources/mapper/mes/MesRWMapper.xml +++ b/op-modules/op-mes/src/main/resources/mapper/mes/MesRWMapper.xml @@ -90,8 +90,8 @@ - + diff --git a/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkConsumeMapper.xml b/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkConsumeMapper.xml index 4ad92d762..a33283fad 100644 --- a/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkConsumeMapper.xml +++ b/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkConsumeMapper.xml @@ -102,10 +102,13 @@ mrwc.quantity, mrwc.unit, mrwc.create_time createTime, - mrwc.recoil + mrwc.recoil, + pow.workorder_code_sap workorderCodeSap from mes_report_work_consume mrwc - where mrwc.del_flag = '0' + left join pro_order_workorder pow on mrwc.workorder_code = pow.workorder_code + where mrwc.del_flag = '0' and pow.del_flag = '0' and mrwc.workorder_code = #{workorderCode} + order by mrwc.recoil + select * + from qc_income_original + where del_flag = '0' + and check_type = 'checkTypeLL' + and order_type = 'bc' + and check_status = '0' + + + + + + update qc_income_original + set + check_status = '1', + check_time = #{time} + where + record_id = #{item} + + diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskMarketMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskMarketMapper.xml new file mode 100644 index 000000000..d002f63a8 --- /dev/null +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskMarketMapper.xml @@ -0,0 +1,240 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select record_id, check_no, income_batch_no, order_no, material_code, material_name, quality, unit, supplier_code, + supplier_name, income_time, check_loc, check_status, check_man_code, check_man_name, check_time, check_result, + status, attr1, attr2, attr3, attr4, create_by, create_time, update_by, update_time, factory_code, del_flag, + check_type, noOk_quality, sample_quality, aNoOkquality, bNoOkquality, cNoOkquality, type_code, order_type + from qc_check_task + + + + + + + + insert into qc_check_task + + record_id, + check_no, + income_batch_no, + order_no, + material_code, + material_name, + quality, + unit, + supplier_code, + supplier_name, + income_time, + check_loc, + check_status, + check_man_code, + check_man_name, + check_time, + check_result, + status, + attr1, + attr2, + attr3, + attr4, + create_by, + create_time, + update_by, + update_time, + factory_code, + del_flag, + check_type, + noOk_quality, + sample_quality, + aNoOkquality, + bNoOkquality, + cNoOkquality, + type_code, + order_type, + + + #{recordId}, + #{checkNo}, + #{incomeBatchNo}, + #{orderNo}, + #{materialCode}, + #{materialName}, + #{quality}, + #{unit}, + #{supplierCode}, + #{supplierName}, + #{incomeTime}, + #{checkLoc}, + #{checkStatus}, + #{checkManCode}, + #{checkManName}, + #{checkTime}, + #{checkResult}, + #{status}, + #{attr1}, + #{attr2}, + #{attr3}, + #{attr4}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{factoryCode}, + #{delFlag}, + #{checkType}, + #{noOkQuality}, + #{sampleQuality}, + #{aNoOkquality}, + #{bNoOkquality}, + #{cNoOkquality}, + #{typeCode}, + #{orderType}, + + + + + update qc_check_task + + check_no = #{checkNo}, + income_batch_no = #{incomeBatchNo}, + order_no = #{orderNo}, + material_code = #{materialCode}, + material_name = #{materialName}, + quality = #{quality}, + unit = #{unit}, + supplier_code = #{supplierCode}, + supplier_name = #{supplierName}, + income_time = #{incomeTime}, + check_loc = #{checkLoc}, + check_status = #{checkStatus}, + check_man_code = #{checkManCode}, + check_man_name = #{checkManName}, + check_time = #{checkTime}, + check_result = #{checkResult}, + status = #{status}, + attr1 = #{attr1}, + attr2 = #{attr2}, + attr3 = #{attr3}, + attr4 = #{attr4}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + factory_code = #{factoryCode}, + del_flag = #{delFlag}, + check_type = #{checkType}, + noOk_quality = #{noOkQuality}, + sample_quality = #{sampleQuality}, + aNoOkquality = #{aNoOkquality}, + bNoOkquality = #{bNoOkquality}, + cNoOkquality = #{cNoOkquality}, + type_code = #{typeCode}, + order_type = #{orderType}, + + where record_id = #{recordId} + + + + delete from qc_check_task where record_id = #{recordId} + + + + delete from qc_check_task where record_id in + + #{recordId} + + + + + diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskProduceMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskProduceMapper.xml index 926f70b41..28de20adf 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskProduceMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskProduceMapper.xml @@ -179,7 +179,8 @@ qct.confirm_man_name confirmManName from qc_check_task qct left join pro_order_workorder pow on qct.order_no = pow.workorder_code - where check_type = 'checkTypeSCXJ' and qct.del_flag = '0' and pow.del_flag = '0' + where qct.check_type = 'checkTypeSCXJ' and qct.del_flag = '0' + and pow.del_flag = '0' and CONVERT(varchar(10),income_time, 120) = CONVERT(varchar(10),GETDATE(), 120) and pow.status = 'w2' and pow.parent_order = '0' group by qct.factory_code, diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTypeMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTypeMapper.xml index e82284584..0a130ef10 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTypeMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTypeMapper.xml @@ -34,7 +34,7 @@ and attr1 = #{attr1} and del_flag = '0' - order by create_time + order by type_code + + + + and belong_goal_id = #{belongGoalId} + + + and supplier_code = #{supplierCode} + + + and supplier_name like concat('%', #{supplierName}, '%') + + + and attr1 = #{attr1} + + + and attr2 = #{attr2} + + + and attr3 = #{attr3} + + + and attr4 = #{attr4} + + + and factory_code = #{factoryCode} + + + + + + + + insert into qc_goal_distribute + + id, + + belong_goal_id, + + supplier_code, + + supplier_name, + + attr1, + + attr2, + + attr3, + + attr4, + + create_by, + + create_time, + + update_by, + + update_time, + + factory_code, + + del_flag, + + + + #{id}, + + #{belongGoalId}, + + #{supplierCode}, + + #{supplierName}, + + #{attr1}, + + #{attr2}, + + #{attr3}, + + #{attr4}, + + #{createBy}, + + #{createTime}, + + #{updateBy}, + + #{updateTime}, + + #{factoryCode}, + + #{delFlag}, + + + + + + update qc_goal_distribute + + belong_goal_id = + #{belongGoalId}, + + supplier_code = + #{supplierCode}, + + supplier_name = + #{supplierName}, + + attr1 = + #{attr1}, + + attr2 = + #{attr2}, + + attr3 = + #{attr3}, + + attr4 = + #{attr4}, + + create_by = + #{createBy}, + + create_time = + #{createTime}, + + update_by = + #{updateBy}, + + update_time = + #{updateTime}, + + factory_code = + #{factoryCode}, + + del_flag = + #{delFlag}, + + + where id = #{id} + + + + delete from qc_goal_distribute where id = #{id} + + + + delete from qc_goal_distribute where id in + + #{id} + + + + + delete from qc_goal_distribute where belong_goal_id = #{belongGoalId} + + + + + + + + diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcGoalMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcGoalMapper.xml new file mode 100644 index 000000000..ea8481884 --- /dev/null +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcGoalMapper.xml @@ -0,0 +1,261 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + select id, goal_ym, goal_type, noOk_rate, noOk_quality_rate, attr1, attr2, attr3, attr4, create_by, create_time, update_by, update_time, factory_code, del_flag, check_type, type_code, scope, parent_goal from qc_goal + + + + + + + + + + insert into qc_goal + + id, + + goal_ym, + + goal_type, + + noOk_rate, + + noOk_quality_rate, + + create_by, + + create_time, + + update_by, + + update_time, + + factory_code, + + del_flag, + + check_type, + + type_code, + + scope, + + parent_goal, + + + + #{id}, + + #{goalYm}, + + #{goalType}, + + #{nookRate}, + + #{nookQualityRate}, + + #{createBy}, + + #{createTime}, + + #{updateBy}, + + #{updateTime}, + + #{factoryCode}, + + #{delFlag}, + + #{checkType}, + + #{typeCode}, + + #{scope}, + + #{parentGoal}, + + + + + + insert into qc_goal(id,goal_ym,goal_type,noOk_rate,noOk_quality_rate,create_by,create_time, + update_by,update_time,factory_code,check_type,type_code,scope,parent_goal)values + + (#{item.id}, + #{item.goalYm}, + #{item.goalType}, + #{item.nookRate}, + #{item.nookQualityRate}, + #{item.createBy}, + #{item.createTime}, + #{item.updateBy}, + #{item.updateTime}, + #{item.factoryCode}, + #{item.checkType}, + #{item.typeCode}, + #{item.scope}, + #{item.parentGoal}) + + + + + + update qc_goal + + goal_ym = + #{goalYm}, + + goal_type = + #{goalType}, + + noOk_rate = + #{nookRate}, + + noOk_quality_rate = + #{nookQualityRate}, + + create_by = + #{createBy}, + + create_time = + #{createTime}, + + update_by = + #{updateBy}, + + update_time = + #{updateTime}, + + factory_code = + #{factoryCode}, + + del_flag = + #{delFlag}, + + check_type = + #{checkType}, + + type_code = + #{typeCode}, + + scope = + #{scope}, + + parent_goal = + #{parentGoal}, + + + where id = #{id} + + + + + delete from qc_goal where id = #{id} + + + + delete from qc_goal where id in + + #{id} + + + diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcInterfaceMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcInterfaceMapper.xml index 07cf45d12..2b70f44af 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcInterfaceMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcInterfaceMapper.xml @@ -138,6 +138,7 @@ qct.unit, qct.supplier_name supplierName, qct.income_time incomeTime, + qct.check_time checkTime, qct.check_result checkResult, qct.check_man_name checkManName, qc.check_name checkName diff --git a/op-modules/op-sap/src/main/java/com/op/sap/controller/SapController.java b/op-modules/op-sap/src/main/java/com/op/sap/controller/SapController.java index aaf243025..be1d6d100 100644 --- a/op-modules/op-sap/src/main/java/com/op/sap/controller/SapController.java +++ b/op-modules/op-sap/src/main/java/com/op/sap/controller/SapController.java @@ -351,6 +351,8 @@ public class SapController extends BaseController { return sapOrderService.sapRFWOrder(sapRFW); } + + /** * 生产订单关闭接口 * 传母订单号即可 diff --git a/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapOrderServiceImpl.java b/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapOrderServiceImpl.java index 2125c5647..0c4d03a11 100644 --- a/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapOrderServiceImpl.java +++ b/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapOrderServiceImpl.java @@ -99,7 +99,7 @@ public class SapOrderServiceImpl implements SapOrderService { // 获取 内表 - ZMES_PRO JCoTable maraTable = func.getTableParameterList().getTable("ZMES_PRO"); JCoRecordMetaData metaData = maraTable.getRecordMetaData(); - // System.out.println("###" + metaData.toString()); + System.out.println("###" + metaData.toString()); List proOrderList = new ArrayList<>(); // 循环输出 Table 数据 @@ -156,7 +156,7 @@ public class SapOrderServiceImpl implements SapOrderService { return R.ok(proOrderList); } catch (Exception e) { - + log.error(e.getMessage()); return R.fail(e.getMessage()); } } @@ -201,7 +201,6 @@ public class SapOrderServiceImpl implements SapOrderService { LV_ORDER_NUM_List.add(AUFNR); } // 去重并排序(从大到小) - } List uniqueAndSorted = LV_ORDER_NUM_List.stream() .distinct() @@ -229,7 +228,7 @@ public class SapOrderServiceImpl implements SapOrderService { // JCoDestination dest = SAPConnUtils.connect(); log.info("订单关闭入参------"+sapCloseOrderQuery.toString()); JCoRepository repository = dest.getRepository(); - JCoFunction func = repository.getFunction("ZPPR_MES_PRODORD_CLOSE"); + JCoFunction func = repository.getFunction("ZMES_AUFNR_CLOSE"); if (func == null) { throw new RuntimeException("Function does not exist in SAP"); } @@ -269,7 +268,6 @@ public class SapOrderServiceImpl implements SapOrderService { if (func == null) { throw new RuntimeException("Function does not exist in SAP"); } - // 配置传入参数 JCoParameterList jCoParameterList = func.getImportParameterList(); if (StringUtils.isEmpty(sapRFW.getAufnr())){ @@ -278,10 +276,15 @@ public class SapOrderServiceImpl implements SapOrderService { if (StringUtils.isEmpty(sapRFW.getGamng())){ return R.fail("报工数量为空"); } + if (StringUtils.isEmpty(sapRFW.getAnzma())){ + return R.fail("产线编号为空"); + } //订单号 jCoParameterList.setValue("P_AUFNR",sapRFW.getAufnr()); //报工数量 jCoParameterList.setValue("P_GAMNG",sapRFW.getGamng()); + //产线编号 + jCoParameterList.setValue("P_ANZMA",sapRFW.getAnzma()); if (sapRFW.getLt_gs()==null){ return R.fail("生产订单报工工时为空"); } @@ -317,7 +320,7 @@ public class SapOrderServiceImpl implements SapOrderService { System.out.println(func.getExportParameterList()); String RETCODE= func.getExportParameterList().getString("RETCODE"); MESSAGE= func.getExportParameterList().getString("MESSAGE"); - if (Constants.FAIL.equals(RETCODE)){ + if (Constants.FAIL.equals(Integer.parseInt(RETCODE))){ return R.fail("订单号:"+sapRFW.getAufnr()+"报工失败"+MESSAGE); } return R.ok("",MESSAGE);