commit 461d5141773f95069e94a8999b753e3cab92aa2c
Author: yuyubo <1870149533@qq.com>
Date: Mon Apr 7 21:06:39 2025 +0800
1
diff --git a/1.sql b/1.sql
new file mode 100644
index 0000000..fd874db
--- /dev/null
+++ b/1.sql
@@ -0,0 +1,522 @@
+ALter PROC [dbo].[GetTempModelData]
+(
+ @FID NVARCHAR(100),
+ @FType NVARCHAR(100)
+)
+AS
+DECLARE @FitemName NVARCHAR(1000) --纸质合同号
+DECLARE @YFitemName NVARCHAR(1000) --原纸质合同号
+DECLARE @SJFP NVARCHAR(1000) --税金及发票
+DECLARE @GPhone NVARCHAR(1000) --固定电话
+DECLARE @THDate NVARCHAR(1000) --退货日期
+DECLARE @YFDate NVARCHAR(1000) --原日期
+DECLARE @YFDateYear NVARCHAR(1000) -- 原日期 年
+DECLARE @YFDateMonth NVARCHAR(1000) -- 原日期 月
+DECLARE @YFDateDay NVARCHAR(1000) -- 原日期 日
+DECLARE @SYFitemName NVARCHAR(1000) --S原纸质合同号
+DECLARE @SYFDate NVARCHAR(1000) --S原日期
+DECLARE @SYFDateYear NVARCHAR(1000) -- S原日期 年
+DECLARE @SYFDateMonth NVARCHAR(1000) -- S原日期 月
+DECLARE @SYFDateDay NVARCHAR(1000) -- S原日期 日
+DECLARE @FContractFPhone NVARCHAR(1000) --纸质合同号
+DECLARE @FContract NVARCHAR(1000) --纸质合同号
+DECLARE @FCustAddress NVARCHAR(1000) --纸质合同号
+DECLARE @FPaymentMethod NVARCHAR(1000) --纸质合同号
+DECLARE @FProductionCycle2 NVARCHAR(1000) --纸质合同号
+DECLARE @FProductionCycle NVARCHAR(1000) --纸质合同号
+DECLARE @FContractNo NVARCHAR(1000) --纸质合同号
+DECLARE @FCustName NVARCHAR(1000) --甲方名称
+DECLARE @FDate NVARCHAR(1000) -- 日期
+DECLARE @FDateYear NVARCHAR(1000) -- 日期 年
+DECLARE @FDateMonth NVARCHAR(1000) -- 日期 月
+DECLARE @FDateDay NVARCHAR(1000) -- 日期 日
+DECLARE @CreatedName NVARCHAR(1000) -- 创建人
+DECLARE @FTaxAmountText NVARCHAR(1000)
+DECLARE @FTaxAmount NVARCHAR(1000)
+DECLARE @FItem NVARCHAR(1000)
+DECLARE @FAddressAndPhone NVARCHAR(1000)
+DECLARE @FDeliveryDate NVARCHAR(1000)
+DECLARE @FlegalRepresentative NVARCHAR(1000)
+DECLARE @FBank NVARCHAR(1000)
+DECLARE @FBankAccount NVARCHAR(1000)
+DECLARE @FFax NVARCHAR(1000)
+DECLARE @FPhone NVARCHAR(1000)
+DECLARE @FEMAIL NVARCHAR(1000)
+DECLARE @FTax NVARCHAR(1000)
+DECLARE @FItemData NVARCHAR(1000)
+DECLARE @FJHAddressFContractPhone NVARCHAR(1000)
+DECLARE @FAProjectManager NVARCHAR(1000)
+DECLARE @FAProjectPhone NVARCHAR(1000)
+DECLARE @FBProjectManager NVARCHAR(1000)
+DECLARE @FBProjectPhone NVARCHAR(1000)
+DECLARE @FDeliveryTime NVARCHAR(1000)
+DECLARE @FSHADDRESS NVARCHAR(1000)
+DECLARE @FProjectDeadline NVARCHAR(1000)
+DECLARE @FSettleMethod NVARCHAR(1000)
+DECLARE @FProductionAddress NVARCHAR(1000)
+DECLARE @FPeriod NVARCHAR(1000)
+DECLARE @FJHAddress NVARCHAR(1000)
+DECLARE @FWarrantyPeriod NVARCHAR(1000)
+DECLARE @FAddress NVARCHAR(1000)
+DECLARE @FINFORMATION NVARCHAR(1000)
+DECLARE @FStartDate NVARCHAR(1000)
+DECLARE @FEndDate NVARCHAR(1000)
+DECLARE @FSaleId NVARCHAR(1000)
+DECLARE @FMONTH NVARCHAR(1000) --质保月份
+DECLARE @FMONTHYear NVARCHAR(1000) --质保年份
+DECLARE @Projectarea NVARCHAR(1000) --项目所属领域
+DECLARE @Province NVARCHAR(1000) --项目所属省份
+DECLARE @VPAYMENTMETHOD NVARCHAR(1000)--结算方式
+DECLARE @CreatedPhone NVARCHAR(1000)--创建人电话
+DECLARE @FDELIVERYCONDITIONS NVARCHAR(1000)--发货条件
+DECLARE @HFPaymentMethod NVARCHAR(1000)--付款方式 F_PaymentMethod
+DECLARE @FNOTE NVARCHAR(1000)--备注单据头
+DECLARE @FSALEORGID NVARCHAR(1000)--销售订单组织
+DECLARE @SX01 NVARCHAR(1000)--SX合同
+DECLARE @SX02 NVARCHAR(1000)--SX合同
+DECLARE @SX03 NVARCHAR(1000)--SX合同
+DECLARE @SX04 NVARCHAR(1000)--SX合同
+DECLARE @SX05 NVARCHAR(1000)--SX合同
+DECLARE @SX06 NVARCHAR(1000)--SX合同
+DECLARE @SX07 NVARCHAR(1000)--SX合同
+DECLARE @SX08 NVARCHAR(1000)--SX合同
+
+DECLARE @TH_001 NVARCHAR(1000)--公司名
+DECLARE @TH_002 NVARCHAR(1000)--地址
+DECLARE @TH_003 NVARCHAR(1000)--法定代表人
+DECLARE @TH_004 NVARCHAR(1000)--电话
+DECLARE @TH_005 NVARCHAR(1000)--传真
+DECLARE @TH_006 NVARCHAR(1000)--开户银行
+DECLARE @TH_007 NVARCHAR(1000)--账号
+DECLARE @TH_008 NVARCHAR(1000)--税号
+
+--100302 珠海派诺
+--100303 珠海兴诺
+--100305 武汉派诺
+--438223 广东碳索
+--438224 香港派诺
+--533896 华夏云联
+
+SELECT top 1
+@VPAYMENTMETHOD = A.F_VPAYMENTMETHOD,
+@FDELIVERYCONDITIONS = (CASE WHEN A.F_DELIVERYCONDITIONS = '' THEN ''
+ELSE SUBSTRING(A.F_DELIVERYCONDITIONS, CHARINDEX(',',A.F_DELIVERYCONDITIONS) + 1, LEN(A.F_DELIVERYCONDITIONS)) END),
+@CreatedPhone = P.FPhone,
+
+@TH_001 =(CASE WHEN A.FSALEORGID=100302 THEN '珠海派诺科技股份有限公司'
+WHEN A.FSALEORGID=100303 THEN ''
+WHEN A.FSALEORGID=100305 THEN '武汉派诺科技发展有限公司'
+WHEN A.FSALEORGID=438223 THEN ''
+WHEN A.FSALEORGID=438224 THEN ''
+WHEN A.FSALEORGID=533896 THEN ''
+ELSE '' END),
+
+@TH_002 =(CASE WHEN A.FSALEORGID=100302 THEN '珠海市唐家高新区创新海岸科技六路15号'
+WHEN A.FSALEORGID=100303 THEN ''
+WHEN A.FSALEORGID=100305 THEN '武汉经济技术开发区川江池二路28号4号楼A501'
+WHEN A.FSALEORGID=438223 THEN ''
+WHEN A.FSALEORGID=438224 THEN ''
+WHEN A.FSALEORGID=533896 THEN ''
+ELSE '' END),
+
+@TH_003 =(CASE WHEN A.FSALEORGID=100302 THEN '李健'
+WHEN A.FSALEORGID=100303 THEN ''
+WHEN A.FSALEORGID=100305 THEN ''
+WHEN A.FSALEORGID=438223 THEN ''
+WHEN A.FSALEORGID=438224 THEN ''
+WHEN A.FSALEORGID=533896 THEN ''
+ELSE '' END),
+
+@TH_004 =(CASE WHEN A.FSALEORGID=100302 THEN '0756-3629690' --电话
+WHEN A.FSALEORGID=100303 THEN ''
+WHEN A.FSALEORGID=100305 THEN '027-87508171'
+WHEN A.FSALEORGID=438223 THEN ''
+WHEN A.FSALEORGID=438224 THEN ''
+WHEN A.FSALEORGID=533896 THEN ''
+ELSE '' END),
+
+@TH_005 =(CASE WHEN A.FSALEORGID=100302 THEN '0756-3629670' --传真
+WHEN A.FSALEORGID=100303 THEN ''
+WHEN A.FSALEORGID=100305 THEN ''
+WHEN A.FSALEORGID=438223 THEN ''
+WHEN A.FSALEORGID=438224 THEN ''
+WHEN A.FSALEORGID=533896 THEN ''
+ELSE '' END),
+
+@TH_006 =(CASE WHEN A.FSALEORGID=100302 THEN '工商银行珠海分行营业部'
+WHEN A.FSALEORGID=100303 THEN ''
+WHEN A.FSALEORGID=100305 THEN '招商银行股份有限公司武汉经济技术开发区支行'
+WHEN A.FSALEORGID=438223 THEN ''
+WHEN A.FSALEORGID=438224 THEN ''
+WHEN A.FSALEORGID=533896 THEN ''
+ELSE '' END),
+
+@TH_007 =(CASE WHEN A.FSALEORGID=100302 THEN '2002 0207 19100 0780 51' --账号
+WHEN A.FSALEORGID=100303 THEN ''
+WHEN A.FSALEORGID=100305 THEN '1279 1590 4410 401'
+WHEN A.FSALEORGID=438223 THEN ''
+WHEN A.FSALEORGID=438224 THEN ''
+WHEN A.FSALEORGID=533896 THEN ''
+ELSE '' END),
+
+@TH_008 =(CASE WHEN A.FSALEORGID=100302 THEN '91321191588407302A' --税号
+WHEN A.FSALEORGID=100303 THEN ''
+WHEN A.FSALEORGID=100305 THEN '91420100MA4F4JX60A'
+WHEN A.FSALEORGID=438223 THEN ''
+WHEN A.FSALEORGID=438224 THEN ''
+WHEN A.FSALEORGID=533896 THEN ''
+ELSE '' END),
+
+@SX01 = A.F_VRYF_Text_ne11,
+@SX02 = A.F_VRYF_Text_6oq,
+@SX03 = A.F_VRYF_Text_pzg,
+@SX04 = A.F_VRYF_Text_795,
+@SX05 = A.F_VRYF_Remarks_43c,
+@SX06 = A.F_VRYF_Remarks_43c_s58,
+@SX07 = A.F_VRYF_Remarks_43c_9uj,
+@SX08 = A.F_VRYF_Remarks_43c_bgx,
+@HFPaymentMethod = A.F_PaymentMethod+',',
+@FStartDate=F_TGKSRQ,
+@FEndDate =F_TGJSRQ,
+@FNOTE = A.FNOTE,
+@FAddress=F_VRYF_Text_fg2,
+@FJHAddress =F_Shippingaddress,
+@FContractNo= F_contractnumber,
+@FTaxAmount=FORMAT(b.FBillAllAmount, 'N2') ,
+@FDate=convert(nvarchar(10), A.FDATE ,23),
+@FDateYear=Year(A.FDATE),--年
+@FDateMonth=Month(A.FDATE),--月
+@FDateDay=DAY(A.FDATE),--日
+@FCustName=isnull(C.FNAME,''),
+@FItem=isnull(D.FNAME,''),
+@FAddressAndPhone=CONCAT( e.FADDRESS,' ',FLinkMan,' ',FLinkPhone),
+@FlegalRepresentative=isnull(e.FLegalPerson,''),
+@FBank=isnull(L.FINVOICEBANKNAME,''),
+@FBankAccount=isnull(L.FINVOICEBANKACCOUNT,''),
+@FTax=isnull(e.FTAXREGISTERCODE,''),
+@FFax=isnull(e.FFAX,''),
+@FTaxAmountText=dbo.ConvertAmountToChineseWords(b.FBillAllAmount),
+@FEMAIL=isnull(g.FEMAIL,''),
+@FProductionCycle= F_SCZQ,
+@FProductionCycle2 =F_Deliverymethod,
+@FPaymentMethod =ISNULL(N.FNAME+',',''),
+@FCustAddress=e.FADDRESS,
+@FContract=H.FNAME,
+@FitemName =H.FNAME,
+@FContractFPhone = g.FTEL,
+@FPhone = e.FTEL,
+@FitemName= I.FNAME,
+@FItemData = A.F_VRYF_Text_fg2,
+@FJHAddressFContractPhone = F_Shippingaddress,
+@FAProjectManager = a.F_ProjectManager ,
+@FAProjectPhone = a.F_Contactnumber ,
+@FBProjectManager = a.F_VRYF_TEXT_UKY ,
+@FBProjectPhone = a.F_VRYF__Contactnumber_dvn ,
+@FDeliveryTime=F_FHSJ,
+@FProjectDeadline = F_ProjectDeadli ,
+@FPeriod = J.FDATAVALUE ,
+@FWarrantyPeriod = J.FDATAVALUE,
+@FMONTH = FLOOR(A.F_MONTH),
+@FMONTHYear = FLOOR(A.F_MONTH/12),
+@FSaleId = K.FNAME,
+@FSALEORGID = Q.FNAME,
+@Projectarea = (CASE WHEN O.F_PROJECTFIELD = 1 THEN '建筑楼宇'
+WHEN O.F_PROJECTFIELD = 2 THEN '医疗卫生'
+WHEN O.F_PROJECTFIELD = 3 THEN '学校'
+WHEN O.F_PROJECTFIELD = 4 THEN '文娱康乐'
+WHEN O.F_PROJECTFIELD = 5 THEN '市政工程'
+WHEN O.F_PROJECTFIELD = 6 THEN '能源'
+WHEN O.F_PROJECTFIELD = 7 THEN '工业'
+WHEN O.F_PROJECTFIELD = 8 THEN '交通运输'
+END ),
+@Province = O.F_Province,
+@FINFORMATION = A.F_INFORMATION,
+@CreatedName = P.FNAME,
+@GPhone = P.F_GPhone,
+@THDate = A.F_THDate,
+@SJFP = A.F_SJFP
+
+FROM T_SAL_ORDER A
+INNER JOIN T_SAL_ORDERFIN B ON A.FID = B.FID
+--INNER JOIN T_SAL_ORDERENTRY BB ON A.FID = BB.FID
+LEFT JOIN T_BD_CUSTOMER_L C ON C.FCUSTID =A.FCUSTID AND C.FLOCALEID =2052
+LEFT JOIN T_BD_CUSTOMER E ON E.FCUSTID =A.FCUSTID
+LEFT JOIN T_BAS_PREBDONE_L D ON D.FID = A.F_projectname AND D.FLocaleID =2052
+LEFT JOIN T_BD_CUSTBANK F ON F.FCUSTID = E.FCUSTID
+LEFT JOIN T_BD_CUSTOMER_F L ON L.FCUSTID = E.FCUSTID
+LEFT JOIN T_BD_COMMONCONTACT g on g.FCOMPANY = e.FCUSTID and g.FISDEFAULTCONTACT =1
+LEFT JOIN T_BD_COMMONCONTACT_L H on H.FCONTACTID =G.FCONTACTID AND H.FLOCALEID =2052
+LEFT JOIN T_BAS_PREBDONE_L I ON I.FID = A.F_projectname
+LEFT JOIN V_ASSISTANTDATA J ON J.FENTRYID=A.F_ZBQ
+left join V_BD_SALESMAN_L K ON K.FID = A.FSALERID
+LEFT JOIN T_SAL_ORDERPLAN M ON M.FID =A.FID AND M.FSEQ = 1
+LEFT JOIN T_BD_RecCondition_L N on N.FID = M.F_RecConditionId
+LEFT JOIN T_BAS_PREBDTHREE O on O.FID = A.F_BON
+LEFT JOIN T_SEC_USER P on A.FCreatorId = P.FUSERID
+LEFT JOIN T_ORG_ORGANIZATIONS_L Q on Q.FORGID = A.FSALEORGID
+--LEFT JOIN (Select B.FDATE,A.FENTRYID From T_SAL_ORDERENTRY_LK A
+--JOIN T_SAL_ORDER B on A.FSBILLID = B.FID) P on P.FENTRYID = BB.FENTRYID
+WHERE A.FID =@FID;
+--2025/01/09 改动 --↓
+SELECT top 1
+@YFitemName = F_CONTRACTNUMBER,
+@YFDate = convert(nvarchar(10), FDATE ,23),
+@YFDateYear=Year(FDATE),--年
+@YFDateMonth=Month(FDATE),--月
+@YFDateDay=DAY(FDATE)--日
+From T_SAL_ORDER Where FID =
+(SELECT top 1 FSBILLID From
+T_SAL_ORDERENTRY A
+JOIN T_SAL_ORDERENTRY_LK B
+on A.FENTRYID = B.FENTRYID
+Where A.FID = @FID AND B.FSTABLENAME = 'T_SAL_ORDERENTRY')
+--2025/01/09 改动 --↑
+
+--2025/01/12 改动 --↓
+SELECT top 1
+@SYFitemName = F_CONTRACTNUMBER,
+@SYFDate = convert(nvarchar(10), FDATE ,23),
+@SYFDateYear=Year(FDATE),--年
+@SYFDateMonth=Month(FDATE),--月
+@SYFDateDay=DAY(FDATE)--日
+From T_SAL_ORDER Where F_CONTRACTNUMBER =
+(Select top 1 F_ZHTH From T_SAL_ORDER Where FID = @FID)
+--2025/01/12 改动 --↑
+
+;with t as(
+SELECT A.FID,
+CONCAT(RANK()OVER(PARTITION BY A.FID ORDER BY A.FSEQ) ,'、',B.FDESCRIPTION,' ',CAST( a.F_day AS REAL),'天',' ',
+CAST( A.FRECADVANCERATE AS REAL),'%') AS '付款条件'
+FROM T_SAL_ORDERPLAN A
+INNER JOIN T_SAL_ORDER C ON C.FID = A.FID
+INNER JOIN T_BD_RecCondition_L b on a.F_RecConditionId = b.fid
+WHERE a.fid =@fid
+)
+,
+H AS(
+SELECT FID, -- 分组的主键
+STUFF(
+(
+SELECT ','+ CONVERT(NVARCHAR(100), 付款条件,120) -- 要拼接的列
+FROM t a WHERE b.FID = a.FID FOR XML PATH('')
+),1 ,1, '') 付款条件
+FROM t b
+GROUP BY FID
+)
+SELECT @FSettleMethod =付款条件 FROM H
+ --@VPAYMENTMETHOD
+
+select 'TH_001' as 'Key' ,isnull(@TH_001,'') as 'VALUE'
+union all
+select 'TH_002' as 'Key' ,isnull(@TH_002,'') as 'VALUE'
+union all
+select 'TH_003' as 'Key' ,isnull(@TH_003,'') as 'VALUE'
+union all
+select 'TH_004' as 'Key' ,isnull(@TH_004,'') as 'VALUE'
+union all
+select 'TH_005' as 'Key' ,isnull(@TH_005,'') as 'VALUE'
+union all
+select 'TH_006' as 'Key' ,isnull(@TH_006,'') as 'VALUE'
+union all
+select 'TH_007' as 'Key' ,isnull(@TH_007,'') as 'VALUE'
+union all
+select 'TH_008' as 'Key' ,isnull(@TH_008,'') as 'VALUE'
+union all
+select 'F_VRYF_Text_ne11' as 'Key' ,isnull(@SX01,'') as 'VALUE'
+union all
+select 'F_VRYF_Text_ne11' as 'Key' ,isnull(@SX01,'') as 'VALUE'
+union all
+select 'F_VRYF_Text_6oq' as 'Key' ,isnull(@SX02,'') as 'VALUE'
+union all
+select 'F_VRYF_Text_pzg' as 'Key' ,isnull(@SX03,'') as 'VALUE'
+union all
+select 'F_VRYF_Text_795' as 'Key' ,isnull(@SX04,'') as 'VALUE'
+union all
+select 'F_VRYF_Remarks_43c' as 'Key' ,isnull(@SX05,'') as 'VALUE'
+union all
+select 'F_VRYF_Remarks_43c_s58' as 'Key' ,isnull(@SX06,'') as 'VALUE'
+union all
+select 'F_VRYF_Remarks_43c_9uj' as 'Key' ,isnull(@SX07,'') as 'VALUE'
+union all
+select 'F_VRYF_Remarks_43c_bgx' as 'Key' ,isnull(@SX08,'') as 'VALUE'
+union all
+select 'FSaleId' as 'Key' ,isnull(@FSaleId,'') as 'VALUE'
+union all
+select 'FSALEORGID' as 'Key' ,isnull(@FSALEORGID,'') as 'VALUE'
+union all
+select 'SJFP' as 'Key' ,isnull(@SJFP,'') as 'VALUE'
+union all
+select 'THDate' as 'Key' ,isnull(@THDate,'') as 'VALUE'
+union all
+select 'GPhone' as 'Key' ,isnull(@GPhone,'') as 'VALUE'
+union all
+select 'FNOTE' as 'Key' ,@FNOTE as 'VALUE'
+union all
+select 'YFContractNo' as 'Key' ,@YFitemName as 'VALUE'
+union all
+select 'YFDate' as 'Key' ,isnull(@YFDate,'') as 'VALUE'
+union all
+select 'YFDateYear' as 'Key' ,isnull(@YFDateYear,'') as 'VALUE'
+union all
+select 'YFDateMonth' as 'Key' ,isnull(@YFDateMonth,'') as 'VALUE'
+union all
+select 'YFDateDay' as 'Key' ,isnull(@YFDateDay,'') as 'VALUE'
+union all
+select 'SYFContractNo' as 'Key' ,@SYFitemName as 'VALUE'
+union all
+select 'SYFDate' as 'Key' ,isnull(@SYFDate,'') as 'VALUE'
+union all
+select 'SYFDateYear' as 'Key' ,isnull(@SYFDateYear,'') as 'VALUE'
+union all
+select 'SYFDateMonth' as 'Key' ,isnull(@SYFDateMonth,'') as 'VALUE'
+union all
+select 'SYFDateDay' as 'Key' ,isnull(@SYFDateDay,'') as 'VALUE'
+union all
+select 'Province' as 'Key' ,Isnull(@Province,'') as 'VALUE'
+union all
+select 'VPAYMENTMETHOD' as 'Key' ,Isnull(@VPAYMENTMETHOD,'') as 'VALUE'
+union all
+select 'Projectarea' as 'Key' ,Isnull(@Projectarea,'') as 'VALUE'
+union all
+select 'FMONTH' as 'Key' ,@FMONTH as 'VALUE'
+union all
+select 'FStartDate' as 'Key' ,isnull(@FStartDate,'') as 'VALUE'
+union all
+select 'FEndDate' as 'Key' ,isnull(@FEndDate,'') as 'VALUE'
+union all
+select 'FAddress' as 'Key' ,isnull(@FAddress,'') as 'VALUE'
+union all
+select 'FWarrantyPeriod' as 'Key' ,isnull(@FWarrantyPeriod,'') as 'VALUE'
+union all
+select 'HFPaymentMethod' as 'Key' ,@HFPaymentMethod as 'VALUE'
+union all
+select 'FDELIVERYCONDITIONS' as 'Key' ,@FDELIVERYCONDITIONS as 'VALUE'
+union all
+select 'CreatedName' as 'Key' ,@CreatedName as 'VALUE'
+union all
+select 'CreatedPhone' as 'Key',@CreatedPhone as 'VALUE'
+union all
+select 'FINFORMATION' as 'Key' ,Isnull(@FINFORMATION,'') as 'VALUE'
+union all
+select 'FMONTHYear' as 'Key' ,Isnull(@FMONTHYear,'') as 'VALUE'
+union all
+select 'FJHAddress' as 'Key' ,isnull(@FJHAddress,'') as 'VALUE'
+union all
+select 'FPeriod' as 'Key' ,isnull(@FPeriod,'') as 'VALUE'
+union all
+select 'FItemName' as 'Key' ,isnull(@FitemName,'') as 'VALUE'
+UNION ALL
+select 'FSettleMethod' as 'Key' ,isnull(@FSettleMethod,'') as 'VALUE'
+UNION ALL
+select 'FProjectDeadline' as 'Key' ,@FProjectDeadline as 'VALUE'
+UNION ALL
+select 'FDeliveryTime' as 'Key' ,@FDeliveryTime as 'VALUE'
+UNION ALL
+select 'FAProjectManager' as 'Key' ,@FAProjectManager as 'VALUE'
+UNION ALL
+select 'FAProjectPhone' as 'Key' ,@FAProjectPhone as 'VALUE'
+UNION ALL
+select 'FBProjectManager' as 'Key' ,@FBProjectManager as 'VALUE'
+UNION ALL
+select 'FBProjectPhone' as 'Key' ,@FBProjectPhone as 'VALUE'
+UNION ALL
+select 'FJHAddressFContractPhone' as 'Key' ,@FJHAddressFContractPhone as 'VALUE'
+UNION ALL
+select 'FItemData' as 'Key' ,@FItemData as 'VALUE'
+UNION ALL
+select 'FitemName' as 'Key' ,@FitemName as 'VALUE'
+UNION ALL
+select 'FFax' as 'Key' ,@FFax as 'VALUE'
+UNION ALL
+select 'FContractPhone' as 'Key' ,@FContractFPhone as 'VALUE'
+UNION ALL
+select 'FContract' as 'Key' ,@FContract as 'VALUE'
+UNION ALL
+select 'FCustAddress' as 'Key' ,@FCustAddress as 'VALUE'
+UNION ALL
+select 'FPaymentMethod' as 'Key' ,@FPaymentMethod as 'VALUE'
+UNION ALL
+select 'FProductionCycle2' as 'Key' ,@FProductionCycle2 as 'VALUE'
+UNION ALL
+select 'FProductionCycle' as 'Key' ,@FProductionCycle as 'VALUE'
+UNION ALL
+select 'FContractNo' as 'Key' ,@FContractNo as 'VALUE'
+UNION ALL
+select 'FCustName' as 'Key' ,@FCustName as 'VALUE'
+UNION ALL
+select 'FDate' as 'Key' ,@FDate as 'VALUE'
+UNION ALL
+select 'FDateYear' as 'Key' ,@FDateYear as 'VALUE'
+UNION ALL
+select 'FDateMonth' as 'Key' ,@FDateMonth as 'VALUE'
+UNION ALL
+select 'FDateDay' as 'Key' ,@FDateDay as 'VALUE'
+UNION ALL
+select 'FTaxAmountText' as 'Key' ,@FTaxAmountText as 'VALUE'
+UNION ALL
+select 'FTaxAmount' as 'Key' ,@FTaxAmount as 'VALUE'
+UNION ALL
+select 'FItem' as 'Key' ,@FItem as 'VALUE'
+UNION ALL
+select 'FAddressAndPhone' as '@FAddressAndPhone' ,@FCustName as 'VALUE'
+UNION ALL
+select 'FDeliveryDate' as 'Key' ,@FDeliveryDate as 'VALUE'
+UNION ALL
+select 'FlegalRepresentative' as 'Key' ,@FlegalRepresentative as 'VALUE'
+UNION ALL
+select 'FBank' as 'Key' ,@FBank as 'VALUE'
+UNION ALL
+select 'FBankAccount' as 'Key' ,@FBankAccount as 'VALUE'
+UNION ALL
+select 'FTax' as 'Key' ,@FTax as 'VALUE'
+UNION ALL
+select 'FPhone' as 'Key' ,@FPhone as 'VALUE'
+UNION ALL
+select 'FEmial' as 'Key' ,@FEMAIL as 'VALUE'
+UNION ALL
+select 'FEMAIL' as 'Key' ,@FEMAIL as 'VALUE'
+
+
+SELECT fseq,B.fname,b.FSPECIFICATION,C.FNAME,FLOOR(A.FQTY),
+FORMAT(ROUND( D.FTAXPRICE,2), 'N2'), FORMAT(D.FALLAMOUNT_LC, 'N2')
+,A.FNOTE
+FROM T_SAL_ORDERENTRY A
+INNER JOIN T_BD_MATERIAL_L B ON B.FMATERIALID = A.FMATERIALID AND B.FLOCALEID =2052
+INNER JOIN T_BD_UNIT_L C ON C.FUNITID =A.FUNITID AND C.FLOCALEID =2052
+INNER JOIN T_SAL_ORDERENTRY_F D ON D.FENTRYID =A.FENTRYID
+WHERE A.FID =@FID AND A.FMRPCLOSESTATUS = 'A'
+
+SELECT rank()over(partition by a.fid ,a.F_Projecttype order by a.fseq desc) as 'fseq',B.fname,b.FSPECIFICATION,E.F_103,FLOOR(A.FQTY),C.FNAME,
+FORMAT(ROUND( D.FTAXPRICE,2), 'N2'), FORMAT(D.FALLAMOUNT_LC, 'N2')
+,A.FNOTE,F_Projecttype as 'FType',
+FORMAT(ROUND( SUM(D.FALLAMOUNT_LC)OVER(PARTITION BY A.FID ),2),'N2') AS 'FALLAMOUNT',
+FORMAT(ROUND( SUM(D.FALLAMOUNT_LC)OVER(PARTITION BY A.FID,F_Projecttype) ,2), 'N2') AS 'FALLAMOUNT2'
+FROM T_SAL_ORDERENTRY A
+INNER JOIN T_BD_MATERIAL_L B ON B.FMATERIALID = A.FMATERIALID AND B.FLOCALEID =2052
+INNER JOIN T_BD_MATERIAL E ON E.FMATERIALID = A.FMATERIALID
+INNER JOIN T_BD_UNIT_L C ON C.FUNITID =A.FUNITID AND C.FLOCALEID =2052
+INNER JOIN T_SAL_ORDERENTRY_F D ON D.FENTRYID =A.FENTRYID
+WHERE A.FID =@FID AND A.FMRPCLOSESTATUS = 'A'
+ORDER BY a.F_Projecttype ,a.fseq DESC
+
+Select ROW_NUMBER() OVER (ORDER BY B.FRETURNTYPE) AS ID,CASE WHEN B.FRETURNTYPE = 'SEND' THEN '换货' ELSE '退货' END as 'FRETURNTYPE'
+,C.FSPECIFICATION,D.FNAME,FLOOR(B.FQTY),FORMAT(E.FTAXPRICE,'N2'),FORMAT(E.FALLAMOUNT_LC,'N2') From T_SAL_ORDER A JOIN T_SAL_ORDERENTRY B
+on A.FID = B.FID INNER JOIN T_BD_MATERIAL_L C ON C.FMATERIALID = B.FMATERIALID AND C.FLOCALEID =2052 INNER JOIN T_BD_UNIT_L D ON D.FUNITID =B.FUNITID
+AND D.FLOCALEID =2052 INNER JOIN T_SAL_ORDERENTRY_F E ON E.FENTRYID =B.FENTRYID Where --A.FID = @FID AND B.FMRPCLOSESTATUS = 'A'
+(ISNULL(A.FCHANGEDATE,'') = '' AND A.FID = @FID) or (A.FID = @FID AND B.FMRPCLOSESTATUS = 'A')
+
+SELECT fseq,b.FSPECIFICATION,C.FNAME,FLOOR(A.FQTY),
+FORMAT(ROUND( D.FTAXPRICE,2), 'N2'), FORMAT(D.FALLAMOUNT_LC, 'N2')
+FROM T_SAL_ORDERENTRY A
+INNER JOIN T_BD_MATERIAL_L B ON B.FMATERIALID = A.FMATERIALID AND B.FLOCALEID =2052
+INNER JOIN T_BD_UNIT_L C ON C.FUNITID =A.FUNITID AND C.FLOCALEID =2052
+INNER JOIN T_SAL_ORDERENTRY_F D ON D.FENTRYID =A.FENTRYID
+WHERE A.FID =@FID AND A.FMRPCLOSESTATUS = 'A'
+
+--EXEC GetTempModelData @FID = 101521,@FType = 'HH'
+--Select * From T_TempModelPath
+--Update T_TempModelPath set FTempPath = 'D:\模板\SX系统模板.docx' Where FKeyId = 'SX'
+--Update T_SAL_ORDER set FDocumentStatus = 'D' Where FBILLNO = 'PL-XSDD20250100011'
+--Select * From V_BD_SALESMAN_L Where FNAME = '杜丽菊'
+
+Select * From T_SAL_QUOTATION Where FBILLNO = ''
\ No newline at end of file
diff --git a/Pilot_KD_Parino.sln b/Pilot_KD_Parino.sln
new file mode 100644
index 0000000..dc786f7
--- /dev/null
+++ b/Pilot_KD_Parino.sln
@@ -0,0 +1,25 @@
+锘
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.11.35327.3
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Pilot_KD_Parino", "Pilot_KD_Parino\Pilot_KD_Parino.csproj", "{D8751053-74AF-4619-A5BE-939ADFF10991}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {D8751053-74AF-4619-A5BE-939ADFF10991}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {D8751053-74AF-4619-A5BE-939ADFF10991}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {D8751053-74AF-4619-A5BE-939ADFF10991}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {D8751053-74AF-4619-A5BE-939ADFF10991}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {2FBF6E92-7A31-4F97-92E5-06708A39F5AD}
+ EndGlobalSection
+EndGlobal
diff --git a/Pilot_KD_Parino/Common/CombinaAddClass1.cs b/Pilot_KD_Parino/Common/CombinaAddClass1.cs
new file mode 100644
index 0000000..6e8da0d
--- /dev/null
+++ b/Pilot_KD_Parino/Common/CombinaAddClass1.cs
@@ -0,0 +1,93 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Pilot_KD_Parino.Common
+{
+ ///
+ /// 瀛樺偍閿鍞鍗/搴旀敹鍗
+ ///
+ public class CombinaAddClass1
+ {
+ ///
+ /// 绾歌川鍚堝悓鍙
+ ///
+ public string FCONTRACTNUMBER { get; set; }
+ ///
+ /// 瀹㈡埛鍚嶇О
+ ///
+ public int FClient { get; set; }
+ ///
+ /// 鍟嗗姟浜哄憳
+ ///
+ public int FCreated { get; set; }
+ ///
+ /// 閿鍞憳
+ ///
+ public int FSalesman { get; set; }
+ ///
+ /// 閿鍞棩鏈
+ ///
+ public string FDate { get; set; }
+ ///
+ /// 鏍搁攢閲戦
+ ///
+ public decimal FALLAMOUNT { get; set; }
+ ///
+ /// 鍗曟嵁缂栧彿
+ ///
+ public string FBIllNO { get; set; }
+ ///
+ /// 绫诲瀷
+ ///
+ public string FType { get; set; }
+ ///
+ /// 鏀舵鍗曞垪琛
+ ///
+ public List SKList { get; set; } = new List();
+ }
+ ///
+ /// 瀛樺偍鏀舵鍗
+ ///
+ public class CombinaAddSK
+ {
+ ///
+ /// 绾歌川鍚堝悓鍙
+ ///
+ public string FCONTRACTNUMBER { get; set; }
+ ///
+ /// 瀹㈡埛鍚嶇О
+ ///
+ public int FClient { get; set; }
+ ///
+ /// 鍟嗗姟浜哄憳
+ ///
+ public int FCreated { get; set; }
+ ///
+ /// 閿鍞憳
+ ///
+ public int FSalesman { get; set; }
+ ///
+ /// 鏀舵鏃ユ湡
+ ///
+ public string FDate { get; set; }
+ ///
+ /// 鏍搁攢閲戦
+ ///
+ public decimal FALLAMOUNT { get; set; }
+ ///
+ /// 鏀舵鍗曞彿
+ ///
+ public string FBIllNO { get; set; }
+ ///
+ /// 澶囨敞
+ ///
+ public string FRemark { get; set; }
+ ///
+ /// 閿鍞鍗/搴旀敹鍗曞垪琛
+ ///
+ public List XSAPList { get; set; } = new List();
+ }
+}
diff --git a/Pilot_KD_Parino/Common/CombinaClass.cs b/Pilot_KD_Parino/Common/CombinaClass.cs
new file mode 100644
index 0000000..e07684d
--- /dev/null
+++ b/Pilot_KD_Parino/Common/CombinaClass.cs
@@ -0,0 +1,171 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Pilot_KD_Parino.Common
+{
+ public class DataItem
+ {
+ ///
+ /// 鍗曟嵁缂栧彿
+ ///
+ public List FBIllNO2 { get; set; }
+
+ ///
+ /// 绾歌川鍚堝悓鍙
+ ///
+ public string FCONTRACTNUMBER2 { get; set; }
+
+ ///
+ /// 瀹㈡埛鍚嶇О
+ ///
+ public List FClient2 { get; set; }
+
+ ///
+ /// 瀹㈡埛鍚嶇О
+ ///
+ public int FClient { get; set; }
+
+ ///
+ /// 椤圭洰鍚嶇О
+ ///
+ public int FProject2 { get; set; }
+
+ ///
+ /// 鍒跺崟浜
+ ///
+ public int FCreated2 { get; set; }
+
+ ///
+ /// 澶囨敞
+ ///
+ public string FRemark2 { get; set; }
+
+ ///
+ /// 鍗曟嵁缂栧彿
+ ///
+ public List FBIllNO { get; set; }
+
+ ///
+ /// 鏃ユ湡
+ ///
+ public string FDate { get; set; }
+
+ ///
+ /// 閲戦
+ ///
+ public double FALLAMOUNT { get; set; }
+
+ ///
+ /// 甯佸埆
+ ///
+ public int FCurr2 { get; set; }
+
+ ///
+ /// 閲戦锛堝師甯侊級
+ ///
+ public double FALLAMOUNTY2 { get; set; }
+ }
+ public class CombinaClass
+ {
+ ///
+ /// 琛屽彿
+ ///
+ public int FRow { get; set; }
+ ///
+ /// 琛岀骇
+ ///
+ public int F_RowNew { get; set; }
+ ///
+ /// 绾歌川鍚堝悓鍙
+ ///
+ public string FCONTRACTNUMBER { get; set; }
+
+ ///
+ /// 瀹㈡埛鍚嶇О
+ ///
+ public int FClient { get; set; }
+
+ ///
+ /// 椤圭洰鍚嶇О
+ ///
+ public int FProject { get; set; }
+
+ ///
+ /// 鍒跺崟浜
+ ///
+ public int FCreated { get; set; }
+
+ ///
+ /// 甯佸埆
+ ///
+ public int FCurr { get; set; }
+
+ ///
+ /// 鍗曟嵁缂栧彿
+ ///
+ public string FBIllNO { get; set; }
+
+ ///
+ /// 鍗曟嵁缂栧彿(鏀舵鍗)
+ ///
+ public string FSKBIllNO { get; set; }
+
+ ///
+ /// 鏃ユ湡
+ ///
+ public string FDate { get; set; }
+
+ ///
+ /// 鏄惁鏍搁攢閰嶅
+ ///
+ public string FISHX { get; set; }
+
+ ///
+ /// 閲戦
+ ///
+ public double FALLAMOUNT { get; set; }
+
+ ///
+ /// 宸叉牳閿閲戦
+ ///
+ public double FYAMOUNT { get; set; }
+
+ ///
+ /// 寰呮牳閿閲戦
+ ///
+ public double FDAMOUNT { get; set; }
+
+ ///
+ /// 閲戦锛堝師甯侊級
+ ///
+ public double FALLAMOUNTY { get; set; }
+
+ ///
+ /// 鏄惁瓒呰繃30澶
+ ///
+ public bool FIs30 { get; set; }
+
+ ///
+ /// 绫诲瀷
+ ///
+ public string FType { get; set; }
+
+ ///
+ /// 澶囨敞
+ ///
+ public string FRemark { get; set; }
+
+ ///
+ /// 鏄惁鍞竴
+ ///
+ public string FWeiYi { get; set; }
+
+ ///
+ /// 閿鍞憳
+ ///
+ public int FSalesman { get; set; }
+ }
+}
diff --git a/Pilot_KD_Parino/Common/CombinationGenerator.cs b/Pilot_KD_Parino/Common/CombinationGenerator.cs
new file mode 100644
index 0000000..9ecf398
--- /dev/null
+++ b/Pilot_KD_Parino/Common/CombinationGenerator.cs
@@ -0,0 +1,192 @@
+锘縰sing Kingdee.BOS.Util;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Pilot_KD_Parino.Common
+{
+ public class CombinationGenerator
+ {
+
+
+ public static List DeleteCombinationsDataByList(List List, List FBILLNO)
+ {
+ foreach (var item in FBILLNO)
+ {
+ List.RemoveAll(t => t.FBIllNO.Contains(item));
+ }
+ return List;
+ }
+
+
+
+ public static List GetCombinationsDataByList(List List, double FAllAmount, int FClient)
+ {
+ return List.Where(t => t.FALLAMOUNT == FAllAmount && t.FClient2.Contains(FClient)).ToList();
+ }
+
+ public static List GetCombinationsDataByListTK(List List, double FAllAmount, int FClient)
+ {
+ var TestList = List.Where(t => t.FALLAMOUNT == FAllAmount && t.FClient2.Contains(FClient)).ToList();
+ foreach (var item in TestList)
+ {
+ var fbnumber = item.FBIllNO;
+ item.FBIllNO2 = fbnumber;
+ item.FBIllNO = new List();
+ }
+ return TestList;
+ }
+
+ public static List GetCombinationsDataByList2(List List, double FAllAmount,int FClient)
+ {
+ return List.Where(t => t.FALLAMOUNT == FAllAmount && t.FBIllNO.Count == 1 && t.FClient2[0].Equals(FClient)).ToList();
+ }
+
+
+ ///
+ /// 璁$畻鍙栧
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static void GetCombinations(List List, int index, List FBILLNOLIST, List FClient, ref List result, double FAllAmount)
+ {
+ var FBILLNOLIST2 = new List(FBILLNOLIST);
+ var FClient2 = new List(FClient);
+ var item = List.GroupBy(a => a.FClient).ToList();
+
+ for (int i = index; i < List.Count; i++)
+ {
+ FBILLNOLIST2.Add(List[i].FBIllNO);
+ FClient2.Add(List[i].FClient);
+ DataItem DataItem = new DataItem();
+ DataItem.FBIllNO = new List(FBILLNOLIST2);
+ DataItem.FClient2 = new List(FClient2);
+ DataItem.FALLAMOUNT = FAllAmount + List[i].FALLAMOUNT;
+ result.Add(DataItem);
+ if (i < 9)
+ {
+ GetCombinations(List, i + 1, FBILLNOLIST2, FClient2, ref result, FAllAmount + List[i].FALLAMOUNT);
+ }
+ FBILLNOLIST2 = new List(FBILLNOLIST);
+ }
+ }
+
+ ///
+ /// 璁$畻鍙栧
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static void GetCombinations2(List List, int index, List FBILLNOLIST, List FClient, ref List result, double FAllAmount)
+ {
+ var FBILLNOLIST2 = new List(FBILLNOLIST);
+ var FClient2 = new List(FClient);
+ var item = List.GroupBy(a => a.FClient).ToList();
+
+ for (int i = index; i < List.Count; i++)
+ {
+ FBILLNOLIST2.Add(List[i].FBIllNO);
+ FClient2.Add(List[i].FClient);
+ DataItem DataItem = new DataItem();
+ DataItem.FBIllNO = new List(FBILLNOLIST2);
+ DataItem.FClient2 = new List(FClient2);
+ DataItem.FALLAMOUNT = FAllAmount + List[i].FDAMOUNT;
+ result.Add(DataItem);
+ if (i < 10)
+ {
+ GetCombinations2(List, i + 1, FBILLNOLIST2, FClient2, ref result, FAllAmount + List[i].FDAMOUNT);
+ }
+ FBILLNOLIST2 = new List(FBILLNOLIST);
+ }
+ }
+
+
+ public static List> GetCombinations2(T[] array)
+ {
+ List FAllmount = new List();
+ List FDaySum = new List();
+ List> result = new List>();
+ Combine2(array, 0, new List(), FAllmount, FDaySum, ref result);
+ return result;
+ }
+
+ static void Combine2(T[] array, int index, List combination, List FAllmount, List FDaySum, ref List> result)
+ {
+ for (int i = index; i < array.Length; i++)
+ {
+
+ combination.Add(array[i]);
+ Combine2(array, i + 1, combination, FAllmount, FDaySum, ref result);
+ combination.RemoveAt(combination.Count - 1); // 鍥炴函
+ }
+ if (combination.Count > 0)
+ {
+ result.Add(new List(combination));
+ }
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+ public static List GetCombinations(List array)
+ {
+ List result = new List();
+ List FIDList = new List();
+ List FEntryList = new List();
+ List FAllmount = new List();
+ List FDaySum = new List();
+ Combine(array, 0, new List(), FIDList, FEntryList, FAllmount, FDaySum, ref result);
+ return result;
+ }
+
+ static void Combine(List array, int index, List combination, List FIDList, List FEntryList,
+ List FAllmount, List FDaySum, ref List result)
+ {
+ for (int i = index; i < array.Count; i++)
+ {
+ FIDList.Add(Convert.ToString(array[i][0]));
+ FEntryList.Add(Convert.ToString(array[i][3]));
+ FAllmount.Add(Convert.ToDouble(array[i][2]));
+ FDaySum.Add(CulDayByDate(Convert.ToDateTime(array[i][1]), DateTime.Now));
+ combination.Add(new string[4] { string.Join("-", FIDList), string.Join("-", FEntryList), "0", "0" });
+ Combine(array, i + 1, combination, FIDList, FEntryList, FAllmount, FDaySum, ref result);
+ //FIDList.RemoveAt(FIDList.Count - 1); // 鍥炴函
+ //FEntryList.RemoveAt(FEntryList.Count - 1); // 鍥炴函
+ //FAllmount.RemoveAt(combination.Count - 1); // 鍥炴函
+ //FDaySum.RemoveAt(FDaySum.Count - 1); // 鍥炴函
+ combination.RemoveAt(combination.Count - 1); // 鍥炴函
+ }
+ //if (FIDList.Count > 0)
+ //{
+ result.Add(new string[4] { string.Join("-", FIDList), string.Join("-", FEntryList), FAllmount.Sum().ToString(), FDaySum.Sum().ToString() });
+ //}
+ }
+ ///
+ /// 璁$畻涓ゆ棩鏈熷ぉ鏁板樊
+ ///
+ ///
+ ///
+ ///
+ public static int CulDayByDate(DateTime date1, DateTime date2)
+ {
+ TimeSpan difference = date2.Subtract(date1);
+ return difference.Days;
+
+ }
+ }
+}
diff --git a/Pilot_KD_Parino/Common/CombinationGenerator_yuyubo.cs b/Pilot_KD_Parino/Common/CombinationGenerator_yuyubo.cs
new file mode 100644
index 0000000..43f4106
--- /dev/null
+++ b/Pilot_KD_Parino/Common/CombinationGenerator_yuyubo.cs
@@ -0,0 +1,246 @@
+锘縰sing Kingdee.BOS.Util;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Pilot_KD_Parino.Common
+{
+ public class CombinationGenerator_yuyubo
+ {
+
+
+ public static List DeleteCombinationsDataByList(List List, List FBILLNO)
+ {
+ foreach (var item in FBILLNO)
+ {
+ List.RemoveAll(t => t.FBIllNO.Contains(item));
+ }
+ return List;
+ }
+
+
+
+ public static List GetCombinationsDataByList(List List, double FAllAmount, int FClient)
+ {
+ return List.Where(t => t.FALLAMOUNT == FAllAmount && t.FClient2.Contains(FClient)).ToList();
+ }
+
+ public static List GetCombinationsDataByListTK(List List, double FAllAmount, int FClient)
+ {
+ var TestList = List.Where(t => t.FALLAMOUNT == FAllAmount && t.FClient2.Contains(FClient)).ToList();
+ foreach (var item in TestList)
+ {
+ var fbnumber = item.FBIllNO;
+ item.FBIllNO2 = fbnumber;
+ item.FBIllNO = new List();
+ }
+ return TestList;
+ }
+
+ public static List GetCombinationsDataByList2(List List, double FAllAmount,int FClient)
+ {
+ return List.Where(t => t.FALLAMOUNT == FAllAmount && t.FBIllNO.Count == 1 && t.FClient2[0].Equals(FClient)).ToList();
+ }
+
+
+ ///
+ /// 璁$畻鍙栧
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static void GetCombinations(List List, int index, List FBILLNOLIST, List FClient, ref List result, double FAllAmount)
+ {
+ var FBILLNOLIST2 = new List(FBILLNOLIST);
+ var FClient2 = new List(FClient);
+ var item = List.GroupBy(a => a.FClient).ToList();
+
+ for (int i = index; i < List.Count; i++)
+ {
+ FBILLNOLIST2.Add(List[i].FBIllNO);
+ FClient2.Add(List[i].FClient);
+ DataItem DataItem = new DataItem();
+ DataItem.FBIllNO = new List(FBILLNOLIST2);
+ DataItem.FClient2 = new List(FClient2);
+ DataItem.FALLAMOUNT = FAllAmount + List[i].FALLAMOUNT;
+ result.Add(DataItem);
+ if (i < 9)
+ {
+ GetCombinations(List, i + 1, FBILLNOLIST2, FClient2, ref result, FAllAmount + List[i].FALLAMOUNT);
+ }
+ FBILLNOLIST2 = new List(FBILLNOLIST);
+ }
+ }
+
+ ///
+ /// 璁$畻鍙栧
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static void GetCombinations2(List List, int index, List FBILLNOLIST, List FClient, ref List result, double FAllAmount)
+ {
+ var FBILLNOLIST2 = new List(FBILLNOLIST);
+ var FClient2 = new List(FClient);
+ //var item = List.GroupBy(a => a.FClient).ToList();
+
+ for (int i = index; i < List.Count; i++)
+ {
+ FBILLNOLIST2.Add(List[i].FBIllNO);
+ FClient2.Add(List[i].FClient);
+ DataItem DataItem = new DataItem();
+ DataItem.FBIllNO = new List(FBILLNOLIST2);
+ DataItem.FClient2 = new List(FClient2);
+ DataItem.FALLAMOUNT = FAllAmount + List[i].FDAMOUNT;
+ result.Add(DataItem);
+ if (i < 10)
+ {
+ GetCombinations2(List, i + 1, FBILLNOLIST2, FClient2, ref result, FAllAmount + List[i].FDAMOUNT);
+ }
+ FBILLNOLIST2 = new List(FBILLNOLIST);
+ }
+ }
+
+
+ public static List> GetCombinations2(T[] array)
+ {
+ List FAllmount = new List();
+ List FDaySum = new List();
+ List> result = new List>();
+ Combine2(array, 0, new List(), FAllmount, FDaySum, ref result);
+ return result;
+ }
+
+ static void Combine2(T[] array, int index, List combination, List FAllmount, List FDaySum, ref List> result)
+ {
+ for (int i = index; i < array.Length; i++)
+ {
+
+ combination.Add(array[i]);
+ Combine2(array, i + 1, combination, FAllmount, FDaySum, ref result);
+ combination.RemoveAt(combination.Count - 1); // 鍥炴函
+ }
+ if (combination.Count > 0)
+ {
+ result.Add(new List(combination));
+ }
+ }
+
+
+
+
+ public static List GetCombinations(List array)
+ {
+ List result = new List();
+ List FIDList = new List();
+ List FEntryList = new List();
+ List FAllmount = new List();
+ List FDaySum = new List();
+ Combine(array, 0, new List(), FIDList, FEntryList, FAllmount, FDaySum, ref result);
+ return result;
+ }
+
+ static void Combine(List array, int index, List combination, List FIDList, List FEntryList,
+ List FAllmount, List FDaySum, ref List result)
+ {
+ for (int i = index; i < array.Count; i++)
+ {
+ FIDList.Add(Convert.ToString(array[i][0]));
+ FEntryList.Add(Convert.ToString(array[i][3]));
+ FAllmount.Add(Convert.ToDouble(array[i][2]));
+ FDaySum.Add(CulDayByDate(Convert.ToDateTime(array[i][1]), DateTime.Now));
+ combination.Add(new string[4] { string.Join("-", FIDList), string.Join("-", FEntryList), "0", "0" });
+ Combine(array, i + 1, combination, FIDList, FEntryList, FAllmount, FDaySum, ref result);
+ //FIDList.RemoveAt(FIDList.Count - 1); // 鍥炴函
+ //FEntryList.RemoveAt(FEntryList.Count - 1); // 鍥炴函
+ //FAllmount.RemoveAt(combination.Count - 1); // 鍥炴函
+ //FDaySum.RemoveAt(FDaySum.Count - 1); // 鍥炴函
+ combination.RemoveAt(combination.Count - 1); // 鍥炴函
+ }
+ //if (FIDList.Count > 0)
+ //{
+ result.Add(new string[4] { string.Join("-", FIDList), string.Join("-", FEntryList), FAllmount.Sum().ToString(), FDaySum.Sum().ToString() });
+ //}
+ }
+ ///
+ /// 璁$畻涓ゆ棩鏈熷ぉ鏁板樊
+ ///
+ ///
+ ///
+ ///
+ public static int CulDayByDate(DateTime date1, DateTime date2)
+ {
+ TimeSpan difference = date2.Subtract(date1);
+ return difference.Days;
+
+ }
+
+
+ #region AI鎻愪緵鐨勫洖婧畻娉
+ // 涓诲嚱鏁帮細鍖归厤閿鍞崟涓庢敹娆惧崟缁勫悎
+ public static Dictionary>> MatchSalesAndPayments(List sales, List payments)
+ {
+ var result = new Dictionary>>();
+
+ for (int i = 0; i < sales.Count(); i++)
+ {
+ double target = sales[i];
+ var combinations = new List>();
+ Backtrack(payments, target, 0, new List(), combinations);
+
+ if (combinations.Count > 0)
+ {
+ result[i] = combinations; // 璁板綍鍖归厤鐨勯攢鍞崟绱㈠紩鍙婂叾鏀舵鍗曠粍鍚
+ }
+ }
+
+ return result;
+ }
+
+ // 鍥炴函绠楁硶鐢熸垚鎵鏈夊彲鑳界殑缁勫悎
+ private static void Backtrack(List payments, double target, int start, List current, List> result)
+ {
+ if (target == 0)
+ {
+ result.Add(new List(current));
+ return;
+ }
+
+ for (int i = start; i < payments.Count(); i++)
+ {
+ if (payments[i] > target)
+ continue; // 鍓灊锛氳烦杩囬噾棰濊秴杩囧墿浣欑洰鏍囧肩殑鏀舵鍗
+ if (result.Count() >= 1) //濡傛灉宸茬粡鎵惧埌涓涓粍鍚堬紝灏变笉鐢ㄧ户缁壘浜
+ return;
+ current.Add(payments[i]);
+ Backtrack(payments, target - payments[i], i + 1, current, result); // 閫掑綊鎼滅储涓嬩竴涓敹娆惧崟
+ current.RemoveAt(current.Count - 1); // 鍥炴函
+ }
+ }
+
+ // 绀轰緥鐢ㄦ硶
+ public static void Main()
+ {
+ List sales =new List { 100, 200 }; // 閿鍞崟閲戦鏁扮粍
+ List payments =new List { 50, 30, 20, 50, 100 }; // 鏀舵鍗曢噾棰濇暟缁
+
+ var matches = MatchSalesAndPayments(sales, payments);
+
+ foreach (var sale in matches)
+ {
+ Console.WriteLine($"閿鍞崟 {sale.Key + 1} 鍖归厤鐨勬敹娆惧崟缁勫悎锛");
+ foreach (var combo in sale.Value)
+ {
+ Console.WriteLine($"閲戦缁勫悎锛歿string.Join(", ", combo)}锛屾诲拰锛歿combo.Sum()}");
+ }
+ }
+ }
+ #endregion
+ }
+}
diff --git a/Pilot_KD_Parino/Common/CommonHelper.cs b/Pilot_KD_Parino/Common/CommonHelper.cs
new file mode 100644
index 0000000..f8cf98d
--- /dev/null
+++ b/Pilot_KD_Parino/Common/CommonHelper.cs
@@ -0,0 +1,1465 @@
+锘縰sing Kingdee.BOS;
+using Kingdee.BOS.Core;
+using Kingdee.BOS.Core.Bill;
+using Kingdee.BOS.Core.DynamicForm;
+using Kingdee.BOS.Core.DynamicForm.PlugIn;
+using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
+using Kingdee.BOS.Core.Enums;
+using Kingdee.BOS.Core.Interaction;
+using Kingdee.BOS.Core.Metadata;
+using Kingdee.BOS.Core.Metadata.FormElement;
+using Kingdee.BOS.JSON;
+using Kingdee.BOS.Orm;
+using Kingdee.BOS.Orm.DataEntity;
+using Kingdee.BOS.ServiceHelper;
+using Kingdee.BOS.Util;
+using Newtonsoft.Json;
+using Newtonsoft.Json.Linq;
+using System;
+using System.Collections.Generic;
+using System.Data;
+using System.Drawing;
+using System.IO;
+using System.Linq;
+using System.Net;
+using System.Text;
+using Xceed.Document.NET;
+using Xceed.Words.NET;
+
+namespace Pilot_KD_Parino.Common
+{
+ public static class CommonHelper
+ {
+ public static void DolondWord(string templatePath, DataSet data, string outputPath, string FType)
+ {
+ List List = new List() { "CS", "ES" };
+
+ // 鍔犺浇妯℃澘鏂囨。
+ using (var document = DocX.Load(templatePath))
+ {
+ //int n = data.Tables.Count;
+ var datatable = data.Tables[0];
+ foreach (DataRow item in datatable.Rows)
+ {
+ document.ReplaceText("{" + Convert.ToString(item["Key"]) + "}", Convert.ToString(item["Value"]));
+ }
+ int x = document.Tables.Count;
+ if (FType == "D")
+ {
+
+ }
+ else if (FType == "S")
+ {
+ // 鍋囪妯℃澘涓殑琛ㄦ牸鏄涓涓〃鏍
+ var table = document.Tables[2];
+ Row previousRow = (Row)table.Rows[1];
+ //for (int i = table.Rows.Count - 4; i >= 1; i--) // 浠庢渶鍚庝竴琛屽紑濮嬪垹闄わ紝閬垮厤绱㈠紩瓒呭嚭鑼冨洿
+ //{
+ // table.Rows[i].Remove();
+ //}
+ table.Rows[1].Remove();
+ var datatable2 = data.Tables[1];
+ foreach (DataRow item in datatable2.Rows)
+ {
+ Row newRow = table.InsertRow(previousRow, table.Rows.Count - 1);
+ foreach (var cell in newRow.Cells)
+ {
+ {
+ // 娉ㄦ剰锛氬鏋滃崟鍏冩牸涓湁澶氫釜娈佃惤鎴栨洿澶嶆潅鐨勭粨鏋勶紝浣犲彲鑳介渶瑕侀亶鍘嗗畠浠苟鍒嗗埆澶嶅埗鏍峰紡
+ Border Border = new Border() { Size = BorderSize.four, Color = Color.Black };
+ cell.SetBorder(TableCellBorderType.Left, Border);
+ cell.SetBorder(TableCellBorderType.Right, Border);
+ cell.SetBorder(TableCellBorderType.Top, Border);
+ cell.SetBorder(TableCellBorderType.Bottom, Border);
+ }
+ }
+ for (int i = 0; i < datatable2.Columns.Count; i++)
+ {
+ newRow.Cells[i].ReplaceText("{" + i.ToString() + "}", Convert.ToString(item[i]));
+ }
+ }
+ }
+ else if (FType == "W")
+ {
+ // 鍋囪妯℃澘涓殑琛ㄦ牸鏄涓涓〃鏍
+ var table = document.Tables[1];
+ Row previousRow = (Row)table.Rows[1];
+ //for (int i = table.Rows.Count - 4; i >= 1; i--) // 浠庢渶鍚庝竴琛屽紑濮嬪垹闄わ紝閬垮厤绱㈠紩瓒呭嚭鑼冨洿
+ //{
+ // table.Rows[i].Remove();
+ //}
+ table.Rows[1].Remove();
+ var datatable2 = data.Tables[1];
+ foreach (DataRow item in datatable2.Rows)
+ {
+ Row newRow = table.InsertRow(previousRow, table.Rows.Count - 2);
+ foreach (var cell in newRow.Cells)
+ {
+ {
+ // 娉ㄦ剰锛氬鏋滃崟鍏冩牸涓湁澶氫釜娈佃惤鎴栨洿澶嶆潅鐨勭粨鏋勶紝浣犲彲鑳介渶瑕侀亶鍘嗗畠浠苟鍒嗗埆澶嶅埗鏍峰紡
+ Border Border = new Border() { Size = BorderSize.four, Color = Color.Black };
+ cell.SetBorder(TableCellBorderType.Left, Border);
+ cell.SetBorder(TableCellBorderType.Right, Border);
+ cell.SetBorder(TableCellBorderType.Top, Border);
+ cell.SetBorder(TableCellBorderType.Bottom, Border);
+ }
+ }
+ for (int i = 0; i < datatable2.Columns.Count; i++)
+ {
+ newRow.Cells[i].ReplaceText("{" + i.ToString() + "}", Convert.ToString(item[i]));
+ }
+ }
+ }
+ else if (FType == "SX-1" || FType == "SX-2")
+ {
+ #region 杩欓噷寮濮嬪鍒
+ // 鍋囪妯℃澘涓殑琛ㄦ牸鏄涓涓〃鏍
+ var table = document.Tables[2];
+ //// 娓呯┖琛ㄦ牸涓殑鎵鏈夎锛堥櫎浜嗚〃澶达紝濡傛灉鏈夌殑璇濓級
+ //// 娉ㄦ剰锛氳繖閲屽亣璁剧涓琛屾槸琛ㄥご锛屼笉鍒犻櫎
+ Row previousRowNew = (Row)table.Rows[1];
+ Row previousRowthreeNew = (Row)table.Rows[2];
+ Row previousRowfourNew = (Row)table.Rows[3];
+ for (int i = 3; i >= 1; i--)
+ {
+ table.Rows[i].Remove();
+ }
+ var datatable2 = data.Tables[2];
+
+ // 浣跨敤LINQ鏉ヨ幏鍙栧幓閲嶅悗鐨凢Type瀛楁
+ var DistinctFTypes = datatable2.AsEnumerable()
+ .Select(row => row.Field("FType"))
+ .Distinct()
+ .ToList();
+ int Index = DistinctFTypes.Count;
+ foreach (var item in DistinctFTypes)
+ {
+ Row previousRow = previousRowNew;
+ var previousRowthree = previousRowthreeNew;
+ var previousRowfour = previousRowfourNew;
+ //鎻掑叆缁勫悎涓叿浣撶殑鏁版嵁琛
+ var Rows = datatable2.AsEnumerable().Where(t => Convert.ToString(t["FType"]) == item).ToList();
+ //鎻掑叆涓涓粍鍚
+ #region
+ Row newRowfour = table.InsertRow(previousRowfour, 1);
+ newRowfour.Cells[1].ReplaceText("{9}", Convert.ToString(Rows[0][11]));
+ foreach (var Row in Rows)
+ {
+ Row newRowthree = table.InsertRow(previousRowthree, 1);
+ for (int i = 0; i < 9; i++)
+ {
+ newRowthree.Cells[i].ReplaceText("{" + i.ToString() + "}", Convert.ToString(Row[i]));
+ }
+ document.ReplaceText("{10}", Convert.ToString(Row[10]));
+ }
+ Row newRow = table.InsertRow(previousRow, 1);
+ newRow.Cells[0].ReplaceText("{0}", string.Format("{0}銆亄1}", ConvertToChineseUppercase(Index), Convert.ToString(item)));
+ #endregion
+ Index--;
+
+ }
+ #endregion
+ }
+ else if (!List.Contains(FType) && FType != "HH" && FType != "TH")
+ {
+ // 鍋囪妯℃澘涓殑琛ㄦ牸鏄涓涓〃鏍
+ var table = document.Tables[1];
+ Row previousRow = (Row)table.Rows[1];
+ //for (int i = table.Rows.Count - 4; i >= 1; i--) // 浠庢渶鍚庝竴琛屽紑濮嬪垹闄わ紝閬垮厤绱㈠紩瓒呭嚭鑼冨洿
+ //{
+ // table.Rows[i].Remove();
+ //}
+ table.Rows[1].Remove();
+ var datatable2 = data.Tables[1];
+ foreach (DataRow item in datatable2.Rows)
+ {
+ Row newRow = table.InsertRow(previousRow, table.Rows.Count - 3);
+ foreach (var cell in newRow.Cells)
+ {
+ {
+ // 娉ㄦ剰锛氬鏋滃崟鍏冩牸涓湁澶氫釜娈佃惤鎴栨洿澶嶆潅鐨勭粨鏋勶紝浣犲彲鑳介渶瑕侀亶鍘嗗畠浠苟鍒嗗埆澶嶅埗鏍峰紡
+ Border Border = new Border() { Size = BorderSize.four, Color = Color.Black };
+ cell.SetBorder(TableCellBorderType.Left, Border);
+ cell.SetBorder(TableCellBorderType.Right, Border);
+ cell.SetBorder(TableCellBorderType.Top, Border);
+ cell.SetBorder(TableCellBorderType.Bottom, Border);
+ }
+ }
+ for (int i = 0; i < datatable2.Columns.Count; i++)
+ {
+ newRow.Cells[i].ReplaceText("{" + i.ToString() + "}", Convert.ToString(item[i]));
+ }
+ }
+ }
+ else if (List.Contains(FType))
+ {
+ #region 杩欓噷寮濮嬪鍒
+ // 鍋囪妯℃澘涓殑琛ㄦ牸鏄涓涓〃鏍
+ var table = document.Tables[3];
+ //// 娓呯┖琛ㄦ牸涓殑鎵鏈夎锛堥櫎浜嗚〃澶达紝濡傛灉鏈夌殑璇濓級
+ //// 娉ㄦ剰锛氳繖閲屽亣璁剧涓琛屾槸琛ㄥご锛屼笉鍒犻櫎
+ Row previousRowNew = (Row)table.Rows[1];
+ Row previousRowthreeNew = (Row)table.Rows[2];
+ Row previousRowfourNew = (Row)table.Rows[3];
+ for (int i = 3; i >= 1; i--)
+ {
+ table.Rows[i].Remove();
+ }
+ var datatable2 = data.Tables[2];
+
+ // 浣跨敤LINQ鏉ヨ幏鍙栧幓閲嶅悗鐨凢Type瀛楁
+ var DistinctFTypes = datatable2.AsEnumerable()
+ .Select(row => row.Field("FType"))
+ .Distinct()
+ .ToList();
+ int Index = DistinctFTypes.Count;
+ foreach (var item in DistinctFTypes)
+ {
+ Row previousRow = previousRowNew;
+ var previousRowthree = previousRowthreeNew;
+ var previousRowfour = previousRowfourNew;
+ //鎻掑叆缁勫悎涓叿浣撶殑鏁版嵁琛
+ var Rows = datatable2.AsEnumerable().Where(t => Convert.ToString(t["FType"]) == item).ToList();
+ //鎻掑叆涓涓粍鍚
+ #region
+ Row newRowfour = table.InsertRow(previousRowfour, 1);
+ newRowfour.Cells[1].ReplaceText("{9}", Convert.ToString(Rows[0][11]));
+ foreach (var Row in Rows)
+ {
+ Row newRowthree = table.InsertRow(previousRowthree, 1);
+ for (int i = 0; i < 9; i++)
+ {
+ newRowthree.Cells[i].ReplaceText("{" + i.ToString() + "}", Convert.ToString(Row[i]));
+ }
+ document.ReplaceText("{10}", Convert.ToString(Row[10]));
+ }
+ Row newRow = table.InsertRow(previousRow, 1);
+ newRow.Cells[0].ReplaceText("{0}", string.Format("{0}銆亄1}", ConvertToChineseUppercase(Index), Convert.ToString(item)));
+ #endregion
+ Index--;
+
+ }
+ #endregion
+ }
+ else if (FType == "HH")
+ {
+ // 鑾峰彇妯℃澘鏂囨。涓殑琛ㄦ牸
+ var table = document.Tables[1];
+ Row previousRow = (Row)table.Rows[1];
+ var roww = table.Rows;
+ table.Rows[1].Remove();
+ //鑾峰彇瀛樺偍杩囩▼鐨勬煡璇
+ var datatable2 = data.Tables[3];
+ foreach (DataRow item in datatable2.Rows)
+ {
+ int textn = table.Rows.Count;
+ Row newRow = table.InsertRow(previousRow, table.Rows.Count - 3);
+ foreach (var cell in newRow.Cells)
+ {
+ {
+ // 娉ㄦ剰锛氬鏋滃崟鍏冩牸涓湁澶氫釜娈佃惤鎴栨洿澶嶆潅鐨勭粨鏋勶紝浣犲彲鑳介渶瑕侀亶鍘嗗畠浠苟鍒嗗埆澶嶅埗鏍峰紡
+ Border Border = new Border() { Size = BorderSize.four, Color = Color.Black };
+ cell.SetBorder(TableCellBorderType.Left, Border);
+ cell.SetBorder(TableCellBorderType.Right, Border);
+ cell.SetBorder(TableCellBorderType.Top, Border);
+ cell.SetBorder(TableCellBorderType.Bottom, Border);
+ }
+ }
+ for (int i = 0; i < datatable2.Columns.Count; i++)
+ {
+ newRow.Cells[i].ReplaceText("{" + i.ToString() + "}", Convert.ToString(item[i]));
+ }
+ }
+ }
+ else
+ {
+ // 鑾峰彇妯℃澘鏂囨。涓殑琛ㄦ牸
+ var table = document.Tables[1];
+ Row previousRow = (Row)table.Rows[1];
+ var roww = table.Rows;
+ table.Rows[1].Remove();
+ //鑾峰彇瀛樺偍杩囩▼鐨勬煡璇
+ var datatable2 = data.Tables[4];
+ foreach (DataRow item in datatable2.Rows)
+ {
+ int textn = table.Rows.Count;
+ Row newRow = table.InsertRow(previousRow, table.Rows.Count - 3);
+ foreach (var cell in newRow.Cells)
+ {
+ {
+ // 娉ㄦ剰锛氬鏋滃崟鍏冩牸涓湁澶氫釜娈佃惤鎴栨洿澶嶆潅鐨勭粨鏋勶紝浣犲彲鑳介渶瑕侀亶鍘嗗畠浠苟鍒嗗埆澶嶅埗鏍峰紡
+ Border Border = new Border() { Size = BorderSize.four, Color = Color.Black };
+ cell.SetBorder(TableCellBorderType.Left, Border);
+ cell.SetBorder(TableCellBorderType.Right, Border);
+ cell.SetBorder(TableCellBorderType.Top, Border);
+ cell.SetBorder(TableCellBorderType.Bottom, Border);
+ }
+ }
+ for (int i = 0; i < datatable2.Columns.Count; i++)
+ {
+ newRow.Cells[i].ReplaceText("{" + i.ToString() + "}", Convert.ToString(item[i]));
+ }
+ }
+ }
+ if (!Directory.Exists(Path.GetDirectoryName(outputPath)))
+ {
+ Directory.CreateDirectory(Path.GetDirectoryName(outputPath));
+ }
+ // 淇濆瓨鏂版枃妗
+ document.SaveAs(outputPath);
+ }
+ }
+ public static void DolondWord2(DataSet data)
+ {
+ // 妯℃澘鏂囦欢璺緞
+ string templatePath = @"D:\妯℃澘\妯℃澘.docx";
+ // 杈撳嚭鏂囦欢璺緞
+ string outputPath = @"D:\妯℃澘\閲嶆柊瀵煎嚭鐨勭粨鏋.docx";
+
+ //// 妯℃澘鏂囦欢璺緞
+ //string templatePath = @"D:\妯℃澘\妯℃澘.docx";
+ //// 杈撳嚭鏂囦欢璺緞
+ //string outputPath = @"D:\妯℃澘\閲嶆柊瀵煎嚭鐨勭粨鏋.docx";
+
+ //using (WordprocessingDocument wordDoc = WordprocessingDocument.Open(templatePath, false))
+ //{
+ // // 鑾峰彇涓绘枃妗i儴鍒
+ // MainDocumentPart mainPart = wordDoc.MainDocumentPart;
+
+ // // 鑾峰彇鏂囨。涓殑鎵鏈夎〃鏍
+ // IEnumerable tables = mainPart.Document.Body.Elements();
+
+ // foreach (Table table in tables)
+ // {
+ // // 閬嶅巻琛ㄦ牸涓殑鎵鏈夎
+ // foreach (TableRow row in table.Elements())
+ // {
+ // // 閬嶅巻琛屼腑鐨勬墍鏈夊崟鍏冩牸
+ // foreach (TableCell cell in row.Elements())
+ // {
+ // // 鑾峰彇鍗曞厓鏍肩殑娈佃惤锛堝彲鑳芥湁澶氫釜锛
+ // foreach (Paragraph paragraph in cell.Elements())
+ // {
+ // // 鑾峰彇娈佃惤鐨勫睘鎬э紙杩欎簺灞炴у彲浠ュ寘鍚瓧浣撱佸瓧鍙风瓑淇℃伅锛
+ // ParagraphProperties paragraphProperties = paragraph.ParagraphProperties;
+
+ // // 绀轰緥锛氭墦鍗版钀界殑瀵归綈鏂瑰紡
+ // if (paragraphProperties.Justification != null)
+ // {
+ // Console.WriteLine($"Cell in table {table.TableId.Value} row {row.RowIndex.Value} has paragraph justification: {paragraphProperties.Justification.Value}");
+ // }
+
+ // // 鑾峰彇娈佃惤涓殑杩愯锛圧un锛夛紝瀹冧滑鍖呭惈鏂囨湰鍙婂叾鏍煎紡
+ // foreach (Run run in paragraph.Elements())
+ // {
+ // // 鑾峰彇杩愯鐨勫睘鎬э紙杩欎簺灞炴у彲浠ュ寘鍚瓧浣撱佸瓧鍙枫侀鑹茬瓑淇℃伅锛
+ // RunProperties runProperties = run.RunProperties;
+
+ // // 绀轰緥锛氭墦鍗拌繍琛岀殑瀛椾綋鍜屽瓧鍙
+ // if (runProperties.RunFonts != null && runProperties.FontSize != null)
+ // {
+ // Console.WriteLine($"Cell in table {table.TableId.Value} row {row.RowIndex.Value} has run font: {runProperties.RunFonts.Ascii}, size: {runProperties.FontSize.Val}");
+ // }
+
+ // // 娉ㄦ剰锛氬鏋滃崟鍏冩牸涓湁澶氫釜杩愯锛屾瘡涓繍琛屽彲鑳芥湁涓嶅悓鐨勬牱寮
+ // }
+ // }
+
+ // // 娉ㄦ剰锛氬崟鍏冩牸涔熷彲鑳藉寘鍚叾浠栧厓绱狅紝濡傝〃鏍煎祵濂椼佸浘鐗囩瓑锛岃繖閲屽彧澶勭悊浜嗘钀藉拰杩愯
+ // }
+ // }
+ // }
+ //}
+ List List = new List() { "CS", "ES", "S" };
+
+ // 鍔犺浇妯℃澘鏂囨。
+ using (var document = DocX.Load(templatePath))
+ {
+ var datatable = data.Tables[0];
+ //foreach (DataRow item in datatable.Rows)
+ //{
+ // document.ReplaceText("{" + Convert.ToString(item["Key"]) + "}", Convert.ToString(item["Value"]));
+ //}
+ if (!List.Contains("D"))
+ {
+ // 鍋囪妯℃澘涓殑琛ㄦ牸鏄涓涓〃鏍
+ var table = document.Tables[1];
+ Row previousRow = (Row)table.Rows[1];
+ //for (int i = table.Rows.Count - 4; i >= 1; i--) // 浠庢渶鍚庝竴琛屽紑濮嬪垹闄わ紝閬垮厤绱㈠紩瓒呭嚭鑼冨洿
+ //{
+ // table.Rows[i].Remove();
+ //}
+ table.Rows[1].Remove();
+ var datatable2 = data.Tables[1];
+ foreach (DataRow item in datatable2.Rows)
+ {
+ Row newRow = table.InsertRow(previousRow, table.Rows.Count - 3);
+ foreach (var cell in newRow.Cells)
+ {
+ {
+ // 娉ㄦ剰锛氬鏋滃崟鍏冩牸涓湁澶氫釜娈佃惤鎴栨洿澶嶆潅鐨勭粨鏋勶紝浣犲彲鑳介渶瑕侀亶鍘嗗畠浠苟鍒嗗埆澶嶅埗鏍峰紡
+ Border Border = new Border() { Size = BorderSize.four, Color = Color.Black };
+ cell.SetBorder(TableCellBorderType.Left, Border);
+ cell.SetBorder(TableCellBorderType.Right, Border);
+ cell.SetBorder(TableCellBorderType.Top, Border);
+ cell.SetBorder(TableCellBorderType.Bottom, Border);
+ }
+ }
+ for (int i = 0; i < datatable2.Columns.Count; i++)
+ {
+ newRow.Cells[i].ReplaceText("{" + i.ToString() + "}", Convert.ToString(item[i]));
+ }
+ }
+ }
+
+ if (!Directory.Exists(Path.GetDirectoryName(outputPath)))
+ {
+ Directory.CreateDirectory(Path.GetDirectoryName(outputPath));
+ }
+ // 淇濆瓨鏂版枃妗
+ document.SaveAs(outputPath);
+ }
+ }
+
+ ///
+ /// 淇濆瓨Txt鍒版湇鍔″櫒鍟
+ ///
+ /// 鎺ュ彛璋冪敤鏁版嵁
+ /// Txt鍦板潃
+ /// 鎺ュ彛杩斿洖鏁版嵁
+ public static void SaveTxt(string Data, string path, string Result)
+ {
+ if (!Directory.Exists(Path.GetDirectoryName(path)))
+ {
+ Directory.CreateDirectory(Path.GetDirectoryName(path));
+ }
+ StringBuilder sb = new StringBuilder();
+ sb.AppendLine("\r\n");
+ sb.AppendLine("----------------------璋冪敤鎺ュ彛鎵鐢↗Son----------------------");
+ sb.AppendLine(Data);
+ sb.AppendLine("\r\n");
+ sb.AppendLine("----------------------璋冪敤鎺ュ彛杩斿洖JSon----------------------");
+ sb.AppendLine(Result);
+ FileStream fs = new FileStream(path, FileMode.Create);
+ StreamWriter sw = new StreamWriter(fs);
+ fs.Position = fs.Length;
+ //寮濮嬪啓鍏ヂ 聽 聽 聽 聽
+ sw.Write(sb.ToString());
+ //娓呯┖缂撳啿鍖郝 聽 聽 聽
+ sw.Flush();
+ //鍏抽棴娴伮 聽 聽 聽 聽 聽
+ sw.Close();
+ fs.Close();
+ }
+
+ public static String ApiUrl = "http://doc.pmac.com.cn/api/services"; //姝e紡鍦板潃
+ public static String CustApiUrl = "http://10.0.110.12:8090/Api"; //姝e紡鍦板潃 鍒涘缓澶氱骇鏂囦欢澶逛娇鐢,8090绔彛
+ public static String integrationKey = "675cb5b3-6405-78ab-4834-82c25131851b";//姝e紡 闆嗘垚鐧诲綍绉橀挜
+
+ //娴嬭瘯鐜
+ //public static String username = "erp1";//姝e紡 闆嗘垚鐧诲綍绉橀挜
+ //public static String password = "edoc@erp";//姝e紡 闆嗘垚鐧诲綍绉橀挜
+ //姝e紡鐜
+ public static String username = "admin";//姝e紡 闆嗘垚鐧诲綍绉橀挜
+ public static String password = "PIL@edoc3";//姝e紡 闆嗘垚鐧诲綍绉橀挜
+
+
+ ///
+ /// 鑾峰彇鏂囨。浜戠殑Token
+ ///
+ /// 鐢ㄦ埛鍚
+ /// 瀵嗙爜
+ ///
+ public static string UserLogin(string FApiPath)
+ {
+ ///澹版槑杩斿洖Token
+ String token = "";
+ //澹版槑鎺ュ彛鍚嶇О
+ String url = "/Org/UserLogin";
+ String postJson = "{\"userName\": \"" + username + "\",\"password\": \"" + password + "\" } ";
+ HttpClient httpClient = new HttpClient();
+ httpClient.Url = ApiUrl + url;
+ httpClient.Content = postJson;
+ var resule = JsonConvert.DeserializeObject(httpClient.Post());
+ token = Convert.ToString(resule["data"]);
+ //鍐欏叆Txt鍒版湇鍔″櫒鍦板潃
+ SaveTxt(Convert.ToString(httpClient.Url), FApiPath, JsonConvert.SerializeObject(resule));
+ return token;
+ }
+
+
+ ///
+ public static string GetFolderInfoByNamePath(string Token, string FPath, string FApiPath, Context ctx)
+ {
+ ///澹版槑杩斿洖Token
+ String FolderId = "";
+ //澹版槑鎺ュ彛鍚嶇О
+ String url = string.Format(@"/Folder/GetFolderInfoByNamePath?token={0}&folderNamePath={1}", Token, FPath);
+ HttpClient httpClient = new HttpClient();
+ httpClient.Url = ApiUrl + url;
+ var resule = JsonConvert.DeserializeObject(httpClient.Get());
+ if (resule["data"] != null)
+ {
+ try
+ {
+ FolderId = Convert.ToString(resule["data"]["FolderId"]);
+ }
+ catch
+ {
+ FolderId = "";
+ }
+ }
+ //鍐欏叆Txt鍒版湇鍔″櫒鍦板潃
+ SaveTxt(Convert.ToString(httpClient.Url), FApiPath, JsonConvert.SerializeObject(resule));
+ return FolderId;
+ }
+
+
+ public static string CreateFolder(string Token, string parentFolderId, string folderName, string FApiPath, Context ctx)
+ {
+ ///澹版槑杩斿洖Token
+ String FolderId = "";
+ //澹版槑鎺ュ彛鍚嶇О
+ String url = "/Folder/CreateFolder";
+ HttpClient httpClient = new HttpClient();
+ httpClient.Url = ApiUrl + url;
+ httpClient.Content = "{\"token\": \"" + Token + "\",\"name\": \"" + folderName + "\",\"parentFolderId\":" + parentFolderId + " } ";
+ var resule = JsonConvert.DeserializeObject(httpClient.Post());
+ if (resule["data"] != null)
+ {
+ FolderId = Convert.ToString(resule["data"]["FolderId"]);
+ }
+ //鍐欏叆Txt鍒版湇鍔″櫒鍦板潃
+ SaveTxt(Convert.ToString(httpClient.Url) + "\r\n" + httpClient.Content, FApiPath, JsonConvert.SerializeObject(resule));
+ return FolderId;
+ }
+
+
+
+
+ ///
+ /// 鍒涘缓澶氬眰绾ф枃浠跺す
+ ///
+ ///
+ /// 鐖剁骇鏂囦欢澶筰d
+ /// 骞翠唤
+ /// 鍚堝悓鏂囦欢澶瑰悕绉
+ ///
+ public static string batchCreateFolder(string Token, string parentFolderId, string FYear, string contractFolderName, string FApiPath)
+ {
+ ///澹版槑杩斿洖Token
+ String FolderId = "";
+ //澹版槑鎺ュ彛鍚嶇О
+ String url = "/Folder/CreateFolder";
+
+ //澹版槑瀵硅薄
+ HttpClient httpClient = new HttpClient();
+ //璧嬪兼帴鍙rl
+ httpClient.Url = ApiUrl + url;
+ #region 璁剧疆A闃舵鏂囦欢澶
+
+ JSONObject obj1 = new JSONObject();
+ obj1.Add("Name", "A-鍟嗘満鑷冲悎鍚岄樁娈");
+ JSONArray arry1 = new JSONArray();
+ String[] jd1Array = { "A01-鍚堝悓鎵弿浠", "A02-鎶鏈柟妗堣祫鏂", "A04-涓爣鐩稿叧璧勬枡", "A05-鍏朵粬璧勬枡" };
+ for (int i = 0; i < jd1Array.Length; i++)
+ {
+ JSONObject obj11 = new JSONObject();
+ obj11.Add("Name", jd1Array[i]);
+ arry1.Add(obj11);
+ }
+ obj1.Add("FolderChildren", arry1);
+ #endregion
+
+ #region 璁剧疆B闃舵鏂囦欢澶
+ JSONObject obj2 = new JSONObject();
+ obj2.Add("Name", "B-瀹炴柦鍑嗗闃舵");
+ JSONArray arry2 = new JSONArray();
+ String[] jd2rray = { "B01-椤圭洰闇姹傚垎鏋", "B02-椤圭洰鍚姩浼氳", "B03-鏂藉伐缁勭粐璁″垝", "B04-渚涜揣閲囪喘璁″垝", "B05-鎴愭湰绠$悊璁″垝", "B06-椤圭洰绠$悊璁″垝", "B07-鏂藉伐鏂规", "B08-鏂藉伐鍒嗗寘绠$悊", "B09-鏂藉伐甯冪嚎鎸囧", "B10-鍏朵粬鏂囦欢" };
+ for (int i = 0; i < jd2rray.Length; i++)
+ {
+ JSONObject obj22 = new JSONObject();
+ obj22.Add("Name", jd2rray[i]);
+ arry2.Add(obj22);
+ }
+ obj2.Add("FolderChildren", arry2);
+ #endregion
+ #region 璁剧疆C闃舵鏂囦欢澶
+ JSONObject obj3 = new JSONObject();
+ obj3.Add("Name", "C-瀹炴柦鎵ц闃舵");
+ JSONArray arry3 = new JSONArray();
+ String[] jd3rray = { "C01-缃戠粶鎷撴墤鍥", "C02-璁捐闄㈡垚濂楀巶鍥剧焊", "C03-鏈烘煖鍘熺悊鍙婄粨鏋勫浘", "C04-娣卞寲鏂藉伐骞抽潰鍥", "C05-椤圭洰璁惧鐐硅〃", "C06-閲囬泦鍣ㄩ厤缃浠", "C07-绯荤粺鍙婃暟鎹簱澶囦唤", "C08-绗笁鏂逛骇鍝佽祫鏂欏簱", "C09-宸ョ▼绛捐瘉鍗", "C10-鍒嗛」宸ョ▼鎶ラ獙鍗", "C11-宸ョ▼鑱旂粶鍗", "C12-鍒嗗寘鎴愭湰绠$悊", "C13-鏁村绔e伐鍥剧焊", "C14-浜у搧瀹氬埗鍗", "C15-鍓嶆渶缁堟柦宸ュ浘绾稿叏濂", "C16-鎶ヤ环宸ョ▼閲忔竻鍗", "C17-椤圭洰浜ゆ帴鍗", "C18-娉ㄥ唽鐮", "C19-鏈烘煖鍑哄巶娴嬭瘯鎶ュ憡", "C20-绯荤粺璋冭瘯鏂规", "C21-椤圭洰鏃ュ織", "C22-鍏朵粬鏂囦欢" };
+ for (int i = 0; i < jd3rray.Length; i++)
+ {
+ JSONObject obj33 = new JSONObject();
+ obj33.Add("Name", jd3rray[i]);
+ arry3.Add(obj33);
+ }
+ obj3.Add("FolderChildren", arry3);
+ #endregion
+
+ #region 璁剧疆D闃舵鏂囦欢澶
+ JSONObject obj4 = new JSONObject();
+ obj4.Add("Name", "D-楠屾敹浜や粯闃舵");
+ JSONArray arry4 = new JSONArray();
+ String[] jd4rray = { "D01-楠屾敹鎶ュ憡鎵弿浠", "D02-璁惧璋冭瘯璁板綍鎶ュ憡", "D03-鍙戣揣鍗曪紙绛惧瓧鍥炲崟锛", "D04-璇曡繍琛屾垨鐪熷疄杩愯鎶ュ憡", "D05-瀹¤缁撶畻璧勬枡", "D06-椤圭洰鎬荤粨鎶ュ憡", "D07-閬楃暀闂娓呭崟", "D08-璇存槑涔︽垨鎿嶄綔鎵嬪唽", "D09-鐜板満鐓х墖鎴栫晫闈㈡埅鍥", "D10-绉讳氦鐢叉柟鐨勮祫鏂", "D11-鍏朵粬鏂囦欢" };
+ for (int i = 0; i < jd4rray.Length; i++)
+ {
+ JSONObject obj44 = new JSONObject();
+ obj44.Add("Name", jd4rray[i]);
+ arry4.Add(obj44);
+ }
+ obj4.Add("FolderChildren", arry4);
+ #endregion
+
+ #region 璁剧疆E闃舵鏂囦欢澶
+ JSONObject obj5 = new JSONObject();
+ obj5.Add("Name", "E-楠屾敹鍚庤繍缁撮樁娈");
+ JSONArray arry5 = new JSONArray();
+ String[] jd5rray = { "E01-鐢ㄦ埛璇佹槑鍜屽鎴疯瘎浠锋枃浠", "E02-宸℃鎶ュ憡", "E03-鍞悗婊℃剰搴﹁皟鏌ヨ〃", "E04-鐜板満鏇存柊璧勬枡澶囦唤", "E05-鍏朵粬鏂囦欢" };
+ for (int i = 0; i < jd5rray.Length; i++)
+ {
+ JSONObject obj55 = new JSONObject();
+ obj55.Add("Name", jd5rray[i]);
+ arry5.Add(obj55);
+ }
+ obj5.Add("FolderChildren", arry5);
+ #endregion
+ //5涓樁娈电殑鎵鏈夋枃浠跺す鏀惧叆鍒板搴斿悎鍚岀洰褰曚笅
+ //鍚堝悓鏂囦欢澶
+ JSONObject dataObj = new JSONObject();
+
+ JSONArray arry0 = new JSONArray();
+ arry0.Add(obj1);
+ arry0.Add(obj2);
+ arry0.Add(obj3);
+ arry0.Add(obj4);
+ arry0.Add(obj5);
+ dataObj.Add("FolderChildren", arry0);
+ //灏嗗悎鍚岀洰褰曟斁鍒板搴斿勾浠界殑鐩綍涓
+ JSONArray yearArray = new JSONArray();
+ yearArray.Add(dataObj);
+ JSONObject yearobj = new JSONObject();
+ yearobj.Add("FolderName", FYear);
+ yearobj.Add("FolderChildren", yearArray);
+ //寮濮嬪垱寤
+ JSONObject obj = new JSONObject();
+ obj.Add("Token", Token);
+ obj.Add("ParentFolderId", parentFolderId);
+ obj.Add("name", contractFolderName);
+ obj.Add("FolderChildren", arry0);
+ String postJson = obj.ToString();
+ httpClient.Content = postJson;
+ var resule = JsonConvert.DeserializeObject(httpClient.Post());
+ if (resule["data"] != null)
+ {
+ FolderId = Convert.ToString(resule["data"]["FolderId"]);
+ }
+ //鍐欏叆Txt鍒版湇鍔″櫒鍦板潃
+ SaveTxt(Convert.ToString(httpClient.Url) + "\r\n" + httpClient.Content, FApiPath, JsonConvert.SerializeObject(resule));
+ return FolderId;
+ }
+
+
+ ///
+ /// 鍒涘缓BPM娴佺▼鍙戣捣浜у搧鐢熶骇鍑鸿揣棰勭疆鍗
+ ///
+ public static string CreateDocument2(DynamicObjectCollection data, Context ctx)
+ {
+ StringBuilder xml = new StringBuilder("FormData=");
+ xml.Append("");
+ xml.Append("");
+ xml.Append("" + Convert.ToString(data[0]["鍒涘缓鏃堕棿"]) + "");//鍒涘缓鏃堕棿
+ xml.Append("" + Convert.ToString(data[0]["濉崟浜"]) + "");//濉崟浜
+ xml.Append("" + Convert.ToString(data[0]["濉崟浜洪儴闂"]) + ""); //濉崟浜洪儴闂
+ xml.Append("" + Convert.ToString(data[0]["瑙勬牸鍨嬪彿"]) + ""); //瑙勬牸鍨嬪彿
+ xml.Append("" + Convert.ToString(data[0]["璐揣鍗曚綅"]) + "");//璐揣鍗曚綅
+ xml.Append("" + Convert.ToString(data[0]["椤圭洰鍚嶇О"]) + "");//椤圭洰鍚嶇О
+ xml.Append("" + Convert.ToString(data[0]["閿鍞汉鍛"]) + ""); //閿鍞汉鍛
+ xml.Append("" + Convert.ToString(data[0]["閿鍞汉鍛橀儴闂"]) + ""); //閿鍞汉鍛橀儴闂
+ xml.Append("" + Convert.ToString(data[0]["濉崟浜鸿亴浣"]) + ""); //濉崟浜鸿亴浣
+ xml.Append("" + Convert.ToString(data[0]["鍚堝悓鍙"]) + "");//鍚堝悓鍙
+ xml.Append("" + Convert.ToString(data[0]["鍙戣揣鏃ユ湡"]) + "");//鍙戣揣鏃ユ湡
+ xml.Append("");
+ foreach (var item in data)
+ {
+ xml.Append("");
+ xml.Append("" + Convert.ToString(item["鐗╂枡浠g爜"]) + ""); //鐗╂枡浠g爜
+ xml.Append("" + Convert.ToString(item["鐗╂枡鍚嶇О"]) + ""); //鐗╂枡鍚嶇О
+ xml.Append("" + Convert.ToString(item["鏁伴噺"]) + ""); //鏁伴噺
+ xml.Append("" + Convert.ToString(item["鍝佺墝"]) + ""); //鍝佺墝
+ xml.Append("" + Convert.ToString(item["澶囨敞"]) + ""); //瀹氬埗鍗曞嚭璐ф鏁
+ xml.Append("");
+ }
+ xml.Append("");
+ //HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://10.0.120.98/bpm/YZSoft/WebService/YZService.ashx?Method=PostTask&UserAccount=" + data[0]["bpm璐﹀彿"] + "&ProcessName=浜у搧鐢熶骇鍑鸿揣棰勭疆鍗&Action=鎻愪氦&Comment=''&" + xml);
+ HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://10.0.120.98/bpm/YZSoft/WebService/YZService.ashx?Method=PostTask&UserAccount=" + data[0]["bpm璐﹀彿"] + "&ProcessName=浜у搧鐢熶骇鍑鸿揣棰勭疆鍗&Action=鎻愪氦&Comment=''&" + xml);
+ request.Method = "POST";
+ request.ContentType = "text/xml";
+ Encoding encoding = Encoding.GetEncoding("UTF-8");
+ // 瑕佸彂閫佺殑鏁版嵁
+ byte[] buffer = encoding.GetBytes(xml.ToString());
+ // 鑾峰彇璇锋眰娴
+ using (Stream writer = request.GetRequestStream())
+ {
+ // 鍐欏叆鏁版嵁
+ writer.Write(buffer, 0, buffer.Length);
+ }
+ string retString = "";
+ string sn = "澶辫触";
+
+ //鑾峰彇鍝嶅簲
+ using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
+ {
+ // 澶勭悊鍝嶅簲
+ Stream myResponseStream = response.GetResponseStream();//鑾峰彇杩斿洖鍊
+ using (StreamReader reader = new StreamReader(myResponseStream, Encoding.UTF8))
+ {
+ try
+ {
+ retString = reader.ReadToEnd();
+ //鑾峰彇SN鏁版嵁
+ var snOBJ = JsonConvert.DeserializeObject(retString);
+ if (Convert.ToString(snOBJ["success"]).ToUpper() == "TRUE")
+ {
+ sn = Convert.ToString(snOBJ["SN"]);
+ }
+
+ }
+ catch
+ {
+
+ }
+ }
+ }
+ //鍐欏叆Txt鍒版湇鍔″櫒鍦板潃
+ //SaveTxt("http://10.0.120.98/bpm/YZSoft/WebService/YZService.ashx?Method=PostTask&UserAccount="+data[0]["bpm璐﹀彿"] + "&ProcessName=浜у搧鐢熶骇鍑鸿揣棰勭疆鍗&Action=鎻愪氦&Comment=''&" + xml,
+ // string.Format(@"D:\Api鏃ュ織\{2}\鍒涘缓娴佺▼\{0}\鍒涘缓娴佺▼\{1}.txt",
+ // Convert.ToString(data[0]["鍗曟嵁缂栧彿"]), DateTime.Now.ToString("yyyyMMddHHmmssfff"), ctx.DataCenterName), retString);
+ SaveTxt("http://bpm.pmac.com.cn/bpm/YZSoft/WebService/YZService.ashx?Method=PostTask&UserAccount=" + data[0]["bpm璐﹀彿"] + "&ProcessName=浜у搧鐢熶骇鍑鸿揣棰勭疆鍗&Action=鎻愪氦&Comment=''&" + xml,
+ string.Format(@"D:\Api鏃ュ織\{2}\鍒涘缓娴佺▼\{0}\鍒涘缓娴佺▼\{1}.txt",
+ Convert.ToString(data[0]["鍗曟嵁缂栧彿"]), DateTime.Now.ToString("yyyyMMddHHmmssfff"), ctx.DataCenterName), retString);
+ return sn;
+
+ }
+
+ ///
+ /// 鍒涘缓BPM娴佺▼鍙戣捣浜у搧瀹氬埗鍐嶆鍑鸿揣纭鍗
+ ///
+ public static string CreateDocument(DynamicObjectCollection data, Context ctx)
+ {
+ StringBuilder xml = new StringBuilder("FormData=");
+ xml.Append("");
+ xml.Append("");
+ xml.Append("" + Convert.ToString(data[0]["鍒涘缓鏃堕棿"]) + "");//鍒涘缓鏃堕棿
+ xml.Append("" + Convert.ToString(data[0]["濉崟浜"]) + "");//濉崟浜
+ xml.Append("" + Convert.ToString(data[0]["濉崟浜洪儴闂"]) + ""); //濉崟浜洪儴闂
+ xml.Append("" + Convert.ToString(data[0]["濉崟浜鸿亴浣"]) + ""); //濉崟浜鸿亴浣
+ xml.Append("" + Convert.ToString(data[0]["鍚堝悓鍙"]) + "");//鍚堝悓鍙
+ xml.Append("" + Convert.ToString(data[0]["璐揣鍗曚綅"]) + "");//璐揣鍗曚綅
+ xml.Append("" + Convert.ToString(data[0]["椤圭洰鍚嶇О"]) + "");//椤圭洰鍚嶇О
+ xml.Append("" + Convert.ToString(data[0]["閿鍞汉鍛"]) + ""); //閿鍞汉鍛
+ xml.Append("" + Convert.ToString(data[0]["閿鍞汉鍛橀儴闂"]) + ""); //閿鍞汉鍛橀儴闂
+ xml.Append("" + Convert.ToString(data[0]["瑙勬牸鍨嬪彿"]) + ""); //瑙勬牸鍨嬪彿
+ xml.Append("");
+ foreach (var item in data)
+ {
+ xml.Append("");
+ xml.Append("" + Convert.ToString(item["鐗╂枡浠g爜"]) + ""); //鐗╂枡浠g爜
+ xml.Append("" + Convert.ToString(item["鐗╂枡鍚嶇О"]) + ""); //鐗╂枡鍚嶇О
+ xml.Append("" + Convert.ToString(item["瑙勬牸鍨嬪彿"]) + ""); //瑙勬牸鍨嬪彿
+ xml.Append("" + Convert.ToString(item["鍝佺墝"]) + ""); //鍝佺墝
+ xml.Append("" + Convert.ToString(item["鏁伴噺"]) + ""); //鏁伴噺
+ xml.Append("" + Convert.ToString(item["澶囨敞"]) + ""); //澶囨敞
+ xml.Append("" + Convert.ToString(item["瀹氬埗鍗曞嚭璐ф鏁"]) + ""); //瀹氬埗鍗曞嚭璐ф鏁
+ xml.Append("");
+ }
+ xml.Append("");
+ HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://bpm.pmac.com.cn/bpm/YZSoft/WebService/YZService.ashx?Method=PostTask&UserAccount=" + data[0]["bpm璐﹀彿"] + "&ProcessName=浜у搧瀹氬埗鍐嶆鍑鸿揣纭鍗&Action=鎻愪氦&Comment=''&" + xml);
+ //HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://10.0.120.98/bpm/YZSoft/WebService/YZService.ashx?Method=PostTask&UserAccount=" + data[0]["bpm璐﹀彿"] + "&ProcessName=浜у搧瀹氬埗鍐嶆鍑鸿揣纭鍗&Action=鎻愪氦&Comment=''&" + xml);
+
+
+ request.Method = "POST";
+ request.ContentType = "text/xml";
+ Encoding encoding = Encoding.GetEncoding("UTF-8");
+ // 瑕佸彂閫佺殑鏁版嵁
+ byte[] buffer = encoding.GetBytes(xml.ToString());
+ // 鑾峰彇璇锋眰娴
+ using (Stream writer = request.GetRequestStream())
+ {
+ // 鍐欏叆鏁版嵁
+ writer.Write(buffer, 0, buffer.Length);
+ }
+ string retString = "";
+ string sn = "澶辫触";
+
+ //鑾峰彇鍝嶅簲
+ using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
+ {
+ // 澶勭悊鍝嶅簲
+ Stream myResponseStream = response.GetResponseStream();//鑾峰彇杩斿洖鍊
+ using (StreamReader reader = new StreamReader(myResponseStream, Encoding.UTF8))
+ {
+ try
+ {
+ retString = reader.ReadToEnd();
+ //鑾峰彇SN鏁版嵁
+ var snOBJ = JsonConvert.DeserializeObject(retString);
+ if (Convert.ToString(snOBJ["success"]).ToUpper() == "TRUE")
+ {
+ sn = Convert.ToString(snOBJ["SN"]);
+ }
+
+ }
+ catch
+ {
+
+ }
+ }
+ }
+ ////鍐欏叆Txt鍒版湇鍔″櫒鍦板潃
+ //SaveTxt("http://10.0.120.98/bpm/YZSoft/WebService/YZService.ashx?Method=PostTask&UserAccount=" + data[0]["bpm璐﹀彿"] + "&ProcessName=浜у搧瀹氬埗鍐嶆鍑鸿揣纭鍗&Action=鎻愪氦&Comment=''&" + xml,
+ // string.Format(@"D:\Api鏃ュ織\{2}\鍒涘缓娴佺▼\{0}\鍒涘缓娴佺▼\{1}.txt",
+ // Convert.ToString(data[0]["鍗曟嵁缂栧彿"]), DateTime.Now.ToString("yyyyMMddHHmmssfff"), ctx.DataCenterName), retString);
+ //鍐欏叆Txt鍒版湇鍔″櫒鍦板潃
+ SaveTxt("http://bpm.pmac.com.cn/bpm/YZSoft/WebService/YZService.ashx?Method=PostTask&UserAccount=" + data[0]["bpm璐﹀彿"] + "&ProcessName=浜у搧瀹氬埗鍐嶆鍑鸿揣纭鍗&Action=鎻愪氦&Comment=''&" + xml,
+ string.Format(@"D:\Api鏃ュ織\{2}\鍒涘缓娴佺▼\{0}\鍒涘缓娴佺▼\{1}.txt",
+ Convert.ToString(data[0]["鍗曟嵁缂栧彿"]), DateTime.Now.ToString("yyyyMMddHHmmssfff"), ctx.DataCenterName), retString);
+ return sn;
+ }
+
+
+
+
+ ///
+ /// 鍒涘缓宸ョ▼椤圭洰
+ ///
+ public static string CreateItemData(Context ctx, string FOrgId, string FNumber, string FName)
+ {
+ string FID;
+ string FBILLNO;
+ // 鏋勫缓涓涓狪BillView瀹炰緥锛岄氳繃姝ゅ疄渚嬶紝鍙互鏂逛究鐨勫~鍐
+ IBillView billView = CommonHelper.CreateBillView(ctx, "BAS_PreBaseDataOne");
+ // 鏂板缓涓涓┖鐧藉姵鍔ㄥ悎鍚
+ // billView.CreateNewModelData();
+ ((IBillViewService)billView).LoadData();
+ // 瑙﹀彂鎻掍欢鐨凮nLoad浜嬩欢锛
+ // 缁勭粐鎺у埗鍩虹被鎻掍欢锛屽湪OnLoad浜嬩欢涓紝瀵逛富涓氬姟缁勭粐鏀瑰彉鏄惁鎻愮ず閫夐」杩涜鍒濆鍖栥
+ // 濡傛灉涓嶈Е鍙慜nLoad浜嬩欢锛屼細瀵艰嚧涓讳笟鍔$粍缁囪祴鍊间笉鎴愬姛
+ DynamicFormViewPlugInProxy eventProxy = billView.GetService();
+ eventProxy.FireOnLoad();
+ // 濉啓姣忔棩鎵撳崱璁板綍
+ CreateItem(billView, ctx, FOrgId, FNumber, FName);
+ // 淇濆瓨姣忔棩鎵撳崱璁板綍
+ OperateOption saveOption = OperateOption.Create();
+ Form form = billView.BillBusinessInfo.GetForm();
+ if (form.FormIdDynamicProperty != null)
+ {
+ form.FormIdDynamicProperty.SetValue(billView.Model.DataObject, form.Id);
+ }
+ //淇濆瓨宸ョ▼椤圭洰
+ CommonHelper.SaveBill(ctx, billView, saveOption, true, out FID, out FBILLNO);
+ return FID;
+ }
+
+
+
+ private static void CreateItem(IBillView billView, Context ctx, string FOrgId, string FNumber, string FName)
+ {
+ //璧嬪煎垱寤虹粍缁
+ billView.Model.SetValue("FCreateOrgId", FOrgId, 0);
+ //璧嬪间娇鐢ㄧ粍缁
+ billView.Model.SetValue("FUseOrgId", FOrgId, 0);
+ //璧嬪肩紪鐮
+ billView.Model.SetValue("FNumber", FNumber, 0);
+ //璧嬪煎悕绉
+ billView.Model.SetValue("FName", FName, 0);
+ }
+
+ ///
+ /// 璋冪敤PMS鎺ュ彛
+ ///
+ ///
+ ///
+ ///
+ public static string PMSLogin(DynamicObjectCollection data, Context ctx, string Json, string FType)
+ {
+ String userName = "test";
+ String password = "crm@2022.PMS";
+ String url_str = "http://portal.pmac.com.cn/distributor.action?serviceName=";
+ String getUserBinding_url = url_str + "clogin&userName=" + userName + "&password=" + password;
+
+ WebClient client = new WebClient();
+ client.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded";
+ client.Encoding = Encoding.UTF8;
+ string result = client.UploadString(getUserBinding_url, "");
+ SaveTxt(getUserBinding_url,
+ string.Format(@"D:\Api鏃ュ織\{2}\鍒涘缓寰呭垎閰嶉」鐩甛{0}\{3}\鐧诲綍\{1}.txt",
+ Convert.ToString(data[0]["鍗曟嵁缂栧彿"]), DateTime.Now.ToString("yyyyMMddHHmmssfff"), ctx.DataCenterName, FType), result);
+ JObject jo = (JObject)JsonConvert.DeserializeObject(result);//鑾峰彇binding
+ string userBinding = jo["binding"] == null ? "" : jo["binding"].ToString();
+ return userBinding;
+ }
+
+
+
+ public static string PushPMSItem(DynamicObjectCollection data, Context ctx, string Json, string FType, string Token)
+ {
+ //String userName = "test";
+ //String password = "crm@2022.PMS";
+ //String url_str = "http://portal.pmac.com.cn/distributor.action?serviceName=";
+ //String getUserBinding_url = url_str + "clogin&userName=" + userName + "&password=" + password;
+
+ //WebClient client = new WebClient();
+ //client.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded";
+ //client.Encoding = Encoding.UTF8;
+ //string result = client.UploadString(getUserBinding_url, "");
+ //SaveTxt(getUserBinding_url,
+ // string.Format(@"D:\Api鏃ュ織\{2}\鍒涘缓寰呭垎閰嶉」鐩甛{0}\鐧诲綍\{1}.txt",
+ // Convert.ToString(data[0]["鍗曟嵁缂栧彿"]), DateTime.Now.ToString("yyyyMMddHHmmssfff"), ctx.DataCenterName), result);
+ //JObject jo = (JObject)JsonConvert.DeserializeObject(result);//鑾峰彇binding
+ string userBinding = Token;
+
+ string up_url = "";
+ up_url = "http://portal.pmac.com.cn/distributor.action?serviceName=insert&objectApiName=" + FType + "&data=[" + Json + "]&binding=" + userBinding;
+ WebClient client2 = new WebClient();
+ client2.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded";
+ client2.Encoding = Encoding.UTF8;
+ String result2 = client2.UploadString(up_url, "");
+ //鍐欏叆Txt鍒版湇鍔″櫒鍦板潃
+ SaveTxt(up_url,
+ string.Format(@"D:\Api鏃ュ織\{2}\鍒涘缓寰呭垎閰嶉」鐩甛{0}\{3}\鍒涘缓寰呭垎閰嶉」鐩甛{1}.txt",
+ Convert.ToString(data[0]["鍗曟嵁缂栧彿"]), DateTime.Now.ToString("yyyyMMddHHmmssfff"), ctx.DataCenterName, FType), result2);
+ return result2;
+ }
+
+
+
+
+
+
+
+
+ public static BillOpenParameter CreateOpenParameter(Kingdee.BOS.Context ctx, FormMetadata meta)
+ {
+ Form form = meta.BusinessInfo.GetForm();
+ // 鎸囧畾FormId, LayoutId
+ BillOpenParameter openParam = new BillOpenParameter(form.Id, meta.GetLayoutInfo().Id);
+ // 鏁版嵁搴撲笂涓嬫枃
+ openParam.Context = ctx;
+ // 鏈崟鎹ā鍨嬩娇鐢ㄧ殑MVC妗嗘灦
+ openParam.ServiceName = form.FormServiceName;
+ // 闅忔満浜х敓涓涓笉閲嶅鐨凱ageId锛屼綔涓鸿鍥剧殑鏍囪瘑
+ openParam.PageId = Guid.NewGuid().ToString();
+ // 鍏冩暟鎹
+ openParam.FormMetaData = meta;
+ // 鐣岄潰鐘舵侊細鏂板 (淇敼銆佹煡鐪)
+ openParam.Status = OperationStatus.ADDNEW;
+ // 鍗曟嵁涓婚敭锛氭湰妗堜緥婕旂ず鏂板缓鍟嗗搧绫诲瀷锛屼笉闇瑕佽缃富閿
+ openParam.PkValue = null;
+ // 鐣岄潰鍒涘缓鐩殑锛氭櫘閫氭棤鐗规畩鐩殑 锛堜负宸ヤ綔娴併佷负涓嬫帹銆佷负澶嶅埗绛夛級
+ openParam.CreateFrom = CreateFrom.Default;
+ // 鍩虹璧勬枡鍒嗙粍缁村害锛氬熀纭璧勬枡鍏佽娣诲姞澶氫釜鍒嗙粍瀛楁锛屾瘡涓垎缁勫瓧娈典細鏈変竴涓垎缁勭淮搴
+ // 鍏蜂綋鍒嗙粍缁村害Id锛岃鍙傞槄 form.FormGroups 灞炴
+ openParam.GroupId = "";
+ // 鍩虹璧勬枡鍒嗙粍锛氬鏋滈渶瑕佷负鏂板缓鐨勫熀纭璧勬枡鎸囧畾鎵鍦ㄥ垎缁勶紝璇疯缃灞炴
+ openParam.ParentId = 0;
+ // 鍗曟嵁绫诲瀷
+ openParam.DefaultBillTypeId = "";
+ // 涓氬姟娴佺▼
+ openParam.DefaultBusinessFlowId = "";
+ // 涓讳笟鍔$粍缁囨敼鍙樻椂锛屼笉鐢ㄥ脊鍑烘彁绀虹晫闈
+ openParam.SetCustomParameter("ShowConfirmDialogWhenChangeOrg", false);
+ // 鎻掍欢
+ List plugs = form.CreateFormPlugIns();
+ openParam.SetCustomParameter(FormConst.PlugIns, plugs);
+ PreOpenFormEventArgs args = new PreOpenFormEventArgs(ctx, openParam);
+ foreach (var plug in plugs)
+ {// 瑙﹀彂鎻掍欢PreOpenForm浜嬩欢锛屼緵鎻掍欢纭鏄惁鍏佽鎵撳紑鐣岄潰
+ plug.PreOpenForm(args);
+ }
+ if (args.Cancel == true)
+ {// 鎻掍欢涓嶅厑璁告墦寮鐣岄潰
+ // 鏈渚嬩笉鐞嗕細鎻掍欢鐨勮瘔姹傦紝缁х画....
+ }
+ // 杩斿洖
+ return openParam;
+ }
+
+ public static IBillView CreateBillView(Kingdee.BOS.Context ctx, string FKEY)
+ {
+ // 璇诲彇鍟嗗搧绫诲瀷鐨勫厓鏁版嵁
+ FormMetadata meta = MetaDataServiceHelper.Load(ctx, FKEY) as FormMetadata;
+ Form form = meta.BusinessInfo.GetForm();
+ // 鍒涘缓鐢ㄤ簬寮曞叆鏁版嵁鐨勫崟鎹畍iew
+ Type type = Type.GetType("Kingdee.BOS.Web.Import.ImportBillView,Kingdee.BOS.Web");
+ var billView = (IDynamicFormViewService)Activator.CreateInstance(type);
+ // 寮濮嬪垵濮嬪寲billView锛
+ // 鍒涘缓瑙嗗浘鍔犺浇鍙傛暟瀵硅薄锛屾寚瀹氬悇绉嶅弬鏁帮紝濡侳ormId, 瑙嗗浘(LayoutId)绛
+ BillOpenParameter openParam = CommonHelper.CreateOpenParameter(ctx, meta);
+ // 鍔ㄦ侀鍩熸ā鍨嬫湇鍔℃彁渚涚被锛岄氳繃姝ょ被锛屾瀯寤篗VC瀹炰緥
+ var provider = form.GetFormServiceProvider();
+ billView.Initialize(openParam, provider);
+ return billView as IBillView;
+ }
+
+
+
+
+ ///
+ /// 淇濆瓨鍗曟嵁
+ ///
+ ///
+ ///
+ ///
+ /// 鏄惁鑷姩鎻愪氦瀹℃牳
+ public static void SaveBill(Context ctx, IBillView billView, OperateOption saveOption, bool IsAutoSubmitAudit, out string Id, out string FBILLNO)
+ {
+ FBILLNO = "";
+ Id = "";
+ // 璋冪敤淇濆瓨鎿嶄綔
+ IOperationResult saveResult = BusinessDataServiceHelper.Save(
+ ctx,
+ billView.BillBusinessInfo,
+ billView.Model.DataObject,
+ saveOption,
+ "Save");
+ // 鏄剧ず澶勭悊缁撴灉
+ if (saveResult == null)
+ {
+ billView.ShowErrMessage("鏈煡鍘熷洜瀵艰嚧淇濆瓨澶辫触锛");
+ return;
+ }
+ else if (saveResult.IsSuccess == true)
+ {// 淇濆瓨鎴愬姛锛岀洿鎺ユ樉绀
+ billView.ShowOperateResult(saveResult.OperateResult);
+ object[] pkArray = new object[] { saveResult.OperateResult[0].PKValue };
+ //鑾峰彇淇濆瓨鎴愬姛鐨勫崟鎹紪鍙
+ //FBillno = saveResult.OperateResult[0].Number;
+ //鑾峰彇淇濆瓨鎴愬姛鐨凢ID
+ Id = Convert.ToString(pkArray[0]);
+ FBILLNO = saveResult.OperateResult[0].Number;
+ //鏄惁鑷姩鎻愪氦瀹℃牳
+ if (IsAutoSubmitAudit)
+ {
+ OperateOption submitOption = OperateOption.Create();
+ //鎻愪氦
+ if (Submit(ctx, Convert.ToString(pkArray[0]), billView.BusinessInfo.GetForm().Id) == "鎻愪氦鎴愬姛锛")
+ {
+ //濡傛灉鎻愪氦鎴愬姛,鍒欒繘琛屽鏍
+ Audit(ctx, Convert.ToString(pkArray[0]), billView.BusinessInfo.GetForm().Id);
+ }
+ }
+ return;
+ }
+ else if (saveResult.InteractionContext != null
+ && saveResult.InteractionContext.Option.GetInteractionFlag().Count > 0)
+ {// 淇濆瓨澶辫触锛岄渶瑕佺敤鎴风‘璁ら棶棰
+
+ }
+ // 淇濆瓨澶辫触锛屾樉绀洪敊璇俊鎭
+ if (saveResult.IsShowMessage)
+ {
+ saveResult.MergeValidateErrors();
+ billView.ShowOperateResult(saveResult.OperateResult);
+ return;
+ }
+ }
+
+
+ ///
+ /// 瀹℃牳鍗曟嵁
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static string Audit(Context ctx, string fid, string Key)
+ {
+ //澹版槑閿欒淇℃伅鍙橀噺
+ string _Message = string.Empty;
+ #region 瀹℃牳
+ //鑾峰彇鍗曟嵁淇℃伅
+ FormMetadata meta = MetaDataServiceHelper.Load(ctx, Key) as FormMetadata;
+ var data1 = BusinessDataServiceHelper.LoadSingle(ctx, fid, meta.BusinessInfo.GetDynamicObjectType());
+ object[] idlist = new object[1];
+ idlist[0] = fid;
+ //瀹℃牳
+ OperateOption auditOption = OperateOption.Create();
+ //auditOption.SetIgnoreWarning(true);
+ auditOption.SetIgnoreWarning(false);
+ auditOption.SetIgnoreInteractionFlag(true);
+ auditOption.AddInteractionFlag("STK_InvCheckResult");// 璺宠繃搴忓垪鍙锋牎楠
+ IOperationResult auditResult = BusinessDataServiceHelper.Audit(ctx, meta.BusinessInfo, idlist, auditOption);
+ //瀹℃牳鎴愬姛
+ if (auditResult.IsSuccess == true)
+ {
+ _Message = "瀹℃牳鎴愬姛锛";
+ }
+ //瀹℃牳澶辫触
+ else
+ {
+ //閬嶅巻閿欒淇℃伅骞舵嫾鎺
+ foreach (var item in auditResult.ValidationErrors)
+ {
+ _Message = _Message + string.Format("{0}\r\n", item.Message);
+ }
+ if (auditResult.InteractionContext != null)
+ {
+ _Message = _Message + auditResult.InteractionContext.SimpleMessage + "\r\n";
+ }
+ _Message = _Message.Remove(_Message.LastIndexOf("\r\n"), 2);
+ }
+ //杩斿洖閿欒淇℃伅
+ return _Message;
+ #endregion
+ }
+ ///
+ /// 鎻愪氦鍗曟嵁
+ ///
+ ///
+ ///
+ ///
+ ///
+
+ public static string Submit(Context ctx, string fid, string Key)
+ {
+ //澹版槑閿欒淇℃伅鍙橀噺
+ string _Message = string.Empty;
+ //鑾峰彇鍗曟嵁鍏冩暟鎹
+ FormMetadata meta = MetaDataServiceHelper.Load(ctx, Key) as FormMetadata;
+ //鏍规嵁鍗曟嵁鍐呯爜鑾峰彇瀵瑰簲鍗曟嵁鏁版嵁鍖
+ var data1 = BusinessDataServiceHelper.LoadSingle(ctx, fid, meta.BusinessInfo.GetDynamicObjectType());
+ //澹版槑鍗曟嵁鍐呯爜闆嗗悎
+ object[] idlist = new object[1];
+ //灏嗘帴鍙g殑鍗曟嵁鍐呯爜娣诲姞鍒伴泦鍚堜腑
+ idlist[0] = fid;
+ //鎻愪氦
+ OperateOption submitOption = null;
+ //璋冪敤鎻愪氦鎿嶄綔
+ IOperationResult subResult = BusinessDataServiceHelper.Submit(ctx, meta.BusinessInfo, idlist, "Submit", submitOption);
+ //鎻愪氦鎴愬姛
+ if (subResult.IsSuccess == true)
+ {
+ _Message = "鎻愪氦鎴愬姛锛";
+ }
+ //鎻愪氦澶辫触
+ else
+ {
+ //閬嶅巻閿欒淇℃伅骞舵嫾鎺
+ foreach (var item in subResult.ValidationErrors)
+ {
+ _Message = _Message + string.Format("{0}\r\n", item.Message);
+ }
+ if (subResult.InteractionContext != null)
+ {
+ _Message = _Message + subResult.InteractionContext.SimpleMessage + "\r\n";
+ }
+ _Message = _Message.Remove(_Message.LastIndexOf("\r\n"), 2);
+ }
+ //杩斿洖閿欒淇℃伅
+ return _Message;
+ }
+
+
+ ///
+ /// 鍒嗛厤
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static string Allocate(Context ctx, string fid, string Key, string orgId, string OrgName)
+ {
+ //澹版槑閿欒淇℃伅鍙橀噺
+ string _Message = string.Empty;
+ //鑾峰彇鍗曟嵁鍏冩暟鎹
+ FormMetadata meta = MetaDataServiceHelper.Load(ctx, Key) as FormMetadata;
+ //鏍规嵁鍗曟嵁鍐呯爜鑾峰彇瀵瑰簲鍗曟嵁鏁版嵁鍖
+ var data1 = BusinessDataServiceHelper.LoadSingle(ctx, fid, meta.BusinessInfo.GetDynamicObjectType());
+ //澹版槑鍗曟嵁鍐呯爜闆嗗悎
+ object[] idlist = new object[1];
+ //灏嗘帴鍙g殑鍗曟嵁鍐呯爜娣诲姞鍒伴泦鍚堜腑
+ idlist[0] = fid;
+ //鎻愪氦
+ OperateOption submitOption = null;
+ var allocateParameter = new Kingdee.BOS.Core.Metadata.Operation.AllocateParameter
+ (meta.BusinessInfo, meta.InheritPath,
+ 1, BOSEnums.Enu_AllocateType.Allocate, "Allocate");
+ allocateParameter.PkId = new List