From ff12c0a56fb2c9fee6381c7e4023aa80226d4c5b Mon Sep 17 00:00:00 2001 From: maliang Date: Wed, 9 Feb 2022 13:44:55 +0800 Subject: [PATCH 1/7] =?UTF-8?q?fix:=E5=82=AC=E5=91=8A=E5=87=BD=E6=89=B9?= =?UTF-8?q?=E9=87=8F=E4=B8=8B=E8=BD=BD=E7=9B=B8=E5=85=B3=E9=9C=80=E6=B1=82?= =?UTF-8?q?=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Flow/Comm/LBContract/AttorneyLetter.jsp | 2 +- .../Flow/Comm/LBContract/ReminderLetter.jsp | 2 +- WebContent/WEB-INF/etc/jbo/jbo_doc.xml | 416 +++++++++--------- .../controller/RentNotinyDeleteAction.java | 4 + .../jbo/app/tenwa/doc/REMINDER_LETTER.java | 27 ++ 5 files changed, 248 insertions(+), 203 deletions(-) create mode 100644 src_jbo/jbo/app/tenwa/doc/REMINDER_LETTER.java diff --git a/WebContent/Tenwa/Lease/Flow/Comm/LBContract/AttorneyLetter.jsp b/WebContent/Tenwa/Lease/Flow/Comm/LBContract/AttorneyLetter.jsp index 17309ef8d..5c92f1a6b 100644 --- a/WebContent/Tenwa/Lease/Flow/Comm/LBContract/AttorneyLetter.jsp +++ b/WebContent/Tenwa/Lease/Flow/Comm/LBContract/AttorneyLetter.jsp @@ -22,7 +22,7 @@ ASObjectWindow dwTemp = new ASObjectWindow(CurPage,doTemp,request); dwTemp.Style="1"; //--设置为Grid风格-- dwTemp.ReadOnly = "1"; - dwTemp.setPageSize(15); + dwTemp.setPageSize(pageSize==null?50:Integer.parseInt(pageSize)); dwTemp.MultiSelect = true; dwTemp.genHTMLObjectWindow(userId); diff --git a/WebContent/Tenwa/Lease/Flow/Comm/LBContract/ReminderLetter.jsp b/WebContent/Tenwa/Lease/Flow/Comm/LBContract/ReminderLetter.jsp index adfa2b118..3897ab3e9 100644 --- a/WebContent/Tenwa/Lease/Flow/Comm/LBContract/ReminderLetter.jsp +++ b/WebContent/Tenwa/Lease/Flow/Comm/LBContract/ReminderLetter.jsp @@ -22,7 +22,7 @@ ASObjectWindow dwTemp = new ASObjectWindow(CurPage,doTemp,request); dwTemp.Style="1"; //--设置为Grid风格-- dwTemp.ReadOnly = "1"; - dwTemp.setPageSize(15); + dwTemp.setPageSize(pageSize==null?50:Integer.parseInt(pageSize)); dwTemp.MultiSelect = true; dwTemp.genHTMLObjectWindow(userId); diff --git a/WebContent/WEB-INF/etc/jbo/jbo_doc.xml b/WebContent/WEB-INF/etc/jbo/jbo_doc.xml index cacb4318d..67578d710 100644 --- a/WebContent/WEB-INF/etc/jbo/jbo_doc.xml +++ b/WebContent/WEB-INF/etc/jbo/jbo_doc.xml @@ -1,170 +1,170 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -186,7 +186,7 @@ - + @@ -195,23 +195,23 @@ - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + @@ -223,8 +223,8 @@ - - + + @@ -233,11 +233,11 @@ - - - - - + + + + + @@ -258,8 +258,8 @@ - - + + @@ -268,12 +268,12 @@ - - + + - - - + + + @@ -381,5 +381,19 @@ - - + + + + + + + + + + + + + + + + diff --git a/src_core/com/tenwa/officetempalte/controller/RentNotinyDeleteAction.java b/src_core/com/tenwa/officetempalte/controller/RentNotinyDeleteAction.java index ccd3179f1..2c777409b 100644 --- a/src_core/com/tenwa/officetempalte/controller/RentNotinyDeleteAction.java +++ b/src_core/com/tenwa/officetempalte/controller/RentNotinyDeleteAction.java @@ -82,6 +82,10 @@ public class RentNotinyDeleteAction { DOCRELATIVE=bom.createQuery(" PROJ_ID=:projectId and OBJECTTYPE='ReminderLetter'").setParameter("projectId",projectId).getSingleResult(false); }else if("AttorneyLetter".equals(objecttype)){//催收服务委托书 DOCRELATIVE=bom.createQuery(" PROJ_ID=:projectId and OBJECTTYPE='AttorneyLetter'").setParameter("projectId",projectId).getSingleResult(false); + }else if("IndictmentAcceleration".equals(objecttype)){//起诉状-加速到期 + DOCRELATIVE=bom.createQuery(" PROJ_ID=:projectId and OBJECTTYPE='IndictmentAcceleration'").setParameter("projectId",projectId).getSingleResult(false); + }else if("IndictmentCancelContract".equals(objecttype)){//起诉状-解除合同 + DOCRELATIVE=bom.createQuery(" PROJ_ID=:projectId and OBJECTTYPE='IndictmentCancelContract'").setParameter("projectId",projectId).getSingleResult(false); }else if("contractInsurance".equals(objecttype)){ DOCRELATIVE=bom.createQuery(" PROJ_ID=:projectId and OBJECTTYPE='contractInsurance' and PLAN_NUMBER=:plan_number").setParameter("projectId",projectId).setParameter("plan_number",plan_number).getSingleResult(false); } diff --git a/src_jbo/jbo/app/tenwa/doc/REMINDER_LETTER.java b/src_jbo/jbo/app/tenwa/doc/REMINDER_LETTER.java new file mode 100644 index 000000000..d64384377 --- /dev/null +++ b/src_jbo/jbo/app/tenwa/doc/REMINDER_LETTER.java @@ -0,0 +1,27 @@ +package jbo.app.tenwa.doc; + +/** +* 文档附件详情 - JBO命名常量类

+* Note: This file is generated by ADE tools, dont modify it.
+ +*/ +public interface REMINDER_LETTER { + /** + * 文档附件详情

+ * 代表本类映射的BizObjectClass + */ + public static final String CLASS_NAME = "jbo.app.tenwa.doc.REMINDER_LETTER"; + /** + * 主键 STRING(32)
+ */ + public static final String ID = "ID"; + /** + * 附件编号 STRING(32)
+ */ + public static final String LIBRARY_ID = "CONTRACT_ID"; + /** + * 文档路径 STRING(500)
+ */ + public static final String FILEPATH = "TYPE"; + +} \ No newline at end of file From 3735fbc4c6597db97b06175c4a715ffe45e78cf6 Mon Sep 17 00:00:00 2001 From: maliang Date: Mon, 14 Feb 2022 13:41:34 +0800 Subject: [PATCH 2/7] =?UTF-8?q?fix:=E6=96=B0=E5=A2=9E=E8=B5=B7=E8=AF=89?= =?UTF-8?q?=E7=8A=B6=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../LBContract/IndictmentAcceleration.jsp | 149 ++++++++++++++++++ .../LBContract/IndictmentCancelContract.jsp | 149 ++++++++++++++++++ 2 files changed, 298 insertions(+) create mode 100644 WebContent/Tenwa/Lease/Flow/Comm/LBContract/IndictmentAcceleration.jsp create mode 100644 WebContent/Tenwa/Lease/Flow/Comm/LBContract/IndictmentCancelContract.jsp diff --git a/WebContent/Tenwa/Lease/Flow/Comm/LBContract/IndictmentAcceleration.jsp b/WebContent/Tenwa/Lease/Flow/Comm/LBContract/IndictmentAcceleration.jsp new file mode 100644 index 000000000..cacf69d59 --- /dev/null +++ b/WebContent/Tenwa/Lease/Flow/Comm/LBContract/IndictmentAcceleration.jsp @@ -0,0 +1,149 @@ +<%@page import="jbo.app.tenwa.calc.LC_CALC_CONDITION_TEMP"%> +<%@ page contentType="text/html; charset=GBK"%> +<%@ include file="/Frame/resources/include/include_begin_list.jspf"%> +<%@ page import="com.tenwa.doc.action.DocListInitAction" %> +<%@ page import="com.amarsoft.app.lc.workflow.action.GetFlowAction" %> +<%@ page import="com.amarsoft.app.util.*" %> +<% + /* + Author: undefined 2016-09-01 + Content: 起诉状-加速到期 IndictmentAcceleration.jsp + History Log: + */ + + String userId = CurUser.getUserID(); + String orgId =CurUser.getOrgID(); + System.out.print(orgId); + String falg = "true"; + String compClientID = request.getParameter("CompClientID"); + ASObjectModel doTemp = new ASObjectModel("IndictmentAcceleration"); + + + ASObjectWindow dwTemp = new ASObjectWindow(CurPage,doTemp,request); + dwTemp.Style="1"; //--设置为Grid风格-- + dwTemp.ReadOnly = "1"; + dwTemp.setPageSize(pageSize==null?50:Integer.parseInt(pageSize)); + dwTemp.MultiSelect = true; + dwTemp.genHTMLObjectWindow(userId); + + //0、是否展示 1、 权限控制 2、 展示类型 3、按钮显示名称 4、按钮解释文字 5、按钮触发事件代码 6、 7、 8、 9、图标,CSS层叠样式 10、风格 + String sButtons[][] =null; + sButtons=new String[][]{ + {"true","All","Button","生成起诉状","生成起诉状","generateQuotation()","","","","btn_icon_generate"}, + {"true","All","Button","批量下载","批量下载","lotdown()","","","","btn_icon_down"}, + {"false","All","Button","公司盖章","公司盖章","stamp()","","","",""}, + }; + +%><%@include file="/Frame/resources/include/ui/include_list.jspf"%> + +<%@ include file="/Frame/resources/include/include_end.jspf"%> \ No newline at end of file diff --git a/WebContent/Tenwa/Lease/Flow/Comm/LBContract/IndictmentCancelContract.jsp b/WebContent/Tenwa/Lease/Flow/Comm/LBContract/IndictmentCancelContract.jsp new file mode 100644 index 000000000..693d267b8 --- /dev/null +++ b/WebContent/Tenwa/Lease/Flow/Comm/LBContract/IndictmentCancelContract.jsp @@ -0,0 +1,149 @@ +<%@page import="jbo.app.tenwa.calc.LC_CALC_CONDITION_TEMP"%> +<%@ page contentType="text/html; charset=GBK"%> +<%@ include file="/Frame/resources/include/include_begin_list.jspf"%> +<%@ page import="com.tenwa.doc.action.DocListInitAction" %> +<%@ page import="com.amarsoft.app.lc.workflow.action.GetFlowAction" %> +<%@ page import="com.amarsoft.app.util.*" %> +<% + /* + Author: undefined 2016-09-01 + Content: 起诉状-解除合同 IndictmentCancelContract.jsp + History Log: + */ + + String userId = CurUser.getUserID(); + String orgId =CurUser.getOrgID(); + System.out.print(orgId); + String falg = "true"; + String compClientID = request.getParameter("CompClientID"); + ASObjectModel doTemp = new ASObjectModel("IndictmentCancelContract"); + + + ASObjectWindow dwTemp = new ASObjectWindow(CurPage,doTemp,request); + dwTemp.Style="1"; //--设置为Grid风格-- + dwTemp.ReadOnly = "1"; + dwTemp.setPageSize(pageSize==null?50:Integer.parseInt(pageSize)); + dwTemp.MultiSelect = true; + dwTemp.genHTMLObjectWindow(userId); + + //0、是否展示 1、 权限控制 2、 展示类型 3、按钮显示名称 4、按钮解释文字 5、按钮触发事件代码 6、 7、 8、 9、图标,CSS层叠样式 10、风格 + String sButtons[][] =null; + sButtons=new String[][]{ + {"true","All","Button","生成起诉状","生成起诉状","generateQuotation()","","","","btn_icon_generate"}, + {"true","All","Button","批量下载","批量下载","lotdown()","","","","btn_icon_down"}, + {"false","All","Button","公司盖章","公司盖章","stamp()","","","",""}, + }; + +%><%@include file="/Frame/resources/include/ui/include_list.jspf"%> + +<%@ include file="/Frame/resources/include/include_end.jspf"%> \ No newline at end of file From 40208f6be7349216384a5319b92fb9b7101a19a6 Mon Sep 17 00:00:00 2001 From: zhanglei Date: Fri, 18 Feb 2022 11:02:48 +0800 Subject: [PATCH 3/7] =?UTF-8?q?=E4=BC=91=E7=9C=A0=E8=BF=98=E6=AC=BE?= =?UTF-8?q?=E5=8D=8F=E8=AE=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../LCRentDormantInfo.jsp | 27 +- .../RentDormantFile.jsp | 194 +++++++ WebContent/WEB-INF/etc/jbo/jbo_calc.xml | 17 + .../action/alpha/RentDormantAction.java | 141 +++++ .../action/alpha/RentDormantDeleteAction.java | 97 ++++ .../action/alpha/RentDormantSignAction.java | 191 +++++++ .../jbo/app/tenwa/calc/LB_RENT_DORMANT.java | 44 ++ .../CreditAuditHolidayBatch.java | 495 ++++++++++-------- 8 files changed, 995 insertions(+), 211 deletions(-) create mode 100644 WebContent/Accounting/LoanSimulation_dormant/RentDormantFile.jsp create mode 100644 src/com/tenwa/channelportal/action/alpha/RentDormantAction.java create mode 100644 src/com/tenwa/channelportal/action/alpha/RentDormantDeleteAction.java create mode 100644 src/com/tenwa/channelportal/action/alpha/RentDormantSignAction.java create mode 100644 src_jbo/jbo/app/tenwa/calc/LB_RENT_DORMANT.java diff --git a/WebContent/Accounting/LoanSimulation_dormant/LCRentDormantInfo.jsp b/WebContent/Accounting/LoanSimulation_dormant/LCRentDormantInfo.jsp index 877e469d8..2d31ddcf1 100644 --- a/WebContent/Accounting/LoanSimulation_dormant/LCRentDormantInfo.jsp +++ b/WebContent/Accounting/LoanSimulation_dormant/LCRentDormantInfo.jsp @@ -36,13 +36,16 @@ String phaseNo = CurPage.getParameter("PhaseNo"); String settleMethod=""; String rentOrRate=""; - BizObject condition=null; - if(paymentNumber==null){ - condition=JBOFactory.createBizObjectQuery("jbo.app.tenwa.calc.LC_CALC_CONDITION_TEMP","flowunid=:flowunid").setParameter("flowunid", flowunid).getSingleResult(false); + String zcContractNum=""; + BizObject condition=JBOFactory.createBizObjectQuery("jbo.app.tenwa.calc.LC_CALC_CONDITION_TEMP","flowunid=:flowunid").setParameter("flowunid", flowunid).getSingleResult(false); + if(paymentNumber==null ){ paymentNumber=condition.getAttribute("payment_number").getString(); settleMethod=condition.getAttribute("SETTLE_METHOD").getString(); rentOrRate=condition.getAttribute("RENT_OR_RATE").getString(); } + String contractId = condition.getAttribute("CONTRACT_ID").getString(); + BizObject contract = JBOFactory.createBizObjectQuery("jbo.com.tenwa.lease.comm.LB_CONTRACT_INFO","ID=:CONTRACT_ID").setParameter("CONTRACT_ID", contractId).getSingleResult(false); + zcContractNum=contract.getAttribute("ZC_CONTRACT_NUMBER").getString(); String sTempletNo = "LCRentDormantInfo";//--模板号-- ASObjectModel doTemp = new ASObjectModel(sTempletNo); @@ -93,6 +96,10 @@ %><%@ include file="/Frame/resources/include/ui/include_info.jspf"%> +<%/*~END~*/%> + + + + +<%/*~BEGIN~可编辑区~[Editable=false;CodeAreaID=List07;Describe=自定义函数;]~*/%> + +<%/*~END~*/%> + + + + +<%/*~BEGIN~可编辑区~[Editable=false;CodeAreaID=List08;Describe=页面装载时,进行初始化;]~*/%> + +<%/*~END~*/%> +<%@ include file="/Frame/resources/include/include_end.jspf"%> \ No newline at end of file diff --git a/WebContent/WEB-INF/etc/jbo/jbo_calc.xml b/WebContent/WEB-INF/etc/jbo/jbo_calc.xml index 3db229a09..ed8636251 100644 --- a/WebContent/WEB-INF/etc/jbo/jbo_calc.xml +++ b/WebContent/WEB-INF/etc/jbo/jbo_calc.xml @@ -4622,6 +4622,23 @@ + + + + + + + + + + + + + + + + + diff --git a/src/com/tenwa/channelportal/action/alpha/RentDormantAction.java b/src/com/tenwa/channelportal/action/alpha/RentDormantAction.java new file mode 100644 index 000000000..67eafae31 --- /dev/null +++ b/src/com/tenwa/channelportal/action/alpha/RentDormantAction.java @@ -0,0 +1,141 @@ +package com.tenwa.channelportal.action.alpha; + +import com.amarsoft.app.util.StringUtil; +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.ASResultSet; +import com.amarsoft.awe.util.SqlObject; +import com.amarsoft.awe.util.Transaction; +import com.tenwa.comm.util.jboutil.DataOperatorUtil; +import com.tenwa.reckon.util.UUIDUtil; +import com.tenwa.util.SerialNumberUtil; +import jbo.app.tenwa.calc.LB_RENT_DORMANT; +import jbo.app.tenwa.calc.LC_RENT_PLAN_TEMP; +import jbo.app.tenwa.doc.LB_DOC_CONTRACT_LIST; +import jbo.com.tenwa.lease.comm.LB_GUARANTEE_UNIT_TEMP; +import org.apache.commons.lang3.StringUtils; + +import java.util.HashMap; +import java.util.Map; + +/** + * 休眠还款申请-信息保存 + */ +public class RentDormantAction { + + String flowUnid;;//流程编号 + String contractDate;;//合同签署日期 + String zcContractNum;;//合同签署日期 + + + public String getZcContractNum() { + return zcContractNum; + } + + public void setZcContractNum(String zcContractNum) { + this.zcContractNum = zcContractNum; + } + + public String getContractDate() { + return contractDate; + } + + public void setContractDate(String contractDate) { + this.contractDate = contractDate; + } + + public String getFlowUnid() { + return flowUnid; + } + + public void setFlowUnid(String flowUnid) { + this.flowUnid = flowUnid; + } + + /** + * 休眠还款信息保存 + * @param tx + * @throws Exception + */ + public String saveRentDormantAction(JBOTransaction tx) throws Exception{ + String res = ""; + try { + System.out.println("saveRentDormantAction-----------------------flowUnid="+flowUnid); + BizObjectManager lcctBm = JBOFactory.getBizObjectManager(jbo.app.tenwa.calc.LC_CALC_CONDITION_TEMP.CLASS_NAME); + BizObject lcctBo = lcctBm.createQuery("FLOWUNID=:FLOWUNID ") + .setParameter("FLOWUNID", flowUnid).getSingleResult(false); + String contractId = lcctBo.getAttribute("CONTRACT_ID").getString(); + BizObjectManager lciBm = JBOFactory.getBizObjectManager(jbo.com.tenwa.lease.comm.LB_CONTRACT_INFO.CLASS_NAME); + BizObject lciBo = lciBm.createQuery("ID=:CONTRACT_ID ") + .setParameter("CONTRACT_ID", contractId).getSingleResult(false); + String contractNo = lciBo.getAttribute("CONTRACT_NO").getString(); + String projectId = lciBo.getAttribute("PROJECT_ID").getString(); + System.out.println("saveRentDormantAction-----------------------contractNo="+contractNo); + System.out.println("saveRentDormantAction-----------------------contractNo2="+contractNo); + String rentDormantNum = null; + String contractDate2 = null; + String zcContractNum2 = null; + String rentDormantId = null; + // TODO: 2022/2/15 休眠还款信息保存 + BizObjectManager bomLRD = JBOFactory.getFactory().getManager(LB_RENT_DORMANT.CLASS_NAME,tx); + BizObject bolLRD = bomLRD.createQuery("FLOWUNID=:FLOWUNID ") + .setParameter("FLOWUNID", flowUnid).getSingleResult(true); + if(bolLRD != null){ + rentDormantNum = bolLRD.getAttribute("rent_dormant_num").getString(); + contractDate2 = bolLRD.getAttribute("contract_date").getString(); + zcContractNum2 = bolLRD.getAttribute("zc_contract_num").getString(); + rentDormantId = bolLRD.getAttribute("ID").getString(); + if(rentDormantNum != null){ + if(contractDate2 == null || StringUtils.isEmpty(contractDate2) || !contractDate2.equals(contractDate) + || zcContractNum2 == null || StringUtils.isEmpty(zcContractNum2) || !zcContractNum2.equals(zcContractNum)){ + bolLRD.setAttributeValue("contract_date", contractDate); + bolLRD.setAttributeValue("zc_contract_num", zcContractNum); + bomLRD.saveObject(bolLRD);//修改数据 + } + return rentDormantNum; + } + } + rentDormantNum = createContractNo(lciBo, tx); + bolLRD = bomLRD.newObject(); + bolLRD.setAttributeValue("ID", UUIDUtil.getUUID()); + bolLRD.setAttributeValue("PROJECT_ID", projectId); + bolLRD.setAttributeValue("CONTRACT_ID", contractId); + bolLRD.setAttributeValue("FLOWUNID", flowUnid); + bolLRD.setAttributeValue("rent_dormant_num", rentDormantNum); + bolLRD.setAttributeValue("contract_date", contractDate); + bolLRD.setAttributeValue("zc_contract_num", zcContractNum); + bomLRD.saveObject(bolLRD); + res = rentDormantNum; + }catch (Exception e){ + e.printStackTrace(); + } + return res; + } + + /** + * 休眠还款协议生成 + * @return + */ + private String createContractNo(BizObject lciBo, JBOTransaction tx) throws Exception{ + String area_code=lciBo.getAttribute("AREA_CODE").getString(); + String subjectid=lciBo.getAttribute("subjectid").getString(); + String dept="BQAP("; + if(area_code.equals(null)||area_code.equals("")){ + area_code="0"; + } + dept+="A"; + if(lciBo.getAttribute("LEAS_FORM").toString().equals("01")){//直租 + dept+="Z"; + }else{//回租 + dept+="H"; + } + if("d989246c11c111eaaa0000163e0e11e6".equals(subjectid)){ + dept+=")TJ"; + }else{ + dept+=")SZ"; + } + return SerialNumberUtil.getContractSerialNaumber(dept,area_code, tx); + } +} \ No newline at end of file diff --git a/src/com/tenwa/channelportal/action/alpha/RentDormantDeleteAction.java b/src/com/tenwa/channelportal/action/alpha/RentDormantDeleteAction.java new file mode 100644 index 000000000..2cc88b8d8 --- /dev/null +++ b/src/com/tenwa/channelportal/action/alpha/RentDormantDeleteAction.java @@ -0,0 +1,97 @@ +package com.tenwa.channelportal.action.alpha; + +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.tenwa.comm.util.jboutil.DataOperatorUtil; +import jbo.app.tenwa.doc.LB_DOC_CONTRACT_LIST; +import jbo.com.tenwa.lease.comm.LB_GUARANTEE_UNIT_TEMP; + +import java.util.HashMap; +import java.util.Map; + +/** + * 删除征信合同记录 + */ +public class RentDormantDeleteAction { + + String objectType;//文件类型 + String planNumber;//项目编号 + String flowUnid;;//流程编号 + + + public String getFlowUnid() { + return flowUnid; + } + + public void setFlowUnid(String flowUnid) { + this.flowUnid = flowUnid; + } + + public String getObjectType() { + return objectType; + } + + public void setObjectType(String objectType) { + this.objectType = objectType; + } + + public String getPlanNumber() { + return planNumber; + } + + public void setPlanNumber(String planNumber) { + this.planNumber = planNumber; + } + + /** + * 删除征信授权文件 + * @param tx + * @throws Exception + */ + public void deleteRentDormant(JBOTransaction tx) throws Exception{ + BizObjectManager bom = JBOFactory.getBizObjectManager(jbo.app.tenwa.doc.LB_DOCRELATIVE.CLASS_NAME); + BizObject lbDocBiz = bom.createQuery("OBJECTTYPE='contractRentDormant' and plan_number=:planNumber ") + .setParameter("objectType",objectType).setParameter("planNumber",planNumber).getSingleResult(false); + if(null != lbDocBiz){ + String lbDocBizId = lbDocBiz.getAttribute("id").toString(); + BizObjectManager bom1 = JBOFactory.getBizObjectManager(jbo.app.tenwa.doc.LB_DOCLIBRARY.CLASS_NAME); + String lbDocLibraryId = bom1.createQuery("relative_id=:relative_id").setParameter("relative_id", lbDocBizId).getSingleResult(false).getAttribute("id").toString(); + BizObjectManager bom2 = JBOFactory.getBizObjectManager(jbo.app.tenwa.doc.LB_DOCATTRIBUTE.CLASS_NAME); + String docAttributeId = bom2.createQuery("library_id=:library_id").setParameter("library_id", lbDocLibraryId).getSingleResult(false).getAttribute("id").toString(); + BizObjectManager contBom = JBOFactory.getBizObjectManager(LB_DOC_CONTRACT_LIST.CLASS_NAME, tx); + // 查询lb_doc_contract_list表 +// BizObject bo = contBom.createQuery("attribute_id=:attributeId and file_flag='yes' and sendprocess='1' ") + BizObject bo = contBom.createQuery("attribute_id=:attributeId") + .setParameter("attributeId", docAttributeId).getSingleResult(false); +// if(null == bo){ + if(null != bo){ + Map condtion= new HashMap(); + condtion.put("id", lbDocBizId); + DataOperatorUtil.deleteJBOByCondtion(jbo.app.tenwa.doc.LB_DOCRELATIVE.CLASS_NAME, condtion, tx); + condtion.clear(); + condtion.put("id", lbDocLibraryId); + DataOperatorUtil.deleteJBOByCondtion(jbo.app.tenwa.doc.LB_DOCLIBRARY.CLASS_NAME, condtion, tx); + condtion.clear(); + condtion.put("id", docAttributeId); + DataOperatorUtil.deleteJBOByCondtion(jbo.app.tenwa.doc.LB_DOCATTRIBUTE.CLASS_NAME, condtion, tx); + } + } + } + + /** + * 判断担保人是否为法人 + * @param tx + * @throws Exception + */ + public String checkCreditAuth(JBOTransaction tx) throws Exception{ + BizObjectManager pbm = JBOFactory.getBizObjectManager(LB_GUARANTEE_UNIT_TEMP.CLASS_NAME, tx); + BizObject pbo = pbm.createQuery("FLOWUNID=:flowUnid") + .setParameter("flowUnid", flowUnid).getSingleResult(true); + if(null == pbo){ + return ""; + } + return pbo.getAttribute("CERTTYPE").toString(); + } +} \ No newline at end of file diff --git a/src/com/tenwa/channelportal/action/alpha/RentDormantSignAction.java b/src/com/tenwa/channelportal/action/alpha/RentDormantSignAction.java new file mode 100644 index 000000000..150246532 --- /dev/null +++ b/src/com/tenwa/channelportal/action/alpha/RentDormantSignAction.java @@ -0,0 +1,191 @@ +package com.tenwa.channelportal.action.alpha; + +import com.alibaba.fastjson.JSONObject; +import com.amarsoft.are.jbo.*; +import com.tenwa.app.dao.ContractSignInfo; +import com.tenwa.app.manage.qiyuesuo.v2.ContractSignEnums; +import com.tenwa.app.manage.qiyuesuo.v2.ContractSignVtwoUtils; +import com.tenwa.app.manage.qiyuesuo.v2.QYSParams; +import com.tenwa.channelportal.action.generativecontract.WordToPDFUtil; +import jbo.app.tenwa.doc.LB_DOCATTRIBUTE; +import jbo.app.tenwa.doc.LB_DOCLIBRARY; +import jbo.app.tenwa.doc.LB_DOCRELATIVE; +import org.apache.log4j.Logger; + +import java.io.File; + +public class RentDormantSignAction { + + private static Logger logger=Logger.getLogger(RentDormantSignAction.class); + + private String projectId; + + private String planNumber;; + + private String contractNo; + + private String contractId; + + private String subjectId; + + private String tempId; + + public String getPlanNumber() { + return planNumber; + } + + public void setPlanNumber(String planNumber) { + this.planNumber = planNumber; + } + + public String getContractNo() { + return contractNo; + } + + public void setContractNo(String contractNo) { + this.contractNo = contractNo; + } + + public String getProjectId() { + return projectId; + } + + public void setProjectId(String projectId) { + this.projectId = projectId; + } + + public String getContractId() { + return contractId; + } + + public void setContractId(String contractId) { + this.contractId = contractId; + } + + public String getSubjectId() { + return subjectId; + } + + public void setSubjectId(String subjectId) { + this.subjectId = subjectId; + } + + public String getTempId() { + return tempId; + } + + public void setTempId(String tempId) { + this.tempId = tempId; + } + + /** + * 保险委托授权书附件用LibreOffice实现word转换pdf + * word转换pdf + * @throws JBOException + */ + @SuppressWarnings({ "unchecked", "static-access" }) + public String wordToPdfRentDormant(JBOTransaction tx) throws JBOException { + BizObjectManager bom=JBOFactory.getBizObjectManager(LB_DOCRELATIVE.CLASS_NAME); + BizObject DOCRELATIVE=bom.createQuery(" OBJECTTYPE='contractRentDormant' and plan_number=:planNumber ").setParameter("planNumber", planNumber).getSingleResult(false); + BizObjectManager attrBom=JBOFactory.getBizObjectManager(LB_DOCATTRIBUTE.CLASS_NAME); + BizObject attrBo=null; + WordToPDFUtil wordTopdf = new WordToPDFUtil(); + File file = null; + Boolean result = null; + String sql = ""; + try { + if (DOCRELATIVE != null) { + String DOCRELATIVEid=DOCRELATIVE.getAttribute("id").toString(); + BizObjectManager bom1=JBOFactory.getBizObjectManager(LB_DOCLIBRARY.CLASS_NAME); + String DOCLIBRARYid=bom1.createQuery("relative_id=:relative_id").setParameter("relative_id", DOCRELATIVEid).getSingleResult(false).getAttribute("id").toString(); + attrBo = attrBom.createQuery("library_id=:library_id").setParameter("library_id", DOCLIBRARYid).getSingleResult(true); + + String path = attrBo.getAttribute("FULLPATH").toString(); + String lastFilePath = path.replace(".docx", ".pdf"); + File filePath = new File(path); + if(!filePath.exists()){ + logger.info("word转换pdf的源文件不存在"); + } + String lastFilePathpdf = filePath.getParent(); + try { + result = wordTopdf.Word2Pdf(path, lastFilePathpdf); + } catch (Exception e) { + result = false; + e.printStackTrace(); + } + if (result) { + file =new File(lastFilePath); + attrBo.setAttributeValue("FULLPATH",attrBo.getAttribute("FULLPATH").toString().replace(".docx", ".pdf")); + attrBo.setAttributeValue("FILENAME",attrBo.getAttribute("FILENAME").toString().replace(".docx", ".pdf")); + attrBo.setAttributeValue("FILEPATH",attrBo.getAttribute("FILEPATH").toString().replace(".docx", ".pdf")); + attrBo.setAttributeValue("FileSize",file.length()); + attrBo.setAttributeValue("CONTENT_TYPE","application/pdf"); + attrBom.saveObject(attrBo); + } + } + + } catch (JBOException e) { + e.printStackTrace(); + } + return attrBo.getAttribute("ID").toString(); + } + + + /** + * 休眠还款协议盖章:对接契约锁2.0 + * @param tx + * @return + * @throws Exception + */ + public String claimSignRentDormantTwo(JBOTransaction tx) throws Exception { + logger.info("claimSignRentDormantTwo 休眠还款协议盖章:对接契约锁2.0 开始 0126"); + String libraryid=""; + BizObjectManager bom=JBOFactory.getBizObjectManager(LB_DOCRELATIVE.CLASS_NAME); + BizObject DOCRELATIVE=bom.createQuery("OBJECTTYPE='contractRentDormant' and CONTRACT_ID=:contractid ").setParameter("contractid", contractId).getSingleResult(false); + logger.info("claimSignRentDormantTwo 查询文件关联信息"); + if (DOCRELATIVE != null) { + logger.info("claimSignRentDormantTwo 查询文件关联信息不为空时"); + String DOCRELATIVEid=DOCRELATIVE.getAttribute("id").toString(); + BizObjectManager bom1=JBOFactory.getBizObjectManager(LB_DOCLIBRARY.CLASS_NAME); + libraryid=bom1.createQuery("relative_id=:relative_id").setParameter("relative_id", DOCRELATIVEid).getSingleResult(false).getAttribute("id").toString(); + logger.info("claimSignRentDormantTwo 查询文件关联信息libraryid="+libraryid); + } + BizObjectManager contBom = JBOFactory.getBizObjectManager(LB_DOCATTRIBUTE.CLASS_NAME, tx); + ContractSignInfo con = null; + BizObject bo = null; + String info=""; + try{ + bo = contBom.createQuery("library_id=:libraryid").setParameter("libraryid", libraryid).getSingleResult(true); + logger.info("claimSignRentDormantTwo 查询文件信息"); + if(bo != null){ + logger.info("claimSignRentDormantTwo 查询文件信息不为空时"); + String fileName = bo.getAttribute("FILENAME").toString(); + String filePath = bo.getAttribute("FULLPATH").toString(); + logger.info("claimSignRentDormantTwo fileName="+fileName); + logger.info("claimSignRentDormantTwo filePath="+filePath); + ContractSignVtwoUtils contractSignVtwoUtils = new ContractSignVtwoUtils(); + logger.info("claimSignRentDormantTwo 发起公司盖章"); + QYSParams qysParams = new QYSParams(); + qysParams.setList(null);//手签,无需传承租人、共同申请人、担保人信息 + qysParams.setContractSignTypeEnum(ContractSignEnums.ContractSignTypeEnum.SIGNATURE_DEFAULT);//客户手签 + qysParams.setFileName(fileName); + qysParams.setFilePath(filePath); + qysParams.setSubjectId(subjectId); + qysParams.setTempId(tempId);//合同模板id + JSONObject resJson = contractSignVtwoUtils.sign(qysParams); + if (null == resJson) { + logger.warn("claimSignRentDormantTwo 20210415 调用契约锁盖章异常,返回盖章失败"); + return "error"; + } + logger.info("claimSignRentDormantTwo 20210415 调用契约锁盖章成功,res=" + resJson.toJSONString()); + return "success"; + } else { + return "error"; + } + } catch (Exception e) { + logger.error("claimSignInsuranceTwo 系统错误,错误信息: ", e); + e.printStackTrace(); + return "error"; + } + } +} \ No newline at end of file diff --git a/src_jbo/jbo/app/tenwa/calc/LB_RENT_DORMANT.java b/src_jbo/jbo/app/tenwa/calc/LB_RENT_DORMANT.java new file mode 100644 index 000000000..db3bf9765 --- /dev/null +++ b/src_jbo/jbo/app/tenwa/calc/LB_RENT_DORMANT.java @@ -0,0 +1,44 @@ +package jbo.app.tenwa.calc; + +/** +* 休眠还款协议信息表 - JBO命名常量类

+* Note: This file is generated by ADE tools, dont modify it.
+ +*/ +public interface LB_RENT_DORMANT { + /** + * 休眠租金临时表

+ * 代表本类映射的BizObjectClass + */ + public static final String CLASS_NAME = "jbo.app.tenwa.calc.LB_RENT_DORMANT"; + /** + * 标识 STRING(32)
+ */ + public static final String ID = "ID"; + /** + * 流程编号 STRING(32)
+ */ + public static final String FLOWUNID = "FLOWUNID"; + /** + * 项目编号 STRING(32)
+ */ + public static final String PROJECT_ID = "PROJECT_ID"; + /** + * 合同编号 STRING(32)
+ */ + public static final String CONTRACT_ID = "CONTRACT_ID"; + /** + * 中车合同编号 STRING(32)
+ */ + public static final String zc_contract_num = "zc_contract_num"; + /** + * 休眠还款协议编号 STRING(32)
+ */ + public static final String rent_dormant_num = "rent_dormant_num"; + + /** + * 合同签署时间 STRING(32)
+ */ + public static final String contract_date = "contract_date"; + +} \ No newline at end of file diff --git a/src_tenwa/com/tenwa/lease/app/quartzmession/CreditAuditHolidayBatch.java b/src_tenwa/com/tenwa/lease/app/quartzmession/CreditAuditHolidayBatch.java index b3496e516..4b6cfd401 100644 --- a/src_tenwa/com/tenwa/lease/app/quartzmession/CreditAuditHolidayBatch.java +++ b/src_tenwa/com/tenwa/lease/app/quartzmession/CreditAuditHolidayBatch.java @@ -5,7 +5,9 @@ import com.amarsoft.awe.util.SqlObject; import com.amarsoft.awe.util.Transaction; import com.amarsoft.dict.als.cache.CacheLoaderFactory; import com.tenwa.lease.app.quartzmession.audit.AuditOrderEnums; +import com.tenwa.reckon.util.DateUtil; import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.time.DateUtils; import org.apache.log4j.LogManager; import org.apache.log4j.Logger; import org.quartz.Job; @@ -24,11 +26,16 @@ public class CreditAuditHolidayBatch implements Job{ private static final Logger logger = LogManager.getLogger(CreditAuditHolidayBatch.class);// 引入logger日志 public void execute(JobExecutionContext arg0) throws JobExecutionException { - logger.info("【信审考核统计】【CreditAuditHolidayBatch】【开始】<<<<<<<<<<<<<: 2020062022"); - insertStOrder(); - deleteCreditAudit(); - initDetail(); - updateDetail(); + logger.info("【信审考核统计】【CreditAuditHolidayBatch】【开始】<<<<<<<<<<<<<: CreditAuditHolidayBatch20211118"); + long beginTime = System.currentTimeMillis(); + String begin = DateUtil.getSystemDateDetailTime(); +// insertStOrder(); + int preDayCount = 30;//增量更新30天前数据 +// int preDayCount = 345;//增量更新345天前数据 + logger.info("【信审考核统计】【CreditAuditHolidayBatch】【开始】<<<<<<<<<<<<<: CreditAuditHolidayBatch20211124preDayCount=" + preDayCount); + deleteCreditAudit(preDayCount); + initDetail(preDayCount); + updateDetail(preDayCount); initOrderAuditDay(); saveOrderAuditDay(); updateOrderAuditDay(); @@ -36,7 +43,9 @@ public class CreditAuditHolidayBatch implements Job{ savePaymentOrderAuditDay(); updatePaymentOrderAuditDay(); updateCreditAuditType(); - logger.info("【信审考核统计】【CreditAuditHolidayBatch】【完成】<<<<<<<<<<<<<: "); + long excuteTime = System.currentTimeMillis() - beginTime; + logger.info("【信审考核统计】【CreditAuditHolidayBatch】【完成】<<<<<<<<<<<<<: beginTime=【" + begin + "】 endTime=【" + DateUtil.getSystemDateDetailTime() + + "】 CreditAuditHolidayBatch20211118 -- excuteTime=" + excuteTime/60000); } /** @@ -187,13 +196,14 @@ public class CreditAuditHolidayBatch implements Job{ * 添加审核流程记录明细 * @return */ - private void deleteCreditAudit(){ + private void deleteCreditAudit(int preDayCount){ Transaction Sqlca=null; try{ logger.info("【信审考核统计】【deleteCreditAudit】数据清空执行开始<<<<<<<<<<<<<"); Sqlca = Transaction.createTransaction(CacheLoaderFactory.getDataSource()); //初始化信审考核明细表 - String delSql="truncate table st_credit_audit_order_detail"; + String stBeginTime = queryStBeginTime(preDayCount); + String delSql="delete from st_credit_audit_order_detail where begintime > '"+ stBeginTime +"'"; String delSql2="truncate table st_credit_audit_order"; String delSql3="truncate table st_payment_audit_order"; Sqlca.executeSQL(new SqlObject(delSql)); @@ -263,16 +273,17 @@ public class CreditAuditHolidayBatch implements Job{ * 添加审核流程记录明细 * @return */ - private void initDetail(){ + private void initDetail(int preDayCount){ Transaction Sqlca=null; try{ logger.info("【信审考核统计】【initDetail】初始化订单明细记录执行开始<<<<<<<<<<<<<"); Sqlca = Transaction.createTransaction(CacheLoaderFactory.getDataSource()); + Map listHoliday = listHoliday(Sqlca); + logger.info("【考核统计】【initDetail】汇总假期信息列表<<<< listHoliday.size : " + listHoliday.keySet().size()); //初始化信审考核明细表 - List typeEnumList = AuditOrderEnums.AuditTypeEnum.findCreditTypeList(); for(AuditOrderEnums.AuditTypeEnum auditTypeEnum : AuditOrderEnums.AuditTypeEnum.values()){ logger.info("【考核统计】【initDetail】初始化订单明细记录执行开始<<【"+auditTypeEnum.getFlowName()+"】<< :" + auditTypeEnum.getDesc()); - initDetail(Sqlca, auditTypeEnum); + initDetail(Sqlca, auditTypeEnum, preDayCount, listHoliday); } Sqlca.commit(); logger.info("【信审考核统计】【initDetail】初始化订单明细记录执行完成<<<<<<<<<<<<"); @@ -302,7 +313,7 @@ public class CreditAuditHolidayBatch implements Job{ * 修改审核明细的创建时间 * @return */ - private void updateDetail(){ + private void updateDetail(int preDayCount){ Transaction Sqlca=null; try{ logger.info("【信审考核统计】【updateDetail】修改订单明细中的创建时间执行开始<<<<<<<<<<<<<"); @@ -311,9 +322,9 @@ public class CreditAuditHolidayBatch implements Job{ List typeEnumList = AuditOrderEnums.AuditTypeEnum.findCreditTypeList(); for(AuditOrderEnums.AuditTypeEnum auditTypeEnum : typeEnumList){ logger.info("【信审考核统计】【updateDetail】修改订单明细中的--创建时间开始<<【信审部分】"); - updateDetail(Sqlca, auditTypeEnum); + updateDetail(Sqlca, auditTypeEnum, preDayCount); logger.info("【信审考核统计】【updateDetail】修改订单明细中的--审核时间开始<<【信审部分】"); - updateDetailAuditDay(Sqlca, auditTypeEnum); + updateDetailAuditDay(Sqlca, auditTypeEnum, preDayCount); } Sqlca.commit(); logger.info("【信审考核统计】【updateDetail】修改订单明细中的创建时间执行完成<<<<<<<<<<<<<"); @@ -445,16 +456,43 @@ public class CreditAuditHolidayBatch implements Job{ } + /** * 添加审核流程记录明细 * @return * @throws Exception */ - public String initDetail(Transaction Sqlca, AuditOrderEnums.AuditTypeEnum auditTypeEnum) throws Exception { + public String initDetail(Transaction Sqlca, AuditOrderEnums.AuditTypeEnum auditTypeEnum, int preDayCount, Map listHoliday) throws Exception { SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); SimpleDateFormat dayFormat = new SimpleDateFormat("yyyy/MM/dd"); + String ftBeginTime = queryFtBeginTime(preDayCount); int con=0; + String nextAuditFlowType = ""; // 下阶段流程审核类型 + String create_day = ""; // 流程创建日期 + String audit_day = ""; // 流程审核日期 + String auditTime = ""; // 审核时间 + String jump_begintime = ""; // 跳过节假日之后流程开始时间 + String jump_endtime = ""; // 跳过节假日之后流程结束时间 + String createtime = ""; // 流程创建时间【第二个定时器进行修改】 + String begintime = ""; // 流程开始时间 + String endtime = ""; // 流程结束时间 + + String remark = ""; + String auditOrderSts = ""; + String auditOrderStsDes = ""; + String uuidDetail = ""; + String projectId = ""; // 用户id + String userid = ""; // 用户id + String username = ""; // 用户姓名 + String objectno = ""; // 流程编号 + String serialno = ""; // 流程处理流水 + String auditFlowType = ""; // 流程审核类型 + String auditFlowTypeDes = ""; // 流程审核类型说明 + + String auditResSts = ""; // 审核最终结果状态:0,审核中,1,审核通过,2,审核拒绝,3,退回到经销商 + String auditChoiceSts = ""; // 审核最终结果状态:0,审核中,1,审核通过,2,审核拒绝,3,退回到经销商 + String auditResStsDes = ""; // 流程审核结果说明 // 查询所有需要发送还款提醒的数据 String selSql="SELECT \n" + " FBO.proj_id as project_id,\n" + @@ -476,37 +514,37 @@ public class CreditAuditHolidayBatch implements Job{ "LEFT JOIN flow_bussiness_object FBO ON FT.objectno=FBO.flow_unid \n" + "WHERE FT.flowname = '" + auditTypeEnum.getFlowName() +"'" + " AND FT.phaseno='" + auditTypeEnum.getPhaseNo() +"'" + + " AND FT.begintime > '" + ftBeginTime +"'" + " AND (FT.USERNAME IS NOT NULL OR FT.USERNAME <>'')"; ASResultSet rs = Sqlca.getASResultSet(new SqlObject(selSql)); while(rs.next()) { // 获取接口推送所需数据 con++; - String nextAuditFlowType = rs.getString("nextAuditFlowType"); // 下阶段流程审核类型 + nextAuditFlowType = rs.getString("nextAuditFlowType"); // 下阶段流程审核类型 + create_day = ""; // 流程创建日期 + audit_day = ""; // 流程审核日期 + auditTime = ""; // 审核时间 + jump_begintime = ""; // 跳过节假日之后流程开始时间 + jump_endtime = ""; // 跳过节假日之后流程结束时间 + createtime = ""; // 流程创建时间【第二个定时器进行修改】 + begintime = rs.getString("begintime"); // 流程开始时间 + endtime = rs.getString("endtime"); // 流程结束时间 - String create_day = ""; // 流程创建日期 - String audit_day = ""; // 流程审核日期 - String auditTime = ""; // 审核时间 - String jump_begintime = ""; // 跳过节假日之后流程开始时间 - String jump_endtime = ""; // 跳过节假日之后流程结束时间 - String createtime = ""; // 流程创建时间【第二个定时器进行修改】 - String begintime = rs.getString("begintime"); // 流程开始时间 - String endtime = rs.getString("endtime"); // 流程结束时间 + remark = ""; + auditOrderSts = ""; + auditOrderStsDes = ""; + uuidDetail = UUID.randomUUID().toString().replace("-", ""); + projectId = rs.getString("project_id"); // 用户id + userid = rs.getString("userid"); // 用户id + username = rs.getString("username"); // 用户姓名 + objectno = rs.getString("objectno"); // 流程编号 + serialno = rs.getString("serialno"); // 流程处理流水 + auditFlowType = rs.getString("auditFlowType"); // 流程审核类型 + auditFlowTypeDes = rs.getString("auditFlowTypeDes"); // 流程审核类型说明 - String remark = ""; - String auditOrderSts = ""; - String auditOrderStsDes = ""; - String uuidDetail = UUID.randomUUID().toString().replace("-", ""); - String projectId = rs.getString("project_id"); // 用户id - String userid = rs.getString("userid"); // 用户id - String username = rs.getString("username"); // 用户姓名 - String objectno = rs.getString("objectno"); // 流程编号 - String serialno = rs.getString("serialno"); // 流程处理流水 - String auditFlowType = rs.getString("auditFlowType"); // 流程审核类型 - String auditFlowTypeDes = rs.getString("auditFlowTypeDes"); // 流程审核类型说明 - - String auditResSts = rs.getString("auditResSts"); // 审核最终结果状态:0,审核中,1,审核通过,2,审核拒绝,3,退回到经销商 - String auditChoiceSts = rs.getString("auditChoiceSts"); // 审核最终结果状态:0,审核中,1,审核通过,2,审核拒绝,3,退回到经销商 - String auditResStsDes = rs.getString("auditResStsDes"); // 流程审核结果说明 + auditResSts = rs.getString("auditResSts"); // 审核最终结果状态:0,审核中,1,审核通过,2,审核拒绝,3,退回到经销商 + auditChoiceSts = rs.getString("auditChoiceSts"); // 审核最终结果状态:0,审核中,1,审核通过,2,审核拒绝,3,退回到经销商 + auditResStsDes = rs.getString("auditResStsDes"); // 流程审核结果说明 if(AuditOrderEnums.CREDIT_AUDIT_TYPE.equals(auditTypeEnum.getFlowNo())){ // logger.info("【信审考核统计】【initDetail】信审统计明细--serialno=" + serialno); if(StringUtils.isEmpty(endtime)){ @@ -604,7 +642,7 @@ public class CreditAuditHolidayBatch implements Job{ //开始时间处理 if(StringUtils.isNotEmpty(begintime)){ create_day = dayFormat.format(simpleDateFormat.parse(begintime)); - jump_begintime = resJumpHoliday(Sqlca, begintime); // 跳过节假日之后流程开始时间 + jump_begintime = resJumpHoliday(Sqlca, begintime, listHoliday); // 跳过节假日之后流程开始时间 jump_begintime = sdf.format(simpleDateFormat.parse(jump_begintime));//格式化时间格式 createtime = sdf.format(simpleDateFormat.parse(begintime)); begintime = createtime; @@ -616,11 +654,11 @@ public class CreditAuditHolidayBatch implements Job{ if (StringUtils.isNotEmpty(endtime)){ // 2020-06-05 审核数量记录为当前时间,不跳过节假日 audit_day = dayFormat.format(simpleDateFormat.parse(endtime)); - jump_endtime = resJumpHoliday(Sqlca, endtime); // 跳过节假日之后流程结束时间 + jump_endtime = resJumpHoliday(Sqlca, endtime, listHoliday); // 跳过节假日之后流程结束时间 jump_endtime = sdf.format(simpleDateFormat.parse(jump_endtime)); endtime = sdf.format(simpleDateFormat.parse(endtime)); //信审考核时间累加 - auditTime = diffTime(Sqlca, jump_begintime, jump_endtime); + auditTime = diffTime(Sqlca, jump_begintime, jump_endtime, listHoliday); if("0".equals(auditTime)){//审核时间不足一分钟,按一分钟算 auditTime = "1"; } @@ -675,6 +713,7 @@ public class CreditAuditHolidayBatch implements Job{ ")"; Sqlca.executeSQL(new SqlObject(insertSql)); } + logger.info("【initDetail】明细初始化完成,--auditTypeEnum.getFlowName()=【" + auditTypeEnum.getFlowName() +"】 --countNum=" + con); return String.valueOf(con); } @@ -683,31 +722,37 @@ public class CreditAuditHolidayBatch implements Job{ * @return * @throws Exception */ - public String updateDetail(Transaction Sqlca, AuditOrderEnums.AuditTypeEnum auditTypeEnum) throws Exception { + public String updateDetail(Transaction Sqlca, AuditOrderEnums.AuditTypeEnum auditTypeEnum, int preDayCount) throws Exception { SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); SimpleDateFormat dayFormat = new SimpleDateFormat("yyyy/MM/dd"); + String ftBeginTime = queryFtBeginTime(preDayCount); int con=0; // 查询当前最小的审批时间 String selSql="SELECT \n" + " FT.userid,\n" + " FT.objectno,\n" + " min(FT.begintime) AS begintime\n" + - "FROM FLOW_TASK FT\n" + - "LEFT JOIN FLOW_OPINION_BUSINESS FOB ON FT.SERIALNO=FOB.SERIALNO \n" + - "WHERE FT.flowname = '" + auditTypeEnum.getFlowName() +"'" + + " FROM FLOW_TASK FT\n" + + " LEFT JOIN FLOW_OPINION_BUSINESS FOB ON FT.SERIALNO=FOB.SERIALNO \n" + + " WHERE FT.flowname = '" + auditTypeEnum.getFlowName() +"'" + " AND FT.phaseno='" + auditTypeEnum.getPhaseNo() +"'" + - "AND (FT.USERNAME IS NOT NULL OR FT.USERNAME <>'') group by FT.objectno"; + " AND FT.begintime > '" + ftBeginTime +"'" + + " AND (FT.USERNAME IS NOT NULL OR FT.USERNAME <>'') group by FT.objectno"; ASResultSet rs = Sqlca.getASResultSet(new SqlObject(selSql)); + String begintime = ""; // 流程编号 + String objectno = ""; // 流程创建时间 + String createtime = ""; + //2020-06-05 进单时间不跳过节假日 + String create_day = ""; while(rs.next()) { // 获取接口推送所需数据 con++; - String begintime = rs.getString("begintime"); // 流程编号 - String objectno = rs.getString("objectno"); // 流程创建时间 - String createtime = sdf.format(simpleDateFormat.parse(begintime)); -// String create_day = dayFormat.format(simpleDateFormat.parse(resJumpHoliday(Sqlca, begintime))); + begintime = rs.getString("begintime"); // 流程编号 + objectno = rs.getString("objectno"); // 流程创建时间 + createtime = sdf.format(simpleDateFormat.parse(begintime)); //2020-06-05 进单时间不跳过节假日 - String create_day = dayFormat.format(simpleDateFormat.parse(begintime)); + create_day = dayFormat.format(simpleDateFormat.parse(begintime)); String updSql="UPDATE st_credit_audit_order_detail SET create_day='"+create_day+"', createtime='"+createtime+"'," + "UPDATETIME=DATE_FORMAT(NOW(),'%Y/%m/%d %H:%i:%s') WHERE objectno='"+objectno+"' "; Sqlca.executeSQL(new SqlObject(updSql)); @@ -720,21 +765,23 @@ public class CreditAuditHolidayBatch implements Job{ * @return * @throws Exception */ - public String updateDetailAuditDay(Transaction Sqlca, AuditOrderEnums.AuditTypeEnum auditTypeEnum) throws Exception { + public String updateDetailAuditDay(Transaction Sqlca, AuditOrderEnums.AuditTypeEnum auditTypeEnum, int preDayCount) throws Exception { SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); SimpleDateFormat dayFormat = new SimpleDateFormat("yyyy/MM/dd"); + String ftBeginTime = queryFtBeginTime(preDayCount); int con=0; // 查询当前最大的审批时间 String selSql="SELECT \n" + " FT.userid,\n" + " FT.objectno,\n" + " max(FT.endtime) AS endtime\n" + - "FROM FLOW_TASK FT\n" + - "LEFT JOIN FLOW_OPINION_BUSINESS FOB ON FT.SERIALNO=FOB.SERIALNO \n" + - "WHERE FT.flowname = '" + auditTypeEnum.getFlowName() +"'" + + " FROM FLOW_TASK FT\n" + + " LEFT JOIN FLOW_OPINION_BUSINESS FOB ON FT.SERIALNO=FOB.SERIALNO \n" + + " WHERE FT.flowname = '" + auditTypeEnum.getFlowName() +"'" + " AND FT.phaseno='" + auditTypeEnum.getPhaseNo() +"'" + - "AND (FT.endtime IS NOT NULL OR FT.endtime <>'') AND (FT.USERNAME IS NOT NULL OR FT.USERNAME <>'') group by FT.objectno, FT.userid"; + " AND FT.begintime > '" + ftBeginTime +"'" + + " AND (FT.endtime IS NOT NULL OR FT.endtime <>'') AND (FT.USERNAME IS NOT NULL OR FT.USERNAME <>'') group by FT.objectno, FT.userid"; ASResultSet rs = Sqlca.getASResultSet(new SqlObject(selSql)); while(rs.next()) { // 获取接口推送所需数据 @@ -869,7 +916,7 @@ public class CreditAuditHolidayBatch implements Job{ String username = rs.getString("username"); // 流程创建时间 String auditFlowType = rs.getString("auditFlowType"); // 流程创建时间 String auditFlowTypeDes = rs.getString("auditFlowTypeDes"); // 流程创建时间 - + // TODO: 2021/11/10 可优化,提取到循环外边 String selSql2="SELECT count(1) as countNum FROM st_payment_audit_order " + "WHERE every_day ='" + every_day +"' and userid='" + userid +"' and auditFlowType='" + auditFlowType +"'"; ASResultSet rs2 = Sqlca.getASResultSet(new SqlObject(selSql2)); @@ -920,10 +967,8 @@ public class CreditAuditHolidayBatch implements Job{ String selSql="SELECT id, every_day, userid, auditFlowType, count_audit FROM st_payment_audit_order "; ASResultSet rs = Sqlca.getASResultSet(new SqlObject(selSql)); while(rs.next()) { - // 获取接口推送所需数据 con++; - logger.info("【付款申请考核统计】【updateOrderAuditDay】付款申请考核统计订单执行 con=" + con); String id = rs.getString("id"); // 流程编号 String count_audit = rs.getString("count_audit"); // 审核数量 String auditFlowType = rs.getString("auditFlowType"); // 流程类型 @@ -981,6 +1026,7 @@ public class CreditAuditHolidayBatch implements Job{ "UPDATETIME=DATE_FORMAT(NOW(),'%Y/%m/%d %H:%i:%s') WHERE id='"+id+"' "; Sqlca.executeSQL(new SqlObject(updSql)); } + logger.info("【付款申请考核统计】【updateOrderAuditDay】付款申请考核统计订单执行 con=" + con); return String.valueOf(con); } @@ -1000,26 +1046,34 @@ public class CreditAuditHolidayBatch implements Job{ " group by auditFlowType, userid, objectno, create_day " + " ) as a group by auditFlowType, userid, create_day" ; ASResultSet rs = Sqlca.getASResultSet(new SqlObject(selSql)); + String every_day = ""; // 流程编号 + String order_count = ""; // 流程创建时间 + String userid = ""; // 流程创建时间 + String username = ""; // 流程创建时间 + String auditFlowType = ""; // 流程创建时间 + String auditFlowTypeDes = ""; // 流程创建时间 + // TODO: 2021/11/10 可优化,提取到循环外边 +// String selSql2="SELECT count(1) as countNum FROM st_credit_audit_order " + +// "WHERE auditFlowType='" + auditFlowType +"' group by every_day, userid"; while(rs.next()) { // 获取接口推送所需数据 con++; - String every_day = rs.getString("every_day"); // 流程编号 - String order_count = rs.getString("order_count"); // 流程创建时间 - String userid = rs.getString("userid"); // 流程创建时间 - String username = rs.getString("username"); // 流程创建时间 - String auditFlowType = rs.getString("auditFlowType"); // 流程创建时间 - String auditFlowTypeDes = rs.getString("auditFlowTypeDes"); // 流程创建时间 - + every_day = rs.getString("every_day"); // 流程编号 + order_count = rs.getString("order_count"); // 流程创建时间 + userid = rs.getString("userid"); // 流程创建时间 + username = rs.getString("username"); // 流程创建时间 + auditFlowType = rs.getString("auditFlowType"); // 流程创建时间 + auditFlowTypeDes = rs.getString("auditFlowTypeDes"); // 流程创建时间 + // TODO: 2021/11/10 可优化,提取到循环外边 String selSql2="SELECT count(1) as countNum FROM st_credit_audit_order " + "WHERE every_day ='" + every_day +"' and userid='" + userid +"' and auditFlowType='" + auditFlowType +"'"; ASResultSet rs2 = Sqlca.getASResultSet(new SqlObject(selSql2)); if(rs2.next()) { - if(rs2.getInt("countNum") > 0){ + if(rs2.getInt("countNum") > 0 ){ String updSql="UPDATE st_credit_audit_order SET order_count='"+order_count+"', " + "UPDATETIME=DATE_FORMAT(NOW(),'%Y/%m/%d %H:%i:%s') WHERE every_day='"+every_day +"' and userid='" + userid +"' and auditFlowType='" + auditFlowType +"'"; Sqlca.executeSQL(new SqlObject(updSql)); - logger.info("【信审考核统计】【saveOrderCreateDay】更新记录保存进单数量<<<<<<<<<<<<<"); }else { String insertSql = "INSERT INTO st_credit_audit_order(\n" + " every_day,\n" + @@ -1042,7 +1096,6 @@ public class CreditAuditHolidayBatch implements Job{ "DATE_FORMAT(NOW(),'%Y/%m/%d %H:%i:%s') " + ")"; Sqlca.executeSQL(new SqlObject(insertSql)); - logger.info("【信审考核统计】【saveOrderCreateDay】新增记录保存进单数量<<<<<<<<<<<<<"); } } } @@ -1060,11 +1113,23 @@ public class CreditAuditHolidayBatch implements Job{ // 查询所有需要发送还款提醒的数据 String selSql="SELECT id, every_day, userid, auditFlowType, count_audit FROM st_credit_audit_order "; ASResultSet rs = Sqlca.getASResultSet(new SqlObject(selSql)); + Set passSet = new HashSet<>(); + Set rejectSet = new HashSet<>(); + Set rejectSet1 = new HashSet<>();//拒绝数量:信用不良0010 + Set rejectSet2 = new HashSet<>();//拒绝数量:法院执行0020 + Set rejectSet3 = new HashSet<>();//拒绝数量:虚假信息0030 + Set rejectSet4 = new HashSet<>();//拒绝数量:身份核实异常0040 + Set rejectSet5 = new HashSet<>();//拒绝数量:购车目的异常0050 + Set rejectSet6 = new HashSet<>();//拒绝数量:综合评分不足0060 + //排除同一条订单多种意见的情况 + Map resMap = new HashMap<>(); + SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); + int audittime = 0; while(rs.next()) { // 获取接口推送所需数据 con++; - logger.info("【信审考核统计】【updateOrderAuditDay】信审考核统计订单执行 con=" + con); +// logger.info("【信审考核统计】【updateOrderAuditDay】信审考核统计订单执行 con=" + con); String id = rs.getString("id"); // 流程编号 String count_audit = rs.getString("count_audit"); // 审核数量 String auditFlowType = rs.getString("auditFlowType"); // 流程类型 @@ -1082,41 +1147,35 @@ public class CreditAuditHolidayBatch implements Job{ " AND auditFlowType='" + auditFlowType +"'" + " AND auditType ='BusinessApplyFlow'" ; ASResultSet rs2 = Sqlca.getASResultSet(new SqlObject(selSql2)); - Set passSet = new HashSet<>(); - Set rejectSet = new HashSet<>(); - Set rejectSet1 = new HashSet<>();//拒绝数量:信用不良0010 - Set rejectSet2 = new HashSet<>();//拒绝数量:法院执行0020 - Set rejectSet3 = new HashSet<>();//拒绝数量:虚假信息0030 - Set rejectSet4 = new HashSet<>();//拒绝数量:身份核实异常0040 - Set rejectSet5 = new HashSet<>();//拒绝数量:购车目的异常0050 - Set rejectSet6 = new HashSet<>();//拒绝数量:综合评分不足0060 + passSet = new HashSet<>(); + rejectSet = new HashSet<>(); + rejectSet1 = new HashSet<>();//拒绝数量:信用不良0010 + rejectSet2 = new HashSet<>();//拒绝数量:法院执行0020 + rejectSet3 = new HashSet<>();//拒绝数量:虚假信息0030 + rejectSet4 = new HashSet<>();//拒绝数量:身份核实异常0040 + rejectSet5 = new HashSet<>();//拒绝数量:购车目的异常0050 + rejectSet6 = new HashSet<>();//拒绝数量:综合评分不足0060 //排除同一条订单多种意见的情况 - Map resMap = new HashMap<>(); - SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); - int audittime = 0; + resMap = new HashMap<>(); + audittime = 0; while(rs2.next()) { String objectno = rs2.getString("objectno"); String endtime = rs2.getString("endtime"); if(StringUtils.isEmpty(endtime) || "null".equals(endtime)){ - logger.info("【信审考核统计】【updateOrderAuditDay】endtime异常-当前订单为--objectno=" +objectno); + logger.warn("【信审考核统计】【updateOrderAuditDay】endtime异常-当前订单为--objectno=" +objectno); continue; } - //取值 - String audittimeStr = rs2.getString("audittime"); // 审核时间 - //审核时间计算 - if(StringUtils.isNotEmpty(audittimeStr) && !"null".equals(audittimeStr)){ - audittime = audittime + Integer.parseInt(audittimeStr); - } + if(resMap.containsKey(objectno)){ String endtimeBak = resMap.get(objectno); - logger.info("【信审考核统计】【updateOrderAuditDay】双结果订单-当前订单为--objectno=" +objectno); - logger.info("【信审考核统计】【updateOrderAuditDay】双结果订单-当前订单为--endtimeBak=" +endtimeBak); - logger.info("【信审考核统计】【updateOrderAuditDay】双结果订单-当前订单为--endtime=" +endtime); +// logger.info("【信审考核统计】【updateOrderAuditDay】双结果订单-当前订单为--objectno=" +objectno); +// logger.info("【信审考核统计】【updateOrderAuditDay】双结果订单-当前订单为--endtimeBak=" +endtimeBak); +// logger.info("【信审考核统计】【updateOrderAuditDay】双结果订单-当前订单为--endtime=" +endtime); Date endtimeBakDate = sdf.parse(endtimeBak); Date endtimeDate = sdf.parse(endtime); //以最新结果为准 if(endtimeBakDate.getTime() > endtimeDate.getTime()){//如果已处理的订单时间大于当前的时间,则不处理当前结果 - logger.info("【信审考核统计】【updateOrderAuditDay】双结果订单-以最新结果为准,不处理当前结果--objectno=" +objectno); + logger.warn("【信审考核统计】【updateOrderAuditDay】双结果订单-以最新结果为准,不处理当前结果--objectno=" +objectno); continue; }else {//如果当前状态为最新状态,则清除之前的数量 passSet.remove(objectno); @@ -1129,10 +1188,19 @@ public class CreditAuditHolidayBatch implements Job{ rejectSet6.remove(objectno); } } - logger.info("【信审考核统计】【updateOrderAuditDay】当前订单为--objectno=" +objectno); +// logger.info("【信审考核统计】【updateOrderAuditDay】当前订单为--objectno=" +objectno); resMap.put(objectno, endtime); //大状态:// 0,审核中,1,任意退回,2,审核拒绝,3,审核通过 String auditOrderSts = rs2.getString("auditOrderSts"); + if(StringUtils.isNotEmpty(auditOrderSts) && !"null".equals(auditOrderSts) + && !"0".equals(auditOrderSts) && !"1".equals(auditOrderSts)){ + //取值 + String audittimeStr = rs2.getString("audittime"); // 审核时间 + //审核时间计算 + if(StringUtils.isNotEmpty(audittimeStr) && !"null".equals(audittimeStr)){ + audittime = audittime + Integer.parseInt(audittimeStr); + } + } //小状态:信用不良0010,法院执行0020,虚假信息0030,身份核实异常0040,购车目的异常0050,综合评分不足0060 String auditResSts = rs2.getString("auditResSts"); @@ -1189,111 +1257,67 @@ public class CreditAuditHolidayBatch implements Job{ * @param date * @return */ - private String resJumpHoliday(Transaction Sqlca, String date) throws SQLException, ParseException { + private String resJumpHoliday(Transaction Sqlca, String date, Map listHoliday) throws SQLException, ParseException { //查询当前时间是否在工作时间 -// logger.info("===================当前时间:date=" + date); +// logger.info("resJumpHoliday --【开始】--查询当前时间是否在工作时间:date=" + date); SimpleDateFormat dayFormat = new SimpleDateFormat("yyyy/MM/dd"); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); - int hour = Integer.parseInt(date.substring(11, 13)); - int minute = Integer.parseInt(date.substring(14, 16)); - if(hour < 9){//时间小于当天9点,则调整时间为上午九点 - date = date.substring(0, 11) + "09:00:00"; - }else if((hour == 17 && minute > 30) || (hour > 17)){//时间小于当天17:30点,则调整时间为第二天的上午九点 - Date time = simpleDateFormat.parse(date); - Calendar calendar = Calendar.getInstance(); - calendar.setTime(time); - calendar.add(Calendar.DAY_OF_MONTH, 1); - date = simpleDateFormat.format(calendar.getTime()).substring(0, 11) + "09:00:00"; - } - //查询当前时间是否在节假日时间 - String day = date.substring(0, 10); - int count = 0; - while (count < 15){ - count ++; - String selSql="SELECT count(1) as countNum " + - " FROM st_credit_audit_holiday st" + - " WHERE st.c_date='" + day +"'" + - " AND st.otype='休'" ; - ASResultSet rs = Sqlca.getASResultSet(new SqlObject(selSql)); - int countNum = 0; - if(rs.next()){ - countNum = rs.getInt("countNum"); - } - if(countNum > 0){ - Date time = simpleDateFormat.parse(date); - Calendar calendar = Calendar.getInstance(); - calendar.setTime(time); - calendar.add(Calendar.DAY_OF_MONTH, 1); - date = simpleDateFormat.format(calendar.getTime()).substring(0, 11) + "09:00:00"; - day = date.substring(0, 10); - }else { - break; - } - } - return date; + int hour = Integer.parseInt(date.substring(11, 13)); + int minute = Integer.parseInt(date.substring(14, 16)); + if(hour < 9){//时间小于当天9点,则调整时间为上午九点 + date = date.substring(0, 11) + "09:00:00"; + }else if((hour == 17 && minute > 30) || (hour > 17)){//时间小于当天17:30点,则调整时间为第二天的上午九点 + Date time = simpleDateFormat.parse(date); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(time); + calendar.add(Calendar.DAY_OF_MONTH, 1); + date = simpleDateFormat.format(calendar.getTime()).substring(0, 11) + "09:00:00"; + } + //查询当前时间是否在节假日时间 + String day = date.substring(0, 10); + //logger.info("resJumpHoliday 查询当前时间是否在节假日时间 day=" + day); + int count = 0; + while (listHoliday.containsKey(day) && count < 15) { + //logger.info("resJumpHoliday 节假日时间 day=" + day); + count ++; + Date time = simpleDateFormat.parse(date); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(time); + calendar.add(Calendar.DAY_OF_MONTH, 1); + date = simpleDateFormat.format(calendar.getTime()).substring(0, 11) + "09:00:00"; + day = date.substring(0, 10); + logger.info("resJumpHoliday 节假日时间 + 1 day=" + day); + } + //logger.info("resJumpHoliday --【结束】--查询当前时间是否在工作时间:date=" + date); + return date; } + + /** + * 查询所有节假日 + * @param Sqlca + * @return + * @throws SQLException + */ + private Map listHoliday(Transaction Sqlca) throws SQLException { + String selSql="SELECT c_date " + + " FROM st_credit_audit_holiday st" + + " WHERE st.otype='休'" ; + ASResultSet rs = Sqlca.getASResultSet(new SqlObject(selSql)); + Map holidayMap = new HashMap<>(); + while(rs.next()) { + holidayMap.put(rs.getString("c_date"), "1"); + } + return holidayMap; + } + /** * 根据时间段相差时间获得跳过节假日的工作日时间 * @param begintime 开始时间 * @param endtime 结束时间 * @return */ - private String resDiffJumpHoliday(Transaction Sqlca, String begintime, String endtime) throws SQLException, ParseException { - //获取开始时间、结束时间跳过节假日的时间 - begintime = resJumpHoliday(Sqlca, begintime); - endtime = resJumpHoliday(Sqlca, endtime); - //确认开始时间,到结束时间,中间隔的时间,并排除节假日时间 - //如果结束时间小于或者等于开始时间 - SimpleDateFormat dayFormat = new SimpleDateFormat("yyyy/MM/dd"); - SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); - Date beginDate = simpleDateFormat.parse(begintime); - Date endDate = simpleDateFormat.parse(endtime); - long diff = 0; - if(beginDate.getTime() >= endDate.getTime()){ - return "0"; - }else if (begintime.substring(0, 10).equals(endtime.substring(0, 10))){ - diff = diffMinute(beginDate.getTime(), endDate.getTime()); - return String.valueOf(diff); - }else { - long diffBeginAfter = diffBeginDateAfter(begintime, beginDate); - long diffEndDateBefore = diffEndDateBefore(endtime, endDate); - diff = diffBeginAfter + diffEndDateBefore; - //得到相差的天数 betweenDate - - beginDate = dayFormat.parse(dayFormat.format(beginDate)); - endDate = dayFormat.parse(dayFormat.format(endDate)); - long betweenDate = (endDate.getTime() - beginDate.getTime())/(60*60*24*1000); - if (betweenDate == 1){ - return String.valueOf(diff); - }else {//中间相隔大于一天查询数据库相隔天数中有几天是假期, - begintime = dayFormat.format(beginDate); - endtime = dayFormat.format(endDate); - String selSql="SELECT COUNT(1) as countNum FROM (\n" + - " SELECT c_date\n" + - " FROM st_credit_audit_holiday st\n" + - " WHERE st.c_date BETWEEN '"+begintime+"' AND '"+endtime+"'\n" + - " AND st.otype='休'\n" + - " GROUP BY st.c_date\n" + - " ) AS s" ; - ASResultSet rs = Sqlca.getASResultSet(new SqlObject(selSql)); - int countNum = 0; - if(rs.next()){ - countNum = rs.getInt("countNum"); - } - diff += (betweenDate - countNum - 1)*8*60; - return String.valueOf(diff); - } - } - } - - /** - * 根据时间段相差时间获得跳过节假日的工作日时间 - * @param begintime 开始时间 - * @param endtime 结束时间 - * @return - */ - private String diffTime(Transaction Sqlca, String begintime, String endtime) throws SQLException, ParseException { + private String diffTime(Transaction Sqlca, String begintime, String endtime, Map listHoliday) throws SQLException, ParseException { //如果结束时间小于或者等于开始时间 SimpleDateFormat dayFormat = new SimpleDateFormat("yyyy/MM/dd"); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); @@ -1302,7 +1326,8 @@ public class CreditAuditHolidayBatch implements Job{ long diff = 0; if(beginDate.getTime() >= endDate.getTime()){//开始时间大于结束时间 return "0"; - }else if (begintime.substring(0, 10).equals(endtime.substring(0, 10))){//开始时间和结束时间年月日相同 + }else if (dayFormat.format(beginDate).equals(dayFormat.format(endDate))){//开始时间和结束时间年月日相同 + logger.info("diffTime2111182 开始时间和结束时间年月日相同 beginDate=" + dayFormat.format(beginDate) + "--> endDate=" + dayFormat.format(endDate)); diff = diffMinute(beginDate.getTime(), endDate.getTime()); return String.valueOf(diff); }else { @@ -1313,29 +1338,56 @@ public class CreditAuditHolidayBatch implements Job{ beginDate = dayFormat.parse(dayFormat.format(beginDate)); endDate = dayFormat.parse(dayFormat.format(endDate)); long betweenDate = (endDate.getTime() - beginDate.getTime())/(60*60*24*1000); + logger.info("diffTime211118 begintime=" + begintime + "相差天数:betweenDateCX" + betweenDate); if (betweenDate == 1){ return String.valueOf(diff); }else {//中间相隔大于一天查询数据库相隔天数中有几天是假期, begintime = dayFormat.format(beginDate); endtime = dayFormat.format(endDate); - String selSql="SELECT COUNT(1) as countNum FROM (\n" + - " SELECT c_date\n" + - " FROM st_credit_audit_holiday st\n" + - " WHERE st.c_date BETWEEN '"+begintime+"' AND '"+endtime+"'\n" + - " AND st.otype='休'\n" + - " GROUP BY st.c_date\n" + - " ) AS s" ; - ASResultSet rs = Sqlca.getASResultSet(new SqlObject(selSql)); - int countNum = 0; - if(rs.next()){ - countNum = rs.getInt("countNum"); - } + //时间段内假期天数 + int countNum = holidayNum(begintime, endtime, listHoliday); + logger.info("diffTime211118 begintime=" + begintime + "非工作天数:holidayNumCX" + countNum); diff += (betweenDate - countNum - 1)*8*60; return String.valueOf(diff); } } } + /** + * 计算该时间中间的假期时间 + * @param beginDate yyyy/MM/dd + * @param endDate yyyy/MM/dd + * @param listHoliday yyyy/MM/dd,1 + * @return + */ + private int holidayNum(String beginDate, String endDate, Map listHoliday) throws ParseException { + SimpleDateFormat dayFormat = new SimpleDateFormat("yyyy/MM/dd"); + int hilidayNum = 0; + if(beginDate.equals(endDate)){ + return hilidayNum; + } + Date begin = dayFormat.parse(beginDate); + Date end = dayFormat.parse(endDate); + if(end.getTime() <= begin.getTime()){ + return hilidayNum; + } + String tempDate = beginDate; + //日期加一,不等于结束日期 + while (!tempDate.equals(endDate)){ + //当前日期存在于假期之中,假期加1 + if(listHoliday.containsKey(tempDate)){ + hilidayNum++; + } + Date time = dayFormat.parse(tempDate); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(time); + calendar.add(Calendar.DAY_OF_MONTH, 1); + tempDate = dayFormat.format(calendar.getTime()); + } + return hilidayNum; + } + + private long diffEndDateBeforeNew(String endTime, Date endDate) throws ParseException { SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); String endtimeBefore = endTime.substring(0, 8) + "090000"; @@ -1399,10 +1451,39 @@ public class CreditAuditHolidayBatch implements Job{ return res <= 0 ? 1 : res; } -// private long diffMinute(long begin, long end){ -// if(begin > end){ -// return -1; -// } -// return (end - begin)/1000/60; -// } + /** + * 查询st相关表中时间 + * @param preDayCount 多少天前数据,增量更新 + * @return + * @throws Exception + */ + private String queryStBeginTime(int preDayCount) throws Exception { + SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); + Date date = new Date(); + Calendar cal = Calendar.getInstance(); + cal.setTime(date); + cal.add(Calendar.DATE, -preDayCount); + logger.info("queryStBeginTime 查询st相关表中时间:" + sdf.format(cal.getTime())); + return sdf.format(cal.getTime()) + "000000"; + } + + /** + * 查询flow相关表中时间 + * @param preDayCount 多少天前数据,增量更新 + * @return + * @throws Exception + */ + private String queryFtBeginTime(int preDayCount) throws Exception { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd"); + Date date = new Date(); + Calendar cal = Calendar.getInstance(); + cal.setTime(date); + cal.add(Calendar.DATE, -preDayCount); + logger.info("queryFtBeginTime 查询flow相关表中时间:" + sdf.format(cal.getTime())); + return sdf.format(cal.getTime()); + } + + + + } From e4fee6700a2a98b57122db2a92cc3060d5614307 Mon Sep 17 00:00:00 2001 From: "zhanglei@ap-leasing.com.cn" Date: Fri, 18 Feb 2022 18:10:59 +0800 Subject: [PATCH 4/7] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=B8=A0=E9=81=93?= =?UTF-8?q?=E7=BB=8F=E7=90=86=E8=A7=92=E8=89=B2=E7=94=A8=E4=BA=8E=E6=BF=80?= =?UTF-8?q?=E6=B4=BB=E7=BB=8F=E9=94=80=E5=95=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DistributorRegister/CLMSDistributorList.jsp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WebContent/Tenwa/ChannelPortal/DistributorManage/DistributorRegister/CLMSDistributorList.jsp b/WebContent/Tenwa/ChannelPortal/DistributorManage/DistributorRegister/CLMSDistributorList.jsp index 56f6cf5df..0d0bf20d2 100644 --- a/WebContent/Tenwa/ChannelPortal/DistributorManage/DistributorRegister/CLMSDistributorList.jsp +++ b/WebContent/Tenwa/ChannelPortal/DistributorManage/DistributorRegister/CLMSDistributorList.jsp @@ -17,7 +17,7 @@ dwTemp.ReadOnly = "1"; //只读模式 dwTemp.setPageSize(20); dwTemp.genHTMLObjectWindow(""); - boolean flag = CurUser.hasRole("800R00000070");// 2021/02/26 作废(汽车业务部总监)角色改用(汽车业务部前台副总监) + boolean flag = CurUser.hasRole("800R00000070")||CurUser.hasRole("800R00000077");// 2021/02/26 作废(汽车业务部总监)角色改用(汽车业务部前台副总监) String sButtons[][] =null; if(flag){ //0、是否展示 1、 权限控制 2、 展示类型 3、按钮显示名称 4、按钮解释文字 5、按钮触发事件代码 6、 7、 8、 9、图标,CSS层叠样式 10、风格 From 86fdd4989005aaf712542138b01ee77c066e5f35 Mon Sep 17 00:00:00 2001 From: maliang Date: Wed, 16 Mar 2022 15:22:31 +0800 Subject: [PATCH 5/7] =?UTF-8?q?fix:=E8=AE=A2=E5=8D=95=E5=90=84=E7=8E=AF?= =?UTF-8?q?=E8=8A=82=E6=8F=90=E4=BA=A4=E6=97=B6=E9=97=B4=E6=8A=A5=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/quartzmession/ProjectProcessTime.java | 285 ++++++++ 鎶ヨ〃/姹借溅绫绘姤琛ㄤ竴/璁㈠崟鍚勭幆鑺傛彁浜ゆ椂闂存姤琛.xml | 616 ++++++++++++++++++ 2 files changed, 901 insertions(+) create mode 100644 src/com/tenwa/lease/app/quartzmession/ProjectProcessTime.java create mode 100644 鎶ヨ〃/姹借溅绫绘姤琛ㄤ竴/璁㈠崟鍚勭幆鑺傛彁浜ゆ椂闂存姤琛.xml diff --git a/src/com/tenwa/lease/app/quartzmession/ProjectProcessTime.java b/src/com/tenwa/lease/app/quartzmession/ProjectProcessTime.java new file mode 100644 index 000000000..766cba1af --- /dev/null +++ b/src/com/tenwa/lease/app/quartzmession/ProjectProcessTime.java @@ -0,0 +1,285 @@ +package com.tenwa.lease.app.quartzmession; + +import com.amarsoft.are.jbo.JBOException; +import com.amarsoft.awe.util.SqlObject; +import com.amarsoft.awe.util.Transaction; +import com.amarsoft.dict.als.cache.CacheLoaderFactory; +import org.apache.log4j.LogManager; +import org.apache.log4j.Logger; +import org.quartz.Job; +import org.quartz.JobExecutionContext; +import org.quartz.JobExecutionException; + +import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; + +/** + * 订单各个环节提交时间报表 + * @author maliang + */ +public class ProjectProcessTime implements Job { + private static final Logger logger = LogManager.getLogger(ProjectProcessTime.class);// 引入logger日志 + + public void execute(JobExecutionContext arg0) throws JobExecutionException { + logger.info("【订单各个环节提交时间报表】【ProjectProcessTime】【开始】<<<<<<<<<<<<<:"); + insertData(); + logger.info("【订单各个环节提交时间报表】【ProjectProcessTime】【完成】<<<<<<<<<<<<<: "); + } + + /** + * 添加审核流程记录明细 + * @return + */ + private void insertData(){ + SimpleDateFormat dayFormat = new SimpleDateFormat("yyyy/MM/dd"); + String today=dayFormat.format(new Date()); + String month=today.substring(0,7); + Transaction Sqlca=null; + try{ + logger.info("【订单各个环节提交时间报表】【ProjectProcessTime】插入数据<<<<<<<<<<<<<"); + Sqlca = Transaction.createTransaction(CacheLoaderFactory.getDataSource()); + + String lastMonthFirstDay=getLastMonthFirstDay();//当前时间上月第一天对应的日期 + //插入新增数据 + String insertSql="insert into project_process_time(project_id,subjectname,provinces,distributor_name,project_no,specificname,car_type,customer_name)\n" + + "select p.id,a.subjectname,a.provinces,a.distributor_name,a.project_no,a.specificname,a.car_type,a.customer_name from approval_ledger a,lb_project_info p\n" + + "where a.project_no=p.project_no and not EXISTS (select 1 from project_process_time t where t.project_no=a.project_no)"; + //业务申请时间 信审终审通过时间 + String update1="update project_process_time t\n" + + " JOIN(SELECT\n" + + " vf.proj_id,\n" + + "\tfl.TJTIME,\n" + + "\tvf.ENDTIME \n" + + "FROM\n" + + "\tVI_FLOW_MONITORING vf,(\n" + + "\tSELECT\n" + + "\t\tFLOWUNID,\n" + + "\t\tmin( INPUTTIME ) TJTIME \n" + + "\tFROM\n" + + "\t\tFLOW_LOG \n" + + "\tWHERE\n" + + "\t\tlogcontent LIKE '%提交流程%' \n" + + "\tGROUP BY\n" + + "\t\tFLOWUNID \n" + + "\t) fl \n" + + "WHERE\n" + + "\tvf.FLOW_NAME = '业务申请流程'\n" + + " AND str_to_date( REPLACE ( LEFT ( vf.ENDTIME, 10 ), '/', '-' ), '%Y-%m-%d' ) >= str_to_date( '"+lastMonthFirstDay+"', '%Y-%m-%d' ) \t\n" + + "\tAND vf.OBJECTNO = fl.FLOWUNID\n" + + "\tand vf.phasename in ('结束','否决')\n" + + "\t) a on t.project_id= a.proj_id\n" + + "\tset t.business_apply_submit_time= a.TJTIME,t.business_apply_end_time=a.ENDTIME\n" + + "\tWHERE t.project_id = a.proj_id"; + //信审最后退回时间 信审累计退回次数 + String update2="update project_process_time t\n" + + " JOIN(SELECT\n" + + " vf.proj_id,\n" + + "\tfl.TJTIME,\n" + + "\tfl.thcs \n" + + "FROM\n" + + "\tVI_FLOW_MONITORING vf,(\n" + + "\tSELECT\n" + + "\t\tFLOWUNID,\n" + + "\t\tmax( INPUTTIME ) TJTIME,\n" + + "\t\tcount(1) thcs\n" + + "\tFROM\n" + + "\t\tFLOW_LOG \n" + + "\tWHERE\n" + + "\t\tlogcontent LIKE '%退回流程%' \n" + + "\tGROUP BY\n" + + "\t\tFLOWUNID \n" + + "\t) fl \n" + + "WHERE\n" + + "\tvf.FLOW_NAME = '业务申请流程' \n" + + "\tAND vf.OBJECTNO = fl.FLOWUNID\n" + + "\tand vf.phasename in ('结束','否决')\n" + + "\t) a on t.project_id= a.proj_id\n" + + "\tset t.business_apply_back_time= a.TJTIME,t.business_apply_back_number=a.thcs\n" + + "\tWHERE t.project_id = a.proj_id "; + //业务变更完成时间、业务变更次数 + String update3="update project_process_time t\n" + + " JOIN(SELECT\n" + + " vf.proj_id,\n" + + "\tmax(vf.ENDTIME) ENDTIME,\n" + + "\tcount(1) bgcs\n" + + "FROM\n" + + "\tVI_FLOW_MONITORING vf\n" + + "WHERE\n" + + "\tvf.FLOW_NAME = '业务变更流程' \n" + + "\tand vf.phasename in ('结束','否决')\n" + + "\tgroup by vf.proj_id\n" + + "\t) a on t.project_id= a.proj_id\n" + + "\tset t.business_change_end_time= a.ENDTIME,t.business_change_number=a.bgcs\n" + + "\tWHERE t.project_id = a.proj_id "; + + //合同签约完成时间(电子签)\ 合同制作结束时间 + String update4="update project_process_time t\n" + + " JOIN(SELECT\n" + + " vf.proj_id,\n" + + "\tvf.ENDTIME,\n" + + "\tl.INPUTTIME\n" + + "FROM\n" + + "\tVI_FLOW_MONITORING vf\n" + + "\tleft join VI_CONTRACTMAKEPRINTLIST vc on vf.OBJECTNO=vc.flowunid\n" + + "\tleft join LB_DOCATTRIBUTE l on vc.ATTRIBUTE_ID=l.id and filename like '%电子%' \n" + + "WHERE\n" + + "\tvf.FLOW_NAME = '合同制作流程' \n" + + "\t AND str_to_date( REPLACE ( LEFT ( vf.ENDTIME, 10 ), '/', '-' ), '%Y-%m-%d' ) >= str_to_date( '"+lastMonthFirstDay+"', '%Y-%m-%d' ) \t\n" + + "\tand vf.phasename in ('结束','否决')\n" + + "\t) a on t.project_id= a.proj_id\n" + + "\tset t.contract_approve_dzq_time= a.INPUTTIME,t.contract_approve_end_time=a.ENDTIME\n" + + "\tWHERE t.project_id = a.proj_id"; + + //合同变更完成时间、合同变更次数 + String update5="update project_process_time t\n" + + " JOIN(SELECT\n" + + " vf.proj_id,\n" + + "\tmax(vf.ENDTIME) ENDTIME,\n" + + "\tcount(1) bgcs\n" + + "FROM\n" + + "\tVI_FLOW_MONITORING vf\n" + + "WHERE\n" + + "\tvf.FLOW_NAME = '合同变更流程' \n" + + "\tand vf.phasename in ('结束','否决')\n" + + "\tgroup by vf.proj_id\n" + + "\t) a on t.project_id= a.proj_id\n" + + "\tset t.contract_change_end_time= a.ENDTIME,t.contract_change_number=a.bgcs\n" + + "\tWHERE t.project_id = a.proj_id "; + + //渠道付款申请提交时间、付款复审提交时间 + String update6="update project_process_time t\n" + + " JOIN(SELECT\n" + + " vf.proj_id,\n" + + "\tfl.TJTIME,\n" + + "\tvf.ENDTIME \n" + + "FROM\n" + + "\tVI_FLOW_MONITORING vf,(\n" + + "\tSELECT\n" + + "\t\tFLOWUNID,\n" + + "\t\tmin( INPUTTIME ) TJTIME \n" + + "\tFROM\n" + + "\t\tFLOW_LOG \n" + + "\tWHERE\n" + + "\t\tlogcontent LIKE '%提交流程%' \n" + + "\tGROUP BY\n" + + "\t\tFLOWUNID \n" + + "\t) fl \n" + + "WHERE\n" + + "\tvf.FLOW_NAME = '付款申请(汽车)' \n" + + "\t AND str_to_date( REPLACE ( LEFT ( vf.ENDTIME, 10 ), '/', '-' ), '%Y-%m-%d' ) >= str_to_date( '"+lastMonthFirstDay+"', '%Y-%m-%d' ) \t\n" + + "\tAND vf.OBJECTNO = fl.FLOWUNID\n" + + "\tand vf.phasename in ('结束','否决','通过')\n" + + "\t) a on t.project_id= a.proj_id\n" + + "\tset t.fund_payment_submit_time= a.TJTIME,t.fund_payment_end_time=a.ENDTIME\n" + + "\tWHERE t.project_id = a.proj_id"; + + //付款申请最后退回时间 付款申请累计退回次数 + String update7="update project_process_time t\n" + + " JOIN(SELECT\n" + + " vf.proj_id,\n" + + "\tfl.TJTIME,\n" + + "\tfl.thcs \n" + + "FROM\n" + + "\tVI_FLOW_MONITORING vf,(\n" + + "\tSELECT\n" + + "\t\tFLOWUNID,\n" + + "\t\tmax( INPUTTIME ) TJTIME,\n" + + "\t\tcount(1) thcs\n" + + "\tFROM\n" + + "\t\tFLOW_LOG \n" + + "\tWHERE\n" + + "\t\tlogcontent LIKE '%退回流程%' \n" + + "\tGROUP BY\n" + + "\t\tFLOWUNID \n" + + "\t) fl \n" + + "WHERE\n" + + "\tvf.FLOW_NAME = '付款申请(汽车)' \n" + + "\t AND str_to_date( REPLACE ( LEFT ( vf.ENDTIME, 10 ), '/', '-' ), '%Y-%m-%d' ) >= str_to_date( '"+lastMonthFirstDay+"', '%Y-%m-%d' ) \t\n" + + "\tAND vf.OBJECTNO = fl.FLOWUNID\n" + + "\tand vf.phasename in ('结束','否决','通过')\n" + + "\t) a on t.project_id= a.proj_id\n" + + "\tset t.fund_payment_back_time= a.TJTIME,t.fund_payment_back_number=a.thcs\n" + + "\tWHERE t.project_id = a.proj_id"; + + //实际付款申请提交时间 回盘成功提交时间 + String update8="update project_process_time t\n" + + " JOIN(SELECT\n" + + " lf.PROJECT_ID proj_id,\n" + + "\tmin(fl.TJTIME) TJTIME,\n" + + "\tmax(vf.ENDTIME) ENDTIME\n" + + "FROM\n" + + "\tVI_FLOW_MONITORING vf,(\n" + + "\tSELECT\n" + + "\t\tFLOWUNID,\n" + + "\t\tmin( INPUTTIME ) TJTIME \n" + + "\tFROM\n" + + "\t\tFLOW_LOG \n" + + "\tWHERE\n" + + "\t\tlogcontent LIKE '%提交流程%' \n" + + "\tGROUP BY\n" + + "\t\tFLOWUNID \n" + + "\t) fl ,LC_FUND_INCOME_temp lft,LC_FUND_INCOME lf\n" + + "WHERE\n" + + "\tvf.FLOW_NAME = '实际付款流程(汽车)' \n" + + "\t AND str_to_date( REPLACE ( LEFT ( vf.ENDTIME, 10 ), '/', '-' ), '%Y-%m-%d' ) >= str_to_date( '"+lastMonthFirstDay+"', '%Y-%m-%d' ) \t\n" + + "\tAND vf.OBJECTNO = fl.FLOWUNID\n" + + "\tand vf.OBJECTNO = lft.FLOWUNID\n" + + "\tand lft.income_id=lf.id and lft.EBANK_STATUS='05' \n" + + "\tand vf.phasename in ('结束','否决')\n" + + "\tgroup by lf.PROJECT_ID\n" + + "\t) a on t.project_id= a.proj_id\n" + + "\tset t.actual_payment_submit_time= a.TJTIME,t.actual_payment_end_time=a.ENDTIME\n" + + "\tWHERE t.project_id = a.proj_id "; + + + Sqlca.executeSQL(new SqlObject(insertSql)); + Sqlca.executeSQL(new SqlObject(update1)); + Sqlca.executeSQL(new SqlObject(update2)); + Sqlca.executeSQL(new SqlObject(update3)); + Sqlca.executeSQL(new SqlObject(update4)); + Sqlca.executeSQL(new SqlObject(update5)); + Sqlca.executeSQL(new SqlObject(update6)); + Sqlca.executeSQL(new SqlObject(update7)); + Sqlca.executeSQL(new SqlObject(update8)); + Sqlca.commit(); + }catch(Exception e){ + logger.error("<<<<<<<<<<<<<<<<<<<<<<【订单各个环节提交时间报表】【ProjectProcessTime】插入数据>>>>>>>>>>>>>>>>>>>>>>>"); + try { + Sqlca.rollback(); + } catch (JBOException e1) { + e1.printStackTrace(); + } + e.printStackTrace(); + }finally { + if(Sqlca!=null) { + try { + Sqlca.commit(); + Sqlca.disConnect(); + } catch (JBOException e) { + e.printStackTrace(); + } + } + } + } + + /** + * 获得下月的第一天 格式yyyy/MM/dd + * @return + */ + public static String getLastMonthFirstDay(){ + SimpleDateFormat dayFormat = new SimpleDateFormat("yyyy-MM-dd"); + Date date = new Date(); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + calendar.set(Calendar.DAY_OF_MONTH,1); + calendar.add(Calendar.MONTH, -1); + return dayFormat.format(calendar.getTime()); + } + public static void main(String[] args){ + SimpleDateFormat dayFormat = new SimpleDateFormat("yyyy-MM-dd"); + System.out.println("--"+dayFormat.format(new Date()).substring(0,7)); + + System.out.println("--"+getLastMonthFirstDay()); + } +} diff --git a/鎶ヨ〃/姹借溅绫绘姤琛ㄤ竴/璁㈠崟鍚勭幆鑺傛彁浜ゆ椂闂存姤琛.xml b/鎶ヨ〃/姹借溅绫绘姤琛ㄤ竴/璁㈠崟鍚勭幆鑺傛彁浜ゆ椂闂存姤琛.xml new file mode 100644 index 000000000..378754c63 --- /dev/null +++ b/鎶ヨ〃/姹借溅绫绘姤琛ㄤ竴/璁㈠崟鍚勭幆鑺傛彁浜ゆ椂闂存姤琛.xml @@ -0,0 +1,616 @@ + + + + + 2c9023815726a036015726a496b00001 + eleasing_mysql + SPRING + dataSourceJDBC + + + + + com.tenwa.report.query.dialect.MysqlDialect + Mysql + + + 2c9c81b978433095017844cff87b0002 + clms_oracle + SPRING + dataSourceJDBC + com.tenwa.report.query.dialect.OracleDialect + Oracle + + + + + ff8080817dc7ced3017f8409331f013d + 璁㈠崟鍚勪釜鐜妭鎻愪氦鏃堕棿鎶ヨ〃 + project_process_time + REPORT_CODE_1647187669791 + true + 37 + REPORT + 2c9c81b7685efbbc016931c675a50006 + + + ff8080817dc7ced3017f840a4ca7013f + + + + + + ff8080817dc7ced3017f840a13f0013e + 璁㈠崟鍚勪釜鐜妭鎻愪氦鏃堕棿鎶ヨ〃 + project_process_time + 2c9023815726a036015726a496b00001 + SIMPLESQL + select * from project_process_time + + + + ff8080817dc7ced3017f840b5e500151 + subjectname + STRING + + + subjectname + 100 + 0 + true + + false + false + false + false + + + + + + ff8080817dc7ced3017f840b5e500155 + provinces + STRING + + + provinces + 100 + 1 + true + + false + false + false + false + + + + + + ff8080817dc7ced3017f840b5e500150 + distributor_name + STRING + + + distributor_name + 100 + 2 + true + + false + false + false + false + + + + + + ff8080817dc7ced3017f840b5e50014e + project_no + STRING + + + project_no + 100 + 3 + true + + false + false + false + false + + + + + + ff8080817dc7ced3017f840b5e4f0144 + specificname + STRING + + + specificname + 100 + 4 + true + + false + false + false + false + + + + + + ff8080817dc7ced3017f840b5e500146 + car_type + STRING + + + car_type + 100 + 5 + true + + false + false + false + false + + + + + + ff8080817dc7ced3017f840b5e4f0140 + customer_name + STRING + + + customer_name + 100 + 6 + true + + false + false + false + false + + + + + + ff8080817dc7ced3017f840b5e500145 + business_apply_submit_time + STRING + + + business_apply_submit_time + 100 + 7 + true + + false + false + false + false + + + + + + ff8080817dc7ced3017f840b5e4f0141 + business_apply_back_time + STRING + + + business_apply_back_time + 100 + 8 + true + + false + false + false + false + + + + + + ff8080817dc7ced3017f840b5e500154 + business_apply_back_number + STRING + + + business_apply_back_number + 100 + 9 + true + + false + false + false + false + + + + + + ff8080817dc7ced3017f840b5e500157 + business_apply_end_time + STRING + + + business_apply_end_time + 100 + 10 + true + + false + false + false + false + + + + + + ff8080817dc7ced3017f840b5e50014a + business_change_end_time + STRING + + + business_change_end_time + 100 + 11 + true + + false + false + false + false + + + + + + ff8080817dc7ced3017f840b5e50014c + business_change_number + STRING + + + business_change_number + 100 + 12 + true + + false + false + false + false + + + + + + ff8080817dc7ced3017f840b5e500147 + contract_approve_dzq_time + STRING + + + contract_approve_dzq_time + 100 + 13 + true + + false + false + false + false + + + + + + ff8080817dc7ced3017f840b5e500156 + contract_approve_end_time + STRING + + + contract_approve_end_time + 100 + 14 + true + + false + false + false + false + + + + + + ff8080817dc7ced3017f840b5e50014f + contract_change_end_time + STRING + + + contract_change_end_time + 100 + 15 + true + + false + false + false + false + + + + + + ff8080817dc7ced3017f840b5e50014b + contract_change_number + STRING + + + contract_change_number + 100 + 16 + true + + false + false + false + false + + + + + + ff8080817dc7ced3017f840b5e500148 + fund_payment_submit_time + STRING + + + fund_payment_submit_time + 100 + 17 + true + + false + false + false + false + + + + + + ff8080817dc7ced3017f840b5e500149 + fund_payment_back_time + STRING + + + fund_payment_back_time + 100 + 18 + true + + false + false + false + false + + + + + + ff8080817dc7ced3017f840b5e500153 + fund_payment_back_number + STRING + + + fund_payment_back_number + 100 + 19 + true + + false + false + false + false + + + + + + ff8080817dc7ced3017f840b5e500152 + fund_payment_end_time + STRING + + + fund_payment_end_time + 100 + 20 + true + + false + false + false + false + + + + + + ff8080817dc7ced3017f840b5e4f0143 + actual_payment_submit_time + STRING + + + actual_payment_submit_time + 100 + 21 + true + + false + false + false + false + + + + + + ff8080817dc7ced3017f840b5e50014d + actual_payment_end_time + STRING + + + actual_payment_end_time + 100 + 22 + true + + false + false + false + false + + + + + + + + + + + ff8080817dc7ced3017f842941430158 + subjectname + subjectname + + FILTER + STRING + TEXT + 0 + + + ff8080817dc7ced3017f8429b3a00159 + distributor_name + distributor_name + + FILTER + STRING + TEXT + 1 + + + ff8080817dc7ced3017f842dd93e015a + specificname + specificname + + FILTER + STRING + TEXT + 2 + + + ff8080817dc7ced3017f842fd44f015b + business_apply_submit_time + business_apply_submit_time + + FILTER + DATE + DATERANGE + 3 + + + ff8080817dc7ced3017f84305b75015c + business_apply_end_time + business_apply_end_time + + FILTER + DATE + DATERANGE + 4 + + + ff8080817dc7ced3017f84309857015d + business_apply_back_number + business_apply_back_number + + FILTER + NUMBER + NUMBERRANGE + 5 + + + ff8080817dc7ced3017f84316eb4015e + fund_payment_end_time + fund_payment_end_time + + FILTER + DATE + DATERANGE + 6 + + + ff8080817dc7ced3017f84316eb4015f + fund_payment_back_number + fund_payment_back_number + + FILTER + NUMBER + NUMBERRANGE + 7 + + + ff8080817dc7ced3017f84316eb40160 + business_change_number + business_change_number + + FILTER + NUMBER + NUMBERRANGE + 8 + + + ff8080817dc7ced3017f843207680161 + contract_change_number + contract_change_number + + FILTER + NUMBER + NUMBERRANGE + 9 + + + + 20 + false + false + false + false + false +
+
+ + + + + ff8080817dc7ced3017f840a4ca7013f + 0 + 0 + 0 + TABLE#ff8080817dc7ced3017f840a13f0013e + ff8080817dc7ced3017f8409331f013d + TABLE + + +
From c007b4e30abb53efb13267f55e2233a9541547b9 Mon Sep 17 00:00:00 2001 From: "zhanglei@ap-leasing.com.cn" Date: Mon, 21 Mar 2022 13:07:12 +0800 Subject: [PATCH 6/7] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=B5=81=E7=A8=8B?= =?UTF-8?q?=E6=8F=90=E4=BA=A4=E6=97=B6=EF=BC=8C=E5=BD=93=E5=8F=AF=E9=80=89?= =?UTF-8?q?=E4=BA=BA=E5=91=98=E5=8F=AA=E5=89=A9=E4=B8=80=E4=BA=BA=E6=97=B6?= =?UTF-8?q?=EF=BC=8C=E4=B8=8D=E6=98=BE=E7=A4=BA=E9=97=AE=E9=A2=98=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- WebContent/Common/WorkFlow/FlowSubmitDialog.jsp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/WebContent/Common/WorkFlow/FlowSubmitDialog.jsp b/WebContent/Common/WorkFlow/FlowSubmitDialog.jsp index dd6367e1c..262397018 100644 --- a/WebContent/Common/WorkFlow/FlowSubmitDialog.jsp +++ b/WebContent/Common/WorkFlow/FlowSubmitDialog.jsp @@ -219,9 +219,9 @@ }else{ actionSet.hide(); }*/ - if(vUser.length==1){ + /*if(vUser.length==1){ actionSet.hide(); - } + }*/ } }else{ actionSet.html(""); From 89dd7199e20e67a99782f4ec211b7aea830d6140 Mon Sep 17 00:00:00 2001 From: maliang Date: Wed, 1 Jun 2022 10:57:37 +0800 Subject: [PATCH 7/7] =?UTF-8?q?fix:2022=E5=B9=B4=E5=90=88=E5=90=8C?= =?UTF-8?q?=E6=A8=A1=E6=9D=BF=E8=B0=83=E6=95=B4=EF=BC=8C=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E7=94=B5=E5=AD=90=E7=AD=BE=E7=BA=A6=E7=9A=84=E7=A9=BA=E7=99=BD?= =?UTF-8?q?=E9=A1=B5=EF=BC=8C=E8=B0=83=E6=95=B4=E5=90=88=E5=90=8C=E6=B0=B4?= =?UTF-8?q?=E5=8D=B0=E7=9A=84=E6=98=BE=E7=A4=BA=E9=A1=B5=E7=A0=81=E4=BD=8D?= =?UTF-8?q?=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../util/MakeOneCodeAndContractModel.java | 38 +++++++++---------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/src_tenwa/com/tenwa/makeContract/util/MakeOneCodeAndContractModel.java b/src_tenwa/com/tenwa/makeContract/util/MakeOneCodeAndContractModel.java index 5353de626..06411a646 100644 --- a/src_tenwa/com/tenwa/makeContract/util/MakeOneCodeAndContractModel.java +++ b/src_tenwa/com/tenwa/makeContract/util/MakeOneCodeAndContractModel.java @@ -346,8 +346,8 @@ public class MakeOneCodeAndContractModel { under10.addImage(img); } - if(pages>10&&"02".equals(leasform)&&("乘用车手签".equals(docName)||"商用车手签".equals(docName) - ||"乘用车电子签约".equals(docName)||"商用车电子签约".equals(docName))){ + if(pages>10&&"02".equals(leasform)&&("乘用车手签".equals(docName)||"商用车手签".equals(docName))){ + //||"乘用车电子签约".equals(docName)||"商用车电子签约".equals(docName))){ //车辆交接单水印 PdfContentByte under5 = stamp.getUnderContent(5); img.scaleAbsolute(180, 32); @@ -365,23 +365,23 @@ public class MakeOneCodeAndContractModel { under9.addImage(img); } -// if(pages>7&&"02".equals(leasform)&&("乘用车电子签约".equals(docName)||"商用车电子签约".equals(docName))){ -// //车辆交接单水印 -// PdfContentByte under5 = stamp.getUnderContent(5); -// img.scaleAbsolute(180, 32); -// img.setAbsolutePosition(400, 800); -// under5.addImage(img); -// -// PdfContentByte under7 = stamp.getUnderContent(6); -// img.scaleAbsolute(180, 32); -// img.setAbsolutePosition(400, 800); -// under7.addImage(img); -// //租金支付表水印 -// PdfContentByte under9 = stamp.getUnderContent(8); -// img.scaleAbsolute(180, 32); -// img.setAbsolutePosition(400, 800); -// under9.addImage(img); -// } + if(pages>6&&"02".equals(leasform)&&("乘用车电子签约".equals(docName)||"商用车电子签约".equals(docName))){ + //车辆交接单水印 + PdfContentByte under5 = stamp.getUnderContent(4); + img.scaleAbsolute(180, 32); + img.setAbsolutePosition(400, 800); + under5.addImage(img); + + PdfContentByte under7 = stamp.getUnderContent(5); + img.scaleAbsolute(180, 32); + img.setAbsolutePosition(400, 800); + under7.addImage(img); + //租金支付表水印 + PdfContentByte under9 = stamp.getUnderContent(7); + img.scaleAbsolute(180, 32); + img.setAbsolutePosition(400, 800); + under9.addImage(img); + } stamp.close();// 关闭 File tempfile = new File(InPdfFile); //删除原文件