diff --git a/00.SDK/E_ZKEccSDK/E_ZKEccSDK.csproj b/00.SDK/E_ZKEccSDK/E_ZKEccSDK.csproj
index 8afddd2..1ae2850 100644
--- a/00.SDK/E_ZKEccSDK/E_ZKEccSDK.csproj
+++ b/00.SDK/E_ZKEccSDK/E_ZKEccSDK.csproj
@@ -7,7 +7,7 @@
{9A0273E4-D584-4418-951C-020D4EFF1732}
Library
Properties
- E_ZKEccSDK
+ E_ZKEcc
E_ZKEccSDK
v4.0
512
@@ -74,8 +74,9 @@
HandleUtils
+
-
+
\ No newline at end of file
diff --git a/00.SDK/E_ZKEccSDK/Request/DepartmentGetRequest.cs b/00.SDK/E_ZKEccSDK/Request/DepartmentGetRequest.cs
index c2e901d..9338b3d 100644
--- a/00.SDK/E_ZKEccSDK/Request/DepartmentGetRequest.cs
+++ b/00.SDK/E_ZKEccSDK/Request/DepartmentGetRequest.cs
@@ -3,7 +3,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
-namespace E_ZKEccSDK.Request
+namespace E_ZKEcc.Request
{
public class DepartmentGetRequest
{
diff --git a/00.SDK/E_ZKEccSDK/Request/DepartmentUpdateRequest.cs b/00.SDK/E_ZKEccSDK/Request/DepartmentUpdateRequest.cs
index 2678b67..fd4eefc 100644
--- a/00.SDK/E_ZKEccSDK/Request/DepartmentUpdateRequest.cs
+++ b/00.SDK/E_ZKEccSDK/Request/DepartmentUpdateRequest.cs
@@ -3,7 +3,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
-namespace E_ZKEccSDK.Request
+namespace E_ZKEcc.Request
{
public class DepartmentUpdateRequest
{
diff --git a/00.SDK/E_ZKEccSDK/Request/EmployeeGetRequest.cs b/00.SDK/E_ZKEccSDK/Request/EmployeeGetRequest.cs
index c4aecfa..4809d6f 100644
--- a/00.SDK/E_ZKEccSDK/Request/EmployeeGetRequest.cs
+++ b/00.SDK/E_ZKEccSDK/Request/EmployeeGetRequest.cs
@@ -3,7 +3,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
-namespace E_ZKEccSDK.Request
+namespace E_ZKEcc.Request
{
public class EmployeeGetRequest
{
diff --git a/00.SDK/E_ZKEccSDK/Request/EmployeeUpdateRequest.cs b/00.SDK/E_ZKEccSDK/Request/EmployeeUpdateRequest.cs
index 4e7f41c..fe3706d 100644
--- a/00.SDK/E_ZKEccSDK/Request/EmployeeUpdateRequest.cs
+++ b/00.SDK/E_ZKEccSDK/Request/EmployeeUpdateRequest.cs
@@ -3,7 +3,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
-namespace E_ZKEccSDK.Request
+namespace E_ZKEcc.Request
{
public class EmployeeUpdateRequest
{
diff --git a/00.SDK/E_ZKEccSDK/Request/TransactionGetRequest.cs b/00.SDK/E_ZKEccSDK/Request/TransactionGetRequest.cs
index 2c5c9ef..ac4984b 100644
--- a/00.SDK/E_ZKEccSDK/Request/TransactionGetRequest.cs
+++ b/00.SDK/E_ZKEccSDK/Request/TransactionGetRequest.cs
@@ -3,7 +3,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
-namespace E_ZKEccSDK.Request
+namespace E_ZKEcc.Request
{
public class TransactionGetRequest
{
diff --git a/00.SDK/E_ZKEccSDK/Response/DepartmentGetResponse.cs b/00.SDK/E_ZKEccSDK/Response/DepartmentGetResponse.cs
index 8d117a5..04e8edd 100644
--- a/00.SDK/E_ZKEccSDK/Response/DepartmentGetResponse.cs
+++ b/00.SDK/E_ZKEccSDK/Response/DepartmentGetResponse.cs
@@ -3,7 +3,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
-namespace E_ZKEccSDK.Response
+namespace E_ZKEcc.Response
{
public class DepartmentGetResponse
{
diff --git a/00.SDK/E_ZKEccSDK/Response/EmployeeGetResponse.cs b/00.SDK/E_ZKEccSDK/Response/EmployeeGetResponse.cs
index 953ec06..9d6d597 100644
--- a/00.SDK/E_ZKEccSDK/Response/EmployeeGetResponse.cs
+++ b/00.SDK/E_ZKEccSDK/Response/EmployeeGetResponse.cs
@@ -3,7 +3,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
-namespace E_ZKEccSDK.Response
+namespace E_ZKEcc.Response
{
public class EmployeeGetResponse
{
diff --git a/00.SDK/E_ZKEccSDK/Response/TransactionGetResponse.cs b/00.SDK/E_ZKEccSDK/Response/TransactionGetResponse.cs
index 82edf46..be25d3f 100644
--- a/00.SDK/E_ZKEccSDK/Response/TransactionGetResponse.cs
+++ b/00.SDK/E_ZKEccSDK/Response/TransactionGetResponse.cs
@@ -3,7 +3,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
-namespace E_ZKEccSDK.Response
+namespace E_ZKEcc.Response
{
public class TransactionGetResponse
{
diff --git a/00.SDK/E_ZKEccSDK/Service/DepartmentService.cs b/00.SDK/E_ZKEccSDK/Service/DepartmentService.cs
index f0e0c1d..018acb7 100644
--- a/00.SDK/E_ZKEccSDK/Service/DepartmentService.cs
+++ b/00.SDK/E_ZKEccSDK/Service/DepartmentService.cs
@@ -1,14 +1,14 @@
using E_ZKEcc;
using E_ZKEcc.Domian;
-using E_ZKEccSDK.Request;
-using E_ZKEccSDK.Response;
+using E_ZKEcc.Request;
+using E_ZKEcc.Response;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
-namespace E_ZKEccSDK.Service
+namespace E_ZKEcc.Service
{
public class DepartmentService : BaseService
{
@@ -49,13 +49,13 @@ namespace E_ZKEccSDK.Service
///
///
///
- public ResultDomian UpdateDepartment(DepartmentUpdateRequest request)
+ public ResultDomian UpdateDepartment(List list)
{
_actionName = "update";
try
{
- var dataJson = JsonConvert.SerializeObject(request, Formatting.None, _serializerSettings);
+ var dataJson = JsonConvert.SerializeObject(list, Formatting.None, _serializerSettings);
var resultJson = this.DoExecute(dataJson);
@@ -69,6 +69,11 @@ namespace E_ZKEccSDK.Service
}
}
+ public ResultDomian UpdateDepartment(DepartmentUpdateRequest request)
+ {
+ return UpdateDepartment(new List() { request });
+ }
+
///
/// 获取部门信息
///
diff --git a/00.SDK/E_ZKEccSDK/Service/EmployeeService.cs b/00.SDK/E_ZKEccSDK/Service/EmployeeService.cs
index 1714cbd..7b73eb0 100644
--- a/00.SDK/E_ZKEccSDK/Service/EmployeeService.cs
+++ b/00.SDK/E_ZKEccSDK/Service/EmployeeService.cs
@@ -7,8 +7,10 @@ using System.Runtime.CompilerServices;
using System.Text;
using System.Runtime.Serialization;
using Newtonsoft.Json;
-using E_ZKEccSDK.Response;
-using E_ZKEccSDK.Request;
+using E_ZKEcc.Response;
+using E_ZKEcc.Request;
+using Kingdee.BOS;
+using System.Net.NetworkInformation;
namespace E_ZKEcc.Service
{
@@ -98,6 +100,36 @@ namespace E_ZKEcc.Service
{
return LeaveEmployee(pin, leavedate.ToString("yyyy-MM-dd HH:MM"), leavetype, reason);
}
+
+ ///
+ /// 离职恢复
+ ///
+ ///
+ ///
+ public ResultDomian RestoreEmployee(string[] userpin)
+ {
+ _actionName = "restore";
+ ResultDomian result;
+ try
+ {
+ object data = new
+ {
+ userpin
+ };
+
+ var dataJson = JsonConvert.SerializeObject(data, Formatting.None, _serializerSettings);
+
+ var resultJson = this.DoExecute(dataJson);
+
+ result = JsonConvert.DeserializeObject(resultJson);
+
+ return result;
+ }
+ catch (Exception ex)
+ {
+ throw ex;
+ }
+ }
#endregion 人员离职
#region 获取人员信息
diff --git a/00.SDK/E_ZKEccSDK/Service/TransactionService.cs b/00.SDK/E_ZKEccSDK/Service/TransactionService.cs
index 180051c..1192b4f 100644
--- a/00.SDK/E_ZKEccSDK/Service/TransactionService.cs
+++ b/00.SDK/E_ZKEccSDK/Service/TransactionService.cs
@@ -1,6 +1,6 @@
using E_ZKEcc.Domian;
-using E_ZKEccSDK.Request;
-using E_ZKEccSDK.Response;
+using E_ZKEcc.Request;
+using E_ZKEcc.Response;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
diff --git a/00.未分类/UnitTestProject2/UnitTest1.cs b/00.未分类/UnitTestProject2/UnitTest1.cs
index 70f1f6d..c205d12 100644
--- a/00.未分类/UnitTestProject2/UnitTest1.cs
+++ b/00.未分类/UnitTestProject2/UnitTest1.cs
@@ -12,6 +12,7 @@ using System.Data.SqlClient;
using Kingdee.BOS.Util;
using E_ZKEcc.Service;
using E_ZKEcc.Domian;
+using E_ZKEcc.Request;
namespace UnitTestProject2
{
@@ -65,6 +66,7 @@ namespace UnitTestProject2
string ip = "sftp.betagrid.gxs.com";
string port = "22";
string user = "HUIWE_SFTP_TST";
+ string pPath= "LEXMK_SFTP_TST";
string pwd = "@m+n|9+v^.R}1[^";
string localPath = "D:\\Work\\GateDge\\SFTP\\aatat.docx";
string remotePath = "/././POLLABLE";
@@ -90,61 +92,26 @@ namespace UnitTestProject2
apiInfo.appKey = "3391hexqe5h0wv4z4veju_dvn7gntnr5oiv_dxjabqtt";
apiInfo.apiVersion = "v2";
apiInfo.serverUrl = "http://14.21.32.187:8088";
+
var service = new EmployeeService(apiInfo);
- var data = service.GetEmployee(null);
+ var domain = new EmployeeUpdateRequest();
+ domain.pin = "99999";
+ domain.name = "测试1";
+ domain.deptnumber = "999";
+ //domain.identitycard = "440444444444444444";
+ var result = service.UpdateEmployee(new List() { domain });
+ //var data = service.GetEmployee("999999,888888");
+ //var service2 = new DepartmentService(apiInfo);
+ //var result = service2.UpdateDepartment(new E_ZKEcc.Request.DepartmentUpdateRequest
+ //{
+ // deptnumber = "999",
+ // deptname = "金蝶云星空",
+ // parentnumber = "1"
+ //});
return;
}
- [Serializable]
- public class EmployeeUpdateDomain
- {
- ///
- /// 人员编号 长度为1~24个字符 必填
- ///
- public string pin { get; set; }
-
- ///
- /// 名称。长度为1~20个字符
- ///
- public string name { get; set; }
-
- ///
- /// 人员所属部门编号(更新可以不填,新增必填)
- ///
- public string deptnumber { get; set; }
-
- ///
- /// 性别 。'M'表示男,'F'表示女 允许值: 'M', 'F'
- ///
- public string gender { get; set; }
-
- ///
- /// 身份证号
- ///
- public string identitycard { get; set; }
-
- ///
- /// 人员自助密码
- ///
- public string selfpassword { get; set; }
-
- ///
- /// 人员是否考勤
- ///
- public int? att { get; set; }
-
- ///
- /// 验证方式
- ///
- public int? comverifys { get; set; }
-
- ///
- /// 比对照片信息,BASE64格式
- ///
- public string enrollpic { get; set; }
- }
-
[TestMethod]
public void TestMethod3()
{
@@ -153,7 +120,8 @@ namespace UnitTestProject2
SqlConnection con = new SqlConnection(sqlConn);
//SqlConnection con = new SqlConnection("Server=.;Database=ASSDB;uid=ooa;pwd=123qwe123;Trusted_Connection=False;");
con.Open();
-
+ //client.InitClient("654e408a013340", "appID", "appSec", "userName", 2052, "100", "http://desktop-2r7oavu/k3cloud/");
+ //client.Save("STK_MISCELLANEOUS", "{"NeedUpDateFields":[],"NeedReturnFields":[],"IsDeleteEntry":"true","SubSystemId":"","IsVerifyBaseDataField":"false","IsEntryBatchFill":"true","ValidateFlag":"true","NumberSearch":"true","IsAutoAdjustField":"false","InterationFlags":"","IgnoreInterationFlag":"","IsControlPrecision":"false","ValidateRepeatJson":"false","Model":{"FID":0,"FBillNo":"","FBillTypeID":{"FNUMBER":""},"FStockOrgId":{"FNumber":""},"FStockDirect":"","FDate":"1900 - 01 - 01","FSUPPLIERID":{"FNumber":""},"FDEPTID":{"FNumber":""},"FACCEPTANCE":{"FStaffNumber":""},"FSTOCKERID":{"FNumber":""},"FSTOCKERGROUPID":{"FNumber":""},"FOwnerTypeIdHead":"","FOwnerIdHead":{"FNumber":""},"FNOTE":"","FBaseCurrId":{"FNumber":""},"FScanBox":"","FEntity":[{"FEntryID":0,"FInStockType":"","FMATERIALID":{"FNumber":""},"FAuxPropId":{"FAUXPROPID__FF100002":{"FNumber":""}},"FUnitID":{"FNumber":""},"FSTOCKID":{"FNumber":""},"FStockLocId":{"FSTOCKLOCID__FF100001":{"FNumber":""},"FSTOCKLOCID__FF100002":{"FNumber":""}},"FSTOCKSTATUSID":{"FNumber":""},"FLOT":{"FNumber":""},"FQty":0,"FEntryNote":"","FSRCBILLNO":"","FSRCBILLTYPEID":"","FBOMID":{"FNumber":""},"FPRODUCEDATE":"1900 - 01 - 01","FMTONO":"","FExtAuxUnitId":{"FNumber":""},"FExtAuxUnitQty":0,"FProjectNo":"","FOWNERTYPEID":"","FOWNERID":{"FNumber":""},"FKEEPERTYPEID":"","FKEEPERID":{"FNumber":""},"FInstockDate":"1900 - 01 - 01","FSerialSubEntity":[{"FDetailID":0,"FSerialNo":"","FSerialNote":""}]}]}}");
}
diff --git a/01.扩展/Extensions/ObjectExtension.cs b/01.扩展/Extensions/ObjectExtension.cs
index 3f5aa56..bbcc237 100644
--- a/01.扩展/Extensions/ObjectExtension.cs
+++ b/01.扩展/Extensions/ObjectExtension.cs
@@ -14,5 +14,11 @@ namespace ExtensionMethods
return obj.ToString();
}
+
+ public static bool ToBool(this object obj)
+ {
+ bool.TryParse(obj.ToSafeTurnString(), out bool resultVal);
+ return resultVal;
+ }
}
}
diff --git a/02.珠海市供水有限公司/ZHSW.Python/PUR_Requisition/BillEventPlugInEx.py b/02.珠海市供水有限公司/ZHSW.Python/PUR_Requisition/BillEventPlugInEx.py
index 6f59342..2e63e4d 100644
--- a/02.珠海市供水有限公司/ZHSW.Python/PUR_Requisition/BillEventPlugInEx.py
+++ b/02.珠海市供水有限公司/ZHSW.Python/PUR_Requisition/BillEventPlugInEx.py
@@ -26,6 +26,7 @@ def DataChanged(e):
if e.NewValue != None and e.NewValue != 0:
hasQRCost = this.View.Model.GetValue("FHasQRCost")
idlist = [{ "materialId" : e.NewValue , "inRow" : e.Row}]
+ # raise Exception(str(e.NewValue)+","+str(e.Row))
GetcContractAnnualCost(idlist,hasQRCost)
else:
this.View.Model.SetValue("FTAXPRICE", 0, e.Row)
@@ -40,7 +41,21 @@ def DataChanged(e):
idlist = list(filter(lambda x:x["materialId"] > 0,map(lambda x:{ "materialId":x["MaterialId_Id"] ,"inRow": x["Seq"] - 1} ,entrys)))
GetcContractAnnualCost(idlist,hasQRCost)
-
+def AfterCreateNewData(e):
+ if DoCheckConditions():
+ details = this.View.BusinessInfo.GetEntity("FEntity");
+ if details != None :
+ entrys = this.View.Model.GetEntityDataObject(details);
+ if entrys != None and entrys.Count > 0:
+ hasQRCost = this.View.Model.GetValue("FHasQRCost")
+ idlist = []
+ for entry in entrys:
+ rowIndex = this.View.Model.GetRowIndex(details, entry)
+ materialObjValue = entry["MaterialId_Id"]
+ materialValue = 0 if materialObjValue == None else materialObjValue
+ idlist.append({ "materialId" :materialValue , "inRow" : rowIndex})
+ GetcContractAnnualCost(idlist,hasQRCost)
+
def GetcContractAnnualCost(idList,hasQRCost):
# whereSql = " AND t0e.F_QNV_BASE1 IN ({0}) ".format(",".join(idList))
intoSqlList = List[str]()
@@ -125,18 +140,4 @@ def DoCheckConditions():
orgObj = this.View.Model.GetValue("FApplicationOrgId")
if orgObj["Id"] == 101542:
return True
- return False
-
-
-# --alter table T_STK_MISDELIVERYENTRY alter column FReferPrice decimal(23,10) not null
-
-
-# --UPDATE T_STK_MISDELIVERYENTRY SET FReferPrice = 0
-# --WHERE FReferPrice = '' OR FReferPrice is null
-
-# alter table T_STK_MISDELIVERYENTRY alter column FReferAmount decimal(23,10) not null
-
-
-# UPDATE T_STK_MISDELIVERYENTRY SET FReferAmount = 0
-# WHERE FReferAmount = '' OR FReferAmount is null
-
+ return False
\ No newline at end of file
diff --git a/02.珠海市供水有限公司/ZHSW.Python/PUR_Requisition/sql/获取合同年度单价.sql b/02.珠海市供水有限公司/ZHSW.Python/PUR_Requisition/sql/获取合同年度单价.sql
index fb8574c..13e4c7f 100644
--- a/02.珠海市供水有限公司/ZHSW.Python/PUR_Requisition/sql/获取合同年度单价.sql
+++ b/02.珠海市供水有限公司/ZHSW.Python/PUR_Requisition/sql/获取合同年度单价.sql
@@ -1,19 +1,56 @@
-SELECT t.*
-FROM (SELECT t0e.FID
- ,t0e.FENTRYID
- ,t0.FBILLNO
- ,t0.F_QNV_TEXT2
- ,t0e.F_QNV_BASE1 AS ''
- ,t0e.F_QNV_DECIMAL1 AS '˰'
- ,t0e.F_QNV_DECIMAL3 AS 'ۺϵ'
- ,t0e.F_QNV_DATE2 AS 'Ч'
- ,t0e.F_QNV_DATE3 AS 'ʧЧ'
- ,t1.FTAXRATE AS 'Ĭ˰'
- ,ROW_NUMBER() over(PARTITION BY t0e.F_QNV_BASE1 ORDER BY t0e.F_QNV_DATE2 DESC) AS 'RN'
-FROM QNV_t_Cust_Entry100003 t0
- INNER JOIN QNV_t_Cust_Entry100004 t0e on t0.FID = t0e.FID
- INNER JOIN T_BD_TAXRATE t1 on t1.FID = t0e.F_QNV_BASE3
-WHERE 1=1
- AND t0.FDOCUMENTSTATUS ='C'
- AND GETDATE() BETWEEN t0e.F_QNV_DATE2 AND t0e.F_QNV_DATE3) t
-WHERE t.RN = 1
\ No newline at end of file
+SELECT
+ rowSet2.[1] AS 'MaterialId'
+ ,rowSet2.[2] AS 'inRow'
+ INTO #TMPMATERIALNUM
+FROM (
+ SELECT 1 ID,CAST(''+ REPLACE('{0}',';','') + '' AS XML) AS xmlVal
+) AS valSet
+OUTER APPLY (
+ SELECT ROW_NUMBER() OVER (ORDER BY valSet.ID) RN
+ ,CAST(''+ REPLACE(T.C.value('.','varchar(100)'),',','') + '' AS XML) xmlVal
+ FROM valSet.xmlVal.nodes('/v') AS T(C)
+) rowSet
+OUTER APPLY (
+ SELECT * FROM (
+ SELECT T.C.value('.','varchar(100)') AS xmlVal
+ ,ROW_NUMBER() OVER (ORDER BY rowSet.RN) RowNo
+ FROM rowSet.xmlVal.nodes('/v') AS T(C)
+ ) TT
+ PIVOT ( MAX(TT.xmlVal) FOR TT.RowNo IN ([1],[2])) TT2
+) rowSet2
+
+SELECT CONVERT(int,tt0.inRow) AS inRow
+ ,ISNULL(tt2.,0) AS ''
+ ,ISNULL(tt2.˰,0) AS '˰'
+ ,ISNULL(tt2.ۺϵ,0) AS 'ۺϵ'
+ ,ISNULL(tt2.Ĭ˰,0) AS 'Ĭ˰'
+ ,tt2.FBILLNO
+FROM #TMPMATERIALNUM tt0
+ OUTER APPLY (
+ SELECT TOP 1
+ t0e.FID
+ ,t0e.FENTRYID
+ ,t0.FBILLNO
+ ,t0.F_QNV_TEXT2
+ ,t0e.F_QNV_BASE1 AS ''
+ ,t0e.F_QNV_DECIMAL1 AS '˰'
+ ,t0e.F_QNV_DECIMAL3 AS 'ۺϵ'
+ ,t0e.F_QNV_DATE2 AS 'Ч'
+ ,t0e.F_QNV_DATE3 AS 'ʧЧ'
+ ,t1.FTAXRATE AS 'Ĭ˰'
+ FROM QNV_t_Cust_Entry100003 t0
+ INNER JOIN QNV_t_Cust_Entry100004 t0e on t0.FID = t0e.FID
+ INNER JOIN T_BD_TAXRATE t1 on t1.FID = t0e.F_QNV_BASE3
+ CROSS APPLY (
+ SELECT t3.FMATERIALID
+ FROM T_BD_MATERIAL t2
+ INNER JOIN T_BD_MATERIAL t3 on t2.FMASTERID = t3.FMASTERID
+ WHERE t2.FMATERIALID = tt0.MATERIALID
+ AND t3.FMATERIALID = t0e.F_QNV_BASE1
+ ) tt1
+ WHERE 1 = 1
+ AND t0.FDOCUMENTSTATUS ='C'
+ AND GETDATE() BETWEEN t0e.F_QNV_DATE2 AND t0e.F_QNV_DATE3
+ ORDER BY t0e.F_QNV_DATE2 DESC
+ ) tt2
+WHERE 1 = 1
diff --git a/02.珠海市供水有限公司/ZHSW/STK_MisDelivery/BillEventPlugInEx.cs b/02.珠海市供水有限公司/ZHSW/STK_MisDelivery/BillEventPlugInEx.cs
index 5b54c96..411abea 100644
--- a/02.珠海市供水有限公司/ZHSW/STK_MisDelivery/BillEventPlugInEx.cs
+++ b/02.珠海市供水有限公司/ZHSW/STK_MisDelivery/BillEventPlugInEx.cs
@@ -151,6 +151,7 @@ namespace ZHSW.STK_MisDelivery
#endregion
}
+
public override void AfterCreateNewData(EventArgs e)
{
base.AfterCreateNewData(e);
diff --git a/03.珠海市汇威精密制造有限公司/HUIWEI.Python/HUIWEI.Python.pyproj b/03.珠海市汇威精密制造有限公司/HUIWEI.Python/HUIWEI.Python.pyproj
index 2c33f05..4b2a528 100644
--- a/03.珠海市汇威精密制造有限公司/HUIWEI.Python/HUIWEI.Python.pyproj
+++ b/03.珠海市汇威精密制造有限公司/HUIWEI.Python/HUIWEI.Python.pyproj
@@ -43,10 +43,15 @@
+
+
+
+
+
diff --git a/03.珠海市汇威精密制造有限公司/HUIWEI.Python/PRD_MO/BillEventPlugInEx.py b/03.珠海市汇威精密制造有限公司/HUIWEI.Python/PRD_MO/BillEventPlugInEx.py
new file mode 100644
index 0000000..2746778
--- /dev/null
+++ b/03.珠海市汇威精密制造有限公司/HUIWEI.Python/PRD_MO/BillEventPlugInEx.py
@@ -0,0 +1,41 @@
+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 *
+
+def BarItemClick(e):
+ if e.BarItemKey == "tbSNew" or e.BarItemKey == "tbNew":
+ parameterData = this.View.Model.ParameterData
+ billTypeField = this.View.BillBusinessInfo.GetBillTypeField()
+
+ info = None
+ for x in parameterData["BillTypeEntity"]:
+ if x[4]:
+ info = x
+ break
+
+ if info != None:
+ SetBillTypeDefValue(billTypeField, info[5])
+
+def SetBillTypeDefValue(billTypeField,defBillTypeId):
+ if billTypeField != None and (defBillTypeId != None and defBillTypeId != ""):
+ billTypeObj = this.Model.LoadReferenceData(billTypeField.RefFormDynamicObjectType, defBillTypeId)
+ billTypeField.RefIDDynamicProperty.SetValue(this.Model.DataObject, defBillTypeId)
+ billTypeField.DynamicProperty.SetValue(this.Model.DataObject, billTypeObj)
\ No newline at end of file
diff --git a/03.珠海市汇威精密制造有限公司/HUIWEI.Python/PRD_MO/OperactionEventPlugInEx.py b/03.珠海市汇威精密制造有限公司/HUIWEI.Python/PRD_MO/OperactionEventPlugInEx.py
index 5996fe9..e0acc12 100644
--- a/03.珠海市汇威精密制造有限公司/HUIWEI.Python/PRD_MO/OperactionEventPlugInEx.py
+++ b/03.珠海市汇威精密制造有限公司/HUIWEI.Python/PRD_MO/OperactionEventPlugInEx.py
@@ -1,10 +1,10 @@
-#clrп
+#引入clr运行库
import clr
-#Ӷcloudij
+#添加对cloud插件开发的常用组件引用
clr.AddReference('System')
clr.AddReference('System.Data')
clr.AddReference("ExtensionMethods")
-# ýstart
+# 常用金蝶插件类库start
clr.AddReference('Kingdee.BOS')
clr.AddReference('Kingdee.BOS.App')
clr.AddReference('Kingdee.BOS.App.Core')
@@ -13,9 +13,9 @@ clr.AddReference('Kingdee.BOS.Contracts')
clr.AddReference('Kingdee.BOS.Core')
clr.AddReference('Kingdee.BOS.DataEntity')
clr.AddReference('Kingdee.BOS.ServiceHelper')
-# ýend
+# 常用金蝶插件类库end
-#dairycloudеijʵռ䵼룬ݹ鵼룩
+#dairycloud基础库中的常用实体对象(分命名空间导入,不会递归导入)
from System import *
from System.Data import *
from System.Collections.Generic import List
@@ -39,9 +39,10 @@ def OnPreparePropertys(e):
def EndOperationTransaction(e):
- # 8ύ9126
- if this.FormOperation.OperationId == 8:
- va = "1111";
- # raise Exception("sss:{0}".format(type(strObjEx.ToDouble(va))));
- raise Exception("sss:{0}".format(type(DictionaryUtils.Long2Int(va))));
- # raise Exception(va.ToDouble());
\ No newline at end of file
+ # 保存8提交9审核1反审核26
+ # if this.FormOperation.OperationId == 8:
+ # va = "1111";
+ # if this.FormOperation.OperationId == 8:
+ # raise Exception(JsonUtil.Serialize(this.FormOperation));
+ if this.FromOperation.Operation == 'New':
+ raise Exception(JsonUtil.Serialize(e));
\ No newline at end of file
diff --git a/03.珠海市汇威精密制造有限公司/HUIWEI.Python/ProductionMaterialsReport/sql/aaaaaa.sql b/03.珠海市汇威精密制造有限公司/HUIWEI.Python/ProductionMaterialsReport/sql/aaaaaa.sql
index d9129a5..8a8737a 100644
--- a/03.珠海市汇威精密制造有限公司/HUIWEI.Python/ProductionMaterialsReport/sql/aaaaaa.sql
+++ b/03.珠海市汇威精密制造有限公司/HUIWEI.Python/ProductionMaterialsReport/sql/aaaaaa.sql
@@ -2702,18 +2702,18 @@ WHERE δ
--δ()
--***********************δ()*****************************
--ѯֹ֮ǰ
-SELECT (MO.FBILLNO) ,(MO.FID) ,(ME.FENTRYID) ¼,
-PE.FMATERIALID ,(PP.FID) ,PP.FBILLNO ϵ,(PE.FENTRYID) ϵ¼,
-ISNULL(PC.FSTOCKID,0) ֿ,PE.FAUXPROPID,(PE.FMUSTQTY) AS Ӧ,
-PQ.FSELPICKEDQTY AS ѡ,PQ.FBASENOPICKEDQTY AS δ
+SELECT (MO.FBILLNO) ,(MO.FID) ,(ME.FENTRYID) ¼
+ ,PE.FMATERIALID ,(PP.FID) ,PP.FBILLNO ϵ,(PE.FENTRYID) ϵ¼
+ ,ISNULL(PC.FSTOCKID,0) ֿ,PE.FAUXPROPID,(PE.FMUSTQTY) AS Ӧ
+ ,PQ.FSELPICKEDQTY AS ѡ,PQ.FBASENOPICKEDQTY AS δ
INTO #tmpPPBOM
- FROM T_PRD_MO MO
-INNER JOIN T_PRD_MOENTRY ME ON MO.FID =ME.FID
-INNER JOIN T_PRD_MOENTRY_A MA ON MA.FID =ME.FID AND ME.FENTRYID =MA.FENTRYID
-INNER JOIN T_PRD_PPBOM PP ON PP.FMOID=MO.FID AND ME.FENTRYID =PP.FMOENTRYID
-INNER JOIN T_PRD_PPBOMENTRY PE ON PP.FID =PE.FID
-LEFT JOIN T_PRD_PPBOMENTRY_Q PQ ON PP.FID =PQ.FID AND PE.FENTRYID =PQ.FENTRYID
-LEFT JOIN T_PRD_PPBOMENTRY_C PC ON PP.FID =PC.FID AND PE.FENTRYID =PC.FENTRYID
+FROM T_PRD_MO MO
+ INNER JOIN T_PRD_MOENTRY ME ON MO.FID =ME.FID
+ INNER JOIN T_PRD_MOENTRY_A MA ON MA.FID =ME.FID AND ME.FENTRYID =MA.FENTRYID
+ INNER JOIN T_PRD_PPBOM PP ON PP.FMOID=MO.FID AND ME.FENTRYID =PP.FMOENTRYID
+ INNER JOIN T_PRD_PPBOMENTRY PE ON PP.FID =PE.FID
+ LEFT JOIN T_PRD_PPBOMENTRY_Q PQ ON PP.FID =PQ.FID AND PE.FENTRYID =PQ.FENTRYID
+ LEFT JOIN T_PRD_PPBOMENTRY_C PC ON PP.FID =PC.FID AND PE.FENTRYID =PC.FENTRYID
WHERE 1=1 AND MO.FCANCELSTATUS='A' AND MO.FDOCUMENTSTATUS='C' AND ME.FPRODUCTTYPE =1
AND (MO.FDATE <=@FEDate AND ISNULL(MA.FCONVEYDATE,'')<>'')
AND (MA.FFINISHDATE >@FEDate OR ISNULL(MA.FFINISHDATE,'')='')--2020-04-27֮깤Ϊ깤
@@ -2740,8 +2740,6 @@ GROUP BY tse.FMOID,tse.FMOBILLNO,tse.FMOENTRYID,tse.FPPBOMENTRYID,tse.FPPBOMBILL
) t2 ON t1.=t2.FMOBILLNO AND t1.¼=t2.FMOENTRYID
AND t1.ϵ=t2.FPPBOMBILLNO AND t1.ϵ¼=t2.FPPBOMENTRYID AND t1.=t2.FMATERIALID
-
-
--ºδ
--SELECT * FROM #tmpPPBOM
@@ -2754,19 +2752,15 @@ LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID = B.
--WHERE (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) AND TSK.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID )
ORDER BY
-
-
-SELECT ,Ӧ,δ,FAUXPROPID,ֿ
+SELECT ,Ӧ,δ,FAUXPROPID,ֿ
INTO #tmpPPBOM3 FROM #tmpPPBOM1 B
-LEFT JOIN T_BD_MATERIAL TM ON (B. = TM.FMATERIALID )
-LEFT JOIN T_BD_STOCK TSK ON ( TSK.FMASTERID = B.ֿ )
+ LEFT JOIN T_BD_MATERIAL TM ON (B. = TM.FMATERIALID)
+ LEFT JOIN T_BD_STOCK TSK ON (TSK.FMASTERID = B.ֿ)
WHERE -- (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL)
(TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP ))
-AND TSK.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID )
+ AND TSK.FSTOCKID IN (SELECT DISTINCT FStockID FROM #tmpStockID)
ORDER BY
-
-
SELECT ,SUM(Ӧ)Ӧ,SUM(δ)δ,FAUXPROPID,ֿ
INTO #tmpPPBOM2 FROM #tmpPPBOM3
GROUP BY ֿ,,FAUXPROPID
@@ -2775,8 +2769,9 @@ ORDER BY
--δ()
UPDATE t1 SET t1.δ=t2.δ
FROM #Stock_Status_temp t1
-INNER JOIN #tmpPPBOM2
-t2 ON t1.=t2. AND t1.ֿ=t2.ֿ AND t1.װ=T2.FAUXPROPID
+ INNER JOIN #tmpPPBOM2 t2 ON t1.=t2.
+ AND t1.ֿ=t2.ֿ
+ AND t1.װ=T2.FAUXPROPID
--ݾ
@@ -2857,8 +2852,6 @@ LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID = B.
--WHERE (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) AND TSK.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID )
ORDER BY
-
-
SELECT ,Ӧ,δ,FAUXPROPID,ֿ
INTO #tmpSubBOM3 FROM #tmpSubBOM1 B
LEFT JOIN T_BD_MATERIAL TM ON (B. = TM.FMATERIALID )
@@ -2868,8 +2861,6 @@ WHERE -- (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL)
AND TSK.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID )
ORDER BY
-
-
SELECT ,SUM(Ӧ)Ӧ,SUM(δ)δ,FAUXPROPID,ֿ
INTO #tmpSubBOM2 FROM #tmpSubBOM3
GROUP BY ֿ,,FAUXPROPID
@@ -2886,9 +2877,10 @@ t2 ON t1.
--ݾ
INSERT INTO #Stock_Status_temp (,ϴ,,ͺ,ɱ,װʽ,ֿ,ֿ,ֿ,װ,δ)
-
-SELECT TM.fmaterialid AS ,(TM.fnumber) ϴ,(TML.FNAME) AS ,(TML.FSPECIFICATION) AS ͺ,ISNULL(TM.FOLDNUMBER,'') AS ɱ
- ,ISNULL(t5.FAUXPTYNUMBER,'') װʽ,TBS.FSTOCKID ֿ,TSL.fname ֿ,TBS.fnumber ֿ,TSE.FAUXPROPID AS װ,(δ)
+SELECT TM.fmaterialid AS ,(TM.fnumber) ϴ,(TML.FNAME) AS
+ ,(TML.FSPECIFICATION) AS ͺ,ISNULL(TM.FOLDNUMBER,'') AS ɱ
+ ,ISNULL(t5.FAUXPTYNUMBER,'') װʽ,TBS.FSTOCKID ֿ,TSL.fname ֿ
+ ,TBS.fnumber ֿ,TSE.FAUXPROPID AS װ,(δ)
FROM #tmpSubBOM2 TSE
INNER JOIN T_BD_MATERIAL TM ON (TM.FMASTERID = TSE. )
INNER JOIN T_BD_MATERIAL_L TML ON TM.FMATERIALID =TML.FMATERIALID AND TML.FLOCALEID =2052
diff --git a/03.珠海市汇威精密制造有限公司/HUIWEI.Python/产品Bom层级缺料分析查询表/sql/库存状态查询视图.sql b/03.珠海市汇威精密制造有限公司/HUIWEI.Python/产品Bom层级缺料分析查询表/sql/库存状态查询视图.sql
new file mode 100644
index 0000000..a2c9bbe
--- /dev/null
+++ b/03.珠海市汇威精密制造有限公司/HUIWEI.Python/产品Bom层级缺料分析查询表/sql/库存状态查询视图.sql
@@ -0,0 +1,81 @@
+CREATE PROC PROC_MATERIAL_STOCK_STATU(
+ @sDate varchar(80)
+ ,@eDate varchar(80)
+)
+AS
+BEGIN
+SELECT t0.FMATERIALID
+ ,ISNULL(t3.sumQTY,0) AS 即时库存
+ ,ISNULL(t4.sumBASENOPICKEDQTY,0) AS 未发数
+ ,ISNULL(t5.sumNoStockInQty,0) AS 在制数
+ ,CASE WHEN CHARINDEX('TC',t0.FNUMBER) = 1 THEN 0 ELSE ISNULL(t1.数量 - t1.未发数量,0) END AS '受订量'
+ ,ISNULL(t2.数量 - t2.入库数量,0) AS '在途量'
+ ,(ISNULL(t3.sumQTY,0) - ISNULL(t4.sumBASENOPICKEDQTY,0) + ISNULL(t5.sumNoStockInQty,0) - ISNULL(t1.数量 - t1.未发数量,0) + ISNULL(t2.数量 - t2.入库数量,0)) AS '可用库存'
+ ,ISNULL(t6.进检量,0) AS '进检量'
+ --INTO #Material_Stock_Statu
+FROM T_BD_MATERIAL t0
+ LEFT JOIN (
+ SELECT
+ t0e.FMATERIALID,SUM(t0e.FQTY) AS '数量'
+ ,SUM((t0e_r.FBASEREMAINOUTQTY + t0e_r.FBASERETURNQTY)) AS '未发数量'
+ FROM T_SAL_ORDER t0
+ INNER JOIN T_SAL_ORDERENTRY t0e on t0.FID = t0e.FID
+ INNER JOIN T_SAL_ORDERENTRY_R t0e_r on t0e.FID = t0e_r.FID AND t0e_r.FENTRYID = t0e.FENTRYID
+ WHERE t0.FDOCUMENTSTATUS = 'C'
+ AND t0.FCANCELSTATUS = 'A'
+ AND t0.FCLOSESTATUS = 'A'
+ AND t0.FDATE between @sDate AND @eDate
+ GROUP BY t0e.FMATERIALID
+ ) t1 on t1.FMATERIALID = t0.FMATERIALID
+ LEFT JOIN (
+ SELECT
+ t0e.FMATERIALID,SUM(t0e.FQTY) AS '数量'
+ ,SUM(t0e_r.FREMAINSTOCKINQTY) AS '剩余入库数量'
+ ,SUM(t0e_r.FBASESTOCKINQTY) AS '入库数量'
+ FROM T_PUR_POORDER t0
+ INNER JOIN T_PUR_POORDERENTRY t0e on t0.FID = t0e.FID AND t0.FBUSINESSTYPE != 'ZCCG' AND t0.FBUSINESSTYPE != 'FYCG'
+ INNER JOIN T_PUR_POORDERENTRY_R t0e_r on t0e.FID = t0e_r.FID AND t0e_r.FENTRYID = t0e.FENTRYID
+ WHERE t0.FDOCUMENTSTATUS = 'C'
+ AND t0.FCANCELSTATUS = 'A'
+ AND t0.FCLOSESTATUS = 'A'
+ AND t0.FDATE BETWEEN @sDate AND @eDate
+ GROUP BY t0e.FMATERIALID
+ ) t2 on t2.FMATERIALID = t0.FMATERIALID
+ LEFT JOIN (
+ SELECT tt0.FMATERIALID,tt0.FSTOCKORGID,SUM(tt0.FBASEQTY) AS sumQTY
+ FROM T_STK_INVENTORY tt0
+ GROUP BY tt0.FMATERIALID,tt0.FSTOCKORGID
+ ) t3 on t3.FMATERIALID = t0.FMASTERID AND t3.FSTOCKORGID = t0.FUSEORGID
+ LEFT JOIN (
+ SELECT t0e.FMATERIALID,SUM(t0e_q.FNOPICKEDQTY) sumBASENOPICKEDQTY --未发量
+ FROM T_PRD_PPBOMENTRY t0e
+ INNER JOIN T_PRD_PPBOMENTRY_Q t0e_q on t0e.FENTRYID = t0e_q.FENTRYID
+ INNER JOIN T_PRD_MOENTRY_A t0e_a on t0e_a.FENTRYID = t0e.FMOENTRYID
+ WHERE t0e_a.FSTATUS = 4
+ GROUP BY t0e.FMATERIALID
+ ) t4 on t4.FMATERIALID = t0.FMATERIALID
+ LEFT JOIN (
+ SELECT t0e.FMATERIALID,SUM(t0e_q.FNOSTOCKINQTY) AS sumNoStockInQty
+ FROM T_PRD_MOENTRY t0e
+ INNER JOIN T_PRD_MOENTRY_Q t0e_q on t0e.FENTRYID = t0e_q.FENTRYID
+ INNER JOIN T_PRD_MOENTRY_A t0e_a on t0e_a.FENTRYID = t0e.FENTRYID
+ WHERE t0e_a.FSTATUS = 4
+ GROUP BY t0e.FMATERIALID
+ ) t5 on t5.FMATERIALID = t0.FMATERIALID
+ LEFT JOIN (
+ SELECT t0e.FMATERIALID,SUM(FBASEUNITQTY-FINSTOCKBASEQTY + FRETURNBASEQTY) AS '进检量'
+ FROM T_PUR_RECEIVE t0
+ INNER JOIN T_PUR_RECEIVEENTRY t0e on t0.FID = t0e.FID
+ INNER JOIN T_PUR_RECEIVEENTRY_R t0e_r on t0e.FID = t0e_r.FID AND t0e.FENTRYID = t0e_r.FENTRYID
+ INNER JOIN T_PUR_RECEIVEENTRY_S t0e_s on t0e.FID = t0e_s.FID AND t0e.FENTRYID = t0e_s.FENTRYID
+ WHERE t0.FDOCUMENTSTATUS = 'C'
+ AND t0.FCANCELSTATUS = 'A'
+ AND t0.FCLOSESTATUS = 'A'
+ AND t0.FDATE BETWEEN @sDate AND @eDate
+ GROUP BY t0e.FMATERIALID
+ ) t6 on t6.FMATERIALID = t0.FMATERIALID
+WHERE t0.FDOCUMENTSTATUS = 'C'
+ AND t0.FFORBIDSTATUS = 'A'
+
+ --RETURN #Material_Stock_Statu
+END
\ No newline at end of file
diff --git a/03.珠海市汇威精密制造有限公司/HUIWEI.Python/产品Bom层级缺料分析查询表/sql/缺料分析单数据查询V1.sql b/03.珠海市汇威精密制造有限公司/HUIWEI.Python/产品Bom层级缺料分析查询表/sql/缺料分析单数据查询V1.sql
index 80678c5..a925e35 100644
--- a/03.珠海市汇威精密制造有限公司/HUIWEI.Python/产品Bom层级缺料分析查询表/sql/缺料分析单数据查询V1.sql
+++ b/03.珠海市汇威精密制造有限公司/HUIWEI.Python/产品Bom层级缺料分析查询表/sql/缺料分析单数据查询V1.sql
@@ -7,20 +7,20 @@ SET @sDate = '2024-02-24'
SET @eDate = '2024-03-24'
select @dbName = db_name()
-
+--把需要分析的物料id跟数据量分组统计
SELECT tt.MATERIALID,SUM(tt.needNum) needNum
INTO #TMPMATERIALNUM
-FROM (SELECT
+FROM (
+ SELECT
CASE @dbName WHEN 'AIS20231110222743' THEN 101521 ELSE 782449 END AS 'MATERIALID'
,10 needNum
- Union
+ UNION ALL
SELECT
CASE @dbName WHEN 'AIS20231110222743' THEN 101530 ELSE 808372 END AS 'MATERIALID'
,30 needNum
) tt
GROUP BY tt.MATERIALID
-
SELECT t0.FMASTERID
,t0.FMATERIALID
,t0.FNUMBER
@@ -32,20 +32,14 @@ FROM T_BD_MATERIAL t0
WHERE t0.FDOCUMENTSTATUS = 'C'
CREATE TABLE #MATERIAL_LACKANALYE(
- FIDENTITYID int not null default 0
- ,MaterialId int not null default 0
+ FIDENTITYID INT NOT NULL DEFAULT 0
+ ,MATERIALID INT NOT NULL DEFAULT 0
,BomId int
- ,物料代码 varchar(100) default ''
- ,物料名称 varchar(100) default ''
+ ,物料代码 varchar(100) DEFAULT ''
+ ,物料名称 varchar(100) DEFAULT ''
,物料_分析需求数 decimal(23,6) default 0
- ,物料_即时库存 decimal(23,6) default 0
- ,物料_未发数 decimal(23,6) default 0
- ,物料_在制数 decimal(23,6) default 0
- ,物料_受订量 decimal(23,6) default 0
- ,物料_在途量 decimal(23,6) default 0
- ,物料_可用库存数 decimal(23,6) default 0
- ,物料_实际需求数 decimal(23,6) default 0
- ,物料_进检量 decimal(23,6) default 0
+ ,物料_可用库存数 decimal(23,6) DEFAULT 0
+ ,物料_实际需求数 decimal(23,6) DEFAULT 0
,BOMLEVEL int
,IsProduct int
,物料个数分组合计 int
@@ -56,9 +50,8 @@ SELECT t0.FMATERIALID
,ISNULL(t4.sumBASENOPICKEDQTY,0) AS 未发数
,ISNULL(t5.sumNoStockInQty,0) AS 在制数
,CASE WHEN CHARINDEX('TC',t0.FNUMBER) = 1 THEN 0 ELSE ISNULL(t1.数量 - t1.未发数量,0) END AS '受订量'
- --,ISNULL(t2.数量 - t2.入库数量,0) AS '在途量'
- ,ISNULL(t2.剩余入库数量,0) AS '在途量'
- ,0 AS '可用库存'
+ ,ISNULL(t2.数量 - t2.入库数量,0) AS '在途量'
+ ,(ISNULL(t3.sumQTY,0) - ISNULL(t4.sumBASENOPICKEDQTY,0) + ISNULL(t5.sumNoStockInQty,0) - ISNULL(t1.数量 - t1.未发数量,0) + ISNULL(t2.数量 - t2.入库数量,0)) AS '可用库存'
,ISNULL(t6.进检量,0) AS '进检量'
INTO #Material_Stock_Statu
FROM T_BD_MATERIAL t0
@@ -78,35 +71,11 @@ FROM T_BD_MATERIAL t0
LEFT JOIN (
SELECT
t0e.FMATERIALID,SUM(t0e.FQTY) AS '数量'
- ,SUM(t0e_r.FREMAINSTOCKINQTY - ISNULL(t1.sumBaseInQty,0) + ISNULL(t2.sumBaseInQty,0)) AS '剩余入库数量'
+ ,SUM(t0e_r.FREMAINSTOCKINQTY) AS '剩余入库数量'
,SUM(t0e_r.FBASESTOCKINQTY) AS '入库数量'
FROM T_PUR_POORDER t0
INNER JOIN T_PUR_POORDERENTRY t0e on t0.FID = t0e.FID AND t0.FBUSINESSTYPE != 'ZCCG' AND t0.FBUSINESSTYPE != 'FYCG'
INNER JOIN T_PUR_POORDERENTRY_R t0e_r on t0e.FID = t0e_r.FID AND t0e_r.FENTRYID = t0e.FENTRYID
- LEFT JOIN (
- SELECT t1e.FMATERIALID,SUM(t1e.FBASEUNITQTY) sumBaseInQty
- FROM T_PUR_MRB t1
- INNER JOIN T_PUR_MRBENTRY t1e on t1.FID = t1e.FID
- INNER JOIN T_PUR_MRBFIN t1f on t1f.FID = t1.FID
- WHERE t1.FDOCUMENTSTATUS = 'C'
- AND t1.FCANCELSTATUS = 'A'
- AND t1f.FISGENFORIOS = 0
- AND t1.FDATE > @eDate
- GROUP BY t1e.FMATERIALID
- ) t1 on t1.FMATERIALID = t0e.FMATERIALID
- LEFT JOIN (
- SELECT t0e.FMATERIALID,SUM(t0e.FBASEUNITQTY) sumBaseInQty
- FROM T_STK_INSTOCK t0
- INNER JOIN T_STK_INSTOCKENTRY t0e on t0.FID = t0e.FID
- INNER JOIN T_STK_INSTOCKENTRY_F t0e_f on t0e_f.FID = t0e.FID AND t0e_f.FENTRYID = t0e.FENTRYID
- INNER JOIN T_STK_INSTOCKENTRY_LK t0e_lk on t0e_lk.FENTRYID = t0e.FENTRYID
- INNER JOIN T_STK_INSTOCKFIN t0f on t0e.FID = t0f.FID
- WHERE 1 = 1
- AND t0.FCANCELSTATUS = 'A'
- AND t0.FDOCUMENTSTATUS = 'C'
- AND t0.FDATE > @eDate
- GROUP BY t0e.FMATERIALID
- ) t2 on t2.FMATERIALID = t0e.FMATERIALID
WHERE t0.FDOCUMENTSTATUS = 'C'
AND t0.FCANCELSTATUS = 'A'
AND t0.FCLOSESTATUS = 'A'
@@ -119,13 +88,13 @@ FROM T_BD_MATERIAL t0
GROUP BY tt0.FMATERIALID,tt0.FSTOCKORGID
) t3 on t3.FMATERIALID = t0.FMASTERID AND t3.FSTOCKORGID = t0.FUSEORGID
LEFT JOIN (
- SELECT t0e.FMATERIALID,SUM(t0e_q.FNOPICKEDQTY) sumBASENOPICKEDQTY
+ SELECT t0e.FMATERIALID,SUM(t0e_q.FNOPICKEDQTY) sumBASENOPICKEDQTY --未发量
FROM T_PRD_PPBOMENTRY t0e
INNER JOIN T_PRD_PPBOMENTRY_Q t0e_q on t0e.FENTRYID = t0e_q.FENTRYID
INNER JOIN T_PRD_MOENTRY_A t0e_a on t0e_a.FENTRYID = t0e.FMOENTRYID
WHERE t0e_a.FSTATUS = 4
GROUP BY t0e.FMATERIALID
- ) t4 on t4.FMATERIALID = t0.FMATERIALID
+ ) t4 on t4.FMATERIALID = t0.FMATERIALID
LEFT JOIN (
SELECT t0e.FMATERIALID,SUM(t0e_q.FNOSTOCKINQTY) AS sumNoStockInQty
FROM T_PRD_MOENTRY t0e
@@ -150,6 +119,7 @@ WHERE t0.FDOCUMENTSTATUS = 'C'
AND t0.FFORBIDSTATUS = 'A'
UPDATE #Material_Stock_Statu SET 可用库存 = 即时库存 - 未发数 - 受订量 + 在制数 + 在途量
+
INSERT INTO #MATERIAL_LACKANALYE
SELECT
ROW_NUMBER() OVER (ORDER BY t0.FMATERIALID)
@@ -158,26 +128,21 @@ SELECT
,t2.FNUMBER
,t2_l.FNAME
,t0.ProMaterialQty
- ,t3.即时库存
- ,t3.未发数
- ,t3.在制数
- ,t3.受订量
- ,t3.在途量
,t3.可用库存
- ,(CASE
- WHEN t3.可用库存 > t0.ProMaterialQty THEN 0
- ELSE t3.可用库存 - t0.ProMaterialQty
- END)
- ,t3.进检量
+ ,(CASE CHARINDEX('TC',t0.FNUMBER)
+ WHEN 1 THEN 0 - t0.ProMaterialQty
+ ELSE (CASE
+ WHEN t3.可用库存 > t0.ProMaterialQty THEN 0
+ ELSE t3.可用库存 - t0.ProMaterialQty
+ END)
+ END)
,0
,1
,1
FROM #ProMaterial t0
INNER JOIN (
SELECT tt.FID,tt.FMATERIALID,ROW_NUMBER() OVER (PARTITION BY tt.FMATERIALID ORDER BY tt.FID DESC) AS 'rn' FROM T_ENG_BOM tt
- WHERE 1 = 1
- AND tt.FDOCUMENTSTATUS = 'C'
- AND tt.FFORBIDSTATUS = 'A'
+ WHERE 1 = 1 AND tt.FDOCUMENTSTATUS = 'C' AND tt.FFORBIDSTATUS = 'A'
) t1 on t0.FMATERIALID = t1.FMATERIALID AND t1.rn = 1 --AND t0.FUSEORGID = t1.FUSEORGID
INNER JOIN T_BD_MATERIAL t2 on t2.FMATERIALID = t1.FMATERIALID
INNER JOIN T_BD_MATERIAL_L t2_l on t2_l.FMATERIALID = t1.FMATERIALID AND t2_l.FLOCALEID = 2052
@@ -193,29 +158,25 @@ SET @LoopCount = 0;
WHILE (@num <> 0 AND @LoopCount < 10)
BEGIN
- INSERT INTO #MATERIAL_LACKANALYE(MaterialId,BomId,物料_分析需求数,物料_即时库存,物料_未发数,物料_在制数,物料_受订量,物料_在途量,物料_可用库存数,物料_实际需求数,物料_进检量,BOMLEVEL,物料个数分组合计,IsProduct)
+ INSERT INTO #MATERIAL_LACKANALYE(MaterialId,BomId,物料_分析需求数
+ ,物料_可用库存数,物料_实际需求数
+ ,BOMLEVEL,物料个数分组合计,IsProduct)
SELECT
tt.FMATERIALID
,ISNULL(t2.FID,0) AS BomId
,ABS(tt.汇总_分析需求数)
- ,t3.即时库存 ,t3.未发数
- ,t3.在制数
- ,t3.受订量
- ,t3.在途量
,t3.可用库存
,(CASE
WHEN t3.可用库存 > (ABS(tt.汇总_分析需求数) + ISNULL(t4.上级_实际需求数,0)) THEN 0
ELSE t3.可用库存 - (ABS(tt.汇总_分析需求数) + ISNULL(t4.上级_实际需求数,0))
END) AS '实际需求数'
- ,t3.进检量
,@level + 1
,tt.co
,0
FROM (
SELECT
- t1.FMATERIALID
+ t1.FMATERIALID,count(1) co
,SUM(t0.物料_实际需求数 * (t1.FNUMERATOR / t1.FDENOMINATOR)) AS '汇总_分析需求数'
- ,count(1) co
FROM
#MATERIAL_LACKANALYE t0
INNER JOIN T_ENG_BOMCHILD t1 on t0.BomId = t1.FID
@@ -223,32 +184,42 @@ BEGIN
AND t0.BOMLEVEL = @level
GROUP BY t1.FMATERIALID
) tt
- LEFT JOIN (
- SELECT tt3.FID,tt3.FNUMBER,tt3.FMATERIALID,ROW_NUMBER() OVER (PARTITION BY tt3.FMATERIALID ORDER BY tt3.FID DESC) AS 'rn'
+ OUTER APPLY (
+ SELECT TOP 1 tt3.FID,tt3.FNUMBER,tt3.FMATERIALID
FROM T_ENG_BOM tt3
WHERE 1 = 1 AND tt3.FDOCUMENTSTATUS = 'C' AND tt3.FFORBIDSTATUS = 'A'
- ) t2 ON t2.rn = 1 AND tt.FMATERIALID = t2.FMATERIALID
+ AND tt.FMATERIALID = tt3.FMATERIALID
+ ORDER BY tt3.FID DESC
+ ) t2
LEFT JOIN #Material_Stock_Statu t3 on t3.FMATERIALID = tt.FMATERIALID
- LEFT JOIN (
- SELECT tt.MaterialId,sum(tt.物料_实际需求数) AS '上级_实际需求数' FROM #MATERIAL_LACKANALYE tt GROUP BY tt.MaterialId
- ) t4 on t4.MaterialId = tt.FMATERIALID
-
+ OUTER APPLY (
+ SELECT tt4.MaterialId
+ ,ABS(SUM(tt4.物料_实际需求数)) AS '上级_实际需求数'
+ FROM #MATERIAL_LACKANALYE tt4
+ WHERE tt4.MaterialId = tt.FMATERIALID
+ GROUP BY tt4.MaterialId
+ ) t4
SET @num = @@ROWCOUNT
SET @level += 1
SET @LoopCount += 1
-
END
-UPDATE t0 SET
- t0.物料代码 = t1.FNUMBER
- ,t0.物料名称 = t1_l.FNAME
- ,t0.FIDENTITYID = t2.rn
-FROM #MATERIAL_LACKANALYE t0
+SELECT t0.MATERIALID,t0.物料_分析需求数,t0.物料_实际需求数,t0.IsProduct,t1.FNUMBER,t1_l.FNAME
+ ,ROW_NUMBER() OVER (ORDER BY t0.BOMLEVEL,t1.FNumber) 'FIDENTITYID'
+ ,t2.即时库存 AS '物料_即时库存',t2.未发数 AS '物料_未发数',t2.在制数 AS '物料_在制数'
+ ,t2.受订量 AS '物料_受订量',t2.在途量 AS '物料_在途量',t2.可用库存 AS '物料_可用库存数',t2.进检量 AS '物料_进检量'
+FROM (
+ SELECT t0.MATERIALID
+ ,SUM(t0.物料_实际需求数) AS '物料_实际需求数'
+ ,SUM(t0.物料_分析需求数) AS '物料_分析需求数'
+ ,MAX(t0.BOMLEVEL) AS 'BOMLEVEL'
+ ,MAX(t0.IsProduct) AS 'IsProduct'
+ FROM #MATERIAL_LACKANALYE t0
+ GROUP BY t0.MATERIALID
+) t0
INNER JOIN T_BD_MATERIAL t1 on t0.MaterialId = t1.FMATERIALID
INNER JOIN T_BD_MATERIAL_L t1_l on t0.MaterialId = t1_l.FMATERIALID AND t1_l.FLOCALEID = 2052
- INNER JOIN (SELECT MaterialId,ROW_NUMBER() OVER (ORDER BY bomlevel,物料代码) 'rn' FROM #MATERIAL_LACKANALYE) t2 on t0.MaterialId = t2.MaterialId
-
-SELECT t0.* FROM #MATERIAL_LACKANALYE t0 ORDER BY FIDENTITYID
+ INNER JOIN #Material_Stock_Statu t2 on t2.FMATERIALID = t0.MATERIALID
DROP TABLE #ProMaterial
DROP TABLE #TMPMATERIALNUM
diff --git a/03.珠海市汇威精密制造有限公司/HUIWEI.Python/产品Bom层级缺料分析查询表/sql/缺料分析单数据查询V3.sql b/03.珠海市汇威精密制造有限公司/HUIWEI.Python/产品Bom层级缺料分析查询表/sql/缺料分析单数据查询V3.sql
new file mode 100644
index 0000000..a7b9905
--- /dev/null
+++ b/03.珠海市汇威精密制造有限公司/HUIWEI.Python/产品Bom层级缺料分析查询表/sql/缺料分析单数据查询V3.sql
@@ -0,0 +1,218 @@
+DECLARE @needNum DECIMAL(23,6)
+,@sDate varchar(100)
+,@eDate varchar(100)
+,@dbName varchar(100)
+SET @needNum = 20
+SET @sDate = '2024-02-24'
+SET @eDate = '2024-03-24'
+
+select @dbName = db_name()
+
+CREATE TABLE #MATERIAL_LACKANALYE(
+ FIDENTITYID INT NOT NULL DEFAULT 0
+ ,MATERIALID INT NOT NULL DEFAULT 0
+ ,BomId int
+ ,物料代码 varchar(100) DEFAULT ''
+ ,物料名称 varchar(100) DEFAULT ''
+ ,物料_分析需求数 decimal(23,6) default 0
+ ,物料_可用库存数 decimal(23,6) DEFAULT 0
+ ,物料_实际需求数 decimal(23,6) DEFAULT 0
+ ,BOMLEVEL int
+ ,IsProduct int default 0
+ ,物料个数分组合计 int
+)
+
+SELECT t0.FMATERIALID
+ ,ISNULL(t3.sumQTY,0) AS 即时库存
+ ,ISNULL(t4.sumBASENOPICKEDQTY,0) AS 未发数
+ ,ISNULL(t5.sumNoStockInQty,0) AS 在制数
+ ,CASE WHEN CHARINDEX('TC',t0.FNUMBER) = 1 THEN 0 ELSE ISNULL(t1.数量 - t1.未发数量,0) END AS '受订量'
+ ,ISNULL(t2.数量 - t2.入库数量,0) AS '在途量'
+ ,(ISNULL(t3.sumQTY,0) - ISNULL(t4.sumBASENOPICKEDQTY,0) + ISNULL(t5.sumNoStockInQty,0) - ISNULL(t1.数量 - t1.未发数量,0) + ISNULL(t2.数量 - t2.入库数量,0)) AS '可用库存'
+ ,ISNULL(t6.进检量,0) AS '进检量'
+ INTO #Material_Stock_Statu
+FROM T_BD_MATERIAL t0
+ LEFT JOIN (
+ SELECT
+ t0e.FMATERIALID,SUM(t0e.FQTY) AS '数量'
+ ,SUM((t0e_r.FBASEREMAINOUTQTY + t0e_r.FBASERETURNQTY)) AS '未发数量'
+ FROM T_SAL_ORDER t0
+ INNER JOIN T_SAL_ORDERENTRY t0e on t0.FID = t0e.FID
+ INNER JOIN T_SAL_ORDERENTRY_R t0e_r on t0e.FID = t0e_r.FID AND t0e_r.FENTRYID = t0e.FENTRYID
+ WHERE t0.FDOCUMENTSTATUS = 'C'
+ AND t0.FCANCELSTATUS = 'A'
+ AND t0.FCLOSESTATUS = 'A'
+ AND t0.FDATE between @sDate AND @eDate
+ GROUP BY t0e.FMATERIALID
+ ) t1 on t1.FMATERIALID = t0.FMATERIALID
+ LEFT JOIN (
+ SELECT
+ t0e.FMATERIALID,SUM(t0e.FQTY) AS '数量'
+ ,SUM(t0e_r.FREMAINSTOCKINQTY) AS '剩余入库数量'
+ ,SUM(t0e_r.FBASESTOCKINQTY) AS '入库数量'
+ FROM T_PUR_POORDER t0
+ INNER JOIN T_PUR_POORDERENTRY t0e on t0.FID = t0e.FID AND t0.FBUSINESSTYPE != 'ZCCG' AND t0.FBUSINESSTYPE != 'FYCG'
+ INNER JOIN T_PUR_POORDERENTRY_R t0e_r on t0e.FID = t0e_r.FID AND t0e_r.FENTRYID = t0e.FENTRYID
+ WHERE t0.FDOCUMENTSTATUS = 'C'
+ AND t0.FCANCELSTATUS = 'A'
+ AND t0.FCLOSESTATUS = 'A'
+ AND t0.FDATE BETWEEN @sDate AND @eDate
+ GROUP BY t0e.FMATERIALID
+ ) t2 on t2.FMATERIALID = t0.FMATERIALID
+ LEFT JOIN (
+ SELECT tt0.FMATERIALID,tt0.FSTOCKORGID,SUM(tt0.FBASEQTY) AS sumQTY
+ FROM T_STK_INVENTORY tt0
+ GROUP BY tt0.FMATERIALID,tt0.FSTOCKORGID
+ ) t3 on t3.FMATERIALID = t0.FMASTERID AND t3.FSTOCKORGID = t0.FUSEORGID
+ LEFT JOIN (
+ SELECT t0e.FMATERIALID,SUM(t0e_q.FNOPICKEDQTY) sumBASENOPICKEDQTY --未发量
+ FROM T_PRD_PPBOMENTRY t0e
+ INNER JOIN T_PRD_PPBOMENTRY_Q t0e_q on t0e.FENTRYID = t0e_q.FENTRYID
+ INNER JOIN T_PRD_MOENTRY_A t0e_a on t0e_a.FENTRYID = t0e.FMOENTRYID
+ WHERE t0e_a.FSTATUS = 4
+ GROUP BY t0e.FMATERIALID
+ ) t4 on t4.FMATERIALID = t0.FMATERIALID
+ LEFT JOIN (
+ SELECT t0e.FMATERIALID,SUM(t0e_q.FNOSTOCKINQTY) AS sumNoStockInQty
+ FROM T_PRD_MOENTRY t0e
+ INNER JOIN T_PRD_MOENTRY_Q t0e_q on t0e.FENTRYID = t0e_q.FENTRYID
+ INNER JOIN T_PRD_MOENTRY_A t0e_a on t0e_a.FENTRYID = t0e.FENTRYID
+ WHERE t0e_a.FSTATUS = 4
+ GROUP BY t0e.FMATERIALID
+ ) t5 on t5.FMATERIALID = t0.FMATERIALID
+ LEFT JOIN (
+ SELECT t0e.FMATERIALID,SUM(FBASEUNITQTY-FINSTOCKBASEQTY + FRETURNBASEQTY) AS '进检量'
+ FROM T_PUR_RECEIVE t0
+ INNER JOIN T_PUR_RECEIVEENTRY t0e on t0.FID = t0e.FID
+ INNER JOIN T_PUR_RECEIVEENTRY_R t0e_r on t0e.FID = t0e_r.FID AND t0e.FENTRYID = t0e_r.FENTRYID
+ INNER JOIN T_PUR_RECEIVEENTRY_S t0e_s on t0e.FID = t0e_s.FID AND t0e.FENTRYID = t0e_s.FENTRYID
+ WHERE t0.FDOCUMENTSTATUS = 'C'
+ AND t0.FCANCELSTATUS = 'A'
+ AND t0.FCLOSESTATUS = 'A'
+ AND t0.FDATE BETWEEN @sDate AND @eDate
+ GROUP BY t0e.FMATERIALID
+ ) t6 on t6.FMATERIALID = t0.FMATERIALID
+WHERE t0.FDOCUMENTSTATUS = 'C'
+ AND t0.FFORBIDSTATUS = 'A'
+
+UPDATE #Material_Stock_Statu SET 可用库存 = 即时库存 - 未发数 - 受订量 + 在制数 + 在途量;
+WITH #TMPMATERIALNUM AS (
+ --把需要分析的物料id跟数据量分组统计
+ SELECT tt.MATERIALID,SUM(tt.needNum) needNum
+ FROM (
+ SELECT
+ CASE @dbName WHEN 'AIS20231110222743' THEN 101521 ELSE 782449 END AS 'MATERIALID'
+ ,10 needNum
+ --UNION ALL
+ --SELECT
+ --CASE @dbName WHEN 'AIS20231110222743' THEN 101530 ELSE 808372 END AS 'MATERIALID'
+ --,30 needNum
+ ) tt
+ GROUP BY tt.MATERIALID
+), #ProMaterial AS(
+ SELECT t0.FMASTERID
+ ,t0.FMATERIALID
+ ,t0.FNUMBER
+ ,t0.FUSEORGID
+ ,t1.needNum AS 'ProMaterialQty'
+ FROM T_BD_MATERIAL t0
+ INNER JOIN #TMPMATERIALNUM t1 on t0.FMATERIALID = t1.MATERIALID
+ WHERE t0.FDOCUMENTSTATUS = 'C'
+)INSERT INTO #MATERIAL_LACKANALYE
+SELECT
+ ROW_NUMBER() OVER (ORDER BY t0.FMATERIALID)
+ ,t0.FMATERIALID
+ ,t1.FID
+ ,t2.FNUMBER
+ ,t2_l.FNAME
+ ,t0.ProMaterialQty
+ ,t3.可用库存
+ ,(CASE CHARINDEX('TC',t0.FNUMBER)
+ WHEN 1 THEN 0 - t0.ProMaterialQty
+ ELSE (CASE WHEN t3.可用库存 > t0.ProMaterialQty THEN 0 ELSE t3.可用库存 - t0.ProMaterialQty END)
+ END)
+ ,0 'BOMLEVEL',1 'IsProduct',1 '物料个数分组合计'
+FROM #ProMaterial t0
+ CROSS APPLY (
+ SELECT TOP 1 tt.FID,tt.FMATERIALID FROM T_ENG_BOM tt
+ WHERE 1 = 1 AND t0.FMATERIALID = tt.FMATERIALID AND tt.FDOCUMENTSTATUS = 'C' AND tt.FFORBIDSTATUS = 'A'
+ ORDER BY tt.FID DESC
+ ) t1
+ INNER JOIN T_BD_MATERIAL t2 on t2.FMATERIALID = t1.FMATERIALID
+ INNER JOIN T_BD_MATERIAL_L t2_l on t2_l.FMATERIALID = t1.FMATERIALID AND t2_l.FLOCALEID = 2052
+ LEFT JOIN #Material_Stock_Statu t3 on t1.FMATERIALID = t3.FMATERIALID
+
+DECLARE @num INT,@level int,@LoopCount int
+SET @num = 1
+SET @level =0
+SET @LoopCount = 0;
+
+WHILE (@num != 0 AND @LoopCount < 10)
+BEGIN
+ WITH t1 AS(
+ SELECT
+ tt.FMATERIALID
+ ,ISNULL(t2.FID,0) AS 'BomId'
+ ,ABS(tt.汇总_分析需求数) '汇总_分析需求数'
+ ,t3.可用库存
+ ,(CASE
+ WHEN t3.可用库存 > (ABS(tt.汇总_分析需求数) - ISNULL(t4.上级_实际需求数,0)) THEN 0
+ ELSE t3.可用库存 - (ABS(tt.汇总_分析需求数) - ISNULL(t4.上级_实际需求数,0))
+ END) AS '实际需求数'
+ ,@level + 1 lv
+ ,tt.物料个数分组合计
+ FROM ( --获取BOM子项物料
+ SELECT t1.FMATERIALID,COUNT(1) AS '物料个数分组合计'
+ ,SUM(t0.物料_实际需求数 * (t1.FNUMERATOR / t1.FDENOMINATOR)) AS '汇总_分析需求数'
+ FROM #MATERIAL_LACKANALYE t0
+ INNER JOIN T_ENG_BOMCHILD t1 on t0.BomId = t1.FID
+ WHERE 1 = 1 AND t0.BOMLEVEL = @level
+ GROUP BY t1.FMATERIALID
+ ) tt
+ OUTER APPLY ( --获取最新层级物料的最新BOM
+ SELECT TOP 1 tt3.FID,tt3.FNUMBER,tt3.FMATERIALID
+ FROM T_ENG_BOM tt3
+ WHERE 1 = 1 AND tt3.FDOCUMENTSTATUS = 'C' AND tt3.FFORBIDSTATUS = 'A'
+ AND tt.FMATERIALID = tt3.FMATERIALID
+ ORDER BY tt3.FID DESC
+ ) t2
+ LEFT JOIN #Material_Stock_Statu t3 on t3.FMATERIALID = tt.FMATERIALID
+ OUTER APPLY ( --统计BOM子项物料已存在临时表中的物料的需求数
+ SELECT ABS(SUM(tt4.物料_实际需求数)) AS '上级_实际需求数'
+ FROM #MATERIAL_LACKANALYE tt4
+ WHERE tt4.MaterialId = tt.FMATERIALID
+ GROUP BY tt4.MaterialId
+ ) t4
+ )
+ INSERT INTO #MATERIAL_LACKANALYE(MaterialId,BomId,物料_分析需求数,物料_可用库存数,物料_实际需求数,BOMLEVEL,物料个数分组合计)
+ SELECT t1.FMATERIALID,t1.BomId,t1.汇总_分析需求数,t1.可用库存,t1.实际需求数,t1.lv,t1.物料个数分组合计
+ FROM t1
+
+ SET @num = @@ROWCOUNT
+ SET @level += 1
+ SET @LoopCount += 1
+END
+
+SELECT
+ ROW_NUMBER() OVER (ORDER BY t0.BOMLEVEL,t1.FNumber) 'FIDENTITYID'
+ ,t0.MATERIALID,t0.IsProduct,t1_l.FNAME,t1.FNUMBER
+ ,t0.物料_分析需求数,t0.物料_实际需求数
+ ,t2.即时库存 AS '物料_即时库存',t2.未发数 AS '物料_未发数',t2.在制数 AS '物料_在制数'
+ ,t2.受订量 AS '物料_受订量',t2.在途量 AS '物料_在途量',t2.可用库存 AS '物料_可用库存数',t2.进检量 AS '物料_进检量'
+ ,t0.物料个数分组合计
+FROM (
+ SELECT t0.MATERIALID
+ ,SUM(t0.物料_实际需求数) AS '物料_实际需求数'
+ ,SUM(t0.物料_分析需求数) AS '物料_分析需求数'
+ ,MAX(t0.BOMLEVEL) AS 'BOMLEVEL'
+ ,MAX(t0.IsProduct) AS 'IsProduct'
+ ,SUM(t0.物料个数分组合计) AS '物料个数分组合计'
+ FROM #MATERIAL_LACKANALYE t0
+ GROUP BY t0.MATERIALID
+) t0
+ INNER JOIN T_BD_MATERIAL t1 on t0.MaterialId = t1.FMATERIALID
+ INNER JOIN T_BD_MATERIAL_L t1_l on t0.MaterialId = t1_l.FMATERIALID AND t1_l.FLOCALEID = 2052
+ INNER JOIN #Material_Stock_Statu t2 on t2.FMATERIALID = t0.MATERIALID
+
+DROP TABLE #MATERIAL_LACKANALYE
+DROP TABLE #Material_Stock_Statu
\ No newline at end of file
diff --git a/03.珠海市汇威精密制造有限公司/HUIWEI.Python/产品Bom层级缺料分析查询表/sql/缺料分析单数据查询V4.sql b/03.珠海市汇威精密制造有限公司/HUIWEI.Python/产品Bom层级缺料分析查询表/sql/缺料分析单数据查询V4.sql
new file mode 100644
index 0000000..98f08a2
--- /dev/null
+++ b/03.珠海市汇威精密制造有限公司/HUIWEI.Python/产品Bom层级缺料分析查询表/sql/缺料分析单数据查询V4.sql
@@ -0,0 +1,171 @@
+DECLARE @needNum DECIMAL(23,6)
+,@sDate varchar(100)
+,@eDate varchar(100)
+,@dbName varchar(100)
+SET @needNum = 20
+SET @sDate = '2024-02-24'
+SET @eDate = '2024-03-24'
+
+select @dbName = db_name()
+
+SELECT t0.FMATERIALID
+ ,ISNULL(t3.sumQTY,0) AS ʱ
+ ,ISNULL(t4.sumBASENOPICKEDQTY,0) AS δ
+ ,ISNULL(t5.sumNoStockInQty,0) AS
+ ,CASE WHEN CHARINDEX('TC',t0.FNUMBER) = 1 THEN 0 ELSE ISNULL(t1. - t1.δ,0) END AS 'ܶ'
+ ,ISNULL(t2. - t2.,0) AS ';'
+ ,(ISNULL(t3.sumQTY,0) - ISNULL(t4.sumBASENOPICKEDQTY,0) + ISNULL(t5.sumNoStockInQty,0) - ISNULL(t1. - t1.δ,0) + ISNULL(t2. - t2.,0)) AS 'ÿ'
+ ,ISNULL(t6.,0) AS ''
+ INTO #Material_Stock_Statu
+FROM T_BD_MATERIAL t0
+ LEFT JOIN (
+ SELECT
+ t0e.FMATERIALID,SUM(t0e.FQTY) AS ''
+ ,SUM((t0e_r.FBASEREMAINOUTQTY + t0e_r.FBASERETURNQTY)) AS 'δ'
+ FROM T_SAL_ORDER t0
+ INNER JOIN T_SAL_ORDERENTRY t0e on t0.FID = t0e.FID
+ INNER JOIN T_SAL_ORDERENTRY_R t0e_r on t0e.FID = t0e_r.FID AND t0e_r.FENTRYID = t0e.FENTRYID
+ WHERE t0.FDOCUMENTSTATUS = 'C'
+ AND t0.FCANCELSTATUS = 'A'
+ AND t0.FCLOSESTATUS = 'A'
+ AND t0.FDATE between @sDate AND @eDate
+ GROUP BY t0e.FMATERIALID
+ ) t1 on t1.FMATERIALID = t0.FMATERIALID
+ LEFT JOIN (
+ SELECT
+ t0e.FMATERIALID,SUM(t0e.FQTY) AS ''
+ ,SUM(t0e_r.FREMAINSTOCKINQTY) AS 'ʣ'
+ ,SUM(t0e_r.FBASESTOCKINQTY) AS ''
+ FROM T_PUR_POORDER t0
+ INNER JOIN T_PUR_POORDERENTRY t0e on t0.FID = t0e.FID AND t0.FBUSINESSTYPE != 'ZCCG' AND t0.FBUSINESSTYPE != 'FYCG'
+ INNER JOIN T_PUR_POORDERENTRY_R t0e_r on t0e.FID = t0e_r.FID AND t0e_r.FENTRYID = t0e.FENTRYID
+ WHERE t0.FDOCUMENTSTATUS = 'C'
+ AND t0.FCANCELSTATUS = 'A'
+ AND t0.FCLOSESTATUS = 'A'
+ AND t0.FDATE BETWEEN @sDate AND @eDate
+ GROUP BY t0e.FMATERIALID
+ ) t2 on t2.FMATERIALID = t0.FMATERIALID
+ LEFT JOIN (
+ SELECT tt0.FMATERIALID,tt0.FSTOCKORGID,SUM(tt0.FBASEQTY) AS sumQTY
+ FROM T_STK_INVENTORY tt0
+ GROUP BY tt0.FMATERIALID,tt0.FSTOCKORGID
+ ) t3 on t3.FMATERIALID = t0.FMASTERID AND t3.FSTOCKORGID = t0.FUSEORGID
+ LEFT JOIN (
+ SELECT t0e.FMATERIALID,SUM(t0e_q.FNOPICKEDQTY) sumBASENOPICKEDQTY --δ
+ FROM T_PRD_PPBOMENTRY t0e
+ INNER JOIN T_PRD_PPBOMENTRY_Q t0e_q on t0e.FENTRYID = t0e_q.FENTRYID
+ INNER JOIN T_PRD_MOENTRY_A t0e_a on t0e_a.FENTRYID = t0e.FMOENTRYID
+ WHERE t0e_a.FSTATUS = 4
+ GROUP BY t0e.FMATERIALID
+ ) t4 on t4.FMATERIALID = t0.FMATERIALID
+ LEFT JOIN (
+ SELECT t0e.FMATERIALID,SUM(t0e_q.FNOSTOCKINQTY) AS sumNoStockInQty
+ FROM T_PRD_MOENTRY t0e
+ INNER JOIN T_PRD_MOENTRY_Q t0e_q on t0e.FENTRYID = t0e_q.FENTRYID
+ INNER JOIN T_PRD_MOENTRY_A t0e_a on t0e_a.FENTRYID = t0e.FENTRYID
+ WHERE t0e_a.FSTATUS = 4
+ GROUP BY t0e.FMATERIALID
+ ) t5 on t5.FMATERIALID = t0.FMATERIALID
+ LEFT JOIN (
+ SELECT t0e.FMATERIALID,SUM(FBASEUNITQTY-FINSTOCKBASEQTY + FRETURNBASEQTY) AS ''
+ FROM T_PUR_RECEIVE t0
+ INNER JOIN T_PUR_RECEIVEENTRY t0e on t0.FID = t0e.FID
+ INNER JOIN T_PUR_RECEIVEENTRY_R t0e_r on t0e.FID = t0e_r.FID AND t0e.FENTRYID = t0e_r.FENTRYID
+ INNER JOIN T_PUR_RECEIVEENTRY_S t0e_s on t0e.FID = t0e_s.FID AND t0e.FENTRYID = t0e_s.FENTRYID
+ WHERE t0.FDOCUMENTSTATUS = 'C'
+ AND t0.FCANCELSTATUS = 'A'
+ AND t0.FCLOSESTATUS = 'A'
+ AND t0.FDATE BETWEEN @sDate AND @eDate
+ GROUP BY t0e.FMATERIALID
+ ) t6 on t6.FMATERIALID = t0.FMATERIALID
+WHERE t0.FDOCUMENTSTATUS = 'C'
+ AND t0.FFORBIDSTATUS = 'A'
+
+UPDATE #Material_Stock_Statu SET ÿ = ʱ - δ - ܶ + + ;;
+
+WITH #TMPMATERIALNUM AS (
+ --Ҫidͳ
+ SELECT tt.MATERIALID,SUM(tt.needNum) needNum
+ FROM (
+ SELECT
+ CASE @dbName WHEN 'AIS20231110222743' THEN 101521 ELSE 782449 END AS 'MATERIALID'
+ ,10 needNum
+ --UNION ALL
+ --SELECT
+ --CASE @dbName WHEN 'AIS20231110222743' THEN 101530 ELSE 808372 END AS 'MATERIALID'
+ --,30 needNum
+ ) tt
+ GROUP BY tt.MATERIALID
+), #ProMaterial AS(
+ SELECT t0.FMASTERID
+ ,t0.FMATERIALID
+ ,t0.FNUMBER
+ ,t0.FUSEORGID
+ ,CAST(t1.needNum AS decimal(23,6)) AS 'ProMaterialQty'
+ FROM T_BD_MATERIAL t0
+ INNER JOIN #TMPMATERIALNUM t1 on t0.FMATERIALID = t1.MATERIALID
+ WHERE t0.FDOCUMENTSTATUS = 'C'
+), #T_ENG_BOM_TOP1 AS(
+ --ȡ²㼶ϵBOM
+ SELECT
+ t1.FMATERIALID AS 'EMaterialId',t1.FNUMERATOR,t1.FDENOMINATOR
+ ,ISNULL(t0.FID,0) AS 'BomId',ISNULL(t0.FNUMBER,'') AS 'FNUMBER'
+ ,ISNULL(t0.FMATERIALID,0) AS 'FMATERIALID',t1.FID AS 'BOMCHILD_FID'
+ FROM T_ENG_BOMCHILD t1
+ OUTER APPLY (
+ SELECT TOP 1 t0.FID,t0.FNUMBER,t0.FMATERIALID
+ FROM T_ENG_BOM t0
+ WHERE t0.FMATERIALID = t1.FMATERIALID
+ AND t0.FDOCUMENTSTATUS = 'C' AND t0.FFORBIDSTATUS = 'A'
+ ORDER BY t0.FID DESC
+ ) t0
+), #MATERIAL_LACKANALYE AS(
+ SELECT
+ t0.FMATERIALID AS 'MATERIALID'
+ ,t1.BomId AS 'BomId'
+ ,t0.ProMaterialQty AS '_'
+ ,t3.ÿ
+ ,CAST((CASE CHARINDEX('TC',t0.FNUMBER)
+ WHEN 1 THEN 0 - t0.ProMaterialQty
+ ELSE (CASE WHEN t3.ÿ > t0.ProMaterialQty THEN 0 ELSE t3.ÿ - t0.ProMaterialQty END)
+ END) AS decimal(23,6)) AS '_ʵ'
+ ,0 'BOMLEVEL',1 'IsProduct',1 'ϸϼ'
+ FROM #ProMaterial t0
+ CROSS APPLY (
+ SELECT TOP 1 tt.BomId,tt.FMATERIALID FROM #T_ENG_BOM_TOP1 tt
+ WHERE 1 = 1 AND t0.FMATERIALID = tt.FMATERIALID ORDER BY tt.BomId DESC
+ ) t1
+ INNER JOIN #Material_Stock_Statu t3 on t1.FMATERIALID = t3.FMATERIALID
+ UNION ALL
+ SELECT t1.EMaterialId AS 'MATERIALID'
+ ,t1.BomId
+ ,CAST(t0._ * (t1.FNUMERATOR / t1.FDENOMINATOR) AS decimal(23,6)) AS '_'
+ ,t0.ÿ
+ ,CAST(t0._ʵ * (t1.FNUMERATOR / t1.FDENOMINATOR) AS decimal(23,6)) AS '_ʵ'
+ ,t0.BOMLEVEL + 1 AS 'BOMLEVEL',0 AS 'IsProduct',1 AS 'ϸϼ'
+ FROM #MATERIAL_LACKANALYE t0
+ INNER JOIN #T_ENG_BOM_TOP1 t1 on t0.BomId = t1.BOMCHILD_FID
+)
+SELECT
+ ROW_NUMBER() OVER (ORDER BY t0.BOMLEVEL,t1.FNumber) 'FIDENTITYID'
+ ,t0.MATERIALID,t0.IsProduct,t1_l.FNAME,t1.FNUMBER
+ ,t0._--,t0._ʵ
+ ,t2.ʱ AS '_ʱ',t2.δ AS '_δ',t2. AS '_'
+ ,t2.ܶ AS '_ܶ',t2.; AS '_;',t2.ÿ AS '_ÿ',t2. AS '_'
+ ,t0.ϸϼ
+FROM (
+ SELECT t0.MATERIALID
+ --,SUM(t0._ʵ) AS '_ʵ'
+ ,SUM(t0._) AS '_'
+ ,MAX(t0.BOMLEVEL) AS 'BOMLEVEL'
+ ,MAX(t0.IsProduct) AS 'IsProduct'
+ ,SUM(t0.ϸϼ) AS 'ϸϼ'
+ FROM #MATERIAL_LACKANALYE t0
+ GROUP BY t0.MATERIALID
+) t0
+ INNER JOIN T_BD_MATERIAL t1 on t0.MaterialId = t1.FMATERIALID
+ INNER JOIN T_BD_MATERIAL_L t1_l on t0.MaterialId = t1_l.FMATERIALID AND t1_l.FLOCALEID = 2052
+ INNER JOIN #Material_Stock_Statu t2 on t2.FMATERIALID = t0.MATERIALID
+OPTION (MAXRECURSION 30)
+
+DROP TABLE #Material_Stock_Statu
\ No newline at end of file
diff --git a/03.珠海市汇威精密制造有限公司/HUIWEI/HUIWEI.csproj b/03.珠海市汇威精密制造有限公司/HUIWEI/HUIWEI.csproj
index 5c92a12..15cb756 100644
--- a/03.珠海市汇威精密制造有限公司/HUIWEI/HUIWEI.csproj
+++ b/03.珠海市汇威精密制造有限公司/HUIWEI/HUIWEI.csproj
@@ -89,6 +89,7 @@
+
@@ -117,5 +118,11 @@
+
+
+ {beae0bf6-7ab9-4af5-83ce-d08e3c6880ef}
+ ExtensionMethods
+
+
\ No newline at end of file
diff --git a/03.珠海市汇威精密制造有限公司/HUIWEI/PRD_MO/BillEventPlugInEx.cs b/03.珠海市汇威精密制造有限公司/HUIWEI/PRD_MO/BillEventPlugInEx.cs
new file mode 100644
index 0000000..d2a9904
--- /dev/null
+++ b/03.珠海市汇威精密制造有限公司/HUIWEI/PRD_MO/BillEventPlugInEx.cs
@@ -0,0 +1,55 @@
+using ExtensionMethods;
+using Kingdee.BOS.Core.DynamicForm.PlugIn;
+using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
+using Kingdee.BOS.Core.Metadata.FieldElement;
+using Kingdee.BOS.Orm.DataEntity;
+using Kingdee.BOS.Util;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Linq;
+using System.Text;
+
+namespace HUIWEI.PRD_MO
+{
+ [Description("测试"), HotUpdate]
+ public class BillEventPlugInEx : AbstractDynamicFormPlugIn
+ {
+ private bool isNewData = false;
+
+ public override void BarItemClick(BarItemClickEventArgs e)
+ {
+ base.BarItemClick(e);
+ if (e.BarItemKey.Equals("tbSNew") || e.BarItemKey.Equals("tbNew"))
+ {
+ var openParameter = this.View.OpenParameter;
+ var customerParams = openParameter.GetCustomParameters();
+ var parameterData = this.View.Model.ParameterData;
+ var billTypeField = this.View.BillBusinessInfo.GetBillTypeField();
+
+ var infos = billTypeField.BillTypeInfo;
+ var info = (parameterData["BillTypeEntity"] as DynamicObjectCollection).FirstOrDefault(x => Convert.ToBoolean(x[4]));
+
+ if (info != null)
+ {
+ SetBillTypeDefValue(billTypeField, info[5].ToString());
+ }
+ }
+ }
+
+ ///
+ /// 设置单据类型默认值
+ ///
+ ///
+ ///
+ private void SetBillTypeDefValue(BillTypeField billTypeField, string defBillTypeId)
+ {
+ if (billTypeField != null && !string.IsNullOrWhiteSpace(defBillTypeId))
+ {
+ var billTypeObj = this.Model.LoadReferenceData(billTypeField.RefFormDynamicObjectType, defBillTypeId);
+ billTypeField.RefIDDynamicProperty.SetValue(this.Model.DataObject, defBillTypeId);
+ billTypeField.DynamicProperty.SetValue(this.Model.DataObject, billTypeObj);
+ }
+ }
+ }
+}
diff --git a/05.长园/CYG.Python/CRM_Contract/BillEventPlugInEx.py b/05.长园/CYG.Python/CRM_Contract/BillEventPlugInEx.py
index 309e67f..098ba01 100644
--- a/05.长园/CYG.Python/CRM_Contract/BillEventPlugInEx.py
+++ b/05.长园/CYG.Python/CRM_Contract/BillEventPlugInEx.py
@@ -23,16 +23,56 @@ from Kingdee.BOS.ServiceHelper import *
def AfterCreateNewData(e):
details = this.View.BusinessInfo.GetEntity("FContractPlan")
entrys = this.View.Model.GetEntityDataObject(details)
- dataJson = [{"name":"预付","FRecAdvanceRate":100}
+ dataJson = [{"name":"预付","FRecAdvanceRate":0}
,{"name":"发货","FRecAdvanceRate":0}
,{"name":"到货","FRecAdvanceRate":0}
,{"name":"验收","FRecAdvanceRate":0}
,{"name":"质保","FRecAdvanceRate":0}]
-
+ # "预付" if FMaterialSeq == 1 else "发货" if FMaterialSeq == 2 else "到货" if FMaterialSeq == 3 else "验收" if FMaterialSeq == 4 else "质保"
if entrys != None and entrys.Count > 0:
+ contractAmount = this.View.Model.GetValue("FCONTRACTAMOUNT")
+ countRecAdvanceRate = 0
for entry in entrys:
rowIndex = this.View.Model.GetRowIndex(details, entry)
if rowIndex > 4:
continue
entry["F_CYG_Text"] = dataJson[rowIndex]["name"]
- entry["FRecAdvanceRate"] = dataJson[rowIndex]["FRecAdvanceRate"]
\ No newline at end of file
+ recAdvanceRate = dataJson[rowIndex]["FRecAdvanceRate"]
+ countRecAdvanceRate = countRecAdvanceRate + recAdvanceRate
+ entry["FRecAdvanceRate"] = recAdvanceRate
+ entry["FRecAdvanceAmount"] = recAdvanceRate / 100 * contractAmount
+
+# def AfterCreateNewData(e):
+# details = this.View.BusinessInfo.GetEntity("FContractPlan")
+# entrys = this.View.Model.GetEntityDataObject(details)
+# dataJson = [{"name":"预付","FRecAdvanceRate":0}
+# ,{"name":"发货","FRecAdvanceRate":0}
+# ,{"name":"到货","FRecAdvanceRate":0}
+# ,{"name":"验收","FRecAdvanceRate":0}
+# ,{"name":"质保","FRecAdvanceRate":0}]
+# # "预付" if FMaterialSeq == 1 else "发货" if FMaterialSeq == 2 else "到货" if FMaterialSeq == 3 else "验收" if FMaterialSeq == 4 else "质保"
+# if entrys != None and entrys.Count > 0:
+# contractAmount = this.View.Model.GetValue("FCONTRACTAMOUNT")
+# countRecAdvanceRate = 0
+# for entry in entrys:
+# rowIndex = this.View.Model.GetRowIndex(details, entry)
+# if rowIndex > 4:
+# continue
+# entry["F_CYG_Text"] = dataJson[rowIndex]["name"]
+# recAdvanceRate = entry["FRecAdvanceRate"]
+# recAdvanceRate = dataJson[rowIndex]["FRecAdvanceRate"] if recAdvanceRate == 0 else recAdvanceRate
+# countRecAdvanceRate = countRecAdvanceRate + recAdvanceRate
+# entry["FRecAdvanceRate"] = recAdvanceRate
+# entry["FRecAdvanceAmount"] = recAdvanceRate / 100 * contractAmount
+
+# if countRecAdvanceRate == 0:
+# this.View.Model.SetValue("FRecAdvanceRate", 100, 0)
+# this.View.Model.SetValue("FRecAdvanceAmount", contractAmount, 0)
+
+# def DataChanged(e):
+# if e.Field.Key == "FRecAdvanceRate":
+# contractAmount = this.View.Model.GetValue("FCONTRACTAMOUNT")
+# recAdvanceRate = e.NewValue
+# rowIndex = e.Row
+# recAdvanceAmount = recAdvanceRate * contractAmount / 100
+# this.View.Model.SetValue("FRecAdvanceAmount", recAdvanceAmount, rowIndex)
\ No newline at end of file
diff --git a/05.长园/CYG.Python/CRM_Contract/OperationEvenPlugInEx.py b/05.长园/CYG.Python/CRM_Contract/OperationEvenPlugInEx.py
new file mode 100644
index 0000000..a9ece4f
--- /dev/null
+++ b/05.长园/CYG.Python/CRM_Contract/OperationEvenPlugInEx.py
@@ -0,0 +1,46 @@
+#引入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.DataEntity')
+clr.AddReference('Kingdee.BOS.ServiceHelper')
+
+#dairycloud基础库中的常用实体对象(分命名空间导入,不会递归导入)
+from Kingdee.BOS.Core import *
+from Kingdee.BOS.Util 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.Core.DynamicForm.PlugIn.ControlModel import *
+from System import *
+from System.Data import *
+from System.Collections.Generic import *
+from Kingdee.BOS.App.Data import *
+from Kingdee.BOS.ServiceHelper import *
+
+# 执行保存操作前
+def BeforeDoSaveExecute(e):
+ if e.DataEntities.Count > 0:
+ # raise Exception(JsonUtil.Serialize(e.DataEntities))
+ for item in e.DataEntities:
+ # 收款计划
+ FContractPlan = item["FContractPlan"]
+ # 财务信息
+ CRM_ContractFIN = item["CRM_ContractFIN"][0]
+ # 合同金额
+ FCONTRACTAMOUNT = CRM_ContractFIN["FCONTRACTAMOUNT"]
+ removeList = []
+ for idx, planItem in enumerate(FContractPlan):
+ # 应收金额
+ planItem["FRECADVANCEAMOUNT"] = planItem["FRECADVANCERATE"] * FCONTRACTAMOUNT / 100
+ if planItem["F_CYG_Text"] == None or planItem["F_CYG_Text"] == "":
+ removeList.append(idx)
+
+ for idx in removeList:
+ FContractPlan.RemoveAt(idx)
+ # raise Exception(JsonUtil.Serialize(e.DataEntities))
\ No newline at end of file
diff --git a/05.长园/CYG/CYG.csproj b/05.长园/CYG/CYG.csproj
index 98e2350..c5b0e72 100644
--- a/05.长园/CYG/CYG.csproj
+++ b/05.长园/CYG/CYG.csproj
@@ -31,10 +31,11 @@
4
- true
+ false
- CYGTEST.pfx
+
+
@@ -52,6 +53,9 @@
..\..\..\..\..\..\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin\Kingdee.BOS.DataEntity.dll
+
+ ..\..\..\..\..\..\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin\Kingdee.K3.CRM.OPP.Business.PlugIn.dll
+
@@ -79,8 +83,5 @@
-
-
-
\ No newline at end of file
diff --git a/07.珠海英搏尔/Enpower.Python/Enpower.Python.pyproj b/07.珠海英搏尔/Enpower.Python/Enpower.Python.pyproj
index c3a8e6b..ecec177 100644
--- a/07.珠海英搏尔/Enpower.Python/Enpower.Python.pyproj
+++ b/07.珠海英搏尔/Enpower.Python/Enpower.Python.pyproj
@@ -27,6 +27,9 @@
+
+
+