Procházet zdrojové kódy

优化抽检拆解逻辑

callm před 3 dny
rodič
revize
fe5b96a2d8

+ 6 - 0
UAS_MES_YDCY/.workbuddy/memory/2026-10-30.md

@@ -12,3 +12,9 @@
 - 无写库操作,不用 DoCommandLog;Designer 未挂 FormClosed(无资源需释放)。
 - 菜单:需 DB 端往 `CS$SYSNAVATION` 插 `sn_classname='Make.Make_MakeMaterialCheck'` + `CS$USERGROUPPOWER` 授权(用户自己执行)。
 - 自检:括号平衡 .cs 18/18、55/55、8/8;Designer 6/6、100/100、1/1 ✅。
+
+## OQC_PlanMaintain_NEW 打不良追加 craftmaterial 自动拆解
+- 位置:NG 分支 `makebad` insert 之后、`ReturnStep.Checked` 判断之前(良品分支未加)。
+- SQL:`update craftmaterial set cm_status=-1,CM_DROPDATE=sysdate,CM_DROPMAN='不良自动拆解' where cm_sncode='SN' and cm_stepcode in ('B_LINK1'..'B_LINK5') and cm_status<>-1`。
+- 与既有拆解 update 的差异:`CM_DROPMAN` 是固定值「不良自动拆解」(非 User.UserName)、带 `CM_DROPDATE`、按固定 5 个回流线工序过滤、带 `cm_status<>-1` 防重;不带 cm_makecode 条件。
+- 自检:括号平衡 51/51、205/205、59/59 ✅(+5)。

+ 5 - 0
UAS_MES_YDCY/FunctionCode/OQC/OQC_PlanMaintain_NEW.cs

@@ -303,6 +303,11 @@ namespace UAS_MES_NEW.OQC
                     "'" + User.UserCode + "',sysdate,'" + ms_stepcode + "','" + User.UserSourceCode + "','QCError','QCError','抽检不良','客户抽检不良'," +
                     "to_char(sysdate,'yyyymmdd'),'" + User.UserLineCode + "','Client','" + pcd_ngretuenstep + "')", "insert");
 
+                //打不良时自动拆解B_LINK1-B_LINK5上的在制物料:未拆解的记录置-1并记录拆解时间/拆解人
+                dh.ExecuteSql("update craftmaterial set cm_status=-1,CM_DROPDATE=sysdate,CM_DROPMAN='不良自动拆解'" +
+                    " where cm_sncode='" + ms_sncode.Text + "'" +
+                    " and cm_stepcode in ('B_LINK1','B_LINK2','B_LINK3','B_LINK4','B_LINK5') and cm_status<>-1", "update");
+
                 if (ReturnStep.Checked)
                 {
                     sql.Clear();