diff --git a/resource/WEB-INF/CBS2ECConfig.xml b/resource/WEB-INF/CBS2ECConfig.xml index c8af3283c..e6bde94e6 100644 --- a/resource/WEB-INF/CBS2ECConfig.xml +++ b/resource/WEB-INF/CBS2ECConfig.xml @@ -22,4 +22,15 @@ + + + + + + + + +
+ + diff --git a/src/com/engine/salary/timer/SyncCBSAccountDetailsJob.java b/src/com/engine/salary/timer/SyncCBSAccountDetailsJob.java index 5d7abfa35..d8b7ab560 100644 --- a/src/com/engine/salary/timer/SyncCBSAccountDetailsJob.java +++ b/src/com/engine/salary/timer/SyncCBSAccountDetailsJob.java @@ -56,6 +56,55 @@ public class SyncCBSAccountDetailsJob extends BaseCronJob { */ private String paymentNatureList; + /** + * 鏃ユ湡绫诲瀷 0-浜ゆ槗鏃ユ湡 + */ + private String dateType; + /** + * 璐︽埛鍒楄〃 鏌ヨ璐︽埛鍒楄〃锛屼笉浼犻粯璁よ繑鍥炲叏閮 + */ + private String accountNoList; + /** + * 閾惰绫诲瀷鍒楄〃 渚嬪鎷涜CMB锛岄摱琛岀被鍨嬫灇涓捐闄勫綍4.1.5 + */ + private String bankTypeList; + /** + * 甯佺鍒楄〃 瑙侀檮褰曞竵绉嶆灇涓撅紝4.1.1 + */ + private String currencyList; + /** + * 鏄庣粏鏉ユ簮 + * B锛氶摱琛岋紝鍗抽摱琛岀洿鑱 + * U锛氱敤鎴凤紝鍗虫墜宸/ERP鎺ュ彛瀵煎叆 + * 涓嶄紶榛樿鏌ュ叏閮 + */ + private String detailedSources; + /** + * 鏄庣粏绫诲瀷 1-褰撴棩鏄庣粏 2-鍘嗗彶鏄庣粏 涓庢槑缁嗘棩鏈熸棤鍏筹紝浠呮爣璇嗘暟鎹潵婧愰摱琛岀殑涓嶅悓鎺ュ彛 + */ + private String currentFlag; + + /** + * 璐︽埛鎬ц川鍒楄〃 瀹㈡埛鍦ㄥ叕鍏辫缃>鍩虹淇℃伅>璐︽埛鎬ц川鏌ヨ鑷畾涔夊唴瀹癸紝渚嬪AA-缁煎悎鎴凤紝姝ゅ浼犲尖淎A鈥 + */ + private String accountNatureList; + /** + * 閾惰娴佹按鍙 閾惰娴佹按鍙 + */ + private String bankSerialNumber; + /** + * 浜ゆ槗娴佹按鍙 浜ゆ槗娴佹按鍙凤紝鐢盋BS8瀹氫箟鐢熸垚鐨勫敮涓鏍囪瘑 + */ + private Long transactionSerialNumber; + /** + * 鍗曚綅缂栫爜鍒楄〃 瀹㈡埛鍦ㄥ叕鍏辫缃>鍩虹淇℃伅>缁勭粐鏈烘瀯缁存姢锛屼緥濡0001-XX绉戞妧鏈夐檺鍏徃锛屾澶勪紶0001 + */ + private String unitCodeList; + /** + * ERP涓氬姟鍙傝冨彿 erpSerialNumber + */ + private String erpSerialNumber; + private SQLMapper getSQLMapper() { return MapperProxyFactory.getProxy(SQLMapper.class); } @@ -82,13 +131,19 @@ public class SyncCBSAccountDetailsJob extends BaseCronJob { requestParam.setStartDate(nowDate); requestParam.setEndDate(nowDate); } - requestParam.setDateType("0"); - if (StrUtil.isNotBlank(loanType)) { - requestParam.setLoanType(loanType); - } - if (StrUtil.isNotBlank(paymentNatureList)) { - requestParam.setPaymentNatureList(Arrays.stream(paymentNatureList.split(",")).collect(Collectors.toList())); - } + requestParam.setLoanType(loanType); + requestParam.setPaymentNatureList(paymentNatureList == null ? null :Arrays.stream(paymentNatureList.split(",")).collect(Collectors.toList())); + requestParam.setDateType(dateType); + requestParam.setAccountNoList(accountNoList== null ? null :Arrays.stream(accountNoList.split(",")).collect(Collectors.toList())); + requestParam.setBankTypeList(bankTypeList== null ? null :Arrays.stream(bankTypeList.split(",")).collect(Collectors.toList())); + requestParam.setCurrencyList(currencyList== null ? null :Arrays.stream(currencyList.split(",")).collect(Collectors.toList())); + requestParam.setDetailedSources(detailedSources); + requestParam.setCurrentFlag(currentFlag); + requestParam.setAccountNatureList(accountNatureList== null ? null :Arrays.stream(accountNatureList.split(",")).collect(Collectors.toList())); + requestParam.setBankSerialNumber(bankSerialNumber); + requestParam.setTransactionSerialNumber(transactionSerialNumber); + requestParam.setUnitCodeList(unitCodeList== null ? null :Arrays.stream(unitCodeList.split(",")).collect(Collectors.toList())); + requestParam.setErpSerialNumber(erpSerialNumber); //鏌ヨ鍓1000鏉℃暟鎹 AccountManagementClient accountManagementClient = new AccountManagementClient(); diff --git a/src/com/engine/salary/timer/SyncCBSBillPoolJob.java b/src/com/engine/salary/timer/SyncCBSBillPoolJob.java new file mode 100644 index 000000000..48d885ec3 --- /dev/null +++ b/src/com/engine/salary/timer/SyncCBSBillPoolJob.java @@ -0,0 +1,311 @@ +package com.engine.salary.timer; + +import cn.hutool.core.util.StrUtil; +import com.engine.salary.exception.SalaryRunTimeException; +import com.engine.salary.mapper.SQLMapper; +import com.engine.salary.remote.cbs8.client.BillManagementClient; +import com.engine.salary.remote.cbs8.config.EBS2ECConfig; +import com.engine.salary.remote.cbs8.request.GetDtaRequest; +import com.engine.salary.remote.cbs8.response.GetDtaResponse; +import com.engine.salary.util.JsonUtil; +import com.engine.salary.util.db.MapperProxyFactory; +import com.thoughtworks.xstream.XStream; +import com.thoughtworks.xstream.security.AnyTypePermission; +import lombok.extern.slf4j.Slf4j; +import weaver.conn.RecordSet; +import weaver.formmode.setup.ModeRightInfo; +import weaver.general.GCONST; +import weaver.general.TimeUtil; +import weaver.general.Util; +import weaver.hrm.User; +import weaver.interfaces.schedule.BaseCronJob; + +import java.io.File; +import java.math.BigDecimal; +import java.text.SimpleDateFormat; +import java.time.LocalDate; +import java.util.*; +import java.util.stream.Collectors; + +/** + * 鑾峰彇绁ㄦ嵁姹 + *

Copyright: Copyright (c) 2024

+ *

Company: 娉涘井杞欢

+ * + * @author qiantao + * @version 1.0 + **/ +@Slf4j +public class SyncCBSBillPoolJob extends BaseCronJob { + + /** + * 鎸佺エ浜哄崟浣嶇紪鐮 澶氶夈傚~鍦╟bs绯荤粺鍏叡璁剧疆>鍩虹淇℃伅>缁勭粐鏈烘瀯缁存姢鐨勫崟浣嶇紪鐮 + */ + private String displayHoldOrganizationCodeList; + /** + * 鎸佺エ浜鸿处鍙 澶氶夈 + */ + private String holdAccountList; + + /** + * 绯荤粺绁ㄦ嵁绫诲瀷 澶氶夈傛寜闄勫綍4.1.3绁ㄦ嵁绫诲瀷-绁ㄦ嵁鐘舵-娴侀氭爣蹇楃骇鑱斿叧绯昏〃閫夋嫨鍚庢寜椤哄簭濉啓銆傜郴缁熺エ鎹被鍨嬫灇涓捐闄勫綍4.1.3銆傜エ鎹姸鎬佹灇涓捐闄勫綍4.1.4銆傛祦閫氭爣蹇楁灇涓捐闄勫綍4.1.5銆 + */ + private String billVarietyList; + + /** + * 鍑虹エ鏃ユ湡璧 鏍煎紡涓簓yyy-mm-dd锛屽嚭绁ㄦ棩鏈熻捣姝笉鍏佽涓杈规湁鍊间竴杈规棤鍊硷紝鏃ユ湡闂撮殧鏈澶т负涓骞 + */ + private String issueDateStart; + + /** + * 鍑虹エ鏃ユ湡姝 鏍煎紡涓簓yyy-mm-dd锛屽嚭绁ㄦ棩鏈熻捣姝笉鍏佽涓杈规湁鍊间竴杈规棤鍊硷紝鏃ユ湡闂撮殧鏈澶т负涓骞 + */ + private String issueDateEnd; + + + /** + * 鍒版湡鏃ユ湡璧 鏍煎紡涓簓yyy-mm-dd锛屽埌鏈熸棩鏈熻捣姝笉鍏佽涓杈规湁鍊间竴杈规棤鍊硷紝鏃ユ湡闂撮殧鏈澶т负涓骞 + */ + private String dueDateStart; + /** + * 鍒版湡鏃ユ湡姝 鏍煎紡涓簓yyy-mm-dd锛屽埌鏈熸棩鏈熻捣姝笉鍏佽涓杈规湁鍊间竴杈规棤鍊硷紝鏃ユ湡闂撮殧鏈澶т负涓骞 + */ + private String dueDateEnd; + /** + * 绁ㄦ嵁绉嶇被 AC01-閾舵壙锛孉C02-鍟嗘壙 + */ + private String billType; + /** + * 绁ㄦ嵁鏉ユ簮 澶氶夈1-鐩磋仈浜ゆ槗锛2-鍙拌处浜ゆ槗锛3-鍙拌处鐧昏锛4-鎸戠エ鍚屾锛5-浠诲姟鍚屾 + */ + private String draftSourceList; + /** + * 鎸佺エ閾惰绫诲瀷 澶氶夈傝闄勫綍4.1.1.閾惰绫诲瀷鏋氫妇 + */ + private String holdBankTypeList; + + /** + * 鎸佺エ绛炬敹鏃ユ湡璧 鏍煎紡涓簓yyy-mm-dd锛屾寔绁ㄧ鏀舵棩鏈熻捣姝笉鍏佽涓杈规湁鍊间竴杈规棤鍊硷紝鏃ユ湡闂撮殧鏈澶т负涓骞 + */ + private String holdSignDateStart; + /** + * 鎸佺エ绛炬敹鏃ユ湡姝 鏍煎紡涓簓yyy-mm-dd锛屾寔绁ㄧ鏀舵棩鏈熻捣姝笉鍏佽涓杈规湁鍊间竴杈规棤鍊硷紝鏃ユ湡闂撮殧鏈澶т负涓骞 + */ + private String holdSignDateEnd; + /** + * 绯荤粺绁ㄦ嵁缂栧彿 + */ + private String draftNbr; + /** + * 绁ㄦ嵁(鍖)鍙 + */ + private String billNbr; + + /** + * 绁ㄦ嵁閲戦璧 澶т簬绛変簬0,鏈澶氫负涓や綅灏忔暟涓旀暣鏁颁綅涓婇檺涓13浣嶃傜エ鎹噾棰濊捣姝笉鍏佽涓杈规湁鍊间竴杈规棤鍊笺傚崟浣嶏紙鍏冿級 + */ + private BigDecimal billAmountStart; + + /** + * 绁ㄦ嵁閲戦姝 澶т簬绛変簬0,鏈澶氫负涓や綅灏忔暟涓旀暣鏁颁綅涓婇檺涓13浣嶃傜エ鎹噾棰濊捣姝笉鍏佽涓杈规湁鍊间竴杈规棤鍊笺傚崟浣嶏紙鍏冿級 + */ + private BigDecimal billAmountEnd; + + /** + * 瀛愮エ鍖洪棿璧 瀛愮エ鍖洪棿璧锋涓嶅厑璁镐竴杈规湁鍊间竴杈规棤鍊硷紝鏈澶12浣 + */ + private String subBillIntervalStart; + /** + * 瀛愮エ鍖洪棿姝 瀛愮エ鍖洪棿璧锋涓嶅厑璁镐竴杈规湁鍊间竴杈规棤鍊,鏈澶12浣 + */ + private String subBillIntervalEnd; + + /** + * 绁ㄦ嵁鐘舵 + */ + private String billStsList; + /** + * 娴侀氭爣蹇 + */ + private String billTrsStsList; + /** + * 搴撳瓨鐘舵 1-宸插叆搴擄紝2-宸插嚭搴撱 涓虹┖鏃堕粯璁ゆ煡璇㈠叏閮ㄦ暟鎹 + */ + private String stockFlag; + /** + * 鍑哄簱鏂瑰紡 0-绌猴紝2-鑳屼功锛3-璐ㄦ娂锛4-瑙h川锛5-璐寸幇锛6-鍒嗗寘锛7-缁撴竻, 8-浣滃簾銆 涓虹┖鏃堕粯璁ゆ煡璇㈠叏閮ㄦ暟鎹 + */ + private String outInvType; + /** + * 璁板綍鐘舵 NOR-姝e父锛孶SE-鍗犵敤锛孌EL-鍒犻櫎 SUC-瀹屾垚銆備负绌烘椂榛樿鏌ヨ鍏ㄩ儴鏁版嵁 + */ + private String lockFlag; + + + private SQLMapper getSQLMapper() { + return MapperProxyFactory.getProxy(SQLMapper.class); + } + + @Override + public void execute() { + User user = new User(); + user.setUid(1); + user.setLoginid("sysadmin"); + + try { + GetDtaRequest requestParam = new GetDtaRequest(); + requestParam.setCurrentPage(1); + requestParam.setPageSize(1000); + + if (StrUtil.isBlank(displayHoldOrganizationCodeList)) { + throw new SalaryRunTimeException("鎸佺エ浜哄崟浣嶇紪鐮佷负绌猴紝璇峰湪璁″垝浠诲姟閰嶇疆姝ら」锛"); + } + requestParam.setDisplayHoldOrganizationCodeList(Arrays.stream(displayHoldOrganizationCodeList.split(",")).collect(Collectors.toList())); + + if (StrUtil.isBlank(holdAccountList)) { + throw new SalaryRunTimeException("鎸佺エ浜鸿处鍙蜂负绌猴紝璇峰湪璁″垝浠诲姟閰嶇疆姝ら」锛"); + } + requestParam.setHoldAccountList(Arrays.stream(holdAccountList.split(",")).collect(Collectors.toList())); + + if (StrUtil.isNotBlank(issueDateStart) && StrUtil.isNotBlank(issueDateEnd)) { + requestParam.setIssueDateStart(issueDateStart); + requestParam.setIssueDateEnd(issueDateEnd); + } else { + String nowDate = LocalDate.now().toString(); + requestParam.setIssueDateStart(nowDate); + requestParam.setIssueDateEnd(nowDate); + } + + //绯荤粺绁ㄦ嵁绫诲瀷 + requestParam.setBillVarietyList(Arrays.stream(Util.null2String(billVarietyList).split(",")).collect(Collectors.toList())); + + requestParam.setDueDateStart(dueDateStart); + requestParam.setDueDateEnd(dueDateEnd); + requestParam.setBillType(billType); + requestParam.setDraftSourceList(draftSourceList==null ? null :Arrays.stream(draftSourceList.split(",")).collect(Collectors.toList())); + requestParam.setHoldBankTypeList(holdBankTypeList==null ? null :Arrays.stream(holdBankTypeList.split(",")).collect(Collectors.toList())); + requestParam.setHoldSignDateStart(holdSignDateStart); + requestParam.setHoldSignDateEnd(holdSignDateEnd); + requestParam.setDraftNbr(draftNbr); + requestParam.setBillNbr(billNbr); + requestParam.setBillAmountStart(billAmountStart); + requestParam.setBillAmountEnd(billAmountEnd); + requestParam.setSubBillIntervalStart(subBillIntervalStart); + requestParam.setSubBillIntervalEnd(subBillIntervalEnd); + requestParam.setBillStsList(billStsList==null ? null :Arrays.stream(billStsList.split(",")).collect(Collectors.toList())); + requestParam.setBillTrsStsList(billTrsStsList==null ? null :Arrays.stream(billTrsStsList.split(",")).collect(Collectors.toList())); + requestParam.setStockFlag(stockFlag); + requestParam.setOutInvType(outInvType); + requestParam.setLockFlag(lockFlag); + + //鏌ヨ鍓1000鏉℃暟鎹 + BillManagementClient bailManagementClient = new BillManagementClient(); + GetDtaResponse response = bailManagementClient.dtaQuery(requestParam); + List list = response.getData().getList(); + + //鍒ゆ柇鏄惁杩樺瓨鍦ㄦ暟鎹紝閫掑綊鏌ヨ + boolean hasNextPage = response.getData().isHasNextPage(); + int nextPage = response.getData().getNextPage(); + while (hasNextPage) { + requestParam.setCurrentPage(nextPage); + GetDtaResponse nextPageResponse = bailManagementClient.dtaQuery(requestParam); + List pageData = nextPageResponse.getData().getList(); + list.addAll(pageData); + hasNextPage = nextPageResponse.getData().isHasNextPage(); + nextPage = nextPageResponse.getData().getNextPage(); + } + + //鍔犺浇cbs閰嶇疆 + XStream xStream = new XStream(); + String resource = GCONST.getRootPath() + "WEB-INF" + File.separatorChar + "CBS2ECConfig.xml"; + File file = new File(resource); + xStream.addPermission(AnyTypePermission.ANY); + xStream.processAnnotations(EBS2ECConfig.class); + EBS2ECConfig dto = (EBS2ECConfig) xStream.fromXML(file); + EBS2ECConfig.Table table = dto.getTables().get(2); + Integer modeId = table.getModeId(); + String tableName = table.getKey(); + + //鑾峰彇宸插瓨鍦ㄧ殑鏁版嵁 + EBS2ECConfig.Table.Field uniqueField = table.getFields().stream().filter(EBS2ECConfig.Table.Field::isUnique).findFirst().orElse(null); + if (uniqueField == null) { + throw new SalaryRunTimeException("鏈缃敮涓鏍囪瘑瀛楁"); + } + String uniqueKey = uniqueField.getKey(); + String uniqueEbsKey = uniqueField.getEbsKey(); + List uniqueDataKeys = getSQLMapper().listString(String.format("select %s from %s", uniqueKey, tableName)); + + + for (GetDtaResponse.Detail detail : list) { + Map detailMap = JsonUtil.parseMap(detail, String.class); + String uniqueData = detailMap.get(uniqueEbsKey); + if (StrUtil.isBlank(uniqueData)) { + log.warn("璺宠繃cbs绁ㄦ嵁姹犳暟鎹紝鍞竴鏍囪瘑杩斿洖绌,uniqueKey:{},uniqueEbsKey:{}", uniqueKey, uniqueEbsKey); + continue; + } + if (uniqueDataKeys.contains(uniqueData)) { + log.warn("璺宠繃cbs绁ㄦ嵁姹犳暟鎹紝鏁版嵁宸插瓨鍦,uniqueKey:{},uniqueEbsKey:{},鍊納}", uniqueKey, uniqueEbsKey, uniqueData); + continue; + } + + List fields = new ArrayList() {{ + add("formmodeid"); + add("modedatacreater"); + add("modedatacreatertype"); + add("modedatacreatedate"); + add("modedatacreatetime"); + }}; + String currDate = TimeUtil.getCurrentDateString(); + SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss"); + String currTime = sdf.format(new Date()); + List values = new ArrayList() {{ + add(modeId); + add(1); + add(0); + add(String.format("'%s'", currDate)); + add(String.format("'%s'", currTime)); + }}; + + for (EBS2ECConfig.Table.Field field : table.getFields()) { + //鏁版嵁搴撳瓧娈 + String fieldName = field.getKey(); + fields.add(fieldName); + // 鎺ュ彛鍊 + String value = detailMap.getOrDefault(field.getEbsKey(), ""); + values.add(String.format("'%s'", value)); + } + + //涓氬姟閫昏緫瀛楁锛屾敹娆剧被鍨 + fields.add("pjlx"); + //搴斾粯绁ㄦ嵁 + Integer pjlx; + if ("ISS".equals(detail.getBillVariety())) { + pjlx = 2; + } else { + //搴旀敹绁ㄦ嵁 0锛氶摱鎵 1锛氬晢鎵 + pjlx = "AC01".equals(detail.getBillType()) ? 0 : 1; + } + values.add(pjlx); + + + String sql = String.format("insert into %s (%s) values (%s)", tableName, String.join(",", fields), values.stream().map(Object::toString).collect(Collectors.joining(","))); + RecordSet rs = new RecordSet(); + rs.execute(sql); + + if (modeId != null) { + rs.executeQuery("select max(id) from " + tableName); + int mainId = 0; + if (rs.next()) { + mainId = rs.getInt(1); + } + ModeRightInfo ModeRightInfo = new ModeRightInfo(); + ModeRightInfo.setNewRight(true); + ModeRightInfo.editModeDataShare(1, modeId, mainId); + } + } + } catch (Exception e) { + log.error("鑾峰彇CBS绁ㄦ嵁姹犳暟鎹け璐", e); + throw new SalaryRunTimeException("鑾峰彇CBS绁ㄦ嵁姹犳暟鎹け璐," + e.getMessage(), e); + } + } +} diff --git a/src/com/engine/salary/timer/SyncCBSPayDetailsJob.java b/src/com/engine/salary/timer/SyncCBSPayDetailsJob.java index b33978318..527d42c07 100644 --- a/src/com/engine/salary/timer/SyncCBSPayDetailsJob.java +++ b/src/com/engine/salary/timer/SyncCBSPayDetailsJob.java @@ -23,6 +23,7 @@ import weaver.hrm.User; import weaver.interfaces.schedule.BaseCronJob; import java.io.File; +import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.time.LocalDate; import java.util.*; @@ -49,19 +50,99 @@ public class SyncCBSPayDetailsJob extends BaseCronJob { */ private String holdAccountList; + /** + * 绯荤粺绁ㄦ嵁绫诲瀷 澶氶夈傛寜闄勫綍4.1.3绁ㄦ嵁绫诲瀷-绁ㄦ嵁鐘舵-娴侀氭爣蹇楃骇鑱斿叧绯昏〃閫夋嫨鍚庢寜椤哄簭濉啓銆傜郴缁熺エ鎹被鍨嬫灇涓捐闄勫綍4.1.3銆傜エ鎹姸鎬佹灇涓捐闄勫綍4.1.4銆傛祦閫氭爣蹇楁灇涓捐闄勫綍4.1.5銆 + */ + private String billVarietyList; + /** * 鍑虹エ鏃ユ湡璧 鏍煎紡涓簓yyy-mm-dd锛屽嚭绁ㄦ棩鏈熻捣姝笉鍏佽涓杈规湁鍊间竴杈规棤鍊硷紝鏃ユ湡闂撮殧鏈澶т负涓骞 */ private String issueDateStart; + /** * 鍑虹エ鏃ユ湡姝 鏍煎紡涓簓yyy-mm-dd锛屽嚭绁ㄦ棩鏈熻捣姝笉鍏佽涓杈规湁鍊间竴杈规棤鍊硷紝鏃ユ湡闂撮殧鏈澶т负涓骞 */ private String issueDateEnd; + /** - * 绯荤粺绁ㄦ嵁绫诲瀷 澶氶夈傛寜闄勫綍4.1.3绁ㄦ嵁绫诲瀷-绁ㄦ嵁鐘舵-娴侀氭爣蹇楃骇鑱斿叧绯昏〃閫夋嫨鍚庢寜椤哄簭濉啓銆傜郴缁熺エ鎹被鍨嬫灇涓捐闄勫綍4.1.3銆傜エ鎹姸鎬佹灇涓捐闄勫綍4.1.4銆傛祦閫氭爣蹇楁灇涓捐闄勫綍4.1.5銆 + * 鍒版湡鏃ユ湡璧 鏍煎紡涓簓yyy-mm-dd锛屽埌鏈熸棩鏈熻捣姝笉鍏佽涓杈规湁鍊间竴杈规棤鍊硷紝鏃ユ湡闂撮殧鏈澶т负涓骞 */ - private String billVarietyList; + private String dueDateStart; + /** + * 鍒版湡鏃ユ湡姝 鏍煎紡涓簓yyy-mm-dd锛屽埌鏈熸棩鏈熻捣姝笉鍏佽涓杈规湁鍊间竴杈规棤鍊硷紝鏃ユ湡闂撮殧鏈澶т负涓骞 + */ + private String dueDateEnd; + /** + * 绁ㄦ嵁绉嶇被 AC01-閾舵壙锛孉C02-鍟嗘壙 + */ + private String billType; + /** + * 绁ㄦ嵁鏉ユ簮 澶氶夈1-鐩磋仈浜ゆ槗锛2-鍙拌处浜ゆ槗锛3-鍙拌处鐧昏锛4-鎸戠エ鍚屾锛5-浠诲姟鍚屾 + */ + private String draftSourceList; + /** + * 鎸佺エ閾惰绫诲瀷 澶氶夈傝闄勫綍4.1.1.閾惰绫诲瀷鏋氫妇 + */ + private String holdBankTypeList; + + /** + * 鎸佺エ绛炬敹鏃ユ湡璧 鏍煎紡涓簓yyy-mm-dd锛屾寔绁ㄧ鏀舵棩鏈熻捣姝笉鍏佽涓杈规湁鍊间竴杈规棤鍊硷紝鏃ユ湡闂撮殧鏈澶т负涓骞 + */ + private String holdSignDateStart; + /** + * 鎸佺エ绛炬敹鏃ユ湡姝 鏍煎紡涓簓yyy-mm-dd锛屾寔绁ㄧ鏀舵棩鏈熻捣姝笉鍏佽涓杈规湁鍊间竴杈规棤鍊硷紝鏃ユ湡闂撮殧鏈澶т负涓骞 + */ + private String holdSignDateEnd; + /** + * 绯荤粺绁ㄦ嵁缂栧彿 + */ + private String draftNbr; + /** + * 绁ㄦ嵁(鍖)鍙 + */ + private String billNbr; + + /** + * 绁ㄦ嵁閲戦璧 澶т簬绛変簬0,鏈澶氫负涓や綅灏忔暟涓旀暣鏁颁綅涓婇檺涓13浣嶃傜エ鎹噾棰濊捣姝笉鍏佽涓杈规湁鍊间竴杈规棤鍊笺傚崟浣嶏紙鍏冿級 + */ + private BigDecimal billAmountStart; + + /** + * 绁ㄦ嵁閲戦姝 澶т簬绛変簬0,鏈澶氫负涓や綅灏忔暟涓旀暣鏁颁綅涓婇檺涓13浣嶃傜エ鎹噾棰濊捣姝笉鍏佽涓杈规湁鍊间竴杈规棤鍊笺傚崟浣嶏紙鍏冿級 + */ + private BigDecimal billAmountEnd; + + /** + * 瀛愮エ鍖洪棿璧 瀛愮エ鍖洪棿璧锋涓嶅厑璁镐竴杈规湁鍊间竴杈规棤鍊硷紝鏈澶12浣 + */ + private String subBillIntervalStart; + /** + * 瀛愮エ鍖洪棿姝 瀛愮エ鍖洪棿璧锋涓嶅厑璁镐竴杈规湁鍊间竴杈规棤鍊,鏈澶12浣 + */ + private String subBillIntervalEnd; + + /** + * 绁ㄦ嵁鐘舵 + */ + private String billStsList; + /** + * 娴侀氭爣蹇 + */ + private String billTrsStsList; + /** + * 搴撳瓨鐘舵 1-宸插叆搴擄紝2-宸插嚭搴撱 涓虹┖鏃堕粯璁ゆ煡璇㈠叏閮ㄦ暟鎹 + */ + private String stockFlag; + /** + * 鍑哄簱鏂瑰紡 0-绌猴紝2-鑳屼功锛3-璐ㄦ娂锛4-瑙h川锛5-璐寸幇锛6-鍒嗗寘锛7-缁撴竻, 8-浣滃簾銆 涓虹┖鏃堕粯璁ゆ煡璇㈠叏閮ㄦ暟鎹 + */ + private String outInvType; + /** + * 璁板綍鐘舵 NOR-姝e父锛孶SE-鍗犵敤锛孌EL-鍒犻櫎 SUC-瀹屾垚銆備负绌烘椂榛樿鏌ヨ鍏ㄩ儴鏁版嵁 + */ + private String lockFlag; private SQLMapper getSQLMapper() { return MapperProxyFactory.getProxy(SQLMapper.class); @@ -82,6 +163,16 @@ public class SyncCBSPayDetailsJob extends BaseCronJob { requestParam.setCurrentPage(1); requestParam.setPageSize(1000); + if (StrUtil.isBlank(displayHoldOrganizationCodeList)) { + throw new SalaryRunTimeException("鎸佺エ浜哄崟浣嶇紪鐮佷负绌猴紝璇峰湪璁″垝浠诲姟閰嶇疆姝ら」锛"); + } + requestParam.setDisplayHoldOrganizationCodeList(Arrays.stream(displayHoldOrganizationCodeList.split(",")).collect(Collectors.toList())); + + if (StrUtil.isBlank(holdAccountList)) { + throw new SalaryRunTimeException("鎸佺エ浜鸿处鍙蜂负绌猴紝璇峰湪璁″垝浠诲姟閰嶇疆姝ら」锛"); + } + requestParam.setHoldAccountList(Arrays.stream(holdAccountList.split(",")).collect(Collectors.toList())); + if (StrUtil.isNotBlank(issueDateStart) && StrUtil.isNotBlank(issueDateEnd)) { requestParam.setIssueDateStart(issueDateStart); requestParam.setIssueDateEnd(issueDateEnd); @@ -90,16 +181,29 @@ public class SyncCBSPayDetailsJob extends BaseCronJob { requestParam.setIssueDateStart(nowDate); requestParam.setIssueDateEnd(nowDate); } - if(StrUtil.isBlank(displayHoldOrganizationCodeList)){ - throw new SalaryRunTimeException("鎸佺エ浜哄崟浣嶇紪鐮佷负绌猴紝璇峰湪璁″垝浠诲姟閰嶇疆姝ら」锛"); - } - requestParam.setDisplayHoldOrganizationCodeList(Arrays.stream(displayHoldOrganizationCodeList.split(",")).collect(Collectors.toList())); - if(StrUtil.isBlank(holdAccountList)){ - throw new SalaryRunTimeException("鎸佺エ浜鸿处鍙蜂负绌猴紝璇峰湪璁″垝浠诲姟閰嶇疆姝ら」锛"); - } - requestParam.setHoldAccountList(Arrays.stream(holdAccountList.split(",")).collect(Collectors.toList())); + + //绯荤粺绁ㄦ嵁绫诲瀷 requestParam.setBillVarietyList(Arrays.stream(billVarietyList.split(",")).collect(Collectors.toList())); + requestParam.setDueDateStart(dueDateStart); + requestParam.setDueDateEnd(dueDateEnd); + requestParam.setBillType(billType); + requestParam.setDraftSourceList(draftSourceList==null ? null :Arrays.stream(draftSourceList.split(",")).collect(Collectors.toList())); + requestParam.setHoldBankTypeList(holdBankTypeList==null ? null :Arrays.stream(holdBankTypeList.split(",")).collect(Collectors.toList())); + requestParam.setHoldSignDateStart(holdSignDateStart); + requestParam.setHoldSignDateEnd(holdSignDateEnd); + requestParam.setDraftNbr(draftNbr); + requestParam.setBillNbr(billNbr); + requestParam.setBillAmountStart(billAmountStart); + requestParam.setBillAmountEnd(billAmountEnd); + requestParam.setSubBillIntervalStart(subBillIntervalStart); + requestParam.setSubBillIntervalEnd(subBillIntervalEnd); + requestParam.setBillStsList(billStsList==null ? null :Arrays.stream(billStsList.split(",")).collect(Collectors.toList())); + requestParam.setBillTrsStsList(billTrsStsList==null ? null :Arrays.stream(billTrsStsList.split(",")).collect(Collectors.toList())); + requestParam.setStockFlag(stockFlag); + requestParam.setOutInvType(outInvType); + requestParam.setLockFlag(lockFlag); + //鏌ヨ鍓1000鏉℃暟鎹 BillManagementClient bailManagementClient = new BillManagementClient(); GetDtaResponse response = bailManagementClient.dtaQuery(requestParam); @@ -146,11 +250,11 @@ public class SyncCBSPayDetailsJob extends BaseCronJob { Map detailMap = JsonUtil.parseMap(detail, String.class); String uniqueData = detailMap.get(uniqueEbsKey); if (StrUtil.isBlank(uniqueData)) { - log.warn("璺宠繃cbs绁ㄦ嵁鏁版嵁锛屽敮涓鏍囪瘑杩斿洖绌,uniqueKey:{},uniqueEbsKey:{}", uniqueKey, uniqueEbsKey); + log.warn("璺宠繃cbs绁ㄦ嵁鏀舵鏁版嵁锛屽敮涓鏍囪瘑杩斿洖绌,uniqueKey:{},uniqueEbsKey:{}", uniqueKey, uniqueEbsKey); continue; } if (uniqueDataKeys.contains(uniqueData)) { - log.warn("璺宠繃cbs绁ㄦ嵁鏁版嵁锛屾暟鎹凡瀛樺湪,uniqueKey:{},uniqueEbsKey:{},鍊納}", uniqueKey, uniqueEbsKey, uniqueData); + log.warn("璺宠繃cbs绁ㄦ嵁鏀舵鏁版嵁锛屾暟鎹凡瀛樺湪,uniqueKey:{},uniqueEbsKey:{},鍊納}", uniqueKey, uniqueEbsKey, uniqueData); continue; } @@ -189,7 +293,8 @@ public class SyncCBSPayDetailsJob extends BaseCronJob { //涓氬姟閫昏緫瀛楁锛屾敹娆剧被鍨 fields.add("sklx"); - values. add("AC01".equals(detailMap.get("billType")) ? 0 : 1); + //搴旀敹绁ㄦ嵁 0锛氶摱鎵 1锛氬晢鎵 + values. add("AC01".equals(detail.getBillType()) ? 0 : 1); /* * 璁ら閫昏緫锛 @@ -232,8 +337,8 @@ public class SyncCBSPayDetailsJob extends BaseCronJob { } } } catch (Exception e) { - log.error("鑾峰彇CBS绁ㄦ嵁淇℃伅澶辫触", e); - throw new SalaryRunTimeException("鑾峰彇CBS绁ㄦ嵁淇℃伅澶辫触," + e.getMessage(), e); + log.error("鑾峰彇CBS绁ㄦ嵁鏀舵鏁版嵁澶辫触", e); + throw new SalaryRunTimeException("鑾峰彇CBS绁ㄦ嵁鏀舵鏁版嵁淇℃伅澶辫触," + e.getMessage(), e); } } }