From d6b550ef3cb48eb24aee1daee940cf77602c371c Mon Sep 17 00:00:00 2001 From: tangfutang Date: Mon, 21 Sep 2020 18:30:12 +0800 Subject: [PATCH 01/17] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=A4=A9=E6=B4=A5?= =?UTF-8?q?=E4=B8=BB=E4=BD=93=E6=89=B9=E5=87=86=E5=87=BD=E3=80=81=E7=8B=AE?= =?UTF-8?q?=E6=A1=A5=E5=90=88=E5=90=8C=E5=B8=A6=E5=85=A5=E4=BB=98=E6=AC=BE?= =?UTF-8?q?=E7=94=B3=E8=AF=B7=E8=B5=84=E6=96=99=E6=B8=85=E5=8D=95=E3=80=81?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BA=A7=E5=93=81=E5=90=8D=E7=A7=B0=E5=90=8C?= =?UTF-8?q?=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ProductConfig/ProductInfo.jsp | 4 + .../Flow/RentNotify/LetterApprovalList.jsp | 13 ++- WebContent/fileTemplate/批准函 .docx | Bin 0 -> 43291 bytes .../app/als/prd/manager/ProductManager.java | 9 ++ src_sql/投产SQL/v20200915/tft_20200915.sql | 26 ++++++ .../PaymentContractFileShiQiao.java | 78 ++++++++++++++++++ 6 files changed, 129 insertions(+), 1 deletion(-) create mode 100644 WebContent/fileTemplate/批准函 .docx create mode 100644 src_tenwa/com/tenwa/lease/flow/project/commbusiness/PaymentContractFileShiQiao.java diff --git a/WebContent/ProductManage/ProductConfig/ProductInfo.jsp b/WebContent/ProductManage/ProductConfig/ProductInfo.jsp index a943a71c0..e58e262e8 100644 --- a/WebContent/ProductManage/ProductConfig/ProductInfo.jsp +++ b/WebContent/ProductManage/ProductConfig/ProductInfo.jsp @@ -47,6 +47,10 @@ include file="/Frame/resources/include/ui/include_info.jspf"%> } function specificInfo(){ + var typeNo = getItemValue(0,getRow(),"TypeNo"); + var typeName = getItemValue(0,getRow(),"TypeName"); + AsControl.RunJavaMethodTrans("com.amarsoft.app.als.prd.manager.ProductManager","updateProductName","productID="+typeNo+",productName="+typeName); + document.getElementById("sys_sub_page_frame_GGDY").parentNode.parentNode.style.display = "none"; var typeNo = getItemValue(0,getRow(),"TypeNo"); var productType1 = getItemValue(0,getRow(),"Attribute1");//Ʒ diff --git a/WebContent/Tenwa/Lease/Flow/RentNotify/LetterApprovalList.jsp b/WebContent/Tenwa/Lease/Flow/RentNotify/LetterApprovalList.jsp index c6d7b97ef..e71700861 100644 --- a/WebContent/Tenwa/Lease/Flow/RentNotify/LetterApprovalList.jsp +++ b/WebContent/Tenwa/Lease/Flow/RentNotify/LetterApprovalList.jsp @@ -95,6 +95,7 @@ } function generateQuotation(){ var projectId=getItemValueArray(0,"ID"); + var subjectids=getItemValueArray(0,"subjectid"); var number = 0; if(typeof(projectId)=="undefined"||projectId==null||projectId==""){alert("ѡ");return;} for(var i=0;i%Fhef8ySVR}nQ(BgY(>U(Tw^ zs?1c71_prw_@{)+?F;;K{$B<1=fcF^Si#BO!I@s+hYaPX0pedW{~;`J9Y6p8M<4(I zg#Sur=-@!-VQZ6{IBgfqfDm$>`UV%ljWOnb$RQ=^T(u!FcZ{KF2CUZKVnZ&q-9x4l zqBm)2t`@_8x%=2$*$r(mSgP^ri1CUCK?Y4Xk@}r^9n^k}DJ?2!O=)nn)AwS1_Yv}} zMKzZee5(_}K;8RWjTVuqCMYaxt~PWtr^K$pRViH}PcEll?YA@VKoLn)8AKhL2%u=e zn?SF$j^2g8F!Z<<-+k&%3NRT*xY+U%kf*)lS$#rFe}(&PUYdbKj3WDP@KPutqS#iz zVwBZHO{cOo9E#t;z~|p7I|s?Ew5+N#J2;e?(o)wMY=YaV?k(yZMlInpkMYPAFa|FS z+mF^)mG(a^554cb#{gG-wyBg8Tt(o=eWTc=Rx=f@p~-`M_k35SI0qaqm*LRQxbC;- z6q(&6f=s$4{T?ioL9#rOK^94JBlA2_NiM$JdanGN)xp1$b7Kng9XR(0E~q zow$~0oArbg0Se8Q6FLcSLLj-Q0AghM&2RtZfg{f*dR5!MCR5E=1Sp6{QD|D0X6%wH z_epqHb0Br6Lyb{PtHB}}7jLAtO1ppq7Bw6ylOa< z4b=T{p2l%}m{%VN4wADUl!LDQpbhZNR9*yEDGE=MFQW@oB9Jf~D5Wt248`9YH)G&S zbB+pphRAvIcV1<*_gI<{`O{VGw3o4}svv4JEaiy|Mz@@7lw-4&md`@;- zU3yzYz@9C#e0llXJ9_;3c*Y;v7x$>T{k?#~`^ky&;gp=FBu4YQ1iN?%O}2htk%!R# zsfE)%!-mfv^!Ts#!5Z&bY#e8KbNlQO#}043iYSaw7?e z%RqXFcRvnZoY1|$8>&9F*E_a-vpj7WgDtDNe)Z^7!f!~49Qx7PAmr5*o*t}*w_Se~XZiHTtr2?`&Lw;w^Y z%5O>4FCtCzx}5haLdS$Q0eU&8^wLj^k+wi0DzaP>~M;QE7K$@TzRqgUr%Cr zF}}DJFLq2F-JCnGUWcWb5x|IN8ggRsOt`-HU(dbXtytyj#uUo%0Q)XDugUX7lW7NA zTTA+55+%PLltyljbjTCOc8#4{u_F(qd;Z+IHlbu@RVtXqcY=F+ix(q_$%}a+#Y;!z zO1wtOJ@PP@$2|Jf`DlJs&PcTE(a!KJ`{9jq2#;)ugc$_KErx29p=ybU221Ox5Ina; zx5W>fxmVkcsc}K3MLwBk3CR@IGw>l%)fqm)vj

b_0!GqNVp*7wkTK@_zg>9R13h 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 B`nCW7 literal 0 HcmV?d00001 diff --git a/src_prd/com/amarsoft/app/als/prd/manager/ProductManager.java b/src_prd/com/amarsoft/app/als/prd/manager/ProductManager.java index 1c7934f4c..86ec4db7d 100644 --- a/src_prd/com/amarsoft/app/als/prd/manager/ProductManager.java +++ b/src_prd/com/amarsoft/app/als/prd/manager/ProductManager.java @@ -596,4 +596,13 @@ public class ProductManager{ return "SUCCESS"; } + + public void updateProductName(JBOTransaction tx) throws Exception { + BizObjectManager pslManager = JBOFactory.getFactory().getManager(PRD_SPECIFIC_LIBRARY.CLASS_NAME,tx); + BizObject psl = pslManager.createQuery(" productid=:productid ").setParameter("productid", productID).getSingleResult(true); + if(psl!=null && (!psl.getAttribute("SPECIFICNAME").getString().equals(productName))){ + psl.setAttributeValue("SPECIFICNAME", productName); + pslManager.saveObject(psl); + } + } } diff --git a/src_sql/投产SQL/v20200915/tft_20200915.sql b/src_sql/投产SQL/v20200915/tft_20200915.sql index 9ac90860b..5d84f9920 100644 --- a/src_sql/投产SQL/v20200915/tft_20200915.sql +++ b/src_sql/投产SQL/v20200915/tft_20200915.sql @@ -312,6 +312,9 @@ Insert Into awe_do_library (dono,colindex,sortno,isinuse,coltablename,colactualn Insert Into awe_do_library (dono,colindex,sortno,isinuse,coltablename,colactualname,colname,coltype,coldefaultvalue,colheader,colunit,colcolumntype,coleditstyle,colcheckformat,colalign,coleditsourcetype,coleditsource,colhtmlstyle,collimit,colvisible,colreadonly,colrequired,colsortable,isfilter,colspan,isautocomplete,groupid,colfilterrefid,inputuser,inputtime,updateuser,updatetime,isaudit,colfilterattrs,isupdate,parentcolindex,tips,colinnerbtevent,colfilteroptions) Values ('LbEquipmentCarList','1590','1590','1','lclpit','is_delay','is_delay','String','','Ƿύӳ','','1','Select','1','1','Code','YesNo','','32','1','0','0','1','0',0,'','','','SYS_Designer','2020/09/11 15:11:59','SYS_Designer','2020/09/11 15:16:22','0','','1','','','',''); Insert Into awe_do_library (dono,colindex,sortno,isinuse,coltablename,colactualname,colname,coltype,coldefaultvalue,colheader,colunit,colcolumntype,coleditstyle,colcheckformat,colalign,coleditsourcetype,coleditsource,colhtmlstyle,collimit,colvisible,colreadonly,colrequired,colsortable,isfilter,colspan,isautocomplete,groupid,colfilterrefid,inputuser,inputtime,updateuser,updatetime,isaudit,colfilterattrs,isupdate,parentcolindex,tips,colinnerbtevent,colfilteroptions) Values ('LbEquipmentCarList','1630','1630','1','lclpit','delay_date','delay_date','String','','ӳ','','1','Text','1','1','','','','32','1','0','0','1','0',0,'','','','SYS_Designer','2020/09/11 15:11:59','SYS_Designer','2020/09/11 15:11:59','','','1','','','',''); +-- ޸չҳ· +delete from Code_Library where codeno='MortgageFileFlow0010' and itemno='0040'; +Insert Into Code_Library (codeno,itemno,itemname,bankno,sortno,isinuse,itemdescribe,itemattribute,relativecode,attribute1,attribute2,attribute3,attribute4,attribute5,attribute6,attribute7,attribute8,inputuser,inputorg,inputtime,updateuser,updatetime,remark,helptext) Values ('MortgageFileFlow0010','0040','չ','','0040','1','/Tenwa/Lease/Flow/Comm/LBEquipment_Car/PayLBEquipmentList.jsp','','','','','','','','','','','SYS_Designer',null,'2018/09/27 11:20:48','SYS_Designer','2020/09/11 10:51:45','',''); -- չģ޸IJѯ delete from AWE_DO_CATALOG where dono='LbCarLicensePlateInfoTemp'; Insert Into AWE_DO_CATALOG (dono,doname,dodescribe,dotype,doclass,isinuse,colcount,modeid,jboclass,jbofrom,jbowhere,jbogroup,jboorder,businessprocess,exportflag,inputuser,inputtime,updateuser,updatetime,remark,isvalidate,parent) Values ('LbCarLicensePlateInfoTemp','չʱģ',null,'30',null,'1','2','default','jbo.com.tenwa.lease.comm.LB_CAR_LICENSE_PLATE_INFO_TEMP','O','O.flowunid=:FlowUnid and O.frame_number=:frameNumber','','','com.amarsoft.awe.dw.handler.impl.CommonHandler',null,'SYS_Designer','2018/08/09 19:23:31','SYS_Designer','2020/09/11 13:34:24','','1',''); @@ -344,4 +347,27 @@ insert into `bf_templatelable` (`ID`, `LABLEID`, `TEMPLATEID`, `INPUTUSERID`, `I insert into `bf_templatelable` (`ID`, `LABLEID`, `TEMPLATEID`, `INPUTUSERID`, `INPUTORGID`, `UPDATEUSERID`, `UPDATEORGID`, `INPUTTIME`, `UPDATETIME`) values('f5d8d2ba671e4e42a2f5e3937a3c8080','755698c1c27a43efa6c23310757c6163','93e4194efb604c71b394d902b2060da8',NULL,NULL,NULL,NULL,NULL,NULL); insert into `bf_templatelable` (`ID`, `LABLEID`, `TEMPLATEID`, `INPUTUSERID`, `INPUTORGID`, `UPDATEUSERID`, `UPDATEORGID`, `INPUTTIME`, `UPDATETIME`) values('f91300589f994439be7b8bee05906540','ced1455267d64183ba1b270a9eda6089','93e4194efb604c71b394d902b2060da8',NULL,NULL,NULL,NULL,NULL,NULL); +-- ҳʷ +insert into LB_EQUIPMENT_CAR_TEMP(id,project_id,contract_id,BRAND,FRAME_NUMBER,CAR_COLOUR,flowunid,INPUTTIME,NOW_TOTAL) (select REPLACE(UUID(),'-',''),project_id,contract_id,FRAME_BRAND,FRAME_NUMBER2,FRAME_COLOR,flowunid,DATE_FORMAT (CURDATE(),'%Y/%m/%d'),0.00 from LB_EQUIPMENT_CAR_TEMP where FRAME_NUMBER2 is not null or FRAME_BRAND is not null or FRAME_COLOR is not null); +insert into LB_EQUIPMENT_CAR(id,project_id,contract_id,BRAND,FRAME_NUMBER,CAR_COLOUR,INPUTTIME,NOW_TOTAL) (select REPLACE(UUID(),'-',''),project_id,contract_id,FRAME_BRAND,FRAME_NUMBER2,FRAME_COLOR,DATE_FORMAT (CURDATE(),'%Y/%m/%d'),0.00 from LB_EQUIPMENT_CAR where FRAME_NUMBER2 is not null or FRAME_BRAND is not null or FRAME_COLOR is not null); + +-- ޸׼ǩ +delete from BF_LABLECONFIG where ID='fd46596832164f39afc5b47e6711d1bd'; +insert into `BF_LABLECONFIG` (`ID`, `TAGNUMBER`, `TAGNAME`, `TITLE`, `TAGTYPE`, `VALUETYPE`, `VALUEFIELD`, `VALUEMETHOD`, `THOUSANDSFIELD`, `ISSHOEINDEX`, `REMARK`, `INPUTUSERID`, `INPUTORGID`, `UPDATEUSERID`, `UPDATEORGID`, `INPUTTIME`, `UPDATETIME`, `OPERATORCLASS`) values('fd46596832164f39afc5b47e6711d1bd','5000','LetterApproval','׼ǩ','tag_type2','value_type3','customer_name,fullname,certid,MODEL,EQUIP_AMT,FIRST_PAYMENT,CLEAN_LEASE_MONEY,CAUTION_MONEY,GPS_FEE,INCOME_NUMBER,rent,DISTRIBUTOR_NAME,inputName,datetim,subjectnameone,subjectnametwo','SELECT lul.customer_name,vpci.fullname,vpci.certid,lec.MODEL,lpc.EQUIP_AMT,lpc.FIRST_PAYMENT,lpc.CLEAN_LEASE_MONEY,lpc.CAUTION_MONEY,lpc.GPS_FEE,lpc.INCOME_NUMBER,lrp.rent,di.DISTRIBUTOR_NAME,lpi.inputName,DATE_FORMAT(lpi.end_date,\'%Y%m%d\') datetim,:{subjectnameone} subjectnameone,:{subjectnametwo} subjectnametwo FROM lb_union_lessee lul LEFT JOIN vi_personandcompany_info vpci ON lul.project_id=vpci.projectId LEFT JOIN LB_EQUIPMENT_CAR lec ON lec.project_id=lul.project_id LEFT JOIN lc_proj_condition lpc ON lpc.project_id=lul.project_id LEFT JOIN lc_proj_rent_plan lrp ON lrp.project_id=lul.project_id AND lrp.contract_id IS NULL AND lrp.plan_list=\'2\' LEFT JOIN lb_project_info lpi ON lpi.id=lul.project_id LEFT JOIN DISTRIBUTOR_INFO di ON di.distributor_no=lpi.distributor_id WHERE lul.project_id=:{PROJECTID}',NULL,'N',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +-- бҳֶ +Insert Into awe_do_library (dono,colindex,sortno,isinuse,coltablename,colactualname,colname,coltype,coldefaultvalue,colheader,colunit,colcolumntype,coleditstyle,colcheckformat,colalign,coleditsourcetype,coleditsource,colhtmlstyle,collimit,colvisible,colreadonly,colrequired,colsortable,isfilter,colspan,isautocomplete,groupid,colfilterrefid,inputuser,inputtime,updateuser,updatetime,isaudit,colfilterattrs,isupdate,parentcolindex,tips,colinnerbtevent,colfilteroptions) Values ('LetterApprovaList','1260','1260','1','O','subjectid','subjectid','String','','id','','1','Text','1','1','','','','32','0','0','0','1','0',0,'','','','SYS_Designer','2020/09/18 15:38:46','SYS_Designer','2020/09/18 15:38:46','0','','1','','','',''); + +-- еġڡΪԤƻڡ +delete from awe_do_library where dono='LoanSimulationBasicInfo' and colindex='01440'; +Insert Into awe_do_library (dono,colindex,sortno,isinuse,coltablename,colactualname,colname,coltype,coldefaultvalue,colheader,colunit,colcolumntype,coleditstyle,colcheckformat,colalign,coleditsourcetype,coleditsource,colhtmlstyle,collimit,colvisible,colreadonly,colrequired,colsortable,isfilter,colspan,isautocomplete,groupid,colfilterrefid,inputuser,inputtime,updateuser,updatetime,isaudit,colfilterattrs,isupdate,parentcolindex,tips,colinnerbtevent,colfilteroptions) Values ('LoanSimulationBasicInfo','01440','01440','1','O','DefaultDueDay','DefaultDueDay','String','','Ԥƻ','','1','Select','1','1','Code','fixed_rent_day','',null,'1','0','1','1','0',0,'','cal_info','','SYS_Designer','2018/07/01 18:29:14','SYS_Designer','2020/09/21 13:32:44','0','','1','','','',''); + +-- ʨŸ뽫ͬļ嵥 +insert into `class_method` (`classname`, `methodname`, `methodtype`, `methoddescribe`, `returntype`, `methodargs`, `methodcode`, `inputuser`, `inputorg`, `inputtime`, `updateuser`, `updatetime`, `remark`) values('','ʨŸ뽫ͬ嵥','Bizlet','ʨŸ뽫ͬ嵥','String','String ObjectNo','com.tenwa.lease.flow.project.commbusiness.PaymentContractFileShiQiao','','','','','',''); +-- ӳű +delete from FLOW_MODEL where FlowNo='FundPaymentCarFlow' and PhaseNo='0020'; +insert into `FLOW_MODEL` (`flowno`, `phaseno`, `phasetype`, `phasename`, `phasedescribe`, `phaseattribute`, `prescript`, `initscript`, `choicedescribe`, `choicescript`, `actiondescribe`, `actionscript`, `postscript`, `attribute1`, `attribute2`, `attribute3`, `attribute4`, `attribute5`, `attribute6`, `attribute7`, `attribute8`, `attribute9`, `attribute10`, `aaenabled`, `aapointinitscript`, `aapointcomp`, `aapointcompurl`, `standardtime1`, `standardtime2`, `costlob`, `strips`, `checklist`, `decisionscript`, `riskscanrule`, `buttonset2`, `inputuser`, `inputtime`, `updateuser`, `updatetime`, `distributerule`, `id`, `type`, `name`, `xcoordinate`, `ycoordinate`, `width`, `height`, `version`, `swimlane`, `nodetype`, `flowphasecontext`, `OPINIONSREQUIRED`, `isreadonly`, `flowpageconfig`, `flowprocessclass`, `flowpagecheck`, `backstepnexttype`, `backsteps`, `backscript`, `deletescript`, `phasescript`, `loadproductcheck`, `nextsteps`, `flowtiptype`, `remindnoticttype`, `flowoverdate`, `overnoticetype`, `overnoticeUser`) values('FundPaymentCarFlow','0020','1020','',NULL,NULL,'!.ύʱԶɾGPS״̬(#ObjectNo)+!.˻ύ(#ObjectNo)+!.ʨŸ뽫ͬ嵥(#ObjectNo)','toStringArray(\"#PhaseAction\",\",\",\" \",1)',NULL,'commroute',NULL,'[{usertype:\"ѡָؽɫ\",userinfo:\"800R00000016,\"}]','#PhaseOpinion1','closePage,doSubmit,backStep,signOpinion',NULL,'all_except',NULL,NULL,NULL,'01',NULL,NULL,NULL,NULL,NULL,NULL,NULL,'0','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'368','250','100','50','1',NULL,'TASK',NULL,'N','N','FundPaymentCarFlow010','Map paramMap=new HashMap();\r\nparamMap.put(\"TempletNo\", \"FlowPayDocList\");\r\nparamMap.put(\"isReview\", \"true\");\r\nTreeView.AddNodeUrlParam(\"Ͷ嵥\", paramMap);\r\nTreeView.updateNodeSetReadOnly(\"\",\"ReadOnly\");\r\nTreeView.addLastNodeByCode(\"11268\");\r\nTreeView.addBeforeNodeByCode(\"ͬб\",\"11532\");\r\nTreeView.deleteNode(\"ۿϢ\");','','backnextperson',NULL,'!.ӿƽ̨ҵ˻(#ObjectNo)',NULL,NULL,'N','(0030)',NULL,NULL,NULL,NULL,NULL); + + + + diff --git a/src_tenwa/com/tenwa/lease/flow/project/commbusiness/PaymentContractFileShiQiao.java b/src_tenwa/com/tenwa/lease/flow/project/commbusiness/PaymentContractFileShiQiao.java new file mode 100644 index 000000000..c2b0e033b --- /dev/null +++ b/src_tenwa/com/tenwa/lease/flow/project/commbusiness/PaymentContractFileShiQiao.java @@ -0,0 +1,78 @@ +package com.tenwa.lease.flow.project.commbusiness; + +import java.util.Map; + +import jbo.app.LB_DOCLIBRARY; +import jbo.app.tenwa.doc.LB_DOCATTRIBUTE; +import jbo.app.tenwa.doc.LB_DOC_CONTRACT_LIST; +import jbo.com.tenwa.entity.comm.flow.FLOW_BUSSINESS_OBJECT; + +import com.alibaba.fastjson.JSON; +import com.amarsoft.are.jbo.BizObject; +import com.amarsoft.are.jbo.BizObjectManager; +import com.amarsoft.are.jbo.JBOFactory; +import com.amarsoft.awe.util.Transaction; +import com.amarsoft.context.ASUser; +import com.tenwa.flow.baseBussion.BaseBussiness; +import com.tenwa.httpclient.resources.InterfacePlatformConfigure; +import com.tenwa.reckon.util.DateUtil; + +/** + * ҵ뽫ͬļ嵥Уʨţ + */ +public class PaymentContractFileShiQiao extends BaseBussiness { + + @Override + public Object run(Transaction Sqlca) throws Exception { + this.initBussinessParam(Sqlca); + if (this.getAttribute("serial") == null) return "true"; + String channel_shiqiao = InterfacePlatformConfigure.get("channel_shiqiao"); + if (this.getAttribute("channel") != null && this.getAttribute("channel").toString().equals(channel_shiqiao)){ + String projectId = this.getAttribute("ProjectId").toString(); + BizObjectManager ldlm = JBOFactory.getBizObjectManager(LB_DOCLIBRARY.CLASS_NAME, Sqlca); + BizObject ldl = ldlm.createQuery("select * from O left join jbo.app.tenwa.doc.LB_DOCRELATIVE ldr on O.relative_id=ldr.id where ldr.proj_id=:projectId and ldr.objecttype='FundPaymentCarFlow' and O.DOC_CLASS_ITEMNO='037001' and O.Serial_Num='1' ").setParameter("projectId", projectId).getSingleResult(true); + if(ldl != null ){ + String libraryId = ldl.getAttribute("id").getString(); + if( libraryId!=null && libraryId.length()>0){ + BizObjectManager ldclm = JBOFactory.getBizObjectManager(LB_DOC_CONTRACT_LIST.CLASS_NAME, Sqlca); + BizObject ldcl = ldclm.createQuery(" project_id=:project_id and file_flag='yes' ").setParameter("project_id", projectId).getSingleResult(false); + String attributeId = ldcl == null?"":ldcl.getAttribute("ATTRIBUTE_ID").getString(); + String contractFlowUnid = ldcl == null?"":ldcl.getAttribute("FLOW_UNID").getString(); + BizObjectManager fboMange = JBOFactory.getBizObjectManager(FLOW_BUSSINESS_OBJECT.CLASS_NAME); + BizObject fbo = fboMange.createQuery("flow_unid=:flow_unid").setParameter("flow_unid", contractFlowUnid).getSingleResult(false); + Map flowParms = JSON.parseObject(fbo.getAttribute("FixedFlowParam").getString(),Map.class); + String signType = flowParms.get("signType"); + if("Electronic".equals(signType)){ + BizObjectManager ldam = JBOFactory.getBizObjectManager(LB_DOCATTRIBUTE.CLASS_NAME, Sqlca); + BizObject lda = ldam.createQuery(" library_id=:library_id ").setParameter("library_id", libraryId).getSingleResult(true); + BizObject ldaMeta = ldam.createQuery(" id=:id ").setParameter("id", attributeId).getSingleResult(false); + if(lda!=null && ldaMeta!=null ){ + lda.setAttributeValue("FILEPATH", ldaMeta.getAttribute("FILEPATH").getString()); + lda.setAttributeValue("FULLPATH", ldaMeta.getAttribute("FULLPATH").getString()); + lda.setAttributeValue("FILENAME", ldaMeta.getAttribute("FILENAME").getString()); + lda.setAttributeValue("FILESIZE", ldaMeta.getAttribute("FILESIZE").getString()); + }else if(lda ==null && ldaMeta!=null ){ + String userId = this.getAttribute("CurUserID").toString(); + ASUser asUser = new ASUser(userId); + lda = ldam.newObject(); + lda.setAttributeValue("LIBRARY_ID", libraryId); + lda.setAttributeValue("FILEPATH", ldaMeta.getAttribute("FILEPATH").getString()); + lda.setAttributeValue("FULLPATH", ldaMeta.getAttribute("FULLPATH").getString()); + lda.setAttributeValue("FILENAME", ldaMeta.getAttribute("FILENAME").getString()); + lda.setAttributeValue("FILESIZE", ldaMeta.getAttribute("FILESIZE").getString()); + lda.setAttributeValue("INPUTUSERID", userId); + lda.setAttributeValue("INPUTORGID", asUser.getOrgID()); + lda.setAttributeValue("INPUTTIME", DateUtil.getSystemTimeByFormat("yyyy/MM/dd HH:mm:ss:sss")); + lda.setAttributeValue("CONTENT_TYPE", "application/pdf"); + lda.setAttributeValue("OBJECTTYPE", "FundPaymentCarFlow"); + } + ldam.saveObject(lda); + } + } + ldl.setAttributeValue("BUSINESS_CHECK", "DocCheck_0"); + ldlm.saveObject(ldl); + } + } + return "true"; + } +} From 7b661eca148658bdfad84957b8d5f4241138b829 Mon Sep 17 00:00:00 2001 From: zhangbb Date: Mon, 21 Sep 2020 19:31:09 +0800 Subject: [PATCH 02/17] =?UTF-8?q?1=EF=BC=8C=E5=85=B6=E5=AE=83=E6=94=AF?= =?UTF-8?q?=E4=BB=98=E5=A2=9E=E5=8A=A0=E7=BB=8F=E9=94=80=E5=95=86=E5=90=8D?= =?UTF-8?q?=E7=A7=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- WebContent/WEB-INF/etc/jbo/jbo_calc.xml | 1 + src_jbo/jbo/app/tenwa/calc/VI_SPLITTING_PAY.java | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/WebContent/WEB-INF/etc/jbo/jbo_calc.xml b/WebContent/WEB-INF/etc/jbo/jbo_calc.xml index 058128651..fe1f7758b 100644 --- a/WebContent/WEB-INF/etc/jbo/jbo_calc.xml +++ b/WebContent/WEB-INF/etc/jbo/jbo_calc.xml @@ -4420,6 +4420,7 @@ + diff --git a/src_jbo/jbo/app/tenwa/calc/VI_SPLITTING_PAY.java b/src_jbo/jbo/app/tenwa/calc/VI_SPLITTING_PAY.java index ce88732fc..b88c26476 100644 --- a/src_jbo/jbo/app/tenwa/calc/VI_SPLITTING_PAY.java +++ b/src_jbo/jbo/app/tenwa/calc/VI_SPLITTING_PAY.java @@ -18,6 +18,10 @@ public interface VI_SPLITTING_PAY{ */ public static final String distributor_id = "distributor_id"; /** + * distributor_name STRING(20)
+ */ + public static final String distributor_name = "distributor_name"; + /** * contract_id STRING(20)
*/ public static final String contract_id = "contract_id"; From f98ba20b5f1db5214eb14c42357cd6970302c265 Mon Sep 17 00:00:00 2001 From: tangfutang Date: Tue, 22 Sep 2020 10:42:46 +0800 Subject: [PATCH 03/17] =?UTF-8?q?=E9=A2=84=E5=AE=A1=E6=89=B9=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E5=88=9D=E5=AE=A1=E3=80=81=E5=A4=8D=E5=AE=A1=E5=8F=AF?= =?UTF-8?q?=E4=BB=A5=E7=9C=8B=E5=85=A8=E9=83=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Project/LbBeforeAppLication/LbBeforeAppLicationList.jsp | 6 +++++- src_sql/投产SQL/v20200915/tft_20200915.sql | 4 +++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/WebContent/Tenwa/Lease/Flow/Project/LbBeforeAppLication/LbBeforeAppLicationList.jsp b/WebContent/Tenwa/Lease/Flow/Project/LbBeforeAppLication/LbBeforeAppLicationList.jsp index ec8c7249b..16c4026e7 100644 --- a/WebContent/Tenwa/Lease/Flow/Project/LbBeforeAppLication/LbBeforeAppLicationList.jsp +++ b/WebContent/Tenwa/Lease/Flow/Project/LbBeforeAppLication/LbBeforeAppLicationList.jsp @@ -6,12 +6,16 @@ History Log: */ String userid = CurUser.getUserID(); + String orgID = CurUser.getOrgID(); ASObjectModel doTemp = new ASObjectModel("LbBeforeAppLicationList"); + if(!"8009011005".equals(orgID)){ + doTemp.appendJboWhere(" inputuserid='"+userid+"'"); + } ASObjectWindow dwTemp = new ASObjectWindow(CurPage,doTemp,request); dwTemp.Style="1"; //--ΪGrid-- dwTemp.ReadOnly = "1"; //ֻģʽ dwTemp.setPageSize(10); - dwTemp.genHTMLObjectWindow(userid); + //dwTemp.genHTMLObjectWindow(userid); //0Ƿչʾ 1 Ȩ޿ 2 չʾ 3ťʾ 4ť 5ť¼ 6 7 8 9ͼ꣬CSSʽ 10 String sButtons[][] = { diff --git a/src_sql/投产SQL/v20200915/tft_20200915.sql b/src_sql/投产SQL/v20200915/tft_20200915.sql index 5d84f9920..9a1b2783b 100644 --- a/src_sql/投产SQL/v20200915/tft_20200915.sql +++ b/src_sql/投产SQL/v20200915/tft_20200915.sql @@ -367,7 +367,9 @@ insert into `class_method` (`classname`, `methodname`, `methodtype`, `methoddesc delete from FLOW_MODEL where FlowNo='FundPaymentCarFlow' and PhaseNo='0020'; insert into `FLOW_MODEL` (`flowno`, `phaseno`, `phasetype`, `phasename`, `phasedescribe`, `phaseattribute`, `prescript`, `initscript`, `choicedescribe`, `choicescript`, `actiondescribe`, `actionscript`, `postscript`, `attribute1`, `attribute2`, `attribute3`, `attribute4`, `attribute5`, `attribute6`, `attribute7`, `attribute8`, `attribute9`, `attribute10`, `aaenabled`, `aapointinitscript`, `aapointcomp`, `aapointcompurl`, `standardtime1`, `standardtime2`, `costlob`, `strips`, `checklist`, `decisionscript`, `riskscanrule`, `buttonset2`, `inputuser`, `inputtime`, `updateuser`, `updatetime`, `distributerule`, `id`, `type`, `name`, `xcoordinate`, `ycoordinate`, `width`, `height`, `version`, `swimlane`, `nodetype`, `flowphasecontext`, `OPINIONSREQUIRED`, `isreadonly`, `flowpageconfig`, `flowprocessclass`, `flowpagecheck`, `backstepnexttype`, `backsteps`, `backscript`, `deletescript`, `phasescript`, `loadproductcheck`, `nextsteps`, `flowtiptype`, `remindnoticttype`, `flowoverdate`, `overnoticetype`, `overnoticeUser`) values('FundPaymentCarFlow','0020','1020','',NULL,NULL,'!.ύʱԶɾGPS״̬(#ObjectNo)+!.˻ύ(#ObjectNo)+!.ʨŸ뽫ͬ嵥(#ObjectNo)','toStringArray(\"#PhaseAction\",\",\",\" \",1)',NULL,'commroute',NULL,'[{usertype:\"ѡָؽɫ\",userinfo:\"800R00000016,\"}]','#PhaseOpinion1','closePage,doSubmit,backStep,signOpinion',NULL,'all_except',NULL,NULL,NULL,'01',NULL,NULL,NULL,NULL,NULL,NULL,NULL,'0','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'368','250','100','50','1',NULL,'TASK',NULL,'N','N','FundPaymentCarFlow010','Map paramMap=new HashMap();\r\nparamMap.put(\"TempletNo\", \"FlowPayDocList\");\r\nparamMap.put(\"isReview\", \"true\");\r\nTreeView.AddNodeUrlParam(\"Ͷ嵥\", paramMap);\r\nTreeView.updateNodeSetReadOnly(\"\",\"ReadOnly\");\r\nTreeView.addLastNodeByCode(\"11268\");\r\nTreeView.addBeforeNodeByCode(\"ͬб\",\"11532\");\r\nTreeView.deleteNode(\"ۿϢ\");','','backnextperson',NULL,'!.ӿƽ̨ҵ˻(#ObjectNo)',NULL,NULL,'N','(0030)',NULL,NULL,NULL,NULL,NULL); - +-- Ԥ󡢸ȫ +delete from AWE_DO_CATALOG where dono='LbBeforeAppLicationList'; +Insert Into AWE_DO_CATALOG (dono,doname,dodescribe,dotype,doclass,isinuse,colcount,modeid,jboclass,jbofrom,jbowhere,jbogroup,jboorder,businessprocess,exportflag,inputuser,inputtime,updateuser,updatetime,remark,isvalidate,parent) Values ('LbBeforeAppLicationList','Ԥб',null,'30',null,'1','1','default','jbo.com.tenwa.entity.comm.serialutil.LB_BEFORE_APPLICATION','O','1=1','','inputtime desc','','','SYS_Designer','2020/08/17 09:45:32','SYS_Designer','2020/09/22 10:10:19','','1',''); From 80a059246c24911cdebeb02f2892718267e79acc Mon Sep 17 00:00:00 2001 From: tenwa666 Date: Wed, 23 Sep 2020 18:22:45 +0800 Subject: [PATCH 04/17] =?UTF-8?q?=E5=AE=A2=E6=88=B7=E4=BC=A0=E8=BE=93SAP?= =?UTF-8?q?=E6=89=8B=E5=8A=A8=E8=A7=A6=E5=8F=91=E5=90=88=E5=90=8C=E7=8A=B6?= =?UTF-8?q?=E6=80=81=E5=8F=98=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/tenwa/voucher/serviceImp/VoucherToNCforCustomer.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src_core/com/tenwa/voucher/serviceImp/VoucherToNCforCustomer.java b/src_core/com/tenwa/voucher/serviceImp/VoucherToNCforCustomer.java index e6d3b21f4..c65512bbe 100644 --- a/src_core/com/tenwa/voucher/serviceImp/VoucherToNCforCustomer.java +++ b/src_core/com/tenwa/voucher/serviceImp/VoucherToNCforCustomer.java @@ -424,7 +424,7 @@ public class VoucherToNCforCustomer implements Job{ // ѯΪ֮ǰʧܵ // String sql="SELECT max(cif.customerid) id,cif.customer_num,MAX(cif.customername)customername,MAX(cif.customertype)customertype,MAX(cif.customerid) customerid,MAX(cif.certid) as certid FROM CUSTOMER_INFO cif LEFT JOIN lb_union_lessee lul ON lul.customer_id=cif.customerid LEFT JOIN lb_contract_info lci ON lci.id=lul.contract_id WHERE lci.contract_status >='31' AND cif.customer_num NOT IN (SELECT TABLE_NUM FROM NCXML_DETAIL_RECORDS WHERE FLAG = '1' AND XML_TYPE = '"+type+"') GROUP BY CIF.CUSTOMER_NUM "; - String sql="SELECT MAX(cif.customerid) id,cif.customer_num,MAX(cif.customername) customername,MAX(cif.customertype) customertype,MAX(cif.customerid) customerid, MAX(cif.certid) AS certid FROM CUSTOMER_INFO cif LEFT JOIN lb_union_lessee lul ON lul.customer_id = cif.customerid LEFT JOIN lb_contract_info lci ON lci.id = lul.contract_id WHERE lci.contract_status >= '31' AND cif.customer_num NOT IN (SELECT TABLE_NUM FROM NCXML_DETAIL_RECORDS WHERE FLAG = '1' AND XML_TYPE = 'customer') AND cif.customer_num NOT IN (SELECT cust_id FROM CUSTOMER_LIST WHERE CUST_STATUS = '2' ) GROUP BY CIF.CUSTOMER_NUM "; + String sql="SELECT MAX(cif.customerid) id,cif.customer_num,MAX(cif.customername) customername,MAX(cif.customertype) customertype,MAX(cif.customerid) customerid, MAX(cif.certid) AS certid FROM CUSTOMER_INFO cif LEFT JOIN lb_union_lessee lul ON lul.customer_id = cif.customerid LEFT JOIN lb_contract_info lci ON lci.id = lul.contract_id WHERE (lci.contract_status = '31' OR lci.contract_status = '21') AND cif.customer_num NOT IN (SELECT TABLE_NUM FROM NCXML_DETAIL_RECORDS WHERE FLAG = '1' AND XML_TYPE = 'customer') AND cif.customer_num NOT IN (SELECT cust_id FROM CUSTOMER_LIST WHERE CUST_STATUS = '2' ) GROUP BY CIF.CUSTOMER_NUM "; List> rs = DataOperatorUtil.getDataBySql(Sqlca,sql,null); if(rs != null && rs.size()>0) { // ¼ʷκ From d3084d527459ea2de378f20dc588df0c3e071317 Mon Sep 17 00:00:00 2001 From: tenwa666 Date: Wed, 23 Sep 2020 18:25:28 +0800 Subject: [PATCH 05/17] =?UTF-8?q?=E5=90=88=E5=90=8C=E4=BC=A0=E8=BE=93SAP?= =?UTF-8?q?=E5=90=88=E5=90=8C=E7=8A=B6=E6=80=81=E5=8F=98=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tenwa/voucher/serviceImp/VoucherToNCforAssistContract.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src_core/com/tenwa/voucher/serviceImp/VoucherToNCforAssistContract.java b/src_core/com/tenwa/voucher/serviceImp/VoucherToNCforAssistContract.java index e79ca7e84..9a19c8a2b 100644 --- a/src_core/com/tenwa/voucher/serviceImp/VoucherToNCforAssistContract.java +++ b/src_core/com/tenwa/voucher/serviceImp/VoucherToNCforAssistContract.java @@ -344,7 +344,7 @@ public class VoucherToNCforAssistContract implements Job{ List batchList= new ArrayList(); // ȡδ估֮ǰʧܵ - String sql="SELECT id,CONTRACT_NUMBER FROM LB_CONTRACT_INFO WHERE CONTRACT_STATUS='31' AND CONTRACT_NUMBER NOT IN(SELECT TABLE_NUM FROM NCXML_DETAIL_RECORDS WHERE FLAG = '1' AND XML_TYPE='"+type+"')"; + String sql="SELECT id,CONTRACT_NUMBER FROM LB_CONTRACT_INFO WHERE (CONTRACT_STATUS = '31' OR CONTRACT_STATUS = '21') AND CONTRACT_NUMBER NOT IN(SELECT TABLE_NUM FROM NCXML_DETAIL_RECORDS WHERE FLAG = '1' AND XML_TYPE='"+type+"')"; List> rs = DataOperatorUtil.getDataBySql(Sqlca,sql,null); if(rs!=null && rs.size()>0) { From fc256b67fb93089582e8243f4ebb18f866592741 Mon Sep 17 00:00:00 2001 From: zhangbb Date: Thu, 24 Sep 2020 17:15:19 +0800 Subject: [PATCH 06/17] =?UTF-8?q?1.=E6=8F=90=E4=BA=A4=E5=AF=B9=E5=BA=94sql?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src_sql/投产SQL/v20200915/zhangbb0915-2.sql | 32 ++++++++++++--------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/src_sql/投产SQL/v20200915/zhangbb0915-2.sql b/src_sql/投产SQL/v20200915/zhangbb0915-2.sql index 00b0f3633..92e8e5701 100644 --- a/src_sql/投产SQL/v20200915/zhangbb0915-2.sql +++ b/src_sql/投产SQL/v20200915/zhangbb0915-2.sql @@ -109,10 +109,10 @@ create table `lc_split_occupy_process` ( -- ģ delete from AWE_DO_CATALOG where dono='ViSplittingList'; delete from awe_do_library where dono='ViSplittingList'; -Insert Into AWE_DO_CATALOG (dono,doname,dodescribe,dotype,doclass,isinuse,colcount,modeid,jboclass,jbofrom,jbowhere,jbogroup,jboorder,businessprocess,exportflag,inputuser,inputtime,updateuser,updatetime,remark,isvalidate,parent) Values ('ViSplittingList','֧ƻ',null,'30',null,'1','1','default','jbo.app.tenwa.calc.VI_SPLITTING_PAY','O ','','','','',null,'SYS_Designer','2020/09/07 20:59:59','SYS_Designer','2020/09/10 14:19:04','','0',''); -Insert Into awe_do_library (dono,colindex,sortno,isinuse,coltablename,colactualname,colname,coltype,coldefaultvalue,colheader,colunit,colcolumntype,coleditstyle,colcheckformat,colalign,coleditsourcetype,coleditsource,colhtmlstyle,collimit,colvisible,colreadonly,colrequired,colsortable,isfilter,colspan,isautocomplete,groupid,colfilterrefid,inputuser,inputtime,updateuser,updatetime,isaudit,colfilterattrs,isupdate,parentcolindex,tips,colinnerbtevent,colfilteroptions) Values ('ViSplittingList','1010','1010','1','','com.amarsoft.dict.als.manage.NameManager.getDistributorNameById(distributor_id)','distributor_name','String','','','','1','Text','1','1','','','','20','1','0','0','1','0',1,'0','','','SYS_Designer','2020/09/07 20:59:59','SYS_Designer','2020/09/10 14:19:04','0','','1','','','',''); -Insert Into awe_do_library (dono,colindex,sortno,isinuse,coltablename,colactualname,colname,coltype,coldefaultvalue,colheader,colunit,colcolumntype,coleditstyle,colcheckformat,colalign,coleditsourcetype,coleditsource,colhtmlstyle,collimit,colvisible,colreadonly,colrequired,colsortable,isfilter,colspan,isautocomplete,groupid,colfilterrefid,inputuser,inputtime,updateuser,updatetime,isaudit,colfilterattrs,isupdate,parentcolindex,tips,colinnerbtevent,colfilteroptions) Values ('ViSplittingList','1020','1020','1','O','contract_no','contract_no','String','','ͬ','','1','Text','1','1','','','','32','1','0','0','1','0',1,'0','','','SYS_Designer','2020/09/07 20:59:59','SYS_Designer','2020/09/10 14:19:04','0','','1','','','',''); -Insert Into awe_do_library (dono,colindex,sortno,isinuse,coltablename,colactualname,colname,coltype,coldefaultvalue,colheader,colunit,colcolumntype,coleditstyle,colcheckformat,colalign,coleditsourcetype,coleditsource,colhtmlstyle,collimit,colvisible,colreadonly,colrequired,colsortable,isfilter,colspan,isautocomplete,groupid,colfilterrefid,inputuser,inputtime,updateuser,updatetime,isaudit,colfilterattrs,isupdate,parentcolindex,tips,colinnerbtevent,colfilteroptions) Values ('ViSplittingList','1030','1030','1','O','customer_name','customer_name','String','','ͻ','','1','Text','1','1','','','','20','1','0','0','1','0',1,'0','','','SYS_Designer','2020/09/07 20:59:59','SYS_Designer','2020/09/10 14:19:04','0','','1','','','',''); +INSERT INTO AWE_DO_CATALOG (dono,doname,dodescribe,dotype,doclass,isinuse,colcount,modeid,jboclass,jbofrom,jbowhere,jbogroup,jboorder,businessprocess,exportflag,inputuser,inputtime,updateuser,updatetime,remark,isvalidate,parent) VALUES ('ViSplittingList','֧ƻ',NULL,'30',NULL,'1','1','default','jbo.app.tenwa.calc.VI_SPLITTING_PAY','O ','','','','',NULL,'SYS_Designer','2020/09/07 20:59:59','SYS_Designer','2020/09/10 14:19:04','','0',''); +Insert Into awe_do_library (dono,colindex,sortno,isinuse,coltablename,colactualname,colname,coltype,coldefaultvalue,colheader,colunit,colcolumntype,coleditstyle,colcheckformat,colalign,coleditsourcetype,coleditsource,colhtmlstyle,collimit,colvisible,colreadonly,colrequired,colsortable,isfilter,colspan,isautocomplete,groupid,colfilterrefid,inputuser,inputtime,updateuser,updatetime,isaudit,colfilterattrs,isupdate,parentcolindex,tips,colinnerbtevent,colfilteroptions) Values ('ViSplittingList','1010','1010','1','O','distributor_name','distributor_name','String','','','','1','Text','1','1','','','','20','1','0','0','1','1',1,'0','','','SYS_Designer','2020/09/07 20:59:59','SYS_Designer','2020/09/21 19:33:49','0','','1','','','','Like'); +Insert Into awe_do_library (dono,colindex,sortno,isinuse,coltablename,colactualname,colname,coltype,coldefaultvalue,colheader,colunit,colcolumntype,coleditstyle,colcheckformat,colalign,coleditsourcetype,coleditsource,colhtmlstyle,collimit,colvisible,colreadonly,colrequired,colsortable,isfilter,colspan,isautocomplete,groupid,colfilterrefid,inputuser,inputtime,updateuser,updatetime,isaudit,colfilterattrs,isupdate,parentcolindex,tips,colinnerbtevent,colfilteroptions) Values ('ViSplittingList','1020','1020','1','O','contract_no','contract_no','String','','ͬ','','1','Text','1','1','','','','32','1','0','0','1','1',1,'0','','','SYS_Designer','2020/09/07 20:59:59','SYS_Designer','2020/09/21 15:11:31','0','','1','','','','Like'); +Insert Into awe_do_library (dono,colindex,sortno,isinuse,coltablename,colactualname,colname,coltype,coldefaultvalue,colheader,colunit,colcolumntype,coleditstyle,colcheckformat,colalign,coleditsourcetype,coleditsource,colhtmlstyle,collimit,colvisible,colreadonly,colrequired,colsortable,isfilter,colspan,isautocomplete,groupid,colfilterrefid,inputuser,inputtime,updateuser,updatetime,isaudit,colfilterattrs,isupdate,parentcolindex,tips,colinnerbtevent,colfilteroptions) Values ('ViSplittingList','1030','1030','1','O','customer_name','customer_name','String','','ͻ','','1','Text','1','1','','','','20','1','0','0','1','1',1,'0','','','SYS_Designer','2020/09/07 20:59:59','SYS_Designer','2020/09/10 14:19:04','0','','1','','','','Like'); Insert Into awe_do_library (dono,colindex,sortno,isinuse,coltablename,colactualname,colname,coltype,coldefaultvalue,colheader,colunit,colcolumntype,coleditstyle,colcheckformat,colalign,coleditsourcetype,coleditsource,colhtmlstyle,collimit,colvisible,colreadonly,colrequired,colsortable,isfilter,colspan,isautocomplete,groupid,colfilterrefid,inputuser,inputtime,updateuser,updatetime,isaudit,colfilterattrs,isupdate,parentcolindex,tips,colinnerbtevent,colfilteroptions) Values ('ViSplittingList','1050','1050','1','O','distributor_id','distributor_id','String','','id','','1','Text','1','1','','','','20','0','0','0','1','0',1,'0','','','SYS_Designer','2020/09/07 20:59:59','SYS_Designer','2020/09/10 14:19:04','0','','1','','','',''); Insert Into awe_do_library (dono,colindex,sortno,isinuse,coltablename,colactualname,colname,coltype,coldefaultvalue,colheader,colunit,colcolumntype,coleditstyle,colcheckformat,colalign,coleditsourcetype,coleditsource,colhtmlstyle,collimit,colvisible,colreadonly,colrequired,colsortable,isfilter,colspan,isautocomplete,groupid,colfilterrefid,inputuser,inputtime,updateuser,updatetime,isaudit,colfilterattrs,isupdate,parentcolindex,tips,colinnerbtevent,colfilteroptions) Values ('ViSplittingList','1060','1060','1','O','plan_list','plan_list','String','','ڴ','','1','Text','1','1','','','','20','0','0','0','1','0',1,'0','','','SYS_Designer','2020/09/07 20:59:59','SYS_Designer','2020/09/10 14:19:04','0','','1','','','',''); Insert Into awe_do_library (dono,colindex,sortno,isinuse,coltablename,colactualname,colname,coltype,coldefaultvalue,colheader,colunit,colcolumntype,coleditstyle,colcheckformat,colalign,coleditsourcetype,coleditsource,colhtmlstyle,collimit,colvisible,colreadonly,colrequired,colsortable,isfilter,colspan,isautocomplete,groupid,colfilterrefid,inputuser,inputtime,updateuser,updatetime,isaudit,colfilterattrs,isupdate,parentcolindex,tips,colinnerbtevent,colfilteroptions) Values ('ViSplittingList','1070','1070','1','O','sum_sp','sum_sp','String','','ܽ','','1','Text','2','1','','','','20','1','0','0','1','0',1,'0','','','SYS_Designer','2020/09/07 20:59:59','SYS_Designer','2020/09/10 14:19:04','','','1','','','',''); @@ -127,15 +127,15 @@ Insert Into awe_do_library (dono,colindex,sortno,isinuse,coltablename,colactualn delete from AWE_DO_CATALOG where dono='SplittingChargeTempList'; delete from awe_do_library where dono='SplittingChargeTempList'; -Insert Into AWE_DO_CATALOG (dono,doname,dodescribe,dotype,doclass,isinuse,colcount,modeid,jboclass,jbofrom,jbowhere,jbogroup,jboorder,businessprocess,exportflag,inputuser,inputtime,updateuser,updatetime,remark,isvalidate,parent) Values ('SplittingChargeTempList','֧ʱ',null,'30',null,'1','1','default','jbo.com.tenwa.entity.comm.flow.LC_SPLITTING_PAY_TEMP','O left join jbo.com.tenwa.lease.comm.LB_CONTRACT_INFO lci on lci.id=O.contract_id LEFT JOIN jbo.app.tenwa.customer.DISTRIBUTOR_INFO di ON di.distributor_no = lci.distributor_id LEFT JOIN jbo.com.tenwa.lease.comm.LB_UNION_LESSEE lul ON lul.contract_id = lci.id and lul.is_main=''Y''','O.flowunid=:flowunid and O.plan_id is null','','','',null,'SYS_Designer','2020/09/07 21:05:13','SYS_Designer','2020/09/18 17:59:47','','1',''); -Insert Into awe_do_library (dono,colindex,sortno,isinuse,coltablename,colactualname,colname,coltype,coldefaultvalue,colheader,colunit,colcolumntype,coleditstyle,colcheckformat,colalign,coleditsourcetype,coleditsource,colhtmlstyle,collimit,colvisible,colreadonly,colrequired,colsortable,isfilter,colspan,isautocomplete,groupid,colfilterrefid,inputuser,inputtime,updateuser,updatetime,isaudit,colfilterattrs,isupdate,parentcolindex,tips,colinnerbtevent,colfilteroptions) Values ('SplittingChargeTempList','1010','1010','1','di','distributor_name','distributor_name','String','','','','1','Text','1','1','','','','20','1','1','0','1','0',1,'0','','','SYS_Designer','2020/09/07 20:59:59','SYS_Designer','2020/09/09 09:53:45','0','','1','','','',''); -Insert Into awe_do_library (dono,colindex,sortno,isinuse,coltablename,colactualname,colname,coltype,coldefaultvalue,colheader,colunit,colcolumntype,coleditstyle,colcheckformat,colalign,coleditsourcetype,coleditsource,colhtmlstyle,collimit,colvisible,colreadonly,colrequired,colsortable,isfilter,colspan,isautocomplete,groupid,colfilterrefid,inputuser,inputtime,updateuser,updatetime,isaudit,colfilterattrs,isupdate,parentcolindex,tips,colinnerbtevent,colfilteroptions) Values ('SplittingChargeTempList','1020','1020','1','lci','contract_no','contract_no','String','','ͬ','','1','Text','1','1','','','','32','1','1','0','1','0',1,'0','','','SYS_Designer','2020/09/07 20:59:59','SYS_Designer','2020/09/09 09:53:00','0','','1','','','',''); -Insert Into awe_do_library (dono,colindex,sortno,isinuse,coltablename,colactualname,colname,coltype,coldefaultvalue,colheader,colunit,colcolumntype,coleditstyle,colcheckformat,colalign,coleditsourcetype,coleditsource,colhtmlstyle,collimit,colvisible,colreadonly,colrequired,colsortable,isfilter,colspan,isautocomplete,groupid,colfilterrefid,inputuser,inputtime,updateuser,updatetime,isaudit,colfilterattrs,isupdate,parentcolindex,tips,colinnerbtevent,colfilteroptions) Values ('SplittingChargeTempList','1030','1030','1','lul','customer_name','customer_name','String','','ͻ','','1','Text','1','1','','','','20','1','1','0','1','0',1,'0','','','SYS_Designer','2020/09/07 20:59:59','SYS_Designer','2020/09/09 09:53:00','0','','1','','','',''); -Insert Into awe_do_library (dono,colindex,sortno,isinuse,coltablename,colactualname,colname,coltype,coldefaultvalue,colheader,colunit,colcolumntype,coleditstyle,colcheckformat,colalign,coleditsourcetype,coleditsource,colhtmlstyle,collimit,colvisible,colreadonly,colrequired,colsortable,isfilter,colspan,isautocomplete,groupid,colfilterrefid,inputuser,inputtime,updateuser,updatetime,isaudit,colfilterattrs,isupdate,parentcolindex,tips,colinnerbtevent,colfilteroptions) Values ('SplittingChargeTempList','1050','1050','1','O','distributor_id','distributor_id','String','','id','','1','Text','1','1','','','','20','0','1','0','1','0',1,'0','','','SYS_Designer','2020/09/07 20:59:59','SYS_Designer','2020/09/09 09:53:00','0','','1','','','',''); -Insert Into awe_do_library (dono,colindex,sortno,isinuse,coltablename,colactualname,colname,coltype,coldefaultvalue,colheader,colunit,colcolumntype,coleditstyle,colcheckformat,colalign,coleditsourcetype,coleditsource,colhtmlstyle,collimit,colvisible,colreadonly,colrequired,colsortable,isfilter,colspan,isautocomplete,groupid,colfilterrefid,inputuser,inputtime,updateuser,updatetime,isaudit,colfilterattrs,isupdate,parentcolindex,tips,colinnerbtevent,colfilteroptions) Values ('SplittingChargeTempList','1060','1060','1','O','pay_list','pay_list','String','','֧ڴ','','1','Text','1','1','','','','20','1','1','0','1','0',1,'0','','','SYS_Designer','2020/09/07 20:59:59','SYS_Designer','2020/09/09 09:59:17','0','','1','','','',''); -Insert Into awe_do_library (dono,colindex,sortno,isinuse,coltablename,colactualname,colname,coltype,coldefaultvalue,colheader,colunit,colcolumntype,coleditstyle,colcheckformat,colalign,coleditsourcetype,coleditsource,colhtmlstyle,collimit,colvisible,colreadonly,colrequired,colsortable,isfilter,colspan,isautocomplete,groupid,colfilterrefid,inputuser,inputtime,updateuser,updatetime,isaudit,colfilterattrs,isupdate,parentcolindex,tips,colinnerbtevent,colfilteroptions) Values ('SplittingChargeTempList','1080','1080','1','O','splitting_money','splitting_money','String','','֧','','1','Text','2','1','','','','20','1','1','0','1','0',1,'0','','','SYS_Designer','2020/09/07 20:59:59','SYS_Designer','2020/09/09 09:53:00','','','1','','','',''); -Insert Into awe_do_library (dono,colindex,sortno,isinuse,coltablename,colactualname,colname,coltype,coldefaultvalue,colheader,colunit,colcolumntype,coleditstyle,colcheckformat,colalign,coleditsourcetype,coleditsource,colhtmlstyle,collimit,colvisible,colreadonly,colrequired,colsortable,isfilter,colspan,isautocomplete,groupid,colfilterrefid,inputuser,inputtime,updateuser,updatetime,isaudit,colfilterattrs,isupdate,parentcolindex,tips,colinnerbtevent,colfilteroptions) Values ('SplittingChargeTempList','1130','1055','1','O','pay_times','pay_times','String','','֧','','1','Text','1','1','','','',null,'1','1','0','1','0',0,'','','','SYS_Designer','2020/09/08 11:16:03','SYS_Designer','2020/09/09 09:53:00','','','1','','','',''); -Insert Into awe_do_library (dono,colindex,sortno,isinuse,coltablename,colactualname,colname,coltype,coldefaultvalue,colheader,colunit,colcolumntype,coleditstyle,colcheckformat,colalign,coleditsourcetype,coleditsource,colhtmlstyle,collimit,colvisible,colreadonly,colrequired,colsortable,isfilter,colspan,isautocomplete,groupid,colfilterrefid,inputuser,inputtime,updateuser,updatetime,isaudit,colfilterattrs,isupdate,parentcolindex,tips,colinnerbtevent,colfilteroptions) Values ('SplittingChargeTempList','1170','1170','1','O','contract_id','contract_id','String','','ͬid','','1','Text','1','1','','','',null,'0','1','0','1','0',0,'','','','SYS_Designer','2020/09/08 13:56:58','SYS_Designer','2020/09/09 09:53:00','','','1','','','',''); +INSERT INTO AWE_DO_CATALOG (dono,doname,dodescribe,dotype,doclass,isinuse,colcount,modeid,jboclass,jbofrom,jbowhere,jbogroup,jboorder,businessprocess,exportflag,inputuser,inputtime,updateuser,updatetime,remark,isvalidate,parent) VALUES ('SplittingChargeTempList','֧ʱ',NULL,'30',NULL,'1','1','default','jbo.com.tenwa.entity.comm.flow.LC_SPLITTING_PAY_TEMP','O left join jbo.com.tenwa.lease.comm.LB_CONTRACT_INFO lci on lci.id=O.contract_id LEFT JOIN jbo.app.tenwa.customer.DISTRIBUTOR_INFO di ON di.distributor_no = lci.distributor_id LEFT JOIN jbo.com.tenwa.lease.comm.LB_UNION_LESSEE lul ON lul.contract_id = lci.id and lul.is_main=''Y''','O.flowunid=:flowunid and O.plan_id is null','','','',NULL,'SYS_Designer','2020/09/07 21:05:13','SYS_Designer','2020/09/18 17:59:47','','1',''); +INSERT INTO awe_do_library (dono,colindex,sortno,isinuse,coltablename,colactualname,colname,coltype,coldefaultvalue,colheader,colunit,colcolumntype,coleditstyle,colcheckformat,colalign,coleditsourcetype,coleditsource,colhtmlstyle,collimit,colvisible,colreadonly,colrequired,colsortable,isfilter,colspan,isautocomplete,groupid,colfilterrefid,inputuser,inputtime,updateuser,updatetime,isaudit,colfilterattrs,isupdate,parentcolindex,tips,colinnerbtevent,colfilteroptions) VALUES ('SplittingChargeTempList','1010','1010','1','di','distributor_name','distributor_name','String','','','','1','Text','1','1','','','','20','1','1','0','1','1',1,'0','','','SYS_Designer','2020/09/07 20:59:59','SYS_Designer','2020/09/21 15:12:51','0','','1','','','','Like'); +INSERT INTO awe_do_library (dono,colindex,sortno,isinuse,coltablename,colactualname,colname,coltype,coldefaultvalue,colheader,colunit,colcolumntype,coleditstyle,colcheckformat,colalign,coleditsourcetype,coleditsource,colhtmlstyle,collimit,colvisible,colreadonly,colrequired,colsortable,isfilter,colspan,isautocomplete,groupid,colfilterrefid,inputuser,inputtime,updateuser,updatetime,isaudit,colfilterattrs,isupdate,parentcolindex,tips,colinnerbtevent,colfilteroptions) VALUES ('SplittingChargeTempList','1020','1020','1','lci','contract_no','contract_no','String','','ͬ','','1','Text','1','1','','','','32','1','1','0','1','1',1,'0','','','SYS_Designer','2020/09/07 20:59:59','SYS_Designer','2020/09/21 15:12:51','0','','1','','','','Like'); +INSERT INTO awe_do_library (dono,colindex,sortno,isinuse,coltablename,colactualname,colname,coltype,coldefaultvalue,colheader,colunit,colcolumntype,coleditstyle,colcheckformat,colalign,coleditsourcetype,coleditsource,colhtmlstyle,collimit,colvisible,colreadonly,colrequired,colsortable,isfilter,colspan,isautocomplete,groupid,colfilterrefid,inputuser,inputtime,updateuser,updatetime,isaudit,colfilterattrs,isupdate,parentcolindex,tips,colinnerbtevent,colfilteroptions) VALUES ('SplittingChargeTempList','1030','1030','1','lul','customer_name','customer_name','String','','ͻ','','1','Text','1','1','','','','20','1','1','0','1','1',1,'0','','','SYS_Designer','2020/09/07 20:59:59','SYS_Designer','2020/09/18 17:59:47','0','','1','','','','Like'); +INSERT INTO awe_do_library (dono,colindex,sortno,isinuse,coltablename,colactualname,colname,coltype,coldefaultvalue,colheader,colunit,colcolumntype,coleditstyle,colcheckformat,colalign,coleditsourcetype,coleditsource,colhtmlstyle,collimit,colvisible,colreadonly,colrequired,colsortable,isfilter,colspan,isautocomplete,groupid,colfilterrefid,inputuser,inputtime,updateuser,updatetime,isaudit,colfilterattrs,isupdate,parentcolindex,tips,colinnerbtevent,colfilteroptions) VALUES ('SplittingChargeTempList','1050','1050','1','O','distributor_id','distributor_id','String','','id','','1','Text','1','1','','','','20','0','1','0','1','0',1,'0','','','SYS_Designer','2020/09/07 20:59:59','SYS_Designer','2020/09/18 17:59:47','0','','1','','','',''); +INSERT INTO awe_do_library (dono,colindex,sortno,isinuse,coltablename,colactualname,colname,coltype,coldefaultvalue,colheader,colunit,colcolumntype,coleditstyle,colcheckformat,colalign,coleditsourcetype,coleditsource,colhtmlstyle,collimit,colvisible,colreadonly,colrequired,colsortable,isfilter,colspan,isautocomplete,groupid,colfilterrefid,inputuser,inputtime,updateuser,updatetime,isaudit,colfilterattrs,isupdate,parentcolindex,tips,colinnerbtevent,colfilteroptions) VALUES ('SplittingChargeTempList','1060','1060','1','O','pay_list','pay_list','String','','֧ڴ','','1','Text','1','1','','','','20','1','1','0','1','0',1,'0','','','SYS_Designer','2020/09/07 20:59:59','SYS_Designer','2020/09/18 17:59:47','0','','1','','','',''); +INSERT INTO awe_do_library (dono,colindex,sortno,isinuse,coltablename,colactualname,colname,coltype,coldefaultvalue,colheader,colunit,colcolumntype,coleditstyle,colcheckformat,colalign,coleditsourcetype,coleditsource,colhtmlstyle,collimit,colvisible,colreadonly,colrequired,colsortable,isfilter,colspan,isautocomplete,groupid,colfilterrefid,inputuser,inputtime,updateuser,updatetime,isaudit,colfilterattrs,isupdate,parentcolindex,tips,colinnerbtevent,colfilteroptions) VALUES ('SplittingChargeTempList','1080','1080','1','O','splitting_money','splitting_money','String','','֧','','1','Text','2','1','','','','20','1','1','0','1','0',1,'0','','','SYS_Designer','2020/09/07 20:59:59','SYS_Designer','2020/09/18 17:59:47','','','1','','','',''); +INSERT INTO awe_do_library (dono,colindex,sortno,isinuse,coltablename,colactualname,colname,coltype,coldefaultvalue,colheader,colunit,colcolumntype,coleditstyle,colcheckformat,colalign,coleditsourcetype,coleditsource,colhtmlstyle,collimit,colvisible,colreadonly,colrequired,colsortable,isfilter,colspan,isautocomplete,groupid,colfilterrefid,inputuser,inputtime,updateuser,updatetime,isaudit,colfilterattrs,isupdate,parentcolindex,tips,colinnerbtevent,colfilteroptions) VALUES ('SplittingChargeTempList','1130','1055','1','O','pay_times','pay_times','String','','֧','','1','Text','1','1','','','',NULL,'1','1','0','1','0',0,'','','','SYS_Designer','2020/09/08 11:16:03','SYS_Designer','2020/09/18 17:59:47','','','1','','','',''); +INSERT INTO awe_do_library (dono,colindex,sortno,isinuse,coltablename,colactualname,colname,coltype,coldefaultvalue,colheader,colunit,colcolumntype,coleditstyle,colcheckformat,colalign,coleditsourcetype,coleditsource,colhtmlstyle,collimit,colvisible,colreadonly,colrequired,colsortable,isfilter,colspan,isautocomplete,groupid,colfilterrefid,inputuser,inputtime,updateuser,updatetime,isaudit,colfilterattrs,isupdate,parentcolindex,tips,colinnerbtevent,colfilteroptions) VALUES ('SplittingChargeTempList','1170','1170','1','O','contract_id','contract_id','String','','ͬid','','1','Text','1','1','','','',NULL,'0','1','0','1','0',0,'','','','SYS_Designer','2020/09/08 13:56:58','SYS_Designer','2020/09/18 17:59:47','','','1','','','',''); -- ˵ Insert Into AWE_MENU_INFO (menuid,menuname,displayname,sortno,url,urlparam,target,style,isinuse,remark,inputorgid,inputuserid,inputtime,updateorgid,updateuserid,updatetime,accesstype,icon,appicon) Values ('980130','̷Ӷ','̷Ӷ','980130','/Tenwa/Lease/Flow/Comm/LBAssetTransferRegistration/CommissionChargeConfigList.jsp','isCache=false','_self','','1','','','','','','SYS_Designer','2020/09/01 14:33:55','10','',''); @@ -164,4 +164,8 @@ ALTER TABLE lc_calc_condition ADD INDEX idx_contract_id(CONTRACT_ID); delete from AWE_DO_CATALOG where dono='LCSplittingPayTempList'; Insert Into AWE_DO_CATALOG (dono,doname,dodescribe,dotype,doclass,isinuse,colcount,modeid,jboclass,jbofrom,jbowhere,jbogroup,jboorder,businessprocess,exportflag,inputuser,inputtime,updateuser,updatetime,remark,isvalidate,parent) Values ('LCSplittingPayTempList','֧ʱ',null,'30',null,'1','1','default','jbo.com.tenwa.entity.comm.flow.LC_SPLITTING_PAY_TEMP','O left join jbo.app.tenwa.calc.LC_RENT_PLAN lrp ON lrp.id=O.plan_id left join jbo.com.tenwa.lease.comm.LB_CONTRACT_INFO lci on lci.id=lrp.contract_id LEFT JOIN jbo.app.tenwa.customer.DISTRIBUTOR_INFO di ON di.distributor_no = lci.distributor_id LEFT JOIN jbo.com.tenwa.lease.comm.LB_UNION_LESSEE lul ON lul.contract_id = lci.id LEFT JOIN jbo.app.tenwa.customer.CUSTOMER_INFO ci ON lul.CUSTOMER_ID = ci.customerid ','O.flowunid=:flowunid and O.plan_id is not null','','lrp.contract_id,lrp.plan_list','',null,'SYS_Designer','2019/12/07 11:38:51','SYS_Designer','2020/09/18 17:58:50','','1',''); --- +-- ޸ķҳbug + +delete from AWE_DO_CATALOG where dono='SplittingRatioInfo'; +Insert Into AWE_DO_CATALOG (dono,doname,dodescribe,dotype,doclass,isinuse,colcount,modeid,jboclass,jbofrom,jbowhere,jbogroup,jboorder,businessprocess,exportflag,inputuser,inputtime,updateuser,updatetime,remark,isvalidate,parent) Values ('SplittingRatioInfo','Ʒ',null,'30',null,'1','1','default','jbo.prd.LB_SPLITTING_RATIO','O','ID=:ID','','','',null,'SYS_Designer','2019/08/24 10:17:38','SYS_Designer','2020/09/23 11:33:10','','1',''); + From 53b219a904a14a9b94d8a1baf7151ce30d35a6c9 Mon Sep 17 00:00:00 2001 From: tangfutang Date: Thu, 24 Sep 2020 19:40:29 +0800 Subject: [PATCH 07/17] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=8B=AE=E6=A1=A5?= =?UTF-8?q?=E3=80=81=E8=81=94=E5=90=88=E7=A7=9F=E8=B5=81=E5=90=88=E5=90=8C?= =?UTF-8?q?=E6=A8=A1=E6=9D=BF=E3=80=82=E7=A7=9F=E8=B5=81=E7=89=A9=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E7=89=B5=E5=BC=95=E5=92=8C=E6=8C=82=E8=BD=A6=E6=A0=87?= =?UTF-8?q?=E8=AF=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Comm/LBEquipment_Car/LBEquipmentInfo.jsp | 12 ++++ .../Comm/LBEquipment_Car/LBEquipmentList.jsp | 5 ++ WebContent/WEB-INF/etc/jbo/jbo_app.xml | 3 +- WebContent/WEB-INF/etc/jbo/jbo_lease.xml | 3 + ...合租赁——融资租赁合同-修订版-20200806.docx | Bin 68023 -> 76273 bytes .../dict/als/manage/DataConversionManage.java | 18 +++++ .../handle/FileTemplateUtil.java | 2 +- .../util/ContractSignActionTwoUtil.java | 36 +++++++++- src_jbo/jbo/app/LB_EQUIPMENT_CAR.java | 4 ++ src_jbo/jbo/app/LB_EQUIPMENT_CAR_TEMP.java | 4 ++ .../tenwa/lease/comm/LB_EQUIPMENT_CAR.java | 4 ++ .../lease/comm/LB_EQUIPMENT_CAR_HIS.java | 4 ++ .../lease/comm/LB_EQUIPMENT_CAR_TEMP.java | 4 ++ src_sql/投产SQL/v20200915/tft_20200915.sql | 67 ++++++++++++++---- .../LBProjectIntoTempInitCarBusiness.java | 1 + .../util/MakeOneCodeAndContractModel.java | 12 +++- 16 files changed, 161 insertions(+), 18 deletions(-) create mode 100644 src/com/amarsoft/dict/als/manage/DataConversionManage.java diff --git a/WebContent/Tenwa/Lease/Flow/Comm/LBEquipment_Car/LBEquipmentInfo.jsp b/WebContent/Tenwa/Lease/Flow/Comm/LBEquipment_Car/LBEquipmentInfo.jsp index cbac1c636..a81508b61 100644 --- a/WebContent/Tenwa/Lease/Flow/Comm/LBEquipment_Car/LBEquipmentInfo.jsp +++ b/WebContent/Tenwa/Lease/Flow/Comm/LBEquipment_Car/LBEquipmentInfo.jsp @@ -193,6 +193,12 @@ $("#FRAME_NUMBER").css("color","red"); } */ } + var carAttribute = getItemValue(0,0,"car_attribute"); + if("head" != carAttribute){ + setItemRequired(0,"FRAME_NUMBER",false); + setItemRequired(0,"CAR_COLOUR",false); + setItemRequired(0,"ENGINE_NUMBER",false); + } <%--hideFrame("<%=vehiclelevel%>");--%> }); @@ -281,6 +287,12 @@ if(framNum != "0" && checkFrameNumber()==false){ return; } + var id = getItemValue(0,0,"ID"); + var projectId = "<%=projectId%>"; + if(typeof(id) == "undefined" || id.length == 0){ + setItemValue(0,0,"car_attribute","tail");//ó + setItemValue(0,0,"project_id",projectId);//Ŀid + } var ApplyType = "<%=ApplyType%>"; if(plate_number!=null&&plate_number!=""){ diff --git a/WebContent/Tenwa/Lease/Flow/Comm/LBEquipment_Car/LBEquipmentList.jsp b/WebContent/Tenwa/Lease/Flow/Comm/LBEquipment_Car/LBEquipmentList.jsp index 4a46ee890..aeb2a70fb 100644 --- a/WebContent/Tenwa/Lease/Flow/Comm/LBEquipment_Car/LBEquipmentList.jsp +++ b/WebContent/Tenwa/Lease/Flow/Comm/LBEquipment_Car/LBEquipmentList.jsp @@ -217,6 +217,11 @@ if((null!=RightType&&RightType.equals("ReadOnly"))||(null!=ishistory&&ishistory. /*~[Describe=ɾ¼;InputParam=;OutPutParam=;]~*/ function deleteRecord(){ + var carAttribute = getItemValue(0,getRow(),"car_attribute"); + if(carAttribute=="head"){ + alert("ǣɾ"); + return ; + } var ID = getItemValue(0,getRow(),"ID"); if(typeof(ID) == "undefined" || ID.length == 0 ) { diff --git a/WebContent/WEB-INF/etc/jbo/jbo_app.xml b/WebContent/WEB-INF/etc/jbo/jbo_app.xml index 7c48e89db..6fd3e5d56 100644 --- a/WebContent/WEB-INF/etc/jbo/jbo_app.xml +++ b/WebContent/WEB-INF/etc/jbo/jbo_app.xml @@ -4511,7 +4511,7 @@ - +
@@ -4628,6 +4628,7 @@ + diff --git a/WebContent/WEB-INF/etc/jbo/jbo_lease.xml b/WebContent/WEB-INF/etc/jbo/jbo_lease.xml index 2dd83b7d6..c5f8e4a9e 100644 --- a/WebContent/WEB-INF/etc/jbo/jbo_lease.xml +++ b/WebContent/WEB-INF/etc/jbo/jbo_lease.xml @@ -1489,6 +1489,7 @@ + @@ -2064,6 +2065,7 @@ + @@ -3615,6 +3617,7 @@ + diff --git a/WebContent/fileTemplate/联合租赁——融资租赁合同-修订版-20200806.docx b/WebContent/fileTemplate/联合租赁——融资租赁合同-修订版-20200806.docx index 33dcf4b4f51b144b3b5a7d226fe382970e35577a..6983e5d745e9d290a72250d45f629ba3461e18f8 100644 GIT binary patch delta 58286 zcmV)rK$*X{lLYb81dufZv8|)SkvSfJL2lbH5WE-Y9|YZHlCtGG!J2`qG^e07V5L3= z1huw^N+dxtM*RD(>Qr{Gx^vJkQW-*BX0V=P%7uvC6ZU zlx z4C)w^@1mUZ(RhN;xTN~V3@8PErJDfkwCb^@X5>Nj5rJKa@qu6Q#W(J8Z0$q;m%NF% zH>ulsrN>MapHpMkus0fPyzh-xiGGCKZ+F>`KU;ehVn*L%c1P#+Nqn1^U%u8wxxA~3 z#k^{Zji}0kS9P`EE6&S$1MJoaXzM%FZ^5Lqq}FdC4Px58{0&e`0|XR*000080EbTE zKygJtIeh^D0JH)C01*HH0Az1tP;zf@b1!3Wa%C=fZES^-u};G<5QcXo-XZdy*iI=F zt4$?9oj^jO2*hUDN3lqp$Tkgq2oM7U3on7#7V#!kMrE(I;r&y5 zesp+JM-7#(?n(ekhEmk)m@vQ{$iM^GYF*no>+K&*Cn$+YOhPgUNqO zHS-m4#mY^xe0cqQd0XDySF-N3dXkh|cjRC1Qi0rCB+JK#kN4-#ColZnZ1u-RY46bc zpo5Uoki=6$S-__k!;bvQLvns?(Bouf{WI4_MZVVV#KgyyD~`c%TV!yauQ@S)Rv zHySNUxCjro)$I*?amET4r0^gjv@hW~1Y2P2`B|vWCo$GB8H`h1h^sqcGYpc8)_?Fx z2^}yc%;CSt-tg7V9}kO-x)u9@FJMqX_9gsmv!-n`k|Daw8{`C4BvHiqDJ;|{@3K!9HC`SA4gR3aXC`!{L zc9`UG82-x`{#B?LUfnLuRo_rc1Caw4v%>@=5DVbrvk|m7002A(0h96+Cx81;Ro#sc z zfB4=1{2#yl^ycCG_{g6Xf&DUQ)T)aQuoF0C2_u+ht@ZH`0 z&FPW;_l|d>GA6OtLv-BpT6#zro8@qo4dEKKi=QI`FxA7Zmurw z?;h^nJsy|5xqJ8S>f-$Q|6Z=R|Ia-4`O59?;^WQv_VMY7U*Dgvd4Gqy+lTj8A0A%r zcJp7o8=v_8I}=)9c@{qW*Swck}Agn-Ayv3nq!>n3~sLAA;|B3)bj% z_s@5a-+jElzx#N5`TO&U-}v(%PrOST|KWaj_xQyhUVdH)f4WC_ajXLFbiQS&UYw5= z^7i%TM_-=bojzVa{`vI%caL`;ULKda&*Jls=iB-A@{gCF-wfyBt zz|-~V_Tu~hgc_{nH;^9@G2H`Sjy?IbHna;rjIOem=C$ zlkns9pYKmsPeb?o!_!~azkWbBefR$A-Q&NUA5k1ne|x(8e;*$nzqz_S|NeaS!~4fS z+%kRFpYQW<-s?A~pYA?BKK<>pCi?DKm+^tOryEw}^RJ)v)3wEAu|Chi@n^qCnx>iN z-X-l+Czo_{`&qgC`flA?K5yV(OUjr(FT*b+dtUuHLmi7s+GgRre%d|1x?9_|%N$6` zya$pg`S-Nly!pGeeaXr1mbS*ntu0&h*25gULD$ZW&riph_*oVIY79Cq^4WjxQnzmU z)?IElzgyomgO5SqEyc&WPiyx1>GR$P&l&dFXCbv|@>P|(F&NR*ZPnLXO8w-clX5@# z_oOm*kz`&69nsv5tB*luPJI?~yY@cYxve#LPB#a$ozp%9&&gxsdm#^9zxekIL+3M> zhiUP>P*6Pn2BljYUsa{sr{I5@KD9ogC6~oVrsq)&mqo|=C2eLA&W@f9+) z(~BYftGAv?Exu3ZCT;#4PM;~brk{7;r*rOuT{7o!@!6hBADm2cDT9CSlDVwecknz6 zfsUVt=nP)EHTj$_sZPGCmeP#=ZcFKVADyMFz3;hYD5GnNwVhUfgSDNLkHOkCV<73< z)z|gf54~%OwV#9YXHD2Vs>RmS559I*RA2C=rSz_MR>sZ8dL5SFT-f^b;zIpuFKm6? zeROI!2HK^jCD5>Ymu7$0E_<$fASun@D`X#1FxLB!16{Qbvwu(9bh*=UL$dfRv`t!) zuFzE zbjusbl6-X9zE7(8+BUVpEVOAXK65Q5ijQ@hv+wP;MUCoiL^6Nwkz{f0-?qaPjlnRj zKHFWBi;s2J?0(L*UAM1323<*uk3mnWrd!<-VoK|zx~j!^+H`Lt zNyXo~Pow)kTr&piy3frRJSVrkueX#pKTq3~_h59=(6>IPX_(yyY}2r|K643!%hy3} z+N9?~o4dWZrpSMN<5p*z`*sShDZP6+Z7zdbooycGK=b8c*?p`_+hrev(k?}<&bEZw zrSwa%PfICda5uau*GNON1#gY&bu^+K`fYSgG34HD*mfvQ<6|%kTlG~nqJ4el#x`}n z=f<{F|I)F`j>xoQS7sl#5qCFuPOgFG8}lA$|8WRxv37qP+UTu^X>g4+4gpfqPR$sc zB~uglC0tY8_HQQ+2A`j)!=W>qubsLj&@NL~Ti+#9%B`=eDKC?HIXES2psOa_VAqLL znS!%^8m8)NbOJ5%cbl83ahqc9hfuNw+7e7^+jKi!`jw?pAi!VxX{?FZMlMOYmAx z3?!@jW?kE^jw5w#zxjxE*g-y`2jD#F+BqbSr6E~fqK^OG5AG1TUxH+Jf3EBL>T9R# z^6qC=*EhRckX_%_P4{Wn^Kw3?ec!l+-}Q{B&rhG{;H^O^2A}PI7#m&jT@Qlp*Q6%7 z-P?bqrZ{$sWC>PcYO15|TvK1d(!ZM1)OE?nAOY_Ch^8E^s#LOD#9eM?N45!Yu(Eak zAPH6o688$Y+vHjqWCQEppOcrlsH8Og=3`Kr+2eCvVXR&66kKuNjes5=|LIDuj#nYs z-FoUU@PoZwh5!Za%22DGr`-S;;45V4v!8z$-H?HWbVP?J!qE+-IzCD)Y1(~$#Qcg7yD_zXZX;RUBE}`asnszUhiO*}vYXoK=V>?fL-k!U^<&o4 znQJz;gpgFXAiF7bZE&}|2Pe}6>h9}$DvXbg0rquvZ8_l{y0)C#ZS~W6PFpadGYEg6 zkK2M7;A?bg#=&>}(oCJt>4MMXyJX?04X)`{x1zyXYoL3VzI9K$TYAh29qT3If4HO| z3nZII5kR=s(Z_8~W3YDCw0lgvTXW++#vuu;jWtiRf9VQN?(1!9B7Lv{AN$=ltPNi~ z8zDu?tnja({2gDB_9SLTIj)Cs2 z{pL~Mt`ev9omF$|v5&5n0Qu?auqD@{JN9+eS=g~D{0;VY4Ngs%5xtM--tQjE!5$7g z@ovw#as9UE!O<`9%)qMYn=Y`3drn683J%GnV}NA$IqjRAoEy;-FLD3pkSu?C2KR)M zR@F#7hMijufXc1wYb15iT>? z*BAIZK5lq9?jeK12HZR(xF));2}lRJYG4nmP0_#2@p^-DLob=!Z#4yn72&Vq&SdS}VI+iyLLsNHwgiY9lfW^MM)^$wATKwq!j z7U=l3-vfQHro}lJXzR^mEd5Ft!)>Iksm^ZdH?UJ5gRO7f@`mb|ovDOm@`z_&A#1tb zA->=o8SMMys0WhGxw>r9Tu}FRYAPL5x_WkPmt@carJF9gZ%#Nw{cr4Di>Gy7QoWWWI7qBKU279*xkW6mF0Ey{pOAP23d!b7r9@^@FmrPkWTJ8Y1-50Hb9J97 zEfCFpP8Ym0ADx9==eu#ic5%rHf5x@TO0tSt>#&hlXH_P$8=d!be*3o?lR$x#a9(P z^WuN(3`m{XwLg-C+~hIx0rS{T?imr`4>D5^iDRl5y_<8T@&td+ zPS0Q@aDR0SkT~iN|GPM9h-7z996Ko5b5jnm4X)W7`N`yzIkzZJ1GzN*J@`zn<3Z{j zHOw;(W!Afa)CXtq++iU2HAK367GU)|>XGNPI!_hJ=Ijh!8KvlNko#ax=Q4S0Dlag6 z{chwgd%b|X41uLe(qX_^fVt8-QlEdR(BT>6c|*nfh;F!9J_{RQfNKgk^?@db?-Gn# zCGxDca;_wT`Od0&4Nm7u6x%gyElcpFaAe%i%JA@maf6ZN$Q-zKklg{}v~`_G-d1%+ zZfWoi_0%k+cslo(@)VuhV(_~H9v2eq4O{UAlBiewKmvIsxMp*omK7S<*9Cw58hj7w zh0Yp>5?nmSk7RL;R6yT63RhqNy48uKbriG^sdj4}N#0bCqIn7O>$m{~do~_3ie01E z^su(ox-Cc?EhEKr$?m;x8LyH8_%&pGCB*fKql~rCz9E* z0PIu}>~-7@Kwh<2N&V=0l)QiY-Yst=vm>YE#1P%pH^4n~B&*~us8U6Frrxn9BwMgc zFqVULfD!9a-@-<93m-`|+wffmU)Lbp(cSP|eSSy}9@XE*h6WPR5hd|H_#T2hZq*QN z+&#w6V@M&_=kT4gYh}s_c~r4b{U%sDoLIAu0l2cCS>zfwZbc*MgIRwVyC8;4@@Wu( zf`L8+YZPvJucvbv%f7`DwKmxEIne$SfQakSsR^nR6)bO$Jd}y-3bjWIxv}ogm1$ra zbREnbr;1kx zq)+SUEIB~kfk}YF{ThF=fPH7Jv*`_j+}pzW*fxXkT7@p)>MP^ zTsR1lf!_!ZGst4Z4ho`4;Io^@X*vF=X=Lw)Pq1wI)<~+KnxK57RQcWTDFex{xNS)a zNsu2*KpOW$pK}Sr*ZSWw9Z$?QlllIs2fpdsLbekrz-BW7R(K@JBhtav1nl*qyJ zgO7Z-NCK&(*LTZ#cO5_EvKQ52WG*)zXF{@iMM?^?%pPw9V_Sj|#Xo5!=DQ=lqzbiks6wL>C+=lWt0S4T<)Hl6bikU)Pz*EhgMb7X-maT3z?8u-_a zXbxi^X`~S%vs$VH91Q224)BV?DX<#itImKXoU)7B97<#$L~QBmwtp zSO^vSN?d=4N%;3HFz0=?mo})sGazv*8W$(XARowCb?+Ss;DXNfa+Eo6NiOc?P_k|h zRxhk^XYCCOwV(YogB1{*3o9wou3_PMd%Tgn`x;583+h^I-J;~g~|DnNg%uLIVhv$X(jG5Yka$tCq#6GP2p ze)u&M_ww}yGuzSqVTW|;I|~-1*IgO*JO!(2A6Bo=H|#@oL}sLfyjM9G!6scFj17gP zbybaEldgBh1}8^X6~GTDv5hDa>PNX`*xU{okBm{>SrmGJo}qVxWgXlNl0nf`1r0LD zKc#c%J*3UIZ@-xB`gr1Z9F6Qe?}?*If^sVy2J4h zB!SN~!mIIE4(W}P`wLL^D1W2hgAw4-z7f#D5lsr4Q2g2NMx565HHLSf;|Bm|*9U*t z&~9Ik1OBP+EQ;&9=Q_e@4_4JkhOoc&2*bDPm$IxJrx-_qQ?9R>)G2rlws$CTKX`<< zp47`3Cj`DmVGS<+ZWD>(KBq9<9qSzNrX1@WsqgO$uW^Rl z+aU|+v9BsJY#ad`moBJnf@F7I&A5M14cNbDfk@_-12#=?o>KYJ<1!4*kbQ-~k#Rl+ z*907y5f*%~LdYfU{H-@?Z2H;(LHArm;23Ju>i*dvHTw6!TX)Q1-0)?5#n&cURh7K+ z;F?4+Tz$8i0%TzX{|odrnVg>KG*;M6u0xP`J|G`MHF$luoqEl_w|8np`G|k+-R?C8 zMyk>TCm`O3XWEW%-5rsE+C)03zcn?$BgyV;x)Ge-=Z91t$kg^6B$JOD%CdEf7)kN- zhh`|m2>m(aqX!a@ZJmXQYIcr-LaHQ^q0gaPfS)B3-iKF`MiN9tkZjISnW+Bh$O0vq zfw}zMNU;gt8u(gmz6rl12iJe#&-ruU)O%hVW?f);Lp@s@e?zi+^&1LR_Q9Ou?7D`X zAU8S7nq)7+@;Yu<`0oEuY9i>c2H+6n{~QvJl1^}of-#`&E)`jp8SRUJP80Q%`XW#WGb{?^#>UVCOD zh~Pdt#leGWF;I`EU<}ako}&h^O&CGPnnqNPPEPm>jg13TDV1lj;Fg=U~SBV^n8UN3AFN@_h5z4 ztE~0&lvV9~<%uYdXB?0y5>%m}S-}!$@&#I@pJoe`de{CdHFAG_Z{z(qhlxf$L3JY9 zktL7iOjPpp{tFYC0D)?_KP z>eEhmU|yeZ0>|3SU~S~6~NEp=P7Vz(ED?ylY!?M%_JQ7SkELvJ0}Y=>gJhfBw>+I zWFtBgo%47WA$~Gh^coyW_gH2Uog71%VQYD;jp8ATXB&T$2G+QzhlCcA`fk`xjs?tc zzubO9QWyWyKI+djQy0f^BuIm!?;j+yS2%~sCgF;fIOQOznkU)Yi7?7e_B6>H@^I+|yZgQIsqlO|kem5KjwP9ztXYSJ?+1#(6 z>6qY*C?tOYgBAMq=6UZxw?U21IaBmewK9?#%mPh}!}BZ@!g zR?Q51CzwP1LV}Ip}+P9CnX*&g6=Cy|kG=YVKpq6V!eG(g|xr?YEi! zX2BcGQ082Z&IinZrH4b}Jx>ma zW2%4ioJq^~F`(jy?*+0|g7XwkWnkICnRA48UZ{oWbGl^yr|(A8DzMU4Qc3--=>Xx8 zp?RgaiCY0MhB*3p{SZ;q_Jr@ZbGIZR?0|?eA{JTKE5$ST&W8UF3 zsy#|*cknqyQhmiQN2z4hmPo4GI|m)sdBjUY1$otCNV3n|f@kEJ8W@Q|LcTfs^c-0ttT! z?)s$=dmM))TtB(r2yKyu8-BMuyB1rHTx|bR@`9Yv0V$c%|N5N6D^T6LP`K4|6>0xX zD^b5&hA-?AbfT{vifeh+(sI-j^3fss;uzPGsY>H-Kw%NL#Q+*fE7P}zYvPe&4yK@n zV$TJrB9`0w@sp-XyN=okQgxxKSs`+FUk z1zMVGB+0EB3O|p|t3k4PJZpg~l+9rn^>=r(fpu;E4jDngDC(LC_jjY-hWh9$cD#4_Sz+^e%>*Pt z-wGtNpPGP3L7kr!9;SaInn*VHkO`KD??(Qo&kxmm9lNE8=Hl9A#UytNpH#`w+bVkRDweC0{ErJQR z>D|ENJ=zETpz~Y=B)wyhNOtG0tYkwtN`Pc@>vkQx-6K#mb0vR}uHSPczo-SdlE~uL z;5xD!eV<~-d)1Q_rc!X0VBrV5WFms==g-j(SuK=x;+#{P4@nJXj*NWw=V-kXAg4&O z+lhob$z#;9h92m)*g7|>*GF2($8fd@5H-%3K4+#+ih6qM(JjEW3lSEtG_+E)G|))Y zKypi!YZkZG4~c(A`_>~s=W|L&X6Fg5WVJan4$0&m|4Oc8>nonRFTp8;x8Rw!wB1ae zhkQtav0iXXe1$AW8kWu}mW!h}>q>yoHS9|C#lMu!XTgaMFD@7zsz(L$v(hOg>05I& zIexH`_a2;C8*MoJZg6-5T}4K`SAtqM>OJ|nuwf&)rXYXQ*K^p{joyVmKlFKU=GD64 z)<@TDfxae--uZkhIW~?kt;8za&suA@2Rfu;KKba-=fN@jwPL!s4k5PezS#5yFTbm|l5J6mAJSwsQoH|Z{B*;M8C_3z3HLVLv@CJ~^SJg;c zmq;zp(ZK`r6#{Xk^~ewq3Y%N+Mt3pCYG|uS%Q(M=7{Bh|jZt%qYoiIQpMXf{C92O! zhtuSeG`p^Xe_#!Lx`V^ z+tHRlb=8Im>s6hQ1gyP{Le9Z%q#Lm_Wl4Mt;&U5;F4yE6nHtWBBH^wE`-jk>NB>ET z4LVVg${JLZKoV$wAgQ3U36k0Uk_}J7YtL+;`?8?Lr4Hw>GvpLG{)#0IBzkw+*}3{SsQOC+E~7 z8QgwDvU((i1e>)}KWpQ6k3bKU*b-EQ4SM>0Btb=!&Q`3VRwF8TMM!#ul?wA9g=FxyUnOJ7wx z1!nw9$pmoj{81=m1AbZc-Y1F7hU?%0WbI@5Q|b8uM(#dkerq)F7X=OCfbwo88! zky@8<$msXrVodJ66aERlhwu-}SD%By

5P1xH8f2@C}l0_#BrQXO9phQ6*UBCN1*m8lcLJ~xiD!rbZ=|@qt&a*!&Nm%abRjfg`xR3-f{z|T| zSKY!n46Jn|tFsKABvr?nYSF>!CDwnps^%l47i2;o62}~HT*+kdHy~W%>wprUZd+E` zZMYUg5^%qeV94tmP_EO_)+3?H&k~B(!S>L*k)7*kL?t27ty?67X8dj?s9;}VfP2KV zqW6-|_Sn|qV?Y<$U_`MxJ@QbIxJ`j1sIySV98_#WvRBu9lxT7`T|KN@|DJy%Z`Vf@ zWZTgd8thc}e=4OBJR7`HO2ApkNT?mFb2`yBFOtl`DMR8^Fh4Ury!`y3w zVMh|Z0obi$TokmRS*Cs|)%6`Ct}FdZeE)!G273WS)2-;bk}0U31QQzAd=(hS?KdQt zo%%f+jgno9k$>uTF9vMDHLQOdtXChmEsEgQjs6s_l|lJdU-2NC(dZC3bKSd9#n{hn z%o>kp)e3Lj$L**x8b}g^7aeO3lVEfzl`H&9>p+&8-wiY`cmryN`u?fI?s=h=nn8|& z)*W-h#|?%`U^(nL=rLO1b2#n-+}nAjJ6^5vcoq`!iEMO`P+ZX^w5Wg5@7ZY)@70Zw zERlqo;;Q+e{7^Jh-{2@+>u*gb1NXBa&ZFV{Zsc^OKtiKpm*C6j+QFF$sydN8&D;6i z;MM4Qqm^8M`y+vP>vscU(jCk-bN~vj*@|j0T)^J5W+|W*WNy(ogUUtv9K0XTCfZ@N z`(D_O%A~3fcG&6e6;OXBI6w_|I+8i_3ip)c3Vmxdi2J8Iox=RoJR}|+BakvU!|Ny_ z=COAqy)(0S>I^xOwI4o)?=0#Gxi7QRV%n>(QLHR^Yzj%FL$Lk*l)-rqxVk$Oz+epE ztviE=rs1R4OWR?kIVQBjC->OyP8|Wq0+0k}$xh--#g`iJtnae%?f54CXC}%J9R-F z<3cj7YCY|&5BD`u2G!Y{9Q3W@%9P*>y7wLu@7b`E7wR0%opM-?Q|zFy&bvhtbPn7P zhKipha~o;C`6z#4teWrOl(=~HY|p(vtD;9lLnUeVZ8Wr_EbIEx9@q5BxMim zYq}9T@vZ9u%~Cm3`Wh)J9ryAgS8rr&~DAR4ey@?(P|3yFq)kH-JbDZO}AD zztVa@HFPo&Bs8GB~wKQMPfLK+-1N!SFqK2|H=$LN|Y8jpdLhPdbF1S4Ix@>#1khg1NKvgRwrpdw4 zFvUz$;5L%T(#p8uv_Yq{orUi2wd>cR^~mxO4cme|F$VGmV7>fqTmqIm%z3Mc*|vGk zkOsbd>m%Q;)LB+MRiN-(4c{R-i-W@qB@Q^vY`xL=lZcwFcqB7TFsi&8H0EYBq!Hd1F)PzmM_V8m#x|lL zPYG(B*~&;*zlH#|(8xHNM7to_Vb0rZQ+}b(`qr7cd5XHX6gj2$jm;dhma9cPTiSoC zHM^lwEu>rWWfmFhg5}VgKSvA@k+Fd&PC;1!UA?5t_ORycIp7qE3E{D^g=WzQE&cZ> zK5b(_E#PAl%X0>r!YRrIoCyqTmMW>}rD*LYifwH0@b%pwGS9{%rcyJ9iLngYk$m3K z5a*VLBh>S@y)YiZB=aQb^+6jZV?Tc%mgUi9R7Qs`k>s)1h)y&*f?{RYu(h<#0=t(A z9Tvfb{c!Y&wDm>~3Aw)F|IlE8on={Nc+?%SDO**P!5|;d^feYV{ibY0k1`8I_vu2X z%GSIodXmB-HVdU)Fi*7ZaZ55dHmt3kg~LZXnzsw^lGd2UkvdFo(>wGV;mCiGv%aMo zCD68w!TQwZ+fG1g=W@{4-IxTjC2duak3yoWUQ?*$W-P=O>K6yP?O^IA4Ry7-N2s6~7-nCufxmGYiC4?><(_Fv-s9;O?|gVZMA0g)Zp* zX{=Wyd%Ic&d55ZGeC#lAm7DGY}FT?q|On&`j*b}>le%0m&GYK8Wi;Z=G=G|J=1_*PEwK0Dn$lpN2TTTic z^C-q^h$g23E8cSdA=&N2X0|ewE~x)zm2ffl2>%%4rW?t@>MiyTJ%&09hAdExg*w4z z-F8z$rB%!Jq8#&(l$p>?B!5o2-rzH)F^PulW)48@?Sr2?%I_sz6>Xp^ej`rYnnjFL zL>$m86lw)fLD-_@9o9YlB;=gKs-yF!p;AbWj6^wUyPD|)VqJf!k-(;FO;^F#15>p% zN|pSwTO<fA*YOX>2e04a128%{V3GqYTYtHWJ`0$bv=H&3 zkj>)3RBNjo++w@*X=W!_L;xU<8Y;%o>@z@xR+xbiM&^I8?FBSE$iH#6>Dx{|mCklK zdd-@yf{9Ax+q6F#Z1C>!x!* zu7^LnaRl0P@D<=W*ldsNMz#InH#dnw6!r!{Y}yM8@M3MWA`2)M{i@9-M?!@_^LG2` zFn27&1qpvyMZ^)NY6B^wkHWG0Zl03~fV>Abt38vp> z0tF=D%5x~rO3JlM-~!p{+*7L=J65mhN5G%ioMH-K;bToyw*~U=yZUJcii7=q8 z_!TBWXSLw*FThkStNG|xN5s>{`Y3}z*(>=T3Ri!0wY3#bULBRx#Cif!1p&-9+i)C+ zaM;eOEmacrl&P5OS-%HbC&_EF4lwv&09qwAY-@`C8ty`YDAJZJUXSu8GGumDI=13u zIYX2I$%*QYUydje{CeB-%iXBOBsImKpeBob1}Y`T{U z6a=JA?<4{eyum8(22nSwKHyZqM>p2dQNe!&f7ezBIp@Fu$)2-=``EdiMqn4MdXn%a z;j)Pif$K76R)RcdJUU((vQ2ReYCu@U0&G!ggjmFr7Etgu>_ms8ge7G7H94Ue(Yit= zf^#eddFzQhmc?QP6rdoRR>uHrrO{kC2p#lnFfIYsH5k5Go%Eq^y_RU2i3p5_peKKN z65#QghCPY_V{gcp5<_=?J7EaXq}Q(5KzKT1%F@w&Zne53`6wHqK(V+IWh1C2r_X_8 zux++WsJ(*$X*0JGq=i-@U%EkK*7zxW4iF5>)`wY(AFR8CJbB6y+jD^M@px@7(CrGp z$-eX;d=l}Kx8AAyg&FXr1cnSgzaf8sSc!zh&DsD2#dEa?2Ni<|-I-rP%c3r86$&yG zsF1#h#Rbb8P|AEjBnzx$88_@8Cc%7kSOH|0SauXX8_{KpXCYYzt+0vTdU!0d5`od$ zM$uO2OB8xAq!C6ky|^qU4!}hjXG5uv0xEDpMUUow#k#eARAC-wpF|V3BEyPugl}tr|1I4kK8#86hvglrjaTugl(TEfl z3gPOWqXR5d_eJJsf@h~SR0w}oj1Uy{nrSDq*{((n{D`aC?&Bi;e`|CQT;}wc<6P7!15j@i!U4%8;H5u{8050nx>p3bekvE zwb{5W`U^17j13;{#}B4hqG5~@8JzX}N+pm|f7s^Nc>YO(KuV@t$ya$yBI#^A~{8h>q!VU_~E|q-E{Yk@^_sN#qKIkt`;`rpMtn+ma{-F%k38 z$^FT|?sjT&o>H*dcF9i79-O)_-ScdR6#9x4J1Et>3B0MwBIm2B5o^sO}%Nl0h0)!#j z3H3@H(`z=_(`(6f>DqNPZLh!R|(ZLcl@U^)ODcM=kOIo8!pR7LCNVnzQy& zD8M^|a+r`1#x}2w%v?As#yw^qK(R7ig@lPPUlT7J9dET~U~Yd__&YXk?m;J-~B#K=`f~UzfqN`BwoPf52NuI+yG~cX{)rOX@@*Fyz zkbtTZW&zfKT|=^r>QRzT(4xj|g=5#kbr;QtWQPbMwm+y3y}hhn0QL#xgmnLKCcqD| zHH!b`RYJfhs9k?(whJZ_mb}$=Byva=rCBHh1P&kFz6ZWs9?iCdzC^xRWBYU_YE|qk zVYyXswoT@T0ZoJ9e0c77S%z#MeSq;LY{jqioSY3UD){>a%U9lj!sQgvw_QSkXHGP+ zuc1z|w2gm&WMhTcF4=k_gsS5?>mg>__iQ8dXVvlB2>*XT&jmc{o-9xK(n=W)=n*D? zJhK~W$lig}XucT|kSFUJQHT`NCD>Ng;X6}!U*3Qk2f&b~L&&S34~LB?xsCWTHgi}3 zRBN^or4JTy7O@7|2^Bi5N?1M9D%u6tkWlq1&ml9HI%;Mk4L}5-GBO4OhXMgi*;!~r z_$J1yAvb@EGL~jrLJ7-kMtf__Ys%rvhz{KdZfW&UD2RFVsFHI5UCjnId-PyvQjO8x z05w7B8Cf9*r4k~Qy&JuviIm#7(L{}Q0kRI*JD?tRVn8h7du(SR0qe9A9hZJ7)wu3Q z;U?N_*Du#KY29c8tExdUWSCOM0)fu~d(%29Q5ApTC|oWl2FK~%;8V&Q6oU1DswTnp zfW2Z8QWyuTAA(0saLT-bp^#`rR+Zfi0xR@0kqq!{0H93L4=@c>0%o@AN*ti2VR+iz zNML7xL^8H;xpmir4-=IzeQ=mn5Gw3$2aC$=M5=Vn-q&iN4ixE)V%Z%G#6((%JZB;i zj+TF5CZV|hXgZPH(}~jdcDI@GfRKLVZZi?wU1yFM^3hntu7Qy?8iqpuy%{Uk<_9E? zNSED>rfj5@se~k8a#Q6ER?a!fDw%{r0tC`kQb8#7ZhWYABZi9v!Pa8cNI2-i^B z3(;7WNWf0bwj^TJCe2#njH3s6wmr8Im4|;?BVW4J%0X*i3Kr0{hSdxVHI_&?>!X+odp*pdW$3oFXdk(316o(VZ4#J~ZK2(9C+J=7V zK9eSAEUICL&0U|h|JR@1+&^4hKK$;tH*aoEkMI9<|MIW>?)LH3&6^)j*Kc31r<;H8 z@2^g;zU42Dx4U`s{rz8-tJ@d(_vd$a_vgQteE0GD7vWc5JqsRgPS@A_{psRG@HC}2 zZ!WJMK5XZAPq)4P_H_TlFZX>Kikmn0`s?NS-9P<&uZ#2TT?kKccP_j1+k>Hep`6MekB{Ns=J$3Fw*kz5idt`}XwV z!`0JO-~Z6QeSLlP!~4hfxa^Vtx;)+g<>^1Z|DpRV>z-u%*CBiQkJH8RvHXAa=YJf3 z@cd8y>hnK-`K^EXt^eh>^zvK!<+uFuTmI#@^730betZAZhx7gQ)$L#2zW({2$M5g% zuCMPtoiBg?i~Nh9o(JLK{prJ*sXl$Yeq_bny?Oe9d3^fe)w`?f>x;YVyZg7V|JVNX zzt>N{y?y=o`qjhZ{oP;A$3K66_uC)e9Dn-i?)FLY?(X8_!^73z5H|n&X@-A%^ZeJZ zUhYQL7XN#i$6r14=eM{%{dD*7@zsxS&VPM;`}%x&bv)?q&DG`2>BGPK_0{F+k-2?Z zykCF5+w;Y&l26Z{^vgFMznmW*nem6;{TonA0|XQR000O8hfd-^zgV+7OU4O*o;KZh zvH}1A`Ue025C8xGcW-iJFJ^CVbY*ffE_iKhwN<-r+b|T}3-liZ?zSW+DN-SF5I9JY zr3jGb0~ngJgzyEDHsfsB(yc@Hj{Sme`JJNK@(aDB9(F1>$fNZ@8CSgLoO>>LwYPuC zS+tIkxh$($lN zDy>yn92-(nj?Iu)L`x$JJ0z0FvM4G-V<+`A9wliK{wXa9H3q0ASS+wX4IJ;INks*4 z6;g9-%~0xD%(1?hs{x=ZY^(E%Rdxy3$-5Rt=4h@()(9GOf_zF=3u+#JZHDeuv4OYF zJd|Y4sjz`D)|7z;DNI?ZRT(cugA&VD(&Diq7M!*FoJzNQd|k;;>A|7K4qCAS?7?j? zV_GM1R{P-lyXxwnh-vazF-=E2M5o~?5*~84N;s}W2lFy(*33QU9}(2m7_MTg}t^)r+u?|P+~X94u?{%MI7?c^vknHwwlA-1@~b zZ4~=pp)sc?8lp~Pl_Lz^3pkUo>p+lF!j!P|()vKz24EP?{DE_S+2sMNW-v+#3Ypqn0wPv4Js|3h4YcOIuiUmb%n1`OC> zaBKvQF$Rgti~UVz)UDR5`3mRvfBxN%x?2*ognuNuMQ5$S-L1Ynm;e3xPygemyImK4 z3`L@y;qDs^fs2g|7ed|b;f~Jk+cz5i?T4>EyVh_a8Vh!J1iQlBp&Jc9hoTMtqxJv% zKmO_d^^S1+y}P0A*af_zJ9_(%zH~Pj`Rl!&&+zu1V63yPv#T@qGv3{J#duBlM#H^G_jP?hpUDByBiDIA`ai}K zk-S+H_%1*BM|}mv7cWIZT^K{SJ9?+HCx17Ma^Hq2-Z6&s<8hPt@otxK-~FCIOWyb7 zl%4FsA0xs0*oxc>^IlhAF*^96yIs5vw7AtD&IwzUBbv3uYcrC zEn3nG@^JtAJHeii98OR4=DlbveD{yRSWv$A{{8zG@ApJ6ws-4<#Dsl;=1ce~_fW%y zyY1Kie7idw3AS}%ZubK%7w!ixUmyf&Xa((R3wQiX|MrMK-$v-4Xiu;muz%tH^{!4@ zkmg1ZLq7TL9=#=aFBWdNM7REDJAZ!oG1zsZp&bM;6yd88eoy49aCa<<8-mgHPHd8r z7)c*Ip;z7cqC1+qAl}r*e{V*`zquiZm$x+Xi=)37pKEHNE0^wH7vI9aJ^D9kRQB)R z>Fkc(Xb1(Pu`i;XK^j2SM|A&stW|q4rhR;rSzFXT_9~Nu%H${wIL5;ke}BcQ$J)AR z(D;X^fP?R2KX-+Usb1r`=ia# zpr38C_1z$FXcU`e`(3Vhk>`yyE%E{$xf~3iO8ERb(%C`KbQ}NP40mBN^qOmdt2_t%RJ}+=NaIN`rfy*s{Koec&4;tTz@p=%3eEE}(EIv@X2&g5X0Dr9A2emrP=xiYt z`BTVDP?`a@fZ#hiZ;O3HjDkV45Je@(G~U!MV6k1ti*|!P6Cy|im*n}!FS%7X zWM})#;?6(z2bGmK>h|hC_J`E@q3rCW()Ui8*ezp+1f!_s4t){n3__EXQmQ;}hiuO$ zEUQ)ke!YQMmR$o$AWS+dQbbVKWEl{xAqxyTIWCCkLa?YM7=Jm?c1ppvsz6F90}!M( zF_hh#u&n+mz@gNy+X#%4VU(x&l{zpcbxy|PgkhKZb&yympRUbPFtK+so@y+`Nlb>M z0ahh^g@Q~hIpyAMTC%TD091X2qBMhD1q3qUa_Wa^CGk9+dZjI|L#?n7GiSnvuT>bv zUbg0zplXT@SbrF|iy6+=z2>^Y@j_k&;IS%VUt0wRRvAR`rSbxJ4%p`jFHbu}^9dZ#iUQp)_6vJfv$O8^;# zjo!Y5~tbar1oj^vVSu1Nu8Tj`i7L1HD&zuO(nTz zwSd*o1`}wsz($cT*T&YMBvvegA@n-g5a`Q@&Y~YGBqN@Zthh@+Jab}S$^b}0FF;my z=hM4Gneol^?gofUdT-W(Lq!m}8pgUnBM6%|beKtPD}5tO+X78rDDNLwMr6Ti5=CIT zqklMR#((TF%>@l{+)|*)7Pl1oDcGLp**&FqwPXdC=0gr+o|hn5`j!01tK()+mIKB% z+9nZeK|)N<^UK#TIwziACveeb`{>E8P3&%vo}xkI7E0f7{3GK~PK=XkDHIx$^Q@bL z*6?0Gq{KxbC3PDob-4vm*#ajlaZ;B*Z}B6aPJfO<^i_5jtLy@_Avjh)nuaxuj?k^( zy{;GqYn;G|aEB59D+7@o^CiSS2Sq%z2#pGLfA(+R(JPH~)oj+9BI4Pd}=d z*>>m%0aHSVGI(qev9I>yEPbf~ZIme^qSoQh?1_Y;p~#P+hE}+4E>v-nRfL|RQ@UXN zuYY>8bE0QdaH}rZH>xch{wt+4eIE-(C|0_&Lyv;)4&KEkw~MTZP~<;4yKja6LytN( zp82x7Lp~ukN%;Eh;&OSQeYWeuDg*u+Hn@V3PC}5t3b>C5i`_U46)OaCUZJ{5-+N?$ zWTrl7o1Z|MC_?fztbJ9C-Koe*AH(DTVt=hw4L+*K1RV416R56@*c#NvOrZh|Ks%;T z!JeM3&h}t;>_3d?W}Twts8fKIfC^G4*Q}Ritt?cFh?khLpVDDSEINSrijA+>fP9py z*qllX^$PFQl5f+g18uVx7URrP?ojC$PgiN@9ko~F3sm7c(X6&b8Q1ZbDPXHE)w%e7c-^Q8&sg$aeeM}5}Zmv@{BAk z;{2*8WZ7)~!1nSgPWDtFQ|8p96QFwYszxZ&GLg2o(?dC`|0&U3FHiBD)g0_C7T7$JpG8VlxeYAiu zH9x-lq7V^&tfjVW9O~8~)Z&&C^R4$I}eqKE& zf+?@VuWRS3{-1tqATcbxRpMpeTTxbP;!~JDEUd`S1tRmPJ%5Fd4 zdg!-JxU8T(t$)^Xplv3Ff=B|UBy&6eBr&;YFgqR;JL2Kxv0C7L3$veVe(;3+Ed?4B zR$BeQSIUVUkjW`dFx!-0ZpUnrjEiITc}_KFd526Sh5PKZg>Ho-sKVG1)Cpt+ZgH9nVU8n=!q zjZDjL>!={lPcas--Bx8Fi8}laYd%(SU1%%;8xFZ-g?=4%(;_+Qx|eS}%z+7DRqW#r zcS2Og{%&V?IP#?_>`eezu^$Z*S@8Fgk%2ZHHOSMc)%5O&lg)SSEHa6BW^K#K6g;#w ze~ZsMnSYUMHwBhDWpc12 za{9``0De^$9%{>@>4PKrRCaj}*k@a-%=1S|-+K1pI__5n-=M-iK9N3f1P}RZSY^JU z?8lY&(>w$1#hCW-5m=h`u{XW@Tp3=*N~ogQ41bs$7D;_Hp)T#IV+pwc>QG!;dxSN^ zq}7GxbZRHPJ8oN#Z2Y-)G@wi+l*w^r?giejKHXFHC-hI}ee~~fv{lfz1+N7rDF;u| z$q|guKy+TcS?Tu;H)I0=oJe}O)P9@NSPR}=%+xUGjqF2aticceRl{}ncf}C z#vf#+)9%kz7QS2l^M*G=lw&RZ^Cx8)oH%}d!M~R~0k%Gvo3gfb z*-8@J>ij9x!KPQUV+J7NzOrk2!3?9UfTi-lwadDh$#ON&d__-Bv|KJ&yP)}V-G78- zxwYk*o;hT>iuV?|Txb;6TJ(rY>pKEX1uuVoxlnV{K+83O5xk{eM>;#iY6vTXK;u%2 zgP#a{KIV0VDvEhtj$3THD(a2h`R-m9Xmc?34cStdY!qSv1f>SAE*x4<_zJRSFS78@ zp~&r!LGI9qlDZf2XQFqgDWM?5?SEaNV8p}*g7;!!I=$7|)peuckDt^3@k1pRZMfgr z5x##j+#QRAyM#R`*zuoel=vO_wErxcBAV-RN4tYPKZFStje+Sr%ic!)IO}bp)su3L zjB(PXU?nkvmYjheTSYo^0+}?CFs{mVq-Zmji{gJ(6F)?+Hqlq6?~Lj!IvN|BgW= z!3^DxG#=Iiv6P<@1&%c@9Q$;@F zQHK#hv55#d_313`$v&S@=abplM+kbO)4nkrWHyG11wEL30RFaF-9;7HHi|cs@h+K- z!_2|&>AewkW>x$6Np2@aDRLYPLNh=8t{uF~tfjPp4;-;*(SL4B1yY$*aF$61l@P2d zuot|>h;J$!2|Bh!kw{Z}2piQSLAUzl7NwIb>C`hBRE22UqJcz$+;XjC-}E5penA(} z$vw+Y492KJAdsg`4^1LethV6@zUko<@d&3RY9x;4`Y7pihlD-fZuYXjDqy)jfBJKQP@;$;Bw&hLkHb1yPS24iH zvfs3dzB=I{b%Hj`R4&&D{Ehr6q!)t{QL{}~#FTuQ-G4JN#JiE%63~A5oL( zy&+K!^0|flv*dB+!lh2_?WogsGb-qDc@AYKXdzx-iO&j{82qG6j{Rfby2ORsfuVF0 zpjBs1p=dM|`ZL+ZinAvD7xSblH11+7)_-VjCjYfSP7%Su#$YPCz9=^eT**G!0r)#y zWmD6&uG}i?l(~QapeHq)(X6gxQq(a(IAX-2nD8|TqYC4hpr!Nyqtr3DGGfzFoD*DD0yBsQ*rz)53LMekyH;B5u75p0 z`)FBb=nh6!x^h$u?5gFcDw#o>8WDAb+B#!5gOL+h^l=@CJh4F4lmt8jBxOh$rp`7N zP$@2F=;4cIIpY-Aeg?SY7*xs>XFLNglDj}uawv|NN*P(erMN(nU&#oZ%8zm6rbfP# z6tGZzCuz&)HA$Ir?6o+Blhm)u>VFxZD0ei`w)c=jYEdv)R3|ccZ0*i!`ONCIVxXy% zq``s^iRo6 ziRZuxS;j0&cF@tMzW(-mEpdp7q~K*`e6yyMsS+#eEa=AOJFDp|E6tY6=2SLtFno08 ztl%b7O)^VhPjLf^C`on>q@hYJdqKnGS;A)puu!B$)r`cUNnCdJjZfczbYG$5Zj=

;L|q>au0|9dVe<<`KyJ#nW`RG=$lT(jAwF151RD09>r=TP zadU&S7c>|PJ+Wd`E|XZ!O!kBBI5heBq6ZnaE(r5hInjkRmDMT+C4WlaPCE4zPy*+X z4=Ct-3?zi#QGx(qGc3r0u z<7h@^k*m%L?Y2M{d-|<8D%FqRIDMjNE%MjP2rCsBR%waV#8q0GEW78}=<3F)zzbj7 z$y7k}F-OdBJ{Xs1&wme2bVz31w=vP5??NEG1+(IfhQD-n-|oQwq8CK2Py3x<q>G8$*G7#vZa|CB?dP1Jb%}rSJ~N>!dc!xON!c~ ze*|Xge@!Jo+qz60v18#Lpu4$70I8$luCTy#DwagnhazFX#}?x~v2DT$4O&lp-l$eo z=HUH~lPIWtqan~JJR+7LX9AwKF4=>EPrr?P`I9IWXQ;UL60+<%u6Cg(YpFTdMPtE8 zj8z*yyjk`QB7Y=~$}=IB)^?nHUC1MF=NaP+3?7V4FKL z5NPW`uhmz8{6i=f3O;?+pl+4p9zfYm1I0mMsw?WJmVDh%KR%Iv! zZ8lrm%7E48&$->r34~e?kMLo&j$!qb(lNy0R#qk8)yyPjU;tJ>OqT(YfflZeYy-(! zz@D$*lz*1qct(mCff|aQp}HK~|B3?{v1;GicbuuxxAs-m+SlA9LJVtb?XxzP@F}I4 zOIKBZbfydkyk!bq2x&=%--2ZrZMvGJHy5h~T26LII_7(rT&} zeo&g@pfro@Q8=}x*;IBl*Nv!X)m7Z?2c*Hm6MrjK?#s61Rg1HzCWhIwyPYu-PgzyH z#70gZcvowNVG?U#HWTclU7hWMDm)`dzww9mvfX>&r>uW z$mRCncAwJLJEc|U2Q84}jM7%ghVLbsm=mqZC08j=d`+o|r^Rsh1e{iS&#)~VEVkgZV^90}re-}OUlHSWhxd{jDHi~U3qL~h3~Gcth=)5ERqv^cV%KEeei@5 zh-w?}W+679HG2Fyd#YmXf5Cu|`Es?fKq#bs(Bn6yM?!zKC{;dYv9@;PgeLGuTB0w3<;irL>zTM98EjvQu$oy8jZFL&gy#Q@9(n zEwf@YoFqzT{Zj6`GK2*p=e zBjou_lrKb0B%==Qsf+ELlKvXXtz!kIbWe3flyJc(<^bEz8Ki4i>++N!jFcox4wJCe7wBMcxj~G|c*c~*BrNw% zeF46?^US)V0Oc?j*1PKEv0=F+*Iu$ntPYXFw|sur3F+|9LVr)Rcud{Tp?#zh z#mEJ3C{r)24pRB1&ohZHaF;M63SkxyX08+!W<;YVXLP%?Fh8qBu*?|bs+a`*;6MXt z1478f?u(#1L$0wv15W&yIzOhahNha9%YuqkJEqRD_wSFN)BiC6{qc*g&fDDv`s4zb z2us@8lFw!Q`MB-^>3_?Vc(6Pc3R88<_9@3nnvJqDpng~{N4;rmX>n4JI$(rJ-jRWm z?OmZ@ghF40lzpQ?mU0Rk7uh%jT^X_1Am$~*>9LxrC&EEa07m| zKz0#?Jd61kDN$jssZeCZF4;rg9;NRS^3HgZ+`8PYdPVb@o$QP?jLqFEoKCH}c1iyp zA9gY}m%yr-h&UPcSrCO*ZF&9g@e$B3WuV{5AYHPy@PbQHo?YHc?~XVb{F$tsh@Khdl+wGj04=4-Y5>XezDfopLy&)n(qjOYg?jh2;wuvIAq< z>s}m!5?BD1hJ9w6O=gFJshMZ9b%oXs*uD1X=yihLKk6^ewq+d~&3*E>6IG(`T~A&`lK-vnYXD%=W((Q326?WV*y)9ppy zZcZ`{-3s38(u;-`eZRRzgZY7?Uocs*LO+JOPZ<7H+6qMlrfOIKFbNS+8}{bNioz5qfF3hkx!76Bb$AAXL}H8HWw=_a&`upd%n4d2+$y6U1vH&- zvyrQQ^1Xy7=CSwO{+D}qf8bRYJ&Cb6yxg!U5-<}Ii3#Ai``%sobF4Gg75erzQ|nmQ z*MDMtaF01Yp(EU`=Xvu!6TOHUIQVU6tR4H;91tlu?TB*!-uM(=ig6kkLqjIap?`_o z=`0TaFh1en``FK25^i*8z-7H+P9V_KVnUXVpMpHY!l}i0uJGPQk(`dk1DK=D+)A6x zvyh7=mc_i=B|mK4|B@fKKt#z;pH#=oFn=@`n>j!K?*=%O_T3NZwb+mf>o5{suy|QSk@vh;E~J0@Tr7S!UY0gO6|WH z?&484Ujv~M;9|QBGF0I56%3ov1G6?>sC!%qA@pYFJ`7)X9}G*la3zrHkfVz$v46;) zLKJjnpm0m0V4#)rvKAxCgau#((rIc$&ld8RRwgndzzq$Z3$w+VHJmbezD=OJ5#F4W zE;;IgWQv@0X`&}YXZv4u${@CoxFu5_hf$}(MB|C60exEGYjv2><*j*86Qzi$M$x*#(ywGm7&41V0TCetSG`sK;_6}w85tZGLVF+h>~GH{jO}im-oQTt@N#DAFlIzl!;*;HeRJAUMllj%CDoD#DB7O_!K3h zv$HRi$;Uiw?Pv}aP%tA55--siY-a z9ZclGWR<@6;69nD58CD@kbixLY}Z==z&w$d8rYVYue@>|fI$yc8Hxi2oXpo-n``zC zI+>l<2{lkVy*uUHx2KK|65<~YW%@>yxr6L%pA(ND;)F_l#L41&3$(O>-;_@vkJQ5* z0Lj_Vk)?~x<&nopnq(t6O#z<)i#H; z#J)p~((C)H+XOcEq>@syhQ2VM&Mak~KGqTmG7IeOD4ToyTJQ^0+99GhybM)c=^N9w zU$NqkuVm(SmA(&HdF5~f5(Od)Gs_9QO55C|Unl#a+S_-5tZ(`lCP&^?xLstwfmd-SUS-1XB zlBGN+^YZ#umKYN685^X!GXx9GdDuY`)+Qfi-lv>Q*0tO|&)G^I$!z?2W^t7)i(?ZI zEfH$2J{?G>c3@E;^V`;YCsX!1hDxd2$z;8?zskhp%+z8gxqp;Neu6b!*9OEELs!t% z0-Wx>X5oSEdH#rx$xpZt2N>{e%H+8EVji_TmDdlDQG!6oPkG_ z2?E@_IDjWM^C87+B@$DI)M-jRHLoEQENyeud?g!ykeOQ7MjtA3+sbI4Is(Ts`Hiy+ zFQ6G?7ntCjh<~0Ebe(Q=D!0F+M^28?w|D^a>**wv@&uf~O5bWa^}F_}7nA{tdpbG7 z`g&%4L`hBn5->qTdMk-#+>lO=@`2Jnh692tZlob@u0Nc@y0IlgqKq=JnVH*G$5*ot z63V8&^|ZW5WmSc7K$?Eq&8XTMR59cDeT&d!61} zgmXhVc%rTKgAOokI9U*{Z#{^cjXXM;wYR{)M$fbJarkDHiDyn`>h=9q=NzTXduv0% z_0GfIfi5|jrnmNv$*l5z6`^V@AhGe=$xOYDj3iVfr^wYg@eGIwNzBQty|urW)4TBG zuBH#>QGa1XK_7vwemPq^A&x)Sj;!5$i pzVYeZ4T=YNkWi-_36$R2@-P4S`^?au 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 O-hlvsU>f*_0R9i1s}TbL delta 49990 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 -1){ personalStamper.setKeyword("ҷˣ"); personalStamper.setOffsetX(-0.05); - personalStamper.setOffsetY(-0.065); + personalStamper.setOffsetY(-0.075); //ͬӵڶǩλ Stamper personalStamper2 = new Stamper(); personalStamper2.setPage(0); @@ -316,10 +326,34 @@ public class ContractSignActionTwoUtil { sealStamper2.setOffsetX(-0.13); sealStamper2.setOffsetY(-0.04); stampers.add(sealStamper2); + + //һ˾ʱ + Stamper sealStamper3 = new Stamper(); + sealStamper3.setPage(0); + sealStamper3.setType("TIMESTAMP"); + sealStamper3.setActionId(companySealActionId); + sealStamper3.setSignatoryId(platformSignatoryId); + sealStamper3.setDocumentId(documentId); + sealStamper3.setKeyword("ǩڣ"); + //sealStamper3.setOffsetX(-0.13); + sealStamper3.setOffsetY(-0.006); + stampers.add(sealStamper3); }else{ sealStamper.setKeyword("2£"); sealStamper.setOffsetX(-0.08); sealStamper.setOffsetY(-0.06); + + //ӵڶλ + Stamper sealStamper2 = new Stamper(); + sealStamper2.setPage(0); + sealStamper2.setType("COMPANY"); + sealStamper2.setActionId(companySealActionId); + sealStamper2.setSignatoryId(platformSignatoryId); + sealStamper2.setDocumentId(documentId); + sealStamper2.setKeyword("ͬһʽݣѺǼǻһ"); + sealStamper2.setOffsetX(-0.18); + sealStamper2.setOffsetY(-0.10); + stampers.add(sealStamper2); } stampers.add(sealStamper); } else { diff --git a/src_jbo/jbo/app/LB_EQUIPMENT_CAR.java b/src_jbo/jbo/app/LB_EQUIPMENT_CAR.java index 887d5b436..9abebd2b4 100644 --- a/src_jbo/jbo/app/LB_EQUIPMENT_CAR.java +++ b/src_jbo/jbo/app/LB_EQUIPMENT_CAR.java @@ -445,4 +445,8 @@ public interface LB_EQUIPMENT_CAR{ * ʨųʶ STRING(50)
*/ public static final String identify_code = "identify_code"; + /** + * STRING(30)
+ */ + public static final String car_attribute = "car_attribute"; } \ No newline at end of file diff --git a/src_jbo/jbo/app/LB_EQUIPMENT_CAR_TEMP.java b/src_jbo/jbo/app/LB_EQUIPMENT_CAR_TEMP.java index 087ee8730..794de5680 100644 --- a/src_jbo/jbo/app/LB_EQUIPMENT_CAR_TEMP.java +++ b/src_jbo/jbo/app/LB_EQUIPMENT_CAR_TEMP.java @@ -433,4 +433,8 @@ public interface LB_EQUIPMENT_CAR_TEMP{ * ʨųʶ STRING(50)
*/ public static final String identify_code = "identify_code"; + /** + * STRING(30)
+ */ + public static final String car_attribute = "car_attribute"; } \ No newline at end of file diff --git a/src_jbo/jbo/com/tenwa/lease/comm/LB_EQUIPMENT_CAR.java b/src_jbo/jbo/com/tenwa/lease/comm/LB_EQUIPMENT_CAR.java index a45ddde4e..c93676b09 100644 --- a/src_jbo/jbo/com/tenwa/lease/comm/LB_EQUIPMENT_CAR.java +++ b/src_jbo/jbo/com/tenwa/lease/comm/LB_EQUIPMENT_CAR.java @@ -301,4 +301,8 @@ public interface LB_EQUIPMENT_CAR{ * ʨųʶ STRING(50)
*/ public static final String identify_code = "identify_code"; + /** + * STRING(30)
+ */ + public static final String car_attribute = "car_attribute"; } \ No newline at end of file diff --git a/src_jbo/jbo/com/tenwa/lease/comm/LB_EQUIPMENT_CAR_HIS.java b/src_jbo/jbo/com/tenwa/lease/comm/LB_EQUIPMENT_CAR_HIS.java index 71a736453..fb504eed3 100644 --- a/src_jbo/jbo/com/tenwa/lease/comm/LB_EQUIPMENT_CAR_HIS.java +++ b/src_jbo/jbo/com/tenwa/lease/comm/LB_EQUIPMENT_CAR_HIS.java @@ -297,4 +297,8 @@ public interface LB_EQUIPMENT_CAR_HIS{ * ʨųʶ STRING(50)
*/ public static final String identify_code = "identify_code"; + /** + * STRING(30)
+ */ + public static final String car_attribute = "car_attribute"; } \ No newline at end of file diff --git a/src_jbo/jbo/com/tenwa/lease/comm/LB_EQUIPMENT_CAR_TEMP.java b/src_jbo/jbo/com/tenwa/lease/comm/LB_EQUIPMENT_CAR_TEMP.java index aa209850b..cce7b6751 100644 --- a/src_jbo/jbo/com/tenwa/lease/comm/LB_EQUIPMENT_CAR_TEMP.java +++ b/src_jbo/jbo/com/tenwa/lease/comm/LB_EQUIPMENT_CAR_TEMP.java @@ -433,4 +433,8 @@ public interface LB_EQUIPMENT_CAR_TEMP{ * ʨųʶ STRING(50)
*/ public static final String identify_code = "identify_code"; + /** + * STRING(30)
+ */ + public static final String car_attribute = "car_attribute"; } \ No newline at end of file diff --git a/src_sql/投产SQL/v20200915/tft_20200915.sql b/src_sql/投产SQL/v20200915/tft_20200915.sql index 9a1b2783b..1590e76f4 100644 --- a/src_sql/投产SQL/v20200915/tft_20200915.sql +++ b/src_sql/投产SQL/v20200915/tft_20200915.sql @@ -337,19 +337,16 @@ delete from BF_LABLECONFIG where id='975294b526544d83b806e3fc2f99cd16'; insert into `BF_LABLECONFIG` (`ID`, `TAGNUMBER`, `TAGNAME`, `TITLE`, `TAGTYPE`, `VALUETYPE`, `VALUEFIELD`, `VALUEMETHOD`, `THOUSANDSFIELD`, `ISSHOEINDEX`, `REMARK`, `INPUTUSERID`, `INPUTORGID`, `UPDATEUSERID`, `UPDATEORGID`, `INPUTTIME`, `UPDATETIME`, `OPERATORCLASS`) values('975294b526544d83b806e3fc2f99cd16','00010','customer_info','C˻','tag_type2','value_type3','CONTRACT_NO,BRAND,MODEL,VNDR_NAME,CAR_COLOUR,FRAME_NUMBER,ENGINE_NUMBER,FULLNAME,CERTID,mobile,fulladdress','SELECT \r\n lcit.CONTRACT_NO CONTRACT_NO,\r\n lect.BRAND BRAND,\r\n lect.MODEL MODEL,\r\n lect.VNDR_NAME VNDR_NAME,\r\n lect.CAR_COLOUR CAR_COLOUR,\r\n lect.FRAME_NUMBER FRAME_NUMBER,\r\n lect.ENGINE_NUMBER ENGINE_NUMBER,\r\n lult.CUSTOMER_NAME FULLNAME,\r\n :{certid} CERTID,\r\n :{mobile} mobile,\r\n :{address} fulladdress\r\nFROM\r\n LB_CONTRACT_INFO_TEMP lcit \r\n LEFT JOIN lb_union_lessee_temp lult \r\n ON lcit.FlowUnid = lult.flowunid \r\n LEFT JOIN LB_EQUIPMENT_CAR_TEMP lect \r\n ON lcit.flowunid = lect.FLOWUNID \r\nWHERE lcit.FlowUnid =:{FLOW_UNID} order by lect.inputtime limit 0,1',NULL,'N',NULL,NULL,NULL,NULL,NULL,NULL,NULL,'word_default_class'); -- ӵ -insert into `bf_templatelable` (`ID`, `LABLEID`, `TEMPLATEID`, `INPUTUSERID`, `INPUTORGID`, `UPDATEUSERID`, `UPDATEORGID`, `INPUTTIME`, `UPDATETIME`) values('03bfe750baf44391bd5db998456e4739','42223908127047f8ab57142dbb8d97a0','93e4194efb604c71b394d902b2060da8',NULL,NULL,NULL,NULL,NULL,NULL); -insert into `bf_templatelable` (`ID`, `LABLEID`, `TEMPLATEID`, `INPUTUSERID`, `INPUTORGID`, `UPDATEUSERID`, `UPDATEORGID`, `INPUTTIME`, `UPDATETIME`) values('05d78a6c3dca4bf29e87f3eb18e5b09b','3eca9a300ba543eea8b6092a59d32e76','93e4194efb604c71b394d902b2060da8',NULL,NULL,NULL,NULL,NULL,NULL); -insert into `bf_templatelable` (`ID`, `LABLEID`, `TEMPLATEID`, `INPUTUSERID`, `INPUTORGID`, `UPDATEUSERID`, `UPDATEORGID`, `INPUTTIME`, `UPDATETIME`) values('17ceb1904ad2440ab22004be904d3fee','bbe36e81f17542078489f223239e658a','93e4194efb604c71b394d902b2060da8',NULL,NULL,NULL,NULL,NULL,NULL); -insert into `bf_templatelable` (`ID`, `LABLEID`, `TEMPLATEID`, `INPUTUSERID`, `INPUTORGID`, `UPDATEUSERID`, `UPDATEORGID`, `INPUTTIME`, `UPDATETIME`) values('20c694a539774d94b9ab692052185625','484815c4a7a14cf6bdbf69939e5b060e','93e4194efb604c71b394d902b2060da8',NULL,NULL,NULL,NULL,NULL,NULL); -insert into `bf_templatelable` (`ID`, `LABLEID`, `TEMPLATEID`, `INPUTUSERID`, `INPUTORGID`, `UPDATEUSERID`, `UPDATEORGID`, `INPUTTIME`, `UPDATETIME`) values('62370924fef541259d7f10d8f9c3c322','975294b526544d83b806e3fc2f99cd16','93e4194efb604c71b394d902b2060da8',NULL,NULL,NULL,NULL,NULL,NULL); -insert into `bf_templatelable` (`ID`, `LABLEID`, `TEMPLATEID`, `INPUTUSERID`, `INPUTORGID`, `UPDATEUSERID`, `UPDATEORGID`, `INPUTTIME`, `UPDATETIME`) values('752b439202894cf49aa73f2db293439e','9ba1a7844e4447fe9cb115323a37736f','93e4194efb604c71b394d902b2060da8',NULL,NULL,NULL,NULL,NULL,NULL); -insert into `bf_templatelable` (`ID`, `LABLEID`, `TEMPLATEID`, `INPUTUSERID`, `INPUTORGID`, `UPDATEUSERID`, `UPDATEORGID`, `INPUTTIME`, `UPDATETIME`) values('f43c4d48ca2343f093900af881ba9a90','87e832695708478ead2acd3bcdb7a9a9','93e4194efb604c71b394d902b2060da8',NULL,NULL,NULL,NULL,NULL,NULL); -insert into `bf_templatelable` (`ID`, `LABLEID`, `TEMPLATEID`, `INPUTUSERID`, `INPUTORGID`, `UPDATEUSERID`, `UPDATEORGID`, `INPUTTIME`, `UPDATETIME`) values('f5d8d2ba671e4e42a2f5e3937a3c8080','755698c1c27a43efa6c23310757c6163','93e4194efb604c71b394d902b2060da8',NULL,NULL,NULL,NULL,NULL,NULL); -insert into `bf_templatelable` (`ID`, `LABLEID`, `TEMPLATEID`, `INPUTUSERID`, `INPUTORGID`, `UPDATEUSERID`, `UPDATEORGID`, `INPUTTIME`, `UPDATETIME`) values('f91300589f994439be7b8bee05906540','ced1455267d64183ba1b270a9eda6089','93e4194efb604c71b394d902b2060da8',NULL,NULL,NULL,NULL,NULL,NULL); - --- ҳʷ -insert into LB_EQUIPMENT_CAR_TEMP(id,project_id,contract_id,BRAND,FRAME_NUMBER,CAR_COLOUR,flowunid,INPUTTIME,NOW_TOTAL) (select REPLACE(UUID(),'-',''),project_id,contract_id,FRAME_BRAND,FRAME_NUMBER2,FRAME_COLOR,flowunid,DATE_FORMAT (CURDATE(),'%Y/%m/%d'),0.00 from LB_EQUIPMENT_CAR_TEMP where FRAME_NUMBER2 is not null or FRAME_BRAND is not null or FRAME_COLOR is not null); -insert into LB_EQUIPMENT_CAR(id,project_id,contract_id,BRAND,FRAME_NUMBER,CAR_COLOUR,INPUTTIME,NOW_TOTAL) (select REPLACE(UUID(),'-',''),project_id,contract_id,FRAME_BRAND,FRAME_NUMBER2,FRAME_COLOR,DATE_FORMAT (CURDATE(),'%Y/%m/%d'),0.00 from LB_EQUIPMENT_CAR where FRAME_NUMBER2 is not null or FRAME_BRAND is not null or FRAME_COLOR is not null); +insert into `bf_templatelable` (`ID`, `LABLEID`, `TEMPLATEID`, `INPUTUSERID`, `INPUTORGID`, `UPDATEUSERID`, `UPDATEORGID`, `INPUTTIME`, `UPDATETIME`) values('13221d9b6ffd4c30a1bfe5b584895955','ced1455267d64183ba1b270a9eda6089','93e4194efb604c71b394d902b2060da8',NULL,NULL,NULL,NULL,NULL,NULL); +insert into `bf_templatelable` (`ID`, `LABLEID`, `TEMPLATEID`, `INPUTUSERID`, `INPUTORGID`, `UPDATEUSERID`, `UPDATEORGID`, `INPUTTIME`, `UPDATETIME`) values('2ae855da5125446b864aec4f6e9b2282','755698c1c27a43efa6c23310757c6163','93e4194efb604c71b394d902b2060da8',NULL,NULL,NULL,NULL,NULL,NULL); +insert into `bf_templatelable` (`ID`, `LABLEID`, `TEMPLATEID`, `INPUTUSERID`, `INPUTORGID`, `UPDATEUSERID`, `UPDATEORGID`, `INPUTTIME`, `UPDATETIME`) values('4ec82fb5b3114be6bd816f279d5c2885','42223908127047f8ab57142dbb8d97a0','93e4194efb604c71b394d902b2060da8',NULL,NULL,NULL,NULL,NULL,NULL); +insert into `bf_templatelable` (`ID`, `LABLEID`, `TEMPLATEID`, `INPUTUSERID`, `INPUTORGID`, `UPDATEUSERID`, `UPDATEORGID`, `INPUTTIME`, `UPDATETIME`) values('5eae21169a0443c7993126ab9879b936','3eca9a300ba543eea8b6092a59d32e76','93e4194efb604c71b394d902b2060da8',NULL,NULL,NULL,NULL,NULL,NULL); +insert into `bf_templatelable` (`ID`, `LABLEID`, `TEMPLATEID`, `INPUTUSERID`, `INPUTORGID`, `UPDATEUSERID`, `UPDATEORGID`, `INPUTTIME`, `UPDATETIME`) values('922cba95cac94feb8c45db6346c0bb57','975294b526544d83b806e3fc2f99cd16','93e4194efb604c71b394d902b2060da8',NULL,NULL,NULL,NULL,NULL,NULL); +insert into `bf_templatelable` (`ID`, `LABLEID`, `TEMPLATEID`, `INPUTUSERID`, `INPUTORGID`, `UPDATEUSERID`, `UPDATEORGID`, `INPUTTIME`, `UPDATETIME`) values('9c7629433dd04378a53de67a86bc2d78','87e832695708478ead2acd3bcdb7a9a9','93e4194efb604c71b394d902b2060da8',NULL,NULL,NULL,NULL,NULL,NULL); +insert into `bf_templatelable` (`ID`, `LABLEID`, `TEMPLATEID`, `INPUTUSERID`, `INPUTORGID`, `UPDATEUSERID`, `UPDATEORGID`, `INPUTTIME`, `UPDATETIME`) values('ae48ae0866124ddfb6dfc3c2185c4c9d','9ba1a7844e4447fe9cb115323a37736f','93e4194efb604c71b394d902b2060da8',NULL,NULL,NULL,NULL,NULL,NULL); +insert into `bf_templatelable` (`ID`, `LABLEID`, `TEMPLATEID`, `INPUTUSERID`, `INPUTORGID`, `UPDATEUSERID`, `UPDATEORGID`, `INPUTTIME`, `UPDATETIME`) values('bf075115bcd44016b6b4decafa6c789b','cee12914b9cf49bfaf5abf838ccdb56f','93e4194efb604c71b394d902b2060da8',NULL,NULL,NULL,NULL,NULL,NULL); +insert into `bf_templatelable` (`ID`, `LABLEID`, `TEMPLATEID`, `INPUTUSERID`, `INPUTORGID`, `UPDATEUSERID`, `UPDATEORGID`, `INPUTTIME`, `UPDATETIME`) values('c427a92c76144ceba43f57b1d3807969','484815c4a7a14cf6bdbf69939e5b060e','93e4194efb604c71b394d902b2060da8',NULL,NULL,NULL,NULL,NULL,NULL); +insert into `bf_templatelable` (`ID`, `LABLEID`, `TEMPLATEID`, `INPUTUSERID`, `INPUTORGID`, `UPDATEUSERID`, `UPDATEORGID`, `INPUTTIME`, `UPDATETIME`) values('f69932f70fe64332b4f4439761bf5055','bbe36e81f17542078489f223239e658a','93e4194efb604c71b394d902b2060da8',NULL,NULL,NULL,NULL,NULL,NULL); -- ޸׼ǩ delete from BF_LABLECONFIG where ID='fd46596832164f39afc5b47e6711d1bd'; @@ -371,5 +368,49 @@ insert into `FLOW_MODEL` (`flowno`, `phaseno`, `phasetype`, `phasename`, `phased delete from AWE_DO_CATALOG where dono='LbBeforeAppLicationList'; Insert Into AWE_DO_CATALOG (dono,doname,dodescribe,dotype,doclass,isinuse,colcount,modeid,jboclass,jbofrom,jbowhere,jbogroup,jboorder,businessprocess,exportflag,inputuser,inputtime,updateuser,updatetime,remark,isvalidate,parent) Values ('LbBeforeAppLicationList','Ԥб',null,'30',null,'1','1','default','jbo.com.tenwa.entity.comm.serialutil.LB_BEFORE_APPLICATION','O','1=1','','inputtime desc','','','SYS_Designer','2020/08/17 09:45:32','SYS_Designer','2020/09/22 10:10:19','','1',''); +-- =========================== 3 +-- ޸Ķģʱչʾʽ +delete from awe_do_library where dono='MsgTempletList' and colindex='1022'; +Insert Into awe_do_library (dono,colindex,sortno,isinuse,coltablename,colactualname,colname,coltype,coldefaultvalue,colheader,colunit,colcolumntype,coleditstyle,colcheckformat,colalign,coleditsourcetype,coleditsource,colhtmlstyle,collimit,colvisible,colreadonly,colrequired,colsortable,isfilter,colspan,isautocomplete,groupid,colfilterrefid,inputuser,inputtime,updateuser,updatetime,isaudit,colfilterattrs,isupdate,parentcolindex,tips,colinnerbtevent,colfilteroptions) Values ('MsgTempletList','1022','1022','1','O','PREVIOUS_FIRE_TIME','PREVIOUS_FIRE_TIME','String','','ϴִʱ','','1','Date','3','2','','','','255','0','0','0','1','0',1,'0','','','SYS_DESIGNER','2017/08/09 10:28:24','SYS_Designer','2020/09/23 16:01:31','0','','1','','','',''); +Insert Into awe_do_library (dono,colindex,sortno,isinuse,coltablename,colactualname,colname,coltype,coldefaultvalue,colheader,colunit,colcolumntype,coleditstyle,colcheckformat,colalign,coleditsourcetype,coleditsource,colhtmlstyle,collimit,colvisible,colreadonly,colrequired,colsortable,isfilter,colspan,isautocomplete,groupid,colfilterrefid,inputuser,inputtime,updateuser,updatetime,isaudit,colfilterattrs,isupdate,parentcolindex,tips,colinnerbtevent,colfilteroptions) Values ('MsgTempletList','1023','1023','1','','DataConversionManage.getTime(PREVIOUS_FIRE_TIME)','PREVIOUSTIME','String','','ϴִʱ','','1','Date','3','2','','','','255','1','0','0','1','0',1,'0','','','SYS_Designer','2020/09/23 15:43:22','SYS_Designer','2020/09/23 15:50:46','0','','1','','','',''); +delete from awe_do_library where dono='MsgTempletList' and colindex='1024'; +Insert Into awe_do_library (dono,colindex,sortno,isinuse,coltablename,colactualname,colname,coltype,coldefaultvalue,colheader,colunit,colcolumntype,coleditstyle,colcheckformat,colalign,coleditsourcetype,coleditsource,colhtmlstyle,collimit,colvisible,colreadonly,colrequired,colsortable,isfilter,colspan,isautocomplete,groupid,colfilterrefid,inputuser,inputtime,updateuser,updatetime,isaudit,colfilterattrs,isupdate,parentcolindex,tips,colinnerbtevent,colfilteroptions) Values ('MsgTempletList','1024','1024','1','O','NEXT_FIRE_TIME','NEXT_FIRE_TIME','String','','´ִʱ','','1','Date','3','2','','','','255','0','0','0','1','0',1,'0','','','SYS_DESIGNER','2017/08/09 10:28:24','SYS_Designer','2020/09/23 16:01:31','0','','1','','','',''); +Insert Into awe_do_library (dono,colindex,sortno,isinuse,coltablename,colactualname,colname,coltype,coldefaultvalue,colheader,colunit,colcolumntype,coleditstyle,colcheckformat,colalign,coleditsourcetype,coleditsource,colhtmlstyle,collimit,colvisible,colreadonly,colrequired,colsortable,isfilter,colspan,isautocomplete,groupid,colfilterrefid,inputuser,inputtime,updateuser,updatetime,isaudit,colfilterattrs,isupdate,parentcolindex,tips,colinnerbtevent,colfilteroptions) Values ('MsgTempletList','1025','1025','1','','DataConversionManage.getTime(NEXT_FIRE_TIME)','NEXTTIME','String','','´ִʱ','','1','Date','3','2','','','','255','1','0','0','1','0',1,'0','','','SYS_Designer','2020/09/23 15:56:29','SYS_Designer','2020/09/23 15:56:45','0','','1','','','',''); +-- ӳֶ ;head ͷ. tail β +Alter table lb_equipment_car add column car_attribute varchar(30) NULL COMMENT '' after identify_code; +Alter table lb_equipment_car_his add column car_attribute varchar(30) NULL COMMENT '' after identify_code; +Alter table lb_equipment_car_temp add column car_attribute varchar(30) NULL COMMENT '' after identify_code; +-- ޸ʷ +update LB_EQUIPMENT_CAR_TEMP set car_attribute='head'; +update LB_EQUIPMENT_CAR set car_attribute='head'; +-- ҳʷ +insert into LB_EQUIPMENT_CAR_TEMP(id,project_id,contract_id,BRAND,FRAME_NUMBER,CAR_COLOUR,flowunid,INPUTTIME,NOW_TOTAL,car_attribute) (select REPLACE(UUID(),'-',''),project_id,contract_id,FRAME_BRAND,FRAME_NUMBER2,FRAME_COLOR,flowunid,DATE_FORMAT (CURDATE(),'%Y/%m/%d'),0.00,'tail' from LB_EQUIPMENT_CAR_TEMP where FRAME_NUMBER2 is not null or FRAME_BRAND is not null or FRAME_COLOR is not null); +insert into LB_EQUIPMENT_CAR(id,project_id,contract_id,BRAND,FRAME_NUMBER,CAR_COLOUR,INPUTTIME,NOW_TOTAL,car_attribute) (select REPLACE(UUID(),'-',''),project_id,contract_id,FRAME_BRAND,FRAME_NUMBER2,FRAME_COLOR,DATE_FORMAT (CURDATE(),'%Y/%m/%d'),0.00,'tail' from LB_EQUIPMENT_CAR where FRAME_NUMBER2 is not null or FRAME_BRAND is not null or FRAME_COLOR is not null); + +-- бӳֶ +Insert Into awe_do_library (dono,colindex,sortno,isinuse,coltablename,colactualname,colname,coltype,coldefaultvalue,colheader,colunit,colcolumntype,coleditstyle,colcheckformat,colalign,coleditsourcetype,coleditsource,colhtmlstyle,collimit,colvisible,colreadonly,colrequired,colsortable,isfilter,colspan,isautocomplete,groupid,colfilterrefid,inputuser,inputtime,updateuser,updatetime,isaudit,colfilterattrs,isupdate,parentcolindex,tips,colinnerbtevent,colfilteroptions) Values ('LBEquipmentListTemp_Cars','0640','0640','1','O','car_attribute','car_attribute','String','','','','1','Text','1','1','','','','30','0','0','0','1','0',0,'','','','SYS_Designer','2020/09/24 17:21:10','SYS_Designer','2020/09/24 17:21:10','0','','1','','','',''); + +-- ҳӳֶ +Insert Into awe_do_library (dono,colindex,sortno,isinuse,coltablename,colactualname,colname,coltype,coldefaultvalue,colheader,colunit,colcolumntype,coleditstyle,colcheckformat,colalign,coleditsourcetype,coleditsource,colhtmlstyle,collimit,colvisible,colreadonly,colrequired,colsortable,isfilter,colspan,isautocomplete,groupid,colfilterrefid,inputuser,inputtime,updateuser,updatetime,isaudit,colfilterattrs,isupdate,parentcolindex,tips,colinnerbtevent,colfilteroptions) Values ('LBEquipmentInfoTemp_Cars','1560','1560','1','O','car_attribute','car_attribute','String','','','','1','Text','1','1','','','','30','0','0','0','1','0',0,'','','','SYS_Designer','2020/09/24 17:31:44','SYS_Designer','2020/09/24 17:31:44','0','','1','','','',''); + +-- ޸ĺͬУ鳵ܺŷԤ +delete from SCENARIO_MODEL where scenarioid='ͬ' and modelid='030003'; +Insert Into SCENARIO_MODEL (scenarioid,modelid,sortno,modelname,modeldescribe,modeltype,subtypeno,runcondition,status,nopassdeal,passdeal,passmessage,nopassmessage,executescript,remark,inputuser,inputorg,inputtime,updateuser,updatetime,groupid,modelkind,bizviewer) Values ('ͬ','030003','030003','Ϣ','еijܺ','20','0300','','1','10','10','ܺ','деijܺ','SELECT CASE WHEN FRAME_NUMBER IS NOT NULL THEN ''true'' ELSE ''false'' END FROM LB_EQUIPMENT_CAR_TEMP WHERE car_attribute=''head'' and flowunid=''#{ObjectNo}''','','administrator','8009001','2018/07/02 16:16:21','administrator','2018/07/02 16:20:16',null,null,null); + +-- ܶǩ +insert into `BF_LABLECONFIG` (`ID`, `TAGNUMBER`, `TAGNAME`, `TITLE`, `TAGTYPE`, `VALUETYPE`, `VALUEFIELD`, `VALUEMETHOD`, `THOUSANDSFIELD`, `ISSHOEINDEX`, `REMARK`, `INPUTUSERID`, `INPUTORGID`, `UPDATEUSERID`, `UPDATEORGID`, `INPUTTIME`, `UPDATETIME`, `OPERATORCLASS`) values('cee12914b9cf49bfaf5abf838ccdb56f','0030','rentData','ܺ','tag_type2','value_type3','sumrent,upsumrentrent,uprent,rent','select SUM(rent) sumrent,FUNC_CHANGETOCHINESEMONEY(SUM(rent)) upsumrentrent,FUNC_CHANGETOCHINESEMONEY(rent) uprent,rent rent from lc_rent_plan_temp where flowunid=:{FLOW_UNID}','','N','','','','','','','','word_default_class'); + +-- ޸ģ嵼 +delete from bf_templatelable where TEMPLATEID='7ae245ef8b644b62a4658069adab6c32'; +insert into `bf_templatelable` (`ID`, `LABLEID`, `TEMPLATEID`, `INPUTUSERID`, `INPUTORGID`, `UPDATEUSERID`, `UPDATEORGID`, `INPUTTIME`, `UPDATETIME`) values('1b022512c624434b944f47563e8a48a5','be101123ef74413eb0d8acad8b6b22b9','7ae245ef8b644b62a4658069adab6c32',NULL,NULL,NULL,NULL,NULL,NULL); +insert into `bf_templatelable` (`ID`, `LABLEID`, `TEMPLATEID`, `INPUTUSERID`, `INPUTORGID`, `UPDATEUSERID`, `UPDATEORGID`, `INPUTTIME`, `UPDATETIME`) values('2d163b7bc7b042da83151c53d65f6676','9fd06315c45842699cabed15ed2ed7f9','7ae245ef8b644b62a4658069adab6c32',NULL,NULL,NULL,NULL,NULL,NULL); +insert into `bf_templatelable` (`ID`, `LABLEID`, `TEMPLATEID`, `INPUTUSERID`, `INPUTORGID`, `UPDATEUSERID`, `UPDATEORGID`, `INPUTTIME`, `UPDATETIME`) values('68ee3251d36b4e6bb2a25115cb9638eb','755698c1c27a43efa6c23310757c6163','7ae245ef8b644b62a4658069adab6c32',NULL,NULL,NULL,NULL,NULL,NULL); +insert into `bf_templatelable` (`ID`, `LABLEID`, `TEMPLATEID`, `INPUTUSERID`, `INPUTORGID`, `UPDATEUSERID`, `UPDATEORGID`, `INPUTTIME`, `UPDATETIME`) values('782861c28a53460e8babbc192308a216','9ba1a7844e4447fe9cb115323a37736f','7ae245ef8b644b62a4658069adab6c32',NULL,NULL,NULL,NULL,NULL,NULL); +insert into `bf_templatelable` (`ID`, `LABLEID`, `TEMPLATEID`, `INPUTUSERID`, `INPUTORGID`, `UPDATEUSERID`, `UPDATEORGID`, `INPUTTIME`, `UPDATETIME`) values('87b11c0967a748808c4ea956f73f61ce','975294b526544d83b806e3fc2f99cd16','7ae245ef8b644b62a4658069adab6c32',NULL,NULL,NULL,NULL,NULL,NULL); +insert into `bf_templatelable` (`ID`, `LABLEID`, `TEMPLATEID`, `INPUTUSERID`, `INPUTORGID`, `UPDATEUSERID`, `UPDATEORGID`, `INPUTTIME`, `UPDATETIME`) values('9687523ef1e04bbc809259d1bbc9fe68','bbe36e81f17542078489f223239e658a','7ae245ef8b644b62a4658069adab6c32',NULL,NULL,NULL,NULL,NULL,NULL); +insert into `bf_templatelable` (`ID`, `LABLEID`, `TEMPLATEID`, `INPUTUSERID`, `INPUTORGID`, `UPDATEUSERID`, `UPDATEORGID`, `INPUTTIME`, `UPDATETIME`) values('981505dc548446c9acfdc99078048079','c901f36d5d4e48a89b66dd3bc736afac','7ae245ef8b644b62a4658069adab6c32',NULL,NULL,NULL,NULL,NULL,NULL); +insert into `bf_templatelable` (`ID`, `LABLEID`, `TEMPLATEID`, `INPUTUSERID`, `INPUTORGID`, `UPDATEUSERID`, `UPDATEORGID`, `INPUTTIME`, `UPDATETIME`) values('c67f3d77ca5c41a3a7b2f4ab57f09fcc','ced1455267d64183ba1b270a9eda6089','7ae245ef8b644b62a4658069adab6c32',NULL,NULL,NULL,NULL,NULL,NULL); +insert into `bf_templatelable` (`ID`, `LABLEID`, `TEMPLATEID`, `INPUTUSERID`, `INPUTORGID`, `UPDATEUSERID`, `UPDATEORGID`, `INPUTTIME`, `UPDATETIME`) values('cb87bf20fd7041a3be12a49635620457','484815c4a7a14cf6bdbf69939e5b060e','7ae245ef8b644b62a4658069adab6c32',NULL,NULL,NULL,NULL,NULL,NULL); +insert into `bf_templatelable` (`ID`, `LABLEID`, `TEMPLATEID`, `INPUTUSERID`, `INPUTORGID`, `UPDATEUSERID`, `UPDATEORGID`, `INPUTTIME`, `UPDATETIME`) values('edf4b19d90694fd0a3290a8737342e5d','87e832695708478ead2acd3bcdb7a9a9','7ae245ef8b644b62a4658069adab6c32',NULL,NULL,NULL,NULL,NULL,NULL); diff --git a/src_tenwa/com/tenwa/lease/flow/project/commbusiness/LBProjectIntoTempInitCarBusiness.java b/src_tenwa/com/tenwa/lease/flow/project/commbusiness/LBProjectIntoTempInitCarBusiness.java index 17192e3b0..fd43c4c1c 100644 --- a/src_tenwa/com/tenwa/lease/flow/project/commbusiness/LBProjectIntoTempInitCarBusiness.java +++ b/src_tenwa/com/tenwa/lease/flow/project/commbusiness/LBProjectIntoTempInitCarBusiness.java @@ -318,6 +318,7 @@ public class LBProjectIntoTempInitCarBusiness extends BaseBussiness { bmLEC.setAttributeValue("cartype",this.getAttribute("cartype")); bmLEC.setAttributeValue("vehicletype",this.getAttribute("vehicletype")); bmLEC.setAttributeValue("vehiclelevel",this.getAttribute("vehiclelevel")); + bmLEC.setAttributeValue("car_attribute","head"); if(lbat!=null){ bmLEC.setAttributeValue("FRAME_NUMBER", lbat.getAttribute("frame_number")+"");//ܺ bmLEC.setAttributeValue("mile", lbat.getAttribute("mile")+"");// diff --git a/src_tenwa/com/tenwa/makeContract/util/MakeOneCodeAndContractModel.java b/src_tenwa/com/tenwa/makeContract/util/MakeOneCodeAndContractModel.java index dbe26378a..bb5d4176b 100644 --- a/src_tenwa/com/tenwa/makeContract/util/MakeOneCodeAndContractModel.java +++ b/src_tenwa/com/tenwa/makeContract/util/MakeOneCodeAndContractModel.java @@ -288,16 +288,24 @@ public class MakeOneCodeAndContractModel { if(filename.indexOf("")>=0){ //ͼƬȺ͸߶ img.scaleAbsolute(160, 18); - //ͼƬˮӡλá + //ͼƬˮӡλáһΣƶС󡣵ڶƶСĿ img.setAbsolutePosition(410, 815); + }else if(filename.indexOf("ʨ")>=0){ + //ͼƬȺ͸߶ + img.scaleAbsolute(160, 18); + //ͼƬˮӡλá + img.setAbsolutePosition(380, 750); }else{ img.scaleAbsolute(160, 22); img.setAbsolutePosition(400, 785); } PdfContentByte under = stamp.getUnderContent(1); under.addImage(img); - if(pages>2&&"02".equals(leasform)&&filename.indexOf("BJ90ʽۺ")<0 && filename.indexOf("")<0 && filename.indexOf("ʨ")<0){ + if(pages>2&&"02".equals(leasform)&&filename.indexOf("BJ90ʽۺ")<0 && filename.indexOf("ʨ")<0){ PdfContentByte under2 = stamp.getUnderContent(3); + if(filename.indexOf("")>=0){ + img.setAbsolutePosition(400, 785); + } under2.addImage(img); } From 93e99b63dcfba4477c78f1e09ba9f5b29fd7b450 Mon Sep 17 00:00:00 2001 From: tangfutang Date: Thu, 24 Sep 2020 20:03:26 +0800 Subject: [PATCH 08/17] =?UTF-8?q?=E5=AE=A2=E6=88=B7=EF=BC=88=E5=BC=A0?= =?UTF-8?q?=E7=A3=8A=EF=BC=89=E4=BF=AE=E6=94=B9=E9=B9=8F=E5=85=83=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../httpclient/pypafhtml/PyHtmlContent.java | 2406 ++++++++--------- 1 file changed, 1203 insertions(+), 1203 deletions(-) diff --git a/src_tenwa/com/tenwa/httpclient/pypafhtml/PyHtmlContent.java b/src_tenwa/com/tenwa/httpclient/pypafhtml/PyHtmlContent.java index 46b22629c..06af616aa 100644 --- a/src_tenwa/com/tenwa/httpclient/pypafhtml/PyHtmlContent.java +++ b/src_tenwa/com/tenwa/httpclient/pypafhtml/PyHtmlContent.java @@ -1,1203 +1,1203 @@ -package com.tenwa.httpclient.pypafhtml; - import com.alibaba.fastjson.JSONArray; - import com.alibaba.fastjson.JSONObject; - import com.google.common.collect.Lists; - - import java.text.ParseException; - import java.text.SimpleDateFormat; - import java.util.ArrayList; - import java.util.Date; - import java.util.List; - -public class PyHtmlContent { - /** - * ͳʱΣ1-1ꡢ2-2ꡢ3-5ꡢ4-ʷ - * ݿֶζӦϵ - */ - public enum JudicialXZCountTypeEnums{ - taxPunishCount("taxPunishCount","˰񴦷¼"), - marketPunishCount("marketPunishCount","гܴ¼"), - customsPunishCount("customsPunishCount","ش¼"), - environmentPunishCount("environmentPunishCount","¼"), - otherPunishCount("otherPunishCount","¼"), - punishTotalCount("punishTotalCount","¼ϼ"); - - private String code; // - private String desc; // - - private JudicialXZCountTypeEnums(String code, String desc){ - this.code=code; - this.desc=desc; - } - public String getDesc() { - return desc; - } - - public String getCode() { - return this.code; - } - - /** - * code ݿֶ - * @param code - * @return - */ - public static String getValueData(String code){ - for(JudicialXZCountTypeEnums data : JudicialXZCountTypeEnums.values()){ - if(data.getCode().toLowerCase().equals(code.toLowerCase())){ - return data.getDesc(); - } - } - return null; - } - } - - /** - * ͳʱΣ1-1ꡢ2-2ꡢ3-5ꡢ4-ʷ - * ݿֶζӦϵ - */ - public enum JudicialSFCountTypeEnums{ - civilCaseCount("civilCaseCount","°¼"), - criminalCaseCount("criminalCaseCount","°¼"), - judicialCount("judicialCount","˾ִ˷¼"), - endCaseCount("endCaseCount","ձ¼"), - breakFaithCount("breakFaithCount","ʧűִ˷¼"), - judicialTotalCount("judicialTotalCount","˾߷¼ϼ"); - - private String code; // - private String desc; // - - private JudicialSFCountTypeEnums(String code, String desc){ - this.code=code; - this.desc=desc; - } - public String getDesc() { - return desc; - } - - public String getCode() { - return this.code; - } - - /** - * code ݿֶ - * @param code - * @return - */ - public static String getValueData(String code){ - for(JudicialSFCountTypeEnums data : JudicialSFCountTypeEnums.values()){ - if(data.getCode().toLowerCase().equals(code.toLowerCase())){ - return data.getDesc(); - } - } - return null; - } - } - - /** - * ͳʱΣ1-1ꡢ2-2ꡢ3-5ꡢ4-ʷ - * ݿֶζӦϵ - */ - public enum JudicialRiskTimeLengthEnums{ - Length_1("1","oneYearCount"), - Length_2("2","twoYearCount"), - Length_3("3","fiveYearCount"), - Length_4("4","historyYearCount"); - - private String code; // - private String desc; // - - private JudicialRiskTimeLengthEnums(String code, String desc){ - this.code=code; - this.desc=desc; - } - public String getDesc() { - return desc; - } - - public String getCode() { - return this.code; - } - - /** - * code ݿֶ - * @param code - * @return - */ - public static String getValueData(String code){ - for(JudicialRiskTimeLengthEnums data : JudicialRiskTimeLengthEnums.values()){ - if(data.getCode().toLowerCase().equals(code.toLowerCase())){ - return data.getDesc(); - } - } - return null; - } - } - - /** - * 1 2: ͣ 3δ 4 6ԤŸֵΪ - * ݿֶζӦϵ - */ - public enum MobileStsEnums{ - Sts_1("1",""), - Sts_2("2","ͣ"), - Sts_3("3","δ"), - Sts_4("4",""), - Sts_6("6","ԤŸֵΪ"); - - private String code; // - private String desc; // - - private MobileStsEnums(String code, String desc){ - this.code=code; - this.desc=desc; - } - public String getDesc() { - return desc; - } - - public String getCode() { - return this.code; - } - - /** - * code ݿֶ - * @param code - * @return - */ - public static String getValueData(String code){ - for(MobileStsEnums data : MobileStsEnums.values()){ - if(data.getCode().toLowerCase().equals(code.toLowerCase())){ - return data.getDesc(); - } - } - return null; - } - } - //13 23-6 36-12 412-24 524 - /** - * ݿֶζӦϵ - */ - public enum MobileTimeLengthEnums{ - Length_1("1","3"), - Length_2("2","3-6"), - Length_3("3","6-12"), - Length_4("4","12-24"), - Length_5("5","24"); - - private String code; // - private String desc; // - - private MobileTimeLengthEnums(String code, String desc){ - this.code=code; - this.desc=desc; - } - public String getDesc() { - return desc; - } - - public String getCode() { - return this.code; - } - - /** - * code ݿֶ - * @param code - * @return - */ - public static String getValueData(String code){ - for(MobileTimeLengthEnums data : MobileTimeLengthEnums.values()){ - if(data.getCode().toLowerCase().equals(code.toLowerCase())){ - return data.getDesc(); - } - } - return null; - } - } - - /** - * ݿֶζӦϵ - */ - public enum MobileOperatorEnums{ - DX("1","й"), - YD("2","йƶ"), - LT("3","йͨ"); - - private String code; // - private String desc; // - - private MobileOperatorEnums(String code, String desc){ - this.code=code; - this.desc=desc; - } - public String getDesc() { - return desc; - } - - public String getCode() { - return this.code; - } - - /** - * code ݿֶ - * @param code - * @return - */ - public static String getValueData(String code){ - for(MobileOperatorEnums data : MobileOperatorEnums.values()){ - if(data.getCode().toLowerCase().equals(code.toLowerCase())){ - return data.getDesc(); - } - } - return null; - } - } - - /** - * ݿֶζӦϵ - */ - public enum PafEnums{ - personAntiFraudDescInfo("personAntiFraudDescInfo","թջ", PyHtmlContent.personAntiFraudDescInfo), - personAntiFraudScoreInfo("personAntiFraudScoreInfo","թָ", PyHtmlContent.personAntiFraudScoreInfo), - personBaseInfo("personBaseInfo","ϢУ", PyHtmlContent.personBaseInfo), - policeCheckInfo("policeCheckInfo","֤", PyHtmlContent.policeCheckInfo), - mobileCheckInfo("mobileCheckInfo","ֻϢУ", PyHtmlContent.mobileCheckInfo), - mobileStatusInfo("mobileStatusInfo","ֻʱ", PyHtmlContent.mobileStatusInfo), - personRiskRosterInfo("personRiskRosterInfo","", PyHtmlContent.personRiskRosterInfo), - personJudicialSFRiskInfo("personJudicialSFRiskInfo","˾ѯ", PyHtmlContent.personJudicialSFRiskInfo), - personJudicialXZRiskInfo("personJudicialXZRiskInfo","ѯ", PyHtmlContent.personJudicialXZRiskInfo); - - private String code; // - private String htmlContent; // - private String desc; // - - private PafEnums(String code, String desc, String htmlContent){ - this.code=code; - this.desc=desc; - this.htmlContent=htmlContent; - } - public String getDesc() { - return desc; - } - public String getHtmlContent() { - return htmlContent; - } - - public String getCode() { - return this.code; - } - - /** - * code ݿֶ - * @param code - * @return - */ - public static String getValueData(String code){ - for(PafEnums data : PafEnums.values()){ - if(data.getCode().toLowerCase().equals(code.toLowerCase())){ - return data.getHtmlContent(); - } - } - return null; - } - } - - /** - * ݿֶζӦϵ - */ - public enum PersonAntiFraudDescInfoEnums{ - antiFraudScore("antiFraudScore","թָ"), - antiFraudScoreRiskLevel("antiFraudScoreRiskLevel","թָյȼ"), - policeCheckRiskLevel("policeCheckRiskLevel","֤յȼ"), - policeCheckDesc("policeCheckDesc","֤"), - mobileCheckRiskLevel("mobileCheckRiskLevel","ֻ˲յȼ"), - mobileCheckDesc("mobileCheckDesc","ֻ˲"), - mobileStatusRiskLevel("mobileStatusRiskLevel","ֻ״̬ʱյȼ"), - mobileStatusDesc("mobileStatusDesc","ֻ״̬ʱ"), - riskRosterRiskLevel("riskRosterRiskLevel","յȼ"), - riskRosterDesc("riskRosterDesc",""), - judicialRiskLevel("judicialRiskLevel","˾սյȼ"), - judicialRiskDesc("judicialRiskDesc","˾ս"); - - private String code; // - private String desc; // - - private PersonAntiFraudDescInfoEnums(String code, String desc){ - this.code=code; - this.desc=desc; - } - public String getDesc() { - return desc; - } - - public String getCode() { - return this.code; - } - - /** - * code ݿֶ - * @param code - * @return - */ - public static String getValueData(String code){ - for(PersonAntiFraudDescInfoEnums data : PersonAntiFraudDescInfoEnums.values()){ - if(data.getCode().toLowerCase().equals(code.toLowerCase())){ - return data.getDesc(); - } - } - return null; - } - } - - /** - * ݿֶζӦϵ - */ - public enum RiskType{ - risk_000("000","δз"), - risk_101("101","թ"), - risk_102("102","Ӫ"), - risk_201("201",""), - risk_202("202",""), - risk_203("203","Ƶŷ"), - risk_301("301","±"), - risk_302("302","±"), - risk_303("303","˾ִ"), - risk_304("304","ձԱ"), - risk_305("305","˾ʧԱ"), - risk_306("306","Ա"), - risk_999("999",""); - - private String code; // - private String desc; // - - private RiskType(String code, String desc){ - this.code=code; - this.desc=desc; - } - public String getDesc() { - return desc; - } - - public String getCode() { - return this.code; - } - - /** - * code ݿֶ - * @param code - * @return - */ - public static String getValueData(String code){ - for(RiskType data : RiskType.values()){ - if(data.getCode().toLowerCase().equals(code.toLowerCase())){ - return data.getDesc(); - } - } - return "δз"; - } - } - - /** - * ݿʼ - * @param obj - * @return - */ - public static String createBodyHead(JSONObject obj) throws ParseException { - StringBuilder sb = new StringBuilder(); - String bodyTitle = title; - bodyTitle = bodyTitle.replace("reportID", obj.getString("reportID")); - sb.append(bodyTitle); - String bodyQueryConditions = queryConditions; - JSONObject queryConditionsObj = obj.getJSONObject("queryConditionsObj"); - bodyQueryConditions = bodyQueryConditions.replace("name", queryConditionsObj.getString("name")); - bodyQueryConditions = bodyQueryConditions.replace("documentNo", queryConditionsObj.getString("documentNo")); - bodyQueryConditions = bodyQueryConditions.replace("unitName", obj.getString("unitName")); - bodyQueryConditions = bodyQueryConditions.replace("queryUserID", obj.getString("queryUserID")); - SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); - Date birDate = sdf.parse(obj.getString("receiveTime").substring(0, 8)); - SimpleDateFormat sdfRes = new SimpleDateFormat("yyyyMMdd"); - String birStr = sdfRes.format(birDate); - bodyQueryConditions = bodyQueryConditions.replace("receiveTime", birStr); - sb.append(bodyQueryConditions); - String bodyBContentPafQuery = bodyContentPafQuery; - bodyBContentPafQuery = bodyBContentPafQuery.replace("phone", queryConditionsObj.getString("phone")); - sb.append(bodyBContentPafQuery); - return sb.toString(); - } - - public static String title = " reportID" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" ; - - public static String queryConditions = - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + -// " \n" + - " \n" + - " \n" + -// " \n" + - " \n" + - " \n" + - " \n" + - " \n" + -// " \n" + - " \n" + - " \n" + -// " \n" + - " \n" + - " \n" + - " \n" + - " \n" + -// " \n" + - " \n" + - " \n" + - "
nameܺѯʱreceiveTime20200728
֤documentNo360123*********978ԱqueryUserIDapwsqueryn
ѯunitNameޣ޹˾
\n" + - " \n" ; - - //թ - public static String bodyContentPafQuery = - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - "
թ
\n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - "
ֻphone
\n" + - " \n" ; - - - public static String contentError = "errorMessage "; - public static String contentEmpty = " errorMessage "; - - - /** - * թϢ - * @param obj - * @return - */ - private static String createBaseContent(String key, String content, JSONObject obj) throws ParseException { - String bodyContentError = contentError; - String bodyContentEmpty = contentEmpty; - String bodyContent = content; - String subContent = ""; - String jsonKey = key; - if("personJudicialSFRiskInfo".equals(key) || "personJudicialXZRiskInfo".equals(key)){ - jsonKey = "personJudicialRiskInfo"; - } - JSONObject keyObj = obj.getJSONObject(jsonKey); - String errorMessage = ""; - if(keyObj.containsKey("errorMessage")){ - errorMessage = keyObj.getString("errorMessage"); - } - if("3".equals(keyObj.getString("treatResult"))){//ϵͳĬϰϸ - if(null == errorMessage || "".equals(errorMessage)){ - errorMessage = "ϵͳ"; - } - bodyContentError = bodyContentError.replace("errorMessage", errorMessage); - subContent = bodyContentError; - }else{//ϸ - subContent = createBodyContentDes(key, obj); - } - if(null == subContent || "".equals(subContent.toString())){ - subContent = bodyContentEmpty.replace("errorMessage", "ṩIJѯδϵͳвϢ"); - } - bodyContent = bodyContent.replace("subContent", subContent); - return bodyContent; - } - - - - /** - * - * @param obj - * @return - */ - public static String createBodyContent(JSONObject obj) throws ParseException { - StringBuilder sb = new StringBuilder(); - for(PafEnums pe : PafEnums.values()){ - String jsonKey = pe.getCode(); - if("personJudicialSFRiskInfo".equals(pe.getCode()) || "personJudicialXZRiskInfo".equals(pe.getCode())){ - jsonKey = "personJudicialRiskInfo"; - } - JSONObject keyObj = obj.getJSONObject(jsonKey); - String treatResult = keyObj.getString("treatResult"); - //Ƿϸ - boolean addContentB = false; - List resKeyArr = - Lists.newArrayList("subReportType", "subReportTypeCost", "treatResult", "treatErrorCode", "errorMessage"); - for(String keyRes : keyObj.keySet()){ - if(!resKeyArr.contains(keyRes) || "3".equals(treatResult)){ - addContentB = true; - } - } - if(addContentB){ - String content = createBaseContent(pe.getCode(), pe.getHtmlContent(), obj); - sb.append(content); - } - } - return sb.toString(); - } - - /** - * թϢ - * @param obj - * @return - */ - private static String createPafDescContent(String key, JSONObject obj){ - String bodyPersonAntiFraudDescInfoContent = personAntiFraudDescInfoContent; - JSONObject subObj = obj.getJSONObject(key); - // TODO: 2020/7/29 жϿ antiFraudScore - String antiFraudScore = subObj.getString("antiFraudScore"); - bodyPersonAntiFraudDescInfoContent = bodyPersonAntiFraudDescInfoContent.replace("antiFraudScore", subObj.getString("antiFraudScore")); - StringBuilder sbContent = new StringBuilder(); - for(PersonAntiFraudDescInfoEnums pe : PersonAntiFraudDescInfoEnums.values()){ - if(null != subObj.getString(pe.getCode()) - && !"".equals(subObj.getString(pe.getCode()))){ - String subContent = personAntiFraudDescInfoContentItem; - String imgStatus = "image_success"; - // TODO: 2020/7/29 ߷ Ϊ imgage_error - String result = subObj.getString(pe.getCode()); - if("antiFraudScore".equals(pe.getCode())) { - if(Integer.parseInt(result) > 500){ - imgStatus = "image_error"; - } - }else if("policeCheckDesc".equals(pe.getCode())){ - String resPre = subObj.getString("policeCheckRiskLevel"); - if(resPre.contains("߷")){ - imgStatus = "image_error"; - }else if(resPre.contains("з")){ - imgStatus = "image_warn"; - } - }else if("mobileCheckDesc".equals(pe.getCode())){ - String resPre = subObj.getString("mobileCheckRiskLevel"); - if(resPre.contains("߷")){ - imgStatus = "image_error"; - }else if(resPre.contains("з")){ - imgStatus = "image_warn"; - } - }else if("mobileStatusDesc".equals(pe.getCode())){ - String resPre = subObj.getString("mobileStatusRiskLevel"); - if(resPre.contains("߷")){ - imgStatus = "image_error"; - }else if(resPre.contains("з")){ - imgStatus = "image_warn"; - } - }else if("judicialRiskDesc".equals(pe.getCode())){ - String resPre = subObj.getString("judicialRiskLevel"); - if(resPre.contains("߷")){ - imgStatus = "image_error"; - }else if(resPre.contains("з")){ - imgStatus = "image_warn"; - } - }else if("riskRosterDesc".equals(pe.getCode())){ - if(!"δз".equals(result)){ - imgStatus = "image_error"; - } - } - if(result.contains("߷")){ - imgStatus = "image_error"; - } - String pafDesc = pe.getDesc() + "" + subObj.getString(pe.getCode()); - subContent = subContent.replace("image_status", imgStatus); - subContent = subContent.replace("pafDesc", pafDesc); - sbContent.append(subContent); - } - } - bodyPersonAntiFraudDescInfoContent = bodyPersonAntiFraudDescInfoContent.replace("contentItem", sbContent.toString()); - return bodyPersonAntiFraudDescInfoContent; - } - - //թ - public static String personAntiFraudDescInfoContentItem = - "

pafDesc
"; - - //թ - public static String personAntiFraudDescInfoContent = - " \n" + - " թָΪ antiFraudScore \n" + - " \n" + - " \n" + - " contentItem \n" + - " \n" ; - //թ - public static String personAntiFraudDescInfo = - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - "
թ
\n" + - " \n" + - " \n" + - " \n" + - " \n" + - " subContent \n" + - "
\n" + - " \n" ; - - /** - * թָ - * @param obj - * @return - */ - private static String createPersonAntiFraudScoreInfoContent(String key, JSONObject obj){ - String bodyPersonAntiFraudScoreInfoContent = personAntiFraudScoreInfoContent; - JSONObject subObj = obj.getJSONObject(key); - bodyPersonAntiFraudScoreInfoContent = bodyPersonAntiFraudScoreInfoContent.replace("riskScore", subObj.getString("riskScore")); - bodyPersonAntiFraudScoreInfoContent = bodyPersonAntiFraudScoreInfoContent.replace("riskLevel", subObj.getString("riskLevel")); - bodyPersonAntiFraudScoreInfoContent = bodyPersonAntiFraudScoreInfoContent.replace("hitTypes", subObj.getString("hitTypes")); - return bodyPersonAntiFraudScoreInfoContent; - } - - //թָ - public static String personAntiFraudScoreInfoContent = - " թָΪ riskScore \n" + - "թյȼΪ riskLevel \n" + - " թձǩΪ hitTypes \n" ; - - //թָͼƬɾ - public static String personAntiFraudScoreInfo = - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - "
թָ
\n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " subContent \n" + - "
\n" + - " \n" ; - - /** - * ֤УϢ - * @param obj - * @return - */ - private static String createPersonBaseInfoContent(String key, JSONObject obj) throws ParseException { - String bodyPersonBaseInfoContent = personBaseInfoContent; - JSONObject subObj = obj.getJSONObject(key); - bodyPersonBaseInfoContent = bodyPersonBaseInfoContent.replace("docNo", subObj.getString("docNo")); - SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); - Date birDate = sdf.parse(subObj.getString("birthday")); - SimpleDateFormat sdfRes = new SimpleDateFormat("yyyyMMdd"); - String birStr = sdfRes.format(birDate); - bodyPersonBaseInfoContent = bodyPersonBaseInfoContent.replace("birthday", birStr); - String genderId = subObj.getString("genderID"); - if("1".equals(genderId)){ - genderId = ""; - }else if("2".equals(genderId)){ - genderId = "Ů"; - }else if("3".equals(genderId)){ - genderId = ""; - } - bodyPersonBaseInfoContent = bodyPersonBaseInfoContent.replace("genderID", genderId); - bodyPersonBaseInfoContent = bodyPersonBaseInfoContent.replace("age", subObj.getString("age")); - bodyPersonBaseInfoContent = bodyPersonBaseInfoContent.replace("originalAddress", subObj.getString("originalAddress")); - bodyPersonBaseInfoContent = bodyPersonBaseInfoContent.replace("verifyResult", "1".equals(subObj.getString("verifyResult")) ? "ͨ" : "δͨ"); - return bodyPersonBaseInfoContent; - } - - //֤УϢ - public static String personBaseInfoContent = - " \n" + - " ֤ \n" + - " docNo \n" + - " \n" + - " birthday \n" + - " \n" + - " \n" + - " Ա \n" + - " genderID \n" + - " \n" + - " age \n" + - " \n" + - " \n" + - " ԭʼ֤ \n" + - " originalAddress \n" + - " \n" + - " \n" + - " ֤У \n" + - " verifyResult \n" + - " \n" ; - - //֤УϢ - public static String personBaseInfo = - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - "
֤УϢ
\n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " subContent \n" + - "
\n" + - " \n"; - - - /** - * ֤УϢ - * @param obj - * @return - */ - private static String createPoliceCheckInfoContent(String key, JSONObject obj){ - StringBuilder sb = new StringBuilder(); - JSONObject arrObj = obj.getJSONObject(key); - JSONArray subArr = arrObj.getJSONArray("item"); - for(int i = 0; i < subArr.size(); i++){ - JSONObject subObj = subArr.getJSONObject(i); - String bodyPoliceCheckInfoContent = policeCheckInfoContent; - bodyPoliceCheckInfoContent = bodyPoliceCheckInfoContent.replace("result", - "1".equals(subObj.getString("result")) ? "һ" : "һ"); - sb.append(bodyPoliceCheckInfoContent); - } - return sb.toString(); - } - - //֤֤ - public static String policeCheckInfoContent = - " \n" + - " ֤ \n" + - " result \n" + - " \n" ; - - //֤֤ - public static String policeCheckInfo = - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - "
֤
\n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " subContent \n" + - "
\n" + - " \n"; - - /** - * ֻУϢ - * @param obj - * @return - */ - private static String createMobileCheckInfoContent(String key, JSONObject obj){ - StringBuilder sb = new StringBuilder(); - JSONObject arrObj = obj.getJSONObject(key); - JSONArray subArr = arrObj.getJSONArray("item"); - for(int i = 0; i < subArr.size(); i++){ - JSONObject subObj = subArr.getJSONObject(i); - String bodyMobileCheckInfoContent = mobileCheckInfoContent; - bodyMobileCheckInfoContent = bodyMobileCheckInfoContent.replace("checkResult", subObj.getString("checkResult")); - bodyMobileCheckInfoContent = bodyMobileCheckInfoContent.replace("areaInfo", subObj.getString("areaInfo")); - bodyMobileCheckInfoContent = bodyMobileCheckInfoContent.replace("operator", MobileOperatorEnums.getValueData(subObj.getString("operator"))); - sb.append(bodyMobileCheckInfoContent); - } - return sb.toString(); - } - - - //ֻУϢ - public static String mobileCheckInfoContent = - " \n" + - " Ӫ \n" + - " operator \n" + - " \n" + - " \n" + - " ֻ \n" + - " areaInfo \n" + - " \n" + - " \n" + - " ֻ֤ \n" + - " checkResult \n" + - " \n" ; - //ֻУϢ - public static String mobileCheckInfo = - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - "
ֻ֤
\n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " subContent \n" + - "
\n" + - " \n"; - - /** - * ֻʱ - * @param obj - * @return - */ - private static String createMobileStatusInfoContent(String key, JSONObject obj){ - StringBuilder sb = new StringBuilder(); - JSONObject arrObj = obj.getJSONObject(key); - JSONArray subArr = arrObj.getJSONArray("item"); - for(int i = 0; i < subArr.size(); i++){ - JSONObject subObj = subArr.getJSONObject(i); - String bodyMobileStatusInfoContent = mobileStatusInfoContent; - bodyMobileStatusInfoContent = bodyMobileStatusInfoContent.replace("timeLength", MobileTimeLengthEnums.getValueData(subObj.getString("timeLength"))); - bodyMobileStatusInfoContent = bodyMobileStatusInfoContent.replace("phoneStatus", MobileStsEnums.getValueData(subObj.getString("phoneStatus"))); - sb.append(bodyMobileStatusInfoContent); - } - return sb.toString(); - } - - - //ֻʱ - public static String mobileStatusInfoContent = - " \n" + - " ֻ״̬ \n" + - " phoneStatus \n" + - " \n" + - " \n" + - " ֻʱ \n" + - " timeLength \n" + - " \n" ; - - //ֻʱ - public static String mobileStatusInfo = - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - "
ֻ״̬ʱ
\n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - - " subContent \n" + - "
\n" + - " \n"; - - - /** - * н - * @param obj - * @return - */ - private static String createPersonRiskRosterInfoContent(String key, JSONObject obj){ - String bodyPersonRiskRosterInfoContent = personRiskRosterInfoContent; - JSONObject subObj = obj.getJSONObject(key); - StringBuilder sb = new StringBuilder(); - // TODO: 2020/7/29 жΪ - String[] riskTypes = subObj.getString("riskTypes").split(","); - for(String riskType : riskTypes){ - sb.append(RiskType.getValueData(riskType) + ", "); - } - String risk = sb.toString(); - risk = risk.substring(0, risk.length() - 2); - bodyPersonRiskRosterInfoContent = bodyPersonRiskRosterInfoContent.replace("riskTypes", risk); - return bodyPersonRiskRosterInfoContent; - } - - //н - public static String personRiskRosterInfoContent = - " \n" + - " з \n" + - " riskTypes \n" + - " \n" ; - - //н - public static String personRiskRosterInfo = - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - "
\n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " subContent \n" + - "
\n" + - " \n"; - - - /** - * н - * @param obj - * @return - */ - private static String createPersonJudicialSFRiskInfoContent(String key, JSONObject obj){ - String bodyPersonJudicialRiskInfoContentSFItem = personJudicialRiskInfoContent; - String tail = ""; - //objת - JSONObject resObj = new JSONObject(); - JSONObject civilCaseCount = new JSONObject(); - JSONObject criminalCaseCount = new JSONObject(); - JSONObject judicialCount = new JSONObject(); - JSONObject endCaseCount = new JSONObject(); - JSONObject breakFaithCount = new JSONObject(); - JSONObject judicialTotalCount = new JSONObject(); - resObj.put("civilCaseCount", civilCaseCount); - resObj.put("criminalCaseCount", criminalCaseCount); - resObj.put("judicialCount", judicialCount); - resObj.put("endCaseCount", endCaseCount); - resObj.put("breakFaithCount", breakFaithCount); - resObj.put("judicialTotalCount", judicialTotalCount); - JSONObject subObj = obj.getJSONObject("personJudicialRiskInfo"); - JSONArray subArr = subObj.getJSONArray("item"); - for(int i = 0; i < subArr.size(); i++){ - JSONObject subJson = subArr.getJSONObject(i); - String resKey = JudicialRiskTimeLengthEnums.getValueData(subJson.getString("timePeriod")); - for(String subKey : subJson.keySet()){ - for(String resSubKey : resObj.keySet()){ - if(subKey.equals(resSubKey)){ - JSONObject resSubObj = resObj.getJSONObject(resSubKey); - resSubObj.put(resKey, subJson.getString(subKey)); - } - } - } - } - StringBuilder sb = new StringBuilder(); - //ѭ - for(String resKey : resObj.keySet()){ - JSONObject resJson = resObj.getJSONObject(resKey); - String content = personJudicialRiskInfoContentSFItem; - content = content.replace("judicialSFType", JudicialSFCountTypeEnums.getValueData(resKey)); - for(JudicialRiskTimeLengthEnums je : JudicialRiskTimeLengthEnums.values()){ - content = content.replace(je.getDesc(), resJson.getString(je.getDesc())); - } - if("judicialTotalCount".equals(resKey)){//ϼƷĩβ - tail = content; - }else { - sb.append(content); - } - } - return bodyPersonJudicialRiskInfoContentSFItem + sb.toString() + tail; - } - /** - * н - * @param obj - * @return - */ - private static String createPersonJudicialXZRiskInfoContent(String key, JSONObject obj){ - String bodyPersonJudicialRiskInfoContentXZItem = personJudicialRiskInfoContent; - String tail = ""; - //objת - JSONObject resObj = new JSONObject(); - JSONObject taxPunishCount = new JSONObject(); - JSONObject marketPunishCount = new JSONObject(); - JSONObject customsPunishCount = new JSONObject(); - JSONObject environmentPunishCount = new JSONObject(); - JSONObject otherPunishCount = new JSONObject(); - JSONObject punishTotalCount = new JSONObject(); - resObj.put("taxPunishCount", taxPunishCount); - resObj.put("marketPunishCount", marketPunishCount); - resObj.put("customsPunishCount", customsPunishCount); - resObj.put("environmentPunishCount", environmentPunishCount); - resObj.put("otherPunishCount", otherPunishCount); - resObj.put("punishTotalCount", punishTotalCount); - JSONObject subObj = obj.getJSONObject("personJudicialRiskInfo"); - JSONArray subArr = subObj.getJSONArray("item"); - for(int i = 0; i < subArr.size(); i++){ - JSONObject subJson = subArr.getJSONObject(i); - String resKey = JudicialRiskTimeLengthEnums.getValueData(subJson.getString("timePeriod")); - for(String subKey : subJson.keySet()){ - for(String resSubKey : resObj.keySet()){ - if(subKey.equals(resSubKey)){ - JSONObject resSubObj = resObj.getJSONObject(resSubKey); - resSubObj.put(resKey, subJson.getString(subKey)); - } - } - } - } - - StringBuilder sb = new StringBuilder(); - System.out.println("resObj="+resObj.toJSONString()); - //ѭ - for(String resKey : resObj.keySet()){ - JSONObject resJson = resObj.getJSONObject(resKey); - String content = personJudicialRiskInfoContentXZItem; - content = content.replace("judicialXZType", JudicialXZCountTypeEnums.getValueData(resKey)); - for(JudicialRiskTimeLengthEnums je : JudicialRiskTimeLengthEnums.values()){ - content = content.replace(je.getDesc(), resJson.getString(je.getDesc())); - } - if("punishTotalCount".equals(resKey)){//ϼƷĩβ - tail = content; - }else { - sb.append(content); - } - } - return bodyPersonJudicialRiskInfoContentXZItem + sb.toString() + tail; - } - - /** - * - * @param key - * @param obj - * @return - */ - private static String createBodyContentDes(String key, JSONObject obj) throws ParseException { - if("personAntiFraudDescInfo".equals(key)){ - return createPafDescContent(key, obj); - }else if("personAntiFraudScoreInfo".equals(key)){ - return createPersonAntiFraudScoreInfoContent(key, obj); - }else if("personBaseInfo".equals(key)){//֤УϢ - return createPersonBaseInfoContent(key, obj); - }else if("policeCheckInfo".equals(key)){ - return createPoliceCheckInfoContent(key, obj); - }else if("mobileCheckInfo".equals(key)){ - return createMobileCheckInfoContent(key, obj); - }else if("mobileStatusInfo".equals(key)){ - return createMobileStatusInfoContent(key, obj); - }else if("personRiskRosterInfo".equals(key)){ - return createPersonRiskRosterInfoContent(key, obj); - }else if("personJudicialSFRiskInfo".equals(key)){ - return createPersonJudicialSFRiskInfoContent(key, obj); - }else if("personJudicialXZRiskInfo".equals(key)){ - return createPersonJudicialXZRiskInfoContent(key, obj); - } - return null; - } - - - public static String personJudicialRiskInfoContentSFItem = - " \n" + - " judicialSFType \n" + - " oneYearCount \n" + - " twoYearCount \n" + - " fiveYearCount \n" + - " historyYearCount \n" + - " \n"; - - public static String personJudicialRiskInfoContentXZItem = - " \n" + - " judicialXZType \n" + - " oneYearCount \n" + - " twoYearCount \n" + - " fiveYearCount \n" + - " historyYearCount \n" + - " \n"; - - public static String personJudicialRiskInfoContent = - " \n" + - " \n" + - " 1 \n" + - " 2 \n" + - " 5 \n" + - " ʷ \n" + - " \n" ; - - public static String personJudicialSFRiskInfo = - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - "
˾ջ
\n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - "
˾
\n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " subContent \n" + - "
\n" + - " \n" ; - - public static String personJudicialXZRiskInfo = - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - "
\n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " subContent \n" + - "
\n" + - " "; - - -} +package com.tenwa.httpclient.pypafhtml; + import com.alibaba.fastjson.JSONArray; + import com.alibaba.fastjson.JSONObject; + import com.google.common.collect.Lists; + + import java.text.ParseException; + import java.text.SimpleDateFormat; + import java.util.ArrayList; + import java.util.Date; + import java.util.List; + +public class PyHtmlContent { + /** + * ͳʱΣ1-1ꡢ2-2ꡢ3-5ꡢ4-ʷ + * ݿֶζӦϵ + */ + public enum JudicialXZCountTypeEnums{ + taxPunishCount("taxPunishCount","˰񴦷¼"), + marketPunishCount("marketPunishCount","гܴ¼"), + customsPunishCount("customsPunishCount","ش¼"), + environmentPunishCount("environmentPunishCount","¼"), + otherPunishCount("otherPunishCount","¼"), + punishTotalCount("punishTotalCount","¼ϼ"); + + private String code; // + private String desc; // + + private JudicialXZCountTypeEnums(String code, String desc){ + this.code=code; + this.desc=desc; + } + public String getDesc() { + return desc; + } + + public String getCode() { + return this.code; + } + + /** + * code ݿֶ + * @param code + * @return + */ + public static String getValueData(String code){ + for(JudicialXZCountTypeEnums data : JudicialXZCountTypeEnums.values()){ + if(data.getCode().toLowerCase().equals(code.toLowerCase())){ + return data.getDesc(); + } + } + return ""; + } + } + + /** + * ͳʱΣ1-1ꡢ2-2ꡢ3-5ꡢ4-ʷ + * ݿֶζӦϵ + */ + public enum JudicialSFCountTypeEnums{ + civilCaseCount("civilCaseCount","°¼"), + criminalCaseCount("criminalCaseCount","°¼"), + judicialCount("judicialCount","˾ִ˷¼"), + endCaseCount("endCaseCount","ձ¼"), + breakFaithCount("breakFaithCount","ʧűִ˷¼"), + judicialTotalCount("judicialTotalCount","˾߷¼ϼ"); + + private String code; // + private String desc; // + + private JudicialSFCountTypeEnums(String code, String desc){ + this.code=code; + this.desc=desc; + } + public String getDesc() { + return desc; + } + + public String getCode() { + return this.code; + } + + /** + * code ݿֶ + * @param code + * @return + */ + public static String getValueData(String code){ + for(JudicialSFCountTypeEnums data : JudicialSFCountTypeEnums.values()){ + if(data.getCode().toLowerCase().equals(code.toLowerCase())){ + return data.getDesc(); + } + } + return ""; + } + } + + /** + * ͳʱΣ1-1ꡢ2-2ꡢ3-5ꡢ4-ʷ + * ݿֶζӦϵ + */ + public enum JudicialRiskTimeLengthEnums{ + Length_1("1","oneYearCount"), + Length_2("2","twoYearCount"), + Length_3("3","fiveYearCount"), + Length_4("4","historyYearCount"); + + private String code; // + private String desc; // + + private JudicialRiskTimeLengthEnums(String code, String desc){ + this.code=code; + this.desc=desc; + } + public String getDesc() { + return desc; + } + + public String getCode() { + return this.code; + } + + /** + * code ݿֶ + * @param code + * @return + */ + public static String getValueData(String code){ + for(JudicialRiskTimeLengthEnums data : JudicialRiskTimeLengthEnums.values()){ + if(data.getCode().toLowerCase().equals(code.toLowerCase())){ + return data.getDesc(); + } + } + return ""; + } + } + + /** + * 1 2: ͣ 3δ 4 6ԤŸֵΪ + * ݿֶζӦϵ + */ + public enum MobileStsEnums{ + Sts_1("1",""), + Sts_2("2","ͣ"), + Sts_3("3","δ"), + Sts_4("4",""), + Sts_6("6","ԤŸֵΪ"); + + private String code; // + private String desc; // + + private MobileStsEnums(String code, String desc){ + this.code=code; + this.desc=desc; + } + public String getDesc() { + return desc; + } + + public String getCode() { + return this.code; + } + + /** + * code ݿֶ + * @param code + * @return + */ + public static String getValueData(String code){ + for(MobileStsEnums data : MobileStsEnums.values()){ + if(data.getCode().toLowerCase().equals(code.toLowerCase())){ + return data.getDesc(); + } + } + return ""; + } + } + //13 23-6 36-12 412-24 524 + /** + * ݿֶζӦϵ + */ + public enum MobileTimeLengthEnums{ + Length_1("1","3"), + Length_2("2","3-6"), + Length_3("3","6-12"), + Length_4("4","12-24"), + Length_5("5","24"); + + private String code; // + private String desc; // + + private MobileTimeLengthEnums(String code, String desc){ + this.code=code; + this.desc=desc; + } + public String getDesc() { + return desc; + } + + public String getCode() { + return this.code; + } + + /** + * code ݿֶ + * @param code + * @return + */ + public static String getValueData(String code){ + for(MobileTimeLengthEnums data : MobileTimeLengthEnums.values()){ + if(data.getCode().toLowerCase().equals(code.toLowerCase())){ + return data.getDesc(); + } + } + return ""; + } + } + + /** + * ݿֶζӦϵ + */ + public enum MobileOperatorEnums{ + DX("1","й"), + YD("2","йƶ"), + LT("3","йͨ"); + + private String code; // + private String desc; // + + private MobileOperatorEnums(String code, String desc){ + this.code=code; + this.desc=desc; + } + public String getDesc() { + return desc; + } + + public String getCode() { + return this.code; + } + + /** + * code ݿֶ + * @param code + * @return + */ + public static String getValueData(String code){ + for(MobileOperatorEnums data : MobileOperatorEnums.values()){ + if(data.getCode().toLowerCase().equals(code.toLowerCase())){ + return data.getDesc(); + } + } + return ""; + } + } + + /** + * ݿֶζӦϵ + */ + public enum PafEnums{ + personAntiFraudDescInfo("personAntiFraudDescInfo","թջ", PyHtmlContent.personAntiFraudDescInfo), + personAntiFraudScoreInfo("personAntiFraudScoreInfo","թָ", PyHtmlContent.personAntiFraudScoreInfo), + personBaseInfo("personBaseInfo","ϢУ", PyHtmlContent.personBaseInfo), + policeCheckInfo("policeCheckInfo","֤", PyHtmlContent.policeCheckInfo), + mobileCheckInfo("mobileCheckInfo","ֻϢУ", PyHtmlContent.mobileCheckInfo), + mobileStatusInfo("mobileStatusInfo","ֻʱ", PyHtmlContent.mobileStatusInfo), + personRiskRosterInfo("personRiskRosterInfo","", PyHtmlContent.personRiskRosterInfo), + personJudicialSFRiskInfo("personJudicialSFRiskInfo","˾ѯ", PyHtmlContent.personJudicialSFRiskInfo), + personJudicialXZRiskInfo("personJudicialXZRiskInfo","ѯ", PyHtmlContent.personJudicialXZRiskInfo); + + private String code; // + private String htmlContent; // + private String desc; // + + private PafEnums(String code, String desc, String htmlContent){ + this.code=code; + this.desc=desc; + this.htmlContent=htmlContent; + } + public String getDesc() { + return desc; + } + public String getHtmlContent() { + return htmlContent; + } + + public String getCode() { + return this.code; + } + + /** + * code ݿֶ + * @param code + * @return + */ + public static String getValueData(String code){ + for(PafEnums data : PafEnums.values()){ + if(data.getCode().toLowerCase().equals(code.toLowerCase())){ + return data.getHtmlContent(); + } + } + return ""; + } + } + + /** + * ݿֶζӦϵ + */ + public enum PersonAntiFraudDescInfoEnums{ + antiFraudScore("antiFraudScore","թָ"), + antiFraudScoreRiskLevel("antiFraudScoreRiskLevel","թָյȼ"), + policeCheckRiskLevel("policeCheckRiskLevel","֤յȼ"), + policeCheckDesc("policeCheckDesc","֤"), + mobileCheckRiskLevel("mobileCheckRiskLevel","ֻ˲յȼ"), + mobileCheckDesc("mobileCheckDesc","ֻ˲"), + mobileStatusRiskLevel("mobileStatusRiskLevel","ֻ״̬ʱյȼ"), + mobileStatusDesc("mobileStatusDesc","ֻ״̬ʱ"), + riskRosterRiskLevel("riskRosterRiskLevel","յȼ"), + riskRosterDesc("riskRosterDesc",""), + judicialRiskLevel("judicialRiskLevel","˾սյȼ"), + judicialRiskDesc("judicialRiskDesc","˾ս"); + + private String code; // + private String desc; // + + private PersonAntiFraudDescInfoEnums(String code, String desc){ + this.code=code; + this.desc=desc; + } + public String getDesc() { + return desc; + } + + public String getCode() { + return this.code; + } + + /** + * code ݿֶ + * @param code + * @return + */ + public static String getValueData(String code){ + for(PersonAntiFraudDescInfoEnums data : PersonAntiFraudDescInfoEnums.values()){ + if(data.getCode().toLowerCase().equals(code.toLowerCase())){ + return data.getDesc(); + } + } + return ""; + } + } + + /** + * ݿֶζӦϵ + */ + public enum RiskType{ + risk_000("000","δз"), + risk_101("101","թ"), + risk_102("102","Ӫ"), + risk_201("201",""), + risk_202("202",""), + risk_203("203","Ƶŷ"), + risk_301("301","±"), + risk_302("302","±"), + risk_303("303","˾ִ"), + risk_304("304","ձԱ"), + risk_305("305","˾ʧԱ"), + risk_306("306","Ա"), + risk_999("999",""); + + private String code; // + private String desc; // + + private RiskType(String code, String desc){ + this.code=code; + this.desc=desc; + } + public String getDesc() { + return desc; + } + + public String getCode() { + return this.code; + } + + /** + * code ݿֶ + * @param code + * @return + */ + public static String getValueData(String code){ + for(RiskType data : RiskType.values()){ + if(data.getCode().toLowerCase().equals(code.toLowerCase())){ + return data.getDesc(); + } + } + return "δз"; + } + } + + /** + * ݿʼ + * @param obj + * @return + */ + public static String createBodyHead(JSONObject obj) throws ParseException { + StringBuilder sb = new StringBuilder(); + String bodyTitle = title; + bodyTitle = bodyTitle.replace("reportID", obj.getString("reportID")); + sb.append(bodyTitle); + String bodyQueryConditions = queryConditions; + JSONObject queryConditionsObj = obj.getJSONObject("queryConditionsObj"); + bodyQueryConditions = bodyQueryConditions.replace("name", queryConditionsObj.getString("name")); + bodyQueryConditions = bodyQueryConditions.replace("documentNo", queryConditionsObj.getString("documentNo")); + bodyQueryConditions = bodyQueryConditions.replace("unitName", obj.getString("unitName")); + bodyQueryConditions = bodyQueryConditions.replace("queryUserID", obj.getString("queryUserID")); + SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); + Date birDate = sdf.parse(obj.getString("receiveTime").substring(0, 8)); + SimpleDateFormat sdfRes = new SimpleDateFormat("yyyyMMdd"); + String birStr = sdfRes.format(birDate); + bodyQueryConditions = bodyQueryConditions.replace("receiveTime", birStr); + sb.append(bodyQueryConditions); + String bodyBContentPafQuery = bodyContentPafQuery; + bodyBContentPafQuery = bodyBContentPafQuery.replace("phone", queryConditionsObj.getString("phone")); + sb.append(bodyBContentPafQuery); + return sb.toString(); + } + + public static String title = " reportID" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" ; + + public static String queryConditions = + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + +// " \n" + + " \n" + + " \n" + +// " \n" + + " \n" + + " \n" + + " \n" + + " \n" + +// " \n" + + " \n" + + " \n" + +// " \n" + + " \n" + + " \n" + + " \n" + + " \n" + +// " \n" + + " \n" + + " \n" + + "
nameܺѯʱreceiveTime20200728
֤documentNo360123*********978ԱqueryUserIDapwsqueryn
ѯunitNameޣ޹˾
\n" + + " \n" ; + + //թ + public static String bodyContentPafQuery = + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + "
թ
\n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + "
ֻphone
\n" + + " \n" ; + + + public static String contentError = "errorMessage "; + public static String contentEmpty = " errorMessage "; + + + /** + * թϢ + * @param obj + * @return + */ + private static String createBaseContent(String key, String content, JSONObject obj) throws ParseException { + String bodyContentError = contentError; + String bodyContentEmpty = contentEmpty; + String bodyContent = content; + String subContent = ""; + String jsonKey = key; + if("personJudicialSFRiskInfo".equals(key) || "personJudicialXZRiskInfo".equals(key)){ + jsonKey = "personJudicialRiskInfo"; + } + JSONObject keyObj = obj.getJSONObject(jsonKey); + String errorMessage = ""; + if(keyObj.containsKey("errorMessage")){ + errorMessage = keyObj.getString("errorMessage"); + } + if("3".equals(keyObj.getString("treatResult"))){//ϵͳĬϰϸ + if(null == errorMessage || "".equals(errorMessage)){ + errorMessage = "ϵͳ"; + } + bodyContentError = bodyContentError.replace("errorMessage", errorMessage); + subContent = bodyContentError; + }else{//ϸ + subContent = createBodyContentDes(key, obj); + } + if(null == subContent || "".equals(subContent.toString())){ + subContent = bodyContentEmpty.replace("errorMessage", "ṩIJѯδϵͳвϢ"); + } + bodyContent = bodyContent.replace("subContent", subContent); + return bodyContent; + } + + + + /** + * + * @param obj + * @return + */ + public static String createBodyContent(JSONObject obj) throws ParseException { + StringBuilder sb = new StringBuilder(); + for(PafEnums pe : PafEnums.values()){ + String jsonKey = pe.getCode(); + if("personJudicialSFRiskInfo".equals(pe.getCode()) || "personJudicialXZRiskInfo".equals(pe.getCode())){ + jsonKey = "personJudicialRiskInfo"; + } + JSONObject keyObj = obj.getJSONObject(jsonKey); + String treatResult = keyObj.getString("treatResult"); + //Ƿϸ + boolean addContentB = false; + List resKeyArr = + Lists.newArrayList("subReportType", "subReportTypeCost", "treatResult", "treatErrorCode", "errorMessage"); + for(String keyRes : keyObj.keySet()){ + if(!resKeyArr.contains(keyRes) || "3".equals(treatResult)){ + addContentB = true; + } + } + if(addContentB){ + String content = createBaseContent(pe.getCode(), pe.getHtmlContent(), obj); + sb.append(content); + } + } + return sb.toString(); + } + + /** + * թϢ + * @param obj + * @return + */ + private static String createPafDescContent(String key, JSONObject obj){ + String bodyPersonAntiFraudDescInfoContent = personAntiFraudDescInfoContent; + JSONObject subObj = obj.getJSONObject(key); + // TODO: 2020/7/29 жϿ antiFraudScore + String antiFraudScore = subObj.getString("antiFraudScore"); + bodyPersonAntiFraudDescInfoContent = bodyPersonAntiFraudDescInfoContent.replace("antiFraudScore", subObj.getString("antiFraudScore")); + StringBuilder sbContent = new StringBuilder(); + for(PersonAntiFraudDescInfoEnums pe : PersonAntiFraudDescInfoEnums.values()){ + if(null != subObj.getString(pe.getCode()) + && !"".equals(subObj.getString(pe.getCode()))){ + String subContent = personAntiFraudDescInfoContentItem; + String imgStatus = "image_success"; + // TODO: 2020/7/29 ߷ Ϊ imgage_error + String result = subObj.getString(pe.getCode()); + if("antiFraudScore".equals(pe.getCode())) { + if(Integer.parseInt(result) > 500){ + imgStatus = "image_error"; + } + }else if("policeCheckDesc".equals(pe.getCode())){ + String resPre = subObj.getString("policeCheckRiskLevel"); + if(resPre.contains("߷")){ + imgStatus = "image_error"; + }else if(resPre.contains("з")){ + imgStatus = "image_warn"; + } + }else if("mobileCheckDesc".equals(pe.getCode())){ + String resPre = subObj.getString("mobileCheckRiskLevel"); + if(resPre.contains("߷")){ + imgStatus = "image_error"; + }else if(resPre.contains("з")){ + imgStatus = "image_warn"; + } + }else if("mobileStatusDesc".equals(pe.getCode())){ + String resPre = subObj.getString("mobileStatusRiskLevel"); + if(resPre.contains("߷")){ + imgStatus = "image_error"; + }else if(resPre.contains("з")){ + imgStatus = "image_warn"; + } + }else if("judicialRiskDesc".equals(pe.getCode())){ + String resPre = subObj.getString("judicialRiskLevel"); + if(resPre.contains("߷")){ + imgStatus = "image_error"; + }else if(resPre.contains("з")){ + imgStatus = "image_warn"; + } + }else if("riskRosterDesc".equals(pe.getCode())){ + if(!"δз".equals(result)){ + imgStatus = "image_error"; + } + } + if(result.contains("߷")){ + imgStatus = "image_error"; + } + String pafDesc = pe.getDesc() + "" + subObj.getString(pe.getCode()); + subContent = subContent.replace("image_status", imgStatus); + subContent = subContent.replace("pafDesc", pafDesc); + sbContent.append(subContent); + } + } + bodyPersonAntiFraudDescInfoContent = bodyPersonAntiFraudDescInfoContent.replace("contentItem", sbContent.toString()); + return bodyPersonAntiFraudDescInfoContent; + } + + //թ + public static String personAntiFraudDescInfoContentItem = + "
pafDesc
"; + + //թ + public static String personAntiFraudDescInfoContent = + " \n" + + " թָΪ antiFraudScore \n" + + " \n" + + " \n" + + " contentItem \n" + + " \n" ; + //թ + public static String personAntiFraudDescInfo = + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + "
թ
\n" + + " \n" + + " \n" + + " \n" + + " \n" + + " subContent \n" + + "
\n" + + " \n" ; + + /** + * թָ + * @param obj + * @return + */ + private static String createPersonAntiFraudScoreInfoContent(String key, JSONObject obj){ + String bodyPersonAntiFraudScoreInfoContent = personAntiFraudScoreInfoContent; + JSONObject subObj = obj.getJSONObject(key); + bodyPersonAntiFraudScoreInfoContent = bodyPersonAntiFraudScoreInfoContent.replace("riskScore", subObj.getString("riskScore")); + bodyPersonAntiFraudScoreInfoContent = bodyPersonAntiFraudScoreInfoContent.replace("riskLevel", subObj.getString("riskLevel")); + bodyPersonAntiFraudScoreInfoContent = bodyPersonAntiFraudScoreInfoContent.replace("hitTypes", subObj.getString("hitTypes")); + return bodyPersonAntiFraudScoreInfoContent; + } + + //թָ + public static String personAntiFraudScoreInfoContent = + " թָΪ riskScore \n" + + "թյȼΪ riskLevel \n" + + " թձǩΪ hitTypes \n" ; + + //թָͼƬɾ + public static String personAntiFraudScoreInfo = + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + "
թָ
\n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " subContent \n" + + "
\n" + + " \n" ; + + /** + * ֤УϢ + * @param obj + * @return + */ + private static String createPersonBaseInfoContent(String key, JSONObject obj) throws ParseException { + String bodyPersonBaseInfoContent = personBaseInfoContent; + JSONObject subObj = obj.getJSONObject(key); + bodyPersonBaseInfoContent = bodyPersonBaseInfoContent.replace("docNo", subObj.getString("docNo")); + SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); + Date birDate = sdf.parse(subObj.getString("birthday")); + SimpleDateFormat sdfRes = new SimpleDateFormat("yyyyMMdd"); + String birStr = sdfRes.format(birDate); + bodyPersonBaseInfoContent = bodyPersonBaseInfoContent.replace("birthday", birStr); + String genderId = subObj.getString("genderID"); + if("1".equals(genderId)){ + genderId = ""; + }else if("2".equals(genderId)){ + genderId = "Ů"; + }else if("3".equals(genderId)){ + genderId = ""; + } + bodyPersonBaseInfoContent = bodyPersonBaseInfoContent.replace("genderID", genderId); + bodyPersonBaseInfoContent = bodyPersonBaseInfoContent.replace("age", subObj.getString("age")); + bodyPersonBaseInfoContent = bodyPersonBaseInfoContent.replace("originalAddress", subObj.getString("originalAddress")); + bodyPersonBaseInfoContent = bodyPersonBaseInfoContent.replace("verifyResult", "1".equals(subObj.getString("verifyResult")) ? "ͨ" : "δͨ"); + return bodyPersonBaseInfoContent; + } + + //֤УϢ + public static String personBaseInfoContent = + " \n" + + " ֤ \n" + + " docNo \n" + + " \n" + + " birthday \n" + + " \n" + + " \n" + + " Ա \n" + + " genderID \n" + + " \n" + + " age \n" + + " \n" + + " \n" + + " ԭʼ֤ \n" + + " originalAddress \n" + + " \n" + + " \n" + + " ֤У \n" + + " verifyResult \n" + + " \n" ; + + //֤УϢ + public static String personBaseInfo = + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + "
֤УϢ
\n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " subContent \n" + + "
\n" + + " \n"; + + + /** + * ֤УϢ + * @param obj + * @return + */ + private static String createPoliceCheckInfoContent(String key, JSONObject obj){ + StringBuilder sb = new StringBuilder(); + JSONObject arrObj = obj.getJSONObject(key); + JSONArray subArr = arrObj.getJSONArray("item"); + for(int i = 0; i < subArr.size(); i++){ + JSONObject subObj = subArr.getJSONObject(i); + String bodyPoliceCheckInfoContent = policeCheckInfoContent; + bodyPoliceCheckInfoContent = bodyPoliceCheckInfoContent.replace("result", + "1".equals(subObj.getString("result")) ? "һ" : "һ"); + sb.append(bodyPoliceCheckInfoContent); + } + return sb.toString(); + } + + //֤֤ + public static String policeCheckInfoContent = + " \n" + + " ֤ \n" + + " result \n" + + " \n" ; + + //֤֤ + public static String policeCheckInfo = + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + "
֤
\n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " subContent \n" + + "
\n" + + " \n"; + + /** + * ֻУϢ + * @param obj + * @return + */ + private static String createMobileCheckInfoContent(String key, JSONObject obj){ + StringBuilder sb = new StringBuilder(); + JSONObject arrObj = obj.getJSONObject(key); + JSONArray subArr = arrObj.getJSONArray("item"); + for(int i = 0; i < subArr.size(); i++){ + JSONObject subObj = subArr.getJSONObject(i); + String bodyMobileCheckInfoContent = mobileCheckInfoContent; + bodyMobileCheckInfoContent = bodyMobileCheckInfoContent.replace("checkResult", subObj.getString("checkResult")); + bodyMobileCheckInfoContent = bodyMobileCheckInfoContent.replace("areaInfo", subObj.getString("areaInfo")); + bodyMobileCheckInfoContent = bodyMobileCheckInfoContent.replace("operator", MobileOperatorEnums.getValueData(subObj.getString("operator"))); + sb.append(bodyMobileCheckInfoContent); + } + return sb.toString(); + } + + + //ֻУϢ + public static String mobileCheckInfoContent = + " \n" + + " Ӫ \n" + + " operator \n" + + " \n" + + " \n" + + " ֻ \n" + + " areaInfo \n" + + " \n" + + " \n" + + " ֻ֤ \n" + + " checkResult \n" + + " \n" ; + //ֻУϢ + public static String mobileCheckInfo = + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + "
ֻ֤
\n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " subContent \n" + + "
\n" + + " \n"; + + /** + * ֻʱ + * @param obj + * @return + */ + private static String createMobileStatusInfoContent(String key, JSONObject obj){ + StringBuilder sb = new StringBuilder(); + JSONObject arrObj = obj.getJSONObject(key); + JSONArray subArr = arrObj.getJSONArray("item"); + for(int i = 0; i < subArr.size(); i++){ + JSONObject subObj = subArr.getJSONObject(i); + String bodyMobileStatusInfoContent = mobileStatusInfoContent; + bodyMobileStatusInfoContent = bodyMobileStatusInfoContent.replace("timeLength", MobileTimeLengthEnums.getValueData(subObj.getString("timeLength"))); + bodyMobileStatusInfoContent = bodyMobileStatusInfoContent.replace("phoneStatus", MobileStsEnums.getValueData(subObj.getString("phoneStatus"))); + sb.append(bodyMobileStatusInfoContent); + } + return sb.toString(); + } + + + //ֻʱ + public static String mobileStatusInfoContent = + " \n" + + " ֻ״̬ \n" + + " phoneStatus \n" + + " \n" + + " \n" + + " ֻʱ \n" + + " timeLength \n" + + " \n" ; + + //ֻʱ + public static String mobileStatusInfo = + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + "
ֻ״̬ʱ
\n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + + " subContent \n" + + "
\n" + + " \n"; + + + /** + * н + * @param obj + * @return + */ + private static String createPersonRiskRosterInfoContent(String key, JSONObject obj){ + String bodyPersonRiskRosterInfoContent = personRiskRosterInfoContent; + JSONObject subObj = obj.getJSONObject(key); + StringBuilder sb = new StringBuilder(); + // TODO: 2020/7/29 жΪ + String[] riskTypes = subObj.getString("riskTypes").split(","); + for(String riskType : riskTypes){ + sb.append(RiskType.getValueData(riskType) + ", "); + } + String risk = sb.toString(); + risk = risk.substring(0, risk.length() - 2); + bodyPersonRiskRosterInfoContent = bodyPersonRiskRosterInfoContent.replace("riskTypes", risk); + return bodyPersonRiskRosterInfoContent; + } + + //н + public static String personRiskRosterInfoContent = + " \n" + + " з \n" + + " riskTypes \n" + + " \n" ; + + //н + public static String personRiskRosterInfo = + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + "
\n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " subContent \n" + + "
\n" + + " \n"; + + + /** + * н + * @param obj + * @return + */ + private static String createPersonJudicialSFRiskInfoContent(String key, JSONObject obj){ + String bodyPersonJudicialRiskInfoContentSFItem = personJudicialRiskInfoContent; + String tail = ""; + //objת + JSONObject resObj = new JSONObject(); + JSONObject civilCaseCount = new JSONObject(); + JSONObject criminalCaseCount = new JSONObject(); + JSONObject judicialCount = new JSONObject(); + JSONObject endCaseCount = new JSONObject(); + JSONObject breakFaithCount = new JSONObject(); + JSONObject judicialTotalCount = new JSONObject(); + resObj.put("civilCaseCount", civilCaseCount); + resObj.put("criminalCaseCount", criminalCaseCount); + resObj.put("judicialCount", judicialCount); + resObj.put("endCaseCount", endCaseCount); + resObj.put("breakFaithCount", breakFaithCount); + resObj.put("judicialTotalCount", judicialTotalCount); + JSONObject subObj = obj.getJSONObject("personJudicialRiskInfo"); + JSONArray subArr = subObj.getJSONArray("item"); + for(int i = 0; i < subArr.size(); i++){ + JSONObject subJson = subArr.getJSONObject(i); + String resKey = JudicialRiskTimeLengthEnums.getValueData(subJson.getString("timePeriod")); + for(String subKey : subJson.keySet()){ + for(String resSubKey : resObj.keySet()){ + if(subKey.equals(resSubKey)){ + JSONObject resSubObj = resObj.getJSONObject(resSubKey); + resSubObj.put(resKey, subJson.getString(subKey)); + } + } + } + } + StringBuilder sb = new StringBuilder(); + //ѭ + for(String resKey : resObj.keySet()){ + JSONObject resJson = resObj.getJSONObject(resKey); + String content = personJudicialRiskInfoContentSFItem; + content = content.replace("judicialSFType", JudicialSFCountTypeEnums.getValueData(resKey)); + for(JudicialRiskTimeLengthEnums je : JudicialRiskTimeLengthEnums.values()){ + content = content.replace(je.getDesc(), resJson.getString(je.getDesc())); + } + if("judicialTotalCount".equals(resKey)){//ϼƷĩβ + tail = content; + }else { + sb.append(content); + } + } + return bodyPersonJudicialRiskInfoContentSFItem + sb.toString() + tail; + } + /** + * н + * @param obj + * @return + */ + private static String createPersonJudicialXZRiskInfoContent(String key, JSONObject obj){ + String bodyPersonJudicialRiskInfoContentXZItem = personJudicialRiskInfoContent; + String tail = ""; + //objת + JSONObject resObj = new JSONObject(); + JSONObject taxPunishCount = new JSONObject(); + JSONObject marketPunishCount = new JSONObject(); + JSONObject customsPunishCount = new JSONObject(); + JSONObject environmentPunishCount = new JSONObject(); + JSONObject otherPunishCount = new JSONObject(); + JSONObject punishTotalCount = new JSONObject(); + resObj.put("taxPunishCount", taxPunishCount); + resObj.put("marketPunishCount", marketPunishCount); + resObj.put("customsPunishCount", customsPunishCount); + resObj.put("environmentPunishCount", environmentPunishCount); + resObj.put("otherPunishCount", otherPunishCount); + resObj.put("punishTotalCount", punishTotalCount); + JSONObject subObj = obj.getJSONObject("personJudicialRiskInfo"); + JSONArray subArr = subObj.getJSONArray("item"); + for(int i = 0; i < subArr.size(); i++){ + JSONObject subJson = subArr.getJSONObject(i); + String resKey = JudicialRiskTimeLengthEnums.getValueData(subJson.getString("timePeriod")); + for(String subKey : subJson.keySet()){ + for(String resSubKey : resObj.keySet()){ + if(subKey.equals(resSubKey)){ + JSONObject resSubObj = resObj.getJSONObject(resSubKey); + resSubObj.put(resKey, subJson.getString(subKey)); + } + } + } + } + + StringBuilder sb = new StringBuilder(); + System.out.println("resObj="+resObj.toJSONString()); + //ѭ + for(String resKey : resObj.keySet()){ + JSONObject resJson = resObj.getJSONObject(resKey); + String content = personJudicialRiskInfoContentXZItem; + content = content.replace("judicialXZType", JudicialXZCountTypeEnums.getValueData(resKey)); + for(JudicialRiskTimeLengthEnums je : JudicialRiskTimeLengthEnums.values()){ + content = content.replace(je.getDesc(), resJson.getString(je.getDesc())); + } + if("punishTotalCount".equals(resKey)){//ϼƷĩβ + tail = content; + }else { + sb.append(content); + } + } + return bodyPersonJudicialRiskInfoContentXZItem + sb.toString() + tail; + } + + /** + * + * @param key + * @param obj + * @return + */ + private static String createBodyContentDes(String key, JSONObject obj) throws ParseException { + if("personAntiFraudDescInfo".equals(key)){ + return createPafDescContent(key, obj); + }else if("personAntiFraudScoreInfo".equals(key)){ + return createPersonAntiFraudScoreInfoContent(key, obj); + }else if("personBaseInfo".equals(key)){//֤УϢ + return createPersonBaseInfoContent(key, obj); + }else if("policeCheckInfo".equals(key)){ + return createPoliceCheckInfoContent(key, obj); + }else if("mobileCheckInfo".equals(key)){ + return createMobileCheckInfoContent(key, obj); + }else if("mobileStatusInfo".equals(key)){ + return createMobileStatusInfoContent(key, obj); + }else if("personRiskRosterInfo".equals(key)){ + return createPersonRiskRosterInfoContent(key, obj); + }else if("personJudicialSFRiskInfo".equals(key)){ + return createPersonJudicialSFRiskInfoContent(key, obj); + }else if("personJudicialXZRiskInfo".equals(key)){ + return createPersonJudicialXZRiskInfoContent(key, obj); + } + return null; + } + + + public static String personJudicialRiskInfoContentSFItem = + " \n" + + " judicialSFType \n" + + " oneYearCount \n" + + " twoYearCount \n" + + " fiveYearCount \n" + + " historyYearCount \n" + + " \n"; + + public static String personJudicialRiskInfoContentXZItem = + " \n" + + " judicialXZType \n" + + " oneYearCount \n" + + " twoYearCount \n" + + " fiveYearCount \n" + + " historyYearCount \n" + + " \n"; + + public static String personJudicialRiskInfoContent = + " \n" + + " \n" + + " 1 \n" + + " 2 \n" + + " 5 \n" + + " ʷ \n" + + " \n" ; + + public static String personJudicialSFRiskInfo = + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + "
˾ջ
\n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + "
˾
\n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " subContent \n" + + "
\n" + + " \n" ; + + public static String personJudicialXZRiskInfo = + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + "
\n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " subContent \n" + + "
\n" + + " "; + + +} From 1e15aa1e01a71cc8545bd6d976b202bdca2009ca Mon Sep 17 00:00:00 2001 From: tangfutang Date: Fri, 25 Sep 2020 09:40:57 +0800 Subject: [PATCH 09/17] =?UTF-8?q?=E8=A1=A5=E5=85=85=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/interfacePlatform.properties | 3 ++- src_sql/投产SQL/v20200915/tft_20200915.sql | 3 +++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/config/interfacePlatform.properties b/config/interfacePlatform.properties index 6201fbbb4..76a211a26 100644 --- a/config/interfacePlatform.properties +++ b/config/interfacePlatform.properties @@ -3,4 +3,5 @@ FileToPush=pushToBatchDealAllTimer AtTheEndOfContractPush=ContractFinishPushTimer ContractLoanPush=loanPushTimer PushApprovalOpinions=publicPushApproveTimer -channel_kjflc=KJFLC \ No newline at end of file +channel_kjflc=KJFLC +channel_shiqiao=SHIQIAO \ No newline at end of file diff --git a/src_sql/投产SQL/v20200915/tft_20200915.sql b/src_sql/投产SQL/v20200915/tft_20200915.sql index 1590e76f4..23f2b1fb6 100644 --- a/src_sql/投产SQL/v20200915/tft_20200915.sql +++ b/src_sql/投产SQL/v20200915/tft_20200915.sql @@ -414,3 +414,6 @@ insert into `bf_templatelable` (`ID`, `LABLEID`, `TEMPLATEID`, `INPUTUSERID`, `I insert into `bf_templatelable` (`ID`, `LABLEID`, `TEMPLATEID`, `INPUTUSERID`, `INPUTORGID`, `UPDATEUSERID`, `UPDATEORGID`, `INPUTTIME`, `UPDATETIME`) values('c67f3d77ca5c41a3a7b2f4ab57f09fcc','ced1455267d64183ba1b270a9eda6089','7ae245ef8b644b62a4658069adab6c32',NULL,NULL,NULL,NULL,NULL,NULL); insert into `bf_templatelable` (`ID`, `LABLEID`, `TEMPLATEID`, `INPUTUSERID`, `INPUTORGID`, `UPDATEUSERID`, `UPDATEORGID`, `INPUTTIME`, `UPDATETIME`) values('cb87bf20fd7041a3be12a49635620457','484815c4a7a14cf6bdbf69939e5b060e','7ae245ef8b644b62a4658069adab6c32',NULL,NULL,NULL,NULL,NULL,NULL); insert into `bf_templatelable` (`ID`, `LABLEID`, `TEMPLATEID`, `INPUTUSERID`, `INPUTORGID`, `UPDATEUSERID`, `UPDATEORGID`, `INPUTTIME`, `UPDATETIME`) values('edf4b19d90694fd0a3290a8737342e5d','87e832695708478ead2acd3bcdb7a9a9','7ae245ef8b644b62a4658069adab6c32',NULL,NULL,NULL,NULL,NULL,NULL); + +-- ʨ𵼳 +insert into `bf_templatelable` (`ID`, `LABLEID`, `TEMPLATEID`, `INPUTUSERID`, `INPUTORGID`, `UPDATEUSERID`, `UPDATEORGID`, `INPUTTIME`, `UPDATETIME`) values('bf075115bcd44016b6b4decafa6c789b','cee12914b9cf49bfaf5abf838ccdb56f','93e4194efb604c71b394d902b2060da8',NULL,NULL,NULL,NULL,NULL,NULL); From f08e32c9add86887f04ec2c5bf8a0fe723d18ab8 Mon Sep 17 00:00:00 2001 From: tangfutang Date: Fri, 25 Sep 2020 11:36:20 +0800 Subject: [PATCH 10/17] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=A7=9F=E8=B5=81?= =?UTF-8?q?=E5=9C=A8=E5=90=88=E5=90=8C=E5=88=B6=E4=BD=9C=E5=8F=AA=E8=83=BD?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Flow/Comm/LBEquipment_Car/LBEquipmentInfo.jsp | 7 ++++++- .../Flow/Comm/LBEquipment_Car/LBEquipmentList.jsp | 11 ++++++++--- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/WebContent/Tenwa/Lease/Flow/Comm/LBEquipment_Car/LBEquipmentInfo.jsp b/WebContent/Tenwa/Lease/Flow/Comm/LBEquipment_Car/LBEquipmentInfo.jsp index a81508b61..96405bf59 100644 --- a/WebContent/Tenwa/Lease/Flow/Comm/LBEquipment_Car/LBEquipmentInfo.jsp +++ b/WebContent/Tenwa/Lease/Flow/Comm/LBEquipment_Car/LBEquipmentInfo.jsp @@ -184,6 +184,11 @@ setItemRequired(0,"CAR_COLOUR",true); setItemRequired(0,"ENGINE_NUMBER",true); setItemReadOnly(0,0,"MEMO",false); + + document.getElementById('BRAND').nextSibling.remove(); + document.getElementById('CAR_SERIES').nextSibling.remove(); + document.getElementById('MODEL').nextSibling.remove(); + //һƷ˵Ϊ <%-- if("DYCD"=="<%=operationType%>"){ setItemRequired(0,"MEMO",true); @@ -322,7 +327,7 @@ var sParam = "FlowUnid="+"<%=sFlowUnid%>"+"&TempletNo="+"<%=sListTempletNo%>"; var righttype="<%=RightType%>"; if(righttype=="ReadOnly"){sParam=sParam+"&RightType=<%=RightType%>";} - sParam=sParam+"&IsHistory=<%=ishistory%>&NodeNo=<%=nodeNo%>&TaskNo=<%=taskno%>&InfoTempletNo=<%=sInfoTempletNo%>&EquipType=<%=sEquipType%>&carAttributes=<%=carAttributes%>"; + sParam=sParam+"&IsHistory=<%=ishistory%>&NodeNo=<%=nodeNo%>&TaskNo=<%=taskno%>&InfoTempletNo=<%=sInfoTempletNo%>&EquipType=<%=sEquipType%>&carAttributes=<%=carAttributes%>&FlowName=<%=flowName%>"; AsControl.OpenView(sUrl,sParam,"_self",""); } diff --git a/WebContent/Tenwa/Lease/Flow/Comm/LBEquipment_Car/LBEquipmentList.jsp b/WebContent/Tenwa/Lease/Flow/Comm/LBEquipment_Car/LBEquipmentList.jsp index aeb2a70fb..a9cef789c 100644 --- a/WebContent/Tenwa/Lease/Flow/Comm/LBEquipment_Car/LBEquipmentList.jsp +++ b/WebContent/Tenwa/Lease/Flow/Comm/LBEquipment_Car/LBEquipmentList.jsp @@ -87,22 +87,27 @@ <%/*~BEGIN~ɱ༭~[Editable=true;CodeAreaID=List04;Describe=尴ť;]~*/%> <% + String flowNo = CurPage.getParameter("FlowNo"); + String falg = "true"; + if("BContractApproveFlow".equals(flowNo)||"BContractChangeFlow".equals(flowNo)){ + falg = "false"; + } String sButtons[][] =null; if((null!=RightType&&RightType.equals("ReadOnly"))||(null!=ishistory&&ishistory.equals("true"))){ RightType="ReadOnly"; sButtons=new String[][] { {"true","","Button","","","viewAndEdit()","","","","btn_icon_detail",""} }; -}else if("ContractOnhireFlow".equals(CurPage.getParameter("FlowNo"))){ +}else if("ContractOnhireFlow".equals(flowNo)){ sButtons=new String[][] { {"true","","Button","޸","޸Ϣ","viewAndEdit()","","","","btn_icon_edit"}, }; }else{ sButtons=new String[][]{ //0Ƿչʾ 1 Ȩ޿ 2 չʾ 3ťʾ 4ť 5ť¼ 6 7 8 9ͼ꣬CSSʽ 10 - {"true","","Button","","Ϣ","newRecord()","","","","btn_icon_add",""}, + {falg,"","Button","","Ϣ","newRecord()","","","","btn_icon_add",""}, {"true","","Button","޸","޸Ϣ","viewAndEdit()","","","","btn_icon_edit"}, - {"true","","Button","ɾ","ɾϢ","deleteRecord()","","","","btn_icon_delete",""}, + {falg,"","Button","ɾ","ɾϢ","deleteRecord()","","","","btn_icon_delete",""}, //{"true","","Button","Excel","ϢExcel","inExcel()","","","","",""}, //{"true","","Button","Excel","ϢExcel","exportPage('"+sWebRootPath+"',0,'excel','"+dwTemp.getArgsValue()+"')","","","","",""}, //{"true","","Button","ģ","Ϣģ","downLoad()","","","","",""} From 77f7fc0c7f19cde286923bf65a7284a2b8bd86d8 Mon Sep 17 00:00:00 2001 From: tangfutang Date: Fri, 25 Sep 2020 15:09:09 +0800 Subject: [PATCH 11/17] =?UTF-8?q?=E6=A0=A1=E9=AA=8C=E6=8C=82=E8=BD=A6?= =?UTF-8?q?=E8=BD=A6=E6=9E=B6=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Tenwa/Lease/Flow/Comm/LBEquipment_Car/LBEquipmentInfo.jsp | 2 +- .../tenwa/app/baseFileTemplate/handle/FileTemplateUtil.java | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/WebContent/Tenwa/Lease/Flow/Comm/LBEquipment_Car/LBEquipmentInfo.jsp b/WebContent/Tenwa/Lease/Flow/Comm/LBEquipment_Car/LBEquipmentInfo.jsp index 96405bf59..a782902b8 100644 --- a/WebContent/Tenwa/Lease/Flow/Comm/LBEquipment_Car/LBEquipmentInfo.jsp +++ b/WebContent/Tenwa/Lease/Flow/Comm/LBEquipment_Car/LBEquipmentInfo.jsp @@ -200,7 +200,7 @@ } var carAttribute = getItemValue(0,0,"car_attribute"); if("head" != carAttribute){ - setItemRequired(0,"FRAME_NUMBER",false); + //setItemRequired(0,"FRAME_NUMBER",false); setItemRequired(0,"CAR_COLOUR",false); setItemRequired(0,"ENGINE_NUMBER",false); } diff --git a/src/com/tenwa/app/baseFileTemplate/handle/FileTemplateUtil.java b/src/com/tenwa/app/baseFileTemplate/handle/FileTemplateUtil.java index aa68f81ff..7ad42f7ea 100644 --- a/src/com/tenwa/app/baseFileTemplate/handle/FileTemplateUtil.java +++ b/src/com/tenwa/app/baseFileTemplate/handle/FileTemplateUtil.java @@ -284,6 +284,10 @@ public class FileTemplateUtil { if(message.length()>0){ return "д"+message.substring(0,message.length() - 1)+"!"; } + BizObject carTail = lrct.createQuery("FLOWUNID=:flowunid and car_attribute='tail' and ( FRAME_NUMBER is null or FRAME_NUMBER='' )").setParameter("flowunid", flowunid).getSingleResult(false); + if(carTail!=null){ + return "дӦijܺ!"; + } String docName=""; String[] bfids = templateIds.split("&"); BizObjectManager btManager = JBOFactory.getBizObjectManager(BF_TEMPLATE.CLASS_NAME); From d79268ca0ac39ad58e86bd6eb6a7dfc71d441d67 Mon Sep 17 00:00:00 2001 From: tangfutang Date: Fri, 25 Sep 2020 19:05:00 +0800 Subject: [PATCH 12/17] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=A7=9F=E8=B5=81?= =?UTF-8?q?=E7=89=A9=E6=95=B0=E9=87=8F=E6=A0=A1=E9=AA=8C=E5=92=8C=E6=8F=90?= =?UTF-8?q?=E7=A4=BA=E8=AF=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Comm/LBEquipment_Car/LBEquipmentList.jsp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/WebContent/Tenwa/Lease/Flow/Comm/LBEquipment_Car/LBEquipmentList.jsp b/WebContent/Tenwa/Lease/Flow/Comm/LBEquipment_Car/LBEquipmentList.jsp index a9cef789c..241897ecd 100644 --- a/WebContent/Tenwa/Lease/Flow/Comm/LBEquipment_Car/LBEquipmentList.jsp +++ b/WebContent/Tenwa/Lease/Flow/Comm/LBEquipment_Car/LBEquipmentList.jsp @@ -181,12 +181,12 @@ if((null!=RightType&&RightType.equals("ReadOnly"))||(null!=ishistory&&ishistory. /*~[Describe=¼;InputParam=;OutPutParam=;]~*/ function newRecord(){ var countNumber = getRowCount(0); - if(Number(countNumber)<2){ +// if(Number(countNumber)<2){ //жǷ޳ - var res0=RunJavaMethodTrans("com.tenwa.lease.flow.project.businessapply.CustomerAction","checkGuaranteeCarByCertid",'certid=<%=certid%>'+',flowunid=<%=sFlowUnid%>'); - if(res0 != "0"){ - alert(res0); - } + //var res0=RunJavaMethodTrans("com.tenwa.lease.flow.project.businessapply.CustomerAction","checkGuaranteeCarByCertid",'certid=<%=certid%>'+',flowunid=<%=sFlowUnid%>'); + //if(res0 != "0"){ + // alert(res0); + //} var sUrl = "/Tenwa/Lease/Flow/Comm/LBEquipment_Car/LBEquipmentInfo.jsp"; var sParam = 'FlowUnid='+'<%=sFlowUnid%>'+"&ListTempletNo="+"<%=sTempletNo%>"; var righttype="<%=RightType%>"; @@ -196,9 +196,9 @@ if((null!=RightType&&RightType.equals("ReadOnly"))||(null!=ishistory&&ishistory. sParam=sParam+"&ProjectNo=<%=ProjectNo%>&ProjectId=<%=projectId%>&ApplyType=<%=ApplyType%>&FlowName=<%=flowName%>&ContractId=<%=contractid%>&ShowType=<%=showtype%>&operationType=<%=operationType%>&carAttributes=<%=carAttributes%>"; AsControl.OpenView(sUrl,sParam,"_self",""); - } else { + /* } else { alert("Ϣֻ!"); - } + } */ } @@ -224,7 +224,7 @@ if((null!=RightType&&RightType.equals("ReadOnly"))||(null!=ishistory&&ishistory. function deleteRecord(){ var carAttribute = getItemValue(0,getRow(),"car_attribute"); if(carAttribute=="head"){ - alert("ǣɾ"); + alert("ͷɾ"); return ; } var ID = getItemValue(0,getRow(),"ID"); From fec72b0d4b3441c66eaed507b59d98e726d15911 Mon Sep 17 00:00:00 2001 From: gityjf <2211675158@qq.com> Date: Fri, 25 Sep 2020 19:14:04 +0800 Subject: [PATCH 13/17] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=A7=9F=E8=B5=81?= =?UTF-8?q?=E7=89=A9=E6=8C=82=E8=BD=A6=E5=8E=86=E5=8F=B2=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=A4=84=E7=90=86sql?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src_sql/投产SQL/v20200915/tft_20200915.sql | 69 +++++++++++++++++++--- 1 file changed, 61 insertions(+), 8 deletions(-) diff --git a/src_sql/投产SQL/v20200915/tft_20200915.sql b/src_sql/投产SQL/v20200915/tft_20200915.sql index 23f2b1fb6..1c4b67f9b 100644 --- a/src_sql/投产SQL/v20200915/tft_20200915.sql +++ b/src_sql/投产SQL/v20200915/tft_20200915.sql @@ -118,7 +118,7 @@ INSERT INTO CODE_LIBRARY (CODENO, ITEMNO, ITEMNAME, BANKNO, SORTNO, ISINUSE, ITE INSERT INTO CODE_LIBRARY (CODENO, ITEMNO, ITEMNAME, BANKNO, SORTNO, ISINUSE, ITEMDESCRIBE, ITEMATTRIBUTE, RELATIVECODE,ATTRIBUTE1, ATTRIBUTE2, ATTRIBUTE3, ATTRIBUTE4, ATTRIBUTE5, ATTRIBUTE6, ATTRIBUTE7,ATTRIBUTE8, INPUTUSER, INPUTORG, INPUTTIME, UPDATEUSER, UPDATETIME, REMARK, HELPTEXT)VALUES ('sign_status', 'sign_status4', 'ǩԼʧЧ', NULL, '0040', '1', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,NULL, NULL, 'SYS_Designer', NULL, '2019/01/07 19:14:10', 'SYS_Designer', '2019/01/07 19:14:10', NULL, NULL); INSERT INTO CODE_LIBRARY (CODENO, ITEMNO, ITEMNAME, BANKNO, SORTNO, ISINUSE, ITEMDESCRIBE, ITEMATTRIBUTE, RELATIVECODE, ATTRIBUTE1, ATTRIBUTE2, ATTRIBUTE3, ATTRIBUTE4, ATTRIBUTE5, ATTRIBUTE6, ATTRIBUTE7, ATTRIBUTE8, INPUTUSER, INPUTORG, INPUTTIME, UPDATEUSER, UPDATETIME, REMARK, HELPTEXT) VALUES ('sign_status', 'sign_status5','ǩԼ', NULL, '0050', '1', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'SYS_Designer', NULL, '2019/01/07 19:14:10', 'SYS_Designer', '2019/01/07 19:14:10', NULL, NULL); --- ==============================v2====================================== +-- ==============================ڶθ v2====================================== delete from PRD_NODEINFO where nodeid='11291' and nodename='޳Ϣ'; insert into `PRD_NODEINFO` (`nodeid`, `nodename`, `sortno`, `isinuse`, `itemdescribe`, `inputuserid`, `inputorgid`, `inputtime`, `updateuserid`, `updatetime`, `initscript`, `exportscript`, `phasescript`, `deletescript`, `remark`, `formalClass`, `querycondition`) values('11291','޳Ϣ','11291','1','/Tenwa/Lease/Flow/Comm/LBEquipment_Car/LBEquipmentList.jsp','admin','80009000200010001','2018/01/31','administrator','2020/08/31',NULL,NULL,NULL,NULL,NULL,NULL,NULL); @@ -176,7 +176,6 @@ Insert Into awe_do_library (dono,colindex,sortno,isinuse,coltablename,colactualn Insert Into awe_do_library (dono,colindex,sortno,isinuse,coltablename,colactualname,colname,coltype,coldefaultvalue,colheader,colunit,colcolumntype,coleditstyle,colcheckformat,colalign,coleditsourcetype,coleditsource,colhtmlstyle,collimit,colvisible,colreadonly,colrequired,colsortable,isfilter,colspan,isautocomplete,groupid,colfilterrefid,inputuser,inputtime,updateuser,updatetime,isaudit,colfilterattrs,isupdate,parentcolindex,tips,colinnerbtevent,colfilteroptions) Values ('LBEquipmentInfoTemp_Cars','1480','1480','1','O','modelId','modelId','String','','ID','','1','Text','1','1','','','','32','0','0','0','1','0',0,'','','','SYS_Designer','2020/01/06 10:40:56','SYS_Designer','2020/08/31 21:44:48','0','','1','','','',''); - -- ޸ʷݳ UPDATE LB_EQUIPMENT_CAR_TEMP SET DEVICE_TYPE='γ' WHERE DEVICE_TYPE='1'; UPDATE LB_EQUIPMENT_CAR_TEMP SET DEVICE_TYPE='ԽҰ' WHERE DEVICE_TYPE='2'; @@ -351,7 +350,7 @@ insert into `bf_templatelable` (`ID`, `LABLEID`, `TEMPLATEID`, `INPUTUSERID`, `I -- ޸׼ǩ delete from BF_LABLECONFIG where ID='fd46596832164f39afc5b47e6711d1bd'; insert into `BF_LABLECONFIG` (`ID`, `TAGNUMBER`, `TAGNAME`, `TITLE`, `TAGTYPE`, `VALUETYPE`, `VALUEFIELD`, `VALUEMETHOD`, `THOUSANDSFIELD`, `ISSHOEINDEX`, `REMARK`, `INPUTUSERID`, `INPUTORGID`, `UPDATEUSERID`, `UPDATEORGID`, `INPUTTIME`, `UPDATETIME`, `OPERATORCLASS`) values('fd46596832164f39afc5b47e6711d1bd','5000','LetterApproval','׼ǩ','tag_type2','value_type3','customer_name,fullname,certid,MODEL,EQUIP_AMT,FIRST_PAYMENT,CLEAN_LEASE_MONEY,CAUTION_MONEY,GPS_FEE,INCOME_NUMBER,rent,DISTRIBUTOR_NAME,inputName,datetim,subjectnameone,subjectnametwo','SELECT lul.customer_name,vpci.fullname,vpci.certid,lec.MODEL,lpc.EQUIP_AMT,lpc.FIRST_PAYMENT,lpc.CLEAN_LEASE_MONEY,lpc.CAUTION_MONEY,lpc.GPS_FEE,lpc.INCOME_NUMBER,lrp.rent,di.DISTRIBUTOR_NAME,lpi.inputName,DATE_FORMAT(lpi.end_date,\'%Y%m%d\') datetim,:{subjectnameone} subjectnameone,:{subjectnametwo} subjectnametwo FROM lb_union_lessee lul LEFT JOIN vi_personandcompany_info vpci ON lul.project_id=vpci.projectId LEFT JOIN LB_EQUIPMENT_CAR lec ON lec.project_id=lul.project_id LEFT JOIN lc_proj_condition lpc ON lpc.project_id=lul.project_id LEFT JOIN lc_proj_rent_plan lrp ON lrp.project_id=lul.project_id AND lrp.contract_id IS NULL AND lrp.plan_list=\'2\' LEFT JOIN lb_project_info lpi ON lpi.id=lul.project_id LEFT JOIN DISTRIBUTOR_INFO di ON di.distributor_no=lpi.distributor_id WHERE lul.project_id=:{PROJECTID}',NULL,'N',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); --- бҳֶ +-- бҳֶ(ִ) Insert Into awe_do_library (dono,colindex,sortno,isinuse,coltablename,colactualname,colname,coltype,coldefaultvalue,colheader,colunit,colcolumntype,coleditstyle,colcheckformat,colalign,coleditsourcetype,coleditsource,colhtmlstyle,collimit,colvisible,colreadonly,colrequired,colsortable,isfilter,colspan,isautocomplete,groupid,colfilterrefid,inputuser,inputtime,updateuser,updatetime,isaudit,colfilterattrs,isupdate,parentcolindex,tips,colinnerbtevent,colfilteroptions) Values ('LetterApprovaList','1260','1260','1','O','subjectid','subjectid','String','','id','','1','Text','1','1','','','','32','0','0','0','1','0',0,'','','','SYS_Designer','2020/09/18 15:38:46','SYS_Designer','2020/09/18 15:38:46','0','','1','','','',''); -- еġڡΪԤƻڡ @@ -385,9 +384,7 @@ Alter table lb_equipment_car_temp add column car_attribute varchar(30) NULL COMM -- ޸ʷ update LB_EQUIPMENT_CAR_TEMP set car_attribute='head'; update LB_EQUIPMENT_CAR set car_attribute='head'; --- ҳʷ -insert into LB_EQUIPMENT_CAR_TEMP(id,project_id,contract_id,BRAND,FRAME_NUMBER,CAR_COLOUR,flowunid,INPUTTIME,NOW_TOTAL,car_attribute) (select REPLACE(UUID(),'-',''),project_id,contract_id,FRAME_BRAND,FRAME_NUMBER2,FRAME_COLOR,flowunid,DATE_FORMAT (CURDATE(),'%Y/%m/%d'),0.00,'tail' from LB_EQUIPMENT_CAR_TEMP where FRAME_NUMBER2 is not null or FRAME_BRAND is not null or FRAME_COLOR is not null); -insert into LB_EQUIPMENT_CAR(id,project_id,contract_id,BRAND,FRAME_NUMBER,CAR_COLOUR,INPUTTIME,NOW_TOTAL,car_attribute) (select REPLACE(UUID(),'-',''),project_id,contract_id,FRAME_BRAND,FRAME_NUMBER2,FRAME_COLOR,DATE_FORMAT (CURDATE(),'%Y/%m/%d'),0.00,'tail' from LB_EQUIPMENT_CAR where FRAME_NUMBER2 is not null or FRAME_BRAND is not null or FRAME_COLOR is not null); + -- бӳֶ Insert Into awe_do_library (dono,colindex,sortno,isinuse,coltablename,colactualname,colname,coltype,coldefaultvalue,colheader,colunit,colcolumntype,coleditstyle,colcheckformat,colalign,coleditsourcetype,coleditsource,colhtmlstyle,collimit,colvisible,colreadonly,colrequired,colsortable,isfilter,colspan,isautocomplete,groupid,colfilterrefid,inputuser,inputtime,updateuser,updatetime,isaudit,colfilterattrs,isupdate,parentcolindex,tips,colinnerbtevent,colfilteroptions) Values ('LBEquipmentListTemp_Cars','0640','0640','1','O','car_attribute','car_attribute','String','','','','1','Text','1','1','','','','30','0','0','0','1','0',0,'','','','SYS_Designer','2020/09/24 17:21:10','SYS_Designer','2020/09/24 17:21:10','0','','1','','','',''); @@ -415,5 +412,61 @@ insert into `bf_templatelable` (`ID`, `LABLEID`, `TEMPLATEID`, `INPUTUSERID`, `I insert into `bf_templatelable` (`ID`, `LABLEID`, `TEMPLATEID`, `INPUTUSERID`, `INPUTORGID`, `UPDATEUSERID`, `UPDATEORGID`, `INPUTTIME`, `UPDATETIME`) values('cb87bf20fd7041a3be12a49635620457','484815c4a7a14cf6bdbf69939e5b060e','7ae245ef8b644b62a4658069adab6c32',NULL,NULL,NULL,NULL,NULL,NULL); insert into `bf_templatelable` (`ID`, `LABLEID`, `TEMPLATEID`, `INPUTUSERID`, `INPUTORGID`, `UPDATEUSERID`, `UPDATEORGID`, `INPUTTIME`, `UPDATETIME`) values('edf4b19d90694fd0a3290a8737342e5d','87e832695708478ead2acd3bcdb7a9a9','7ae245ef8b644b62a4658069adab6c32',NULL,NULL,NULL,NULL,NULL,NULL); --- ʨ𵼳 -insert into `bf_templatelable` (`ID`, `LABLEID`, `TEMPLATEID`, `INPUTUSERID`, `INPUTORGID`, `UPDATEUSERID`, `UPDATEORGID`, `INPUTTIME`, `UPDATETIME`) values('bf075115bcd44016b6b4decafa6c789b','cee12914b9cf49bfaf5abf838ccdb56f','93e4194efb604c71b394d902b2060da8',NULL,NULL,NULL,NULL,NULL,NULL); +-- ҳʷ(ʱ) +CREATE PROCEDURE proc_insert_car_temp() +begin + declare s_project_id varchar(255); + declare s_contract_id varchar(255); + declare s_FRAME_BRAND varchar(255); + declare s_FRAME_NUMBER2 varchar(255); + declare s_FRAME_COLOR varchar(255); + declare s_flowunid varchar(255); + declare s_frame_plateno varchar(255); + declare s_frame_regdate varchar(255); + declare s_frame_guided_price varchar(255); + + declare done int default 0; + declare cur cursor for select project_id,contract_id,FRAME_BRAND,FRAME_NUMBER2,FRAME_COLOR,flowunid,frame_plateno,frame_regdate,frame_guided_price from LB_EQUIPMENT_CAR_TEMP where FRAME_NUMBER2 is not null or FRAME_BRAND is not null or FRAME_COLOR is not null; + DECLARE EXIT HANDLER FOR NOT FOUND SET done = 1; + open cur; + repeat + fetch cur into s_project_id,s_contract_id,s_FRAME_BRAND,s_FRAME_NUMBER2,s_FRAME_COLOR,s_flowunid,s_frame_plateno,s_frame_regdate,s_frame_guided_price; + insert into LB_EQUIPMENT_CAR_TEMP(id,project_id,contract_id,BRAND,FRAME_NUMBER,CAR_COLOUR,flowunid,LICENSE_PLATE_NUMBER,regDate,NOW_TOTAL,INPUTTIME,car_attribute) + values (REPLACE(UUID(),'-',''),s_project_id,s_contract_id,s_FRAME_BRAND,s_FRAME_NUMBER2,s_FRAME_COLOR,s_flowunid,s_frame_plateno,s_frame_regdate,s_frame_guided_price,DATE_FORMAT (SYSDATE(),'%Y/%m/%d %H:%i:%s'),'tail'); + until done = 1 + end repeat; + close cur; +end + +call proc_insert_car_temp(); + +drop PROCEDURE proc_insert_car_temp; + +-- ҳʷ(ʽ) +CREATE PROCEDURE proc_insert_car_formal() +begin + declare s_project_id varchar(255); + declare s_contract_id varchar(255); + declare s_FRAME_BRAND varchar(255); + declare s_FRAME_NUMBER2 varchar(255); + declare s_FRAME_COLOR varchar(255); + declare s_frame_plateno varchar(255); + declare s_frame_regdate varchar(255); + declare s_frame_guided_price varchar(255); + + declare done int default 0; + declare cur cursor for select project_id,contract_id,FRAME_BRAND,FRAME_NUMBER2,FRAME_COLOR,frame_plateno,frame_regdate,frame_guided_price from LB_EQUIPMENT_CAR where FRAME_NUMBER2 is not null or FRAME_BRAND is not null or FRAME_COLOR is not null; + DECLARE EXIT HANDLER FOR NOT FOUND SET done = 1; + open cur; + repeat + fetch cur into s_project_id,s_contract_id,s_FRAME_BRAND,s_FRAME_NUMBER2,s_FRAME_COLOR,s_frame_plateno,s_frame_regdate,s_frame_guided_price; + insert into LB_EQUIPMENT_CAR(id,project_id,contract_id,BRAND,FRAME_NUMBER,CAR_COLOUR,LICENSE_PLATE_NUMBER,regDate,NOW_TOTAL,INPUTTIME,car_attribute) + values (REPLACE(UUID(),'-',''),s_project_id,s_contract_id,s_FRAME_BRAND,s_FRAME_NUMBER2,s_FRAME_COLOR,s_frame_plateno,s_frame_regdate,s_frame_guided_price,DATE_FORMAT (SYSDATE(),'%Y/%m/%d %H:%i:%s'),'tail'); + until done = 1 + end repeat; + close cur; +end + +call proc_insert_car_formal(); + +drop PROCEDURE proc_insert_car_formal; \ No newline at end of file From 80841c76a69f61e32cadb8cc5944726f7d7ad8bf Mon Sep 17 00:00:00 2001 From: zhangbb Date: Fri, 9 Oct 2020 18:22:12 +0800 Subject: [PATCH 14/17] =?UTF-8?q?=E5=90=88=E5=90=8C=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E5=B1=95=E7=A4=BA=E9=A1=B5=E9=9D=A2=E5=8F=AA=E5=B1=95=E7=A4=BA?= =?UTF-8?q?=E5=A4=B4=E8=BD=A6=E7=9A=84=EF=BC=88=E5=B7=B2=E6=9B=B4=E7=94=9F?= =?UTF-8?q?=E4=BA=A7=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src_sql/view/vi_business_info.sql | 60 +++++++++++++++++++++++++------ 1 file changed, 50 insertions(+), 10 deletions(-) diff --git a/src_sql/view/vi_business_info.sql b/src_sql/view/vi_business_info.sql index 24c9248f9..142bd1300 100644 --- a/src_sql/view/vi_business_info.sql +++ b/src_sql/view/vi_business_info.sql @@ -1,10 +1,50 @@ -CREATE VIEW apzl.vi_business_info AS -(SELECT lci.id id,lci.project_id project_id,lci.PRODUCT_ID PRODUCT_ID,lci.flowunid flowunid,cs.business_status CONTRACT_STAT,lci.contract_no contract_no,lul.CUSTOMER_NAME CUSTOMER_NAME,lpi.project_no PROJECT_NO,lec.FRAME_NUMBER FRAME_NUMBER,lec.VNDR_NAME VNDR_NAME,lfi.APPLYPAY_DATE APPLYPAY_DATE,lci.PROJECT_DATE PROJECT_DATE -FROM lb_contract_info lci -LEFT JOIN (SELECT bs.contract_number,c.itemname business_status FROM business_status bs LEFT JOIN code_library c ON c.itemno = bs.business_status AND c.codeno = 'BusinessStatus' WHERE EXISTS(SELECT 1 FROM (SELECT contract_number,MAX(inputtime) AS inputtime FROM business_status GROUP BY contract_number) t WHERE t.contract_number = bs.contract_number AND inputtime = bs.inputtime)) cs ON cs.contract_number=lci.contract_no -LEFT JOIN lb_union_lessee lul ON lci.PROJECT_ID = lul.PROJECT_ID -LEFT JOIN lb_project_info lpi ON lpi.id=lci.project_id -LEFT JOIN lb_equipment_car lec ON lec.contract_id=lci.id -LEFT JOIN (SELECT flow_bussiness_object.contract_id AS contract_id,LEFT(flow_bussiness_object.InputTime,10) AS APPLYPAY_DATE FROM flow_bussiness_object WHERE (flow_bussiness_object.flow_name = '()') GROUP BY flow_bussiness_object.contract_id) lfi ON lci.ID = lfi.contract_id - WHERE lci.BUSINESSTYPE = '1' -); +DELIMITER $$ + +ALTER ALGORITHM=UNDEFINED DEFINER=`apzl`@`%` SQL SECURITY DEFINER VIEW `vi_business_info` AS ( +SELECT + `lci`.`ID` AS `id`, + `lci`.`PROJECT_ID` AS `project_id`, + `lci`.`PRODUCT_ID` AS `PRODUCT_ID`, + `lci`.`FLOWUNID` AS `flowunid`, + `cs`.`business_status` AS `CONTRACT_STAT`, + `lci`.`CONTRACT_NO` AS `contract_no`, + `lul`.`CUSTOMER_NAME` AS `CUSTOMER_NAME`, + `lpi`.`PROJECT_NO` AS `PROJECT_NO`, + `lec`.`FRAME_NUMBER` AS `FRAME_NUMBER`, + `lec`.`VNDR_NAME` AS `VNDR_NAME`, + `lfi`.`APPLYPAY_DATE` AS `APPLYPAY_DATE`, + `lci`.`PROJECT_DATE` AS `PROJECT_DATE` +FROM (((((`apzl`.`lb_contract_info` `lci` + LEFT JOIN (SELECT + `bs`.`contract_number` AS `contract_number`, + `c`.`itemname` AS `business_status` + FROM (`apzl`.`business_status` `bs` + LEFT JOIN `apzl`.`code_library` `c` + ON (((`c`.`itemno` = `bs`.`business_status`) + AND (`c`.`codeno` = 'BusinessStatus')))) + WHERE EXISTS(SELECT + 1 + FROM (SELECT + `apzl`.`business_status`.`contract_number` AS `contract_number`, + MAX(`apzl`.`business_status`.`inputtime`) AS `inputtime` + FROM `apzl`.`business_status` + GROUP BY `apzl`.`business_status`.`contract_number`) `t` + WHERE ((`t`.`contract_number` = `bs`.`contract_number`) + AND (`t`.`inputtime` = `bs`.`inputtime`)))) `cs` + ON ((`cs`.`contract_number` = `lci`.`CONTRACT_NO`))) + LEFT JOIN `apzl`.`lb_union_lessee` `lul` + ON ((`lci`.`PROJECT_ID` = `lul`.`PROJECT_ID`))) + LEFT JOIN `apzl`.`lb_project_info` `lpi` + ON ((`lpi`.`ID` = `lci`.`PROJECT_ID`))) + LEFT JOIN `apzl`.`lb_equipment_car` `lec` + ON ((`lec`.`CONTRACT_ID` = `lci`.`ID`))) + LEFT JOIN (SELECT + `apzl`.`flow_bussiness_object`.`contract_id` AS `contract_id`, + LEFT(`apzl`.`flow_bussiness_object`.`InputTime`,10) AS `APPLYPAY_DATE` + FROM `apzl`.`flow_bussiness_object` + WHERE (`apzl`.`flow_bussiness_object`.`flow_name` = '()') + GROUP BY `apzl`.`flow_bussiness_object`.`contract_id`) `lfi` + ON ((`lci`.`ID` = `lfi`.`contract_id`))) +WHERE (`lci`.`BUSINESSTYPE` = '1' AND lec.car_attribute='head'))$$ + +DELIMITER ; \ No newline at end of file From 36f4f819d425ed068b30543957d7fde8dcecb0fc Mon Sep 17 00:00:00 2001 From: zhangbb Date: Sat, 10 Oct 2020 10:10:07 +0800 Subject: [PATCH 15/17] =?UTF-8?q?=E9=9D=9E=E6=B5=81=E7=A8=8B=E4=B8=AD?= =?UTF-8?q?=E7=9A=84=E7=A7=9F=E8=B5=81=E7=89=A9=E9=A1=B5=E9=9D=A2=EF=BC=8C?= =?UTF-8?q?=E9=87=87=E7=94=A8=E6=AD=A3=E5=BC=8F=E8=A1=A8=EF=BC=8C=E5=B9=B6?= =?UTF-8?q?=E7=94=A8=E5=90=88=E5=90=8C=E5=8F=B7=E6=9D=A5=E5=81=9Awhere?= =?UTF-8?q?=E6=9D=A1=E4=BB=B6=EF=BC=88=E5=B7=B2=E6=9B=B4=E7=94=9F=E4=BA=A7?= =?UTF-8?q?=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Lease/Flow/Comm/LBEquipment_Car/LBEquipmentList.jsp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/WebContent/Tenwa/Lease/Flow/Comm/LBEquipment_Car/LBEquipmentList.jsp b/WebContent/Tenwa/Lease/Flow/Comm/LBEquipment_Car/LBEquipmentList.jsp index 241897ecd..2384c9280 100644 --- a/WebContent/Tenwa/Lease/Flow/Comm/LBEquipment_Car/LBEquipmentList.jsp +++ b/WebContent/Tenwa/Lease/Flow/Comm/LBEquipment_Car/LBEquipmentList.jsp @@ -37,6 +37,7 @@ String contractid = CurPage.getParameter("ContractId"); String showtype = CurPage.getParameter("ShowType"); String operationType = CurPage.getParameter("operationType"); + String flowNo = CurPage.getParameter("FlowNo"); String sFlowUnid = CurPage.getParameter("FlowUnid");//̱ if(sFlowUnid == null)sFlowUnid = ""; @@ -69,6 +70,10 @@ <%/*~BEGIN~ɱ༭~[Editable=true;CodeAreaID=List03;Describe=ݶ;]~*/%> <% + if(flowNo==null){ + sTempletNo="LBEquipmentListT4CarContract"; + sFlowUnid=contractid; + } ASObjectModel doTemp = new ASObjectModel(sTempletNo); /* if(null!=ishistory&&ishistory.equals("true")){ doTemp.setDataQueryClass("com.tenwa.flow.flowHistory.FlowDataListHistory"); @@ -87,7 +92,7 @@ <%/*~BEGIN~ɱ༭~[Editable=true;CodeAreaID=List04;Describe=尴ť;]~*/%> <% - String flowNo = CurPage.getParameter("FlowNo"); + String falg = "true"; if("BContractApproveFlow".equals(flowNo)||"BContractChangeFlow".equals(flowNo)){ falg = "false"; From ba7b662ce642c49fb4003cc72bbc55966b1842b1 Mon Sep 17 00:00:00 2001 From: zhangbb Date: Mon, 12 Oct 2020 18:52:42 +0800 Subject: [PATCH 16/17] =?UTF-8?q?1.=E7=BD=91=E9=93=B6=E6=94=B6=E6=AC=BE?= =?UTF-8?q?=E5=90=8E=EF=BC=8C=E5=A6=82=E6=9E=9C=E4=BB=A3=E5=81=BF=E7=8A=B6?= =?UTF-8?q?=E6=80=81=EF=BC=8C=E9=83=A8=E5=88=86=E8=BF=98=E6=AC=BE=E4=BE=9D?= =?UTF-8?q?=E7=84=B6=E4=B8=BA=E4=BB=A3=E5=81=BF=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../rent/copyrent/InsertRentPlanStatus.java | 105 +++++++++--------- 1 file changed, 53 insertions(+), 52 deletions(-) diff --git a/src_tenwa/com/tenwa/flow/rent/copyrent/InsertRentPlanStatus.java b/src_tenwa/com/tenwa/flow/rent/copyrent/InsertRentPlanStatus.java index cbfc8b99b..4ff7512bf 100644 --- a/src_tenwa/com/tenwa/flow/rent/copyrent/InsertRentPlanStatus.java +++ b/src_tenwa/com/tenwa/flow/rent/copyrent/InsertRentPlanStatus.java @@ -1,52 +1,53 @@ -package com.tenwa.flow.rent.copyrent; -import java.math.BigDecimal; -import java.util.List; - -import jbo.app.tenwa.calc.LC_RENT_INCOME; -import jbo.app.tenwa.calc.LC_RENT_INCOME_TEMP; -import jbo.app.tenwa.calc.LC_RENT_PLAN; -import jbo.com.tenwa.entity.comm.flow.D_DEPOSITCHARGE_INFO; -import jbo.com.tenwa.entity.comm.flow.D_DEPOSITRETURN_INFO; - -import com.amarsoft.are.jbo.BizObject; -import com.amarsoft.are.jbo.BizObjectManager; -import com.amarsoft.are.jbo.JBOFactory; -import com.amarsoft.are.jbo.JBOTransaction; -import com.amarsoft.awe.util.Transaction; -import com.tenwa.collectaudit.cache.CollectAuditInfoCache; -import com.tenwa.flow.baseBussion.BaseBussiness; - -public class InsertRentPlanStatus extends BaseBussiness{ - public Object run(Transaction Sqlca) throws Exception{ - this.initBussinessParam(Sqlca.getTransaction()); - String flowunid = (String)this.getAttribute("ObjectNo"); - - List boLRITs=JBOFactory.createBizObjectQuery(LC_RENT_INCOME_TEMP.CLASS_NAME,"flowunid=:flowunid").setParameter("flowunid", flowunid).getResultList(false); - BizObjectManager bomLRP = JBOFactory.getBizObjectManager(LC_RENT_PLAN.CLASS_NAME, Sqlca.getTransaction()); - - CollectAuditInfoCache calc = new CollectAuditInfoCache(); - for(int i=0;i boLRITs=JBOFactory.createBizObjectQuery(LC_RENT_INCOME_TEMP.CLASS_NAME,"flowunid=:flowunid").setParameter("flowunid", flowunid).getResultList(false); + BizObjectManager bomLRP = JBOFactory.getBizObjectManager(LC_RENT_PLAN.CLASS_NAME, Sqlca.getTransaction()); + CollectAuditInfoCache calc = new CollectAuditInfoCache(); + for(int i=0;i'' or collect_status is null)") + .setParameter("CONTRACT_ID", contractId).setParameter("PLAN_LIST", planList).executeUpdate(); + }else{ + bomLRP.createQuery("update O set COLLECT_STATUS='տ',COLLECT_MSG='տ' where CONTRACT_ID=:CONTRACT_ID and PLAN_LIST=:PLAN_LIST") + .setParameter("CONTRACT_ID", contractId).setParameter("PLAN_LIST", planList).executeUpdate(); + } + } + String sMessage="true"; + return sMessage; + } +} From d88b4344a720188887478e39d3d518b5cd9c5c2f Mon Sep 17 00:00:00 2001 From: zhangbb Date: Tue, 13 Oct 2020 18:03:52 +0800 Subject: [PATCH 17/17] =?UTF-8?q?1.=E8=B5=84=E9=87=91=E7=BA=A2=E5=86=B2?= =?UTF-8?q?=EF=BC=8C=E7=A7=9F=E9=87=91=E7=BA=A2=E5=86=B2=E6=8F=90=E4=BA=A4?= =?UTF-8?q?=E6=97=B6bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../LCRentIncomeTempToFormalBusiness.java | 155 +++++++++--------- 1 file changed, 78 insertions(+), 77 deletions(-) diff --git a/src_tenwa/com/tenwa/lease/flow/rent/rentreback/LCRentIncomeTempToFormalBusiness.java b/src_tenwa/com/tenwa/lease/flow/rent/rentreback/LCRentIncomeTempToFormalBusiness.java index e54ec7364..fbcd4e640 100644 --- a/src_tenwa/com/tenwa/lease/flow/rent/rentreback/LCRentIncomeTempToFormalBusiness.java +++ b/src_tenwa/com/tenwa/lease/flow/rent/rentreback/LCRentIncomeTempToFormalBusiness.java @@ -1,77 +1,78 @@ -package com.tenwa.lease.flow.rent.rentreback; - -import java.math.BigDecimal; -import java.util.List; -import java.util.Map; - -import jbo.app.tenwa.calc.LC_FUND_INCOME; -import jbo.app.tenwa.calc.LC_FUND_INCOME_TEMP; -import jbo.app.tenwa.calc.LC_RENT_INCOME; -import jbo.app.tenwa.calc.LC_RENT_INCOME_TEMP; -import jbo.app.tenwa.calc.LC_RENT_PLAN; - -import com.amarsoft.are.jbo.BizObject; -import com.amarsoft.are.jbo.BizObjectManager; -import com.amarsoft.are.jbo.JBOFactory; -import com.amarsoft.awe.util.Transaction; -import com.tenwa.comm.util.jboutil.DataOperatorUtil; -import com.tenwa.flow.baseBussion.BaseBussiness; -import com.tenwa.lease.flow.comm.service.LeaseFlowBaseService; -import com.tenwa.lease.flow.comm.service.ServiceOperatorEnum; -import com.tenwa.lease.flow.comm.serviceImp.LeaseFlowBaseServiceImp; - -public class LCRentIncomeTempToFormalBusiness extends BaseBussiness{ - public Object run(Transaction Sqlca) throws Exception{ - this.initBussinessParam(Sqlca); - LeaseFlowBaseService service=new LeaseFlowBaseServiceImp(); - MapfromCondtion=this.getDefaultTempToFormalFromCondtion(); - //ʽ״̬Ϊ״̬ - BizObjectManager fiFormal = JBOFactory.getBizObjectManager(LC_FUND_INCOME.CLASS_NAME); - BizObjectManager fiTemp = JBOFactory.getBizObjectManager(LC_FUND_INCOME_TEMP.CLASS_NAME); - BizObjectManager riFormal = JBOFactory.getBizObjectManager(LC_RENT_INCOME.CLASS_NAME); - BizObjectManager riTemp = JBOFactory.getBizObjectManager(LC_RENT_INCOME_TEMP.CLASS_NAME); - BizObjectManager bom_lrp = JBOFactory.getBizObjectManager(LC_RENT_PLAN.CLASS_NAME); - Sqlca.join(fiFormal); - Sqlca.join(fiTemp); - Sqlca.join(riFormal); - Sqlca.join(riTemp); - Sqlca.join(bom_lrp); - List fits = DataOperatorUtil.getSetJBO(LC_FUND_INCOME_TEMP.CLASS_NAME, fromCondtion, Sqlca); - List rits = DataOperatorUtil.getSetJBO(LC_RENT_INCOME_TEMP.CLASS_NAME, fromCondtion, Sqlca); - String fsql="update O set ROLL_BACK=1 where ID=:ID "; - String tsql="update O set IS_FLOWING=1 where ID=:ID "; - String lsql = "update O set collect_status=:collect_status,collect_msg='' where ID=:ID"; - MapotherProperty=this.getDefaultOtherProperty(); - if(fits.size()>0){ - for(BizObject fit:fits){ - fiFormal.createQuery(fsql).setParameter("ID", fit.getAttribute("INCOME_ID").getString()).executeUpdate(); - fiTemp.createQuery(tsql).setParameter("ID", fit.getAttribute("ID").getString()).executeUpdate(); - } - service.copyFundIncomeInfo(Sqlca, fromCondtion, null, otherProperty, ServiceOperatorEnum.TempToFormal,null); - } - if(rits.size()>0){ - for(BizObject rit:rits){ - riFormal.createQuery(fsql).setParameter("ID", rit.getAttribute("INCOME_ID").getString()).executeUpdate(); - riTemp.createQuery(tsql).setParameter("ID", rit.getAttribute("ID").getString()).executeUpdate(); - } - service.copyRentIncomeInfo(Sqlca, fromCondtion, null, otherProperty, ServiceOperatorEnum.TempToFormal,null); - } - List lrits = riTemp.createQuery("select plan_id from O where flowunid=:flowunid group by plan_id").setParameter("flowunid", this.getAttribute("flowunid").toString()).getResultList(false); - if(lrits.size()>0){ - for(BizObject lrit:lrits){ - String status = ""; - String planId = lrit.getAttribute("plan_id").toString(); - BizObject bo_lrp = bom_lrp.createQuery("select rent from O where id=:id").setParameter("id", planId).getSingleResult(false); - BizObject bo_lri = riFormal.createQuery("select sum(rent) as rent from O where plan_id=:plan_id group by plan_id").setParameter("plan_id", planId).getSingleResult(false); - String lriRent = bo_lri.getAttribute("rent").toString(); - if(new BigDecimal(lriRent).compareTo(new BigDecimal("0"))==1&&new BigDecimal(lriRent).compareTo(new BigDecimal(bo_lrp.getAttribute("rent").toString()))==-1){ - status = "տ"; - } - bom_lrp.createQuery(lsql).setParameter("collect_status", status).setParameter("ID", planId).executeUpdate(); - } - } - String sMessage="true"; - return sMessage; - } -} - +package com.tenwa.lease.flow.rent.rentreback; + +import java.math.BigDecimal; +import java.util.List; +import java.util.Map; + +import jbo.app.tenwa.calc.LC_FUND_INCOME; +import jbo.app.tenwa.calc.LC_FUND_INCOME_TEMP; +import jbo.app.tenwa.calc.LC_RENT_INCOME; +import jbo.app.tenwa.calc.LC_RENT_INCOME_TEMP; +import jbo.app.tenwa.calc.LC_RENT_PLAN; + +import com.amarsoft.are.jbo.BizObject; +import com.amarsoft.are.jbo.BizObjectManager; +import com.amarsoft.are.jbo.JBOFactory; +import com.amarsoft.awe.util.Transaction; +import com.tenwa.comm.util.jboutil.DataOperatorUtil; +import com.tenwa.flow.baseBussion.BaseBussiness; +import com.tenwa.lease.flow.comm.service.LeaseFlowBaseService; +import com.tenwa.lease.flow.comm.service.ServiceOperatorEnum; +import com.tenwa.lease.flow.comm.serviceImp.LeaseFlowBaseServiceImp; + +public class LCRentIncomeTempToFormalBusiness extends BaseBussiness{ + public Object run(Transaction Sqlca) throws Exception{ + this.initBussinessParam(Sqlca); + LeaseFlowBaseService service=new LeaseFlowBaseServiceImp(); + MapfromCondtion=this.getDefaultTempToFormalFromCondtion(); + //ʽ״̬Ϊ״̬ + BizObjectManager fiFormal = JBOFactory.getBizObjectManager(LC_FUND_INCOME.CLASS_NAME); + BizObjectManager fiTemp = JBOFactory.getBizObjectManager(LC_FUND_INCOME_TEMP.CLASS_NAME); + BizObjectManager riFormal = JBOFactory.getBizObjectManager(LC_RENT_INCOME.CLASS_NAME); + BizObjectManager riTemp = JBOFactory.getBizObjectManager(LC_RENT_INCOME_TEMP.CLASS_NAME); + BizObjectManager bom_lrp = JBOFactory.getBizObjectManager(LC_RENT_PLAN.CLASS_NAME); + Sqlca.join(fiFormal); + Sqlca.join(fiTemp); + Sqlca.join(riFormal); + Sqlca.join(riTemp); + Sqlca.join(bom_lrp); + List fits = DataOperatorUtil.getSetJBO(LC_FUND_INCOME_TEMP.CLASS_NAME, fromCondtion, Sqlca); + List rits = DataOperatorUtil.getSetJBO(LC_RENT_INCOME_TEMP.CLASS_NAME, fromCondtion, Sqlca); + String fsql="update O set ROLL_BACK=1 where ID=:ID "; + String tsql="update O set IS_FLOWING=1 where ID=:ID "; + String lsql = "update O set collect_status=:collect_status,collect_msg='' where ID=:ID"; + MapotherProperty=this.getDefaultOtherProperty(); + if(fits.size()>0){ + for(BizObject fit:fits){ + fiFormal.createQuery(fsql).setParameter("ID", fit.getAttribute("INCOME_ID").getString()).executeUpdate(); + fiTemp.createQuery(tsql).setParameter("ID", fit.getAttribute("ID").getString()).executeUpdate(); + } + service.copyFundIncomeInfo(Sqlca, fromCondtion, null, otherProperty, ServiceOperatorEnum.TempToFormal,null); + } + if(rits.size()>0){ + for(BizObject rit:rits){ + riFormal.createQuery(fsql).setParameter("ID", rit.getAttribute("INCOME_ID").getString()).executeUpdate(); + riTemp.createQuery(tsql).setParameter("ID", rit.getAttribute("ID").getString()).executeUpdate(); + } + service.copyRentIncomeInfo(Sqlca, fromCondtion, null, otherProperty, ServiceOperatorEnum.TempToFormal,null); + } + String flowunid= this.getAttribute("FlowUnid").toString(); + List lrits = riTemp.createQuery("select plan_id from O where flowunid=:flowunid group by plan_id").setParameter("flowunid", flowunid).getResultList(false); + if(lrits.size()>0){ + for(BizObject lrit:lrits){ + String status = ""; + String planId = lrit.getAttribute("plan_id").toString(); + BizObject bo_lrp = bom_lrp.createQuery("select rent from O where id=:id").setParameter("id", planId).getSingleResult(false); + BizObject bo_lri = riFormal.createQuery("select sum(rent) as v.rent from O where plan_id=:plan_id group by plan_id").setParameter("plan_id", planId).getSingleResult(false); + String lriRent = bo_lri.getAttribute("rent").toString(); + if(new BigDecimal(lriRent).compareTo(new BigDecimal("0"))==1&&new BigDecimal(lriRent).compareTo(new BigDecimal(bo_lrp.getAttribute("rent").toString()))==-1){ + status = "տ"; + } + bom_lrp.createQuery(lsql).setParameter("collect_status", status).setParameter("ID", planId).executeUpdate(); + } + } + String sMessage="true"; + return sMessage; + } +} +