diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/feign/IMoldApplyClient.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/feign/IMoldApplyClient.java
new file mode 100644
index 00000000..58baa9c5
--- /dev/null
+++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/feign/IMoldApplyClient.java
@@ -0,0 +1,32 @@
+package org.springblade.desk.order.feign;
+
+import org.springblade.core.launch.constant.AppConstant;
+import org.springblade.desk.order.pojo.entity.MoldApply;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.GetMapping;
+
+/**
+ * 模具计划接口声明
+ *
+ * @author lqk
+ */
+@FeignClient(
+ value = AppConstant.APPLICATION_DESK_NAME
+)
+public interface IMoldApplyClient {
+
+ String API_PREFIX = "/feign/moldApply/";
+
+ String SAVE_BY_DEMAND = API_PREFIX + "/saveByDemand";
+
+
+ /**
+ * 生成模具计划
+ *
+ * @param moldApply
+ * @return
+ */
+ @GetMapping(SAVE_BY_DEMAND)
+ Boolean saveByDemand(MoldApply moldApply);
+
+}
diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/feign/IOrderClient.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/feign/IOrderClient.java
new file mode 100644
index 00000000..f4bf3dc3
--- /dev/null
+++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/feign/IOrderClient.java
@@ -0,0 +1,32 @@
+package org.springblade.desk.order.feign;
+
+import org.springblade.core.launch.constant.AppConstant;
+import org.springblade.desk.order.pojo.entity.YieldPlan;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.GetMapping;
+
+/**
+ * 模具计划接口声明
+ *
+ * @author lqk
+ */
+@FeignClient(
+ value = AppConstant.APPLICATION_DESK_NAME
+)
+public interface IOrderClient {
+
+ String API_PREFIX = "/feign/order/";
+
+ String SAVE_GLASS_CAKE = API_PREFIX + "/saveGlassCake";
+
+
+ /**
+ * 生成玻璃饼烧结计划并下达
+ *
+ * @param yieldPlan
+ * @return
+ */
+ @GetMapping(SAVE_GLASS_CAKE)
+ Boolean saveGlassCake(YieldPlan yieldPlan);
+
+}
diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/pojo/entity/PlateGoodsApply.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/pojo/entity/PlateGoodsApply.java
index f8837d27..2fdecb93 100644
--- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/pojo/entity/PlateGoodsApply.java
+++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/pojo/entity/PlateGoodsApply.java
@@ -2,6 +2,8 @@ package org.springblade.desk.order.pojo.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.NullSerializer;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.springblade.core.mp.base.BaseEntity;
@@ -21,6 +23,11 @@ public class PlateGoodsApply extends BaseEntity {
@TableField(exist = false)
private static final long serialVersionUID = 1L;
+ /**
+ * 申报单号
+ */
+ @TableField(value = "APPLY_CODE")
+ private String applyCode;
/**
* 作业中心
@@ -74,6 +81,7 @@ public class PlateGoodsApply extends BaseEntity {
/**
* 本次申报添加量 = 班组预添加量
*/
+ @JsonSerialize(nullsUsing = NullSerializer.class)
@Schema(description = "本次申报添加量")
@TableField(value = "GOODS_ADD_TOTAL")
private BigDecimal goodsAddTotal;
@@ -81,6 +89,7 @@ public class PlateGoodsApply extends BaseEntity {
/**
* 本次申报物料需求单总物料需求剩余量 = 可使用定额
*/
+ @JsonSerialize(nullsUsing = NullSerializer.class)
@Schema(description = "本次申报总物料需求剩余量")
@TableField(value = "GOODS_DEMAND_TOTAL")
private BigDecimal goodsDemandTotal;
@@ -88,6 +97,7 @@ public class PlateGoodsApply extends BaseEntity {
/**
* 本次申报物料需求单已申报定额总量(已添加总量) = 累计结余
*/
+ @JsonSerialize(nullsUsing = NullSerializer.class)
@Schema(description = "已申报定额总量")
@TableField(value = "DECLARED_QUOTA_TOTAL")
private BigDecimal declaredQuotaTotal;
diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/pojo/entity/PlateGoodsRecord.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/pojo/entity/PlateGoodsRecord.java
index 6d77c6fe..72f7544b 100644
--- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/pojo/entity/PlateGoodsRecord.java
+++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/pojo/entity/PlateGoodsRecord.java
@@ -129,10 +129,4 @@ public class PlateGoodsRecord extends BaseEntity {
*/
@TableField(value = "SURPLUS")
private BigDecimal surplus;
-
- /**
- * 本次关联订单数量
- */
- @TableField(value = "DETAIL_ORDER_NUM")
- private Integer detailOrderNum;
}
diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/pojo/entity/YieldOrderCraft.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/pojo/entity/YieldOrderCraft.java
index ab5035ea..1ffa6a3d 100644
--- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/pojo/entity/YieldOrderCraft.java
+++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/pojo/entity/YieldOrderCraft.java
@@ -32,15 +32,33 @@ public class YieldOrderCraft extends BaseEntity {
private String craftNo;
/**
- * 工序排序序号
+ * 工序Id(DS_PROCESS)
+ */
+ @TableField(value = "PID")
+ private Long pid;
+
+ /**
+ * 工序排序序号 - 工序冗余字段
*/
@TableField(value = "PROCESS_NO")
private String processNo;
+ /**
+ * 工序编码 - 工序冗余字段
+ */
+ @TableField(value = "PROCESS_CODE")
+ private String processCode;
+
+ /**
+ * 工序名称 - 工序冗余字段
+ */
+ @TableField(value = "PROCESS_NAME")
+ private String processName;
+
/**
* 工序设置ID, bs_procedure_set
*/
- @TableField(value = "PPS_ID")
+ @TableField(value = "BS_PROCESS_SET")
private Long ppsId;
/**
@@ -55,11 +73,6 @@ public class YieldOrderCraft extends BaseEntity {
@TableField(value = "HOUR_QUOTA")
private Double hourQuota;
- /**
- * 工序Id
- */
- @TableField(value = "PID")
- private Long pid;
/**
* 计划开始
@@ -92,7 +105,7 @@ public class YieldOrderCraft extends BaseEntity {
private Long ocId;
/**
- * 工艺能力 craft_ability
+ * 工艺能力 BS_CRAFT_ABILITY
*/
@TableField(value = "CA_ID")
private Long caId;
diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/pojo/entity/YieldPlan.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/pojo/entity/YieldPlan.java
index f7ddf5e8..536dddba 100644
--- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/pojo/entity/YieldPlan.java
+++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/pojo/entity/YieldPlan.java
@@ -7,7 +7,6 @@ import lombok.Data;
import org.springblade.core.mp.base.BaseEntity;
import org.springframework.format.annotation.DateTimeFormat;
-import java.math.BigDecimal;
import java.util.Date;
/**
@@ -110,13 +109,13 @@ public class YieldPlan extends BaseEntity {
* 已交件数量
*/
@TableField(value = "DELIVERY_QTY")
- private Long deliveryQty;
+ private Double deliveryQty;
/**
* 已分批数量
*/
@TableField(value = "ALREADY_BRANCH_QTY")
- private Long alreadyBranchQty;
+ private Double alreadyBranchQty;
/**
* 一级工艺线路
diff --git a/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpYieldOrderClient.java b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpYieldOrderClient.java
new file mode 100644
index 00000000..631676a1
--- /dev/null
+++ b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpYieldOrderClient.java
@@ -0,0 +1,52 @@
+package org.springblade.erpdata.feign;
+
+
+import org.springblade.common.constant.LauncherConstant;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import java.util.Date;
+
+/**
+ * 外协相关erp操作Feign接口类
+ *
+ * @author qyl
+ * @since 2026-02-27
+ */
+@FeignClient(
+ value = LauncherConstant.APPLICATION_ERP_DATA_NAME,
+ fallback = IErpDataOemClientFallback.class
+)
+public interface IErpYieldOrderClient {
+
+ String API_PREFIX = "/feign/erp/yieldOrder";
+ String SAVE_GLASS_CAKE = API_PREFIX + "/saveGlassCake";
+
+ /**
+ * 生成玻璃饼订单
+ *
+ * @param yoCode
+ * @param cardNo
+ * @param batchNo
+ * @param prodIdent
+ * @param demandDate
+ * @param planUser
+ * @param ypCode
+ * @param poQty
+ * @param partCode
+ * @param quota
+ */
+ @GetMapping(SAVE_GLASS_CAKE)
+ void saveGlassCake(@RequestParam("yoCode") String yoCode,
+ @RequestParam("cardNo") String cardNo,
+ @RequestParam("batchNo") String batchNo,
+ @RequestParam("prodIdent") String prodIdent,
+ @RequestParam("demandDate") Date demandDate,
+ @RequestParam("planUser") String planUser,
+ @RequestParam("ypCode") String ypCode,
+ @RequestParam("poQty") Long poQty,
+ @RequestParam("partCode") String partCode,
+ @RequestParam("quota") Double quota);
+
+}
diff --git a/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpYieldOrderClientFallback.java b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpYieldOrderClientFallback.java
new file mode 100644
index 00000000..c20fcbb5
--- /dev/null
+++ b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpYieldOrderClientFallback.java
@@ -0,0 +1,18 @@
+package org.springblade.erpdata.feign;
+
+
+import java.util.Date;
+
+/**
+ * Feign接口类
+ *
+ * @author liuqingkun
+ */
+public class IErpYieldOrderClientFallback implements IErpYieldOrderClient {
+
+
+ @Override
+ public void saveGlassCake(String yoCode, String cardNo, String batchNo, String prodIdent, Date demandDate, String planUser, String ypCode, Long poQty, String partCode, Double quota) {
+
+ }
+}
diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/feign/MoldApplyClient.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/feign/MoldApplyClient.java
new file mode 100644
index 00000000..b8bb90db
--- /dev/null
+++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/feign/MoldApplyClient.java
@@ -0,0 +1,53 @@
+/**
+ * BladeX Commercial License Agreement
+ * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
+ *
+ * Use of this software is governed by the Commercial License Agreement
+ * obtained after purchasing a license from BladeX.
+ *
+ * 1. This software is for development use only under a valid license
+ * from BladeX.
+ *
+ * 2. Redistribution of this software's source code to any third party
+ * without a commercial license is strictly prohibited.
+ *
+ * 3. Licensees may copyright their own code but cannot use segments
+ * from this software for such purposes. Copyright of this software
+ * remains with BladeX.
+ *
+ * Using this software signifies agreement to this License, and the software
+ * must not be used for illegal purposes.
+ *
+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
+ * not liable for any claims arising from secondary or illegal development.
+ *
+ * Author: Chill Zhuang (bladejava@qq.com)
+ */
+package org.springblade.desk.order.feign;
+
+import io.swagger.v3.oas.annotations.Hidden;
+import lombok.RequiredArgsConstructor;
+import org.springblade.core.tenant.annotation.NonDS;
+import org.springblade.desk.order.pojo.entity.MoldApply;
+import org.springblade.desk.order.service.IMoldApplyService;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * Feign 排产相关定时任务接口
+ *
+ * @author Chill
+ */
+@NonDS
+@Hidden()
+@RestController
+@RequiredArgsConstructor
+public class MoldApplyClient implements IMoldApplyClient {
+
+ private final IMoldApplyService moldApplyService;
+
+
+ @Override
+ public Boolean saveByDemand(MoldApply moldApply) {
+ return moldApplyService.saveByDemand(moldApply);
+ }
+}
diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/feign/OrderClient.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/feign/OrderClient.java
new file mode 100644
index 00000000..1e8284ec
--- /dev/null
+++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/feign/OrderClient.java
@@ -0,0 +1,53 @@
+/**
+ * BladeX Commercial License Agreement
+ * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
+ *
+ * Use of this software is governed by the Commercial License Agreement
+ * obtained after purchasing a license from BladeX.
+ *
+ * 1. This software is for development use only under a valid license
+ * from BladeX.
+ *
+ * 2. Redistribution of this software's source code to any third party
+ * without a commercial license is strictly prohibited.
+ *
+ * 3. Licensees may copyright their own code but cannot use segments
+ * from this software for such purposes. Copyright of this software
+ * remains with BladeX.
+ *
+ * Using this software signifies agreement to this License, and the software
+ * must not be used for illegal purposes.
+ *
+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
+ * not liable for any claims arising from secondary or illegal development.
+ *
+ * Author: Chill Zhuang (bladejava@qq.com)
+ */
+package org.springblade.desk.order.feign;
+
+import io.swagger.v3.oas.annotations.Hidden;
+import lombok.RequiredArgsConstructor;
+import org.springblade.core.tenant.annotation.NonDS;
+import org.springblade.desk.order.pojo.entity.YieldPlan;
+import org.springblade.desk.order.service.IYieldPlanService;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * Feign 排产相关定时任务接口
+ *
+ * @author Chill
+ */
+@NonDS
+@Hidden()
+@RestController
+@RequiredArgsConstructor
+public class OrderClient implements IOrderClient {
+
+ private final IYieldPlanService yieldPlanService;
+
+ @Override
+ public Boolean saveGlassCake(YieldPlan yieldPlan) {
+ yieldPlanService.saveGlassCake(yieldPlan);
+ return null;
+ }
+}
diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/mapper/PlateGoodsApplyMapper.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/mapper/PlateGoodsApplyMapper.java
index d93db2b7..c7bd7ecf 100644
--- a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/mapper/PlateGoodsApplyMapper.java
+++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/mapper/PlateGoodsApplyMapper.java
@@ -22,4 +22,12 @@ public interface PlateGoodsApplyMapper extends BaseMapper {
* @return
*/
List selectPage(IPage page, PlateGoodsApply entity);
+
+ /**
+ * 查询当前库中的最大编码
+ *
+ * @param codePattern
+ * @return
+ */
+ String getMaxByCodePattern(String codePattern);
}
diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/mapper/PlateGoodsApplyMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/mapper/PlateGoodsApplyMapper.xml
index 780c7960..7b140b6a 100644
--- a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/mapper/PlateGoodsApplyMapper.xml
+++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/mapper/PlateGoodsApplyMapper.xml
@@ -5,7 +5,7 @@
ID, TENANT_ID, CREATE_USER, CREATE_TIME, CREATE_DEPT, UPDATE_USER, UPDATE_TIME, STATUS, IS_DELETED,
- APPROVAL_MAN, APPROVAL_TIME, APPROVAL_STATUS, APPROVAL_MEMO, WC_ID, GOODS_CODE, GOODS_DEMAND, GOODS_NAME,
+ APPLY_CODE,APPROVAL_MAN, APPROVAL_TIME, APPROVAL_STATUS, APPROVAL_MEMO, WC_ID, GOODS_CODE, GOODS_DEMAND, GOODS_NAME,
GOODS_ADD_TOTAL, GOODS_DEMAND_TOTAL, DECLARED_QUOTA_TOTAL
@@ -23,4 +23,15 @@
AND status = #{entity.status}
+
+
+ SELECT *
+ FROM(
+ SELECT APPLY_CODE
+ FROM MES_PLATE_GOODS_APPLY
+ WHERE IS_DELETED = 0 AND APPLY_CODE LIKE CONCAT(#{codePattern}, '%')
+ ORDER BY APPLY_CODE DESC
+ )
+ WHERE ROWNUM = 1
+
diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/mapper/PlateGoodsRecordMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/mapper/PlateGoodsRecordMapper.xml
index 8ae13313..df6619f2 100644
--- a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/mapper/PlateGoodsRecordMapper.xml
+++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/mapper/PlateGoodsRecordMapper.xml
@@ -9,7 +9,7 @@
WC_ID, GOODS_CODE, GOODS_DEMAND, SILVER_POTASSIUM, COEFFICIENT, APPROVAL_MAN, APPROVAL_TIME,
APPROVAL_STATUS, APPROVAL_MEMO, DECLARED_QUOTA, DECLARED_SILVER, DECLARED_STATUS, GOODS_BO_ID,
COEFFICIENT_BO_ID, PGR_CODE, SURPLUS, SILVER_POTASSIUM_RESIDUE, DEMAND_CODE, INVOLVING_RECORD_CODE,
- NOT_ADD_VAL, DETAIL_ORDER_NUM
+ NOT_ADD_VAL
diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/mapper/YieldOrderCraftMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/mapper/YieldOrderCraftMapper.xml
index c257a4bb..a9f553fd 100644
--- a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/mapper/YieldOrderCraftMapper.xml
+++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/mapper/YieldOrderCraftMapper.xml
@@ -5,8 +5,8 @@
SELECT ID, TENANT_ID, CREATE_USER, CREATE_DEPT, CREATE_TIME, UPDATE_USER, UPDATE_TIME, STATUS, IS_DELETED,
- YO_ID, CRAFT_NO, PROCESS_NO, PPS_ID, MAKE_MEMO, HOUR_QUOTA, PID, START_TIME, END_TIME, MAKE_TEAM, OC_ID,
- CA_ID, RP_ID, WORK_CENTER_ID
+ YO_ID, CRAFT_NO, PROCESS_NO, PPS_ID, MAKE_MEMO, HOUR_QUOTA, PID, START_TIME, END_TIME, MAKE_TEAM,
+ OC_ID, CA_ID, RP_ID, WORK_CENTER_ID, IS_OUTSOURCE, PROCESS_CODE, PROCESS_NAME
FROM MES_YIELD_ORDER_CRAFT
WHERE IS_DELETED = 0
diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/IMoldApplyService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/IMoldApplyService.java
index 0629c0d4..d2febd8d 100644
--- a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/IMoldApplyService.java
+++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/IMoldApplyService.java
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.core.mp.base.BaseService;
import org.springblade.desk.order.pojo.entity.MoldApply;
+import java.util.Date;
import java.util.List;
/**
@@ -46,4 +47,28 @@ public interface IMoldApplyService extends BaseService {
* @return
*/
boolean saveBatchByPage(List applyList);
+
+ /**
+ * 下达模具计划
+ *
+ * @param partCode
+ * @param moCode
+ * @param planType
+ * @param quantity
+ * @param needDate
+ * @param level
+ * @param keeper
+ * @param createMan
+ * @param memo
+ * @return
+ */
+ String createMoldPlan(String partCode,
+ String moCode,
+ String planType,
+ Integer quantity,
+ Date needDate,
+ String level,
+ String keeper,
+ String createMan,
+ String memo);
}
diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/IYieldOrderService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/IYieldOrderService.java
index fe589c31..c0476702 100644
--- a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/IYieldOrderService.java
+++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/IYieldOrderService.java
@@ -5,7 +5,9 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import jakarta.validation.constraints.NotEmpty;
import org.springblade.common.exception.BusinessException;
import org.springblade.core.mp.base.BaseService;
+import org.springblade.desk.dashboard.pojo.entity.DsPartEntity;
import org.springblade.desk.order.pojo.entity.YieldOrder;
+import org.springblade.desk.order.pojo.entity.YieldPlan;
import java.util.List;
@@ -54,6 +56,15 @@ public interface IYieldOrderService extends BaseService {
*/
IPage pageMaterialApply(IPage page, Long wcId, Integer materialType, Integer overHalfMon);
+ /**
+ * 查询是否存在玻璃饼生产订单
+ *
+ * @param partCode
+ * @param memo
+ * @return
+ */
+ List findByPartCodeAndMemo(String partCode, String memo);
+
/**
* 数据校验
*
@@ -212,7 +223,26 @@ public interface IYieldOrderService extends BaseService {
* @param cardNo 旧单号
* @return java.lang.String
*/
- String getNewCardNo(String cardNo);
+ String getNewCardNo(String cardNo);
+
+ Long getWcId(Long orderId);
+
+ /**
+ * 下达玻璃饼生产订单
+ *
+ * @param yieldPlan
+ * @param dsPart
+ */
+ void saveGlassCake(YieldPlan yieldPlan, DsPartEntity dsPart);
- Long getWcId(Long orderId);
+ /**
+ * 下达玻璃饼生产订单 - 调用ERP存储过程
+ *
+ * @param yoCode
+ * @param cardNo
+ * @param batchNo
+ * @param po
+ * @param dsPartSub
+ */
+ void saveGlassCake(String yoCode, String cardNo, String batchNo, YieldPlan po, DsPartEntity dsPartSub);
}
diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/IYieldPlanService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/IYieldPlanService.java
index f35808bc..6c50e32e 100644
--- a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/IYieldPlanService.java
+++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/IYieldPlanService.java
@@ -48,6 +48,22 @@ public interface IYieldPlanService extends BaseService {
*/
List getFirstProcess(String partCode);
+ /**
+ * 保存生产计划
+ *
+ * @param yieldPlan
+ * @return
+ */
+ Boolean saveYieldPlan(YieldPlan yieldPlan);
+
+ /**
+ * 根据生产计划生成玻璃饼订单
+ *
+ * @param yieldPlan
+ * @return
+ */
+ Boolean saveGlassCake(YieldPlan yieldPlan);
+
/**
* 根据生产计划ID生成玻璃饼订单
*
diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/MoldApplyServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/MoldApplyServiceImpl.java
index 66de4376..bfb8b891 100644
--- a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/MoldApplyServiceImpl.java
+++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/MoldApplyServiceImpl.java
@@ -11,6 +11,7 @@ import org.springblade.desk.order.pojo.enums.MoldApplyEnum;
import org.springblade.desk.order.service.IMoldApplyService;
import org.springframework.stereotype.Service;
+import java.util.Date;
import java.util.List;
/**
@@ -51,4 +52,38 @@ public class MoldApplyServiceImpl extends BaseServiceImpl findByPartCodeAndMemo(String partCode, String memo) {
+ LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(YieldOrder.class)
+ .eq(YieldOrder::getIsDeleted, CommonConstant.DELETE_FALSE)
+ .eq(YieldOrder::getPartCode, partCode)
+ .eq(YieldOrder::getMemo, memo);
+ List yieldOrderList = baseMapper.selectList(queryWrapper);
+ return yieldOrderList;
+ }
+
@Override
public String dataVerify(List ids) {
// 先根据ID查询订单列表
@@ -725,6 +739,20 @@ public class YieldOrderServiceImpl extends BaseServiceImpl wrapper = Wrappers.lambdaQuery(YieldOrder.class).eq(YieldOrder::getCardNo, codePattern);
+ LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(YieldOrder.class)
+ .eq(YieldOrder::getCardNo, codePattern);
YieldOrder yieldOrder = baseMapper.selectOne(wrapper);
if (yieldOrder != null && yieldOrder.getId() != null) {
@@ -865,23 +894,54 @@ public class YieldOrderServiceImpl extends BaseServiceImpl wrapper = Wrappers.lambdaQuery(YieldOrder.class)
+ .likeRight(YieldOrder::getBatchNo, codePattern)
+ .orderBy(true, false, YieldOrder::getYoCode);
+ YieldOrder yieldOrder = baseMapper.selectOne(wrapper);
+
+ if (yieldOrder != null) {
+ num = Integer.parseInt(yieldOrder.getBatchNo().substring(codePattern.length(), codePattern.length() + len));
+ }
+ num++;
+ return num;
+ }
private String nextBatchNo() {
// 自增总长度
int len = 3;
- // 自增值
- int num = 0;
// 编码模式
String codePattern = "R" + DateUtil.today();
+ int num = this.getMaxCodeByPattern(codePattern, len);
- LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(YieldOrder.class).likeRight(YieldOrder::getBatchNo, codePattern).orderBy(true, false, YieldOrder::getYoCode);
- YieldOrder yieldOrder = baseMapper.selectOne(wrapper);
+ // 下个编码
+ return codePattern + StringPrefixUtils.prefix(String.valueOf(num), "0", len);
+ }
- if (yieldOrder != null) {
- num = Integer.parseInt(yieldOrder.getBatchNo().substring(codePattern.length(), codePattern.length() + len));
+ /**
+ * @param codeType 0:订单号、1:流程卡号;2、批次号
+ * @return String
+ * @Description: 用于给玻璃饼产生对应的订单号、 流程卡号、批次号
+ * @Author dxl
+ * @CreateTime 2023/10/12 16:03
+ */
+ private String nextBlbCode(int codeType) {
+ // 自增总长度
+ int len = 5;
+ if (codeType == 2) {
+ len = 3;
}
- num++;
+
+ // 编码模式
+ String codePattern = "RB" + DateUtil.today();
+ int num = this.getMaxCodeByPattern(codePattern, len);
+
// 下个编码
+ if (codeType == 0) {
+ codePattern = "WO-B" + DateUtil.today();
+ }
return codePattern + StringPrefixUtils.prefix(String.valueOf(num), "0", len);
}
diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldPlanServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldPlanServiceImpl.java
index 5238b84f..03ae5cef 100644
--- a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldPlanServiceImpl.java
+++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldPlanServiceImpl.java
@@ -11,7 +11,9 @@ import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.api.ResultCode;
+import org.springblade.core.tool.utils.DateUtil;
import org.springblade.core.tool.utils.ObjectUtil;
+import org.springblade.desk.dashboard.constant.DsPartConst;
import org.springblade.desk.dashboard.pojo.entity.DsPartEntity;
import org.springblade.desk.dashboard.service.IDsPartService;
import org.springblade.desk.order.mapper.YieldPlanMapper;
@@ -100,25 +102,43 @@ public class YieldPlanServiceImpl extends BaseServiceImpl glassCakePartList = dsPartService.selectDsPartByPatCode(yieldPlan.getPartCode(), DsPartConst.SIN_TER_TYPE_BLB);
+ if (glassCakePartList != null && glassCakePartList.size() > 0) {
+ for (DsPartEntity dsPart : glassCakePartList) {
+ //不包含玻璃字样的代表维护错误,跳过
+ if (StringUtils.isBlank(dsPart.getPartCode()) || StringUtils.isBlank(dsPart.getPartName()) || !dsPart.getPartName().contains("玻璃")) {
+ continue;
+ }
+ List glassCakeOrderList = yieldOrderService.findByPartCodeAndMemo(dsPart.getPartCode(), yieldPlan.getYpCode());
+ if (glassCakeOrderList == null || glassCakeOrderList.size() == 0) {
+ yieldOrderService.saveGlassCake(yieldPlan, dsPart);
+ }
+ }
+ }
+ return true;
+ }
+
@Override
public Boolean saveGlassCake(String yieldPlanId) {
// 根据ID查询生产计划信息
YieldPlan yieldPlan = baseMapper.selectById(yieldPlanId);
- //TODO 调用生产订单服务类中方法,生成玻璃饼订单并保存
-// List blbSubList = dsPartSubService.listByPartCode(yieldPlan.getPartCode(), DsPartSub.SIN_TER_TYPE_BLB);
-// if (blbSubList != null && blbSubList.size() > 0) {
-// List blbList = null;
-// for (DsPartSub dps : blbSubList) {
-// //不包含玻璃字样的代表维护错误,跳过
-// if (StringUtils.isBlank(dps.getSubCode()) || StringUtils.isBlank(dps.getSubName()) || !dps.getSubName().contains("玻璃")) {
-// continue;
-// }
-// blbList = pjYieldOrderService.findByPartCodeAndMemo(dps.getSubCode(), yieldPlan.getYpCode());
-// if (blbList == null || blbList.size() == 0) {
-// pjYieldOrderService.saveBlbOrder(po, dps);
-// }
-// }
-// }
+
+ this.saveGlassCake(yieldPlan);
return true;
}
diff --git a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/feign/ErpYieldOrderClientImpl.java b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/feign/ErpYieldOrderClientImpl.java
new file mode 100644
index 00000000..7a08f72d
--- /dev/null
+++ b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/feign/ErpYieldOrderClientImpl.java
@@ -0,0 +1,31 @@
+package org.springblade.erpdata.feign;
+
+
+import io.swagger.v3.oas.annotations.Hidden;
+import lombok.AllArgsConstructor;
+import org.springblade.core.tenant.annotation.NonDS;
+import org.springblade.erpdata.service.IErpYieldOrderService;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.Date;
+
+
+/**
+ * 外协相关erp操作Feign实现类
+ *
+ * @author qyl
+ * @serial 2026年2月27日
+ */
+@NonDS
+@Hidden
+@RestController
+@AllArgsConstructor
+public class ErpYieldOrderClientImpl implements IErpYieldOrderClient {
+
+ private final IErpYieldOrderService erpYieldOrderService;
+
+ @Override
+ public void saveGlassCake(String yoCode, String cardNo, String batchNo, String prodIdent, Date demandDate, String planUser, String ypCode, Long poQty, String partCode, Double quota) {
+ erpYieldOrderService.saveGlassCake(yoCode, cardNo, batchNo, prodIdent, demandDate, planUser, ypCode, poQty, partCode, quota);
+ }
+}
diff --git a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpYieldOrderMapper.java b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpYieldOrderMapper.java
new file mode 100644
index 00000000..f95b3b93
--- /dev/null
+++ b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpYieldOrderMapper.java
@@ -0,0 +1,21 @@
+package org.springblade.erpdata.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.Mapper;
+
+import java.util.Map;
+
+/**
+ * Mapper 接口
+ *
+ * @author qyl
+ */
+public interface ErpYieldOrderMapper extends Mapper {
+
+ /**
+ * 生成玻璃饼订单
+ *
+ * @param params
+ */
+ void saveGlassCake(Map params);
+
+}
diff --git a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpYieldOrderMapper.xml b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpYieldOrderMapper.xml
new file mode 100644
index 00000000..b7dd5a24
--- /dev/null
+++ b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpYieldOrderMapper.xml
@@ -0,0 +1,30 @@
+
+
+
+
+
+ {call p_rb_sync_transfer(
+ #{v_work_roam, mode=IN, jdbcType=VARCHAR},
+ #{v_next_roam, mode=IN, jdbcType=VARCHAR},
+ #{v_yo_code, mode=IN, jdbcType=VARCHAR},
+ #{v_po_code, mode=IN, jdbcType=VARCHAR},
+ #{v_part_code, mode=IN, jdbcType=VARCHAR},
+ #{v_prod_ident, mode=IN, jdbcType=VARCHAR},
+ #{v_use_dept, mode=IN, jdbcType=VARCHAR},
+ #{v_demand_date, mode=IN, jdbcType=DATE},
+ #{v_plan_user, mode=IN, jdbcType=VARCHAR},
+ #{v_release_date, mode=IN, jdbcType=DATE},
+ #{v_memo, mode=IN, jdbcType=VARCHAR},
+ #{v_card_no, mode=IN, jdbcType=VARCHAR},
+ #{v_batch_no, mode=IN, jdbcType=VARCHAR},
+ #{v_yo_qty, mode=IN, jdbcType=NUMERIC},
+ #{v_yield_type, mode=IN, jdbcType=NUMERIC},
+ #{v_warctlr, mode=IN, jdbcType=VARCHAR},
+ #{v_entrust_dept, mode=IN, jdbcType=VARCHAR},
+ #{v_recseqno, mode=IN, jdbcType=VARCHAR},
+ #{v_manual_increase, mode=IN, jdbcType=NUMERIC},
+ #{v_lev_flag, mode=IN, jdbcType=VARCHAR},
+ #{v_use_deptcode, mode=IN, jdbcType=VARCHAR}
+ )}
+
+
diff --git a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/IErpYieldOrderService.java b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/IErpYieldOrderService.java
new file mode 100644
index 00000000..9f64dc76
--- /dev/null
+++ b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/IErpYieldOrderService.java
@@ -0,0 +1,29 @@
+package org.springblade.erpdata.service;
+
+import java.util.Date;
+
+/**
+ * 外协相关erp操作service
+ *
+ * @author qyl
+ * @serial 2026年2月27日
+ */
+public interface IErpYieldOrderService {
+
+ /**
+ * 生成玻璃饼订单
+ *
+ * @param yoCode
+ * @param cardNo
+ * @param batchNo
+ * @param prodIdent
+ * @param demandDate
+ * @param planUser
+ * @param ypCode
+ * @param poQty
+ * @param partCode
+ * @param quota
+ */
+ void saveGlassCake(String yoCode, String cardNo, String batchNo, String prodIdent, Date demandDate,
+ String planUser, String ypCode, Long poQty, String partCode, Double quota);
+}
diff --git a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpYieldOrderServiceImpl.java b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpYieldOrderServiceImpl.java
new file mode 100644
index 00000000..720c1572
--- /dev/null
+++ b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpYieldOrderServiceImpl.java
@@ -0,0 +1,58 @@
+package org.springblade.erpdata.service.impl;
+
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springblade.erpdata.mapper.ErpYieldOrderMapper;
+import org.springblade.erpdata.service.IErpYieldOrderService;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+
+
+/**
+ * 外协相关erp操作service实现类
+ *
+ * @author qtl
+ * @serial 2026年2月27日
+ */
+@Slf4j
+@RequiredArgsConstructor
+@Service
+public class ErpYieldOrderServiceImpl implements IErpYieldOrderService {
+
+ private final ErpYieldOrderMapper yieldOrderMapper;
+
+
+ @Override
+ public void saveGlassCake(String yoCode, String cardNo, String batchNo, String prodIdent, Date demandDate,
+ String planUser, String ypCode, Long poQty, String partCode, Double quota) {
+ Map paramMap = new HashMap<>();
+ // 1. 赋值静态入参
+ paramMap.put("v_work_roam", "");
+ paramMap.put("v_next_roam", "");
+ paramMap.put("v_po_code", "");
+ paramMap.put("v_use_dept", "热表分厂");
+ paramMap.put("v_release_date", new Date());
+ paramMap.put("v_yield_type", (short) 3);
+ paramMap.put("v_warctlr", "");
+ paramMap.put("v_entrust_dept", "热表分厂");
+ paramMap.put("v_recseqno", "");
+ paramMap.put("v_manual_increase", Short.valueOf("1"));
+ paramMap.put("v_lev_flag", "0");
+ paramMap.put("v_use_deptcode", "");
+
+ // 2. 赋值动态入参
+ paramMap.put("v_yo_code", yoCode);
+ paramMap.put("v_part_code", partCode);
+ paramMap.put("v_prod_ident", prodIdent);
+ paramMap.put("v_demand_date", demandDate);
+ paramMap.put("v_plan_user", planUser);
+ paramMap.put("v_memo", ypCode);
+ paramMap.put("v_card_no", cardNo);
+ paramMap.put("v_batch_no", batchNo);
+ paramMap.put("v_yo_qty", quota * poQty);
+ yieldOrderMapper.saveGlassCake(paramMap);
+ }
+}
diff --git a/doc/sql/mes/increase-20690312.sql b/doc/sql/mes/increase-20690312.sql
new file mode 100644
index 00000000..29aaaca2
--- /dev/null
+++ b/doc/sql/mes/increase-20690312.sql
@@ -0,0 +1,122 @@
+ALTER TABLE mes_yield_order_craft
+ ADD process_code NVARCHAR2(255) NULL;
+COMMENT ON COLUMN mes_yield_order_craft.process_code IS '工序编码- 工序冗余字段';
+ALTER TABLE mes_yield_order_craft
+ ADD process_name NVARCHAR2(255) NULL;
+COMMENT ON COLUMN mes_yield_order_craft.process_name IS '工序名称- 工序冗余字段';
+COMMENT ON COLUMN mes_yield_order_craft.process_no IS '工序排序序号- 工序冗余字段';
+
+DROP TABLE "MES_PLATE_GOODS_APPLY_DETAIL";
+CREATE TABLE "MES_PLATE_GOODS_APPLY_DETAIL"
+(
+ "ID" NUMBER(20, 0) NOT NULL,
+ "TENANT_ID" NVARCHAR2(12),
+ "CREATE_USER" NUMBER(20, 0),
+ "CREATE_TIME" DATE,
+ "CREATE_DEPT" NUMBER(20, 0),
+ "UPDATE_USER" NUMBER(20, 0),
+ "UPDATE_TIME" DATE,
+ "STATUS" NUMBER(11, 0) NOT NULL,
+ "IS_DELETED" NUMBER(11, 0),
+ "PGA_ID" NUMBER(20, 0),
+ "PGR_ID" NUMBER(20, 0)
+) LOGGING NOCOMPRESS PCTFREE 10 INITRANS 1 STORAGE
+(
+ BUFFER_POOL DEFAULT
+) PARALLEL 1 NOCACHE DISABLE ROW MOVEMENT
+;
+COMMENT ON COLUMN "MES_PLATE_GOODS_APPLY_DETAIL"."ID" IS '主键';
+COMMENT ON COLUMN "MES_PLATE_GOODS_APPLY_DETAIL"."CREATE_USER" IS '创建人';
+COMMENT ON COLUMN "MES_PLATE_GOODS_APPLY_DETAIL"."CREATE_TIME" IS '创建时间';
+COMMENT ON COLUMN "MES_PLATE_GOODS_APPLY_DETAIL"."CREATE_DEPT" IS '创建部门';
+COMMENT ON COLUMN "MES_PLATE_GOODS_APPLY_DETAIL"."UPDATE_USER" IS '更新人';
+COMMENT ON COLUMN "MES_PLATE_GOODS_APPLY_DETAIL"."UPDATE_TIME" IS '更新时间';
+COMMENT ON COLUMN "MES_PLATE_GOODS_APPLY_DETAIL"."STATUS" IS '状态';
+COMMENT ON COLUMN "MES_PLATE_GOODS_APPLY_DETAIL"."IS_DELETED" IS '删除标记';
+COMMENT ON COLUMN "MES_PLATE_GOODS_APPLY_DETAIL"."PGA_ID" IS '添加量申报ID';
+COMMENT ON COLUMN "MES_PLATE_GOODS_APPLY_DETAIL"."PGR_ID" IS '镀层物料需求ID';
+COMMENT ON TABLE "MES_PLATE_GOODS_APPLY_DETAIL" IS '烧结模具计划-申报';
+
+-- ----------------------------
+-- Checks structure for table MES_PLATE_GOODS_APPLY_DETAIL
+-- ----------------------------
+ALTER TABLE "MES_PLATE_GOODS_APPLY_DETAIL"
+ ADD CONSTRAINT "SYS_C0021890" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "MES_PLATE_GOODS_APPLY_DETAIL"
+ ADD CONSTRAINT "SYS_C0021891" CHECK ("STATUS" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+DROP TABLE "MES_PLATE_GOODS_APPLY";
+CREATE TABLE "MES_PLATE_GOODS_APPLY"
+(
+ "ID" NUMBER(20, 0) NOT NULL,
+ "TENANT_ID" NVARCHAR2(12),
+ "CREATE_USER" NUMBER(20, 0),
+ "CREATE_TIME" DATE,
+ "CREATE_DEPT" NUMBER(20, 0),
+ "UPDATE_USER" NUMBER(20, 0),
+ "UPDATE_TIME" DATE,
+ "STATUS" NUMBER(11, 0) NOT NULL,
+ "IS_DELETED" NUMBER(11, 0) DEFAULT 0,
+ "APPROVAL_MAN" NUMBER(20, 0),
+ "APPROVAL_TIME" DATE,
+ "APPROVAL_STATUS" NUMBER(20, 0),
+ "APPROVAL_MEMO" NVARCHAR2(255),
+ "WC_ID" NUMBER(20, 0) NOT NULL,
+ "GOODS_CODE" NVARCHAR2(255) NOT NULL,
+ "GOODS_DEMAND" NUMBER(20, 10) DEFAULT 0 NOT NULL,
+ "GOODS_NAME" VARCHAR2(100 BYTE),
+ "GOODS_ADD_TOTAL" NUMBER(20, 10),
+ "GOODS_DEMAND_TOTAL" NUMBER(20, 10),
+ "DECLARED_QUOTA_TOTAL" NUMBER(20, 10),
+ "APPLY_CODE" VARCHAR2(100 BYTE)
+) LOGGING NOCOMPRESS PCTFREE 10 INITRANS 1 STORAGE
+(
+ INITIAL 65536
+ NEXT 1048576
+ MINEXTENTS 1
+ MAXEXTENTS 2147483645
+ BUFFER_POOL DEFAULT
+) PARALLEL 1 NOCACHE DISABLE ROW MOVEMENT
+;
+COMMENT ON COLUMN "MES_PLATE_GOODS_APPLY"."ID" IS '主键';
+COMMENT ON COLUMN "MES_PLATE_GOODS_APPLY"."TENANT_ID" IS '租户ID';
+COMMENT ON COLUMN "MES_PLATE_GOODS_APPLY"."CREATE_USER" IS '创建人';
+COMMENT ON COLUMN "MES_PLATE_GOODS_APPLY"."CREATE_TIME" IS '创建时间';
+COMMENT ON COLUMN "MES_PLATE_GOODS_APPLY"."CREATE_DEPT" IS '创建部门';
+COMMENT ON COLUMN "MES_PLATE_GOODS_APPLY"."UPDATE_USER" IS '修改人';
+COMMENT ON COLUMN "MES_PLATE_GOODS_APPLY"."UPDATE_TIME" IS '修改时间';
+COMMENT ON COLUMN "MES_PLATE_GOODS_APPLY"."STATUS" IS '状态';
+COMMENT ON COLUMN "MES_PLATE_GOODS_APPLY"."IS_DELETED" IS '是否已删除';
+COMMENT ON COLUMN "MES_PLATE_GOODS_APPLY"."APPROVAL_MAN" IS '审批人';
+COMMENT ON COLUMN "MES_PLATE_GOODS_APPLY"."APPROVAL_TIME" IS '审批时间';
+COMMENT ON COLUMN "MES_PLATE_GOODS_APPLY"."APPROVAL_STATUS" IS '审批状态';
+COMMENT ON COLUMN "MES_PLATE_GOODS_APPLY"."APPROVAL_MEMO" IS '审批结果';
+COMMENT ON COLUMN "MES_PLATE_GOODS_APPLY"."WC_ID" IS '作业中心';
+COMMENT ON COLUMN "MES_PLATE_GOODS_APPLY"."GOODS_CODE" IS '镀层物料';
+COMMENT ON COLUMN "MES_PLATE_GOODS_APPLY"."GOODS_DEMAND" IS '物料需求定额';
+COMMENT ON COLUMN "MES_PLATE_GOODS_APPLY"."GOODS_NAME" IS '镀层物料名称';
+COMMENT ON COLUMN "MES_PLATE_GOODS_APPLY"."GOODS_ADD_TOTAL" IS '本次申报添加量';
+COMMENT ON COLUMN "MES_PLATE_GOODS_APPLY"."GOODS_DEMAND_TOTAL" IS '本次申报物料需求单总物料需求剩余量';
+COMMENT ON COLUMN "MES_PLATE_GOODS_APPLY"."DECLARED_QUOTA_TOTAL" IS '本次申报物料需求单已申报定额总量';
+COMMENT ON COLUMN "MES_PLATE_GOODS_APPLY"."APPLY_CODE" IS '申报单号';
+COMMENT ON TABLE "MES_PLATE_GOODS_APPLY" IS '镀层物料申报添加量';
+
+-- ----------------------------
+-- Primary Key structure for table MES_PLATE_GOODS_APPLY
+-- ----------------------------
+ALTER TABLE "MES_PLATE_GOODS_APPLY"
+ ADD CONSTRAINT "SYS_C0021902" PRIMARY KEY ("ID");
+
+-- ----------------------------
+-- Checks structure for table MES_PLATE_GOODS_APPLY
+-- ----------------------------
+ALTER TABLE "MES_PLATE_GOODS_APPLY"
+ ADD CONSTRAINT "SYS_C0021892" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "MES_PLATE_GOODS_APPLY"
+ ADD CONSTRAINT "SYS_C0021893" CHECK ("STATUS" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "MES_PLATE_GOODS_APPLY"
+ ADD CONSTRAINT "SYS_C0021894" CHECK ("WC_ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "MES_PLATE_GOODS_APPLY"
+ ADD CONSTRAINT "SYS_C0021895" CHECK ("GOODS_CODE" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "MES_PLATE_GOODS_APPLY"
+ ADD CONSTRAINT "SYS_C0021896" CHECK ("GOODS_DEMAND" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
diff --git a/doc/sql/mes/increase-260120.sql b/doc/sql/mes/increase-260120.sql
index a681acb9..59456872 100644
--- a/doc/sql/mes/increase-260120.sql
+++ b/doc/sql/mes/increase-260120.sql
@@ -56,13 +56,6 @@ ALTER TABLE mes_plate_goods_record
ALTER TABLE mes_plate_goods_record_detail
MODIFY pgrd_id NUMBER(20, 0);
-ALTER TABLE mes_plate_goods_record
- ADD involving_record_code VARCHAR2(255) NULL;
-COMMENT ON COLUMN mes_plate_goods_record.involving_record_code IS '本次添加涉及单号';
-ALTER TABLE mes_plate_goods_record
- ADD detail_order_num NUMBER(8, 0) NULL;
-COMMENT ON COLUMN mes_plate_goods_record.detail_order_num IS '本次关联订单数量';
-
ALTER TABLE mes_assay_content_detail
ADD add_val NUMBER(20, 10) NULL;
COMMENT ON COLUMN mes_assay_content_detail.add_val IS '添加量值';
@@ -350,9 +343,6 @@ COMMENT ON COLUMN mes_plate_goods_apply.coefficient_bo_id IS '银钾采购id';
COMMENT ON COLUMN mes_plate_goods_apply.surplus IS '剩余量';
COMMENT ON COLUMN mes_plate_goods_apply.silver_potassium_residue IS '上报银钾剩余量';
COMMENT ON COLUMN mes_plate_goods_apply.demand_code IS '需求单号';
-COMMENT ON COLUMN mes_plate_goods_apply.involving_record_code IS '本次添加涉及单号';
-COMMENT ON COLUMN mes_plate_goods_apply.not_add_val IS '本次剩余单号余量';
-COMMENT ON COLUMN mes_plate_goods_apply.detail_order_num IS '本次关联订单数量';
ALTER TABLE MES_PLATE_GOODS_APPLY ADD GOODS_NAME VARCHAR2(100) NULL;
COMMENT ON COLUMN MES_PLATE_GOODS_APPLY.GOODS_NAME IS '镀层物料名称';