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 e6df8f1a1..6d21a1167 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 @@ -1,5 +1,7 @@ package com.op.system.api.domain.sap; +import java.util.List; + /** * 报工 */ @@ -7,14 +9,14 @@ public class SapRFW { private String aufnr; private String gamng; private lt_gs lt_gs; - private lt_hw lt_hw; + private List lt_hwList; - public SapRFW.lt_hw getLt_hw() { - return lt_hw; + public List getLt_hwList() { + return lt_hwList; } - public void setLt_hw(SapRFW.lt_hw lt_hw) { - this.lt_hw = lt_hw; + public void setLt_hwList(List lt_hwList) { + this.lt_hwList = lt_hwList; } public SapRFW.lt_gs getLt_gs() { @@ -140,13 +142,5 @@ public class SapRFW { '}'; } } - @Override - public String toString() { - return "{" + - "aufnr:"+aufnr+","+ - "gamng:"+gamng+","+ - "lt_gs:"+lt_gs.toString()+","+ - "lt_hw:"+lt_hw.toString()+","+ - "}"; - } + } diff --git a/op-modules/op-device/src/main/java/com/op/device/controller/DeviceInterfaceController.java b/op-modules/op-device/src/main/java/com/op/device/controller/DeviceInterfaceController.java index 1e4a53c3b..ee308a848 100644 --- a/op-modules/op-device/src/main/java/com/op/device/controller/DeviceInterfaceController.java +++ b/op-modules/op-device/src/main/java/com/op/device/controller/DeviceInterfaceController.java @@ -1,6 +1,7 @@ package com.op.device.controller; import com.op.common.core.web.domain.AjaxResult; +import com.op.device.domain.EquOperationRecord; import com.op.device.service.IDeviceInterfaceService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; @@ -49,4 +50,25 @@ public class DeviceInterfaceController { return deviceInterfaceService.getRepairQuantity(); } + /** + * 设备稳定性-MTBF top10 + * 公式:实际运转时间/停机次数 + * @param equOperationRecord + * @return + */ + @GetMapping("/equipmentStability") + public AjaxResult getEquipmentStabilityList(EquOperationRecord equOperationRecord) { + return deviceInterfaceService.getEquipmentStabilityList(equOperationRecord); + } + + /** + * 完好设备占比 + * 公式:维修/故障设备 + * @param equOperationRecord + * @return + */ + @GetMapping("/equipmentIntactRate") + public AjaxResult getEquipmentIntactRate(EquOperationRecord equOperationRecord) { + return deviceInterfaceService.getEquipmentIntactRate(equOperationRecord); + } } diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/EquCheckItem.java b/op-modules/op-device/src/main/java/com/op/device/domain/EquCheckItem.java index 67a5bbf74..7afc7db7f 100644 --- a/op-modules/op-device/src/main/java/com/op/device/domain/EquCheckItem.java +++ b/op-modules/op-device/src/main/java/com/op/device/domain/EquCheckItem.java @@ -95,6 +95,39 @@ public class EquCheckItem extends BaseEntity { // 更新日期结束 private String updateTimeEnd; + // 检查项工具 + private String itemTools; + + // 循环周期类型 + private String itemLoopType; + + // 循环周期 + private int itemLoop; + + public int getItemLoop() { + return itemLoop; + } + + public void setItemLoop(int itemLoop) { + this.itemLoop = itemLoop; + } + + public String getItemLoopType() { + return itemLoopType; + } + + public void setItemLoopType(String itemLoopType) { + this.itemLoopType = itemLoopType; + } + + public String getItemTools() { + return itemTools; + } + + public void setItemTools(String itemTools) { + this.itemTools = itemTools; + } + private List equCheckItemDetailList; public List getEquCheckItemDetailList() { diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/EquOperationRecord.java b/op-modules/op-device/src/main/java/com/op/device/domain/EquOperationRecord.java index 6c435598f..c8702aa2b 100644 --- a/op-modules/op-device/src/main/java/com/op/device/domain/EquOperationRecord.java +++ b/op-modules/op-device/src/main/java/com/op/device/domain/EquOperationRecord.java @@ -64,6 +64,26 @@ public class EquOperationRecord extends BaseEntity { /** 删除标识 */ private String delFlag; + //MTBF接口字段 + //序号 + private String serialNumber; + //开机时间 + private String onTime; + //故障次数 + private String shutDownNumber; + //mtbf + private String mtbf; + + //IntactRate 完好设备占比字段 + //运行设备 + private String operationEquipment; + //故障设备 + private String faultEquipment; + //总设备 + private String totalEquipment; + //百分比 + private String intactRate; + public void setId(String id) { this.id = id; } @@ -149,6 +169,70 @@ public class EquOperationRecord extends BaseEntity { return delFlag; } + //虚拟字段 序号 + public void setSerialNumber(String serialNumber) { + this.serialNumber = serialNumber; + } + public String getSerialNumber() { + return serialNumber; + } + + //开机时间 + public void setOnTime(String onTime) { + this.onTime = onTime; + } + public String getOnTime() { + return onTime; + } + + //故障次数 + public void setShutDownNumber(String shutDownNumber) { + this.shutDownNumber = shutDownNumber; + } + public String getShutDownNumber() { + return shutDownNumber; + } + + //mtbf + public void setMtbf(String mtbf) { + this.mtbf = mtbf; + } + public String getMtbf() { + return mtbf; + } + + //运行设备 + public void setOperationEquipment(String operationEquipment) { + this.operationEquipment = operationEquipment; + } + public String getOperationEquipment() { + return operationEquipment; + } + + //故障设备 + public void setFaultEquipment(String faultEquipment) { + this.faultEquipment = faultEquipment; + } + public String getFaultEquipment() { + return faultEquipment; + } + + //总设备 + public void setTotalEquipment(String totalEquipment) { + this.totalEquipment = totalEquipment; + } + public String getTotalEquipment() { + return totalEquipment; + } + + //完好率 + public void setIntactRate(String intactRate) { + this.intactRate = intactRate; + } + public String getIntactRate() { + return intactRate; + } + @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/EquOrderDetail.java b/op-modules/op-device/src/main/java/com/op/device/domain/EquOrderDetail.java index 4fb380770..b5358bd8b 100644 --- a/op-modules/op-device/src/main/java/com/op/device/domain/EquOrderDetail.java +++ b/op-modules/op-device/src/main/java/com/op/device/domain/EquOrderDetail.java @@ -72,6 +72,16 @@ public class EquOrderDetail extends BaseEntity { private List standardList; + private String itemTools; + + public String getItemTools() { + return itemTools; + } + + public void setItemTools(String itemTools) { + this.itemTools = itemTools; + } + public List getStandardList() { return standardList; } diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/EquPlanDetail.java b/op-modules/op-device/src/main/java/com/op/device/domain/EquPlanDetail.java index 49b55557f..3dc3daf11 100644 --- a/op-modules/op-device/src/main/java/com/op/device/domain/EquPlanDetail.java +++ b/op-modules/op-device/src/main/java/com/op/device/domain/EquPlanDetail.java @@ -80,6 +80,16 @@ public class EquPlanDetail extends BaseEntity { // 主计划code private String planCode; + private String itemTools; + + public String getItemTools() { + return itemTools; + } + + public void setItemTools(String itemTools) { + this.itemTools = itemTools; + } + public String getPlanCode() { return planCode; } diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/EquPlanStandard.java b/op-modules/op-device/src/main/java/com/op/device/domain/EquPlanStandard.java index 08ccb5339..37d7bbc06 100644 --- a/op-modules/op-device/src/main/java/com/op/device/domain/EquPlanStandard.java +++ b/op-modules/op-device/src/main/java/com/op/device/domain/EquPlanStandard.java @@ -78,6 +78,26 @@ public class EquPlanStandard extends BaseEntity { private Boolean showFlag; + private String itemMethod; + + private String itemTools; + + public String getItemMethod() { + return itemMethod; + } + + public void setItemMethod(String itemMethod) { + this.itemMethod = itemMethod; + } + + public String getItemTools() { + return itemTools; + } + + public void setItemTools(String itemTools) { + this.itemTools = itemTools; + } + public Boolean getShowFlag() { return showFlag; } diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/dto/EquCheckItemDTO.java b/op-modules/op-device/src/main/java/com/op/device/domain/dto/EquCheckItemDTO.java index 8e74f792c..f5c3826ce 100644 --- a/op-modules/op-device/src/main/java/com/op/device/domain/dto/EquCheckItemDTO.java +++ b/op-modules/op-device/src/main/java/com/op/device/domain/dto/EquCheckItemDTO.java @@ -62,6 +62,39 @@ public class EquCheckItemDTO { // 设备编码list private List equipmentCodeList; + // 检查工具 + private String itemTools; + + // 循环周期类型 + private String itemLoopType; + + // 循环周期 + private int itemLoop; + + public String getItemLoopType() { + return itemLoopType; + } + + public void setItemLoopType(String itemLoopType) { + this.itemLoopType = itemLoopType; + } + + public int getItemLoop() { + return itemLoop; + } + + public void setItemLoop(int itemLoop) { + this.itemLoop = itemLoop; + } + + public String getItemTools() { + return itemTools; + } + + public void setItemTools(String itemTools) { + this.itemTools = itemTools; + } + public List getEquipmentCodeList() { return equipmentCodeList; } diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/vo/EquCheckItemVO.java b/op-modules/op-device/src/main/java/com/op/device/domain/vo/EquCheckItemVO.java index 3f10a6d66..3d92c776e 100644 --- a/op-modules/op-device/src/main/java/com/op/device/domain/vo/EquCheckItemVO.java +++ b/op-modules/op-device/src/main/java/com/op/device/domain/vo/EquCheckItemVO.java @@ -46,6 +46,39 @@ public class EquCheckItemVO { // 设备编码 private String equipmentCode; + // 检查工具 + private String itemTools; + + // 循环周期类型 + private String itemLoopType; + + // 循环周期 + private int itemLoop; + + public String getItemLoopType() { + return itemLoopType; + } + + public void setItemLoopType(String itemLoopType) { + this.itemLoopType = itemLoopType; + } + + public int getItemLoop() { + return itemLoop; + } + + public void setItemLoop(int itemLoop) { + this.itemLoop = itemLoop; + } + + public String getItemTools() { + return itemTools; + } + + public void setItemTools(String itemTools) { + this.itemTools = itemTools; + } + public String getEquipmentName() { return equipmentName; } diff --git a/op-modules/op-device/src/main/java/com/op/device/mapper/EquEquipmentMapper.java b/op-modules/op-device/src/main/java/com/op/device/mapper/EquEquipmentMapper.java index 9165576eb..d293d8dbe 100644 --- a/op-modules/op-device/src/main/java/com/op/device/mapper/EquEquipmentMapper.java +++ b/op-modules/op-device/src/main/java/com/op/device/mapper/EquEquipmentMapper.java @@ -62,5 +62,4 @@ public interface EquEquipmentMapper { //查询设备类型 List getEquipmentTypeList(EquEquipment equEquipment); - } \ No newline at end of file diff --git a/op-modules/op-device/src/main/java/com/op/device/mapper/EquOperationRecordMapper.java b/op-modules/op-device/src/main/java/com/op/device/mapper/EquOperationRecordMapper.java index c26347bf8..3a356f441 100644 --- a/op-modules/op-device/src/main/java/com/op/device/mapper/EquOperationRecordMapper.java +++ b/op-modules/op-device/src/main/java/com/op/device/mapper/EquOperationRecordMapper.java @@ -65,4 +65,10 @@ public interface EquOperationRecordMapper { * @return */ List selectEquOperationRecordByEquipmentCode(String equipmentCode); + + //设备稳定性 MTBF设备平均故障间隔 + List getMTBFList(EquOperationRecord equOperationRecord); + + //设备完好率 + EquOperationRecord getEquipmentIntactRate(EquOperationRecord equOperationRecord); } diff --git a/op-modules/op-device/src/main/java/com/op/device/service/IDeviceInterfaceService.java b/op-modules/op-device/src/main/java/com/op/device/service/IDeviceInterfaceService.java index da05dd4fb..466671e22 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/IDeviceInterfaceService.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/IDeviceInterfaceService.java @@ -1,6 +1,7 @@ package com.op.device.service; import com.op.common.core.web.domain.AjaxResult; +import com.op.device.domain.EquOperationRecord; /** * 设备看板接口 @@ -24,4 +25,18 @@ public interface IDeviceInterfaceService { * @return */ AjaxResult getRepairQuantity(); + + /** + * 设备稳定性MTBF 实际运转时间/停止次数 + * @return + */ + AjaxResult getEquipmentStabilityList(EquOperationRecord equOperationRecord); + + /** + * 完好设备占比 + * 公式:维修/故障设备 + * @param equOperationRecord + * @return + */ + AjaxResult getEquipmentIntactRate(EquOperationRecord equOperationRecord); } 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 0a7cb9ebc..a58cb1377 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 @@ -5,6 +5,7 @@ import com.op.common.core.web.domain.AjaxResult; import com.op.device.domain.EquOperationRecord; import com.op.device.domain.EquRepairWorkOrder; import com.op.device.domain.MesReportWork; +import com.op.device.mapper.EquEquipmentMapper; import com.op.device.domain.vo.IEquipmentVO; import com.op.device.domain.vo.IRepairWorkOrderVO; import com.op.device.mapper.DeviceInterfaceMapper; @@ -87,11 +88,11 @@ public class DeviceInterfaceServiceImpl implements IDeviceInterfaceService { long diffTime = operationRecord.getEndTime().getTime() - operationRecord.getStartTime().getTime(); // 开机运行时间运行总时间累加 if (operationRecord.getType().equals("on")) { - totalTime+=diffTime; + totalTime += diffTime; } // 维修停机时间累加(故障) if (operationRecord.getMaintenanceType().equals("repair")) { - downTime+=diffTime; + downTime += diffTime; } } @@ -99,7 +100,7 @@ public class DeviceInterfaceServiceImpl implements IDeviceInterfaceService { if (downTime == 0L) { // 如果未查到该设备停机故障时间 equipmentVO.setFailureRate(0D); - }else { + } else { // 计算故障停机率(设备停机时间总和/一定时间内运行总时间(年)) double failureRate = downTime / totalTime; equipmentVO.setFailureRate(failureRate); @@ -118,7 +119,7 @@ public class DeviceInterfaceServiceImpl implements IDeviceInterfaceService { BigDecimal utilizationRatio = actualQuantity.divide(theoryQuantity, 2, BigDecimal.ROUND_HALF_UP); equipmentVO.setUtilizationRatio(utilizationRatio.doubleValue()); - }else { + } else { // 如果未查到该信息,则默认设置为0 equipmentVO.setUtilizationRatio(0D); } @@ -130,6 +131,7 @@ public class DeviceInterfaceServiceImpl implements IDeviceInterfaceService { /** * 获取设备维修质量TOP10 * 设备维修质量:故障时间/故障次数 + * * @return */ @Override @@ -153,7 +155,7 @@ public class DeviceInterfaceServiceImpl implements IDeviceInterfaceService { // 计算维修质量(故障时间(小时)/故障次数) long rapairQuantity = runTime / 3600000 / workOrderList.size(); equipmentVO.setRapairQuantity(Double.valueOf(rapairQuantity)); - }else { + } else { // 没有该记录则默认为0 equipmentVO.setRapairQuantity(0D); } @@ -179,4 +181,29 @@ public class DeviceInterfaceServiceImpl implements IDeviceInterfaceService { return success(top10); } + + /** + * 设备稳定性-MTBF top10 + * 公式:实际运转时间/停机次数 + */ + @Override + @DS("#header.poolName") + public AjaxResult getEquipmentStabilityList(EquOperationRecord equOperationRecord) { + //查询所有设备(设备停用的除外) + List equipmentList = equOperationRecordMapper.getMTBFList(equOperationRecord); + return success(equipmentList); + } + + + /** + * 完好设备占比 + * 公式:维修/故障设备 + */ + @Override + @DS("#header.poolName") + public AjaxResult getEquipmentIntactRate(EquOperationRecord equOperationRecord) { + //查询所有设备(设备停用的除外) + EquOperationRecord equipmentIntactRate = equOperationRecordMapper.getEquipmentIntactRate(equOperationRecord); + return success(equipmentIntactRate); + } } diff --git a/op-modules/op-device/src/main/resources/mapper/device/EquCheckItemMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/EquCheckItemMapper.xml index 281ab3f95..15da54108 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/EquCheckItemMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/EquCheckItemMapper.xml @@ -21,10 +21,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + - select item_id, item_code, item_name, item_method, item_type, item_type_name, item_remark, factory_code, attr1, attr2, attr3, del_flag, create_time, create_by, update_time, update_by from equ_check_item + select item_id, item_code, item_name, item_method, item_type, item_type_name, item_remark, factory_code, attr1, attr2, attr3, del_flag, create_time, create_by, update_time, update_by ,item_tools ,item_loop,item_loop_type from equ_check_item + select + row_number() over (ORDER BY sum(CASE WHEN eor.type = 'on' THEN cast(datediff(minute, eor.start_time,eor.end_time)*1.0/60 as decimal(10,2)) ELSE null END )/sum(CASE WHEN type = 'off' THEN 1 ELSE 0 END) DESC) AS serialNumber, + eor.equipment_code AS equipmentCode, + sum(CASE WHEN eor.type = 'on' THEN cast(datediff(minute, eor.start_time,eor.end_time)*1.0/60 as decimal(10,2)) ELSE null END ) AS onTime, + sum(CASE WHEN eor.type = 'off' THEN 1 ELSE 0 END) AS shutDownNumber, + cast(sum(CASE WHEN eor.type = 'on' THEN datediff(minute, eor.start_time,eor.end_time)*1.0/60 ELSE null END )/sum(CASE WHEN type = 'off' THEN 1 ELSE 0 END)as decimal(10,2)) as mtbf + from equ_operation_record eor + left join base_equipment be on eor.equipment_code = be.equipment_code + where be.status = '1' + and be.del_flag = '0' + and eor.start_time is not null + and eor.end_time is not null + GROUP BY eor.equipment_code + ORDER BY onTime desc + + + + + \ No newline at end of file diff --git a/op-modules/op-device/src/main/resources/mapper/device/EquOrderDetailMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/EquOrderDetailMapper.xml index b1e0b8988..ea050820f 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/EquOrderDetailMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/EquOrderDetailMapper.xml @@ -23,12 +23,13 @@ + select id, code, order_code, parent_code, item_code, item_name, item_method, item_type, item_type_name, factory_code, attr1, attr2, attr3, del_flag, - create_by, create_time, update_by, update_time + create_by, create_time, update_by, update_time,item_tools from equ_order_detail @@ -47,6 +48,7 @@ and attr1 = #{attr1} and attr2 = #{attr2} and attr3 = #{attr3} + and item_tools = #{itemTools} and del_flag = '0' @@ -87,6 +89,7 @@ create_time, update_by, update_time, + item_tools, #{id}, @@ -107,6 +110,7 @@ #{createTime}, #{updateBy}, #{updateTime}, + #{itemTools}, @@ -115,7 +119,7 @@ id, order_code, item_code, item_name, item_method, item_type, item_type_name, factory_code, del_flag, - create_by, create_time + create_by, create_time,item_tools ) VALUES @@ -123,7 +127,7 @@ #{item.id},#{item.parentCode}, #{item.itemCode},#{item.itemName},#{item.itemMethod}, #{item.itemType},#{item.itemTypeName},#{item.factoryCode},#{item.delFlag}, - #{item.createBy},#{item.createTime} + #{item.createBy},#{item.createTime},#{itemTools} ) @@ -141,6 +145,7 @@ item_type = #{itemType}, item_type_name = #{itemTypeName}, factory_code = #{factoryCode}, + item_tools = #{itemTools}, attr1 = #{attr1}, attr2 = #{attr2}, attr3 = #{attr3}, diff --git a/op-modules/op-device/src/main/resources/mapper/device/EquPlanDetailMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/EquPlanDetailMapper.xml index 0caa0b000..0e55988c4 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/EquPlanDetailMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/EquPlanDetailMapper.xml @@ -25,12 +25,13 @@ + select id, code, plan_id,plan_code, parent_code, item_code, item_name, item_method, item_type, item_type_name, item_remark, factory_code, attr1, attr2, attr3, del_flag, - create_by, create_time, update_by, update_time + create_by, create_time, update_by, update_time,item_tools from equ_plan_detail @@ -51,6 +52,7 @@ and attr1 = #{attr1} and attr2 = #{attr2} and attr3 = #{attr3} + and item_tools = #{itemTools} and del_flag = '0' ORDER BY item_name @@ -94,6 +96,7 @@ create_time, update_by, update_time, + item_tools, #{id}, @@ -116,6 +119,7 @@ #{createTime}, #{updateBy}, #{updateTime}, + #{itemTools}, @@ -141,6 +145,7 @@ create_time = #{createTime}, update_by = #{updateBy}, update_time = #{updateTime}, + item_tools = #{itemTools}, where id = #{id} and del_flag = '0' diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/IWCInterfaceServiceImpl.java b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/IWCInterfaceServiceImpl.java index 3d53dbd14..72c6fa18a 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/IWCInterfaceServiceImpl.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/IWCInterfaceServiceImpl.java @@ -304,10 +304,12 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService { ltgs.setConf_activity5(work.getSac5());//折旧 ltgs.setConf_activity6(work.getSac6()); sapRFW.setLt_gs(ltgs); + List lt_hwList =new ArrayList<>(); SapRFW.lt_hw lthw = sapRFW.new lt_hw();//MES生产订单报工货物移动修改 lthw.setEntry_qnt(work.getQuantityFeedback().toString());//TODO; lthw.setMaterial(work.getProcessCode()); - sapRFW.setLt_hw(lthw); + lt_hwList.add(lthw); + sapRFW.setLt_hwList(lt_hwList); //添加调用sap日志 SysSapLog sysSapLog = new SysSapLog(); sysSapLog.setId(IdUtils.fastSimpleUUID()); diff --git a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java index 788fcaa81..cf5d03ba0 100644 --- a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java +++ b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java @@ -244,7 +244,6 @@ public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService { mesPrepare.setStatus("L0");//待确认 proOrderWorkorderMapper.createPrepare(mesPrepare); //备(领)料明细 - List details = new ArrayList<>(); MesPrepareDetailDTO detail = new MesPrepareDetailDTO(); detail.setCreateTime(DateUtils.getNowDate()); 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 393bb74ee..77640f012 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 @@ -176,7 +176,7 @@ public class SapController extends BaseController { calendar.setTime(maxTime0); calendar.add(Calendar.DAY_OF_YEAR, 1); Date maxTime = calendar.getTime(); - qo.setAedat(DateFormatUtils.format(maxTime, "yyyyMMdd"));//修改日期20230923 + // qo.setAedat(DateFormatUtils.format(maxTime, "yyyyMMdd"));//修改日期20230923 } qo.setWerks(dateSource.get("poolName").replace("ds_", ""));//工厂 @@ -202,6 +202,19 @@ public class SapController extends BaseController { return sapMaterialPreparationService.MaterialPreparation(shopOrder); } + + /** + * 反冲物料领料过账接口 + * ***与包材领料分开过账 + * @param sapBackflushMPQueryList + * @return + */ + @PostMapping("/sapBackflushMP") + @Log(title = "", businessType = BusinessType.SAP) + public R sapBackflushMP(@RequestBody List sapBackflushMPQueryList){ + return sapItemSyncService.sapBackflushMP(sapBackflushMPQueryList); + } + @PostMapping("/sapMaterialPosting") @Log(title = "订单物料领料过账、原材料补料、订单物料退料过账接口(MB1A)", businessType = BusinessType.SAP) public R sapMaterialPosting(@RequestBody SapMaterialPosting sapMaterialPosting){ @@ -223,13 +236,14 @@ public class SapController extends BaseController { /** * 生产订单关闭接口 - * @param shopOrder + * 传母订单号即可 + * @param sapCloseOrderQuery * @return */ @PostMapping("/sapCloseOrder") @Log(title = "生产订单关闭接口", businessType = BusinessType.SAP) - public R sapCloseOrder(@RequestParam("shopOrder") String shopOrder){ - return sapOrderService.sapCloseOrder(shopOrder); + public R sapCloseOrder(@RequestBody SapCloseOrderQuery sapCloseOrderQuery){ + return sapOrderService.sapCloseOrder(sapCloseOrderQuery); } /** diff --git a/op-modules/op-sap/src/main/java/com/op/sap/domain/vo/SapBackflushMPQuery.java b/op-modules/op-sap/src/main/java/com/op/sap/domain/vo/SapBackflushMPQuery.java new file mode 100644 index 000000000..7cc1e30b8 --- /dev/null +++ b/op-modules/op-sap/src/main/java/com/op/sap/domain/vo/SapBackflushMPQuery.java @@ -0,0 +1,117 @@ +package com.op.sap.domain.vo; + +/** + * 反冲类型的领料过账接口 + * auth YangWL + * + * MATNR CHAR 18 0 物料号 必填 + * PLANT CHAR 4 0 工厂 必填 + * GR_RCPT CHAR 12 0 收货方/运达方 选填 + * LGORT CHAR 4 0 库存地点 必填 + * UMLGO CHAR 4 0 收货/发货库存地点 选填 + * QUANTITY QUAN 13 3 数量 必填 + * MEINS UNIT 3 0 条目单位 必填 + * BATCH CHAR 10 0 批号 必填 + * MOVE_BATCH CHAR 10 0 收货/发货批量 选填 + */ + + +public class SapBackflushMPQuery { + + private String matnr; + private String plant; + private String gr_rcpt; + private String lgort; + private String umlgo; + private String quantity; + private String meins; + private String batch; + private String move_batch; + + public String getMatnr() { + return matnr; + } + + public void setMatnr(String matnr) { + this.matnr = matnr; + } + + public String getPlant() { + return plant; + } + + public void setPlant(String plant) { + this.plant = plant; + } + + public String getGr_rcpt() { + return gr_rcpt; + } + + public void setGr_rcpt(String gr_rcpt) { + this.gr_rcpt = gr_rcpt; + } + + public String getLgort() { + return lgort; + } + + public void setLgort(String lgort) { + this.lgort = lgort; + } + + public String getUmlgo() { + return umlgo; + } + + public void setUmlgo(String umlgo) { + this.umlgo = umlgo; + } + + public String getQuantity() { + return quantity; + } + + public void setQuantity(String quantity) { + this.quantity = quantity; + } + + public String getMeins() { + return meins; + } + + public void setMeins(String meins) { + this.meins = meins; + } + + public String getBatch() { + return batch; + } + + public void setBatch(String batch) { + this.batch = batch; + } + + public String getMove_batch() { + return move_batch; + } + + public void setMove_batch(String move_batch) { + this.move_batch = move_batch; + } + + @Override + public String toString() { + return "SapBackflushMPQuery{" + + "matnr='" + matnr + '\'' + + ", plant='" + plant + '\'' + + ", gr_rcpt='" + gr_rcpt + '\'' + + ", lgort='" + lgort + '\'' + + ", umlgo='" + umlgo + '\'' + + ", quantity='" + quantity + '\'' + + ", meins='" + meins + '\'' + + ", batch='" + batch + '\'' + + ", move_batch='" + move_batch + '\'' + + '}'; + } +} diff --git a/op-modules/op-sap/src/main/java/com/op/sap/domain/vo/SapCloseOrderQuery.java b/op-modules/op-sap/src/main/java/com/op/sap/domain/vo/SapCloseOrderQuery.java new file mode 100644 index 000000000..effeb1182 --- /dev/null +++ b/op-modules/op-sap/src/main/java/com/op/sap/domain/vo/SapCloseOrderQuery.java @@ -0,0 +1,23 @@ +package com.op.sap.domain.vo; + + +public class SapCloseOrderQuery { + private String leadOrder; + private String order; + + public String getLeadOrder() { + return leadOrder; + } + + public void setLeadOrder(String leadOrder) { + this.leadOrder = leadOrder; + } + + public String getOrder() { + return order; + } + + public void setOrder(String order) { + this.order = order; + } +} diff --git a/op-modules/op-sap/src/main/java/com/op/sap/service/SapItemSyncService.java b/op-modules/op-sap/src/main/java/com/op/sap/service/SapItemSyncService.java index 5f7975d60..2e3152bb8 100644 --- a/op-modules/op-sap/src/main/java/com/op/sap/service/SapItemSyncService.java +++ b/op-modules/op-sap/src/main/java/com/op/sap/service/SapItemSyncService.java @@ -1,6 +1,7 @@ package com.op.sap.service; import com.op.common.core.domain.R; +import com.op.sap.domain.vo.SapBackflushMPQuery; import com.op.sap.domain.vo.SapItemQuery; import com.op.sap.domain.vo.SapMaterialPosting; import com.op.system.api.domain.sap.SapBaseProduct; @@ -25,4 +26,6 @@ public interface SapItemSyncService { */ R sapMaterialPosting(SapMaterialPosting sapMaterialPosting); + + R sapBackflushMP(List sapBackflushMPQueryList); } diff --git a/op-modules/op-sap/src/main/java/com/op/sap/service/SapOrderService.java b/op-modules/op-sap/src/main/java/com/op/sap/service/SapOrderService.java index fe4273ae7..8e061ada8 100644 --- a/op-modules/op-sap/src/main/java/com/op/sap/service/SapOrderService.java +++ b/op-modules/op-sap/src/main/java/com/op/sap/service/SapOrderService.java @@ -2,6 +2,7 @@ package com.op.sap.service; import com.op.common.core.domain.R; +import com.op.sap.domain.vo.SapCloseOrderQuery; import com.op.sap.domain.vo.SapPurchaseOrderQuery; import com.op.system.api.domain.sap.SapCreateOrder; import com.op.system.api.domain.sap.SapRFW; @@ -32,11 +33,11 @@ public interface SapOrderService { /** * 订单关闭 - * @param shopOrder + * @param sapCloseOrderQuery * @return */ - R sapCloseOrder(String shopOrder); + R sapCloseOrder(SapCloseOrderQuery sapCloseOrderQuery); /** * 订单报工 diff --git a/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapItemSyncImpl.java b/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapItemSyncImpl.java index a0c067332..812d87a03 100644 --- a/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapItemSyncImpl.java +++ b/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapItemSyncImpl.java @@ -8,6 +8,7 @@ import com.op.common.core.utils.DateUtils; import com.op.common.core.utils.StringUtils; import com.op.common.core.utils.bean.BeanValidators; import com.op.common.security.utils.SecurityUtils; +import com.op.sap.domain.vo.SapBackflushMPQuery; import com.op.sap.domain.vo.SapItemQuery; import com.op.sap.domain.vo.SapMaterialPosting; import com.op.sap.mapper.SapBaseProductMapper; @@ -98,13 +99,6 @@ public class SapItemSyncImpl implements SapItemSyncService { S_LAEDA.setValue("HIGH", END_DATE); } - - - - - - - // 获取调用 RFC 函数对象 func.execute(dest); // 获取 内表 - ZMES_PRO @@ -297,6 +291,68 @@ public class SapItemSyncImpl implements SapItemSyncService { } } + /** + * 反冲物料领料过账 + * @param sapBackflushMPQueryList + * @return + */ + + @Override + public R sapBackflushMP(List sapBackflushMPQueryList) { + try { + JCoRepository repository = dest.getRepository(); + JCoFunction func = repository.getFunction("ZPPR_MES_GOODSMVT_CREATE_B"); + if (func == null) { + throw new RuntimeException("Function does not exist in SAP"); + } + JCoTable L_ITEM = func.getTableParameterList().getTable("L_ITEM"); + + System.out.println(L_ITEM); + +// +// int successNum = 0; +// int failureNum = 0; +// StringBuilder successMsg = new StringBuilder(); +// StringBuilder failureMsg = new StringBuilder(); +// log.info("反冲物料开始过账----------------------------------------"); + +// for (int i = 0; i < sapBackflushMPQueryList.size(); i++) { +// L_ITEM.setRow(i); +// L_ITEM.appendRow(); +// L_ITEM.setValue("MATNR",sfp.getMatnr()); +// } + for (SapBackflushMPQuery sfp:sapBackflushMPQueryList){ +// if (StringUtils.isEmpty(sfp.getMatnr())){ +// return R.fail("物料号为空!"); +// } +// if (StringUtils.isEmpty(sfp.getPlant())){ +// +// } + L_ITEM.appendRow(); + L_ITEM.setValue("MATNR",sfp.getMatnr()); + L_ITEM.setValue("PLANT",sfp.getPlant()); + L_ITEM.setValue("GR_RCPT",sfp.getGr_rcpt()); + L_ITEM.setValue("LGORT",sfp.getLgort()); + L_ITEM.setValue("UMLGO",sfp.getUmlgo()); + L_ITEM.setValue("QUANTITY",sfp.getQuantity()); + L_ITEM.setValue("MEINS",sfp.getMeins()); + L_ITEM.setValue("BATCH",sfp.getBatch()); + L_ITEM.setValue("MOVE_BATCH",sfp.getMove_batch()); + + } + return R.ok(); + + }catch (Exception e){ + return R.fail(e.getMessage()); + } + + } + + public static void main(String[] args) { + SapBackflushMPQuery sapBackflushMPQuery=new SapBackflushMPQuery(); + System.out.println(sapBackflushMPQuery.toString()); + } + public String importProducts(List sapBaseProductList){ if (StringUtils.isNull(sapBaseProductList) || sapBaseProductList.size() == 0) { 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 96667412e..adc7b5bfc 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 @@ -6,6 +6,7 @@ import com.op.common.core.utils.DateUtils; import com.op.common.core.utils.StringUtils; import com.op.common.core.utils.uuid.IdUtils; +import com.op.sap.domain.vo.SapCloseOrderQuery; import com.op.sap.domain.vo.SapPurchaseOrderQuery; import com.op.sap.service.SapOrderService; @@ -202,8 +203,9 @@ public class SapOrderServiceImpl implements SapOrderService { } @Override - public R sapCloseOrder(String shopOrder) { - String L_MSG=null; + public R sapCloseOrder(SapCloseOrderQuery sapCloseOrderQuery) { + + StringBuilder Msg = new StringBuilder(); try { //获取连接 // JCoDestination dest = SAPConnUtils.connect(); @@ -215,19 +217,26 @@ public class SapOrderServiceImpl implements SapOrderService { // 配置传入参数 JCoParameterList jCoParameterList = func.getImportParameterList(); - if (StringUtils.isEmpty(shopOrder)){ - return R.fail("订单号为空"); + if (StringUtils.isEmpty(sapCloseOrderQuery.getLeadOrder())){ + return R.fail("母订单号为空"); } - jCoParameterList.setValue("P_AUFNR",shopOrder); + if (StringUtils.isEmpty(sapCloseOrderQuery.getOrder())){ + return R.fail("子订单号为空"); + } + //关闭母订单 + jCoParameterList.setValue("P_AUFNR",sapCloseOrderQuery.getLeadOrder()); func.execute(dest);//执行调用函数 - JCoParameterList J= func.getExportParameterList(); - System.out.println(J); - L_MSG= func.getExportParameterList().getString("L_MSG"); - if (StringUtils.isEmpty(L_MSG)){ - return R.fail("订单关闭失败"); - } - return R.ok(L_MSG); +// JCoParameterList J= func.getExportParameterList(); +// System.out.println(J); + String L_MSG1= func.getExportParameterList().getString("L_MSG"); + Msg.append(sapCloseOrderQuery.getLeadOrder()+L_MSG1+";"); + //关闭子订单 + jCoParameterList.setValue("P_AUFNR",sapCloseOrderQuery.getOrder()); + func.execute(dest);//执行调用函数 + String L_MSG2= func.getExportParameterList().getString("L_MSG"); + Msg.append(sapCloseOrderQuery.getOrder()+L_MSG2); + return R.ok(null,Msg.toString()); }catch (Exception e){ return R.fail(e.getMessage()); } @@ -260,7 +269,7 @@ public class SapOrderServiceImpl implements SapOrderService { if (sapRFW.getLt_gs()==null){ return R.fail("生产订单报工工时为空"); } - if (sapRFW.getLt_hw()==null){ + if (sapRFW.getLt_hwList()==null){ return R.fail("生产订单报工货物移动为空"); } /** @@ -280,9 +289,12 @@ public class SapOrderServiceImpl implements SapOrderService { */ JCoTable LT_HW_jCoTable = func.getTableParameterList().getTable("LT_HW"); System.out.println("LT_HW_jCoTable"+LT_HW_jCoTable); - LT_HW_jCoTable.appendRow(); - LT_HW_jCoTable.setValue("MATERIAL", sapRFW.getLt_hw().getMaterial()); - LT_HW_jCoTable.setValue("ENTRY_QNT", sapRFW.getLt_hw().getEntry_qnt()); + for (SapRFW.lt_hw lt_hw:sapRFW.getLt_hwList()){ + LT_HW_jCoTable.appendRow(); + LT_HW_jCoTable.setValue("MATERIAL", lt_hw.getMaterial()); + LT_HW_jCoTable.setValue("ENTRY_QNT", lt_hw.getEntry_qnt()); + } + func.execute(dest);//执行调用函数 JCoParameterList J= func.getExportParameterList(); @@ -364,7 +376,7 @@ public class SapOrderServiceImpl implements SapOrderService { JCoFunction func = repository.getFunction("ZPPR_MES_PRODORD_CHANGE"); // 配置传入参数 JCoParameterList jCoParameterList = func.getImportParameterList(); - System.out.println(jCoParameterList); + //System.out.println(jCoParameterList); if (func == null) { throw new RuntimeException("Function does not exist in SAP"); } @@ -381,10 +393,13 @@ public class SapOrderServiceImpl implements SapOrderService { jCoParameterList.setValue("P_QUANTITY",sapProOrder.getQuantity()); func.execute(dest);//执行调用函数 JCoParameterList J= func.getExportParameterList(); - System.out.println(J); + String RETCODE= func.getExportParameterList().getString("RETCODE"); String MESSAGE= func.getExportParameterList().getString("MESSAGE"); - System.out.println(MESSAGE); - return R.ok(MESSAGE); + if ((Constants.FAIL).equals(Integer.parseInt(RETCODE))){ + return R.fail(null,"订单号:"+sapProOrder.getAufnr()+MESSAGE); + }else { + return R.ok(null,"订单号:"+sapProOrder.getAufnr()+MESSAGE); + } }catch (Exception e){ return R.fail(e.getMessage()); } diff --git a/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapRouterServiceImpl.java b/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapRouterServiceImpl.java index 494e865fc..bd78ae0b4 100644 --- a/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapRouterServiceImpl.java +++ b/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapRouterServiceImpl.java @@ -176,8 +176,8 @@ public class SapRouterServiceImpl implements SapRouterService { "删除标识:" + LOEKZ+ "物料号:" + MATNR+ "物料描述:" + MAKTX+ - "任务清单使用"+VERWE+ - "状态"+STATU+ + "任务清单使用:"+VERWE+ + "状态:"+STATU+ "任务清单描述:" + KTEXT+ " 操作/活动编号:" + VORNR+ "控制码:" + STEUS+ @@ -190,16 +190,14 @@ public class SapRouterServiceImpl implements SapRouterService { "工作中心:" + ARBPL+ "基本数量:" + BMSCH+ "工序计量单位:" + MEINH+ - "标准值01:" + VGW01+ - "计量单位01:" + VGE01+ - "标准值02:" + VGE02+ - "计量单位02:" + VGE02+ - "标准值03:" + VGE03+ - "计量单位03:" + VGE03+ - " 标准值04:" + VGE04+ - " 计量单位04:" + VGE04); - - + "标准值01(机器):" + VGW01+ + "计量单位01:" + VGE01+ + "标准值02(人工):" + VGW02+ + "计量单位02:" + VGE02+ + "标准值03(折旧):" + VGW03+ + "计量单位03:" + VGE03+ + "标准值04(其它):" + VGW04+ + " 计量单位04:" + VGE04); //工艺路线下的工序 if (StringUtil.isBlank(PLNNR)) { throw new ServiceException("任务清单组码不能为空"); @@ -239,6 +237,18 @@ public class SapRouterServiceImpl implements SapRouterService { sapProRoute.setAttr1("job");//说明是来自定时任务 sapProRoute.setCreateTime(DateUtils.dateTime("yyyy-MM-dd", ANDAT)); sapProRoute.setRouteVersion("1.0"); + //机器 + sapProRoute.setTecMachine(VGW01); + sapProRoute.setTecMachineUnit(VGE01); + //人工 + sapProRoute.setTecMan(VGW02); + sapProRoute.setTecManUnit(VGE02); + //折旧 + sapProRoute.setTecDepreciation(VGW03); + sapProRoute.setTecDepreciationUnit(VGE03); + //其它 + sapProRoute.setTecOther(VGW04); + sapProRoute.setTecOtherUnit(VGE04); sapProRouteMapper.insertProRoute(sapProRoute); //增加工艺路线和工序的关系 @@ -265,58 +275,79 @@ public class SapRouterServiceImpl implements SapRouterService { successNum++; } } + //更新工艺路线 + else { + sapProRoute.setRouteName(KTEXT); + sapProRoute.setRouteDesc(KTEXT); + sapProRoute.setEnableFlag("Y"); - else{ - //验证是否存在工序 - sapProProcess.setProcessName(LTXA1); - SapProProcess operation = sapProProcessMapper.selectProProcessByProcessName(sapProProcess); - //验证原材料是否存在 - SapBaseProduct sapBaseProduct=new SapBaseProduct(); - sapBaseProduct.setProductCode(MATNR); - sapBaseProduct = sapBaseProductMapper.selectBaseProductByProductCode(sapBaseProduct); - if (StringUtils.isNull(operation)){ - failureNum++; - failureMsg.append(failureNum+"、工艺路线【" + PLNNR + "】下的工序【" + LTXA1 + "】不存在!"); - } - else if (StringUtils.isNull(sapBaseProduct)){ - failureNum++; - failureMsg.append(failureNum+"、工艺路线【" + PLNNR + "】下的物料【" + MATNR + "】不存在!"); - } - else if(!StringUtils.isNull(operation) && !StringUtils.isNull(sapBaseProduct)) { - //验证是否存在工艺路线和工序的关系 - SapProRouteProcess sapProRouteProcess = new SapProRouteProcess(); - sapProRouteProcess.setRouteId(sapProRoute.getRouteId()); - sapProRouteProcess.setProcessId(operation.getProcessId()); - List sapProRouteProcessList = sapProRouteProcessMapper.selectProRouteProcessList(sapProRouteProcess); - if (sapProRouteProcessList .size()==0) { - //增加工艺路线和工序的关系 - sapProRouteProcess.setRecordId(IdUtils.fastSimpleUUID()); - sapProRouteProcess.setRouteId(sapProRoute.getRouteId()); - sapProRouteProcess.setProcessId(operation.getProcessId()); - sapProRouteProcess.setProcessCode(operation.getProcessCode()); - sapProRouteProcess.setProcessName(operation.getProcessName()); - sapProRouteProcess.setOrderNum(1); - sapProRouteProcess.setCreateTime(DateUtils.dateTime("yyyy-MM-dd", ANDAT)); - sapProRouteProcess.setCreateBy(ANNAM); - sapProRouteProcessMapper.insertProRouteProcess(sapProRouteProcess); - } - //验证是否存在工艺路线和物料的关系 - SapProRouteProduct sapProRouteProduct = new SapProRouteProduct(); - sapProRouteProduct.setRouteId(sapProRoute.getRouteId()); - sapProRouteProduct.setItemCode(MATNR); - List sapProRouteProductList = sapProRouteProductMapper.selectProRouteProductList(sapProRouteProduct); - if (sapProRouteProductList .size()==0) { - sapProRouteProduct.setRecordId(IdUtils.fastSimpleUUID()); - sapProRouteProduct.setRouteId(sapProRoute.getRouteId()); - sapProRouteProduct.setItemId(sapBaseProduct.getProductId()); - sapProRouteProduct.setItemCode(MATNR); - sapProRouteProduct.setItemName(sapBaseProduct.getProductDescZh()); - sapProRouteProduct.setCreateBy(ANNAM); - sapProRouteProduct.setCreateTime(DateUtils.dateTime("yyyy-MM-dd", ANDAT)); - sapProRouteProductMapper.insertProRouteProduct(sapProRouteProduct); - } - } + //机器 + sapProRoute.setTecMachine(VGW01); + sapProRoute.setTecMachineUnit(VGE01); + //人工 + sapProRoute.setTecMan(VGW02); + sapProRoute.setTecManUnit(VGE02); + //折旧 + sapProRoute.setTecDepreciation(VGW03); + sapProRoute.setTecDepreciationUnit(VGE03); + //其它 + sapProRoute.setTecOther(VGW04); + sapProRoute.setTecOtherUnit(VGE04); + sapProRoute.setUpdateBy(ANNAM); + sapProRoute.setUpdateTime(DateUtils.getNowDate()); + sapProRouteMapper.updateProRoute(sapProRoute); } +// else{ +// //验证是否存在工序 +// sapProProcess.setProcessName(LTXA1); +// SapProProcess operation = sapProProcessMapper.selectProProcessByProcessName(sapProProcess); +// //验证产品是否存在 +// SapBaseProduct sapBaseProduct=new SapBaseProduct(); +// sapBaseProduct.setProductCode(MATNR); +// sapBaseProduct = sapBaseProductMapper.selectBaseProductByProductCode(sapBaseProduct); +// if (StringUtils.isNull(operation)){ +// failureNum++; +// failureMsg.append(failureNum+"、工艺路线【" + PLNNR + "】下的工序【" + LTXA1 + "】不存在!"); +// } +// else if (StringUtils.isNull(sapBaseProduct)){ +// failureNum++; +// failureMsg.append(failureNum+"、工艺路线【" + PLNNR + "】下的物料【" + MATNR + "】不存在!"); +// } +// else if(!StringUtils.isNull(operation) && !StringUtils.isNull(sapBaseProduct)) { +// //验证是否存在工艺路线和工序的关系 +// SapProRouteProcess sapProRouteProcess = new SapProRouteProcess(); +// sapProRouteProcess.setRouteId(sapProRoute.getRouteId()); +// sapProRouteProcess.setProcessId(operation.getProcessId()); +// List sapProRouteProcessList = sapProRouteProcessMapper.selectProRouteProcessList(sapProRouteProcess); +// if (sapProRouteProcessList .size()==0) { +// //增加工艺路线和工序的关系 +// sapProRouteProcess.setRecordId(IdUtils.fastSimpleUUID()); +// sapProRouteProcess.setRouteId(sapProRoute.getRouteId()); +// sapProRouteProcess.setProcessId(operation.getProcessId()); +// sapProRouteProcess.setProcessCode(operation.getProcessCode()); +// sapProRouteProcess.setProcessName(operation.getProcessName()); +// sapProRouteProcess.setOrderNum(1); +// sapProRouteProcess.setCreateTime(DateUtils.dateTime("yyyy-MM-dd", ANDAT)); +// sapProRouteProcess.setCreateBy(ANNAM); +// sapProRouteProcessMapper.insertProRouteProcess(sapProRouteProcess); +// } +// //验证是否存在工艺路线和物料的关系 +// SapProRouteProduct sapProRouteProduct = new SapProRouteProduct(); +// sapProRouteProduct.setRouteId(sapProRoute.getRouteId()); +// sapProRouteProduct.setItemCode(MATNR); +// List sapProRouteProductList = sapProRouteProductMapper.selectProRouteProductList(sapProRouteProduct); +// if (sapProRouteProductList .size()==0) { +// sapProRouteProduct.setRecordId(IdUtils.fastSimpleUUID()); +// sapProRouteProduct.setRouteId(sapProRoute.getRouteId()); +// sapProRouteProduct.setItemId(sapBaseProduct.getProductId()); +// sapProRouteProduct.setItemCode(MATNR); +// sapProRouteProduct.setItemName(sapBaseProduct.getProductDescZh()); +// sapProRouteProduct.setCreateBy(ANNAM); +// sapProRouteProduct.setCreateTime(DateUtils.dateTime("yyyy-MM-dd", ANDAT)); +// sapProRouteProductMapper.insertProRouteProduct(sapProRouteProduct); +// } +// } +// } } diff --git a/op-modules/op-sap/src/main/java/com/op/sap/util/SAPConnUtils.java b/op-modules/op-sap/src/main/java/com/op/sap/util/SAPConnUtils.java index 7266fb09a..e04eeef83 100644 --- a/op-modules/op-sap/src/main/java/com/op/sap/util/SAPConnUtils.java +++ b/op-modules/op-sap/src/main/java/com/op/sap/util/SAPConnUtils.java @@ -24,6 +24,7 @@ public class SAPConnUtils { destination = JCoDestinationManager.getDestination(ABAP_AS_POOLED); if (destination!=null){ logger.info("连接SAP成功"); + System.err.println("连接SAP成功"); } } catch (JCoException e) { logger.info("连接SAP失败,错误: " + e.toString()); diff --git a/op-modules/op-sap/src/main/resources/mapper/sap/SapProRouteMapper.xml b/op-modules/op-sap/src/main/resources/mapper/sap/SapProRouteMapper.xml index df6cebe2c..e81879f85 100644 --- a/op-modules/op-sap/src/main/resources/mapper/sap/SapProRouteMapper.xml +++ b/op-modules/op-sap/src/main/resources/mapper/sap/SapProRouteMapper.xml @@ -97,6 +97,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" update_time, route_version, need_check, + tec_man, + tec_man_unit, + tec_machine, + tec_machine_unit, + tec_depreciation, + tec_depreciation_unit, + tec_other, + tec_ohter_unit, @@ -116,6 +124,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{updateTime}, #{routeVersion}, #{needCheck}, + #{tecMan}, + #{tecManUnit}, + #{tecMachine}, + #{tecMachineUnit}, + #{tecDepreciation}, + #{tecDepreciationUnit}, + #{tecOther}, + #{tecOtherUnit}, @@ -128,6 +144,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" route_desc = #{routeDesc}, enable_flag = #{enableFlag}, remark = #{remark}, + tec_man = #{tecMan}, + tec_man_unit = #{tecManUnit}, + tec_machine = #{tecMachine}, + tec_machine_unit = #{tecMachineUnit}, + tec_depreciation = #{tecDepreciation}, + tec_depreciation_unit = #{tecDepreciationUnit}, + tec_other = #{tecOther}, + tec_ohter_unit = #{tecOtherUnit}, attr1 = #{attr1}, attr2 = #{attr2}, attr3 = #{attr3},