diff --git a/02.珠海市供水有限公司/ZHSW/ZHSW.csproj b/02.珠海市供水有限公司/ZHSW/ZHSW.csproj index cd743d6..dc8aa9a 100644 --- a/02.珠海市供水有限公司/ZHSW/ZHSW.csproj +++ b/02.珠海市供水有限公司/ZHSW/ZHSW.csproj @@ -74,6 +74,7 @@ + diff --git a/03.珠海市汇威精密制造有限公司/HUIWEI.Python/1.每日员工出勤登记表_更新加班工时.py b/03.珠海市汇威精密制造有限公司/HUIWEI.Python/1.每日员工出勤登记表_更新加班工时.py new file mode 100644 index 0000000..f3c83a2 --- /dev/null +++ b/03.珠海市汇威精密制造有限公司/HUIWEI.Python/1.每日员工出勤登记表_更新加班工时.py @@ -0,0 +1,39 @@ +import clr +clr.AddReference("System") +clr.AddReference("Kingdee.BOS") +clr.AddReference("Kingdee.BOS.Core") +clr.AddReference("Kingdee.BOS.DataEntity") +clr.AddReference("Kingdee.BOS.App") +clr.AddReference("Kingdee.BOS.Contracts") +clr.AddReference("Kingdee.BOS.ServiceHelper") + +from Kingdee.BOS import * +from Kingdee.BOS.Core import * +from Kingdee.BOS.Core.Metadata.EntityElement import * +from Kingdee.BOS.Orm.DataEntity import * +from Kingdee.BOS.Core.DynamicForm.PlugIn import * +from Kingdee.BOS.Core.DynamicForm.PlugIn.Args import * +from Kingdee.BOS.Util import * +from System import * +from System.ComponentModel import * +from System.Collections.Generic import * +from System.Text import* +from Kingdee.BOS.ServiceHelper import * +from Kingdee.BOS.Core.Metadata import * + +def BarItemClick(e): + if e.BarItemKey == "tbSNew" or e.BarItemKey == "tbNew": + if this.View.OpenParameter.Status == OperationStatus.ADDNEW: + + sqlL = "exec hw_get_btbz"; + dr = DBServiceHelper.ExecuteDynamicObject(this.Context, sqlL); + if dr != None and dr.Count > 0: + for i in range(dr.Count): + this.Model.SetValue("FBT005", dr[0][1]); + this.View.UpdateView("FBT005"); + this.Model.SetValue("FBT006", dr[1][1]); + this.View.UpdateView("FBT006"); + this.Model.SetValue("FBT012", dr[2][1]); + this.View.UpdateView("FBT012"); + return; + \ No newline at end of file diff --git a/03.珠海市汇威精密制造有限公司/HUIWEI.Python/HUIWEI.Python.pyproj b/03.珠海市汇威精密制造有限公司/HUIWEI.Python/HUIWEI.Python.pyproj index b117759..10c5b31 100644 --- a/03.珠海市汇威精密制造有限公司/HUIWEI.Python/HUIWEI.Python.pyproj +++ b/03.珠海市汇威精密制造有限公司/HUIWEI.Python/HUIWEI.Python.pyproj @@ -44,8 +44,10 @@ + + @@ -53,8 +55,10 @@ + + diff --git a/03.珠海市汇威精密制造有限公司/HUIWEI.Python/产品Bom层级缺料分析查询表/产品Bom缺料分析报表构造.py b/03.珠海市汇威精密制造有限公司/HUIWEI.Python/产品Bom层级缺料分析查询表/产品Bom缺料分析报表构造.py index 51b16c9..7da4abc 100644 --- a/03.珠海市汇威精密制造有限公司/HUIWEI.Python/产品Bom层级缺料分析查询表/产品Bom缺料分析报表构造.py +++ b/03.珠海市汇威精密制造有限公司/HUIWEI.Python/产品Bom层级缺料分析查询表/产品Bom缺料分析报表构造.py @@ -125,6 +125,10 @@ FROM T_BD_MATERIAL t0 LEFT JOIN ( SELECT tt0.FMATERIALID,tt0.FSTOCKORGID,SUM(tt0.FBASEQTY) AS sumQTY FROM T_STK_INVENTORY tt0 + WHERE 1=1 + AND tt0.FSTOCKID != 106441 --104-07 装配线边仓2 + AND tt0.FSTOCKID != 106446 --203-07 装配线边仓1 + AND tt0.FSTOCKID != 813683 --104-08 装配线边仓3 GROUP BY tt0.FMATERIALID,tt0.FSTOCKORGID ) t3 on t3.FMATERIALID = t0.FMASTERID AND t3.FSTOCKORGID = t0.FUSEORGID LEFT JOIN ( diff --git a/03.珠海市汇威精密制造有限公司/HUIWEI.Python/汇威日工资.sql b/03.珠海市汇威精密制造有限公司/HUIWEI.Python/汇威日工资.sql new file mode 100644 index 0000000..b226c03 --- /dev/null +++ b/03.珠海市汇威精密制造有限公司/HUIWEI.Python/汇威日工资.sql @@ -0,0 +1,28 @@ +;WITH #table as ( + SELECT t0.F_BTBZ,t0.FNUMBER + FROM GAT_t_Cust_Entry100057 t0 + WHERE t0.FNUMBER IN ('BT005','BT006','BT012') +) +, #table1 AS ( + SELECT t1.* + FROM #table t0 + PIVOT ( + SUM(t0.F_BTBZ) FOR + t0.FNUMBER IN (BT005,BT006,BT012) + ) t1 +) +,#table2 AS ( + SELECT * + FROM GAT_YGCQ t0 + ,#table1 t1 + WHERE CONVERT(int,CONVERT(varchar(6) ,t0.F_DATE,112)) = 202503 + AND NOT (t0.FBT005 = t1.BT005 + AND t0.FBT006 = t1.BT006 + AND t0.FBT012 = t1.BT012 + ) +) +UPDATE t0 SET t0.FBT005 = t1.BT005 + ,t0.FBT006 = t1.BT006 + ,t0.FBT012 = t1.BT012 +FROM GAT_YGCQ t0 + INNER JOIN #table2 t1 on t1.FID = t0.FID \ No newline at end of file diff --git a/04.天大药业(珠海)有限公司/MonthlyProductionSchedule.zip b/04.天大药业(珠海)有限公司/MonthlyProductionSchedule.zip new file mode 100644 index 0000000..0609601 Binary files /dev/null and b/04.天大药业(珠海)有限公司/MonthlyProductionSchedule.zip differ diff --git a/05.长园/CYG.Python/CRM_Contract/OperationEvenPlugInEx.py b/05.长园/CYG.Python/CRM_Contract/OperationEvenPlugInEx.py index a9ece4f..6da189b 100644 --- a/05.长园/CYG.Python/CRM_Contract/OperationEvenPlugInEx.py +++ b/05.长园/CYG.Python/CRM_Contract/OperationEvenPlugInEx.py @@ -40,6 +40,22 @@ def BeforeDoSaveExecute(e): planItem["FRECADVANCEAMOUNT"] = planItem["FRECADVANCERATE"] * FCONTRACTAMOUNT / 100 if planItem["F_CYG_Text"] == None or planItem["F_CYG_Text"] == "": removeList.append(idx) + else: + if planItem["F_CYG_Text"] == "预付": + item["PlanPrepay"] = planItem["FRECADVANCEAMOUNT"] + item["PlanRatePrepay"] = planItem["FRECADVANCERATE"] + elif planItem["F_CYG_Text"] == "发货": + item["PlanDeliver"] = planItem["FRECADVANCEAMOUNT"] + item["PlanRateDeliver"] = planItem["FRECADVANCERATE"] + elif planItem["F_CYG_Text"] == "到货": + item["PlanArrive"] = planItem["FRECADVANCEAMOUNT"] + item["PlanRateArrive"] = planItem["FRECADVANCERATE"] + elif planItem["F_CYG_Text"] == "验收": + item["PlanCheck"] = planItem["FRECADVANCEAMOUNT"] + item["PlanRateCheck"] = planItem["FRECADVANCERATE"] + elif planItem["F_CYG_Text"] == "质保": + item["PlanQuality"] = planItem["FRECADVANCEAMOUNT"] + item["PlanRateQuality"] = planItem["FRECADVANCERATE"] for idx in removeList: FContractPlan.RemoveAt(idx) diff --git a/05.长园/CYG/CYG.csproj b/05.长园/CYG/CYG.csproj index 3120d08..5ed7be9 100644 --- a/05.长园/CYG/CYG.csproj +++ b/05.长园/CYG/CYG.csproj @@ -138,6 +138,11 @@ + + + + + @@ -159,11 +164,13 @@ + + \ No newline at end of file diff --git a/05.长园/CYG/成本字段四舍五入/发货通知单.sql b/05.长园/CYG/成本字段四舍五入/发货通知单.sql new file mode 100644 index 0000000..83066b1 --- /dev/null +++ b/05.长园/CYG/成本字段四舍五入/发货通知单.sql @@ -0,0 +1,55 @@ +--˶ +--֪ͨ T_SAL_DELIVERYNOTICEENTRY +;WITH #table1 AS ( + SELECT t0e.FENTRYID + ,t0e.F_CYG_COST + ,ROUND(t0e.F_CYG_COST,2) 'New_F_CYG_COST' + ,t0e.F_CYG_COSTTOTAL + ,ROUND(t0e.F_CYG_COSTTOTAL,2) 'New_F_CYG_COSTTOTAL' + ,t0e.F_CYG_OPENPRICE + ,ROUND(t0e.F_CYG_OPENPRICE,2) 'New_F_CYG_OPENPRICE' + ,t0e.F_CYG_OPENTOTAL + ,ROUND(t0e.F_CYG_OPENTOTAL,2) 'New_F_CYG_OPENTOTAL' + ,t0e.F_CYG_MOUNTINGCOST + ,ROUND(t0e.F_CYG_MOUNTINGCOST,2) 'New_F_CYG_MOUNTINGCOST' + ,t0e.F_CYG_MOUNTINGTOTAL + ,ROUND(t0e.F_CYG_MOUNTINGTOTAL,2) 'New_F_CYG_MOUNTINGTOTAL' + ,t0e.F_CYG_OUTSOURCINGPRICE + ,ROUND(t0e.F_CYG_OUTSOURCINGPRICE,2) 'New_F_CYG_OUTSOURCINGPRICE' + ,t0e.F_CYG_OUTSOURCINGTOTAL + ,ROUND(t0e.F_CYG_OUTSOURCINGTOTAL,2) 'New_F_CYG_OUTSOURCINGTOTAL' + from T_SAL_DELIVERYNOTICE t0 + INNER JOIN T_SAL_DELIVERYNOTICEENTRY t0e on t0.FID = t0e.FID + --WHERE t0.FBILLNO = 'FA20230202-9' +) +SELECT * +FROM #table1 t0 +WHERE NOT ( + t0.New_F_CYG_COST = t0.F_CYG_COST + AND t0.New_F_CYG_COSTTOTAL = t0.F_CYG_COSTTOTAL + AND t0.New_F_CYG_OPENPRICE = t0.F_CYG_OPENPRICE + AND t0.New_F_CYG_OPENTOTAL = t0.F_CYG_OPENTOTAL + AND t0.New_F_CYG_MOUNTINGCOST = t0.F_CYG_MOUNTINGCOST + AND t0.New_F_CYG_MOUNTINGTOTAL = t0.F_CYG_MOUNTINGTOTAL + AND t0.New_F_CYG_OUTSOURCINGPRICE = t0.F_CYG_OUTSOURCINGPRICE + AND t0.New_F_CYG_OUTSOURCINGTOTAL = t0.F_CYG_OUTSOURCINGTOTAL +) +--UPDATE t0e SET t0e.F_CYG_COST = t0.New_F_CYG_COST +-- ,t0e.F_CYG_COSTTOTAL = t0.New_F_CYG_COSTTOTAL +-- ,t0e.F_CYG_OPENPRICE = t0.New_F_CYG_OPENPRICE +-- ,t0e.F_CYG_OPENTOTAL = t0.New_F_CYG_OPENTOTAL +-- ,t0e.F_CYG_MOUNTINGCOST = t0.New_F_CYG_MOUNTINGCOST +-- ,t0e.F_CYG_MOUNTINGTOTAL = t0.New_F_CYG_MOUNTINGTOTAL +-- ,t0e.F_CYG_OUTSOURCINGPRICE = t0.New_F_CYG_OUTSOURCINGPRICE +-- ,t0e.F_CYG_OUTSOURCINGTOTAL = t0.New_F_CYG_OUTSOURCINGTOTAL +--FROM #table1 t0 +-- INNER JOIN T_SAL_DELIVERYNOTICEENTRY t0e on t0e.FENTRYID = t0.FENTRYID +--WHERE NOT (t0.New_F_CYG_COST = t0.F_CYG_COST +-- AND t0.New_F_CYG_COSTTOTAL = t0.F_CYG_COSTTOTAL +-- AND t0.New_F_CYG_OPENPRICE = t0.F_CYG_OPENPRICE +-- AND t0.New_F_CYG_OPENTOTAL = t0.F_CYG_OPENTOTAL +-- AND t0.New_F_CYG_MOUNTINGCOST = t0.F_CYG_MOUNTINGCOST +-- AND t0.New_F_CYG_MOUNTINGTOTAL = t0.F_CYG_MOUNTINGTOTAL +-- AND t0.New_F_CYG_OUTSOURCINGPRICE = t0.F_CYG_OUTSOURCINGPRICE +-- AND t0.New_F_CYG_OUTSOURCINGTOTAL = t0.F_CYG_OUTSOURCINGTOTAL +--) \ No newline at end of file diff --git a/05.长园/CYG/成本字段四舍五入/应收单.sql b/05.长园/CYG/成本字段四舍五入/应收单.sql new file mode 100644 index 0000000..e4d3e29 --- /dev/null +++ b/05.长园/CYG/成本字段四舍五入/应收单.sql @@ -0,0 +1,54 @@ +--Ӧյ t_AR_receivableEntry +;WITH #table1 AS ( + SELECT t0e.FENTRYID + ,t0e.F_CYG_COST + ,ROUND(t0e.F_CYG_COST,2) 'New_F_CYG_COST' + ,t0e.F_CYG_COSTTOTAL + ,ROUND(t0e.F_CYG_COSTTOTAL,2) 'New_F_CYG_COSTTOTAL' + ,t0e.F_CYG_OPENPRICE + ,ROUND(t0e.F_CYG_OPENPRICE,2) 'New_F_CYG_OPENPRICE' + ,t0e.F_CYG_OPENTOTAL + ,ROUND(t0e.F_CYG_OPENTOTAL,2) 'New_F_CYG_OPENTOTAL' + ,t0e.F_CYG_MOUNTINGCOST + ,ROUND(t0e.F_CYG_MOUNTINGCOST,2) 'New_F_CYG_MOUNTINGCOST' + ,t0e.F_CYG_MOUNTINGTOTAL + ,ROUND(t0e.F_CYG_MOUNTINGTOTAL,2) 'New_F_CYG_MOUNTINGTOTAL' + ,t0e.F_CYG_OUTSOURCINGPRICE + ,ROUND(t0e.F_CYG_OUTSOURCINGPRICE,2) 'New_F_CYG_OUTSOURCINGPRICE' + ,t0e.F_CYG_OUTSOURCINGTOTAL + ,ROUND(t0e.F_CYG_OUTSOURCINGTOTAL,2) 'New_F_CYG_OUTSOURCINGTOTAL' + from t_AR_receivable t0 + INNER JOIN t_AR_receivableEntry t0e on t0.FID = t0e.FID + --WHERE t0.FBILLNO = 'FA20230202-9' +) +SELECT * +FROM #table1 t0 +WHERE NOT ( + t0.New_F_CYG_COST = t0.F_CYG_COST + AND t0.New_F_CYG_COSTTOTAL = t0.F_CYG_COSTTOTAL + AND t0.New_F_CYG_OPENPRICE = t0.F_CYG_OPENPRICE + AND t0.New_F_CYG_OPENTOTAL = t0.F_CYG_OPENTOTAL + AND t0.New_F_CYG_MOUNTINGCOST = t0.F_CYG_MOUNTINGCOST + AND t0.New_F_CYG_MOUNTINGTOTAL = t0.F_CYG_MOUNTINGTOTAL + AND t0.New_F_CYG_OUTSOURCINGPRICE = t0.F_CYG_OUTSOURCINGPRICE + AND t0.New_F_CYG_OUTSOURCINGTOTAL = t0.F_CYG_OUTSOURCINGTOTAL +) +--UPDATE t0e SET t0e.F_CYG_COST = t0.New_F_CYG_COST +-- ,t0e.F_CYG_COSTTOTAL = t0.New_F_CYG_COSTTOTAL +-- ,t0e.F_CYG_OPENPRICE = t0.New_F_CYG_OPENPRICE +-- ,t0e.F_CYG_OPENTOTAL = t0.New_F_CYG_OPENTOTAL +-- ,t0e.F_CYG_MOUNTINGCOST = t0.New_F_CYG_MOUNTINGCOST +-- ,t0e.F_CYG_MOUNTINGTOTAL = t0.New_F_CYG_MOUNTINGTOTAL +-- ,t0e.F_CYG_OUTSOURCINGPRICE = t0.New_F_CYG_OUTSOURCINGPRICE +-- ,t0e.F_CYG_OUTSOURCINGTOTAL = t0.New_F_CYG_OUTSOURCINGTOTAL +--FROM #table1 t0 +-- INNER JOIN t_AR_receivableEntry t0e on t0e.FENTRYID = t0.FENTRYID +--WHERE NOT (t0.New_F_CYG_COST = t0.F_CYG_COST +-- AND t0.New_F_CYG_COSTTOTAL = t0.F_CYG_COSTTOTAL +-- AND t0.New_F_CYG_OPENPRICE = t0.F_CYG_OPENPRICE +-- AND t0.New_F_CYG_OPENTOTAL = t0.F_CYG_OPENTOTAL +-- AND t0.New_F_CYG_MOUNTINGCOST = t0.F_CYG_MOUNTINGCOST +-- AND t0.New_F_CYG_MOUNTINGTOTAL = t0.F_CYG_MOUNTINGTOTAL +-- AND t0.New_F_CYG_OUTSOURCINGPRICE = t0.F_CYG_OUTSOURCINGPRICE +-- AND t0.New_F_CYG_OUTSOURCINGTOTAL = t0.F_CYG_OUTSOURCINGTOTAL +--) \ No newline at end of file diff --git a/05.长园/CYG/成本字段四舍五入/退货申请单.sql b/05.长园/CYG/成本字段四舍五入/退货申请单.sql new file mode 100644 index 0000000..462e85b --- /dev/null +++ b/05.长园/CYG/成本字段四舍五入/退货申请单.sql @@ -0,0 +1,54 @@ +--˻뵥 T_SAL_RETURNNOTICEENTRY +;WITH #table1 AS ( + SELECT t0e.FENTRYID + ,t0e.F_CYG_COST + ,ROUND(t0e.F_CYG_COST,2) 'New_F_CYG_COST' + ,t0e.F_CYG_COSTTOTAL + ,ROUND(t0e.F_CYG_COSTTOTAL,2) 'New_F_CYG_COSTTOTAL' + ,t0e.F_CYG_OPENPRICE + ,ROUND(t0e.F_CYG_OPENPRICE,2) 'New_F_CYG_OPENPRICE' + ,t0e.F_CYG_OPENTOTAL + ,ROUND(t0e.F_CYG_OPENTOTAL,2) 'New_F_CYG_OPENTOTAL' + ,t0e.F_CYG_MOUNTINGCOST + ,ROUND(t0e.F_CYG_MOUNTINGCOST,2) 'New_F_CYG_MOUNTINGCOST' + ,t0e.F_CYG_MOUNTINGTOTAL + ,ROUND(t0e.F_CYG_MOUNTINGTOTAL,2) 'New_F_CYG_MOUNTINGTOTAL' + ,t0e.F_CYG_OUTSOURCINGPRICE + ,ROUND(t0e.F_CYG_OUTSOURCINGPRICE,2) 'New_F_CYG_OUTSOURCINGPRICE' + ,t0e.F_CYG_OUTSOURCINGTOTAL + ,ROUND(t0e.F_CYG_OUTSOURCINGTOTAL,2) 'New_F_CYG_OUTSOURCINGTOTAL' + from T_SAL_RETURNNOTICE t0 + INNER JOIN T_SAL_RETURNNOTICEENTRY t0e on t0.FID = t0e.FID + --WHERE t0.FBILLNO = 'FA20230202-9' +) +SELECT * +FROM #table1 t0 +WHERE NOT ( + t0.New_F_CYG_COST = t0.F_CYG_COST + AND t0.New_F_CYG_COSTTOTAL = t0.F_CYG_COSTTOTAL + AND t0.New_F_CYG_OPENPRICE = t0.F_CYG_OPENPRICE + AND t0.New_F_CYG_OPENTOTAL = t0.F_CYG_OPENTOTAL + AND t0.New_F_CYG_MOUNTINGCOST = t0.F_CYG_MOUNTINGCOST + AND t0.New_F_CYG_MOUNTINGTOTAL = t0.F_CYG_MOUNTINGTOTAL + AND t0.New_F_CYG_OUTSOURCINGPRICE = t0.F_CYG_OUTSOURCINGPRICE + AND t0.New_F_CYG_OUTSOURCINGTOTAL = t0.F_CYG_OUTSOURCINGTOTAL +) +--UPDATE t0e SET t0e.F_CYG_COST = t0.New_F_CYG_COST +-- ,t0e.F_CYG_COSTTOTAL = t0.New_F_CYG_COSTTOTAL +-- ,t0e.F_CYG_OPENPRICE = t0.New_F_CYG_OPENPRICE +-- ,t0e.F_CYG_OPENTOTAL = t0.New_F_CYG_OPENTOTAL +-- ,t0e.F_CYG_MOUNTINGCOST = t0.New_F_CYG_MOUNTINGCOST +-- ,t0e.F_CYG_MOUNTINGTOTAL = t0.New_F_CYG_MOUNTINGTOTAL +-- ,t0e.F_CYG_OUTSOURCINGPRICE = t0.New_F_CYG_OUTSOURCINGPRICE +-- ,t0e.F_CYG_OUTSOURCINGTOTAL = t0.New_F_CYG_OUTSOURCINGTOTAL +--FROM #table1 t0 +-- INNER JOIN T_SAL_RETURNNOTICEENTRY t0e on t0e.FENTRYID = t0.FENTRYID +--WHERE NOT (t0.New_F_CYG_COST = t0.F_CYG_COST +-- AND t0.New_F_CYG_COSTTOTAL = t0.F_CYG_COSTTOTAL +-- AND t0.New_F_CYG_OPENPRICE = t0.F_CYG_OPENPRICE +-- AND t0.New_F_CYG_OPENTOTAL = t0.F_CYG_OPENTOTAL +-- AND t0.New_F_CYG_MOUNTINGCOST = t0.F_CYG_MOUNTINGCOST +-- AND t0.New_F_CYG_MOUNTINGTOTAL = t0.F_CYG_MOUNTINGTOTAL +-- AND t0.New_F_CYG_OUTSOURCINGPRICE = t0.F_CYG_OUTSOURCINGPRICE +-- AND t0.New_F_CYG_OUTSOURCINGTOTAL = t0.F_CYG_OUTSOURCINGTOTAL +--) \ No newline at end of file diff --git a/05.长园/CYG/成本字段四舍五入/销售出库单.sql b/05.长园/CYG/成本字段四舍五入/销售出库单.sql new file mode 100644 index 0000000..90f7bfa --- /dev/null +++ b/05.长园/CYG/成本字段四舍五入/销售出库单.sql @@ -0,0 +1,54 @@ +--۳ⵥ T_SAL_OUTSTOCKENTRY +;WITH #table1 AS ( + SELECT t0e.FENTRYID + ,t0e.F_CYG_COST + ,ROUND(t0e.F_CYG_COST,2) 'New_F_CYG_COST' + ,t0e.F_CYG_COSTTOTAL + ,ROUND(t0e.F_CYG_COSTTOTAL,2) 'New_F_CYG_COSTTOTAL' + ,t0e.F_CYG_OPENPRICE + ,ROUND(t0e.F_CYG_OPENPRICE,2) 'New_F_CYG_OPENPRICE' + ,t0e.F_CYG_OPENTOTAL + ,ROUND(t0e.F_CYG_OPENTOTAL,2) 'New_F_CYG_OPENTOTAL' + ,t0e.F_CYG_MOUNTINGCOST + ,ROUND(t0e.F_CYG_MOUNTINGCOST,2) 'New_F_CYG_MOUNTINGCOST' + ,t0e.F_CYG_MOUNTINGTOTAL + ,ROUND(t0e.F_CYG_MOUNTINGTOTAL,2) 'New_F_CYG_MOUNTINGTOTAL' + ,t0e.F_CYG_OUTSOURCINGPRICE + ,ROUND(t0e.F_CYG_OUTSOURCINGPRICE,2) 'New_F_CYG_OUTSOURCINGPRICE' + ,t0e.F_CYG_OUTSOURCINGTOTAL + ,ROUND(t0e.F_CYG_OUTSOURCINGTOTAL,2) 'New_F_CYG_OUTSOURCINGTOTAL' + from T_SAL_OUTSTOCK t0 + INNER JOIN T_SAL_OUTSTOCKENTRY t0e on t0.FID = t0e.FID + --WHERE t0.FBILLNO = 'FA20230202-9' +) +SELECT * +FROM #table1 t0 +WHERE NOT ( + t0.New_F_CYG_COST = t0.F_CYG_COST + AND t0.New_F_CYG_COSTTOTAL = t0.F_CYG_COSTTOTAL + AND t0.New_F_CYG_OPENPRICE = t0.F_CYG_OPENPRICE + AND t0.New_F_CYG_OPENTOTAL = t0.F_CYG_OPENTOTAL + AND t0.New_F_CYG_MOUNTINGCOST = t0.F_CYG_MOUNTINGCOST + AND t0.New_F_CYG_MOUNTINGTOTAL = t0.F_CYG_MOUNTINGTOTAL + AND t0.New_F_CYG_OUTSOURCINGPRICE = t0.F_CYG_OUTSOURCINGPRICE + AND t0.New_F_CYG_OUTSOURCINGTOTAL = t0.F_CYG_OUTSOURCINGTOTAL +) +--UPDATE t0e SET t0e.F_CYG_COST = t0.New_F_CYG_COST +-- ,t0e.F_CYG_COSTTOTAL = t0.New_F_CYG_COSTTOTAL +-- ,t0e.F_CYG_OPENPRICE = t0.New_F_CYG_OPENPRICE +-- ,t0e.F_CYG_OPENTOTAL = t0.New_F_CYG_OPENTOTAL +-- ,t0e.F_CYG_MOUNTINGCOST = t0.New_F_CYG_MOUNTINGCOST +-- ,t0e.F_CYG_MOUNTINGTOTAL = t0.New_F_CYG_MOUNTINGTOTAL +-- ,t0e.F_CYG_OUTSOURCINGPRICE = t0.New_F_CYG_OUTSOURCINGPRICE +-- ,t0e.F_CYG_OUTSOURCINGTOTAL = t0.New_F_CYG_OUTSOURCINGTOTAL +--FROM #table1 t0 +-- INNER JOIN T_SAL_OUTSTOCKENTRY t0e on t0e.FENTRYID = t0.FENTRYID +--WHERE NOT (t0.New_F_CYG_COST = t0.F_CYG_COST +-- AND t0.New_F_CYG_COSTTOTAL = t0.F_CYG_COSTTOTAL +-- AND t0.New_F_CYG_OPENPRICE = t0.F_CYG_OPENPRICE +-- AND t0.New_F_CYG_OPENTOTAL = t0.F_CYG_OPENTOTAL +-- AND t0.New_F_CYG_MOUNTINGCOST = t0.F_CYG_MOUNTINGCOST +-- AND t0.New_F_CYG_MOUNTINGTOTAL = t0.F_CYG_MOUNTINGTOTAL +-- AND t0.New_F_CYG_OUTSOURCINGPRICE = t0.F_CYG_OUTSOURCINGPRICE +-- AND t0.New_F_CYG_OUTSOURCINGTOTAL = t0.F_CYG_OUTSOURCINGTOTAL +--) \ No newline at end of file diff --git a/05.长园/CYG/成本字段四舍五入/销售退货单.sql b/05.长园/CYG/成本字段四舍五入/销售退货单.sql new file mode 100644 index 0000000..ed1743a --- /dev/null +++ b/05.长园/CYG/成本字段四舍五入/销售退货单.sql @@ -0,0 +1,55 @@ +--˻ T_SAL_RETURNSTOCKENTRY +;WITH #table1 AS ( + SELECT t0e.FENTRYID + ,t0e.F_CYG_COST + ,ROUND(t0e.F_CYG_COST,2) 'New_F_CYG_COST' + ,t0e.F_CYG_COSTTOTAL + ,ROUND(t0e.F_CYG_COSTTOTAL,2) 'New_F_CYG_COSTTOTAL' + ,t0e.F_CYG_OPENPRICE + ,ROUND(t0e.F_CYG_OPENPRICE,2) 'New_F_CYG_OPENPRICE' + ,t0e.F_CYG_OPENTOTAL + ,ROUND(t0e.F_CYG_OPENTOTAL,2) 'New_F_CYG_OPENTOTAL' + ,t0e.F_CYG_MOUNTINGCOST + ,ROUND(t0e.F_CYG_MOUNTINGCOST,2) 'New_F_CYG_MOUNTINGCOST' + ,t0e.F_CYG_MOUNTINGTOTAL + ,ROUND(t0e.F_CYG_MOUNTINGTOTAL,2) 'New_F_CYG_MOUNTINGTOTAL' + ,t0e.F_CYG_OUTSOURCINGPRICE + ,ROUND(t0e.F_CYG_OUTSOURCINGPRICE,2) 'New_F_CYG_OUTSOURCINGPRICE' + ,t0e.F_CYG_OUTSOURCINGTOTAL + ,ROUND(t0e.F_CYG_OUTSOURCINGTOTAL,2) 'New_F_CYG_OUTSOURCINGTOTAL' + from T_SAL_RETURNSTOCK t0 + INNER JOIN T_SAL_RETURNSTOCKENTRY t0e on t0.FID = t0e.FID + --WHERE t0.FBILLNO = 'FA20230202-9' +) + +SELECT * +FROM #table1 t0 +WHERE NOT ( + t0.New_F_CYG_COST = t0.F_CYG_COST + AND t0.New_F_CYG_COSTTOTAL = t0.F_CYG_COSTTOTAL + AND t0.New_F_CYG_OPENPRICE = t0.F_CYG_OPENPRICE + AND t0.New_F_CYG_OPENTOTAL = t0.F_CYG_OPENTOTAL + AND t0.New_F_CYG_MOUNTINGCOST = t0.F_CYG_MOUNTINGCOST + AND t0.New_F_CYG_MOUNTINGTOTAL = t0.F_CYG_MOUNTINGTOTAL + AND t0.New_F_CYG_OUTSOURCINGPRICE = t0.F_CYG_OUTSOURCINGPRICE + AND t0.New_F_CYG_OUTSOURCINGTOTAL = t0.F_CYG_OUTSOURCINGTOTAL +) +--UPDATE t0e SET t0e.F_CYG_COST = t0.New_F_CYG_COST +-- ,t0e.F_CYG_COSTTOTAL = t0.New_F_CYG_COSTTOTAL +-- ,t0e.F_CYG_OPENPRICE = t0.New_F_CYG_OPENPRICE +-- ,t0e.F_CYG_OPENTOTAL = t0.New_F_CYG_OPENTOTAL +-- ,t0e.F_CYG_MOUNTINGCOST = t0.New_F_CYG_MOUNTINGCOST +-- ,t0e.F_CYG_MOUNTINGTOTAL = t0.New_F_CYG_MOUNTINGTOTAL +-- ,t0e.F_CYG_OUTSOURCINGPRICE = t0.New_F_CYG_OUTSOURCINGPRICE +-- ,t0e.F_CYG_OUTSOURCINGTOTAL = t0.New_F_CYG_OUTSOURCINGTOTAL +--FROM #table1 t0 +-- INNER JOIN T_SAL_RETURNSTOCKENTRY t0e on t0e.FENTRYID = t0.FENTRYID +--WHERE NOT (t0.New_F_CYG_COST = t0.F_CYG_COST +-- AND t0.New_F_CYG_COSTTOTAL = t0.F_CYG_COSTTOTAL +-- AND t0.New_F_CYG_OPENPRICE = t0.F_CYG_OPENPRICE +-- AND t0.New_F_CYG_OPENTOTAL = t0.F_CYG_OPENTOTAL +-- AND t0.New_F_CYG_MOUNTINGCOST = t0.F_CYG_MOUNTINGCOST +-- AND t0.New_F_CYG_MOUNTINGTOTAL = t0.F_CYG_MOUNTINGTOTAL +-- AND t0.New_F_CYG_OUTSOURCINGPRICE = t0.F_CYG_OUTSOURCINGPRICE +-- AND t0.New_F_CYG_OUTSOURCINGTOTAL = t0.F_CYG_OUTSOURCINGTOTAL +--) \ No newline at end of file diff --git a/05.长园/CYG/销售合同数据计算/销售合同计算_20250618.sql b/05.长园/CYG/销售合同数据计算/销售合同计算_20250618.sql new file mode 100644 index 0000000..a618afc --- /dev/null +++ b/05.长园/CYG/销售合同数据计算/销售合同计算_20250618.sql @@ -0,0 +1,142 @@ +;WITH #۶ AS ( + SELECT t1.FSALES + ,SUM(t1e_f.FALLAMOUNT_LC) 'ۼ۶λ' + ,SUM(t1e.F_CYG_OPENTOTAL) AS 'С' + ,SUM(t1e.F_CYG_OUTSOURCINGTOTAL) AS '⹺С' + ,SUM(t1e.F_CYG_MOUNTINGTOTAL) AS 'װС' + ,SUM(t1e.F_CYG_COSTTOTAL) AS 'ɱС' + FROM T_SAL_ORDER t1 + INNER JOIN T_SAL_ORDERENTRY t1e on t1e.FID = t1.FID + INNER JOIN T_SAL_ORDERENTRY_F t1e_f on t1e_f.FENTRYID = t1e.FENTRYID + WHERE 1=1 + AND t1.FDOCUMENTSTATUS = 'C' + AND t1.F_CYG_CHECKBALANCE != '1' + AND t1e.F_CYG_CHECKBALANCE1 != '1' + AND t1.FBILLTYPEID != 'a300e2620037435492aed9842875b451' + AND t1e.FMRPTERMINATESTATUS != 'B' + GROUP BY t1.FSALES +) +SELECT t1.* + ,t2.ۼƷλ + ,t3.ۼƿƱ + INTO #۶ +FROM #۶ t1 + OUTER APPLY ( + SELECT SUM(t3e.FALLAMOUNT) AS 'ۼƷλ' + FROM T_AR_RECEIVABLE t3 + INNER JOIN T_AR_RECEIVABLEENTRY t3e on t3e.FID = t3.FID + WHERE t1.FSALES = t3.FSALES + AND t3.FSETACCOUNTTYPE = '2'--ͣݹ + AND t3.FDOCUMENTSTATUS = 'C' + AND t3.FBYVERIFY = '0' --ɷʽ + AND t3.FSALESORDERTYPE != '˻' + GROUP BY t3.FSALES + ) t2 + OUTER APPLY ( + SELECT SUM(t3e.FALLAMOUNT) AS 'ۼƿƱ' + FROM T_AR_RECEIVABLE t3 + INNER JOIN T_AR_RECEIVABLEENTRY t3e on t3e.FID = t3.FID + WHERE t1.FSALES = t3.FSALES + AND t3.FSETACCOUNTTYPE = '3'--ͣ + AND t3.FDOCUMENTSTATUS = 'C' + AND t3.FBYVERIFY = '0' + --AND CHARINDEX('-',t3.FBILLNO) = 0 + AND t3.FSALESORDERTYPE != '˻' + GROUP BY t3.FSALES + ) t3 + +;WITH #ͬ AS ( + SELECT t4.FOldFId + ,CAST(t4.FJSONDATA AS nvarchar(4000)) AS 'FJSONDATA' + ,ROW_NUMBER() OVER (PARTITION BY t4.FOldFId ORDER BY t4.FVERSION DESC) RN + FROM T_SCM_BILLCHANGEVERSIONS t4 + WHERE 1 = 1 + AND t4.FFormId = 'CRM_Contract' + AND t4.FACTIVESTATUS != 'A' +) +,#ۺͬ AS ( + SELECT t0.FID,t0.FBILLNO,t0.F_CYG_SALESNUMBER,t0.F_CYG_SHIPMENTSTATUS 'ϵͳж״̬' + ,t0.FNAME as FName + ,t0.FDOCUMENTSTATUS + ,t0.F_CYG_ContractNoDL + ,'A' AS 'FFORBIDSTATUS' + ,t0f.FCONTRACTAMOUNT_LC AS 'ͬ' + ,t0.F_CYG_ORIGINAL_AMOUNT AS 'ԭʼͬ' + --,ISNULL(t4.FCONTRACTAMOUNT_X,t0f.F_CYG_CONTRACTCHANGE) AS 'ͬ仯' + ,t0f.FCONTRACTAMOUNT_LC - t0.F_CYG_ORIGINAL_AMOUNT AS 'ͬ仯' + ,ISNULL(t1.ۼ۶λ,0) AS 'ۼ۶λ' + ,ISNULL(t1.С,0) AS 'С' + ,ISNULL(t1.⹺С,0) AS '⹺С' + ,ISNULL(t1.װС,0) AS 'װС' + ,ISNULL(t1.ɱС,0) AS 'ɱС' + ,ISNULL(t1.ۼƷλ,0) AS 'ۼƷλ' + ,ISNULL(t1.ۼƿƱ,0) AS 'ۼƿƱ' + ,CASE + WHEN (t0f.FCONTRACTAMOUNT_LC = ISNULL(t1.ۼƷλ,0) AND t0f.FCONTRACTAMOUNT_LC != 0) THEN '1' + WHEN t0f.FCONTRACTAMOUNT_LC = ISNULL(t1.ۼƷλ,0) THEN '4' + WHEN (t0f.FCONTRACTAMOUNT_LC > ISNULL(t1.ۼƷλ,0) AND ISNULL(t1.ۼƷλ,0) > 0) THEN '5' + ELSE '0' + END '״̬' + FROM T_CRM_CONTRACT t0 + INNER JOIN T_CRM_CONTRACTFIN t0f on t0f.FID = t0.FID + LEFT JOIN #۶ t1 on t1.FSALES = t0.F_CYG_YSALESNUMBER + --OUTER APPLY ( + -- SELECT CAST(JSON_VALUE(t4.FJSONDATA,'$.CRM_ContractFIN[0].FCONTRACTAMOUNT_LC') AS decimal(23,10)) - t0f.FCONTRACTAMOUNT_LC 'FCONTRACTAMOUNT_X' + -- FROM #ͬ t4 + -- WHERE t4.FOLDFID = t0.FID AND t4.RN = 2 + --) t4 + WHERE 1=1 + AND t0.FDOCUMENTSTATUS = 'C' + --AND t0f.FCONTRACTAMOUNT_LC > 0 + AND t0.F_CYG_CONTRACTTYPE = '664cd624468638' + --AND CONVERT(int,CONVERT(varchar(4) ,t0.FDATE,112)) = 2024 --ֻ޸ͿԸ¶Ӧ +) +SELECT tt.FID,tt.FBILLNO,tt.F_CYG_SALESNUMBER,tt.FName + --,tt.FDOCUMENTSTATUS,tt.F_CYG_CONTRACTNODL,tt.FFORBIDSTATUS + ,tt.ͬ,tt.ͬ仯,tt.ۼ۶λ,tt.ͬ - tt.ۼ۶λ AS 'δµ۶λ' + ,tt.ۼƷλ,tt.ۼƿƱ + ,tt.ۼ۶λ - tt.ۼƷλ AS 'ʣδλ' + ,tt.ۼƷλ - tt.ۼƿƱ AS 'δƱ' + ,tt.װС,tt.ɱС,tt.С,tt.⹺С + ,tt.ϵͳж״̬ + ,tt.״̬ + INTO # +FROM #ۺͬ tt + INNER JOIN T_CRM_CONTRACTFIN t0 on t0.FID = tt.FID +WHERE NOT ( t0.F_CYG_CUMSALESORDERS = tt.ۼ۶λ + AND t0.F_CYG_NOORDERSALES = tt.ͬ - tt.ۼ۶λ + AND t0.F_CYG_CUMSHIPMENT = tt.ۼƷλ + AND t0.F_CYG_REMAINSHIPMENT = tt.ۼ۶λ - tt.ۼƷλ + AND t0.F_CYG_CONTRACTCHANGE = tt.ͬ仯 + AND t0.F_CYG_ACCUMULATEDINVOIC = tt.ۼƿƱ + AND t0.F_CYG_UNINVOICEDAMOUNT = tt.ۼƷλ - tt.ۼƿƱ + AND t0.F_CYG_OPENPRICE = tt.С + AND t0.F_CYG_OUTSOURCINGPRICE = tt.⹺С + AND t0.F_CYG_MOUNTINGCOST = tt.װС + AND t0.F_CYG_COST = tt.ɱС + AND tt.״̬ = tt.ϵͳж״̬) + +UPDATE t0 SET t0.F_CYG_CUMSALESORDERS = tt.ۼ۶λ + ,t0.F_CYG_NOORDERSALES = tt.δµ۶λ + ,t0.F_CYG_CUMSHIPMENT = tt.ۼƷλ + ,t0.F_CYG_REMAINSHIPMENT = tt.ʣδλ + --,t0.F_CYG_CONTRACTCOLLECTION = tt.ͬտ + --,t0.F_CYG_SHIPMENTUNCOLLECTION = tt.ͬδտ + ,t0.F_CYG_CONTRACTCHANGE = tt.ͬ仯 + ,t0.F_CYG_ACCUMULATEDINVOIC = tt.ۼƿƱ + ,t0.F_CYG_UNINVOICEDAMOUNT = tt.δƱ + ,t0.F_CYG_OPENPRICE = tt.С + ,t0.F_CYG_OUTSOURCINGPRICE = tt.⹺С + ,t0.F_CYG_MOUNTINGCOST = tt.װС + ,t0.F_CYG_COST = tt.ɱС +FROM T_CRM_CONTRACTFIN t0 + INNER JOIN # tt on t0.FID = tt.FID + +UPDATE t0 SET t0.FMODIFYDATE = GETDATE() + ,t0.FMODIFIERID = 100007 + ,t0.F_CYG_SHIPMENTSTATUS = tt.״̬ +FROM T_CRM_CONTRACT t0 + INNER JOIN # tt on t0.FID = tt.FID + +DROP TABLE #۶ +DROP TABLE # \ No newline at end of file diff --git a/05.长园/CYG/销售订单字段四舍五入_20250321.sql b/05.长园/CYG/销售订单字段四舍五入_20250321.sql new file mode 100644 index 0000000..3ccadf4 --- /dev/null +++ b/05.长园/CYG/销售订单字段四舍五入_20250321.sql @@ -0,0 +1,74 @@ +--ֶ滻Ӧ +select + t0e.FID + ,t0e.F_CYG_COST + ,t0e.F_CYG_COST1 + + ,t0e.F_CYG_COSTTOTAL + ,t0e.F_CYG_AMOUNT1 --ɱ + + ,t0e.F_CYG_OPENPRICE + ,t0e.F_CYG_OPENPRICE1 + + ,t0e.F_CYG_OPENTOTAL + ,t0e.F_CYG_AMOUNT2 -- + + ,t0e.F_CYG_MOUNTINGCOST + ,t0e.F_CYG_MOUNTINGCOST1 + + ,t0e.F_CYG_MOUNTINGTOTAL + ,t0e.F_CYG_AMOUNT3 --װ + + ,t0e.F_CYG_OUTSOURCINGPRICE + ,t0e.F_CYG_OUTSOURCINGPRICE1 + + ,t0e.F_CYG_OUTSOURCINGTOTAL + ,t0e.F_CYG_AMOUNT4 --⹺ + +from T_SAL_ORDERENTRY t0e + +--ֶ +UPDATE T_SAL_ORDERENTRY SET + F_CYG_COST1 = F_CYG_COST + ,F_CYG_AMOUNT1 = F_CYG_COSTTOTAL + ,F_CYG_OPENPRICE1 = F_CYG_OPENPRICE + ,F_CYG_AMOUNT2 = F_CYG_OPENTOTAL + ,F_CYG_MOUNTINGCOST1 = F_CYG_MOUNTINGCOST + ,F_CYG_AMOUNT3 = F_CYG_MOUNTINGTOTAL + ,F_CYG_OUTSOURCINGPRICE1 = F_CYG_OUTSOURCINGPRICE + ,F_CYG_AMOUNT4 = F_CYG_OUTSOURCINGTOTAL + +--ԭݽ +UPDATE t0e SET + t0e.F_CYG_COST = ROUND(t0e.F_CYG_COST,2) + ,t0e.F_CYG_COSTTOTAL = ROUND(t0e.F_CYG_COSTTOTAL,2) + ,t0e.F_CYG_OPENPRICE = ROUND(t0e.F_CYG_OPENPRICE,2) + ,t0e.F_CYG_OPENTOTAL = ROUND(t0e.F_CYG_OPENTOTAL,2) + ,t0e.F_CYG_MOUNTINGCOST = ROUND(t0e.F_CYG_MOUNTINGCOST,2) + ,t0e.F_CYG_MOUNTINGTOTAL = ROUND(t0e.F_CYG_MOUNTINGTOTAL,2) + ,t0e.F_CYG_OUTSOURCINGPRICE = ROUND(t0e.F_CYG_OUTSOURCINGPRICE,2) + ,t0e.F_CYG_OUTSOURCINGTOTAL = ROUND(t0e.F_CYG_OUTSOURCINGTOTAL,2) +FROM T_SAL_ORDERENTRY t0e + --INNER JOIN T_SAL_ORDERENTRY_BACKUP_202503211503 t1e on t0e.FENTRYID = t1e.FENTRYID + +--˶ +SELECT + t0e.F_CYG_COST + ,ROUND(t0e.F_CYG_COST,2) + ,t0e.F_CYG_COSTTOTAL + ,ROUND(t0e.F_CYG_COSTTOTAL,2) + ,t0e.F_CYG_OPENPRICE + ,ROUND(t0e.F_CYG_OPENPRICE,2) + ,t0e.F_CYG_OPENTOTAL + ,ROUND(t0e.F_CYG_OPENTOTAL,2) + ,t0e.F_CYG_MOUNTINGCOST + ,ROUND(t0e.F_CYG_MOUNTINGCOST,2) + ,t0e.F_CYG_MOUNTINGTOTAL + ,ROUND(t0e.F_CYG_MOUNTINGTOTAL,2) + ,t0e.F_CYG_OUTSOURCINGPRICE + ,ROUND(t0e.F_CYG_OUTSOURCINGPRICE,2) + ,t0e.F_CYG_OUTSOURCINGTOTAL + ,ROUND(t0e.F_CYG_OUTSOURCINGTOTAL,2) +from T_SAL_ORDER t0 + INNER JOIN T_SAL_ORDERENTRY t0e on t0.FID = t0e.FID +WHERE t0.FBILLNO = 'FA20230202-9' diff --git a/07.珠海英搏尔/Enpower.Python/Enpower.Python.pyproj b/07.珠海英搏尔/Enpower.Python/Enpower.Python.pyproj index 83dfcdd..b8b8bea 100644 --- a/07.珠海英搏尔/Enpower.Python/Enpower.Python.pyproj +++ b/07.珠海英搏尔/Enpower.Python/Enpower.Python.pyproj @@ -28,9 +28,13 @@ + + + + diff --git a/07.珠海英搏尔/GZ.LJY000.Enpower/SUB_SUBREQORDER/ListEventPlugInEx.py b/07.珠海英搏尔/GZ.LJY000.Enpower/SUB_SUBREQORDER/ListEventPlugInEx.py index 0282068..5231071 100644 --- a/07.珠海英搏尔/GZ.LJY000.Enpower/SUB_SUBREQORDER/ListEventPlugInEx.py +++ b/07.珠海英搏尔/GZ.LJY000.Enpower/SUB_SUBREQORDER/ListEventPlugInEx.py @@ -23,14 +23,15 @@ from Kingdee.BOS.Orm.DataEntity import* def AfterDoOperation(e): if e.Operation.Operation == "DoUpdateSubFORECAST": selectedRows = this.ListView.SelectedRowsInfo; - if selectedRows == None or selectedRows.Count == 0: - this.View.ShowMessage("当前没有行被选中!"); - return; + # if selectedRows == None or selectedRows.Count == 0: + # this.View.ShowMessage("当前没有行被选中!"); + # return; - billNos = List[str](); - for row in selectedRows: - billNos.Add(row.BillNo); + # billNos = List[str](); + # for row in selectedRows: + # billNos.Add(row.BillNo); - sql = "/*dialect*/ exec P_UpdateSubFORECAST '{0}'".format(",".join(billNos)); + # sql = "/*dialect*/ exec P_UpdateSubFORECAST '{0}'".format(",".join(billNos)); + sql = "/*dialect*/ exec P_UpdateSubFORECAST '' "; dr = DBServiceHelper.ExecuteDynamicObject(this.Context, sql); \ No newline at end of file diff --git a/13.得米新材.zip b/13.得米新材.zip deleted file mode 100644 index 810aff4..0000000 Binary files a/13.得米新材.zip and /dev/null differ diff --git a/07.珠海英搏尔/GZ.LJY000.Enpower.zip b/14.宝锐/GZ.LJY000.Biori.zip similarity index 95% rename from 07.珠海英搏尔/GZ.LJY000.Enpower.zip rename to 14.宝锐/GZ.LJY000.Biori.zip index a9432c2..46996a4 100644 Binary files a/07.珠海英搏尔/GZ.LJY000.Enpower.zip and b/14.宝锐/GZ.LJY000.Biori.zip differ diff --git a/14.宝锐/GZ.LJY000.Biori/GZ.LJY000.Biori.csproj b/14.宝锐/GZ.LJY000.Biori/GZ.LJY000.Biori.csproj index 57f1f23..693cbd6 100644 --- a/14.宝锐/GZ.LJY000.Biori/GZ.LJY000.Biori.csproj +++ b/14.宝锐/GZ.LJY000.Biori/GZ.LJY000.Biori.csproj @@ -130,6 +130,8 @@ + + @@ -176,6 +178,7 @@ + @@ -203,10 +206,12 @@ + + @@ -224,6 +229,8 @@ + + diff --git a/14.宝锐/GZ.LJY000.Biori/PLN_FORECAST/BillEventPlugInEx.py b/14.宝锐/GZ.LJY000.Biori/PLN_FORECAST/BillEventPlugInEx.py index b2e9bb1..fe3afcf 100644 --- a/14.宝锐/GZ.LJY000.Biori/PLN_FORECAST/BillEventPlugInEx.py +++ b/14.宝锐/GZ.LJY000.Biori/PLN_FORECAST/BillEventPlugInEx.py @@ -57,11 +57,46 @@ def DataChanged(e): details = this.View.BusinessInfo.GetEntity("FEntity") entrys = this.View.Model.GetEntityDataObject(details) + + parentQty = e.NewValue; + F_UHIK_Text = this.View.Model.GetValue("F_UHIK_Text",e.Row); + + labQty = parentQty if F_UHIK_Text == None or len(F_UHIK_Text.strip()) <=0 else float(''.join(filter(lambda c: c.isdigit(), F_UHIK_Text))) + FCountQty = parentQty / labQty + + this.View.Model.SetValue("FCountQty", FCountQty,e.Row) + this.View.UpdateView("FCountQty",e.Row); for entry in entrys: parentRowId = entry["ParentRowId"] if parentRowId != None and parentRowId == pRowId: rowIndex = this.View.Model.GetRowIndex(details, entry) - this.View.Model.SetValue("F_UHIK_Qty2", e.NewValue,rowIndex) - this.View.UpdateView("F_UHIK_Qty2",rowIndex); - this.View.InvokeFieldUpdateService("F_UHIK_Qty2",rowIndex); - # this.View.UpdateView("FCountQty",rowIndex); \ No newline at end of file + this.View.Model.SetValue("FCountQty", FCountQty,rowIndex) + # this.View.UpdateView("F_UHIK_Qty2",rowIndex); + # this.View.InvokeFieldUpdateService("F_UHIK_Qty2",rowIndex); + this.View.UpdateView("FCountQty",rowIndex); + + if e.Field.Key == "F_UHIK_Text": + rowType = this.View.Model.GetValue("FProductType", e.Row); + # raise Exception(rowType); + if rowType == '1': + pRowId = this.View.Model.GetValue("FRowId",e.Row) + + details = this.View.BusinessInfo.GetEntity("FEntity"); + entrys = this.View.Model.GetEntityDataObject(details); + + parentQty = this.View.Model.GetValue("FQty",e.Row); + F_UHIK_Text = e.NewValue + + labQty = parentQty if F_UHIK_Text == None or len(F_UHIK_Text.strip()) <=0 else float(''.join(filter(lambda c: c.isdigit(), F_UHIK_Text))) + FCountQty = parentQty / labQty + + this.View.Model.SetValue("FCountQty", FCountQty,e.Row) + this.View.UpdateView("FCountQty",e.Row); + for entry in entrys: + parentRowId = entry["ParentRowId"] + if parentRowId != None and parentRowId == pRowId: + rowIndex = this.View.Model.GetRowIndex(details, entry) + this.View.Model.SetValue("FCountQty", FCountQty,rowIndex) + # this.View.UpdateView("F_UHIK_Qty2",rowIndex); + # this.View.InvokeFieldUpdateService("F_UHIK_Qty2",rowIndex); + this.View.UpdateView("FCountQty",rowIndex); \ No newline at end of file diff --git a/14.宝锐/GZ.LJY000.Biori/PRD_INSTOCK/OperationEventPlugIn/Audit.cs b/14.宝锐/GZ.LJY000.Biori/PRD_INSTOCK/OperationEventPlugIn/Audit.cs new file mode 100644 index 0000000..545542f --- /dev/null +++ b/14.宝锐/GZ.LJY000.Biori/PRD_INSTOCK/OperationEventPlugIn/Audit.cs @@ -0,0 +1,213 @@ +using GZ.LJY000.Biori.UHIK_PRD_PACKAGE_INSTOCK; +using Kingdee.BOS.Core.DynamicForm; +using Kingdee.BOS.Core.DynamicForm.PlugIn; +using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; +using Kingdee.BOS.ServiceHelper; +using Kingdee.BOS.Util; +using Kingdee.K3.BD.NewCode.Core.Utils; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; + +namespace GZ.LJY000.Biori.PRD_INSTOCK.OperationEventPlugIn +{ + [HotUpdate, Description("审核_生产入库单操作")] + public class Audit : AbstractOperationServicePlugIn + { + public override void OnPreparePropertys(PreparePropertysEventArgs e) + { + base.OnPreparePropertys(e); + } + + public override void BeforeExecuteOperationTransaction(BeforeExecuteOperationTransaction e) + { + base.BeforeExecuteOperationTransaction(e); + if (this.FormOperation.OperationId == 1) + { + #region 检测已经组装的套件是否有没有填写套件数 + var idList = new List(); + foreach (var entity in e.SelectedRows) + { + var billId = entity.DataEntity["Id"].Long2Int(); + + if (billId > 0) + idList.Add(billId); + + } + //var billId = entity["Id"].Long2Int(); + + if (idList.Any()) + { + var sql = $@"/*dialect*/ + +;WITH #table1 AS ( + SELECT t0.FBILLNO,t0.FDOCUMENTSTATUS,t0e.FID,t0e.FENTRYID,t0e.FSEQ,t0e.FPIECECOUNT + ,t1.FBILLNO 'FCBillNo',t1e.FID 'FCId',t1e.FENTRYID 'FCEntryId' + ,t2e.FENTRYID 'SrcEntryId' + ,ISNULL(t3.FBILLNO, '') 'PackBillNo' + ,t0e.FSTOCKID,t0e.FSTOCKLOCID + ,ROW_NUMBER() OVER (PARTITION BY t3.FBILLNO,t0e.FID ORDER BY t0e.FSEQ ASC,t0e.FPIECECOUNT DESC) RN + FROM T_PRD_INSTOCK t0 + INNER JOIN T_PRD_INSTOCKENTRY t0e on t0.FID = t0e.FID + INNER JOIN T_PRD_INSTOCKENTRY_A t0e_a on t0e_a.FENTRYID = t0e.FENTRYID + INNER JOIN T_PLN_FORECAST t1 on t1.FBILLNO = t0e_a.FREQBILLNO + INNER JOIN T_PLN_FORECASTENTRY t1e on t1.FID = t1e.FID AND t1e.FSEQ = t0e_a.FREQENTRYSEQ + AND t1e.FPRODUCTTYPE = 2 + INNER JOIN T_PLN_FORECASTENTRY t2e on t2e.FID = t1e.FID AND t2e.FROWID = t1e.FPARENTROWID + AND t2e.FPRODUCTTYPE = 1 + LEFT JOIN T_PRD_PACKAGEINSTOCK t3 on t3.FSRCBILLENTRYID = t2e.FENTRYID AND t3.FSRCBILLNO = t1.FBILLNO + WHERE 1 = 1 + --AND t0.FDOCUMENTSTATUS != 'Z' AND t0.FDOCUMENTSTATUS != 'C' + AND t0.FID IN ({string.Join(",", idList)}) +) +SELECT t0.* +FROM #table1 t0 +WHERE t0.RN = 1 + +"; + var resData = DBServiceHelper.ExecuteDynamicObject(this.Context, sql); + if (resData != null && resData.Count > 0) + { + foreach (var item in resData) + { + var countQty = item["FPIECECOUNT"].Convert(); + + var strockId = item["FSTOCKID"].Long2Int(); + var stocklocId = item["FSTOCKLOCID"].Long2Int(); + + if (countQty <= 0 || strockId == 0) + { + e.Cancel = true; + + var billNo = item["FBILLNO"].ToString(); + var packBillNo = item["PackBillNo"].ToString(); + var fcBillNo = item["FCBillNo"].ToString(); + + var seq = item["FSEQ"].Long2Int(); + + var errMsg = string.Empty; + + if (countQty <= 0) + errMsg = $"套件数量不能小于等于0!明细行【{seq}】组装单号【{packBillNo}】,预测单号【{fcBillNo}】"; + else if(packBillNo.IsNullOrEmptyOrWhiteSpace()) + errMsg = $"未生成成品组装单,预测单号【{fcBillNo}】"; + else + errMsg = $"仓库位置不能为空!组装单号【{packBillNo}】,预测单号【{fcBillNo}】"; + + this.OperationResult.IsSuccess = false; + this.OperationResult.IsShowMessage = true; + this.OperationResult.OperateResult.Add(new OperateResult + { + SuccessStatus = false, + Number = billNo, + MessageType = MessageType.FatalError, + RowIndex = seq, + Message = errMsg + }); + + } + } + } + + } + + #endregion + + } + } + + public override void EndOperationTransaction(EndOperationTransactionArgs e) + { + base.EndOperationTransaction(e); + #region 根据套件数更新组装单库存信息 + if (this.FormOperation.OperationId == 1) + { + var idList = new List(); + foreach (var entity in e.DataEntitys) + { + var billId = entity["Id"].Long2Int(); + + if (billId > 0) + idList.Add(entity["Id"].Long2Int()); + + } + //var billId = entity["Id"].Long2Int(); + + if (idList.Any()) + { + var sql = $@"/*dialect*/ + +;WITH #table1 AS ( + SELECT t0.FBILLNO,t0.FDOCUMENTSTATUS,t0e.FID,t0e.FENTRYID,t0e.FSEQ,t0e.FPIECECOUNT + ,t1.FBILLNO 'FCBillNo',t1e.FID 'FCId',t1e.FENTRYID 'FCEntryId' + ,t2e.FENTRYID 'SrcEntryId' + ,ISNULL(t3.FBILLNO, '') 'PackBillNo' + ,t0e.FSTOCKID,t0e.FSTOCKLOCID + ,ROW_NUMBER() OVER (PARTITION BY t3.FBILLNO,t0e.FID ORDER BY t0e.FSEQ ASC,t0e.FPIECECOUNT DESC) RN + FROM T_PRD_INSTOCK t0 + INNER JOIN T_PRD_INSTOCKENTRY t0e on t0.FID = t0e.FID + INNER JOIN T_PRD_INSTOCKENTRY_A t0e_a on t0e_a.FENTRYID = t0e.FENTRYID + INNER JOIN T_PLN_FORECAST t1 on t1.FBILLNO = t0e_a.FREQBILLNO + INNER JOIN T_PLN_FORECASTENTRY t1e on t1.FID = t1e.FID AND t1e.FSEQ = t0e_a.FREQENTRYSEQ + AND t1e.FPRODUCTTYPE = 2 + INNER JOIN T_PLN_FORECASTENTRY t2e on t2e.FID = t1e.FID AND t2e.FROWID = t1e.FPARENTROWID + AND t2e.FPRODUCTTYPE = 1 + LEFT JOIN T_PRD_PACKAGEINSTOCK t3 on t3.FSRCBILLENTRYID = t2e.FENTRYID AND t3.FSRCBILLNO = t1.FBILLNO + WHERE 1 = 1 + --AND t0.FDOCUMENTSTATUS != 'Z' + AND t0.FID IN ({string.Join(",", idList)}) +) +SELECT t0.* +FROM #table1 t0 +WHERE t0.RN = 1 + +"; + var resData = DBServiceHelper.ExecuteDynamicObject(this.Context, sql); + if (resData != null && resData.Count > 0) + { + var packService = new PrdPackService(this.Context); + foreach (var item in resData) + { + var pieceCount = item["FPIECECOUNT"].Convert(); + if (pieceCount > 0) + { + + var billNo = item["FBILLNO"].ToString(); + var packBillNo = item["PackBillNo"].ToString(); + var fcBillNo = item["FCBillNo"].ToString(); + + var strockId = item["FSTOCKID"].Long2Int(); + var stocklocId = item["FSTOCKLOCID"].Long2Int(); + + + string msg = string.Empty; + var seq = item["FSEQ"].Long2Int(); + + var flag = packService.DoComputePackgeQty(packBillNo, strockId, stocklocId, pieceCount, true, ref msg); + + if (!flag) + { + this.OperationResult.IsSuccess = false; + this.OperationResult.OperateResult.Add(new OperateResult + { + SuccessStatus = false, + Number = billNo, + MessageType = MessageType.FatalError, + RowIndex = seq, + Message = $"{msg},组装单号【{packBillNo}】,预测单号【{fcBillNo}】" + }); + } + } + } + } + + } + + + } + #endregion 根据套件数更新组装单库存信息 + } + } +} diff --git a/14.宝锐/GZ.LJY000.Biori/PRD_INSTOCK/OperationEventPlugIn/UnAudit.cs b/14.宝锐/GZ.LJY000.Biori/PRD_INSTOCK/OperationEventPlugIn/UnAudit.cs new file mode 100644 index 0000000..17dc961 --- /dev/null +++ b/14.宝锐/GZ.LJY000.Biori/PRD_INSTOCK/OperationEventPlugIn/UnAudit.cs @@ -0,0 +1,111 @@ +using GZ.LJY000.Biori.UHIK_PRD_PACKAGE_INSTOCK; +using Kingdee.BOS.Core.DynamicForm; +using Kingdee.BOS.Core.DynamicForm.PlugIn; +using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; +using Kingdee.BOS.ServiceHelper; +using Kingdee.BOS.Util; +using Kingdee.K3.BD.NewCode.Core.Utils; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; + +namespace GZ.LJY000.Biori.PRD_INSTOCK.OperationEventPlugIn +{ + [HotUpdate, Description("反审核_生产入库单服务")] + public class UnAudit : AbstractOperationServicePlugIn + { + public override void EndOperationTransaction(EndOperationTransactionArgs e) + { + base.EndOperationTransaction(e); + #region 根据套件数更新组装单库存信息 + + if (this.FormOperation.OperationId == 26) + { + var idList = new List(); + foreach (var entity in e.DataEntitys) + { + var billId = entity["Id"].Long2Int(); + + if (billId > 0) + idList.Add(entity["Id"].Long2Int()); + + } + //var billId = entity["Id"].Long2Int(); + + if (idList.Any()) + { + var sql = $@"/*dialect*/ + +;WITH #table1 AS ( + SELECT t0.FBILLNO,t0e.FID,t0e.FENTRYID,t0e.FSEQ,t0e.FPIECECOUNT + ,t1.FBILLNO 'FCBillNo',t1e.FID 'FCId',t1e.FENTRYID 'FCEntryId' + ,t2e.FENTRYID 'SrcEntryId' + ,t3.FBILLNO 'PackBillNo' + ,t0e.FSTOCKID,t0e.FSTOCKLOCID + ,ROW_NUMBER() OVER (PARTITION BY t3.FBILLNO,t0e.FID ORDER BY t0e.FSEQ ASC,t0e.FPIECECOUNT DESC) RN + FROM T_PRD_INSTOCK t0 + INNER JOIN T_PRD_INSTOCKENTRY t0e on t0.FID = t0e.FID + INNER JOIN T_PRD_INSTOCKENTRY_A t0e_a on t0e_a.FENTRYID = t0e.FENTRYID + INNER JOIN T_PLN_FORECAST t1 on t1.FBILLNO = t0e_a.FREQBILLNO + INNER JOIN T_PLN_FORECASTENTRY t1e on t1.FID = t1e.FID AND t1e.FSEQ = t0e_a.FREQENTRYSEQ + AND t1e.FPRODUCTTYPE = 2 + INNER JOIN T_PLN_FORECASTENTRY t2e on t2e.FID = t1e.FID AND t2e.FROWID = t1e.FPARENTROWID + AND t2e.FPRODUCTTYPE = 1 + INNER JOIN T_PRD_PACKAGEINSTOCK t3 on t3.FSRCBILLENTRYID = t2e.FENTRYID AND t3.FSRCBILLNO = t1.FBILLNO + WHERE 1 = 1 + --AND t0.FDOCUMENTSTATUS = 'C' + AND t0.FID IN ({string.Join(",", idList)}) +) +SELECT t0.* +FROM #table1 t0 +WHERE t0.RN = 1 + +"; + var resData = DBServiceHelper.ExecuteDynamicObject(this.Context, sql); + if (resData != null && resData.Count > 0) + { + var packService = new PrdPackService(this.Context); + foreach (var item in resData) + { + var pieceCount = item["FPIECECOUNT"].Convert(); + if (pieceCount > 0) + { + var billNo = item["FBILLNO"].ToString(); + var packBillNo = item["PackBillNo"].ToString(); + var fcBillNo = item["FCBillNo"].ToString(); + + var strockId = item["FSTOCKID"].Long2Int(); + var stocklocId = item["FSTOCKLOCID"].Long2Int(); + + string msg = string.Empty; + var seq = item["FSEQ"].Long2Int(); + + var flag = packService.DoComputePackgeQty(packBillNo, strockId, stocklocId, pieceCount, false, ref msg); + + if (!flag) + { + this.OperationResult.IsSuccess = false; + this.OperationResult.OperateResult.Add(new OperateResult + { + SuccessStatus = false, + Number = billNo, + MessageType = MessageType.FatalError, + RowIndex = seq, + Message = $"{msg},组装单号【{packBillNo}】,预测单号【{fcBillNo}】" + }); + } + } + } + } + + } + + + } + + #endregion + } + } +} diff --git a/14.宝锐/GZ.LJY000.Biori/PRD_INSTOCK/OperationEventPlugIn/生产入库单审核后更新组装单信息.py b/14.宝锐/GZ.LJY000.Biori/PRD_INSTOCK/OperationEventPlugIn/生产入库单审核后更新组装单信息.py index 9bad403..adae2d4 100644 --- a/14.宝锐/GZ.LJY000.Biori/PRD_INSTOCK/OperationEventPlugIn/生产入库单审核后更新组装单信息.py +++ b/14.宝锐/GZ.LJY000.Biori/PRD_INSTOCK/OperationEventPlugIn/生产入库单审核后更新组装单信息.py @@ -38,27 +38,49 @@ def OnPreparePropertys(e): e.FieldKeys.Add("FPieceCount"); e.FieldKeys.Add("FReqBillId"); e.FieldKeys.Add("FReqBillNo"); + e.FieldKeys.Add("FReqEntrySeq"); def EndOperationTransaction(e): # * 保存8提交9审核1反审核26删除3 if this.FormOperation.OperationId == 1: for entity in e.DataEntitys: # raise Exception(JsonUtil.Serialize(entity)) - entry = entity["Entity"][0] - reqBillNo = entry["ReqBillNo"] - strockid = entry["StockId_Id"] - stocklocid = entry["StockLocId_Id"] - pieceCount = float(entry["PieceCount"]) + # entry = entity["Entity"][0] + # reqBillNo = entry["ReqBillNo"] + # reqEntrySeq = entry["ReqEntrySeq"] + + # strockid = entry["StockId_Id"] + # stocklocid = entry["StockLocId_Id"] + # pieceCount = entry["PieceCount"] + billId = entity["Id"]; # msg = ""; sql = """/*dialect*/ - SELECT t0.FBILLNO - FROM T_PRD_PACKAGEINSTOCK t0 - WHERE t0.FSRCBILLNO = '{0}' - """.format(reqBillNo); + +;WITH #table1 AS ( + SELECT t0e.FID,t0e.FENTRYID,t0e.FPIECECOUNT + ,t1.FBILLNO 'FCBillNo',t1e.FID 'FCId',t1e.FENTRYID 'FCEntryId' + ,t2e.FENTRYID 'SrcEntryId' + ,t3.FBILLNO 'PackBillNo' + ,t0e.FSTOCKID,t0e.FSTOCKLOCID + ,ROW_NUMBER() OVER (PARTITION BY t3.FBILLNO ORDER BY t0e.FID,t0e.FSEQ) RN + FROM T_PRD_INSTOCKENTRY t0e --on t0.FID = t0e.FID + INNER JOIN T_PRD_INSTOCKENTRY_A t0e_a on t0e_a.FENTRYID = t0e.FENTRYID + INNER JOIN T_PLN_FORECAST t1 on t1.FBILLNO = t0e_a.FREQBILLNO + INNER JOIN T_PLN_FORECASTENTRY t1e on t1.FID = t1e.FID AND t1e.FSEQ = t0e_a.FREQENTRYSEQ + INNER JOIN T_PLN_FORECASTENTRY t2e on t2e.FID = t1e.FID AND t2e.FROWID = t1e.FPARENTROWID + INNER JOIN T_PRD_PACKAGEINSTOCK t3 on t3.FSRCBILLENTRYID = t2e.FENTRYID AND t3.FSRCBILLNO = t1.FBILLNO + WHERE t0e.FID = {0} +) +SELECT t0.* +FROM #table1 t0 +WHERE t0.RN = 1 + + """.format(billId); data = DBServiceHelper.ExecuteDynamicObject(this.Context, sql); if data.Count > 0: packService = PrdPackService(this.Context) msg = ""; + # raise Exception(str(pieceCount)) flag = packService.DoComputePackgeQty(data[0]["FBILLNO"],strockid,stocklocid,pieceCount,True ,msg); if flag == False: raise Exception(msg) @@ -67,23 +89,49 @@ def EndOperationTransaction(e): if this.FormOperation.OperationId == 26: for entity in e.DataEntitys: # raise Exception(JsonUtil.Serialize(entity)) - entry = entity["Entity"][0] - reqBillNo = entry["ReqBillNo"] - strockid = entry["StockId_Id"] - stocklocid = entry["StockLocId_Id"] - pieceCount = float(entry["PieceCount"]) + # entry = entity["Entity"][0] + # reqBillNo = entry["ReqBillNo"] + # reqEntrySeq = entry["ReqEntrySeq"] + + # strockid = entry["StockId_Id"] + # stocklocid = entry["StockLocId_Id"] + # pieceCount = entry["PieceCount"] + + billId = entity["Id"]; # msg = ""; sql = """/*dialect*/ - SELECT t0.FBILLNO - FROM T_PRD_PACKAGEINSTOCK t0 - WHERE t0.FSRCBILLNO = '{0}' - """.format(reqBillNo); + +;WITH #table1 AS ( + SELECT t0e.FID,t0e.FENTRYID,t0e.FPIECECOUNT + ,t1.FBILLNO 'FCBillNo',t1e.FID 'FCId',t1e.FENTRYID 'FCEntryId' + ,t2e.FENTRYID 'SrcEntryId' + ,t3.FBILLNO 'PackBillNo' + ,t0e.FSTOCKID,t0e.FSTOCKLOCID + ,ROW_NUMBER() OVER (PARTITION BY t3.FBILLNO ORDER BY t0e.FID,t0e.FSEQ) RN + FROM T_PRD_INSTOCKENTRY t0e --on t0.FID = t0e.FID + INNER JOIN T_PRD_INSTOCKENTRY_A t0e_a on t0e_a.FENTRYID = t0e.FENTRYID + INNER JOIN T_PLN_FORECAST t1 on t1.FBILLNO = t0e_a.FREQBILLNO + INNER JOIN T_PLN_FORECASTENTRY t1e on t1.FID = t1e.FID AND t1e.FSEQ = t0e_a.FREQENTRYSEQ + INNER JOIN T_PLN_FORECASTENTRY t2e on t2e.FID = t1e.FID AND t2e.FROWID = t1e.FPARENTROWID + INNER JOIN T_PRD_PACKAGEINSTOCK t3 on t3.FSRCBILLENTRYID = t2e.FENTRYID AND t3.FSRCBILLNO = t1.FBILLNO + WHERE t0e.FID = {0} +) +SELECT t0.* +FROM #table1 t0 +WHERE t0.RN = 1 + + """.format(billId); data = DBServiceHelper.ExecuteDynamicObject(this.Context, sql); if data.Count > 0: packService = PrdPackService(this.Context) - msg = ""; - flag = packService.DoComputePackgeQty(data[0]["FBILLNO"],strockid,stocklocid, pieceCount,False ,msg); - if flag == False: - raise Exception(msg) + for item in data: + msg = ""; + packBillNo = item["PackBillNo"]; + pieceCount = item["FPIECECOUNT"]; + strockid = item["FSTOCKID"]; + stocklocid = item["FSTOCKLOCID"]; + flag = packService.DoComputePackgeQty(packBillNo,strockid,stocklocid, pieceCount,False ,msg); + if flag == False: + raise Exception(msg) return; \ No newline at end of file diff --git a/14.宝锐/GZ.LJY000.Biori/SAL_OUTSTOCK/OperationEventPlugIn/Audit.cs b/14.宝锐/GZ.LJY000.Biori/SAL_OUTSTOCK/OperationEventPlugIn/Audit.cs index ec7b531..2e0df73 100644 --- a/14.宝锐/GZ.LJY000.Biori/SAL_OUTSTOCK/OperationEventPlugIn/Audit.cs +++ b/14.宝锐/GZ.LJY000.Biori/SAL_OUTSTOCK/OperationEventPlugIn/Audit.cs @@ -49,16 +49,21 @@ namespace GZ.LJY000.Biori.SAL_OUTSTOCK.OperationEventPlugIn //添加检查校验器: if (this.FormOperation.OperationId == 1) { - var validator = new SubmitVaildator();//新增的校验器 - validator.EntityKey = "FEntity"; - e.Validators.Add(validator);//添加校验器 + //var validator = new SubmitVaildator();//新增的校验器 + //validator.EntityKey = "FEntity"; + //e.Validators.Add(validator);//添加校验器 } } + /// + /// + /// + /// + /// public override void EndOperationTransaction(EndOperationTransactionArgs e) { base.EndOperationTransaction(e); - //因启用审批流,导致提交后撤销时会默认反审核操作,故停用 + //因启用审批流,导致提交后撤销时会默认反审核操作 if (this.FormOperation.OperationId == 1) { foreach (var entity in e.DataEntitys) @@ -77,6 +82,8 @@ namespace GZ.LJY000.Biori.SAL_OUTSTOCK.OperationEventPlugIn stockLocId = item["StockLocID_Id"].Long2Int(), packBillNo = item["FPackBillNo"] == null ? string.Empty : item["FPackBillNo"].ToString(), pieceCount = item["FCuntQty"].Convert(), + + QRCode = item["FPackBarCode"] == null ? string.Empty : item["FPackBarCode"].ToString(), }; dataList.Add(qv); @@ -95,7 +102,7 @@ namespace GZ.LJY000.Biori.SAL_OUTSTOCK.OperationEventPlugIn return pData; }).ToList(); - if (pList.Any()) + if (pList.Any(w => !w.QRCode.IsNullOrEmptyOrWhiteSpace())) { foreach (var p in pList) { @@ -153,7 +160,7 @@ namespace GZ.LJY000.Biori.SAL_OUTSTOCK.OperationEventPlugIn public string packBillNo { get; set; } public decimal pieceCount { get; set; } - + public string QRCode { get; set; } } } } diff --git a/14.宝锐/GZ.LJY000.Biori/SAL_OUTSTOCK/OperationEventPlugIn/Submit.cs b/14.宝锐/GZ.LJY000.Biori/SAL_OUTSTOCK/OperationEventPlugIn/Submit.cs index f178e4a..a5ebced 100644 --- a/14.宝锐/GZ.LJY000.Biori/SAL_OUTSTOCK/OperationEventPlugIn/Submit.cs +++ b/14.宝锐/GZ.LJY000.Biori/SAL_OUTSTOCK/OperationEventPlugIn/Submit.cs @@ -48,9 +48,9 @@ namespace GZ.LJY000.Biori.SAL_OUTSTOCK.OperationEventPlugIn //添加检查校验器: if (this.FormOperation.OperationId == 9) { - //var validator = new SubmitVaildator();//新增的校验器 - //validator.EntityKey = "FEntity"; - //e.Validators.Add(validator);//添加校验器 + var validator = new SubmitVaildator();//新增的校验器 + validator.EntityKey = "FEntity"; + e.Validators.Add(validator);//添加校验器 } } diff --git a/14.宝锐/GZ.LJY000.Biori/SAL_OUTSTOCK/OperationEventPlugIn/SubmitVaildator.cs b/14.宝锐/GZ.LJY000.Biori/SAL_OUTSTOCK/OperationEventPlugIn/SubmitVaildator.cs index 402ce55..c623536 100644 --- a/14.宝锐/GZ.LJY000.Biori/SAL_OUTSTOCK/OperationEventPlugIn/SubmitVaildator.cs +++ b/14.宝锐/GZ.LJY000.Biori/SAL_OUTSTOCK/OperationEventPlugIn/SubmitVaildator.cs @@ -1,6 +1,7 @@ using Kingdee.BOS; using Kingdee.BOS.Core; using Kingdee.BOS.Core.Validation; +using Kingdee.BOS.Orm.DataEntity; using Kingdee.BOS.ServiceHelper; using Kingdee.BOS.Util; using Kingdee.K3.BD.NewCode.Core.Utils; @@ -81,6 +82,9 @@ exec Proc_Get_BarCode_Control_Param if (dataList.Any()) { + #region 套件判断规则 + + //套件没有仓库仓位,需要先进行赋值 var pList = dataList.Where(w => w.QRCode.IsNullOrEmptyOrWhiteSpace() && w.rowType.Equals("Parent", StringComparison.OrdinalIgnoreCase)).Select(x => { var pData = x; @@ -115,9 +119,27 @@ WHERE t1.materialId = t0.FMATERIALID "; var res = DBServiceHelper.ExecuteDynamicObject(this.Context, sql); + + if (res != null && res.Count == 0) + { + + sql = $@"/*dialect*/ +WITH #基础数据 AS ({(string.Join(" UNION ALL ", sqlL))}) +SELECT t0.FBARCODE,t0.FMATERIALID,t0.FLOT + ,t0.FBILLENTRYID,t0.FBILLID,t0.FBILLNO,t1.seq +FROM T_UNW_WMS_BARCODE t0 + INNER JOIN #基础数据 t1 on t1.materialId = t0.FMATERIALID + --AND t1.lot_text = t0.FLOT_TEXT +WHERE t0.FCreateDate >= '2025-03-18' + AND t0.FTYPEID = 5 +"; + res = null; + } + + res = DBServiceHelper.ExecuteDynamicObject(this.Context, sql); if (res != null && res.Count > 0) { - var title = "缺少对应条码!"; + var title = "缺少对应条码或未组装!"; foreach (var item in res) { var data = pList[item["seq"].Long2Int()]; @@ -127,6 +149,10 @@ WHERE t1.materialId = t0.FMATERIALID } } + #endregion + + #region 标准产品判断规则 + var oList = dataList.Where(w => w.QRCode.IsNullOrEmptyOrWhiteSpace() && w.rowType.Equals("Standard", StringComparison.OrdinalIgnoreCase)).ToList(); if (oList.Any()) @@ -166,6 +192,8 @@ FROM T_UNW_WMS_BARCODE t0 } + #endregion + } } @@ -206,7 +234,7 @@ FROM T_UNW_WMS_BARCODE t0 public ExtendedDataEntity dataEntity { get; set; } - public ErrorLevel errorLevel { get; set; } + public ErrorLevel errorLevel { get; set; } public ValidationErrorInfo SetValidationErrorInfo(string keyName, string msg, string title) { diff --git a/14.宝锐/GZ.LJY000.Biori/SAL_OUTSTOCK/OperationEventPlugIn/UnAudit.cs b/14.宝锐/GZ.LJY000.Biori/SAL_OUTSTOCK/OperationEventPlugIn/UnAudit.cs index 899c1f4..cceac79 100644 --- a/14.宝锐/GZ.LJY000.Biori/SAL_OUTSTOCK/OperationEventPlugIn/UnAudit.cs +++ b/14.宝锐/GZ.LJY000.Biori/SAL_OUTSTOCK/OperationEventPlugIn/UnAudit.cs @@ -24,12 +24,20 @@ namespace GZ.LJY000.Biori.SAL_OUTSTOCK.OperationEventPlugIn e.FieldKeys.Add("FRowType"); e.FieldKeys.Add("FRowId"); e.FieldKeys.Add("FParentRowId"); - e.FieldKeys.Add("FPackBillNo"); + + e.FieldKeys.Add("FMaterialID"); + + e.FieldKeys.Add("FRealQty"); + e.FieldKeys.Add("FStockID"); e.FieldKeys.Add("FStockLocID"); - e.FieldKeys.Add("FCuntQty"); + e.FieldKeys.Add("FLot"); - e.FieldKeys.Add("FDocumentStatus"); + e.FieldKeys.Add("FPackBillNo"); + e.FieldKeys.Add("FPackBarCode"); + e.FieldKeys.Add("FPDABarCode"); + + e.FieldKeys.Add("FCuntQty"); } @@ -38,12 +46,12 @@ namespace GZ.LJY000.Biori.SAL_OUTSTOCK.OperationEventPlugIn base.BeginOperationTransaction(e); if (this.FormOperation.OperationId == 26) { - // 调整当前操作的数据包(该数据包稍后平台会自动更新保存到数据库) - var billNoField = this.BusinessInfo.GetBillNoField(); - foreach (var dataEntity in e.DataEntitys) - { - dataEntity["F_Jac_Text"] = "来自数据包修改:" + dataEntity[billNoField.PropertyName]; - } + //// 调整当前操作的数据包(该数据包稍后平台会自动更新保存到数据库) + //var billNoField = this.BusinessInfo.GetBillNoField(); + //foreach (var dataEntity in e.DataEntitys) + //{ + // dataEntity["F_Jac_Text"] = "来自数据包修改:" + dataEntity[billNoField.PropertyName]; + //} } } diff --git a/14.宝锐/GZ.LJY000.Biori/SAL_OUTSTOCK/OperationEventPlugInEx.py b/14.宝锐/GZ.LJY000.Biori/SAL_OUTSTOCK/OperationEventPlugInEx.py index 6c32563..0c90b39 100644 --- a/14.宝锐/GZ.LJY000.Biori/SAL_OUTSTOCK/OperationEventPlugInEx.py +++ b/14.宝锐/GZ.LJY000.Biori/SAL_OUTSTOCK/OperationEventPlugInEx.py @@ -50,7 +50,7 @@ def BeforeDoSaveExecute(e): packBarCode = "" if entry["FPackBarCode"] == None else entry["FPackBarCode"].strip() packBillNo = "" if entry["FPackBillNo"] == None else entry["FPackBillNo"].strip() - if (rowType == 1 and packBillNo == "") or (rowType == 2 and packBarCode != "" and packBillNo == ""): + if (rowType == 1) or (rowType == 2 and packBarCode != ""): materialId = entry["MaterialID_Id"] entryId = entry["Id"] rowId = entry["RowId"] diff --git a/14.宝锐/GZ.LJY000.Biori/SQLServer/条码提示控制参数_存储过程.sql b/14.宝锐/GZ.LJY000.Biori/SQLServer/条码提示控制参数_存储过程.sql index 5a2982d..0edb72c 100644 --- a/14.宝锐/GZ.LJY000.Biori/SQLServer/条码提示控制参数_存储过程.sql +++ b/14.宝锐/GZ.LJY000.Biori/SQLServer/条码提示控制参数_存储过程.sql @@ -1,4 +1,4 @@ -CREATE PROC Proc_Get_BarCode_Control_Param +ALTER PROC Proc_Get_BarCode_Control_Param AS BEGIN SELECT TOP 1 diff --git a/14.宝锐/GZ.LJY000.Biori/SQLServer/检测对应条码是否有组装.sql b/14.宝锐/GZ.LJY000.Biori/SQLServer/检测对应条码是否有组装.sql new file mode 100644 index 0000000..2dca798 --- /dev/null +++ b/14.宝锐/GZ.LJY000.Biori/SQLServer/检测对应条码是否有组装.sql @@ -0,0 +1,14 @@ +SELECT t0.FBARCODE,t0.FMATERIALID,t0.FLOT + ,t0.FBILLENTRYID,t0.FBILLID,t0.FBILLNO + ,t0.FCreateDate + ,t0.FTYPEID + ,t0.FBILLNO 'Դ' + ,t0.FBILLFORMID + ,ISNULL(t1.FBILLNO,'') 'Ʒװ' + --,t0.* + --,t1.seq +FROM T_UNW_WMS_BARCODE t0 + LEFT JOIN T_PRD_PACKAGEINSTOCK t1 on t1.FSRCBILLENTRYID = t0.FBILLENTRYID +WHERE 1 = 1 + --AND t0.FCreateDate >= '2025-03-18' + AND t0.FTYPEID = 5 \ No newline at end of file diff --git a/14.宝锐/GZ.LJY000.Biori/STK_MisDelivery/OperationEventPlugIn/Save.py b/14.宝锐/GZ.LJY000.Biori/STK_MisDelivery/OperationEventPlugIn/Save.py new file mode 100644 index 0000000..21598c7 --- /dev/null +++ b/14.宝锐/GZ.LJY000.Biori/STK_MisDelivery/OperationEventPlugIn/Save.py @@ -0,0 +1,51 @@ +#引入clr运行库 +import clr +#添加对cloud插件开发的常用组件的引用 +clr.AddReference('System') +clr.AddReference('System.Data') +clr.AddReference('Kingdee.BOS') +clr.AddReference('Kingdee.BOS.Core') +clr.AddReference('Kingdee.BOS.App') +clr.AddReference('Kingdee.BOS.Contracts') +clr.AddReference('Kingdee.BOS.ServiceHelper') +#导入cloud基础库中的常用实体对象(分命名空间导入,不会递归导入) +from Kingdee.BOS import * +from Kingdee.BOS.Core import * +from Kingdee.BOS.Core.Bill import * +#from Kingdee.BOS.Orm import * +from Kingdee.BOS.Contracts import * +from Kingdee.BOS.App import * +from Kingdee.BOS.Core.DynamicForm.PlugIn import * +from Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel import * +from System import * +from System.Data import * +from System.Text import * +from System.Collections import * +from Kingdee.BOS.App.Data import * +from System.Collections.Generic import List +from Kingdee.BOS.ServiceHelper import * + +def EndOperationTransaction(e): + + ConvertType=""; + if (this.Option.ContainsVariable("ConvertType")): + Variales = this.Option.GetVariables(); + ConvertType = Variales["ConvertType"]; + idList =List[object](); + for billObj in e.DataEntitys: + BillId = str(billObj["Id"]); + # F_IsAutoAudit = str(billObj["F_IsAutoAudit"]); + # if (F_IsAutoAudit == "1" or F_IsAutoAudit == "True"): + if (ConvertType == "AutoPush"): + idList.Add(BillId); + + if(idList.Count <= 0): + return; + pkArray = idList.ToArray(); + formID=this.BusinessInfo.GetForm().Id; + meta = MetaDataServiceHelper.Load(this.Context, formID); + submitOption = None;#OperateOption.Create(); + submitResult = BusinessDataServiceHelper.Submit(this.Context,meta.BusinessInfo,pkArray,"Submit",submitOption); + if (submitResult.IsSuccess == True): + auditOption = None;#OperateOption.Create(); + auditResult = BusinessDataServiceHelper.Audit(this.Context,meta.BusinessInfo,pkArray,auditOption); \ No newline at end of file diff --git a/14.宝锐/GZ.LJY000.Biori/STK_MisDelivery/OperationEventPlugIn/SubmitVaildator.cs b/14.宝锐/GZ.LJY000.Biori/STK_MisDelivery/OperationEventPlugIn/SubmitVaildator.cs index f17f9e8..14d0ac9 100644 --- a/14.宝锐/GZ.LJY000.Biori/STK_MisDelivery/OperationEventPlugIn/SubmitVaildator.cs +++ b/14.宝锐/GZ.LJY000.Biori/STK_MisDelivery/OperationEventPlugIn/SubmitVaildator.cs @@ -47,11 +47,11 @@ namespace GZ.LJY000.Biori.STK_MisDelivery.OperationEventPlugIn { seq = item["Seq"].Long2Int(), materialId = item["MaterialID_Id"].Long2Int(), - rowType = item["RowType"].Convert(), - rowId = item["RowId"].Convert(), - parentRowId = item["ParentRowId"].Convert(), - stockId = item["SrcStockId_Id"].Long2Int(), - stockLocId = item["SrcStockLocId_Id"].Long2Int(), + //rowType = item["RowType"].Convert(), + //rowId = item["RowId"].Convert(), + //parentRowId = item["ParentRowId"].Convert(), + stockId = item["StockId_Id"].Long2Int(), + stockLocId = item["StockLocId_Id"].Long2Int(), QRCode = item["FPackBarCode"] == null ? string.Empty : item["FPackBarCode"].ToString(), //lotId = item["Lot_Id"].Long2Int(), dataEntity = data, @@ -65,51 +65,6 @@ namespace GZ.LJY000.Biori.STK_MisDelivery.OperationEventPlugIn if (dataList.Any()) { - var pList = dataList.Where(w => w.QRCode.IsNullOrEmptyOrWhiteSpace() && w.rowType.Equals("Parent", StringComparison.OrdinalIgnoreCase)).Select(x => - { - var pData = x; - var sData = dataList.FirstOrDefault(w => w.rowType.Equals("Son", StringComparison.OrdinalIgnoreCase) && w.parentRowId == pData.rowId); - if (sData != null) - { - pData.stockId = sData.stockId; - pData.stockLocId = sData.stockLocId; - pData.lotId = sData.lotId; - } - - return pData; - }).ToList(); - - if (pList.Any()) - { - var sqlL = new List(); - var idx = 0; - foreach (var o in pList) - { - sqlL.Add($@" SELECT {idx} seq,{o.materialId} materialId ,{o.stockId} stockId,{o.stockLocId} stockLocId,{o.lotId} lotId "); - idx++; - } - - var sql = $@"/*dialect*/ -WITH #基础数据 AS ({(string.Join(" UNION ALL ", sqlL))}) -SELECT t0s.FPACKSTOCKID,t0s.FPACKSTOCKLOCID,t0s.FPACKCOUNT,t0s.FSTOCKQTY,t1.seq -FROM T_PRD_PACKAGEINSTOCK t0 - INNER JOIN T_PRD_PACKAGEINSTOCKSTOCK t0s on t0.FID = t0s.FID - INNER JOIN #基础数据 t1 on t1.stockId = t0s.FPACKSTOCKID AND t0s.FPACKSTOCKLOCID = t1.stockLocId -WHERE t1.materialId = t0.FMATERIALID -"; - - var res = DBServiceHelper.ExecuteDynamicObject(this.Context, sql); - if (res != null && res.Count > 0) - { - var title = "缺少对应条码!"; - foreach (var item in res) - { - var data = pList[item["seq"].Long2Int()]; - if (data.QRCode.IsNullOrEmptyOrWhiteSpace()) - validateContext.AddError(data.dataEntity, data.SetValidationErrorInfo("FPackBarCode", $"没有填写条码:第[{data.seq}]行明细,对应物料批号已存在条码!", title)); - } - } - } var oList = dataList.Where(w => w.QRCode.IsNullOrEmptyOrWhiteSpace() && w.rowType.Equals("Standard", StringComparison.OrdinalIgnoreCase)).ToList(); diff --git a/14.宝锐/GZ.LJY000.Biori/STK_TransferDirect/OperationEventPlugIn/Audit.cs b/14.宝锐/GZ.LJY000.Biori/STK_TransferDirect/OperationEventPlugIn/Audit.cs index fd3cf4e..87e8354 100644 --- a/14.宝锐/GZ.LJY000.Biori/STK_TransferDirect/OperationEventPlugIn/Audit.cs +++ b/14.宝锐/GZ.LJY000.Biori/STK_TransferDirect/OperationEventPlugIn/Audit.cs @@ -75,6 +75,9 @@ namespace GZ.LJY000.Biori.STK_TransferDirect.OperationEventPlugIn destStockLocId = item["DestStockLocId_Id"].Long2Int(), packBillNo = item["FPackBillNo"] == null ? string.Empty : item["FPackBillNo"].ToString(), + + QRCode = item["FPackBarCode"] == null ? string.Empty : item["FPackBarCode"].ToString(), + pieceCount = item["FCuntQty"].Convert(), }; @@ -97,7 +100,7 @@ namespace GZ.LJY000.Biori.STK_TransferDirect.OperationEventPlugIn return pData; }).ToList(); - if (pList.Any()) + if (pList.Any(w => !w.QRCode.IsNullOrEmptyOrWhiteSpace())) { foreach (var p in pList) { @@ -110,11 +113,13 @@ namespace GZ.LJY000.Biori.STK_TransferDirect.OperationEventPlugIn var pieceCount = p.pieceCount; var packService = new PrdPackService(this.Context); + + //调出仓库 var flag = packService.DoComputePackgeQty(packBillNo, p.srcStockId, p.srcStockLocId, pieceCount, isIn, ref msg); if (!flag) throw new Exception(msg); - + //调入仓库 var flag2 = packService.DoComputePackgeQty(packBillNo, p.destStockId, p.destStockLocId, pieceCount, !isIn, ref msg); if (!flag2) throw new Exception(msg); @@ -160,6 +165,8 @@ namespace GZ.LJY000.Biori.STK_TransferDirect.OperationEventPlugIn public string packBillNo { get; set; } + public string QRCode { get; set; } + public decimal pieceCount { get; set; } } diff --git a/14.宝锐/GZ.LJY000.Biori/STK_TransferDirect/OperationEventPlugIn/SubmitVaildator.cs b/14.宝锐/GZ.LJY000.Biori/STK_TransferDirect/OperationEventPlugIn/SubmitVaildator.cs index 77e3203..3110a8c 100644 --- a/14.宝锐/GZ.LJY000.Biori/STK_TransferDirect/OperationEventPlugIn/SubmitVaildator.cs +++ b/14.宝锐/GZ.LJY000.Biori/STK_TransferDirect/OperationEventPlugIn/SubmitVaildator.cs @@ -51,6 +51,7 @@ exec Proc_Get_BarCode_Control_Param if (packConl == 0) return; + #endregion 控制是否启用条码控制 //string title = "条码匹配"; @@ -82,19 +83,20 @@ exec Proc_Get_BarCode_Control_Param if (dataList.Any()) { + #region 套件判断规则 var pList = dataList.Where(w => w.QRCode.IsNullOrEmptyOrWhiteSpace() && w.rowType.Equals("Parent", StringComparison.OrdinalIgnoreCase)).Select(x => - { - var pData = x; - var sData = dataList.FirstOrDefault(w => w.rowType.Equals("Son", StringComparison.OrdinalIgnoreCase) && w.parentRowId == pData.rowId); - if (sData != null) - { - pData.stockId = sData.stockId; - pData.stockLocId = sData.stockLocId; - pData.lotId = sData.lotId; - } + { + var pData = x; + var sData = dataList.FirstOrDefault(w => w.rowType.Equals("Son", StringComparison.OrdinalIgnoreCase) && w.parentRowId == pData.rowId); + if (sData != null) + { + pData.stockId = sData.stockId; + pData.stockLocId = sData.stockLocId; + pData.lotId = sData.lotId; + } - return pData; - }).ToList(); + return pData; + }).ToList(); if (pList.Any()) { @@ -116,6 +118,25 @@ WHERE t1.materialId = t0.FMATERIALID "; var res = DBServiceHelper.ExecuteDynamicObject(this.Context, sql); + + if (res != null && res.Count == 0) + { + + sql = $@"/*dialect*/ +WITH #基础数据 AS ({(string.Join(" UNION ALL ", sqlL))}) +SELECT t0.FBARCODE,t0.FMATERIALID,t0.FLOT + ,t0.FBILLENTRYID,t0.FBILLID,t0.FBILLNO,t1.seq +FROM T_UNW_WMS_BARCODE t0 + INNER JOIN #基础数据 t1 on t1.materialId = t0.FMATERIALID + --AND t1.lot_text = t0.FLOT_TEXT +WHERE t0.FCreateDate >= '2025-03-18' + AND t0.FTYPEID = 5 +"; + res = null; + } + + res = DBServiceHelper.ExecuteDynamicObject(this.Context, sql); + if (res != null && res.Count > 0) { var title = "缺少对应条码!"; @@ -127,7 +148,9 @@ WHERE t1.materialId = t0.FMATERIALID } } } + #endregion + #region 标准产品判断规则 var oList = dataList.Where(w => w.QRCode.IsNullOrEmptyOrWhiteSpace() && w.rowType.Equals("Standard", StringComparison.OrdinalIgnoreCase)).ToList(); if (oList.Any()) @@ -166,7 +189,7 @@ FROM T_UNW_WMS_BARCODE t0 } } - + #endregion } } diff --git a/14.宝锐/GZ.LJY000.Biori/STK_TransferDirect/OperationEventPlugInEx.py b/14.宝锐/GZ.LJY000.Biori/STK_TransferDirect/OperationEventPlugInEx.py index dab64db..df8c626 100644 --- a/14.宝锐/GZ.LJY000.Biori/STK_TransferDirect/OperationEventPlugInEx.py +++ b/14.宝锐/GZ.LJY000.Biori/STK_TransferDirect/OperationEventPlugInEx.py @@ -99,6 +99,7 @@ ORDER BY tt.EntrySeq return; def EndOperationTransaction(e): + # 8保存 if this.FormOperation.OperationId == 8: for entity in e.DataEntitys: # entries = entity["TransferDirectEntry"] diff --git a/14.宝锐/GZ.LJY000.Biori/UHIK_PRD_PACKAGE_INSTOCK/BillConvertEventPlugInEx.cs b/14.宝锐/GZ.LJY000.Biori/UHIK_PRD_PACKAGE_INSTOCK/BillConvertEventPlugInEx.cs index 08519fc..bd41c59 100644 --- a/14.宝锐/GZ.LJY000.Biori/UHIK_PRD_PACKAGE_INSTOCK/BillConvertEventPlugInEx.cs +++ b/14.宝锐/GZ.LJY000.Biori/UHIK_PRD_PACKAGE_INSTOCK/BillConvertEventPlugInEx.cs @@ -237,7 +237,7 @@ namespace GZ.LJY000.Biori.UHIK_PRD_PACKAGE_INSTOCK ,t0e.FUNITID,t0e.FBASEUNITID ,t0e.FROWID,t0e.FPARENTROWID,t0e.FBOMID,t0e.FBOMENTRYID,t0e.FOWNERID,t0e.FOWNERTYPEID ,t0e.FPRODUCTTYPE,t0e.FSEQ,t0e.F_UHIK_TEXT8 AS '标签货号' - ,t0e.F_UHIK_QTY2 AS '父项数量',t0e.F_UHIK_TEXT2 AS '标签规格_Note' + ,t0e.F_UHIK_QTY4 AS '父项数量',t0e.F_UHIK_TEXT2 AS '标签规格_Note' ,t0e.FSTOCKORGID AS '库存组织',t0e.F_HUOHAO AS '货号' ,t0e.F_UHIK_DATE AS '标签生产日期' ,t0e.F_UHIK_DATE1 AS '标签有效期至' diff --git a/14.宝锐/GZ.LJY000.Biori/UHIK_PRD_PACKAGE_INSTOCK/PrdPackService.cs b/14.宝锐/GZ.LJY000.Biori/UHIK_PRD_PACKAGE_INSTOCK/PrdPackService.cs index 4308988..8aa7146 100644 --- a/14.宝锐/GZ.LJY000.Biori/UHIK_PRD_PACKAGE_INSTOCK/PrdPackService.cs +++ b/14.宝锐/GZ.LJY000.Biori/UHIK_PRD_PACKAGE_INSTOCK/PrdPackService.cs @@ -39,10 +39,11 @@ namespace GZ.LJY000.Biori.UHIK_PRD_PACKAGE_INSTOCK /// 仓位id /// 数量 /// 是否入库 + /// public bool DoComputePackgeQty(string packBillNo, long stockId, long stockLocId, decimal qty, bool isIn, ref string msg) { IOperationResult result = new OperationResult(); - if (!packBillNo.IsNullOrEmptyOrWhiteSpace() && qty != 0) + if (!packBillNo.IsNullOrEmptyOrWhiteSpace() && qty != 0M) { if (stockId == 0) { diff --git a/14.宝锐/GZ.LJY000.Biori/UNW_WMS_NORMALRECORD/BillEventPlugIn/1.设置仓位文本值.py b/14.宝锐/GZ.LJY000.Biori/UNW_WMS_NORMALRECORD/BillEventPlugIn/1.设置仓位文本值.py new file mode 100644 index 0000000..93945d2 --- /dev/null +++ b/14.宝锐/GZ.LJY000.Biori/UNW_WMS_NORMALRECORD/BillEventPlugIn/1.设置仓位文本值.py @@ -0,0 +1,81 @@ +import clr +clr.AddReference("System") +clr.AddReference("System.Xml") +clr.AddReference("Kingdee.BOS") +clr.AddReference("Kingdee.BOS.Core") +clr.AddReference("Kingdee.BOS.DataEntity") +clr.AddReference("Kingdee.BOS.App") +clr.AddReference("Kingdee.BOS.Contracts") +clr.AddReference("Kingdee.BOS.ServiceHelper") + +from Kingdee.BOS import * +from Kingdee.BOS.Contracts import * +from Kingdee.BOS.Core import * +from Kingdee.BOS.Core.List import * +from Kingdee.BOS.Core.DynamicForm.PlugIn import * +from Kingdee.BOS.Core.DynamicForm.PlugIn.Args import * +from Kingdee.BOS.Core.Metadata.EntityElement import * +from Kingdee.BOS.Core.Bill import * +from Kingdee.BOS.Core.Metadata import * +from Kingdee.BOS.Orm.DataEntity import * +from Kingdee.BOS.Util import * +from Kingdee.BOS.Core.Util import * +from System import * +from System.Xml import * +from System.ComponentModel import * +from System.Collections.Generic import * +from System.Text import* +from Kingdee.BOS.ServiceHelper import * + +def DataChanged(e): + if e.Field.Key == "FStockLocId1": + stockLocId = e.NewValue; + if stockLocId == None or stockLocId == 0: + return; + + stockObj = this.View.Model.GetValue("FStockId1"); + stockId = 0 if stockObj == None else stockObj["Id"]; + # raise Exception("SS"); + ffSqlL = """/*dialect*/ +SELECT t0.FFLEXNUMBER +FROM T_BAS_FLEXVALUES t0 +WHERE t0.FDOCUMENTSTATUS = 'C' + AND t0.FFORBIDSTATUS = 'A' + """ + + ffData = DBServiceHelper.ExecuteDynamicObject(this.Context, ffSqlL); + ffNumberText = ",".join(list(map(lambda x: x["FFLEXNUMBER"], ffData))); + + sqlL = """/*dialect*/ +SELECT t0.FSTOCKID,t0_l.FNAME '仓库',t0.FNUMBER '仓位',t0f.FENTRYID,t0f.FFLEXID,t0f.FSEQ + ,t1.FNUMBER,t1.FFLEXNUMBER,t1e_l.FNAME + ,t2.* +FROM T_BD_STOCK t0 + INNER JOIN T_BD_STOCK_L t0_l on t0.FSTOCKID = t0_l.FSTOCKID AND t0_l.FLOCALEID = 2052 + INNER JOIN T_BD_STOCKFLEXITEM t0f on t0.FSTOCKID = t0f.FSTOCKID + INNER JOIN T_BAS_FLEXVALUES t1 on t1.FID = t0f.FFLEXID + INNER JOIN T_BAS_FLEXVALUESENTRY t1e on t1e.FID = t1.FID + INNER JOIN T_BAS_FLEXVALUESENTRY_L t1e_l on t1e.FENTRYID = t1e_l.FENTRYID AND t1e_l.FLOCALEID = 2052 + CROSS APPLY ( + SELECT t2.FID 'StocklocId' + FROM T_BAS_FLEXVALUESDETAIL + UNPIVOT ( + T_BAS_FLEXVALUESDETAIL FOR FFLEXNUMBER IN ({0}) + ) AS t2 + WHERE 1 = 1 + AND t2.FID = {2} + AND t2.FFLEXNUMBER = t1.FFLEXNUMBER AND t1e.FENTRYID = t2.T_BAS_FLEXVALUESDETAIL + ) t2 +WHERE t0.FSTOCKID = {1} + """.format(ffNumberText,stockId,stockLocId); + resData = DBServiceHelper.ExecuteDynamicObject(this.Context, sqlL); + + if resData == None or len(resData) == 0: + return; + + data = resData[0]; + + this.View.Model.SetValue("FStockLocText", data["FNAME"]); + + # raise Exception(ffNumberText) + return; diff --git a/14.宝锐/GZ.LJY000.Biori/UNW_WMS_NORMALRECORD/ListEventPlugIn/1.设置仓位显示字段.py b/14.宝锐/GZ.LJY000.Biori/UNW_WMS_NORMALRECORD/ListEventPlugIn/1.设置仓位显示字段.py new file mode 100644 index 0000000..810dbc6 --- /dev/null +++ b/14.宝锐/GZ.LJY000.Biori/UNW_WMS_NORMALRECORD/ListEventPlugIn/1.设置仓位显示字段.py @@ -0,0 +1,45 @@ +import clr +clr.AddReference("System") +clr.AddReference("System.Xml") +clr.AddReference("Kingdee.BOS") +clr.AddReference("Kingdee.BOS.Core") +clr.AddReference("Kingdee.BOS.DataEntity") +clr.AddReference("Kingdee.BOS.App") +clr.AddReference("Kingdee.BOS.Contracts") +clr.AddReference("Kingdee.BOS.ServiceHelper") + +from Kingdee.BOS import * +from Kingdee.BOS.Contracts import * +from Kingdee.BOS.Core import * +from Kingdee.BOS.Core.List import * +from Kingdee.BOS.Core.List.PlugIn import * +from Kingdee.BOS.Core.DynamicForm.PlugIn.Args import * +from Kingdee.BOS.Core.Metadata.EntityElement import * +from Kingdee.BOS.Core.Bill import * +from Kingdee.BOS.Core.Metadata import * +from Kingdee.BOS.Orm.DataEntity import * +from Kingdee.BOS.Util import * +from Kingdee.BOS.Core.Util import * +from System import * +from System.Xml import * +from System.ComponentModel import * +from System.Collections.Generic import * +from System.Text import* +from Kingdee.BOS.ServiceHelper import * +from Kingdee.BOS.Core.CommonFilter import * + +def PrepareFilterParameter(e): + + # data = this.ListModel.FilterParameter.SelectedEntities + data2 = this.ListModel.FilterParameter.ColumnInfo + newData = List[ColumnField](); + for item in data2: + if item.RealKey == "FStockLocId1": + if item.Key != "FStockLocId1": + continue; + newData.Add(item); + + if newData.Count > 0: + this.ListModel.FilterParameter.ColumnInfo = newData; + # raise Exception(JsonUtil.Serialize(data2)) + return; \ No newline at end of file diff --git a/14.宝锐/GZ.LJY000.Biori/UNW_WMS_NORMALRECORD/ListEventPlugIn/ListEventPlugInEx.cs b/14.宝锐/GZ.LJY000.Biori/UNW_WMS_NORMALRECORD/ListEventPlugIn/ListEventPlugInEx.cs new file mode 100644 index 0000000..088b541 --- /dev/null +++ b/14.宝锐/GZ.LJY000.Biori/UNW_WMS_NORMALRECORD/ListEventPlugIn/ListEventPlugInEx.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Kingdee.BOS.Core.List.PlugIn; +using Kingdee.BOS.Core.List.PlugIn.Args; + +namespace GZ.LJY000.Biori.UNW_WMS_NORMALRECORD.ListEventPlugIn +{ + public class ListEventPlugInEx : AbstractListPlugIn + { + public override void PrepareFilterParameter(FilterArgs e) + { + base.PrepareFilterParameter(e); + var data = this.ListModel.FilterParameter.ColumnInfo; + } + + } +} diff --git a/16.全球时代/SQLQuery2.sql b/16.全球时代/SQLQuery2.sql new file mode 100644 index 0000000..62ab566 --- /dev/null +++ b/16.全球时代/SQLQuery2.sql @@ -0,0 +1,314 @@ +SELECT t0.FPRODUCTNO + ,t1.FID + ,t0.FBILLID + ,t0.FBILLENTRYID + ,t0.FPRODUCTID + ,t0.FFORMID + ,t1.FPRODUCTDIMEID + ,t1.FORDERBILLNO + ,t1.FORDERBILLSEQ + ,t2.FACCTGORGID + ,RANK() OVER (ORDER BY t1.FORDERBILLNO,t1.FORDERBILLSEQ DESC) 'RN' + ,(t2.FYEAR * 100 + t2.FPERIOD) AS 'FPERIOD' + INTO #ɱ㵥_Ʒ +FROM T_CB_PROORDERDIME t0 + INNER JOIN V_CB_PROORDERINFO t1 on t1.FPRODUCTDIMEID = t0.FPRODUCTDIMEID + AND t1.FORDERBILLSEQ != 0 + AND t1.FENDINITKEY = 1 + INNER JOIN V_HS_OUTACCTG t2 on t1.FACCTGID = t2.FID +WHERE 1 = 1 + AND t2.FACCTGORGID = 1 + AND t2.FCOMPUTEID != '' + AND t2.FYEAR = 2025 + AND t2.FPERIOD = 1 + AND t0.FFORMID = 'PRD_MO' + + --AND t1.FORDERBILLNO = 'FO00001468' + +;WITH #Ʒ AS ( + SELECT t0.FPRODUCTNO + ,t0.FID + ,t0.FBILLID + ,t0.FBILLENTRYID + ,t0.FPRODUCTID + ,t0.FFORMID + ,t0.FPRODUCTDIMEID + ,t0.FORDERBILLNO + ,t0.FORDERBILLSEQ + ,t0.FACCTGORGID + ,RANK() OVER (ORDER BY t0.RN) RN + ,t0.FPERIOD + ,t3.FQUALIFIEDINQTY AS '깤' + ,t3.FCURRINPUTQTY AS 'Ͷ' + ,t3.FSUMCURRINPUTQTY AS 'ۼͶ' + ,t3.FSUMQUALIFIEDINQTY AS 'ۼ깤' + ,t3.FSUMQUALIFIEDINAMOUNT 'ۼƺϸ' + ,t3.FENTRYID + ,t3d.FSumQualifiedInAmount + ,t4_l.expName + FROM #ɱ㵥_Ʒ t0 + INNER JOIN V_CB_COSTCALEXPENSE t3 on t3.FID = t0.FID AND t3.FSUMQUALIFIEDINQTY > 0 + INNER JOIN V_CB_COSTCALEXPENSEDETAIL t3d on t3d.FENTRYID = t3.FENTRYID + INNER JOIN V_BD_COST_RESTORE_EXPENSE t4_l on t4_l.FEXPID = t3d.FEXPENSESITEMID + WHERE 1 = 1 +), +#ɱת AS ( + SELECT * + FROM #Ʒ t0 + PIVOT ( + SUM(t0.FSumQualifiedInAmount) FOR + t0.expName IN (O1,O2,O3,O4,O5,O6,O7,O8,O9,O10,O11,O12,O13) + ) t1 +) +SELECT t0.RN,t0.FORDERBILLNO '۶',t0.FORDERBILLSEQ '۶к' + ,t0.FPRODUCTNO '',t0.FPRODUCTID,t0.Ͷ,t0.깤,t0.ۼͶ,t0.ۼ깤,0 FMATERIALID + ,'ϼ' '' + ,t0.ۼƺϸ + ,ISNULL(t0.O1,0) AS Ϸ + ,ISNULL(t0.O2,0) AS + ,ISNULL(t0.O3,0) AS ۾ɷ + ,ISNULL(t0.O4,0) AS 칫Ʒ + ,ISNULL(t0.O5,0) AS ޷ + ,ISNULL(t0.O6,0) AS 籣 + ,ISNULL(t0.O7,0) AS ⽻ͨ + ,ISNULL(t0.O8,0) AS ÷ + ,ISNULL(t0.O9,0) AS + ,ISNULL(t0.O10,0) AS ˮ + ,ISNULL(t0.O11,0) AS ݷ + ,ISNULL(t0.O12,0) AS 칫 + ,ISNULL(t0.O13,0) AS _ + ,t0.FPRODUCTDIMEID,t0.FID,t0.FPERIOD,t0.FACCTGORGID + ,CONCAT(t0.RN,'') aPath + INTO #Ʒɱ +FROM #ɱת t0 + +;WITH #Ʒϳɱ AS ( + SELECT t0.RN,t0.۶,t0.۶к,t0.,t0.FPRODUCTID,t0.Ͷ,t0.깤,t0.ۼͶ,t0.ۼ깤 + ,t0.ۼƺϸ,t0.FPRODUCTDIMEID,t0.FID + ,t3m.FMATERIALID + ,t3m.FEXPTYPE + ,CASE t3m.FEXPTYPE WHEN 0 THEN 'ֱӲ' WHEN 1 THEN 'Ӳ' WHEN 2 THEN 'ӹ' WHEN 9 THEN 'ʱ' ELSE '' END AS '' + ,t3md.FSUMQUALIFIEDINAMOUNT 'ۼƺϸ_' + ,t4_l.expName + ,t0.FPERIOD + ,t0.aPath + ,t0.FACCTGORGID + --,RANK() OVER (PARTITION BY t0.RN ORDER BY t3m.FEXPTYPE DESC) RN1 + FROM #Ʒɱ t0 + INNER JOIN V_CB_COSTMATTERIAL t3m on t3m.FID = t0.FID + INNER JOIN V_CB_COSTMATTERIALDETAIL t3md on t3md.FENTRYID = t3m.FENTRYID + INNER JOIN T_BD_EXPENSE t4 on t4.FDOCUMENTSTATUS = 'C' AND t4.FFORBIDSTATUS = 'A' + AND t4.FEXPID = t3md.FEXPENSESITEMID + INNER JOIN V_BD_COST_RESTORE_EXPENSE t4_l on t4_l.FEXPID = t3md.FEXPENSESITEMID +) +, #ɱת AS ( + SELECT * + FROM #Ʒϳɱ t0 + PIVOT ( + SUM(t0.ۼƺϸ_) FOR + t0.expName IN (O1,O2,O3,O4,O5,O6,O7,O8,O9,O10,O11,O12,O13) + ) t1 +) +SELECT t0.RN + ,t0.۶,t0.۶к,t0.,t0.FPRODUCTID,t0.Ͷ,t0.깤,t0.ۼͶ,t0.ۼ깤,t0.FMATERIALID + ,t0. + ,t0.ۼƺϸ + ,ISNULL(t0.O1,0) AS Ϸ + ,ISNULL(t0.O2,0) AS + ,ISNULL(t0.O3,0) AS ۾ɷ + ,ISNULL(t0.O4,0) AS 칫Ʒ + ,ISNULL(t0.O5,0) AS ޷ + ,ISNULL(t0.O6,0) AS 籣 + ,ISNULL(t0.O7,0) AS ⽻ͨ + ,ISNULL(t0.O8,0) AS ÷ + ,ISNULL(t0.O9,0) AS + ,ISNULL(t0.O10,0) AS ˮ + ,ISNULL(t0.O11,0) AS ݷ + ,ISNULL(t0.O12,0) AS 칫 + ,ISNULL(t0.O13,0) AS _ + ,t0.FPRODUCTDIMEID,t0.FID,t0.FPERIOD,t0.FACCTGORGID + ,CONCAT(t0.aPath,'.',ROW_NUMBER() OVER (PARTITION BY t0.RN ORDER BY t0.FEXPTYPE DESC,t0.FMATERIALID DESC)) aPath + INTO #Ʒϳɱ +FROM #ɱת t0 +ORDER BY t0.۶,t0.۶к,t0.,t0. DESC + +SELECT tt.RN,tt.aPath,t1.* + INTO #Ʒ +FROM #Ʒϳɱ tt + CROSS APPLY ( + SELECT t0.FPRODUCTNO + ,t1.FID + ,t0.FBILLID + ,t0.FBILLENTRYID + ,t0.FPRODUCTID + ,t0.FFORMID + ,t1.FPRODUCTDIMEID + ,t1.FORDERBILLNO + ,t1.FORDERBILLSEQ + ,t2.FACCTGORGID + ,RANK() OVER (PARTITION BY t1.FORDERBILLNO,t1.FORDERBILLSEQ ORDER BY (t2.FYEAR * 100 + t2.FPERIOD) DESC) 'RN2' + ,(t2.FYEAR * 100 + t2.FPERIOD) AS 'FPERIOD' + FROM T_CB_PROORDERDIME t0 + INNER JOIN V_CB_PROORDERINFO t1 on t1.FPRODUCTDIMEID = t0.FPRODUCTDIMEID + INNER JOIN V_HS_OUTACCTG t2 on t1.FACCTGID = t2.FID + WHERE 1 = 1 + AND t2.FACCTGORGID = 106546 + AND t2.FCOMPUTEID != '' + AND t1.FORDERBILLNO = tt.۶ + AND t1.FORDERBILLSEQ = tt.۶к + AND t0.FPRODUCTID = tt.FMATERIALID + AND (t2.FYEAR * 100 + t2.FPERIOD) <= tt.FPERIOD + AND t1.FENDINITKEY = 1 + AND t0.FFORMID = 'PRD_MO' + + ) t1 +WHERE t1.RN2 = 1 + +;WITH #Ʒ AS ( + SELECT t0.FPRODUCTNO + ,t0.FID + ,t0.FBILLID + ,t0.FBILLENTRYID + ,t0.FPRODUCTID + ,t0.FFORMID + ,t0.FPRODUCTDIMEID + ,t0.FORDERBILLNO + ,t0.FORDERBILLSEQ + ,t0.FACCTGORGID + ,t0.RN + ,t0.FPERIOD + ,t3.FQUALIFIEDINQTY AS '깤' + ,t3.FCURRINPUTQTY AS 'Ͷ' + ,t3.FSUMCURRINPUTQTY AS 'ۼͶ' + ,t3.FSUMQUALIFIEDINQTY AS 'ۼ깤' + ,t3.FSUMQUALIFIEDINAMOUNT 'ۼƺϸ' + ,t3.FENTRYID + ,t3d.FSumQualifiedInAmount + ,t4_l.expName + ,t0.aPath + FROM #Ʒ t0 + INNER JOIN V_CB_COSTCALEXPENSE t3 on t3.FID = t0.FID AND t3.FSUMQUALIFIEDINQTY > 0 + INNER JOIN V_CB_COSTCALEXPENSEDETAIL t3d on t3d.FENTRYID = t3.FENTRYID + INNER JOIN V_BD_COST_RESTORE_EXPENSE t4_l on t4_l.FEXPID = t3d.FEXPENSESITEMID + WHERE 1 = 1 +), +#ɱת AS ( + SELECT * + FROM #Ʒ t0 + PIVOT ( + SUM(t0.FSumQualifiedInAmount) FOR + t0.expName IN (O1,O2,O3,O4,O5,O6,O7,O8,O9,O10,O11,O12,O13) + ) t1 +) +SELECT t0.RN,t0.FORDERBILLNO '۶',t0.FORDERBILLSEQ '۶к' + ,t0.FPRODUCTNO '',t0.FPRODUCTID,t0.Ͷ,t0.깤,t0.ۼͶ,t0.ۼ깤,0 FMATERIALID + ,'ϼ' '' + ,t0.ۼƺϸ + ,ISNULL(t0.O1,0) AS Ϸ + ,ISNULL(t0.O2,0) AS + ,ISNULL(t0.O3,0) AS ۾ɷ + ,ISNULL(t0.O4,0) AS 칫Ʒ + ,ISNULL(t0.O5,0) AS ޷ + ,ISNULL(t0.O6,0) AS 籣 + ,ISNULL(t0.O7,0) AS ⽻ͨ + ,ISNULL(t0.O8,0) AS ÷ + ,ISNULL(t0.O9,0) AS + ,ISNULL(t0.O10,0) AS ˮ + ,ISNULL(t0.O11,0) AS ݷ + ,ISNULL(t0.O12,0) AS 칫 + ,ISNULL(t0.O13,0) AS _ + ,t0.FPRODUCTDIMEID,t0.FID,t0.FPERIOD,t0.FACCTGORGID + ,t0.aPath + INTO #Ʒɱ +FROM #ɱת t0 + +;WITH #Ʒϳɱ AS ( + SELECT t0.RN,t0.۶,t0.۶к,t0.,t0.FPRODUCTID,t0.Ͷ,t0.깤,t0.ۼͶ,t0.ۼ깤 + ,t0.ۼƺϸ,t0.FPRODUCTDIMEID,t0.FID + ,t3m.FMATERIALID + ,t3m.FEXPTYPE + ,CASE t3m.FEXPTYPE WHEN 0 THEN 'ֱӲ' WHEN 1 THEN 'Ӳ' WHEN 2 THEN 'ӹ' WHEN 9 THEN 'ʱ' ELSE '' END AS '' + ,t3md.FSUMQUALIFIEDINAMOUNT 'ۼƺϸ_' + ,t4_l.expName + ,t0.FPERIOD + ,t0.aPath + ,t0.FACCTGORGID + --,RANK() OVER (PARTITION BY t0.RN ORDER BY t3m.FEXPTYPE DESC) RN1 + FROM #Ʒɱ t0 + INNER JOIN V_CB_COSTMATTERIAL t3m on t3m.FID = t0.FID + INNER JOIN V_CB_COSTMATTERIALDETAIL t3md on t3md.FENTRYID = t3m.FENTRYID + INNER JOIN T_BD_EXPENSE t4 on t4.FDOCUMENTSTATUS = 'C' AND t4.FFORBIDSTATUS = 'A' + AND t4.FEXPID = t3md.FEXPENSESITEMID + INNER JOIN V_BD_COST_RESTORE_EXPENSE t4_l on t4_l.FEXPID = t3md.FEXPENSESITEMID +) +, #ɱת AS ( + SELECT * + FROM #Ʒϳɱ t0 + PIVOT ( + SUM(t0.ۼƺϸ_) FOR + t0.expName IN (O1,O2,O3,O4,O5,O6,O7,O8,O9,O10,O11,O12,O13) + ) t1 +) +SELECT t0.RN + ,t0.۶,t0.۶к,t0.,t0.FPRODUCTID,t0.Ͷ,t0.깤,t0.ۼͶ,t0.ۼ깤,t0.FMATERIALID + ,t0. + ,t0.ۼƺϸ + ,ISNULL(t0.O1,0) AS Ϸ + ,ISNULL(t0.O2,0) AS + ,ISNULL(t0.O3,0) AS ۾ɷ + ,ISNULL(t0.O4,0) AS 칫Ʒ + ,ISNULL(t0.O5,0) AS ޷ + ,ISNULL(t0.O6,0) AS 籣 + ,ISNULL(t0.O7,0) AS ⽻ͨ + ,ISNULL(t0.O8,0) AS ÷ + ,ISNULL(t0.O9,0) AS + ,ISNULL(t0.O10,0) AS ˮ + ,ISNULL(t0.O11,0) AS ݷ + ,ISNULL(t0.O12,0) AS 칫 + ,ISNULL(t0.O13,0) AS _ + ,t0.FPRODUCTDIMEID,t0.FID,t0.FPERIOD,t0.FACCTGORGID + ,CONCAT(t0.aPath,'.',ROW_NUMBER() OVER (PARTITION BY t0.RN ORDER BY t0.FEXPTYPE DESC,t0.FMATERIALID DESC)) aPath + INTO #Ʒϳɱ +FROM #ɱת t0 +ORDER BY t0.۶,t0.۶к,t0.,t0. DESC + +;WITH #Ʒ AS ( + SELECT t0.* + FROM #Ʒɱ t0 + UNION ALL + SELECT t0.* + FROM #Ʒϳɱ t0 + UNION ALL + SELECT * + FROM #Ʒϳɱ +) +SELECT t0.۶,t0.۶к,t0. + ,t1.FNUMBER 'Ʒ',t1_l.FNAME 'Ʒ',t1_l.FSPECIFICATION 'Ʒ' + ,t2.FNUMBER 'ϱ',t2_l.FNAME '',t2_l.FSPECIFICATION 'Ϲ' + ,t0.Ͷ,t0.깤,t0.ۼͶ,t0.ۼ깤 + ,t0. + ,t0.ۼƺϸ + ,t0.Ϸ,t0.,t0.۾ɷ + ,t0.칫Ʒ + ,t0.޷ + ,t0.籣 + ,t0.⽻ͨ + ,t0.÷ + ,t0. + ,t0.ˮ + ,t0.ݷ + ,t0.칫 + ,t0._ +FROM #Ʒ t0 + INNER JOIN T_BD_MATERIAL t1 on t1.FMATERIALID = t0.FPRODUCTID + INNER JOIN T_BD_MATERIAL_L t1_l on t1_l.FMATERIALID = t1.FMATERIALID AND t1_l.FLOCALEID = 2052 + INNER JOIN T_BD_MATERIAL t2 on t2.FMATERIALID = t0.FMATERIALID + INNER JOIN T_BD_MATERIAL_L t2_l on t2_l.FMATERIALID = t2.FMATERIALID AND t2_l.FLOCALEID = 2052 +ORDER BY CAST(CONCAT('/',REPLACE(t0.aPATH,'.','/'),'/') AS HIERARCHYID) + +DROP TABLE #ɱ㵥_Ʒ +DROP TABLE #Ʒɱ +DROP TABLE #Ʒϳɱ +DROP TABLE #Ʒ +DROP TABLE #Ʒɱ +DROP TABLE #Ʒϳɱ \ No newline at end of file diff --git a/16.全球时代/SQLQuery4.sql b/16.全球时代/SQLQuery4.sql new file mode 100644 index 0000000..b078e4b --- /dev/null +++ b/16.全球时代/SQLQuery4.sql @@ -0,0 +1,14 @@ +ALTER VIEW V_BD_COST_RESTORE_EXPENSE AS +SELECT 20045 AS 'FEXPID','O1' 'expName','Ϸ' AS 'FNAME' +UNION ALL SELECT 20052,'O2','' +UNION ALL SELECT 20053,'O3','۾ɷ' +UNION ALL SELECT 20142,'O4','칫Ʒ' +UNION ALL SELECT 20602,'O5','޷' +UNION ALL SELECT 133271,'O6','籣' +UNION ALL SELECT 133279,'O7','⽻ͨ' +UNION ALL SELECT 133282,'O8','÷' +UNION ALL SELECT 133283,'O9','' +UNION ALL SELECT 133285,'O10','ˮ' +UNION ALL SELECT 133287,'O11','ݷ' +UNION ALL SELECT 147936,'O12','칫' +UNION ALL SELECT 617888,'O13','_' diff --git a/16.全球时代/成本还原报表V1.sql b/16.全球时代/成本还原报表V1.sql new file mode 100644 index 0000000..30f8684 --- /dev/null +++ b/16.全球时代/成本还原报表V1.sql @@ -0,0 +1,320 @@ +ALTER PROC CB_COST_REDUCTION_V1 @YEAR int,@PERIOD int +AS +BEGIN + SELECT t0.FPRODUCTNO + ,t1.FID + ,t0.FBILLID + ,t0.FBILLENTRYID + ,t0.FPRODUCTID + ,t0.FFORMID + ,t1.FPRODUCTDIMEID + ,t1.FORDERBILLNO + ,t1.FORDERBILLSEQ + ,t2.FACCTGORGID + ,RANK() OVER (ORDER BY t1.FORDERBILLNO,t1.FORDERBILLSEQ DESC) 'RN' + ,(t2.FYEAR * 100 + t2.FPERIOD) AS 'FPERIOD' + INTO #ɱ㵥_Ʒ + FROM T_CB_PROORDERDIME t0 + INNER JOIN V_CB_PROORDERINFO t1 on t1.FPRODUCTDIMEID = t0.FPRODUCTDIMEID + AND t1.FORDERBILLSEQ != 0 + AND t1.FENDINITKEY = 1 + INNER JOIN V_HS_OUTACCTG t2 on t1.FACCTGID = t2.FID + WHERE 1 = 1 + AND t2.FACCTGORGID = 1 + AND t2.FCOMPUTEID != '' + AND t2.FYEAR = @YEAR + AND t2.FPERIOD = @PERIOD + AND t0.FFORMID = 'PRD_MO' + + --AND t1.FORDERBILLNO = 'FO00001468' + + ;WITH #Ʒ AS ( + SELECT t0.FPRODUCTNO + ,t0.FID + ,t0.FBILLID + ,t0.FBILLENTRYID + ,t0.FPRODUCTID + ,t0.FFORMID + ,t0.FPRODUCTDIMEID + ,t0.FORDERBILLNO + ,t0.FORDERBILLSEQ + ,t0.FACCTGORGID + ,RANK() OVER (ORDER BY t0.RN) RN + ,t0.FPERIOD + ,t3.FQUALIFIEDINQTY AS '깤' + ,t3.FCURRINPUTQTY AS 'Ͷ' + ,t3.FSUMCURRINPUTQTY AS 'ۼͶ' + ,t3.FSUMQUALIFIEDINQTY AS 'ۼ깤' + ,t3.FSUMQUALIFIEDINAMOUNT 'ۼƺϸ' + ,t3.FENTRYID + ,t3d.FSumQualifiedInAmount + ,t4_l.expName + FROM #ɱ㵥_Ʒ t0 + INNER JOIN V_CB_COSTCALEXPENSE t3 on t3.FID = t0.FID AND t3.FSUMQUALIFIEDINQTY > 0 + INNER JOIN V_CB_COSTCALEXPENSEDETAIL t3d on t3d.FENTRYID = t3.FENTRYID + INNER JOIN V_BD_COST_RESTORE_EXPENSE t4_l on t4_l.FEXPID = t3d.FEXPENSESITEMID + WHERE 1 = 1 + ), + #ɱת AS ( + SELECT * + FROM #Ʒ t0 + PIVOT ( + SUM(t0.FSumQualifiedInAmount) FOR + t0.expName IN (O1,O2,O3,O4,O5,O6,O7,O8,O9,O10,O11,O12,O13) + ) t1 + ) + SELECT t0.RN,t0.FORDERBILLNO '۶',t0.FORDERBILLSEQ '۶к' + ,t0.FPRODUCTNO '',t0.FPRODUCTID,t0.Ͷ,t0.깤,t0.ۼͶ,t0.ۼ깤,0 FMATERIALID + ,'ϼ' '' + ,t0.ۼƺϸ + ,ISNULL(t0.O1,0) AS Ϸ + ,ISNULL(t0.O2,0) AS + ,ISNULL(t0.O3,0) AS ۾ɷ + ,ISNULL(t0.O4,0) AS 칫Ʒ + ,ISNULL(t0.O5,0) AS ޷ + ,ISNULL(t0.O6,0) AS 籣 + ,ISNULL(t0.O7,0) AS ⽻ͨ + ,ISNULL(t0.O8,0) AS ÷ + ,ISNULL(t0.O9,0) AS + ,ISNULL(t0.O10,0) AS ˮ + ,ISNULL(t0.O11,0) AS ݷ + ,ISNULL(t0.O12,0) AS 칫 + ,ISNULL(t0.O13,0) AS _ + ,t0.FPRODUCTDIMEID,t0.FID,t0.FPERIOD,t0.FACCTGORGID + ,CONCAT(t0.RN,'') aPath + INTO #Ʒɱ + FROM #ɱת t0 + + ;WITH #Ʒϳɱ AS ( + SELECT t0.RN,t0.۶,t0.۶к,t0.,t0.FPRODUCTID,t0.Ͷ,t0.깤,t0.ۼͶ,t0.ۼ깤 + ,t0.ۼƺϸ,t0.FPRODUCTDIMEID,t0.FID + ,t3m.FMATERIALID + ,t3m.FEXPTYPE + ,CASE t3m.FEXPTYPE WHEN 0 THEN 'ֱӲ' WHEN 1 THEN 'Ӳ' WHEN 2 THEN 'ӹ' WHEN 9 THEN 'ʱ' ELSE '' END AS '' + ,t3md.FSUMQUALIFIEDINAMOUNT 'ۼƺϸ_' + ,t4_l.expName + ,t0.FPERIOD + ,t0.aPath + ,t0.FACCTGORGID + --,RANK() OVER (PARTITION BY t0.RN ORDER BY t3m.FEXPTYPE DESC) RN1 + FROM #Ʒɱ t0 + INNER JOIN V_CB_COSTMATTERIAL t3m on t3m.FID = t0.FID + INNER JOIN V_CB_COSTMATTERIALDETAIL t3md on t3md.FENTRYID = t3m.FENTRYID + INNER JOIN T_BD_EXPENSE t4 on t4.FDOCUMENTSTATUS = 'C' AND t4.FFORBIDSTATUS = 'A' + AND t4.FEXPID = t3md.FEXPENSESITEMID + INNER JOIN V_BD_COST_RESTORE_EXPENSE t4_l on t4_l.FEXPID = t3md.FEXPENSESITEMID + ) + , #ɱת AS ( + SELECT * + FROM #Ʒϳɱ t0 + PIVOT ( + SUM(t0.ۼƺϸ_) FOR + t0.expName IN (O1,O2,O3,O4,O5,O6,O7,O8,O9,O10,O11,O12,O13) + ) t1 + ) + SELECT t0.RN + ,t0.۶,t0.۶к,t0.,t0.FPRODUCTID,t0.Ͷ,t0.깤,t0.ۼͶ,t0.ۼ깤,t0.FMATERIALID + ,t0. + ,t0.ۼƺϸ + ,ISNULL(t0.O1,0) AS Ϸ + ,ISNULL(t0.O2,0) AS + ,ISNULL(t0.O3,0) AS ۾ɷ + ,ISNULL(t0.O4,0) AS 칫Ʒ + ,ISNULL(t0.O5,0) AS ޷ + ,ISNULL(t0.O6,0) AS 籣 + ,ISNULL(t0.O7,0) AS ⽻ͨ + ,ISNULL(t0.O8,0) AS ÷ + ,ISNULL(t0.O9,0) AS + ,ISNULL(t0.O10,0) AS ˮ + ,ISNULL(t0.O11,0) AS ݷ + ,ISNULL(t0.O12,0) AS 칫 + ,ISNULL(t0.O13,0) AS _ + ,t0.FPRODUCTDIMEID,t0.FID,t0.FPERIOD,t0.FACCTGORGID + ,CONCAT(t0.aPath,'.',ROW_NUMBER() OVER (PARTITION BY t0.RN ORDER BY t0.FEXPTYPE DESC,t0.FMATERIALID DESC)) aPath + INTO #Ʒϳɱ + FROM #ɱת t0 + ORDER BY t0.۶,t0.۶к,t0.,t0. DESC + + SELECT tt.RN,tt.aPath,t1.* + INTO #Ʒ + FROM #Ʒϳɱ tt + CROSS APPLY ( + SELECT t0.FPRODUCTNO + ,t1.FID + ,t0.FBILLID + ,t0.FBILLENTRYID + ,t0.FPRODUCTID + ,t0.FFORMID + ,t1.FPRODUCTDIMEID + ,t1.FORDERBILLNO + ,t1.FORDERBILLSEQ + ,t2.FACCTGORGID + ,RANK() OVER (PARTITION BY t1.FORDERBILLNO,t1.FORDERBILLSEQ ORDER BY (t2.FYEAR * 100 + t2.FPERIOD) DESC) 'RN2' + ,(t2.FYEAR * 100 + t2.FPERIOD) AS 'FPERIOD' + FROM T_CB_PROORDERDIME t0 + INNER JOIN V_CB_PROORDERINFO t1 on t1.FPRODUCTDIMEID = t0.FPRODUCTDIMEID + INNER JOIN V_HS_OUTACCTG t2 on t1.FACCTGID = t2.FID + WHERE 1 = 1 + AND t2.FACCTGORGID = 106546 + AND t2.FCOMPUTEID != '' + AND t1.FORDERBILLNO = tt.۶ + AND t1.FORDERBILLSEQ = tt.۶к + AND t0.FPRODUCTID = tt.FMATERIALID + AND (t2.FYEAR * 100 + t2.FPERIOD) <= tt.FPERIOD + AND t1.FENDINITKEY = 1 + AND t0.FFORMID = 'PRD_MO' + + ) t1 + WHERE t1.RN2 = 1 + + ;WITH #Ʒ AS ( + SELECT t0.FPRODUCTNO + ,t0.FID + ,t0.FBILLID + ,t0.FBILLENTRYID + ,t0.FPRODUCTID + ,t0.FFORMID + ,t0.FPRODUCTDIMEID + ,t0.FORDERBILLNO + ,t0.FORDERBILLSEQ + ,t0.FACCTGORGID + ,t0.RN + ,t0.FPERIOD + ,t3.FQUALIFIEDINQTY AS '깤' + ,t3.FCURRINPUTQTY AS 'Ͷ' + ,t3.FSUMCURRINPUTQTY AS 'ۼͶ' + ,t3.FSUMQUALIFIEDINQTY AS 'ۼ깤' + ,t3.FSUMQUALIFIEDINAMOUNT 'ۼƺϸ' + ,t3.FENTRYID + ,t3d.FSumQualifiedInAmount + ,t4_l.expName + ,t0.aPath + FROM #Ʒ t0 + INNER JOIN V_CB_COSTCALEXPENSE t3 on t3.FID = t0.FID AND t3.FSUMQUALIFIEDINQTY > 0 + INNER JOIN V_CB_COSTCALEXPENSEDETAIL t3d on t3d.FENTRYID = t3.FENTRYID + INNER JOIN V_BD_COST_RESTORE_EXPENSE t4_l on t4_l.FEXPID = t3d.FEXPENSESITEMID + WHERE 1 = 1 + ), + #ɱת AS ( + SELECT * + FROM #Ʒ t0 + PIVOT ( + SUM(t0.FSumQualifiedInAmount) FOR + t0.expName IN (O1,O2,O3,O4,O5,O6,O7,O8,O9,O10,O11,O12,O13) + ) t1 + ) + SELECT t0.RN,t0.FORDERBILLNO '۶',t0.FORDERBILLSEQ '۶к' + ,t0.FPRODUCTNO '',t0.FPRODUCTID,t0.Ͷ,t0.깤,t0.ۼͶ,t0.ۼ깤,0 FMATERIALID + ,'ϼ' '' + ,t0.ۼƺϸ + ,ISNULL(t0.O1,0) AS Ϸ + ,ISNULL(t0.O2,0) AS + ,ISNULL(t0.O3,0) AS ۾ɷ + ,ISNULL(t0.O4,0) AS 칫Ʒ + ,ISNULL(t0.O5,0) AS ޷ + ,ISNULL(t0.O6,0) AS 籣 + ,ISNULL(t0.O7,0) AS ⽻ͨ + ,ISNULL(t0.O8,0) AS ÷ + ,ISNULL(t0.O9,0) AS + ,ISNULL(t0.O10,0) AS ˮ + ,ISNULL(t0.O11,0) AS ݷ + ,ISNULL(t0.O12,0) AS 칫 + ,ISNULL(t0.O13,0) AS _ + ,t0.FPRODUCTDIMEID,t0.FID,t0.FPERIOD,t0.FACCTGORGID + ,t0.aPath + INTO #Ʒɱ + FROM #ɱת t0 + + ;WITH #Ʒϳɱ AS ( + SELECT t0.RN,t0.۶,t0.۶к,t0.,t0.FPRODUCTID,t0.Ͷ,t0.깤,t0.ۼͶ,t0.ۼ깤 + ,t0.ۼƺϸ,t0.FPRODUCTDIMEID,t0.FID + ,t3m.FMATERIALID + ,t3m.FEXPTYPE + ,CASE t3m.FEXPTYPE WHEN 0 THEN 'ֱӲ' WHEN 1 THEN 'Ӳ' WHEN 2 THEN 'ӹ' WHEN 9 THEN 'ʱ' ELSE '' END AS '' + ,t3md.FSUMQUALIFIEDINAMOUNT 'ۼƺϸ_' + ,t4_l.expName + ,t0.FPERIOD + ,t0.aPath + ,t0.FACCTGORGID + --,RANK() OVER (PARTITION BY t0.RN ORDER BY t3m.FEXPTYPE DESC) RN1 + FROM #Ʒɱ t0 + INNER JOIN V_CB_COSTMATTERIAL t3m on t3m.FID = t0.FID + INNER JOIN V_CB_COSTMATTERIALDETAIL t3md on t3md.FENTRYID = t3m.FENTRYID + INNER JOIN T_BD_EXPENSE t4 on t4.FDOCUMENTSTATUS = 'C' AND t4.FFORBIDSTATUS = 'A' + AND t4.FEXPID = t3md.FEXPENSESITEMID + INNER JOIN V_BD_COST_RESTORE_EXPENSE t4_l on t4_l.FEXPID = t3md.FEXPENSESITEMID + ) + , #ɱת AS ( + SELECT * + FROM #Ʒϳɱ t0 + PIVOT ( + SUM(t0.ۼƺϸ_) FOR + t0.expName IN (O1,O2,O3,O4,O5,O6,O7,O8,O9,O10,O11,O12,O13) + ) t1 + ) + SELECT t0.RN + ,t0.۶,t0.۶к,t0.,t0.FPRODUCTID,t0.Ͷ,t0.깤,t0.ۼͶ,t0.ۼ깤,t0.FMATERIALID + ,t0. + ,t0.ۼƺϸ + ,ISNULL(t0.O1,0) AS Ϸ + ,ISNULL(t0.O2,0) AS + ,ISNULL(t0.O3,0) AS ۾ɷ + ,ISNULL(t0.O4,0) AS 칫Ʒ + ,ISNULL(t0.O5,0) AS ޷ + ,ISNULL(t0.O6,0) AS 籣 + ,ISNULL(t0.O7,0) AS ⽻ͨ + ,ISNULL(t0.O8,0) AS ÷ + ,ISNULL(t0.O9,0) AS + ,ISNULL(t0.O10,0) AS ˮ + ,ISNULL(t0.O11,0) AS ݷ + ,ISNULL(t0.O12,0) AS 칫 + ,ISNULL(t0.O13,0) AS _ + ,t0.FPRODUCTDIMEID,t0.FID,t0.FPERIOD,t0.FACCTGORGID + ,CONCAT(t0.aPath,'.',ROW_NUMBER() OVER (PARTITION BY t0.RN ORDER BY t0.FEXPTYPE DESC,t0.FMATERIALID DESC)) aPath + INTO #Ʒϳɱ + FROM #ɱת t0 + ORDER BY t0.۶,t0.۶к,t0.,t0. DESC + + ;WITH #Ʒ AS ( + SELECT t0.* + FROM #Ʒɱ t0 + UNION ALL + SELECT t0.* + FROM #Ʒϳɱ t0 + UNION ALL + SELECT * + FROM #Ʒϳɱ + ) + SELECT t0.۶,t0.۶к,t0.,t3_l.FNAME '֯' + ,t1.FNUMBER 'Ʒ',t1_l.FNAME 'Ʒ',t1_l.FSPECIFICATION 'Ʒ' + ,t2.FNUMBER 'ϱ',t2_l.FNAME '',t2_l.FSPECIFICATION 'Ϲ' + ,t0.Ͷ,t0.깤,t0.ۼͶ,t0.ۼ깤 + ,t0. + ,t0.ۼƺϸ + ,t0.Ϸ,t0.,t0.۾ɷ + ,t0.칫Ʒ + ,t0.޷ + ,t0.籣 + ,t0.⽻ͨ + ,t0.÷ + ,t0. + ,t0.ˮ + ,t0.ݷ + ,t0.칫 + ,t0._ + FROM #Ʒ t0 + INNER JOIN T_BD_MATERIAL t1 on t1.FMATERIALID = t0.FPRODUCTID + INNER JOIN T_BD_MATERIAL_L t1_l on t1_l.FMATERIALID = t1.FMATERIALID AND t1_l.FLOCALEID = 2052 + LEFT JOIN T_BD_MATERIAL t2 on t2.FMATERIALID = t0.FMATERIALID + LEFT JOIN T_BD_MATERIAL_L t2_l on t2_l.FMATERIALID = t2.FMATERIALID AND t2_l.FLOCALEID = 2052 + INNER JOIN T_ORG_ORGANIZATIONS_L t3_l on t3_l.FORGID = t0.facctgorgid AND t3_l.FLOCALEID = 2052 + ORDER BY CAST(CONCAT('/',REPLACE(t0.aPATH,'.','/'),'/') AS HIERARCHYID) + + DROP TABLE #ɱ㵥_Ʒ + DROP TABLE #Ʒɱ + DROP TABLE #Ʒϳɱ + DROP TABLE #Ʒ + DROP TABLE #Ʒɱ + DROP TABLE #Ʒϳɱ + +END \ No newline at end of file diff --git a/GZ.LJY000.PiLot/SAL_OUTSTOCK/UploadExtension/BillEventPlugInEx.cs b/GZ.LJY000.PiLot/SAL_OUTSTOCK/UploadExtension/BillEventPlugInEx.cs index 8e3b7c9..c855a23 100644 --- a/GZ.LJY000.PiLot/SAL_OUTSTOCK/UploadExtension/BillEventPlugInEx.cs +++ b/GZ.LJY000.PiLot/SAL_OUTSTOCK/UploadExtension/BillEventPlugInEx.cs @@ -6,24 +6,18 @@ using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; -using System.Text; -using System.Threading.Tasks; using Kingdee.BOS.WebApi.FormService; using System.Web; -using Kingdee.BOS.Core; using Kingdee.BOS.Orm.DataEntity; using System.IO; using OpenCvSharp.Extensions; using OpenCvSharp; -using Spire.Pdf.Fields; using Spire.Pdf; using System.Drawing.Imaging; using System.Drawing; -using Kingdee.BOS; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using Kingdee.BOS.ServiceHelper; -using OpenCvSharp.Aruco; using Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel; namespace GZ.LJY000.PiLot.SAL_OUTSTOCK.UploadExtension diff --git a/得米.zip b/得米.zip deleted file mode 100644 index 1356a23..0000000 Binary files a/得米.zip and /dev/null differ