From 8aad897d673e4d611fd428c7b0cf3f1a6ee5bf29 Mon Sep 17 00:00:00 2001 From: yuqh <123456> Date: Thu, 4 Jul 2024 12:06:24 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BC=80=E5=A7=8B=E5=A0=86si=E5=B1=B1=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/BipV32207BillServiceImpl.java | 2 + .../seeyon/paybill/entity/PayBillEntity.java | 27 ++++ .../seeyon/paybill/entity/PayBillEntity.xml | 34 ++++-- .../service/impl/PayBillServiceImpl.java | 115 ++++++++++++++---- .../recbill/dao/impl/RecBillDaoImpl.java | 4 +- .../seeyon/recbill/entity/RecBillEntity.java | 27 ++++ .../seeyon/recbill/entity/RecBillEntity.xml | 8 +- .../service/impl/RecBillServiceImpl.java | 95 +++++++++++---- .../dao/impl/MasterDataDaoImpl.java | 2 +- 9 files changed, 256 insertions(+), 58 deletions(-) diff --git a/service/src/main/java/com/hzya/frame/bip/v3/v2207/service/impl/BipV32207BillServiceImpl.java b/service/src/main/java/com/hzya/frame/bip/v3/v2207/service/impl/BipV32207BillServiceImpl.java index 1c59cc16..434bf3a1 100644 --- a/service/src/main/java/com/hzya/frame/bip/v3/v2207/service/impl/BipV32207BillServiceImpl.java +++ b/service/src/main/java/com/hzya/frame/bip/v3/v2207/service/impl/BipV32207BillServiceImpl.java @@ -1,6 +1,7 @@ package com.hzya.frame.bip.v3.v2207.service.impl; +import com.alibaba.fastjson.JSON; import com.hzya.frame.basedao.service.impl.BaseService; import com.hzya.frame.bip.v3.v2207.entity.BipTokenVo; import com.hzya.frame.bip.v3.v2207.service.IBipV32207BillService; @@ -33,6 +34,7 @@ public class BipV32207BillServiceImpl extends BaseService im public SysExtensionApiEntity getBipBill(SysExtensionApiEntity entity) { try { Map headers = entity.getHeaders(); + logger.info("扩展方法得到的请求头:"+ JSON.toJSONString(headers)); String client_id = headers.get("client_id"); //token信息 String access_token = headers.get("access_token"); diff --git a/service/src/main/java/com/hzya/frame/seeyon/paybill/entity/PayBillEntity.java b/service/src/main/java/com/hzya/frame/seeyon/paybill/entity/PayBillEntity.java index 1a9308de..1b599a58 100644 --- a/service/src/main/java/com/hzya/frame/seeyon/paybill/entity/PayBillEntity.java +++ b/service/src/main/java/com/hzya/frame/seeyon/paybill/entity/PayBillEntity.java @@ -24,6 +24,33 @@ public class PayBillEntity extends BaseEntity { private String pkOrg;//组织 private String pkCustomer;//客户 private String pk_oppaccount;//付款账户 + private String pkBalatype;//结算方式 + private String billCode;//单据编号 + private String queryState; + + public String getQueryState() { + return queryState; + } + + public void setQueryState(String queryState) { + this.queryState = queryState; + } + + public String getBillCode() { + return billCode; + } + + public void setBillCode(String billCode) { + this.billCode = billCode; + } + + public String getPkBalatype() { + return pkBalatype; + } + + public void setPkBalatype(String pkBalatype) { + this.pkBalatype = pkBalatype; + } public String getPkCustomer() { return pkCustomer; diff --git a/service/src/main/java/com/hzya/frame/seeyon/paybill/entity/PayBillEntity.xml b/service/src/main/java/com/hzya/frame/seeyon/paybill/entity/PayBillEntity.xml index 736d5914..446d2abb 100644 --- a/service/src/main/java/com/hzya/frame/seeyon/paybill/entity/PayBillEntity.xml +++ b/service/src/main/java/com/hzya/frame/seeyon/paybill/entity/PayBillEntity.xml @@ -10,46 +10,66 @@ + + diff --git a/service/src/main/java/com/hzya/frame/seeyon/paybill/service/impl/PayBillServiceImpl.java b/service/src/main/java/com/hzya/frame/seeyon/paybill/service/impl/PayBillServiceImpl.java index 8eac7caa..140bfdbb 100644 --- a/service/src/main/java/com/hzya/frame/seeyon/paybill/service/impl/PayBillServiceImpl.java +++ b/service/src/main/java/com/hzya/frame/seeyon/paybill/service/impl/PayBillServiceImpl.java @@ -1,5 +1,6 @@ package com.hzya.frame.seeyon.paybill.service.impl; +import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; @@ -10,6 +11,9 @@ import com.hzya.frame.seeyon.paybill.dao.IPayBillDao; import com.hzya.frame.seeyon.paybill.entity.PayBillEntity; import com.hzya.frame.seeyon.paybill.service.IPayBillService; import com.hzya.frame.seeyon.service.impl.SeeYonInterFaceImpl; +import com.hzya.frame.sysnew.integtationTaskLivingDetails.entity.IntegrationTaskLivingDetailsEntity; +import com.hzya.frame.sysnew.integtationTaskLivingDetails.service.IIntegrationTaskLivingDetailsService; +import com.hzya.frame.u9c.itemmaster.entity.VU9cItemmasterEntity; import com.hzya.frame.web.entity.JsonResultEntity; import org.apache.commons.collections.CollectionUtils; import org.jetbrains.annotations.NotNull; @@ -18,6 +22,7 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.Date; import java.util.List; /** @@ -31,7 +36,8 @@ import java.util.List; @Service("PayBillServiceImpl") public class PayBillServiceImpl extends BaseService implements IPayBillService { private static final Logger logger = LoggerFactory.getLogger(PayBillServiceImpl.class); - + @Autowired + private IIntegrationTaskLivingDetailsService taskLivingDetailsService; @Autowired private IPayBillDao payBillDao; /** @@ -43,59 +49,116 @@ public class PayBillServiceImpl extends BaseService implem */ @Override public JsonResultEntity sendEngineerPayBillToBip(JSONObject requestJson) { + JSONObject requestJsonObj = JSON.parseObject(requestJson.toString(),JSONObject.class); + String interId = requestJsonObj.getString("integration_task_living_details_id"); + logger.info("付款结算单重推解析后:"+requestJsonObj.toString()); + logger.info("付款结算单重推执行的任务主键:"+interId); + JsonResultEntity resultEntity = new JsonResultEntity(); PayBillEntity entity = new PayBillEntity(); requestJson.put("db_code","OA"); entity.setDataSourceCode(requestJson.getString("db_code")); + IntegrationTaskLivingDetailsEntity oldMsg = new IntegrationTaskLivingDetailsEntity(); + if(StrUtil.isNotEmpty(interId)){ + oldMsg = taskLivingDetailsService.get(interId); + } + String rootAppPk = oldMsg.getRootAppPk(); + entity.setId(rootAppPk); + if(StrUtil.isEmpty(rootAppPk)){ + entity.setQueryState("查询"); + } ListpayBillEntityList = payBillDao.getOaEngineerPay(entity); if(CollectionUtils.isNotEmpty(payBillEntityList)){ for(PayBillEntity pay : payBillEntityList){ - String token = BipUtil.getBipToken("yonyou","8000230000"); - JSONObject main = bindingAdd(pay); - logger.info("工程付款单调用中台生成BIP付款结算单推送报文{}",main.toString()); - String result = BipUtil.sendU9cTOBipEsb(main.toString(),"8000230014",token); - logger.info("工程付款单调用中台生成BIP付款结算单返回结果{}",result); - JSONObject resultObj = JSON.parseObject(result); - boolean flag = resultObj.getBoolean("success"); - if(flag){ - pay.setState("Y"); - }else{ - pay.setState("N"); + try { + String token = BipUtil.getBipToken("yonyou","8000230000"); + JSONObject main = bindingAdd(pay); + logger.info("工程付款单调用中台生成BIP付款结算单推送报文{}",main.toString()); + String result = BipUtil.sendU9cTOBipEsb(main.toString(),"8000230014",token); + logger.info("工程付款单调用中台生成BIP付款结算单返回结果{}",result); + IntegrationTaskLivingDetailsEntity logDetails = new IntegrationTaskLivingDetailsEntity(); + logDetails.setRootAppPk(pay.getId()); + logDetails.setRootAppBill(pay.getBillCode()); + logDetails.setNewTransmitInfo(result); + logDetails.setNewPushDate(new Date()); + logDetails.setRootAppNewData(JSON.toJSONString(pay)); + //logDetails.setNewState(SysMessageManageLogStatusEnum.statusGetValue(logEntity.getStatus())); + logDetails.setPluginId("PayBillPlugin"); + JSONObject resultObj = JSON.parseObject(result); + boolean flag = resultObj.getBoolean("success"); + if(flag){ + pay.setState("Y"); + }else{ + pay.setState("N"); + } + pay.setDataSourceCode(requestJson.getString("db_code")); + try { + if(StrUtil.isEmpty(interId)){ + if(flag){ + taskLivingDetailsService.saveLogToSuccess(logDetails); + }else{ + taskLivingDetailsService.saveLogToFail(logDetails); + } + }else{ + logDetails.setId(interId); + if(flag){ + taskLivingDetailsService.saveLogFailToSuccess(logDetails); + }else{ + taskLivingDetailsService.updateLogFailToSuccess(logDetails); + } + } + } catch (Exception e) { + logger.info("保存日志失败"+e.getMessage()); + payBillDao.updateState(pay); + e.printStackTrace(); + } + + payBillDao.updateState(pay); + // todo 后续在写吧(没字段等OA开了外网在创建),修改推送状态,避免再次查询 + } catch (Exception e) { + logger.info("付款单执行失败:"+e.getMessage()); + e.printStackTrace(); } - pay.setDataSourceCode(requestJson.getString("db_code")); - payBillDao.updateState(pay); - // todo 后续在写吧(没字段等OA开了外网在创建),修改推送状态,避免再次查询 } } - return null; + return new JsonResultEntity("成功",true,resultEntity); } @NotNull private JSONObject bindingAdd(PayBillEntity pay) { + String billDate = pay.getBillDate().substring(0,19); + if(billDate.length()>19){ + billDate= pay.getBillDate().substring(0,19); + } JSONObject head = new JSONObject(); - head.put("pk_org","");//所属组织 - head.put("pk_group","");//集团 + head.put("pk_org",pay.getPkOrg());//所属组织 + head.put("pk_group","ycjf");//集团 head.put("bill_type","F5");//单据类型 默认F5 head.put("trade_type","D5");//付款结算类型 默认D5 head.put("source_flag","2");//付款结算类型 默认2 - head.put("bill_date",pay.getBillDate());//单据日期 + head.put("bill_date",billDate);//单据日期 head.put("primal_money",pay.getPrimalMoney());//付款原币金额 head.put("pk_currtype","CNY");//币种 - head.put("billmaker","");//制单人 + head.put("billmaker","yonyou");//制单人//先临时使用管理员账户,后续在确认 //处理明细数据,按照明细付款 多个明细生成多个付款结算单 JSONArray detailsArr = new JSONArray(); JSONObject body = new JSONObject(); - body.put("pk_org","");//所属组织 - body.put("pk_group","");//集团 + body.put("pk_org",pay.getPkOrg());//所属组织 + body.put("pk_balatype",pay.getPkBalatype());//结算方式 + body.put("pk_group","ycjf");//集团 body.put("bill_type","F5");//单据类型 默认F5 body.put("trade_type","D5");//付款结算类型 默认D5 body.put("pk_currtype","CNY");//币种 - body.put("bill_date",pay.getBillDate());//单据日期 + body.put("bill_date",billDate);//单据日期 body.put("pay_primal",pay.getPrimalMoney());//付款原币金额 - body.put("creationtime",pay.getBillDate());//创建时间 + body.put("creationtime",billDate);//创建时间 body.put("direction","-1");//方向 :1=收;-1=付; body.put("objecttype","0");//交易对象 - body.put("pk_customer",pay.getPkCustomer());//客户 - body.put("pk_account",pay.getPkOppaccount());//付款银行账号 + body.put("pk_customer",pay.getPkSupplier());//客户 + String pkOppaccount = ""; + if(StrUtil.isNotEmpty(pay.getPkOppaccount())){ + pkOppaccount = pay.getPkOppaccount().replaceAll(" ",""); + } + body.put("pk_oppaccount",pkOppaccount);//付款银行账号 detailsArr.add(body); JSONObject main = new JSONObject(); main.put("head",head);//表头 diff --git a/service/src/main/java/com/hzya/frame/seeyon/recbill/dao/impl/RecBillDaoImpl.java b/service/src/main/java/com/hzya/frame/seeyon/recbill/dao/impl/RecBillDaoImpl.java index 3682e8a2..59199073 100644 --- a/service/src/main/java/com/hzya/frame/seeyon/recbill/dao/impl/RecBillDaoImpl.java +++ b/service/src/main/java/com/hzya/frame/seeyon/recbill/dao/impl/RecBillDaoImpl.java @@ -20,11 +20,11 @@ public class RecBillDaoImpl extends MybatisGenericDao implements IRecBillDao { @DS("#rec.dataSourceCode") @Override public List getOaRecBill(RecBillEntity rec) { - return super.selectList("com.hzya.frame.seeyon.recbill.dao.impl.RecBillDaoImpl.PayBillEntity_list_base",rec); + return super.selectList("com.hzya.frame.seeyon.recbill.dao.impl.RecBillDaoImpl.RecBillEntity_list_base",rec); } @DS("#rec.dataSourceCode") @Override public int updateState(RecBillEntity rec) { - return super.update("com.hzya.frame.seeyon.recbill.dao.impl.RecBillDaoImpl.PayBillEntity_update",rec); + return super.update("com.hzya.frame.seeyon.recbill.dao.impl.RecBillDaoImpl.RecBillEntity_update",rec); } } diff --git a/service/src/main/java/com/hzya/frame/seeyon/recbill/entity/RecBillEntity.java b/service/src/main/java/com/hzya/frame/seeyon/recbill/entity/RecBillEntity.java index 5a271b5d..b8eff35c 100644 --- a/service/src/main/java/com/hzya/frame/seeyon/recbill/entity/RecBillEntity.java +++ b/service/src/main/java/com/hzya/frame/seeyon/recbill/entity/RecBillEntity.java @@ -21,6 +21,33 @@ public class RecBillEntity extends BaseEntity { private String pkCustomer;//客户 private String pkAccount;//收款账户 private String pkOrg;//组织 + private String billmaker;//组织 + private String billCode;//单据编号 + private String queryState; + + public String getQueryState() { + return queryState; + } + + public void setQueryState(String queryState) { + this.queryState = queryState; + } + + public String getBillCode() { + return billCode; + } + + public void setBillCode(String billCode) { + this.billCode = billCode; + } + + public String getBillmaker() { + return billmaker; + } + + public void setBillmaker(String billmaker) { + this.billmaker = billmaker; + } public String getPkCustomer() { return pkCustomer; diff --git a/service/src/main/java/com/hzya/frame/seeyon/recbill/entity/RecBillEntity.xml b/service/src/main/java/com/hzya/frame/seeyon/recbill/entity/RecBillEntity.xml index 21f3fc7e..87315232 100644 --- a/service/src/main/java/com/hzya/frame/seeyon/recbill/entity/RecBillEntity.xml +++ b/service/src/main/java/com/hzya/frame/seeyon/recbill/entity/RecBillEntity.xml @@ -12,12 +12,15 @@ + diff --git a/service/src/main/java/com/hzya/frame/seeyon/recbill/service/impl/RecBillServiceImpl.java b/service/src/main/java/com/hzya/frame/seeyon/recbill/service/impl/RecBillServiceImpl.java index 78497edf..f6f536e2 100644 --- a/service/src/main/java/com/hzya/frame/seeyon/recbill/service/impl/RecBillServiceImpl.java +++ b/service/src/main/java/com/hzya/frame/seeyon/recbill/service/impl/RecBillServiceImpl.java @@ -1,5 +1,6 @@ package com.hzya.frame.seeyon.recbill.service.impl; +import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; @@ -9,6 +10,8 @@ import com.hzya.frame.seeyon.cbs8.entity.PaymentEntity; import com.hzya.frame.seeyon.recbill.dao.IRecBillDao; import com.hzya.frame.seeyon.recbill.entity.RecBillEntity; import com.hzya.frame.seeyon.recbill.service.IRecBillService; +import com.hzya.frame.sysnew.integtationTaskLivingDetails.entity.IntegrationTaskLivingDetailsEntity; +import com.hzya.frame.sysnew.integtationTaskLivingDetails.service.IIntegrationTaskLivingDetailsService; import com.hzya.frame.web.entity.JsonResultEntity; import org.apache.commons.collections.CollectionUtils; import org.jetbrains.annotations.NotNull; @@ -17,6 +20,7 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.Date; import java.util.List; /** @@ -30,7 +34,8 @@ import java.util.List; @Service("RecBillServiceImpl") public class RecBillServiceImpl extends BaseService implements IRecBillService { private static final Logger logger = LoggerFactory.getLogger(RecBillServiceImpl.class); - + @Autowired + private IIntegrationTaskLivingDetailsService taskLivingDetailsService; @Autowired private IRecBillDao payBillDao; /** @@ -42,49 +47,97 @@ public class RecBillServiceImpl extends BaseService implem */ @Override public JsonResultEntity sendRecBillToBip(JSONObject requestJson) { + JSONObject requestJsonObj = JSON.parseObject(requestJson.toString(),JSONObject.class); + String interId = requestJsonObj.getString("integration_task_living_details_id"); + logger.info("付款结算单重推解析后:"+requestJsonObj.toString()); + logger.info("收款结算单重推执行的任务主键:"+interId); + JsonResultEntity resultEntity = new JsonResultEntity(); RecBillEntity entity = new RecBillEntity(); requestJson.put("db_code","OA"); entity.setDataSourceCode(requestJson.getString("db_code")); + IntegrationTaskLivingDetailsEntity oldMsg = new IntegrationTaskLivingDetailsEntity(); + if(StrUtil.isNotEmpty(interId)){ + oldMsg = taskLivingDetailsService.get(interId); + } + String rootAppPk = oldMsg.getRootAppPk(); + entity.setId(rootAppPk); + if(StrUtil.isEmpty(rootAppPk)){ + entity.setQueryState("查询"); + } ListpayBillEntityList = payBillDao.getOaRecBill(entity); if(CollectionUtils.isNotEmpty(payBillEntityList)){ for(RecBillEntity pay : payBillEntityList){ - String token = BipUtil.getBipToken("yonyou","8000230000"); - JSONObject main = bindingAdd(pay); - logger.info("银行流水收款信息数据{}",main.toString()); - String result = BipUtil.sendU9cTOBipEsb(main.toString(),"8000230016",token); - logger.info("银行流水收款信息数据{}",result); - JSONObject resultObj = JSON.parseObject(result); - boolean flag = resultObj.getBoolean("success"); - if(flag){ - pay.setState("Y"); - }else{ - pay.setState("N"); + try { + String token = BipUtil.getBipToken("yonyou","8000230000"); + JSONObject main = bindingAdd(pay); + logger.info("银行流水收款信息数据{}",main.toString()); + String result = BipUtil.sendU9cTOBipEsb(main.toString(),"8000230016",token); + logger.info("银行流水收款信息数据{}",result); + IntegrationTaskLivingDetailsEntity logDetails = new IntegrationTaskLivingDetailsEntity(); + logDetails.setRootAppPk(pay.getId()); + logDetails.setRootAppBill(pay.getBillCode()); + logDetails.setNewTransmitInfo(result); + logDetails.setNewPushDate(new Date()); + logDetails.setRootAppNewData(JSON.toJSONString(pay)); + //logDetails.setNewState(SysMessageManageLogStatusEnum.statusGetValue(logEntity.getStatus())); + logDetails.setPluginId("RecBillPluginInitializer"); + JSONObject resultObj = JSON.parseObject(result); + boolean flag = resultObj.getBoolean("success"); + if(flag){ + pay.setState("Y"); + }else{ + pay.setState("N"); + } + pay.setDataSourceCode(requestJson.getString("db_code")); + try { + if(StrUtil.isEmpty(interId)){ + if(flag){ + taskLivingDetailsService.saveLogToSuccess(logDetails); + }else{ + taskLivingDetailsService.saveLogToFail(logDetails); + } + }else{ + logDetails.setId(interId); + if(flag){ + taskLivingDetailsService.saveLogFailToSuccess(logDetails); + }else{ + taskLivingDetailsService.updateLogFailToSuccess(logDetails); + } + } + } catch (Exception e) { + logger.info("保存日志失败"+e.getMessage()); + payBillDao.updateState(pay); + e.printStackTrace(); + } + + payBillDao.updateState(pay); + // todo 后续在写吧(没字段等OA开了外网在创建),修改推送状态,避免再次查询 + } catch (Exception e) { + logger.info("收款单执行失败:"+e.getMessage()); + e.printStackTrace(); } - pay.setDataSourceCode(requestJson.getString("db_code")); - payBillDao.updateState(pay); - // todo 后续在写吧(没字段等OA开了外网在创建),修改推送状态,避免再次查询 } } - return null; + return new JsonResultEntity("成功",true,resultEntity); } @NotNull private JSONObject bindingAdd(RecBillEntity pay) { JSONObject head = new JSONObject(); - head.put("pk_org","");//所属组织 - head.put("pk_group","");//集团 + head.put("pk_org",pay.getPkOrg());//所属组织 + head.put("pk_group","ycjf");//集团 head.put("bill_type","F4");//单据类型 默认F5 head.put("trade_type","D4");//付款结算类型 默认D5 head.put("source_flag","2");//付款结算类型 默认2 head.put("bill_date",pay.getBillDate());//单据日期 head.put("primal_money",pay.getPrimalMoney());//付款原币金额 head.put("pk_currtype","CNY");//币种 - head.put("billmaker","");//制单人 + head.put("billmaker","yonyou");//制单人 //先临时使用管理员账户,后续在确认 //处理明细数据,按照明细付款 多个明细生成多个付款结算单 JSONArray detailsArr = new JSONArray(); JSONObject body = new JSONObject(); - body.put("pk_org","");//所属组织 - body.put("pk_group","");//集团 + body.put("pk_org",pay.getPkOrg());//所属组织 + body.put("pk_group","ycjf");//集团 body.put("bill_type","F4");//单据类型 默认F5 body.put("trade_type","D4");//付款结算类型 默认D5 body.put("pk_currtype","CNY");//币种 diff --git a/service/src/main/java/com/hzya/frame/sysnew/comparison/masterData/dao/impl/MasterDataDaoImpl.java b/service/src/main/java/com/hzya/frame/sysnew/comparison/masterData/dao/impl/MasterDataDaoImpl.java index af057aa8..8ad90072 100644 --- a/service/src/main/java/com/hzya/frame/sysnew/comparison/masterData/dao/impl/MasterDataDaoImpl.java +++ b/service/src/main/java/com/hzya/frame/sysnew/comparison/masterData/dao/impl/MasterDataDaoImpl.java @@ -36,7 +36,7 @@ public class MasterDataDaoImpl extends BaseService imp List> hashMaps = execSqlService.execSelectSql(str, ""); return hashMaps; }catch (Exception e){ - logger.info("U8C主数据档案用户档案没有需要同步中台的数据"); + logger.info("主数据查询异常"+e.getMessage()); return null; } }