From 0879904f2b632c1011d4c7e839188af6b852182d Mon Sep 17 00:00:00 2001 From: mzr Date: Tue, 8 Jul 2025 14:52:08 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=91=E6=80=9D=E7=BB=B4Mes=E4=BF=AE?= =?UTF-8?q?=E6=94=B9BIP=E9=94=80=E5=94=AE=E8=AE=A2=E5=8D=95=E6=98=8E?= =?UTF-8?q?=E7=BB=86=E5=92=8C=E5=9B=9E=E5=86=99=E5=90=88=E5=90=8C=E9=94=80?= =?UTF-8?q?=E5=94=AE=E8=AE=A2=E5=8D=95=E7=9A=84=E6=97=B6=E9=97=B4=E6=A0=BC?= =?UTF-8?q?=E5=BC=8F=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/so/m30/APISaleOrderMaitainImpl.java | 33 +++++++++++++++++-- .../openapi/so/m30/SaleOrderResource.java | 24 +++++++++++--- 2 files changed, 50 insertions(+), 7 deletions(-) diff --git a/so/src/private/nccloud/api/impl/so/m30/APISaleOrderMaitainImpl.java b/so/src/private/nccloud/api/impl/so/m30/APISaleOrderMaitainImpl.java index 89c7089..43afa28 100644 --- a/so/src/private/nccloud/api/impl/so/m30/APISaleOrderMaitainImpl.java +++ b/so/src/private/nccloud/api/impl/so/m30/APISaleOrderMaitainImpl.java @@ -63,6 +63,11 @@ import java.net.MalformedURLException; import java.net.URL; import java.net.URLEncoder; import java.nio.charset.StandardCharsets; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.time.LocalDate; +import java.time.ZoneId; +import java.time.format.DateTimeFormatter; import java.util.*; import java.util.zip.GZIPInputStream; @@ -1310,9 +1315,11 @@ public class APISaleOrderMaitainImpl implements IAPISaleOrderMaitain { List> l_map_f = new ArrayList<>(); Map map = new HashMap<>(); // bomConfigureFinishDate BOM配置完成日期 - map.put("bomConfigureFinishDate", paramMap.get("vbdef16")); + String vbdef16 = convertDateString(paramMap.get("vbdef16") + ""); + map.put("bomConfigureFinishDate", vbdef16); // craftConfigureFinishDate 工艺配置完成日期 - map.put("craftConfigureFinishDate", paramMap.get("vbdef17")); + String vbdef17 = convertDateString(paramMap.get("vbdef17") + ""); + map.put("craftConfigureFinishDate", vbdef17); // BIP合同销售订单更新 子表id map.put("id", soMap.get("vbdef11")); l_map_f.add(map); @@ -1554,6 +1561,28 @@ public class APISaleOrderMaitainImpl implements IAPISaleOrderMaitain { return result.toString(); } + /** + * 转换日期字符串 + * yyyy-MM-dd HH:mm:ss to yyyy-MM-dd + * + * @param input 输入 + * @return {@link String} + */ + public String convertDateString(String input) throws BusinessException { + if (com.yonyou.cloud.utils.StringUtils.isEmpty(input) || "null".equals(input)) { + return input; + } + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + try { + Date date = formatter.parse(input); + LocalDate localDate = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); + DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + return localDate.format(dtf); + } catch (ParseException e) { + throw new BusinessException("Invalid date format", e); + } + } + private void updatePmoBill(SaleOrderVO[] vos) { // 同步修改流程生产订单的国网行项目号、国内采购订单号 for (SaleOrderVO vo : vos) { diff --git a/so/src/public/nccloud/openapi/so/m30/SaleOrderResource.java b/so/src/public/nccloud/openapi/so/m30/SaleOrderResource.java index 44b1aac..611b2a9 100644 --- a/so/src/public/nccloud/openapi/so/m30/SaleOrderResource.java +++ b/so/src/public/nccloud/openapi/so/m30/SaleOrderResource.java @@ -21,6 +21,7 @@ import nccloud.api.rest.utils.NCCRestUtils; import nccloud.api.rest.utils.ResultMessageUtil; import nccloud.api.so.m30.IAPISaleOrderMaitain; import nccloud.api.so.m30.IAPISaleOrderQuery; +import nccloud.baseapp.core.log.NCCForUAPLogger; import nccloud.commons.lang.StringUtils; import nccloud.openapi.scmpub.pub.NCCPubRestResource; import nccloud.openapi.scmpub.pub.TransferCodeToPKTool; @@ -465,7 +466,7 @@ public class SaleOrderResource extends NCCPubRestResource { } /** - * 金慧软件修改BIP销售订单明细 + * 金思维Mes修改BIP销售订单明细 * * @author mzr * @date 2025/05/14 @@ -483,10 +484,14 @@ public class SaleOrderResource extends NCCPubRestResource { StringBuilder sql = new StringBuilder("update so_saleorder_b set "); SQLParameter parameter = new SQLParameter(); for (Map.Entry entry : paramMap.entrySet()) { - if (!"csaleorderbid".equals(entry.getKey())) { - sql.append(entry.getKey()).append(" = ?, "); - parameter.addParam(entry.getValue()); + if ("csaleorderbid".equals(entry.getKey()) || + "csaleorderid".equals(entry.getKey()) || + entry.getKey().startsWith("vdef") + ) { + continue; } + sql.append(entry.getKey()).append(" = ?, "); + parameter.addParam(entry.getValue()); } if (parameter.getCountParams() <= 0) { return ResultMessageUtil.toJSON("传入参数为空,请检查", APIErrCodeEnum.BUSINESSEXCCODE.getCode()); @@ -494,10 +499,19 @@ public class SaleOrderResource extends NCCPubRestResource { // 删除最后的", " sql.delete(sql.length() - 2, sql.length()); sql.append(" where csaleorderbid = ?"); - // NCCForUAPLogger.debug("updateDef-sql:" + sql); + NCCForUAPLogger.debug("updateDef-sql:" + sql); parameter.addParam(csaleorderbid); BaseDAO baseDAO = new BaseDAO(); + // 修改销售订单子表 int num = baseDAO.executeUpdate(sql.toString(), parameter); + // 修改销售订单表 vdef8 MES工艺路线 + if (paramMap.containsKey("csaleorderid") && paramMap.containsKey("vdef8")) { + String orderSql = "update so_saleorder set vdef8 = '[vdef8]' where csaleorderid = '[csaleorderid]'"; + orderSql = orderSql.replace("[vdef8]", paramMap.getOrDefault("vdef8", "") + ""); + orderSql = orderSql.replace("[csaleorderid]", paramMap.getOrDefault("csaleorderid", "") + ""); + int num1 = baseDAO.executeUpdate(orderSql); + NCCForUAPLogger.debug("updateDef-num1:" + num1); + } if (num > 0) { // 回写合同平台的对应字段 NCLocator.getInstance().lookup(IAPISaleOrderMaitain.class).updateBipFlagSo(paramMap);