From 5f8b805cab95bae9cdaf7be78758a02e14b43a17 Mon Sep 17 00:00:00 2001 From: Yangwl <1726150332@qq.com> Date: Thu, 26 Jun 2025 16:25:53 +0800 Subject: [PATCH] =?UTF-8?q?SAP=E6=8A=A5=E5=B7=A5=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E7=94=9F=E4=BA=A7=E6=97=A5=E6=9C=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/op/system/api/domain/sap/SapRFW.java | 9 +++++ .../com/op/common/core/utils/DateUtils.java | 7 ++++ .../java/com/op/mes/domain/MesReportWork.java | 1 + .../service/impl/IWCInterfaceServiceImpl.java | 40 ++++++++++--------- .../mapper/mes/MesReportWorkMapper.xml | 1 + .../op/sap/service/impl/SapItemSyncImpl.java | 16 +++++++- .../sap/service/impl/SapOrderServiceImpl.java | 2 + 7 files changed, 57 insertions(+), 19 deletions(-) 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 9eb490e09..93b01ff2e 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 @@ -9,10 +9,19 @@ public class SapRFW { private String aufnr; private String gamng; private String anzma; + private String budat; private String remark; private lt_gs lt_gs; private List lt_hwList; + public String getBudat() { + return budat; + } + + public void setBudat(String budat) { + this.budat = budat; + } + public String getRemark() { return remark; } diff --git a/op-common/op-common-core/src/main/java/com/op/common/core/utils/DateUtils.java b/op-common/op-common-core/src/main/java/com/op/common/core/utils/DateUtils.java index fd0b60f3a..140fca580 100644 --- a/op-common/op-common-core/src/main/java/com/op/common/core/utils/DateUtils.java +++ b/op-common/op-common-core/src/main/java/com/op/common/core/utils/DateUtils.java @@ -159,4 +159,11 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils { ZonedDateTime zdt = localDateTime.atZone(ZoneId.systemDefault()); return Date.from(zdt.toInstant()); } + public static String formatToYYYYMMDD(String inputDate, String inputFormat) throws Exception { + SimpleDateFormat inputFormatter = new SimpleDateFormat(inputFormat); + SimpleDateFormat outputFormatter = new SimpleDateFormat("yyyyMMdd"); + + Date date = inputFormatter.parse(inputDate); + return outputFormatter.format(date); + } } diff --git a/op-modules/op-mes/src/main/java/com/op/mes/domain/MesReportWork.java b/op-modules/op-mes/src/main/java/com/op/mes/domain/MesReportWork.java index 347786051..a927fdb10 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/domain/MesReportWork.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/domain/MesReportWork.java @@ -29,6 +29,7 @@ public class MesReportWork extends BaseEntity { @Excel(name = "生产工单编码") private String workorderCode; + /** SAP订单号 */ @Excel(name = "SAP订单号") private String workorderCodeSap; 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 d3416c3da..96e8dcebf 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 @@ -36,6 +36,7 @@ import org.springframework.util.CollectionUtils; import java.math.BigDecimal; import java.math.RoundingMode; +import java.text.SimpleDateFormat; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.LocalTime; @@ -580,11 +581,12 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService { } } return sapRson; - }finally { + } catch (Exception e) { + return R.fail("报工失败:"+e.getMessage()); + } finally { DynamicDataSourceContextHolder.poll(); } - } @Override @@ -808,7 +810,7 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService { * @param workOrder * @return */ - private R reportHzToSap(MesReportWork workOrder) { + private R reportHzToSap(MesReportWork workOrder) throws Exception { Date nowTime = DateUtils.getNowDate(); SapRFW sapRFW = new SapRFW(); sapRFW.setAufnr(workOrder.getWorkorderCodeSap());//虚拟工单号 @@ -847,6 +849,7 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService { } sapRFW.setLt_hwList(lt_hwList); sapRFW.setAnzma(workOrder.getSapCode());//产线编号 + sapRFW.setBudat(DateUtils.formatToYYYYMMDD(workOrder.getProductDate(),"yyyy-MM-dd")); sapRFW.setRemark(workOrder.getRemark());//备注 logger.info(workOrder.getWorkorderCodeSap() + "sap工单报工请求:" + JSONObject.toJSONString(sapRFW)); R r = remoteSapService.sapRFWOrder(sapRFW); @@ -872,7 +875,7 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService { * @param workOrder * @return */ - private R reportHzToSap3(MesReportWork workOrder) { + private R reportHzToSap3(MesReportWork workOrder) throws Exception { Date nowTime = DateUtils.getNowDate(); SapRFW sapRFW = new SapRFW(); sapRFW.setAufnr(workOrder.getWorkorderCodeSap());//虚拟工单号 @@ -909,6 +912,7 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService { } sapRFW.setLt_hwList(lt_hwList); sapRFW.setAnzma(workOrder.getSapCode());//产线编号 + sapRFW.setBudat(DateUtils.formatToYYYYMMDD(workOrder.getProductDate(),"yyyy-MM-dd")); sapRFW.setRemark(workOrder.getRemark());//备注 logger.info(workOrder.getWorkorderCodeSap() + "sap工单报工请求:" + JSONObject.toJSONString(sapRFW)); //R r= R.ok(); @@ -1310,18 +1314,18 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService { } - public static void main(String args[]){ - List days = new ArrayList<>(); - // 获取当前日期 - LocalDate today = LocalDate.now(); - // 定义一个日期格式化器 - DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); - // 打印最近七天的日期 - for (int i = 0; i < 7; i++) { - LocalDate date = today.minusDays(i); - days.add(date.format(formatter)); - } - Collections.reverse(days); - System.out.println(days); - } +// public static void main(String args[]){ +// List days = new ArrayList<>(); +// // 获取当前日期 +// LocalDate today = LocalDate.now(); +// // 定义一个日期格式化器 +// DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); +// // 打印最近七天的日期 +// for (int i = 0; i < 7; i++) { +// LocalDate date = today.minusDays(i); +// days.add(date.format(formatter)); +// } +// Collections.reverse(days); +// System.out.println(days); +// } } diff --git a/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkMapper.xml b/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkMapper.xml index a9b93f9bc..227c9d2d1 100644 --- a/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkMapper.xml +++ b/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkMapper.xml @@ -706,6 +706,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select ow.workorder_code workorderCode, ow.workorder_code_sap workorderCodeSap, + ow.product_date, mrw.quantity_feedback quantityFeedback, mrw.product_code productCode, mrw.product_name productName, 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 9f181c179..096ad1663 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 @@ -17,18 +17,32 @@ import com.op.sap.mapper.SapBaseProductMapper; import com.op.sap.service.SapItemSyncService; import com.op.system.api.RemoteUserService; import com.sap.conn.jco.*; +import org.apache.poi.ss.usermodel.Sheet; +import org.apache.poi.ss.usermodel.Workbook; +import org.apache.poi.ss.usermodel.WorkbookFactory; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.stereotype.Service; +import javax.print.*; +import javax.print.attribute.HashPrintRequestAttributeSet; +import javax.print.attribute.standard.Copies; +import javax.print.attribute.standard.MediaSizeName; import javax.validation.Validator; +import java.awt.*; +import java.awt.print.PageFormat; +import java.awt.print.Printable; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.time.LocalDate; import java.time.format.DateTimeFormatter; import java.util.*; +import java.util.List; @Component @Service @@ -1380,5 +1394,5 @@ public class SapItemSyncImpl implements SapItemSyncService { } } - } + 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 694a65468..45c6078b9 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 @@ -294,6 +294,8 @@ public class SapOrderServiceImpl implements SapOrderService { jCoParameterList.setValue("P_ANZMA", sapRFW.getAnzma()); //备注 jCoParameterList.setValue("P_TEXT", sapRFW.getRemark()); + //记账日期格式为YYYYMMDD + jCoParameterList.setValue("P_BUDAT", sapRFW.getBudat()); if (sapRFW.getLt_gs() == null) { return R.fail("生产订单报工工时为空"); }