diff --git a/lidee-admin/src/main/resources/application-local.yaml b/lidee-admin/src/main/resources/application-local.yaml
index 81f2bd2..c7f81b8 100644
--- a/lidee-admin/src/main/resources/application-local.yaml
+++ b/lidee-admin/src/main/resources/application-local.yaml
@@ -74,6 +74,7 @@ lideeyunji:
debug: true #是否开启调试模式
saveReqLog: false # 是否保存请求日志
saveOpLog: false # 是否保存操作日志
+#销售系统
sales:
bfPartnerUrl: http://192.168.107.3/hufu/api/v1/restData/get-BFPartner-update?apiToken=032b4c5c1f514639b63e9eacc39036be # 往来单位主表增量
bfPartnerContactUrl: http://192.168.107.3/hufu/api/v1/restData/get-BFPartnerContact-update?apiToken=b8957be745d64d759a53e2339bea8c9c # 往来单位联系人增量
@@ -88,10 +89,11 @@ sales:
partnerBranch: http://192.168.107.3/hufu/api/v1/restData/get-BFPartnerBranch-all?apiToken=6ff2844877df44f4b40f428dd825ded2 # 往来单位分支机构全量
partnerCXOs: http://192.168.107.3/hufu/api/v1/restData/get-BFPartnerCXOs-all?apiToken=f0b88b7ba75949279022ac79abbf735b # 往来单位企业高管全量
partnerEquity: http://192.168.107.3/hufu/api/v1/restData/get-XSGL-BFPartnerEquity-all?apiToken=658cfd7c5a3f4f0eab70c23770dd60ab # 往来单位控制人全量
- partnerRelation: http://192.168.107.3/hufu/api/v1/restData/get-XSGL-BFPartnerRelation-all?apiToken=e122dda793a842938375e0c495722ad8 # 往来单位关联关系全量
+ partnerRelation: http://192.168.107.3/hufu/api/v1/restData/get-BFPartnerRelation-all?apiToken=80f7ddf7f1b14939b5375c042baf8faa # 往来单位关联关系全量
partnerShareholder: http://192.168.107.3/hufu/api/v1/restData/get-XSGL-BFPartnerShareholder-all?apiToken=f8976737ce8d439d9e5297cdcf00a0fa # 往来单位股东全量
+ allPartner: http://192.168.107.3/hufu/api/v1/restData/get-BFPartner-all?apiToken=a01716b827d749fcb80270c3c9c4e27e #往来单位全量
+
-#销售系统
hongguangUrl:
bfPartnerUrl: http://192.168.107.3/hufu/api/v1/restData/get-XSGL-BFPartner-update?apiToken=36f470ff51214047b1a87110397305de # 往来单位主表增量
bfPartnerContactUrl: http://192.168.107.3/hufu/api/v1/restData/get-XSGL-BFPartnerContact-all?apiToken=674a50a69ba44320947b355dc12505ea # 往来单位联系人增量=
@@ -108,20 +110,22 @@ hongguangUrl:
partnerEquity: http://192.168.107.3/hufu/api/v1/restData/get-XSGL-BFPartnerEquity-all?apiToken=658cfd7c5a3f4f0eab70c23770dd60ab # 往来单位控制人全量=
partnerRelation: http://192.168.107.3/hufu/api/v1/restData/get-XSGL-BFPartnerRelation-all?apiToken=e122dda793a842938375e0c495722ad8 # 往来单位关联关系全量=
partnerShareholder: http://192.168.107.3/hufu/api/v1/restData/get-XSGL-BFPartnerShareholder-all?apiToken=f8976737ce8d439d9e5297cdcf00a0fa # 往来单位股东全量=
- allPartner: http://192.168.107.3/hufu/api/v1/restData/get-BFPartner-all?apiToken=a01716b827d749fcb80270c3c9c4e27e #往来单位全量
+ allPartner: http://192.168.107.3/hufu/api/v1/restData/get-XSGL-BFPartner-all?apiToken=8092849471434882818f35dd99d8d483 #往来单位全量
material:
+ allMaterial: http://192.168.107.3/hufu/api/v1/restData/bfMaterials?apiToken=da9cc999c01f4079ba1b6b708020d7c1 # 物料全量
bfMaterials: http://192.168.107.3/hufu/api/v1/restData/bfMaterials-byId?apiToken=efdaff8349664f91805c8a9156608223 # 物料主表增量
bfMaterialMeasureUnit: http://192.168.107.3/hufu/api/v1/restData/bfMaterialMeasureUnit?apiToken=3c10316291904c9ca106c6a16ccad62a # 物料计量单位全量
mainAux: http://192.168.107.3/hufu/api/v1/restData/BFMaterialMainAuxUnitByArea?apiToken=da32203ac3354ec78d636898d37587c4 # 物料主辅助单位全量
materialConvRatio: http://192.168.107.3/hufu/api/v1/restData/bfMaterialConvRatio?apiToken=feefb54bbf15452b973cf0ca4fbfda3e # 物料换算率全量
materialLabel: http://192.168.107.3/hufu/api/v1/restData/bfMaterialLabel?apiToken=191286827d314521ba1664bf1c21e10c # 物料标签全量
- materialUnitByArea: http://192.168.107.3/hufu/api/v1/restData/BFMaterialUnitByArea?apiToken=e00774a9741a456d85ca8b9f4e42e2dc # 物料计量单位全量
+ materialUnitByArea: http://192.168.107.3/hufu/api/v1/restData/BFMaterialUnitByArea?apiToken=e00774a9741a456d85ca8b9f4e42e2dc # 物料分范围计量单位全量
materialPropSetLink: http://192.168.107.3/hufu/api/v1/restData/bfMaterialPropSetLink?apiToken=24b2e4c0b7234d38929288b45ea71f7c # 物料特征集关联全量
materialPropValue: http://192.168.107.3/hufu/api/v1/restData/bfMaterialPropValue?apiToken=34716d427ac14c2cbfa38ed7a60958c6 # 物料特征值全量
materialDomainLinks: http://192.168.107.3/hufu/api/v1/restData/bfMaterialDomainLinks?apiToken=3fa9fea429e34f049262575a397307a9 # 物料作用域关联全量
materialCustomizedType: http://192.168.107.3/hufu/api/v1/restData/bfMaterialCustomizedType?apiToken=0d54bb8761e04c94ae860834521be269 # 物料自定义类型全量
materialHeadExt: http://192.168.107.3/hufu/api/v1/restData/bfMaterialHeadExt?apiToken=96e058c927c540ea9a7de8844cdf337e # 物料自定义扩展全量
materialAttachment: http://192.168.107.3/hufu/api/v1/restData/bfMaterialAttachment?apiToken=8d6cf78227c349c5a31e97eabac97c46 # 物料附件全量
+
bom:
bfMaterials: http://192.168.107.3/hufu/api/v1/restData/capp-integration-pbom-table?apiToken=5ccbba323f094f7aa4f305d0f668d8d1 # bom增量
diff --git a/lidee-admin/src/main/resources/application-prod.yaml b/lidee-admin/src/main/resources/application-prod.yaml
index 861c064..aae58cb 100644
--- a/lidee-admin/src/main/resources/application-prod.yaml
+++ b/lidee-admin/src/main/resources/application-prod.yaml
@@ -34,7 +34,7 @@ spring:
master:
# 达梦数据库 主库,业务库
driver-class-name: dm.jdbc.driver.DmDriver
- url: jdbc:dm://192.168.3.8:5238?schema=ERPCS&compatible_mode=oracle
+ url: jdbc:dm://192.168.3.8:5238?schema=GSSERVER&compatible_mode=oracle
username: GSSERVER
password: HGgs123456
erp_dev: # erp
@@ -51,7 +51,7 @@ spring:
host: 127.0.0.1 # 地址
port: 6379 # 端口
database: 15 # 数据库索引
- password: gryy@8888 # 密码,建议生产环境开启
+# password: gryy@8888 # 密码,建议生产环境开启
--- #################### 地代码平台相关配置 ####################
@@ -64,8 +64,9 @@ lideeyunji:
debug: false #是否开启调试模式
saveReqLog: true # 是否保存请求日志
saveOpLog: true # 是否保存操作日志
-hongguangUrl:
- bfPartnerUrl: http://192.168.107.3/hufu/api/v1/restData/wldwall?apiToken=60fc9e83d37947d894f150c97c0db970 # 往来单位主表增量
+#销售系统
+sales:
+ bfPartnerUrl: http://192.168.107.3/hufu/api/v1/restData/get-BFPartner-update?apiToken=032b4c5c1f514639b63e9eacc39036be # 往来单位主表增量
bfPartnerContactUrl: http://192.168.107.3/hufu/api/v1/restData/get-BFPartnerContact-update?apiToken=b8957be745d64d759a53e2339bea8c9c # 往来单位联系人增量
bankAccountsUrl: http://192.168.107.3/hufu/api/v1/restData/get-bfPartnerBankAccounts-update?apiToken=a9d1cf9387a048de875bf0327c5dd1f5 # 往来单位银行账号增量
bfPartnerAddressUrl: http://192.168.107.3/hufu/api/v1/restData/get-BFPartnerAddress-update?apiToken=ebc6815334fb4e4eb5a8ea05dbfb02fe # 往来单位地址增量
@@ -78,10 +79,31 @@ hongguangUrl:
partnerBranch: http://192.168.107.3/hufu/api/v1/restData/get-BFPartnerBranch-all?apiToken=6ff2844877df44f4b40f428dd825ded2 # 往来单位分支机构全量
partnerCXOs: http://192.168.107.3/hufu/api/v1/restData/get-BFPartnerCXOs-all?apiToken=f0b88b7ba75949279022ac79abbf735b # 往来单位企业高管全量
partnerEquity: http://192.168.107.3/hufu/api/v1/restData/get-XSGL-BFPartnerEquity-all?apiToken=658cfd7c5a3f4f0eab70c23770dd60ab # 往来单位控制人全量
- partnerRelation: http://192.168.107.3/hufu/api/v1/restData/get-XSGL-BFPartnerRelation-all?apiToken=e122dda793a842938375e0c495722ad8 # 往来单位关联关系全量
+ partnerRelation: http://192.168.107.3/hufu/api/v1/restData/get-BFPartnerRelation-all?apiToken=80f7ddf7f1b14939b5375c042baf8faa # 往来单位关联关系全量
partnerShareholder: http://192.168.107.3/hufu/api/v1/restData/get-XSGL-BFPartnerShareholder-all?apiToken=f8976737ce8d439d9e5297cdcf00a0fa # 往来单位股东全量
+ allPartner: http://192.168.107.3/hufu/api/v1/restData/get-BFPartner-all?apiToken=a01716b827d749fcb80270c3c9c4e27e #往来单位全量
+
+
+hongguangUrl:
+ bfPartnerUrl: http://192.168.107.3/hufu/api/v1/restData/get-XSGL-BFPartner-update?apiToken=36f470ff51214047b1a87110397305de # 往来单位主表增量
+ bfPartnerContactUrl: http://192.168.107.3/hufu/api/v1/restData/get-XSGL-BFPartnerContact-all?apiToken=674a50a69ba44320947b355dc12505ea # 往来单位联系人增量=
+ bankAccountsUrl: http://192.168.107.3/hufu/api/v1/restData/get-XSGL-bfPartnerBankAccounts-all?apiToken=3b6d967b0521489e9ca8ff38cc467f64 # 往来单位银行账号增量=
+ bfPartnerAddressUrl: http://192.168.107.3/hufu/api/v1/restData/get-XSGL-BFPartnerAddress-all?apiToken=a4896cd4e4454ebaa7367a309325e92c # 往来单位地址增量=
+ attachmentsUrl: http://192.168.107.3/hufu/api/v1/restData/get-BFPartnerAttachment?apiToken=c8aba94cdc92420a939c91d0ebfec13e # 往来单位附件全量
+ partnerCertificateUrl: http://192.168.107.3/hufu/api/v1/restData/get-XSGL-BFPartnerCertificate-all?apiToken=d316d43644fd403f9a02072fc77f82d8 # 往来单位证件全量=
+ partnerDomainLinks: http://192.168.107.3/hufu/api/v1/restData/get-BFPartnerDomainLinks-all?apiToken=cdc84b2b9e3647cb8c42e826df9f98c0 # 往来单位关联域关联全量
+ partnerIBAN: http://192.168.107.3/hufu/api/v1/restData/get-XSGL-BFPartnerIBAN-all?apiToken=a2f808ed087f4ff9b8496d67af101b32 # 往来单位IBAN全量=
+ partnerVersion: http://192.168.107.3/hufu/api/v1/restData/gt-XSGL-BFPartnerVersion-all?apiToken=08368c6525754ca4814233d8309f5e20 # 往来单位版本全量=
+ partnerHeadExt: http://192.168.107.3/hufu/api/v1/restData/get-XSGL-BFPartnerHeadExt-all?apiToken=aad7699ee8e545bcbd123535f0f33010 # 往来单位自定义扩展全量=
+ partnerBranch: http://192.168.107.3/hufu/api/v1/restData/get-XSGL-BFPartnerBranch-all?apiToken=abf28ba072dc4e78baa81bdbefc5d507 # 往来单位分支机构全量=
+ partnerCXOs: http://192.168.107.3/hufu/api/v1/restData/get-XSGL-BFPartnerCXOs-all?apiToken=2c64c3c243a04b0497f3dab1498a41e8 # 往来单位企业高管全量=
+ partnerEquity: http://192.168.107.3/hufu/api/v1/restData/get-XSGL-BFPartnerEquity-all?apiToken=658cfd7c5a3f4f0eab70c23770dd60ab # 往来单位控制人全量=
+ partnerRelation: http://192.168.107.3/hufu/api/v1/restData/get-XSGL-BFPartnerRelation-all?apiToken=e122dda793a842938375e0c495722ad8 # 往来单位关联关系全量=
+ partnerShareholder: http://192.168.107.3/hufu/api/v1/restData/get-XSGL-BFPartnerShareholder-all?apiToken=f8976737ce8d439d9e5297cdcf00a0fa # 往来单位股东全量=
+ allPartner: http://192.168.107.3/hufu/api/v1/restData/get-XSGL-BFPartner-all?apiToken=8092849471434882818f35dd99d8d483 #往来单位全量
material:
- bfMaterials: http://192.168.107.3/hufu/api/v1/restData/bfMaterials?apiToken=da9cc999c01f4079ba1b6b708020d7c1 # 物料主表全量
+ allMaterial: http://192.168.107.3/hufu/api/v1/restData/bfMaterials?apiToken=da9cc999c01f4079ba1b6b708020d7c1 # 物料全量
+ bfMaterials: http://192.168.107.3/hufu/api/v1/restData/bfMaterials-byId?apiToken=efdaff8349664f91805c8a9156608223 # 物料主表增量
bfMaterialMeasureUnit: http://192.168.107.3/hufu/api/v1/restData/bfMaterialMeasureUnit?apiToken=3c10316291904c9ca106c6a16ccad62a # 物料计量单位全量
mainAux: http://192.168.107.3/hufu/api/v1/restData/BFMaterialMainAuxUnitByArea?apiToken=da32203ac3354ec78d636898d37587c4 # 物料主辅助单位全量
materialConvRatio: http://192.168.107.3/hufu/api/v1/restData/bfMaterialConvRatio?apiToken=feefb54bbf15452b973cf0ca4fbfda3e # 物料换算率全量
@@ -91,4 +113,8 @@ material:
materialPropValue: http://192.168.107.3/hufu/api/v1/restData/bfMaterialPropValue?apiToken=34716d427ac14c2cbfa38ed7a60958c6 # 物料特征值全量
materialDomainLinks: http://192.168.107.3/hufu/api/v1/restData/bfMaterialDomainLinks?apiToken=3fa9fea429e34f049262575a397307a9 # 物料作用域关联全量
materialCustomizedType: http://192.168.107.3/hufu/api/v1/restData/bfMaterialCustomizedType?apiToken=0d54bb8761e04c94ae860834521be269 # 物料自定义类型全量
- materialHeadExt: http://192.168.107.3/hufu/api/v1/restData/bfMaterialHeadExt?apiToken=96e058c927c540ea9a7de8844cdf337e # 物料自定义扩展全量
\ No newline at end of file
+ materialHeadExt: http://192.168.107.3/hufu/api/v1/restData/bfMaterialHeadExt?apiToken=96e058c927c540ea9a7de8844cdf337e # 物料自定义扩展全量
+ materialAttachment: http://192.168.107.3/hufu/api/v1/restData/bfMaterialAttachment?apiToken=8d6cf78227c349c5a31e97eabac97c46 # 物料附件全量
+
+bom:
+ bfMaterials: http://192.168.107.3/hufu/api/v1/restData/capp-integration-pbom-table?apiToken=5ccbba323f094f7aa4f305d0f668d8d1 # bom增量
\ No newline at end of file
diff --git a/lidee-core/pom.xml b/lidee-core/pom.xml
index d177df5..9a40727 100644
--- a/lidee-core/pom.xml
+++ b/lidee-core/pom.xml
@@ -104,6 +104,17 @@
2.0.32
+
+ com.google.zxing
+ core
+ 3.5.1
+
+
+ com.google.zxing
+ javase
+ 3.5.1
+
+
com.github.pagehelper
pagehelper-spring-boot-starter
diff --git a/lidee-core/src/main/java/com/lideeyunji/core/framework/config/job/WarehouseNotificationJob.java b/lidee-core/src/main/java/com/lideeyunji/core/framework/config/job/WarehouseNotificationJob.java
new file mode 100644
index 0000000..7e9fe3d
--- /dev/null
+++ b/lidee-core/src/main/java/com/lideeyunji/core/framework/config/job/WarehouseNotificationJob.java
@@ -0,0 +1,71 @@
+package com.lideeyunji.core.framework.config.job;
+
+import com.lideeyunji.core.framework.entity.erp.ArrivalOrderEntity;
+import com.lideeyunji.core.framework.entity.erp.ArrivalOrderItemEntity;
+import com.lideeyunji.core.framework.utils.QrCodeUtil;
+import com.lideeyunji.tool.framework.quartz.core.handler.JobHandler;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.Collections;
+
+@Component("WarehouseNotificationJob")
+@Slf4j
+public class WarehouseNotificationJob implements JobHandler {
+
+ @Resource
+ private QrCodeUtil qrCodeUtil;
+ @Override
+ public String execute(String param) throws Exception {
+ log.info("========== 开始执行到货通知任务 ==========");
+
+ try {
+ syncArrivalNotice();
+
+ String result = String.format("========== 数据同步完成==========");
+ log.info(result);
+ return result;
+ } catch (Exception e) {
+ log.error("ERP数据同步任务执行失败", e);
+ throw e;
+ }
+ }
+
+ private void syncArrivalNotice() throws Exception {
+ ArrivalOrderEntity order = new ArrivalOrderEntity();
+ order.setArrivalNo("ARR20250505001");
+ order.setSaleOrderNo("SO20250505001");
+ order.setBusinessType("普通采购");
+ order.setSupplierName("安徽XX科技有限公司");
+ order.setSupplierCode("SUP00123");
+ order.setCreateBy("张三");
+ order.setCreateTime(LocalDateTime.now());
+ order.setUpdateBy("张三");
+ order.setUpdateTime(LocalDateTime.now());
+
+ // 明细
+ ArrivalOrderItemEntity item = new ArrivalOrderItemEntity();
+ item.setArrivalNoticeId(1001L);
+ item.setLineNo(1);
+ item.setMaterialId(2001L);
+ item.setMaterialCode("MAT00888");
+ item.setCheckQty(new BigDecimal("100"));
+ item.setUnit("台");
+
+ order.setItemList(Collections.singletonList(item));
+
+ // ========== 2. 生成二维码 ==========
+ String timestamp = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS"));
+ String fileName = "D:/qr/arrival_qr_" + timestamp + ".png";
+ qrCodeUtil.generateQrToFile(order, fileName);
+
+ String base64 = qrCodeUtil.generateQrToBase64(order);
+ System.out.println("二维码 Base64:");
+ System.out.println(base64);
+ log.info("二维码已生成: {}", fileName);
+ }
+}
diff --git a/lidee-core/src/main/java/com/lideeyunji/core/framework/entity/bom/JsbomBackUpEntity.java b/lidee-core/src/main/java/com/lideeyunji/core/framework/entity/bom/JsbomBackUpEntity.java
new file mode 100644
index 0000000..0771cd8
--- /dev/null
+++ b/lidee-core/src/main/java/com/lideeyunji/core/framework/entity/bom/JsbomBackUpEntity.java
@@ -0,0 +1,355 @@
+package com.lideeyunji.core.framework.entity.bom;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * BOM主表
+ * 表名:JSBOM
+ */
+@Data
+@TableName("JSBOMBACKUP")
+public class JsbomBackUpEntity {
+
+ /**
+ * 产品名称
+ */
+ @TableField("NAME_CHS")
+ private String name;
+
+ /**
+ * BOM类型ID
+ */
+ @TableField("JSBOM_LXID")
+ private String jsbomLxid;
+
+ /**
+ * 产品数据组织ID
+ */
+ @TableField("JSBOM_ZZID")
+ private String jsbomZzid;
+
+ /**
+ * 编制部门
+ */
+ @TableField("JSBOM_BZBM")
+ private String jsbomBzbm;
+
+ /**
+ * BOMID 主键
+ */
+ @TableId("ID")
+ @TableField("ID")
+ private String id;
+
+ /**
+ * BOM号
+ */
+ @TableField("JSBOM_BOMBH")
+ private String jsbomBombh;
+
+ /**
+ * 版本号
+ */
+ @TableField("JSBOM_BOMBB")
+ private String jsbomBombb;
+
+ /**
+ * 产品ID
+ */
+ @TableField("JSBOM_CPID")
+ private String jsbomCpid;
+
+ /**
+ * 产品编号(冗余)
+ */
+ @TableField("JSBOM_CPBH")
+ private String jsbomCpbh;
+
+ /**
+ * 产品图号(冗余)
+ */
+ @TableField("JSBOM_CPTH")
+ private String jsbomCpth;
+
+ /**
+ * 产品名称
+ */
+ @TableField("JSBOM_CPMC")
+ private String jsbomCpmc;
+
+ /**
+ * 产品规格(冗余)
+ */
+ @TableField("JSBOM_CPGG")
+ private String jsbomCpgg;
+
+ /**
+ * 产品型号(冗余)
+ */
+ @TableField("JSBOM_CPXH")
+ private String jsbomCpxh;
+
+ /**
+ * 产品描述
+ */
+ @TableField("JSBOM_CPMS")
+ private String jsbomCpms;
+
+ /**
+ * 产品辅助信息ID
+ */
+ @TableField("JSBOM_CPFZID")
+ private String jsbomCpfzid;
+
+ /**
+ * 产品辅助信息描述
+ */
+ @TableField("JSBOM_CPFZMS")
+ private String jsbomCpfzms;
+
+ /**
+ * 标准批量
+ */
+ @TableField("JSBOM_BZPL")
+ private BigDecimal jsbomBzpl;
+
+ /**
+ * 计量单位ID
+ */
+ @TableField("JSBOM_JLDWID")
+ private String jsbomJldwid;
+
+ /**
+ * 计量单位
+ */
+ @TableField("JSBOM_JLDW")
+ private String jsbomJldw;
+
+ /**
+ * 辅标准批量
+ */
+ @TableField("JSBOM_FBZPL")
+ private BigDecimal jsbomFbzpl;
+
+ /**
+ * 辅计量单位ID
+ */
+ @TableField("JSBOM_FJLDWID")
+ private String jsbomFjldwid;
+
+ /**
+ * 辅计量单位
+ */
+ @TableField("JSBOM_FJLDW")
+ private String jsbomFjldw;
+
+ /**
+ * 备注
+ */
+ @TableField("JSBOM_BZ")
+ private String jsbomBz;
+
+ /**
+ * 密级标识
+ */
+ @TableField("JSBOM_MJID")
+ private String jsbomMjid;
+
+ /**
+ * 密级等级
+ */
+ @TableField("JSBOM_MJDJ")
+ private Integer jsbomMjdj;
+
+ /**
+ * 密级名称
+ */
+ @TableField("JSBOM_MJMC")
+ private String jsbomMjmc;
+
+ /**
+ * 状态
+ */
+ @TableField("JSBOM_ZT")
+ private String jsbomZt;
+
+ /**
+ * 审批ID
+ */
+ @TableField("JSBOM_SPLID")
+ private String jsbomSplid;
+
+ /**
+ * 停用标志
+ */
+ @TableField("JSBOM_SFTY")
+ private String jsbomSfty;
+
+ /**
+ * 生效日期
+ */
+ @TableField("JSBOM_KSRQ")
+ private Date jsbomKsrq;
+
+ /**
+ * 失效日期
+ */
+ @TableField("JSBOM_JSRQ")
+ private Date jsbomJsrq;
+
+ /**
+ * 子件行数
+ */
+ @TableField("JSBOM_ZXHS")
+ private Integer jsbomZxhs;
+
+ /**
+ * 产出行数
+ */
+ @TableField("JSBOM_CCHS")
+ private Integer jsbomCchs;
+
+ /**
+ * 附件行数
+ */
+ @TableField("JSBOM_FJHS")
+ private Integer jsbomFjhs;
+
+ /**
+ * 创建时间
+ */
+ @TableField("JSBOM_CJSJ")
+ private Date jsbomCjsj;
+
+ /**
+ * 创建人ID
+ */
+ @TableField("JSBOM_CJR")
+ private String jsbomCjr;
+
+ /**
+ * 创建人姓名
+ */
+ @TableField("JSBOM_CJRXM")
+ private String jsbomCjrxm;
+
+ /**
+ * 确认时间
+ */
+ @TableField("JSBOM_FBSJ")
+ private Date jsbomFbsj;
+
+ /**
+ * 确认人ID
+ */
+ @TableField("JSBOM_FBR")
+ private String jsbomFbr;
+
+ /**
+ * 确认人姓名
+ */
+ @TableField("JSBOM_FBRXM")
+ private String jsbomFbrxm;
+
+ /**
+ * 停用时间
+ */
+ @TableField("JSBOM_TYSJ")
+ private Date jsbomTysj;
+
+ /**
+ * 停用人ID
+ */
+ @TableField("JSBOM_TYR")
+ private String jsbomTyr;
+
+ /**
+ * 停用人姓名
+ */
+ @TableField("JSBOM_TYRXM")
+ private String jsbomTyrxm;
+
+ /**
+ * BOM辅助信息ID
+ */
+ @TableField("JSBOM_FZID")
+ private String jsbomFzid;
+
+ /**
+ * BOM辅助信息描述
+ */
+ @TableField("JSBOM_FZMS")
+ private String jsbomFzms;
+
+ /**
+ * 自定义0
+ */
+ @TableField("JSBOM_C0")
+ private String jsbomC0;
+
+ /**
+ * 自定义1
+ */
+ @TableField("JSBOM_C1")
+ private String jsbomC1;
+
+ /**
+ * 自定义2
+ */
+ @TableField("JSBOM_C2")
+ private String jsbomC2;
+
+ /**
+ * 自定义3
+ */
+ @TableField("JSBOM_C3")
+ private String jsbomC3;
+
+ /**
+ * 自定义4
+ */
+ @TableField("JSBOM_C4")
+ private String jsbomC4;
+
+ /**
+ * 自定义5
+ */
+ @TableField("JSBOM_C5")
+ private String jsbomC5;
+
+ /**
+ * 自定义6
+ */
+ @TableField("JSBOM_C6")
+ private String jsbomC6;
+
+ /**
+ * 自定义7
+ */
+ @TableField("JSBOM_C7")
+ private String jsbomC7;
+
+ /**
+ * 自定义8
+ */
+ @TableField("JSBOM_C8")
+ private String jsbomC8;
+
+ /**
+ * 自定义9
+ */
+ @TableField("JSBOM_C9")
+ private String jsbomC9;
+
+ /**
+ * BOM分类
+ */
+ @TableField("JSBOM_FL")
+ private String jsbomFl;
+}
\ No newline at end of file
diff --git a/lidee-core/src/main/java/com/lideeyunji/core/framework/entity/bom/JsbomzxBackUpEntity.java b/lidee-core/src/main/java/com/lideeyunji/core/framework/entity/bom/JsbomzxBackUpEntity.java
new file mode 100644
index 0000000..a539307
--- /dev/null
+++ b/lidee-core/src/main/java/com/lideeyunji/core/framework/entity/bom/JsbomzxBackUpEntity.java
@@ -0,0 +1,248 @@
+
+package com.lideeyunji.core.framework.entity.bom;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * BOM体
+ * 表名:JSBOMZX
+ */
+@Data
+@TableName("JSBOMZXBACKUP")
+public class JsbomzxBackUpEntity {
+
+ /**
+ * 物料名称
+ */
+ @TableField("NAME")
+ private String name;
+
+ /**
+ * 外协供料
+ */
+ @TableField("JSBOMZX_WWGL")
+ private String jsbomzxWwgl;
+
+ /**
+ * BOMID
+ */
+ @TableField("JSBOMZX_BOMID")
+ private String jsbomzxBomid;
+
+ /**
+ * 子项ID 主键
+ */
+ @TableId("ID")
+ @TableField("ID")
+ private String id;
+
+ /**
+ * 子项行号
+ */
+ @TableField("JSBOMZX_ZXHH")
+ private String jsbomzxZxhh;
+
+ /**
+ * 标准工序
+ */
+ @TableField("JSBOMZX_BZGX")
+ private String jsbomzxBzgx;
+
+ /**
+ * 子项类型
+ */
+ @TableField("JSBOMZX_ZXLX")
+ private String jsbomzxZxlx;
+
+ /**
+ * 物料ID
+ */
+ @TableField("JSBOMZX_WLID")
+ private String jsbomzxWlid;
+
+ /**
+ * 物料编号(冗余)
+ */
+ @TableField("JSBOMZX_WLBH")
+ private String jsbomzxWlbh;
+
+ /**
+ * 物料图号(冗余)
+ */
+ @TableField("JSBOMZX_WLTH")
+ private String jsbomzxWlth;
+
+ /**
+ * 物料名称
+ */
+ @TableField("JSBOMZX_WLMC")
+ private String jsbomzxWlmc;
+
+ /**
+ * 物料规格(冗余)
+ */
+ @TableField("JSBOMZX_WLGG")
+ private String jsbomzxWlgg;
+
+ /**
+ * 物料型号(冗余)
+ */
+ @TableField("JSBOMZX_WLXH")
+ private String jsbomzxWlxh;
+
+ /**
+ * 物料描述
+ */
+ @TableField("JSBOMZX_WLMS")
+ private String jsbomzxWlms;
+
+ /**
+ * 物料BOMID
+ */
+ @TableField("JSBOMZX_WLBOMID")
+ private String jsbomzxWlbomid;
+
+ /**
+ * 物料辅助信息ID
+ */
+ @TableField("JSBOMZX_WLFZID")
+ private String jsbomzxWlfzid;
+
+ /**
+ * 物料辅助信息描述
+ */
+ @TableField("JSBOMZX_WLFZMS")
+ private String jsbomzxWlfzms;
+
+ /**
+ * 用量类型
+ */
+ @TableField("JSBOMZX_YLLX")
+ private String jsbomzxYllx;
+
+ /**
+ * 子项数量
+ */
+ @TableField("JSBOMZX_ZXSL")
+ private BigDecimal jsbomzxZxsl;
+
+ /**
+ * 计量单位ID
+ */
+ @TableField("JSBOMZX_JLDWID")
+ private String jsbomzxJldwid;
+
+ /**
+ * 计量单位
+ */
+ @TableField("JSBOMZX_JLDW")
+ private String jsbomzxJldw;
+
+ /**
+ * 辅子项数量
+ */
+ @TableField("JSBOMZX_FZXSL")
+ private BigDecimal jsbomzxFzxsl;
+
+ /**
+ * 辅计量单位ID
+ */
+ @TableField("JSBOMZX_FJLDWID")
+ private String jsbomzxFjldwid;
+
+ /**
+ * 辅计量单位
+ */
+ @TableField("JSBOMZX_FJLDW")
+ private String jsbomzxFjldw;
+
+ /**
+ * 固定损耗量
+ */
+ @TableField("JSBOMZX_GDSH")
+ private BigDecimal jsbomzxGdsh;
+
+ /**
+ * 变动损耗率
+ */
+ @TableField("JSBOMZX_BDSH")
+ private BigDecimal jsbomzxBdsh;
+
+ /**
+ * 偏置天数
+ */
+ @TableField("JSBOMZX_PZTS")
+ private Integer jsbomzxPzts;
+
+ /**
+ * 替代物料行
+ */
+ @TableField("JSBOMZX_TDWL")
+ private Integer jsbomzxTdwl;
+
+ /**
+ * 备注
+ */
+ @TableField("JSBOMZX_BZ")
+ private String jsbomzxBz;
+
+ /**
+ * 供应商ID
+ */
+ @TableField("JSBOMZX_GYSID")
+ private String jsbomzxGysid;
+
+ /**
+ * 供应商编号
+ */
+ @TableField("JSBOMZX_GYSBH")
+ private String jsbomzxGysbh;
+
+ /**
+ * BOM子项辅助信息ID
+ */
+ @TableField("JSBOMZX_FZID")
+ private String jsbomzxFzid;
+
+ /**
+ * BOM子项辅助信息描述
+ */
+ @TableField("JSBOMZX_FZMS")
+ private String jsbomzxFzms;
+
+ /**
+ * 供应商
+ */
+ @TableField("JSBOMZX_GYSMC")
+ private String jsbomzxGysmc;
+
+ /**
+ * 备件比例3
+ */
+ @TableField("JSBOMZX_BJBL3")
+ private BigDecimal jsbomzxBjbl3;
+
+ /**
+ * 备件比例1
+ */
+ @TableField("JSBOMZX_BJBL1")
+ private BigDecimal jsbomzxBjbl1;
+
+ /**
+ * 备件比例2
+ */
+ @TableField("JSBOMZX_BJBL2")
+ private BigDecimal jsbomzxBjbl2;
+
+ /**
+ * 车间领料
+ */
+ @TableField("JSBOMZX_SFCJLL")
+ private String jsbomzxSfcjll;
+
+}
diff --git a/lidee-core/src/main/java/com/lideeyunji/core/framework/entity/erp/ArrivalOrderEntity.java b/lidee-core/src/main/java/com/lideeyunji/core/framework/entity/erp/ArrivalOrderEntity.java
new file mode 100644
index 0000000..eac4316
--- /dev/null
+++ b/lidee-core/src/main/java/com/lideeyunji/core/framework/entity/erp/ArrivalOrderEntity.java
@@ -0,0 +1,21 @@
+package com.lideeyunji.core.framework.entity.erp;
+
+import lombok.Data;
+import java.time.LocalDateTime;
+import java.util.List;
+
+@Data
+public class ArrivalOrderEntity {
+ // 1. 表头信息
+ private String arrivalNo; // 到货单号
+ private String saleOrderNo; // 销售订单号
+ private String businessType; // 业务类型
+ private String supplierName; // 供应商
+ private String supplierCode; // 供应商编码
+ private String createBy; // 创建人
+ private LocalDateTime createTime;// 创建时间
+ private String updateBy; // 更新人
+ private LocalDateTime updateTime;// 更新时间
+
+ private List itemList;
+}
diff --git a/lidee-core/src/main/java/com/lideeyunji/core/framework/entity/erp/ArrivalOrderItemEntity.java b/lidee-core/src/main/java/com/lideeyunji/core/framework/entity/erp/ArrivalOrderItemEntity.java
new file mode 100644
index 0000000..e965359
--- /dev/null
+++ b/lidee-core/src/main/java/com/lideeyunji/core/framework/entity/erp/ArrivalOrderItemEntity.java
@@ -0,0 +1,15 @@
+package com.lideeyunji.core.framework.entity.erp;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+public class ArrivalOrderItemEntity {
+ private Long arrivalNoticeId; // 到货通知单ID
+ private Integer lineNo; // 子项行号
+ private Long materialId; // 物料ID
+ private String materialCode; // 物料编码
+ private BigDecimal checkQty; // 请检数量
+ private String unit; // 计量单位
+}
diff --git a/lidee-core/src/main/java/com/lideeyunji/core/framework/mapper/bom/BomMaterialBackUpMapper.java b/lidee-core/src/main/java/com/lideeyunji/core/framework/mapper/bom/BomMaterialBackUpMapper.java
new file mode 100644
index 0000000..cc082c9
--- /dev/null
+++ b/lidee-core/src/main/java/com/lideeyunji/core/framework/mapper/bom/BomMaterialBackUpMapper.java
@@ -0,0 +1,20 @@
+package com.lideeyunji.core.framework.mapper.bom;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.lideeyunji.core.framework.entity.bom.CappIntegrationPbomTable;
+import com.lideeyunji.core.framework.entity.bom.CopyJsbomEntity;
+import com.lideeyunji.core.framework.entity.bom.JsbomBackUpEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+/**
+ * bom物料 Mapper 接口
+ *
+ * @since 2026-04-11
+ */
+@Mapper
+@DS("erp_dev")
+public interface BomMaterialBackUpMapper extends BaseMapper {
+}
diff --git a/lidee-core/src/main/java/com/lideeyunji/core/framework/mapper/bom/JsbomzxBackUpMapper.java b/lidee-core/src/main/java/com/lideeyunji/core/framework/mapper/bom/JsbomzxBackUpMapper.java
new file mode 100644
index 0000000..71867cb
--- /dev/null
+++ b/lidee-core/src/main/java/com/lideeyunji/core/framework/mapper/bom/JsbomzxBackUpMapper.java
@@ -0,0 +1,13 @@
+
+package com.lideeyunji.core.framework.mapper.bom;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.lideeyunji.core.framework.entity.bom.CopyJsbomzxEntity;
+import com.lideeyunji.core.framework.entity.bom.JsbomzxBackUpEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+@DS("erp_dev")
+public interface JsbomzxBackUpMapper extends BaseMapper {
+}
diff --git a/lidee-core/src/main/java/com/lideeyunji/core/framework/service/erp/impl/BomMaterialServiceImpl.java b/lidee-core/src/main/java/com/lideeyunji/core/framework/service/erp/impl/BomMaterialServiceImpl.java
index 430d8d0..b75da44 100644
--- a/lidee-core/src/main/java/com/lideeyunji/core/framework/service/erp/impl/BomMaterialServiceImpl.java
+++ b/lidee-core/src/main/java/com/lideeyunji/core/framework/service/erp/impl/BomMaterialServiceImpl.java
@@ -58,6 +58,10 @@ public class BomMaterialServiceImpl extends ServiceImpl().eq(ErpMaterialExtendEntity::getMaterialId, existData.getId()));
-// copyMaterialExtendMapper.update(copyMaterialExtendEntity, new LambdaUpdateWrapper().eq(CopyMaterialExtendEntity::getMaterialId, existData.getId()));
-// log.debug("修改bom物料信息: {}", data.getCcode());
-// }
try {
if (jsbom != null) {
+ JsbomBackUpEntity jsbomBackUpEntity = new JsbomBackUpEntity();
+ BeanUtils.copyProperties(jsbom, jsbomBackUpEntity);
updateBomMain(jsbom, data, copyJsbomEntity);
- jsbom.setJsbomCpid(existData!=null?existData.getId():null);
+ jsbom.setJsbomCpid(existData != null ? existData.getId() : null);
baseMapper.updateById(jsbom);
copyBomMaterialMapper.updateById(copyJsbomEntity);
+ int i = bomMaterialBackUpMapper.updateById(jsbomBackUpEntity);
+ if (i == 0)
+ bomMaterialBackUpMapper.insert(jsbomBackUpEntity);
log.debug("更新BOM主表,产品编号: {}, 版本: {}", data.getCcode(), data.getCversion());
return 2;
} else {
JsbomEntity newJsbom = createBomMain(data);
- newJsbom.setJsbomCpid(existData!=null?existData.getId():null);
+ newJsbom.setJsbomCpid(existData != null ? existData.getId() : null);
baseMapper.insert(newJsbom);
BeanUtils.copyProperties(newJsbom, copyJsbomEntity);
copyBomMaterialMapper.insert(copyJsbomEntity);
@@ -460,10 +458,16 @@ public class BomMaterialServiceImpl extends ServiceImpl