From 42470bce8aec4f68c54891e8972a0b095c812360 Mon Sep 17 00:00:00 2001 From: zhengyf Date: Thu, 14 Aug 2025 23:52:31 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E6=96=B0=E5=A2=9E=E6=8E=A8=E9=80=81?= =?UTF-8?q?=E5=87=AD=E8=AF=81=E7=94=9F=E6=88=90u8c=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/service/impl/ICoreServiceImpl.java | 707 +++++++----------- .../impl/AePushVoucherLogServiceImpl.java | 4 + .../hzya/frame/voucher/utils/Attribute.java | 19 + .../hzya/frame/voucher/utils/PushU8CUtil.java | 81 ++ .../hzya/frame/voucher/utils/ZTResult.java | 18 + .../src/main/resources/application-gmdev.yml | 7 +- 6 files changed, 408 insertions(+), 428 deletions(-) create mode 100644 base-buildpackage/src/main/java/com/hzya/frame/voucher/utils/Attribute.java create mode 100644 base-buildpackage/src/main/java/com/hzya/frame/voucher/utils/PushU8CUtil.java create mode 100644 base-buildpackage/src/main/java/com/hzya/frame/voucher/utils/ZTResult.java diff --git a/base-buildpackage/src/main/java/com/hzya/frame/voucher/ae/generate/core/service/impl/ICoreServiceImpl.java b/base-buildpackage/src/main/java/com/hzya/frame/voucher/ae/generate/core/service/impl/ICoreServiceImpl.java index 301ad183..ae785dbb 100644 --- a/base-buildpackage/src/main/java/com/hzya/frame/voucher/ae/generate/core/service/impl/ICoreServiceImpl.java +++ b/base-buildpackage/src/main/java/com/hzya/frame/voucher/ae/generate/core/service/impl/ICoreServiceImpl.java @@ -12,7 +12,7 @@ import com.hzya.frame.mdm.mdmModuleDbFileds.dao.IMdmModuleDbFiledsDao; import com.hzya.frame.mdm.mdmModuleDbFileds.entity.MdmModuleDbFiledsEntity; import com.hzya.frame.mdm.mdmModuleDbFiledsRule.dao.IMdmModuleDbFiledsRuleDao; import com.hzya.frame.mdm.mdmModuleDbFiledsRule.entity.MdmModuleDbFiledsRuleEntity; -import com.hzya.frame.voucher.ae.comf.bd.controller.BdController; +import com.hzya.frame.voucher.utils.PushU8CUtil; import com.hzya.frame.voucher.ae.comf.bd.dao.IAeConfBdAccsubjDao; import com.hzya.frame.voucher.ae.comf.bd.dao.IAeConfBdOrgBookVODao; import com.hzya.frame.voucher.ae.comf.bd.dao.IMdmDBQueryVODAO; @@ -26,7 +26,6 @@ import com.hzya.frame.voucher.ae.comf.bd.entity.vo.OrgBookVO; import com.hzya.frame.voucher.ae.comf.factor.dao.IAeConfInfluenceFactorCorrelationDao; import com.hzya.frame.voucher.ae.comf.factor.dao.IAeConfInfluenceFactorDao; import com.hzya.frame.voucher.ae.comf.factor.entity.AeConfInfluenceFactorCorrelationEntity; -import com.hzya.frame.voucher.ae.comf.factor.entity.AeConfInfluenceFactorEntity; import com.hzya.frame.voucher.ae.comf.module.service.IMdmService; import com.hzya.frame.voucher.ae.comf.subject.dao.IAeConfSubjectClassificationDao; import com.hzya.frame.voucher.ae.comf.subject.dao.IAeConfSubjectContrastBDao; @@ -42,15 +41,13 @@ import com.hzya.frame.voucher.ae.comf.template.entity.AeConfVoucherTemplateTypeE import com.hzya.frame.voucher.ae.comf.template.service.IAeConfVoucherTemplateService; import com.hzya.frame.voucher.ae.generate.core.dao.ICoreDao; import com.hzya.frame.voucher.ae.generate.core.service.ICoreService; -import com.hzya.frame.voucher.ae.generate.core.vo.AccsubjVO; import com.hzya.frame.voucher.ae.generate.core.vo.CreateVoucherVO; import com.hzya.frame.voucher.ae.generate.core.vo.VoucherData; import com.hzya.frame.voucher.ae.push.dao.IAePushVoucherLogDao; import com.hzya.frame.voucher.ae.push.dao.IAePushVoucherLogDetailsDao; import com.hzya.frame.voucher.ae.push.entity.AePushVoucherLogDetailsEntity; import com.hzya.frame.voucher.ae.push.entity.AePushVoucherLogEntity; -import com.hzya.frame.voucher.ae.push.service.IAePushVoucherLogService; -import org.apache.commons.beanutils.BeanUtils; +import com.hzya.frame.voucher.utils.ZTResult; import org.apache.commons.collections.map.HashedMap; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -115,6 +112,9 @@ public class ICoreServiceImpl implements ICoreService { @Autowired private IAePushVoucherLogDao aePushVoucherLogDao; + @Autowired + private PushU8CUtil pushU8CUtil; + @Override public List> queryDataByMdmId(CreateVoucherVO createVoucherVO) { @@ -601,268 +601,284 @@ public class ICoreServiceImpl implements ICoreService { vouche.setDetails(details); voucher.add(vouche); + String data="{\"voucher\":"; + data+=JSONUtil.toJsonStr(voucher)+"}"; + + //8000630001:凭证新增 + //8000630002:凭证删除 + //推送U8C-新增凭证 + ZTResult ztResult = null; + try { + ztResult = pushU8CUtil.pushByCode("8000630001", data); + }catch (Exception e){ + e.printStackTrace(); + Assert.state(false,"推送U8C失败,失败原因:{}",e.getMessage()); + } + System.out.println(ztResult); + //记录日志 - saveLog("Y",createVoucherVO.getBill_code(),null,createVoucherVO.getMdmId(),voucher); - - updateBillStatusYByBillCodeMdmId(mdmModuleDb.getDbName(),createVoucherVO.getBill_code()); - } else {//按类型生成不同的凭证 - //根据凭证类型分组 账簿主键+凭证类别+模板id - Map> collectTempType = - templateList.stream().collect(Collectors.groupingBy(index -> index.getPkGlorgbook() + "," + index.getVoucherTypeId() + "," + index.getTemplateTypeId())); - - - for (Map.Entry> entry : collectTempType.entrySet()) { - List voucher = new ArrayList<>(); - List details = new ArrayList<>(); - String key = entry.getKey(); - List value = entry.getValue(); - AeConfVoucherTemplateEntity aeConfVoucherTemplateEntity1 = value.get(0); - String[] split = key.split(","); - - - //凭证组装头 - VoucherData.Voucher vouche = new VoucherData.Voucher(); - //pk_corp;//公司 - OrgBookVO orgBookVO = queryPkCorpByPkGlOrgBook(aeConfVoucherTemplateEntity1.getPkGlorgbook()); - vouche.setPk_corp(orgBookVO.getPkentityorg()); - vouche.setCorp_code(orgBookVO.getGlorgcode()); - vouche.setCorp_name(orgBookVO.getGlorgname()); - //pk_glorgbook;//账簿 - vouche.setPk_glorgbook(orgBookVO.getPkglorgbook()); - vouche.setAccbookCode(orgBookVO.getGlorgbookcode()); - vouche.setAccbookName(orgBookVO.getGlorgbookname()); - //pk_prepared;//制单人编码 - vouche.setPk_prepared("tbadmin"); - vouche.setPrepared("tbadmin"); - //pk_vouchertype;//凭证类别简称 - BdVoucherTypeVO voucherTypeVO = queryGlOrgBookShortNameByVoucherTypeId(aeConfVoucherTemplateEntity1.getVoucherTypeId()); - System.out.println(voucherTypeVO); - vouche.setPk_vouchertype(voucherTypeVO.getPkVouchertype()); - vouche.setVouchertype_code(voucherTypeVO.getCode()); - vouche.setVouchertype_name(voucherTypeVO.getName()); - vouche.setVouchertype_shortname(voucherTypeVO.getShortname()); - //prepareddate;//制单日期(格式示例:2021-04-27)) 根据sys_date找到单据日期字段 - vouche.setPrepareddate(date); - vouche.setYear(date.substring(0, 4)); - vouche.setPeriod(date.substring(5, 7)); - //生成分录 - System.out.println(groupedResult); - for (Map.Entry, List>> dataEntry : groupedResult.entrySet()) { - try { - List dateKey = dataEntry.getKey(); - List> dataValue = dataEntry.getValue(); - for (AeConfVoucherTemplateEntity template : templateList) { - VoucherData.Voucher.Detail detail = new VoucherData.Voucher.Detail(); - //汇率:excrate2、locRate、groupRate、globalRate - String exchangeRate = template.getExchangeRate(); - detail.setExcrate2(exchangeRate); - detail.setLocRate(exchangeRate); - detail.setGroupRate(exchangeRate); - detail.setGlobalRate(exchangeRate); - - //单价:price - - //摘要:explanation - boolean b = templateService.checkAbstract(template); - if (!b) { - Assert.state(false, "根据Id:{},校验摘要失败!", template.getId()); - } - try { - transSbstractRes(createVoucherVO.getMdmId(), template, dataValue); - } catch (Exception e) { - e.printStackTrace(); - Assert.state(false, "根据Id:{},转换摘要失败!失败原因:{}", template.getId(), e.getMessage()); - } - detail.setExplanation(template.getAbstractStr()); - - //科目:pk_accsubj、accountCode、accountName - //分类定义 查 影响因素,再根据影响因素 查 影响因素关联的字段。 - //分类定义 查 对照表 - //影响因素关联的字段,对应对照表的 会计计科目,如果没有对照表 去默认科目 都没有则跳过该条分录 - Long ClassificationId = template.getSubjectClassificationId(); - String ClassificationCode = template.getSubjectClassificationCode(); - String ClassificationName = template.getSubjectClassificationName(); - AeConfSubjectClassificationEntity aeConfSubjectClassificationEntity = new AeConfSubjectClassificationEntity(); - aeConfSubjectClassificationEntity.setId(String.valueOf(ClassificationId)); - List classificationList = subjectClassificationDao.query(aeConfSubjectClassificationEntity); - if (classificationList.size() == 0 || classificationList.size() > 1) { - Assert.state(false, "根据影响因素id:{}。未查询到分类定义或存在多个!{},{}", ClassificationId, ClassificationCode, ClassificationName); - } - AeConfSubjectClassificationEntity subjectClassification = classificationList.get(0); - String factorIds = subjectClassification.getFactorids();//影响因素定义 - String[] factorIdSplit = factorIds.split(","); - Map factorCorrelationMap = new LinkedHashMap<>();//影响因素关联map:影响因素id,单据选项 name中有公式,整个字段或者字段截取 - for (String factorId : factorIdSplit) { - AeConfInfluenceFactorCorrelationEntity factorCorrelationEntity = new AeConfInfluenceFactorCorrelationEntity(); - factorCorrelationEntity.setFactorId(Long.valueOf(factorId)); - List factorCorrelationEntityList = factorCorrelationDao.query(factorCorrelationEntity); - if (factorCorrelationEntityList.size() == 0 || factorCorrelationEntityList.size() > 1) { - Assert.state(false, "根据影响因素id:{}。未查询到或查询到多条影响因素关联。", factorId); - } - String mdmId = factorCorrelationEntityList.get(0).getMdmId(); - String mappingFieldName = factorCorrelationEntityList.get(0).getMappingFieldName(); - //如果存在substr公式,则切割,否则返回单据值 - String strValue = formulaTransFactorCorrelation(mdmId, mappingFieldName, dataValue); - - factorCorrelationMap.put(factorId, strValue); - } - String contrastId = subjectClassification.getContrastId();//该分类定义下的对照表 - AeConfSubjectContrastBEntity aeConfSubjectContrastBEntity = new AeConfSubjectContrastBEntity(); - aeConfSubjectContrastBEntity.setContrastId(Long.valueOf(contrastId)); - List subjectContrastBEntityList = subjectContrastBDao.query(aeConfSubjectContrastBEntity); - AeConfBdAccsubjEntity confBdAccsubj = matchSubj(factorCorrelationMap, subjectContrastBEntityList); - if (confBdAccsubj == null) {//没有匹配到对照表,查询分类定义是否有默认科目 - //分类的定义的默认科目 - String desdocvalueDefaultId = subjectClassification.getDesdocvalueDefaultId(); - String desdocvalueDefaultName = subjectClassification.getDesdocvalueDefaultName(); - if (desdocvalueDefaultId != null && !"".equals(desdocvalueDefaultId) && desdocvalueDefaultName != null && !"".equals(desdocvalueDefaultName)) { - - //查询科目 - AeConfBdAccsubjEntity accsubj = new AeConfBdAccsubjEntity(); - accsubj.setPkAccsubj(desdocvalueDefaultId); - List accsubjList = aeConfBdAccsubjDao.query(accsubj); - if (accsubjList.size() > 1 || accsubjList.size() == 0) { - Assert.state(false, "根据默认科目主键:{},默认科目名称:{},未查询到或存在多条科目,请检查", desdocvalueDefaultId, desdocvalueDefaultName); - } - detail.setPk_accsubj(accsubjList.get(0).getSubjcode());//u8c需要编码 - detail.setAccountId(desdocvalueDefaultId); - detail.setAccountCode(accsubjList.get(0).getSubjcode()); - detail.setAccountName(accsubjList.get(0).getSubjname()); - } else { - continue; - } - } else { - detail.setPk_accsubj(confBdAccsubj.getSubjcode());//u8c需要编码 - detail.setAccountId(confBdAccsubj.getPkAccsubj()); - detail.setAccountCode(confBdAccsubj.getSubjcode()); - detail.setAccountName(confBdAccsubj.getSubjname()); - } - //币种编码:pk_currtype、currtypeCode、currtypeName - String currencyFieldName = template.getCurrencyFieldName(); - BdCurrtypeVO bdCurrtypeVO = formulaTransCurrency(currencyFieldName); - if (bdCurrtypeVO == null) { - Assert.state(false, "根据币种字段:{},转换失败"); - } - detail.setPk_currtype(bdCurrtypeVO.getCode()); - detail.setCurrtypeId(bdCurrtypeVO.getPkCurrtype()); - detail.setCurrtypeCode(bdCurrtypeVO.getCode()); - detail.setCurrtypeName(bdCurrtypeVO.getName()); - //借方数量:debitquantity - BigDecimal jNumField = sumAmountAndNum(template.getjNumFieldName(), dataValue); - detail.setDebitquantity(jNumField.toString()); - //原币借方金额:debitamount - BigDecimal jYbSumField = sumAmountAndNum(template.getjYbSumFieldName(), dataValue); - detail.setDebitamount(jYbSumField.toString()); - //本币借方金额:localdebitamount//本币为null,但是汇率右值,原币*汇率=本币 - if (template.getjBbSumFieldName() == null || "".equals(template.getjBbSumFieldName()) && exchangeRate != null) { - BigDecimal jbb = jYbSumField.divide(new BigDecimal(exchangeRate)); - detail.setLocaldebitamount(jbb.toString()); - } else { - BigDecimal jBbSumField = sumAmountAndNum(template.getjBbSumFieldName(), dataValue); - detail.setLocaldebitamount(jBbSumField.toString()); - } - - //贷方数量:creditquantity - BigDecimal dNumField = sumAmountAndNum(template.getdNumFieldName(), dataValue); - detail.setCreditquantity(dNumField.toString()); - //原币贷方金额:creditamount - BigDecimal dYbSumField = sumAmountAndNum(template.getdYbSumFieldName(), dataValue); - detail.setCreditamount(dYbSumField.toString()); - //本币贷方金额:localcreditamount - if (template.getdBbSumFieldName() == null || "".equals(template.getdBbSumFieldName()) && exchangeRate != null) { - BigDecimal dbb = dYbSumField.divide(new BigDecimal(exchangeRate)); - detail.setLocalcreditamount(dbb.toString()); - } else { - BigDecimal dBbSumField = sumAmountAndNum(template.getdBbSumFieldName(), dataValue); - detail.setLocalcreditamount(dBbSumField.toString()); - } - //如果借贷都为0,则不生成该条分录 - String detail_jYb = detail.getDebitamount(); - String detail_jBb = detail.getLocaldebitamount(); - String detail_dYb = detail.getCreditamount(); - String detail_dBb = detail.getLocalcreditamount(); - if("0".equals(detail_jYb)&&"0".equals(detail_jBb)&&"0".equals(detail_dYb)&&"0".equals(detail_dBb)){ - continue; - } - //业务日期:busidate - detail.setBusidate(date); - //辅助核算 - //查询该科目下的辅助核算 - String templateId = template.getId(); - String pkGlorgbook = template.getPkGlorgbook(); - AeConfBdAccsubjEntity confBdAccsubj1 = new AeConfBdAccsubjEntity(); - confBdAccsubj1.setPkAccsubj(detail.getAccountId()); - confBdAccsubj1.setPkGlorgbook(pkGlorgbook); - List aeConfBdAccsubjEntities = aeConfBdAccsubjDao.queryAssist(confBdAccsubj1);//科目必要的辅助核算 - System.out.println(aeConfBdAccsubjEntities); - Map assCodeNameMap = transferSubjAss(aeConfBdAccsubjEntities); -// Map> assCodePkBdinfoMap = querySubjAssCodePkBdinfo(aeConfBdAccsubjEntities); - if (assCodeNameMap != null) {//不等于空,需要辅助核算 - - //查询科目下的辅助核算对应关系 - Map AssByBdCodeMap = queryAssByBdCode(aeConfBdAccsubjEntities); - System.out.println(AssByBdCodeMap); - - //查询该分录下配置的辅助核算,模板上的辅助核算 - AeConfVoucherTemplateAssistEntity assistEntity = new AeConfVoucherTemplateAssistEntity(); - assistEntity.setVoucherTemplateId(Long.valueOf(templateId)); - List templateAssist = templateAssDao.query(assistEntity); - System.out.println(templateAssist);//分录配置的辅助核算 - Map AssByMdmId = queryAssByMdmId(templateAssist); - System.out.println(AssByMdmId); - - List assList = new ArrayList<>(); - //根据科目的辅助核算匹配模板的配置 - for (Map.Entry assByBdCodeEntry : AssByBdCodeMap.entrySet()) { - - String keyy = assByBdCodeEntry.getKey(); - String valuee = assByBdCodeEntry.getValue(); - AeConfVoucherTemplateAssistEntity templateAssistEntity = AssByMdmId.get(keyy);//去单据辅助核算 - - //辅助核算取值 - Map assValue = getAssValue(templateAssistEntity, dataValue, orgBookVO); - System.out.println(assValue); - if(assValue.size()!=0){ - VoucherData.Voucher.Detail.Ass assEntity = new VoucherData.Voucher.Detail.Ass(); - assEntity.setChecktypecode(valuee); - assEntity.setCheckvalueid(assValue.get("pk")); - assEntity.setCheckvaluecode(assValue.get("code")); - assEntity.setCheckvaluename(assValue.get("name")); - //类型 - for (AeConfBdAccsubjEntity aeConfBdAccsubjEntity : aeConfBdAccsubjEntities) { - if(valuee.equals(aeConfBdAccsubjEntity.getBdcode())){ - assEntity.setChecktypename(aeConfBdAccsubjEntity.getBdname()); - break; - } - } - assList.add(assEntity); - } - } - if (assList.size() != 0) { - detail.setAss(assList); - } - } - details.add(detail); - } - } catch (Exception e) { - e.printStackTrace(); - //分录生成失败 - Assert.state(false, "分录生成失败,失败原因:{}", e.getMessage()); - } - } - if(details.size()==0){ - return; - } - - vouche.setDetails(details); - voucher.add(vouche); - //记录日志 - saveLog("Y",createVoucherVO.getBill_code(),null,createVoucherVO.getMdmId(),voucher); - - } - +// saveLog("Y",createVoucherVO.getBill_code(),null,createVoucherVO.getMdmId(),voucher); +// +// updateBillStatusYByBillCodeMdmId(mdmModuleDb.getDbName(),createVoucherVO.getBill_code()); } +// else {//按类型生成不同的凭证 +// //根据凭证类型分组 账簿主键+凭证类别+模板id +// Map> collectTempType = +// templateList.stream().collect(Collectors.groupingBy(index -> index.getPkGlorgbook() + "," + index.getVoucherTypeId() + "," + index.getTemplateTypeId())); +// +// +// for (Map.Entry> entry : collectTempType.entrySet()) { +// List voucher = new ArrayList<>(); +// List details = new ArrayList<>(); +// String key = entry.getKey(); +// List value = entry.getValue(); +// AeConfVoucherTemplateEntity aeConfVoucherTemplateEntity1 = value.get(0); +// String[] split = key.split(","); +// +// +// //凭证组装头 +// VoucherData.Voucher vouche = new VoucherData.Voucher(); +// //pk_corp;//公司 +// OrgBookVO orgBookVO = queryPkCorpByPkGlOrgBook(aeConfVoucherTemplateEntity1.getPkGlorgbook()); +// vouche.setPk_corp(orgBookVO.getPkentityorg()); +// vouche.setCorp_code(orgBookVO.getGlorgcode()); +// vouche.setCorp_name(orgBookVO.getGlorgname()); +// //pk_glorgbook;//账簿 +// vouche.setPk_glorgbook(orgBookVO.getPkglorgbook()); +// vouche.setAccbookCode(orgBookVO.getGlorgbookcode()); +// vouche.setAccbookName(orgBookVO.getGlorgbookname()); +// //pk_prepared;//制单人编码 +// vouche.setPk_prepared("tbadmin"); +// vouche.setPrepared("tbadmin"); +// //pk_vouchertype;//凭证类别简称 +// BdVoucherTypeVO voucherTypeVO = queryGlOrgBookShortNameByVoucherTypeId(aeConfVoucherTemplateEntity1.getVoucherTypeId()); +// System.out.println(voucherTypeVO); +// vouche.setPk_vouchertype(voucherTypeVO.getPkVouchertype()); +// vouche.setVouchertype_code(voucherTypeVO.getCode()); +// vouche.setVouchertype_name(voucherTypeVO.getName()); +// vouche.setVouchertype_shortname(voucherTypeVO.getShortname()); +// //prepareddate;//制单日期(格式示例:2021-04-27)) 根据sys_date找到单据日期字段 +// vouche.setPrepareddate(date); +// vouche.setYear(date.substring(0, 4)); +// vouche.setPeriod(date.substring(5, 7)); +// //生成分录 +// System.out.println(groupedResult); +// for (Map.Entry, List>> dataEntry : groupedResult.entrySet()) { +// try { +// List dateKey = dataEntry.getKey(); +// List> dataValue = dataEntry.getValue(); +// for (AeConfVoucherTemplateEntity template : templateList) { +// VoucherData.Voucher.Detail detail = new VoucherData.Voucher.Detail(); +// //汇率:excrate2、locRate、groupRate、globalRate +// String exchangeRate = template.getExchangeRate(); +// detail.setExcrate2(exchangeRate); +// detail.setLocRate(exchangeRate); +// detail.setGroupRate(exchangeRate); +// detail.setGlobalRate(exchangeRate); +// +// //单价:price +// +// //摘要:explanation +// boolean b = templateService.checkAbstract(template); +// if (!b) { +// Assert.state(false, "根据Id:{},校验摘要失败!", template.getId()); +// } +// try { +// transSbstractRes(createVoucherVO.getMdmId(), template, dataValue); +// } catch (Exception e) { +// e.printStackTrace(); +// Assert.state(false, "根据Id:{},转换摘要失败!失败原因:{}", template.getId(), e.getMessage()); +// } +// detail.setExplanation(template.getAbstractStr()); +// +// //科目:pk_accsubj、accountCode、accountName +// //分类定义 查 影响因素,再根据影响因素 查 影响因素关联的字段。 +// //分类定义 查 对照表 +// //影响因素关联的字段,对应对照表的 会计计科目,如果没有对照表 去默认科目 都没有则跳过该条分录 +// Long ClassificationId = template.getSubjectClassificationId(); +// String ClassificationCode = template.getSubjectClassificationCode(); +// String ClassificationName = template.getSubjectClassificationName(); +// AeConfSubjectClassificationEntity aeConfSubjectClassificationEntity = new AeConfSubjectClassificationEntity(); +// aeConfSubjectClassificationEntity.setId(String.valueOf(ClassificationId)); +// List classificationList = subjectClassificationDao.query(aeConfSubjectClassificationEntity); +// if (classificationList.size() == 0 || classificationList.size() > 1) { +// Assert.state(false, "根据影响因素id:{}。未查询到分类定义或存在多个!{},{}", ClassificationId, ClassificationCode, ClassificationName); +// } +// AeConfSubjectClassificationEntity subjectClassification = classificationList.get(0); +// String factorIds = subjectClassification.getFactorids();//影响因素定义 +// String[] factorIdSplit = factorIds.split(","); +// Map factorCorrelationMap = new LinkedHashMap<>();//影响因素关联map:影响因素id,单据选项 name中有公式,整个字段或者字段截取 +// for (String factorId : factorIdSplit) { +// AeConfInfluenceFactorCorrelationEntity factorCorrelationEntity = new AeConfInfluenceFactorCorrelationEntity(); +// factorCorrelationEntity.setFactorId(Long.valueOf(factorId)); +// List factorCorrelationEntityList = factorCorrelationDao.query(factorCorrelationEntity); +// if (factorCorrelationEntityList.size() == 0 || factorCorrelationEntityList.size() > 1) { +// Assert.state(false, "根据影响因素id:{}。未查询到或查询到多条影响因素关联。", factorId); +// } +// String mdmId = factorCorrelationEntityList.get(0).getMdmId(); +// String mappingFieldName = factorCorrelationEntityList.get(0).getMappingFieldName(); +// //如果存在substr公式,则切割,否则返回单据值 +// String strValue = formulaTransFactorCorrelation(mdmId, mappingFieldName, dataValue); +// +// factorCorrelationMap.put(factorId, strValue); +// } +// String contrastId = subjectClassification.getContrastId();//该分类定义下的对照表 +// AeConfSubjectContrastBEntity aeConfSubjectContrastBEntity = new AeConfSubjectContrastBEntity(); +// aeConfSubjectContrastBEntity.setContrastId(Long.valueOf(contrastId)); +// List subjectContrastBEntityList = subjectContrastBDao.query(aeConfSubjectContrastBEntity); +// AeConfBdAccsubjEntity confBdAccsubj = matchSubj(factorCorrelationMap, subjectContrastBEntityList); +// if (confBdAccsubj == null) {//没有匹配到对照表,查询分类定义是否有默认科目 +// //分类的定义的默认科目 +// String desdocvalueDefaultId = subjectClassification.getDesdocvalueDefaultId(); +// String desdocvalueDefaultName = subjectClassification.getDesdocvalueDefaultName(); +// if (desdocvalueDefaultId != null && !"".equals(desdocvalueDefaultId) && desdocvalueDefaultName != null && !"".equals(desdocvalueDefaultName)) { +// +// //查询科目 +// AeConfBdAccsubjEntity accsubj = new AeConfBdAccsubjEntity(); +// accsubj.setPkAccsubj(desdocvalueDefaultId); +// List accsubjList = aeConfBdAccsubjDao.query(accsubj); +// if (accsubjList.size() > 1 || accsubjList.size() == 0) { +// Assert.state(false, "根据默认科目主键:{},默认科目名称:{},未查询到或存在多条科目,请检查", desdocvalueDefaultId, desdocvalueDefaultName); +// } +// detail.setPk_accsubj(accsubjList.get(0).getSubjcode());//u8c需要编码 +// detail.setAccountId(desdocvalueDefaultId); +// detail.setAccountCode(accsubjList.get(0).getSubjcode()); +// detail.setAccountName(accsubjList.get(0).getSubjname()); +// } else { +// continue; +// } +// } else { +// detail.setPk_accsubj(confBdAccsubj.getSubjcode());//u8c需要编码 +// detail.setAccountId(confBdAccsubj.getPkAccsubj()); +// detail.setAccountCode(confBdAccsubj.getSubjcode()); +// detail.setAccountName(confBdAccsubj.getSubjname()); +// } +// //币种编码:pk_currtype、currtypeCode、currtypeName +// String currencyFieldName = template.getCurrencyFieldName(); +// BdCurrtypeVO bdCurrtypeVO = formulaTransCurrency(currencyFieldName); +// if (bdCurrtypeVO == null) { +// Assert.state(false, "根据币种字段:{},转换失败"); +// } +// detail.setPk_currtype(bdCurrtypeVO.getCode()); +// detail.setCurrtypeId(bdCurrtypeVO.getPkCurrtype()); +// detail.setCurrtypeCode(bdCurrtypeVO.getCode()); +// detail.setCurrtypeName(bdCurrtypeVO.getName()); +// //借方数量:debitquantity +// BigDecimal jNumField = sumAmountAndNum(template.getjNumFieldName(), dataValue); +// detail.setDebitquantity(jNumField.toString()); +// //原币借方金额:debitamount +// BigDecimal jYbSumField = sumAmountAndNum(template.getjYbSumFieldName(), dataValue); +// detail.setDebitamount(jYbSumField.toString()); +// //本币借方金额:localdebitamount//本币为null,但是汇率右值,原币*汇率=本币 +// if (template.getjBbSumFieldName() == null || "".equals(template.getjBbSumFieldName()) && exchangeRate != null) { +// BigDecimal jbb = jYbSumField.divide(new BigDecimal(exchangeRate)); +// detail.setLocaldebitamount(jbb.toString()); +// } else { +// BigDecimal jBbSumField = sumAmountAndNum(template.getjBbSumFieldName(), dataValue); +// detail.setLocaldebitamount(jBbSumField.toString()); +// } +// +// //贷方数量:creditquantity +// BigDecimal dNumField = sumAmountAndNum(template.getdNumFieldName(), dataValue); +// detail.setCreditquantity(dNumField.toString()); +// //原币贷方金额:creditamount +// BigDecimal dYbSumField = sumAmountAndNum(template.getdYbSumFieldName(), dataValue); +// detail.setCreditamount(dYbSumField.toString()); +// //本币贷方金额:localcreditamount +// if (template.getdBbSumFieldName() == null || "".equals(template.getdBbSumFieldName()) && exchangeRate != null) { +// BigDecimal dbb = dYbSumField.divide(new BigDecimal(exchangeRate)); +// detail.setLocalcreditamount(dbb.toString()); +// } else { +// BigDecimal dBbSumField = sumAmountAndNum(template.getdBbSumFieldName(), dataValue); +// detail.setLocalcreditamount(dBbSumField.toString()); +// } +// //如果借贷都为0,则不生成该条分录 +// String detail_jYb = detail.getDebitamount(); +// String detail_jBb = detail.getLocaldebitamount(); +// String detail_dYb = detail.getCreditamount(); +// String detail_dBb = detail.getLocalcreditamount(); +// if("0".equals(detail_jYb)&&"0".equals(detail_jBb)&&"0".equals(detail_dYb)&&"0".equals(detail_dBb)){ +// continue; +// } +// //业务日期:busidate +// detail.setBusidate(date); +// //辅助核算 +// //查询该科目下的辅助核算 +// String templateId = template.getId(); +// String pkGlorgbook = template.getPkGlorgbook(); +// AeConfBdAccsubjEntity confBdAccsubj1 = new AeConfBdAccsubjEntity(); +// confBdAccsubj1.setPkAccsubj(detail.getAccountId()); +// confBdAccsubj1.setPkGlorgbook(pkGlorgbook); +// List aeConfBdAccsubjEntities = aeConfBdAccsubjDao.queryAssist(confBdAccsubj1);//科目必要的辅助核算 +// System.out.println(aeConfBdAccsubjEntities); +// Map assCodeNameMap = transferSubjAss(aeConfBdAccsubjEntities); +//// Map> assCodePkBdinfoMap = querySubjAssCodePkBdinfo(aeConfBdAccsubjEntities); +// if (assCodeNameMap != null) {//不等于空,需要辅助核算 +// +// //查询科目下的辅助核算对应关系 +// Map AssByBdCodeMap = queryAssByBdCode(aeConfBdAccsubjEntities); +// System.out.println(AssByBdCodeMap); +// +// //查询该分录下配置的辅助核算,模板上的辅助核算 +// AeConfVoucherTemplateAssistEntity assistEntity = new AeConfVoucherTemplateAssistEntity(); +// assistEntity.setVoucherTemplateId(Long.valueOf(templateId)); +// List templateAssist = templateAssDao.query(assistEntity); +// System.out.println(templateAssist);//分录配置的辅助核算 +// Map AssByMdmId = queryAssByMdmId(templateAssist); +// System.out.println(AssByMdmId); +// +// List assList = new ArrayList<>(); +// //根据科目的辅助核算匹配模板的配置 +// for (Map.Entry assByBdCodeEntry : AssByBdCodeMap.entrySet()) { +// +// String keyy = assByBdCodeEntry.getKey(); +// String valuee = assByBdCodeEntry.getValue(); +// AeConfVoucherTemplateAssistEntity templateAssistEntity = AssByMdmId.get(keyy);//去单据辅助核算 +// +// //辅助核算取值 +// Map assValue = getAssValue(templateAssistEntity, dataValue, orgBookVO); +// System.out.println(assValue); +// if(assValue.size()!=0){ +// VoucherData.Voucher.Detail.Ass assEntity = new VoucherData.Voucher.Detail.Ass(); +// assEntity.setChecktypecode(valuee); +// assEntity.setCheckvalueid(assValue.get("pk")); +// assEntity.setCheckvaluecode(assValue.get("code")); +// assEntity.setCheckvaluename(assValue.get("name")); +// //类型 +// for (AeConfBdAccsubjEntity aeConfBdAccsubjEntity : aeConfBdAccsubjEntities) { +// if(valuee.equals(aeConfBdAccsubjEntity.getBdcode())){ +// assEntity.setChecktypename(aeConfBdAccsubjEntity.getBdname()); +// break; +// } +// } +// assList.add(assEntity); +// } +// } +// if (assList.size() != 0) { +// detail.setAss(assList); +// } +// } +// details.add(detail); +// } +// } catch (Exception e) { +// e.printStackTrace(); +// //分录生成失败 +// Assert.state(false, "分录生成失败,失败原因:{}", e.getMessage()); +// } +// } +// if(details.size()==0){ +// return; +// } +// +// vouche.setDetails(details); +// voucher.add(vouche); +// //记录日志 +// saveLog("Y",createVoucherVO.getBill_code(),null,createVoucherVO.getMdmId(),voucher); +// +// } +// +// } } catch (Exception e) { //抽取业务单据报错 @@ -1256,169 +1272,6 @@ public class ICoreServiceImpl implements ICoreService { //科目map Map subjectMap = new LinkedHashMap<>(); -// for (AeConfSubjectContrastBEntity aeConfSubjectContrastBEntity : subjectContrastBEntityList) { -// Map contrastMap = transContrastBMap(aeConfSubjectContrastBEntity); -// System.out.println(contrastMap); -// -// // 匹配科目 -// switch (size) { -// case 1: { -// String v1 = fieldValuesList.get(0); -// if (v1.equals(contrastMap.get(b + 1)) || v1.equals(contrastMap.get(c + 1)) || v1.equals(contrastMap.get(d + 1))) { -// subjectMap.put("glorgname", aeConfSubjectContrastBEntity.getGlorgname()); -// subjectMap.put("pkAccsubj", aeConfSubjectContrastBEntity.getPkAccsubj()); -// subjectMap.put("desdocvalue", aeConfSubjectContrastBEntity.getDesdocvalue()); -// } -// } -// break; -// case 2: { -// String v1 = fieldValuesList.get(0); -// String v2 = fieldValuesList.get(1); -// if ((v1.equals(contrastMap.get(b + 1)) || v1.equals(contrastMap.get(c + 1)) || v1.equals(contrastMap.get(d + 1))) -// && (v2.equals(contrastMap.get(b + 2)) || v2.equals(contrastMap.get(c + 2)) || v2.equals(contrastMap.get(d + 2)))) { -// subjectMap.put("glorgname", aeConfSubjectContrastBEntity.getGlorgname()); -// subjectMap.put("pkAccsubj", aeConfSubjectContrastBEntity.getPkAccsubj()); -// subjectMap.put("desdocvalue", aeConfSubjectContrastBEntity.getDesdocvalue()); -// } -// } -// break; -// case 3: { -// String v1 = fieldValuesList.get(0); -// String v2 = fieldValuesList.get(1); -// String v3 = fieldValuesList.get(2); -// if ((v1.equals(contrastMap.get(b + 1)) || v1.equals(contrastMap.get(c + 1)) || v1.equals(contrastMap.get(d + 1))) -// && (v2.equals(contrastMap.get(b + 2)) || v2.equals(contrastMap.get(c + 2)) || v2.equals(contrastMap.get(d + 2))) -// && (v3.equals(contrastMap.get(b + 3)) || v3.equals(contrastMap.get(c + 3)) || v3.equals(contrastMap.get(d + 3)))) { -// subjectMap.put("glorgname", aeConfSubjectContrastBEntity.getGlorgname()); -// subjectMap.put("pkAccsubj", aeConfSubjectContrastBEntity.getPkAccsubj()); -// subjectMap.put("desdocvalue", aeConfSubjectContrastBEntity.getDesdocvalue()); -// } -// } -// break; -// case 4: { -// String v1 = fieldValuesList.get(0); -// String v2 = fieldValuesList.get(1); -// String v3 = fieldValuesList.get(2); -// String v4 = fieldValuesList.get(3); -// if ((v1.equals(contrastMap.get(b + 1)) || v1.equals(contrastMap.get(c + 1)) || v1.equals(contrastMap.get(d + 1))) -// && (v2.equals(contrastMap.get(b + 2)) || v2.equals(contrastMap.get(c + 2)) || v2.equals(contrastMap.get(d + 2))) -// && (v3.equals(contrastMap.get(b + 3)) || v3.equals(contrastMap.get(c + 3)) || v3.equals(contrastMap.get(d + 3))) -// && (v4.equals(contrastMap.get(b + 4)) || v4.equals(contrastMap.get(c + 4)) || v4.equals(contrastMap.get(d + 4)))) { -// subjectMap.put("glorgname", aeConfSubjectContrastBEntity.getGlorgname()); -// subjectMap.put("pkAccsubj", aeConfSubjectContrastBEntity.getPkAccsubj()); -// subjectMap.put("desdocvalue", aeConfSubjectContrastBEntity.getDesdocvalue()); -// } -// } -// break; -// case 5: { -// String v1 = fieldValuesList.get(0); -// String v2 = fieldValuesList.get(1); -// String v3 = fieldValuesList.get(2); -// String v4 = fieldValuesList.get(3); -// String v5 = fieldValuesList.get(4); -// if ((v1.equals(contrastMap.get(b + 1)) || v1.equals(contrastMap.get(c + 1)) || v1.equals(contrastMap.get(d + 1))) -// && (v2.equals(contrastMap.get(b + 2)) || v2.equals(contrastMap.get(c + 2)) || v2.equals(contrastMap.get(d + 2))) -// && (v3.equals(contrastMap.get(b + 3)) || v3.equals(contrastMap.get(c + 3)) || v3.equals(contrastMap.get(d + 3))) -// && (v4.equals(contrastMap.get(b + 4)) || v4.equals(contrastMap.get(c + 4)) || v4.equals(contrastMap.get(d + 4))) -// && (v5.equals(contrastMap.get(b + 5)) || v5.equals(contrastMap.get(c + 5)) || v5.equals(contrastMap.get(d + 5)))) { -// subjectMap.put("glorgname", aeConfSubjectContrastBEntity.getGlorgname()); -// subjectMap.put("pkAccsubj", aeConfSubjectContrastBEntity.getPkAccsubj()); -// subjectMap.put("desdocvalue", aeConfSubjectContrastBEntity.getDesdocvalue()); -// } -// } -// break; -// case 6: { -// String v1 = fieldValuesList.get(0); -// String v2 = fieldValuesList.get(1); -// String v3 = fieldValuesList.get(2); -// String v4 = fieldValuesList.get(3); -// String v5 = fieldValuesList.get(4); -// String v6 = fieldValuesList.get(5); -// if ((v1.equals(contrastMap.get(b + 1)) || v1.equals(contrastMap.get(c + 1)) || v1.equals(contrastMap.get(d + 1))) -// && (v2.equals(contrastMap.get(b + 2)) || v2.equals(contrastMap.get(c + 2)) || v2.equals(contrastMap.get(d + 2))) -// && (v3.equals(contrastMap.get(b + 3)) || v3.equals(contrastMap.get(c + 3)) || v3.equals(contrastMap.get(d + 3))) -// && (v4.equals(contrastMap.get(b + 4)) || v4.equals(contrastMap.get(c + 4)) || v4.equals(contrastMap.get(d + 4))) -// && (v5.equals(contrastMap.get(b + 5)) || v5.equals(contrastMap.get(c + 5)) || v5.equals(contrastMap.get(d + 5))) -// && (v6.equals(contrastMap.get(b + 6)) || v6.equals(contrastMap.get(c + 6)) || v6.equals(contrastMap.get(d + 6)))) { -// subjectMap.put("glorgname", aeConfSubjectContrastBEntity.getGlorgname()); -// subjectMap.put("pkAccsubj", aeConfSubjectContrastBEntity.getPkAccsubj()); -// subjectMap.put("desdocvalue", aeConfSubjectContrastBEntity.getDesdocvalue()); -// } -// } -// break; -// case 7: { -// String v1 = fieldValuesList.get(0); -// String v2 = fieldValuesList.get(1); -// String v3 = fieldValuesList.get(2); -// String v4 = fieldValuesList.get(3); -// String v5 = fieldValuesList.get(4); -// String v6 = fieldValuesList.get(5); -// String v7 = fieldValuesList.get(6); -// if ((v1.equals(contrastMap.get(b + 1)) || v1.equals(contrastMap.get(c + 1)) || v1.equals(contrastMap.get(d + 1))) -// && (v2.equals(contrastMap.get(b + 2)) || v2.equals(contrastMap.get(c + 2)) || v2.equals(contrastMap.get(d + 2))) -// && (v3.equals(contrastMap.get(b + 3)) || v3.equals(contrastMap.get(c + 3)) || v3.equals(contrastMap.get(d + 3))) -// && (v4.equals(contrastMap.get(b + 4)) || v4.equals(contrastMap.get(c + 4)) || v4.equals(contrastMap.get(d + 4))) -// && (v5.equals(contrastMap.get(b + 5)) || v5.equals(contrastMap.get(c + 5)) || v5.equals(contrastMap.get(d + 5))) -// && (v6.equals(contrastMap.get(b + 6)) || v6.equals(contrastMap.get(c + 6)) || v6.equals(contrastMap.get(d + 6))) -// && (v7.equals(contrastMap.get(b + 7)) || v7.equals(contrastMap.get(c + 7)) || v7.equals(contrastMap.get(d + 7)))) { -// subjectMap.put("glorgname", aeConfSubjectContrastBEntity.getGlorgname()); -// subjectMap.put("pkAccsubj", aeConfSubjectContrastBEntity.getPkAccsubj()); -// subjectMap.put("desdocvalue", aeConfSubjectContrastBEntity.getDesdocvalue()); -// } -// } -// break; -// case 8: { -// String v1 = fieldValuesList.get(0); -// String v2 = fieldValuesList.get(1); -// String v3 = fieldValuesList.get(2); -// String v4 = fieldValuesList.get(3); -// String v5 = fieldValuesList.get(4); -// String v6 = fieldValuesList.get(5); -// String v7 = fieldValuesList.get(6); -// String v8 = fieldValuesList.get(7); -// if ((v1.equals(contrastMap.get(b + 1)) || v1.equals(contrastMap.get(c + 1)) || v1.equals(contrastMap.get(d + 1))) -// && (v2.equals(contrastMap.get(b + 2)) || v2.equals(contrastMap.get(c + 2)) || v2.equals(contrastMap.get(d + 2))) -// && (v3.equals(contrastMap.get(b + 3)) || v3.equals(contrastMap.get(c + 3)) || v3.equals(contrastMap.get(d + 3))) -// && (v4.equals(contrastMap.get(b + 4)) || v4.equals(contrastMap.get(c + 4)) || v4.equals(contrastMap.get(d + 4))) -// && (v5.equals(contrastMap.get(b + 5)) || v5.equals(contrastMap.get(c + 5)) || v5.equals(contrastMap.get(d + 5))) -// && (v6.equals(contrastMap.get(b + 6)) || v6.equals(contrastMap.get(c + 6)) || v6.equals(contrastMap.get(d + 6))) -// && (v7.equals(contrastMap.get(b + 7)) || v7.equals(contrastMap.get(c + 7)) || v7.equals(contrastMap.get(d + 7))) -// && (v8.equals(contrastMap.get(b + 8)) || v8.equals(contrastMap.get(c + 8)) || v8.equals(contrastMap.get(d + 8)))) { -// subjectMap.put("glorgname", aeConfSubjectContrastBEntity.getGlorgname()); -// subjectMap.put("pkAccsubj", aeConfSubjectContrastBEntity.getPkAccsubj()); -// subjectMap.put("desdocvalue", aeConfSubjectContrastBEntity.getDesdocvalue()); -// } -// } -// break; -// case 9: { -// String v1 = fieldValuesList.get(0); -// String v2 = fieldValuesList.get(1); -// String v3 = fieldValuesList.get(2); -// String v4 = fieldValuesList.get(3); -// String v5 = fieldValuesList.get(4); -// String v6 = fieldValuesList.get(5); -// String v7 = fieldValuesList.get(6); -// String v8 = fieldValuesList.get(7); -// String v9 = fieldValuesList.get(8); -// if ((v1.equals(contrastMap.get(b + 1)) || v1.equals(contrastMap.get(c + 1)) || v1.equals(contrastMap.get(d + 1))) -// && (v2.equals(contrastMap.get(b + 2)) || v2.equals(contrastMap.get(c + 2)) || v2.equals(contrastMap.get(d + 2))) -// && (v3.equals(contrastMap.get(b + 3)) || v3.equals(contrastMap.get(c + 3)) || v3.equals(contrastMap.get(d + 3))) -// && (v4.equals(contrastMap.get(b + 4)) || v4.equals(contrastMap.get(c + 4)) || v4.equals(contrastMap.get(d + 4))) -// && (v5.equals(contrastMap.get(b + 5)) || v5.equals(contrastMap.get(c + 5)) || v5.equals(contrastMap.get(d + 5))) -// && (v6.equals(contrastMap.get(b + 6)) || v6.equals(contrastMap.get(c + 6)) || v6.equals(contrastMap.get(d + 6))) -// && (v7.equals(contrastMap.get(b + 7)) || v7.equals(contrastMap.get(c + 7)) || v7.equals(contrastMap.get(d + 7))) -// && (v8.equals(contrastMap.get(b + 8)) || v8.equals(contrastMap.get(c + 8)) || v8.equals(contrastMap.get(d + 8))) -// && (v9.equals(contrastMap.get(b + 9)) || v9.equals(contrastMap.get(c + 9)) || v9.equals(contrastMap.get(d + 9)))) { -// subjectMap.put("glorgname", aeConfSubjectContrastBEntity.getGlorgname()); -// subjectMap.put("pkAccsubj", aeConfSubjectContrastBEntity.getPkAccsubj()); -// subjectMap.put("desdocvalue", aeConfSubjectContrastBEntity.getDesdocvalue()); -// } -// } -// break; -// } -// } - - for (AeConfSubjectContrastBEntity entity : subjectContrastBEntityList) { Map contrastMap = transContrastBMap(entity); System.out.println(contrastMap); diff --git a/base-buildpackage/src/main/java/com/hzya/frame/voucher/ae/push/service/impl/AePushVoucherLogServiceImpl.java b/base-buildpackage/src/main/java/com/hzya/frame/voucher/ae/push/service/impl/AePushVoucherLogServiceImpl.java index b7e421a6..1eb2c3e4 100644 --- a/base-buildpackage/src/main/java/com/hzya/frame/voucher/ae/push/service/impl/AePushVoucherLogServiceImpl.java +++ b/base-buildpackage/src/main/java/com/hzya/frame/voucher/ae/push/service/impl/AePushVoucherLogServiceImpl.java @@ -432,8 +432,12 @@ public class AePushVoucherLogServiceImpl extends BaseService queryList = getFiledByType("1", mdmModuleViewDetailEntities, mdmModuleDbEntityList, mdmModuleDbFiledsEntityList, mdmModuleDbFiledsRuleEntityList); + + queryList.removeIf(mdmViewFiledVo -> "单据规则".equals(mdmViewFiledVo.getChName())); mdmViewVo.setQueryList(queryList); List listList = getFiledByType("2", mdmModuleViewDetailEntities, mdmModuleDbEntityList, mdmModuleDbFiledsEntityList, mdmModuleDbFiledsRuleEntityList); + //去除单据规则 + listList.removeIf(mdmViewFiledVo -> "单据规则".equals(mdmViewFiledVo.getChName())); mdmViewVo.setListList(listList); } catch (Exception e) { diff --git a/base-buildpackage/src/main/java/com/hzya/frame/voucher/utils/Attribute.java b/base-buildpackage/src/main/java/com/hzya/frame/voucher/utils/Attribute.java new file mode 100644 index 00000000..adcee483 --- /dev/null +++ b/base-buildpackage/src/main/java/com/hzya/frame/voucher/utils/Attribute.java @@ -0,0 +1,19 @@ +package com.hzya.frame.voucher.utils; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * U8C返回参数 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +public class Attribute { + private String status; + private String taskNumber; + private String data; + private String errorcode; + private String errormsg; +} \ No newline at end of file diff --git a/base-buildpackage/src/main/java/com/hzya/frame/voucher/utils/PushU8CUtil.java b/base-buildpackage/src/main/java/com/hzya/frame/voucher/utils/PushU8CUtil.java new file mode 100644 index 00000000..46667993 --- /dev/null +++ b/base-buildpackage/src/main/java/com/hzya/frame/voucher/utils/PushU8CUtil.java @@ -0,0 +1,81 @@ +package com.hzya.frame.voucher.utils; + +import cn.hutool.core.lang.Assert; +import com.alibaba.fastjson.JSON; +import org.apache.http.HttpEntity; +import org.apache.http.client.config.RequestConfig; +import org.apache.http.client.methods.CloseableHttpResponse; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.entity.StringEntity; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClients; +import org.apache.http.util.EntityUtils; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Component; + +/** + * Created by zydd on 2025-08-14 15:29 + * 中台转发:推送U8C工具类 + * + * @author zydd + */ +@Component +public class PushU8CUtil { + public static String ZT_URL = "http://127.0.0.1:10086/kangarooDataCenterV3/entranceController/externalCallInterface"; + public static String APP_ID = "800063"; + public static String PUBLIC_KEY = "ZJYAvaxLRRoHelKQG/xTTlHurMleaz98VeN/AZ8G6dqJbl5Ce7eDIk+3zDUT+v578prj"; + public static String SECRET_KEY = "qKMPuaF7iyLpQ3x+afvxAlY4NRG91cQFVvjFHt4DzQEoy4R0n2EVYZbqqq8jhoNVj3JzOP8MtA1LSGvL+2BWG8c/o7DKi92S4mr3zcGearA="; + @Value("${U8C.usercode}") + public String usercode; + @Value("${U8C.password}") + public String password; + @Value("${U8C.system}") + public String system; + + public ZTResult pushByCode(String apiCode, String data) throws Exception { + try { + Assert.notNull(apiCode, "请求地址不能为空"); + Assert.notNull(data, "请求参数不能为空(需要JSON格式)"); + + + CloseableHttpClient httpclient = HttpClients.createDefault(); + + HttpPost httpPost = new HttpPost(ZT_URL); + httpPost.setHeader("Content-Type", "application/json"); + + //u8c + httpPost.setHeader("usercode", usercode); + httpPost.setHeader("password", password); + httpPost.setHeader("trantype", "code"); + httpPost.setHeader("system", system); + httpPost.setHeader("needStackTrace", "Y"); + + //中台 + httpPost.setHeader("publicKey", PUBLIC_KEY); + httpPost.setHeader("secretKey", SECRET_KEY); + //app + httpPost.setHeader("appId", APP_ID); + httpPost.setHeader("apicode", apiCode); + + //data + httpPost.setEntity(new StringEntity(data, "UTF-8")); + + // 配置请求的超时设置 + RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(600000) // 连接超时时间: 600秒 + .setConnectionRequestTimeout(600000) // 请求超时时间: 600秒 + .setSocketTimeout(600000) // 数据读取超时时间: 600秒 + .build(); + httpPost.setConfig(requestConfig); + CloseableHttpResponse response = httpclient.execute(httpPost); + HttpEntity entity = response.getEntity(); + String result = EntityUtils.toString(entity); + EntityUtils.consume(entity); + ZTResult ztResult = JSON.parseObject(result).toJavaObject(ZTResult.class); + return ztResult; + }catch (Exception e){ + e.printStackTrace(); + Assert.state(false,e.getMessage()); + } + return null; + } +} diff --git a/base-buildpackage/src/main/java/com/hzya/frame/voucher/utils/ZTResult.java b/base-buildpackage/src/main/java/com/hzya/frame/voucher/utils/ZTResult.java new file mode 100644 index 00000000..9cc00c61 --- /dev/null +++ b/base-buildpackage/src/main/java/com/hzya/frame/voucher/utils/ZTResult.java @@ -0,0 +1,18 @@ +package com.hzya.frame.voucher.utils; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class ZTResult { + private String msg; + private String type; + private String flag; + private String status; + private Attribute attribute; + private String headMsg; + +} diff --git a/base-buildpackage/src/main/resources/application-gmdev.yml b/base-buildpackage/src/main/resources/application-gmdev.yml index dd33b0fb..ded20572 100644 --- a/base-buildpackage/src/main/resources/application-gmdev.yml +++ b/base-buildpackage/src/main/resources/application-gmdev.yml @@ -85,4 +85,9 @@ DING: #采购付款申请(新) PURCHASE_PAYMENT_REQUEST_NEW: 157828688115 #采购付款申请(店群专用) - PURCHASE_PAYMENT_REQUEST_SHOP: 157828627012 \ No newline at end of file + PURCHASE_PAYMENT_REQUEST_SHOP: 157828627012 + +U8C: + usercode: WEB + password: 83f1ad3e7fa3617f1aae62ae7413c810 + system: WEB \ No newline at end of file