diff --git a/base-buildpackage/src/main/java/com/hzya/frame/plugin/incomeInvoiceData/dao/IIncomeInvoiceDao.java b/base-buildpackage/src/main/java/com/hzya/frame/plugin/incomeInvoiceData/dao/IIncomeInvoiceDao.java index 8fb161da..10b95891 100644 --- a/base-buildpackage/src/main/java/com/hzya/frame/plugin/incomeInvoiceData/dao/IIncomeInvoiceDao.java +++ b/base-buildpackage/src/main/java/com/hzya/frame/plugin/incomeInvoiceData/dao/IIncomeInvoiceDao.java @@ -32,5 +32,7 @@ public interface IIncomeInvoiceDao extends IBaseDao<IncomeInvoiceEntity, String> List<IncomeInvoiceEntity> queryZtzz(IncomeInvoiceEntity entity); List<JSONObject> queryByAloneId(IncomeInvoiceEntity jnquerydata); + + List<JSONObject> queryAccount(IncomeInvoiceEntity jnentity); } diff --git a/base-buildpackage/src/main/java/com/hzya/frame/plugin/incomeInvoiceData/dao/impl/IncomeInvoiceDaoImpl.java b/base-buildpackage/src/main/java/com/hzya/frame/plugin/incomeInvoiceData/dao/impl/IncomeInvoiceDaoImpl.java index 8582aab4..8488fc63 100644 --- a/base-buildpackage/src/main/java/com/hzya/frame/plugin/incomeInvoiceData/dao/impl/IncomeInvoiceDaoImpl.java +++ b/base-buildpackage/src/main/java/com/hzya/frame/plugin/incomeInvoiceData/dao/impl/IncomeInvoiceDaoImpl.java @@ -66,5 +66,11 @@ public class IncomeInvoiceDaoImpl extends MybatisGenericDao<IncomeInvoiceEntity, List<JSONObject> o = (List<JSONObject>) super.selectList(getSqlIdPrifx() + "queryByAloneId", entity); return o; } + + @Override + public List<JSONObject> queryAccount(IncomeInvoiceEntity jnentity) { + List<JSONObject> o = (List<JSONObject>) super.selectList(getSqlIdPrifx() + "queryAccountByZq", jnentity); + return o; + } } diff --git a/base-buildpackage/src/main/java/com/hzya/frame/plugin/incomeInvoiceData/entity/IncomeInvoiceEntity.xml b/base-buildpackage/src/main/java/com/hzya/frame/plugin/incomeInvoiceData/entity/IncomeInvoiceEntity.xml index 0b3d5204..f1355be3 100644 --- a/base-buildpackage/src/main/java/com/hzya/frame/plugin/incomeInvoiceData/entity/IncomeInvoiceEntity.xml +++ b/base-buildpackage/src/main/java/com/hzya/frame/plugin/incomeInvoiceData/entity/IncomeInvoiceEntity.xml @@ -540,5 +540,183 @@ <if test="aloneId != null and aloneId != ''"> and a.ALONE_ID = #{aloneId} </if> </trim> </select> + + + + + <select id="queryAccountByZq" resultType="com.alibaba.fastjson.JSONObject" parameterType="com.hzya.frame.plugin.incomeInvoiceData.entity.IncomeInvoiceEntity"> + -- CREATE or replace VIEW V_LPHB_KMFZYE1 AS + select * from ( + SELECT + year, + adjustperiod as period, + year || '-' || adjustperiod as yearperiod, + nt.code AS subjectCode, + oa.name AS subjectName, + oa.dispname as subjectFullName, + ( SELECT code FROM bd_account WHERE pk_account = nt.pid ) as superCode, + case + when balanorient = '1' then '-1' + when balanorient = '0' then '1' + end as subjectDir, + case + when pk_acctype = '0001Z01000000000019S' then 1 + when pk_acctype = '0001Z01000000000019T' then 2 + when pk_acctype = '0001Z01000000000019V' then 3 + when pk_acctype = '0001Z01000000000019U' then 4 + when pk_acctype = '0001Z01000000000019W' then 5 + when pk_acctype = '0001Z01000000000019X' then 6 + end as subjectType, + nt.sumprint_level as subjectLevel, + case + when nt.sumprint_level = '0' then 1 + when nt.sumprint_level != '0' then 0 + end as endLevel, + sum( debitamount ) AS debitValue,-- 本期借方發生額 + sum( localcreditamount ) AS creditValue,-- 本期貸方發生額 + CASE + WHEN sum( qmlocalamount ) - ( sum( localdebitamount ) - sum( localcreditamount ) ) > 0 THEN'1' + WHEN sum( qmlocalamount ) - ( sum( localdebitamount ) - sum( localcreditamount ) ) = 0 THEN'0' ELSE '-1' END AS initialSubjectDir, + case + when sum( qmlocalamount ) - ( sum( localdebitamount ) - sum( localcreditamount ) )>0 then sum( qmlocalamount ) - ( sum( localdebitamount ) - sum( localcreditamount ) ) + else 0 end AS initialDebitBalanceValue, -- 期初余额借方金额 + case when sum( qmlocalamount ) - ( sum( localdebitamount ) - sum( localcreditamount ) ) < 0 then sum( qmlocalamount ) - ( sum( localdebitamount ) - sum( localcreditamount ) ) + else 0 end AS initialCreditBalanceValue, -- 期初余额贷方金额 + + CASE + WHEN sum( qmamount ) > 0 THEN'1' + WHEN sum( qmamount ) = 0 THEN'0' ELSE '-1' END AS balanceSubjectDir, + case when sum( qmlocalamount )>0 then sum( qmlocalamount ) + else 0 end as balanceDeditValue, -- 期末余额借方金额 + + case when sum( qmlocalamount )>0 then sum( qmlocalamount ) + else 0 end as balanceCreditValue, -- 期末余额贷方金额 + sum( ljlocaldebitamount ) AS totalDebitValue, + sum( ljlocalcreditamount ) AS totalCreditValue, + org.code GSBM, + org.name GSMC + FROM + ( + SELECT DISTINCT + accperiodmonth.periodyear YEAR, + accperiodmonth.PERIOD ADJUSTPERIOD, + dezz.pk_org, + dezz.pk_accasoa, + dezz.pk_currtype, + dezz.assid assid, + 0 AS localdebitamount, + 0 AS localcreditamount, + 0 AS debitamount, + 0 AS creditamount, + sum( localdebitamount ) AS ljlocaldebitamount, + sum( localcreditamount ) AS ljlocalcreditamount, + sum( debitamount ) AS ljdebitamount, + sum( creditamount ) AS ljcreditamount, + 0 AS qmlocalamount, + 0 AS qmamount + FROM + ( SELECT substr( yearmth, 0, 4 ) periodyear, substr( yearmth, 6, 7 ) period FROM bd_accperiodmonth WHERE yearmth < TO_CHAR( SYSDATE, 'YYYY-MM' ) ) accperiodmonth + LEFT JOIN gl_balance dezz ON dezz.YEAR = accperiodmonth.periodyear + AND dezz.adjustperiod < = accperiodmonth.period + WHERE + voucherkind != 5 + AND voucherkind != 4 + AND dezz.adjustperiod > '00' + GROUP BY + accperiodmonth.periodyear, + accperiodmonth.PERIOD, + dezz.pk_org, + dezz.pk_accasoa, + dezz.pk_currtype, + dezz.assid UNION ALL + SELECT DISTINCT + dezz.YEAR, + dezz.ADJUSTPERIOD, + dezz.pk_org, + dezz.pk_accasoa, + dezz.pk_currtype, + dezz.assid, + sum( localdebitamount ) AS localdebitamount, + sum( localcreditamount ) AS localcreditamount, + sum( debitamount ) AS debitamount, + sum( creditamount ) AS creditamount, + 0 AS ljlocaldebitamount, + 0 AS ljlocalcreditamount, + 0 AS ljdebitamount, + 0 AS ljcreditamount, + 0 AS qmlocalamount, + 0 AS qmamount + FROM + gl_balance dezz + WHERE + voucherkind != 5 + AND voucherkind != 4 + GROUP BY + dezz.YEAR, + dezz.ADJUSTPERIOD, + dezz.pk_org, + dezz.pk_accasoa, + dezz.pk_currtype, + dezz.assid UNION ALL + SELECT DISTINCT + accperiodmonth.periodyear YEAR, + accperiodmonth.PERIOD ADJUSTPERIOD, + dezz.pk_org, + dezz.pk_accasoa, + dezz.pk_currtype, + dezz.assid assid, + 0 AS localdebitamount, + 0 AS localcreditamount, + 0 AS debitamount, + 0 AS creditamount, + 0 AS ljlocaldebitamount, + 0 AS ljlocalcreditamount, + 0 AS ljdebitamount, + 0 AS ljcreditamount, + sum( localdebitamount ) - sum( localcreditamount ) AS qmlocalamount, + sum( debitamount ) - sum( creditamount ) AS qmamount + FROM + ( SELECT substr( yearmth, 0, 4 ) periodyear, substr( yearmth, 6, 7 ) period FROM bd_accperiodmonth WHERE yearmth < TO_CHAR( SYSDATE, 'YYYY-MM' ) ) accperiodmonth + LEFT JOIN gl_balance dezz ON dezz.YEAR = accperiodmonth.periodyear + AND dezz.adjustperiod < = accperiodmonth.period + WHERE + voucherkind != 5 + AND voucherkind != 4 + AND dezz.adjustperiod >= '00' + AND dezz.adjustperiod != '12A' + GROUP BY + accperiodmonth.periodyear, + accperiodmonth.PERIOD, + dezz.pk_org, + dezz.pk_accasoa, + dezz.pk_currtype, + dezz.assid + ) a + LEFT JOIN org_orgs org ON org.pk_org = a.pk_org + LEFT JOIN bd_accasoa oa ON oa.pk_accasoa = a.pk_accasoa + LEFT JOIN bd_account nt ON nt.pk_account = oa.pk_account + LEFT JOIN bd_currtype currtype ON a.pk_currtype = currtype.pk_currtype + LEFT JOIN gl_docfree1 fr1 ON fr1.assid = a.assid + where adjustperiod != '12A' + and adjustperiod >= '00' + and adjustperiod != '00' + GROUP BY + year, + adjustperiod, + nt.code , + oa.name , + oa.dispname, + nt.pid, + balanorient, + pk_acctype, + org.code, + org.name, + nt.sumprint_level + )m1 + <trim prefix="where" prefixOverrides="and"> + <if test="orgCode != null and orgCode !='' "> and gsbm = #{orgCode} </if> + <if test="sysData != null and sysData !='' "> and yearperiod = {sysData} </if> + </trim> + </select> </mapper> diff --git a/base-buildpackage/src/main/java/com/hzya/frame/plugin/incomeInvoiceData/service/impl/IncomeInvoiceServiceImpl.java b/base-buildpackage/src/main/java/com/hzya/frame/plugin/incomeInvoiceData/service/impl/IncomeInvoiceServiceImpl.java index e7eb8030..b0ee7ad6 100644 --- a/base-buildpackage/src/main/java/com/hzya/frame/plugin/incomeInvoiceData/service/impl/IncomeInvoiceServiceImpl.java +++ b/base-buildpackage/src/main/java/com/hzya/frame/plugin/incomeInvoiceData/service/impl/IncomeInvoiceServiceImpl.java @@ -64,9 +64,10 @@ public class IncomeInvoiceServiceImpl extends BaseService<IncomeInvoiceEntity, S this.dao = dao; } boolean flags = true; + String uploadBalanceTableUrl = "http://oapi.nanofintax.com/api/collect/uploadBalanceTable?accessToken"; String cbUrl = "http://oapi.nanofintax.com/api/collect/uploadFinancialReport?accessToken="; - String dataUrl = "http://oapi.nanofintax.com/api/invoice_receive/fp/v1/query?accessToken=";//全量发票数据 + String dataUrl = "http://oapi.nanofintax.com/api/invoice_receive/fp/v1/query?accessToken="; String tokenUrl = "http://oapi.nanofintax.com/api/getToken"; String accessKey = "6X3B526P5HqE6ums"; String accessSecret = "34e5fc32ac894a2ba2ade8c3852c7a0a"; @@ -682,18 +683,20 @@ public class IncomeInvoiceServiceImpl extends BaseService<IncomeInvoiceEntity, S JSONObject jsonStr = requestJson.getJSONObject("jsonStr"); JSONObject businessDataStr = jsonStr.getJSONObject("businessDataStr"); String eventType = jsonStr.getString("eventType"); + String ztbm = businessDataStr.getString("ztCode");//账套编码 + String cjzq = businessDataStr.getString("period");//采集账期 + String rwbm = businessDataStr.getString("taskNo");//任务编码 switch (eventType) { case "onProcessFinished"://流程结束事件,同步物料到U8C if(businessDataStr.getString("dataType") == null){//数据类型 return BaseResult.getFailureMessageEntity("数据类型为空"); } if(businessDataStr.getString("dataType").equals("1")){//科目余额 - + taskExecutor.execute(() -> sendAccountCodeReport(ztbm,cjzq,rwbm));//科目余额 + return BaseResult.getSuccessMessageEntity("数据获取成功"); } if(businessDataStr.getString("dataType").equals("2")){//财报 - String ztbm = businessDataStr.getString("ztCode");//账套编码 - String cjzq = businessDataStr.getString("period");//采集账期 - String rwbm = businessDataStr.getString("taskNo");//任务编码 + if(ztbm == null || "".equals(ztbm)){ return BaseResult.getFailureMessageEntity("账套编码为空"); } @@ -721,6 +724,54 @@ public class IncomeInvoiceServiceImpl extends BaseService<IncomeInvoiceEntity, S } + private JsonResultEntity sendAccountCodeReport(String ztbm, String cjzq, String rwbm) { + String access_token = getToken(); + if (access_token == null) { + return BaseResult.getFailureMessageEntity("token获取失败"); + } + String url = uploadBalanceTableUrl+access_token; + //通过公司编码、账期查询该单位的科目余额信息下发有度 + //查询当月帐套组织 + IncomeInvoiceEntity jnentity = new IncomeInvoiceEntity(); + jnentity.setDataSourceCode("htBip"); + jnentity.setSysData(cjzq); + jnentity.setOrgCode(ztbm); + //查询该账期下的科目余额 + List<JSONObject> jnlist = incomeInvoiceDao.queryAccount(jnentity); + //正常来说数组不存在空的情况 如果为空就直接下发空数组给他们 + JSONObject sendData = new JSONObject(); + sendData.put("accessKey",accessKey); + long timestamp = System.currentTimeMillis(); + sendData.put("timestamp",timestamp); + sendData.put("taskNo",rwbm); + sendData.put("period",cjzq); + String a = YzfSignUtil.signRequest(sendData,accessSecret); + sendData.put("sign",a); + sendData.put("balanceTableList",jnlist); + Map<String, String> headers = new HashMap<>(); + headers.put("Content-Type", "application/json; charset=utf-8"); + String returndata = sendPost(url, headers, sendData.toJSONString()); + if (returndata != null && JSONObject.isValidObject(returndata)) { + JSONObject dataJson = JSONObject.parseObject(returndata); + if(dataJson != null && dataJson.getString("code") != null && "0".equals( dataJson.getString("code"))){ + JSONObject data = dataJson.getJSONObject("result"); + if(data != null ){ + if(data != null && data.getString("resultCode") != null && "0".equals( data.getString("resultCode"))){ + return BaseResult.getSuccessMessageEntity("执行成功"); + }else { + return BaseResult.getFailureMessageEntity("发送失败:"+data.getString("message")); + } + }else { + return BaseResult.getFailureMessageEntity("发送失败:"+returndata); + } + }else { + return BaseResult.getFailureMessageEntity("发送失败:"+returndata); + } + }else { + return BaseResult.getFailureMessageEntity("发送失败:"+returndata); + } + } + /** * @Author lvleigang diff --git a/base-common/src/main/java/com/hzya/frame/execsql/service/ExecSqlServiceImpl.java b/base-common/src/main/java/com/hzya/frame/execsql/service/ExecSqlServiceImpl.java index ff02bcc4..329daca0 100644 --- a/base-common/src/main/java/com/hzya/frame/execsql/service/ExecSqlServiceImpl.java +++ b/base-common/src/main/java/com/hzya/frame/execsql/service/ExecSqlServiceImpl.java @@ -1,5 +1,6 @@ package com.hzya.frame.execsql.service; +import cn.hutool.core.util.StrUtil; import com.hzya.frame.datasource.DataSourceUtil; import com.hzya.frame.execsql.entity.ExecSqlEntity; import org.apache.ibatis.session.SqlSession; @@ -80,7 +81,7 @@ public class ExecSqlServiceImpl implements IExecSqlService { @Override public int execUpdateSql(String sql, String data_source_code) throws Exception { logger.info("=============进入execUpdateSql方法============"); - if (ObjectUtils.isEmpty(sql)) { + if (StrUtil.isNotEmpty(sql)) { if (sql.contains("where") || sql.contains("WHERE")) { // SqlSession sqlSession = getSqlSession(data_source_code); // SqlSession sqlSession = new DataSourceUtil().getDefaultSqlSession(); diff --git a/base-service/src/main/java/com/hzya/frame/sysnew/grovy/service/impl/GroovyIntegrationServiceImpl.java b/base-service/src/main/java/com/hzya/frame/sysnew/grovy/service/impl/GroovyIntegrationServiceImpl.java index ee5ee3a1..ac2aaef4 100644 --- a/base-service/src/main/java/com/hzya/frame/sysnew/grovy/service/impl/GroovyIntegrationServiceImpl.java +++ b/base-service/src/main/java/com/hzya/frame/sysnew/grovy/service/impl/GroovyIntegrationServiceImpl.java @@ -34,49 +34,67 @@ public class GroovyIntegrationServiceImpl implements IGroovyIntegrationService { } public static void main(String[] args) { - java.lang.String str = "{\"data\":{\"enablestate\":\"2\",\"user_password\":\"Hzya@1314\",\"gender\":\"12312\",\"user_name\":\"测试用户\",\"modify_time\":1719305835000,\"document_rule_num\":112,\"pk_org\":{\"org_mnecode\":\"1\",\"modify_time\":1718866279000,\"document_rule_num\":4,\"add_status\":\"0\",\"org_address\":\"1\",\"delete_status\":\"1\",\"org_innercode\":\"1\",\"id\":\"f7a8cee35fce4aa8ab266b3c7f125d7d\",\"data_status\":\"F\",\"modify_user_id\":\"1\",\"org_name\":\"开发部\",\"sorts\":4,\"document_rule\":\"ZZ-2024-06-20-00004\",\"create_user_id\":\"1\",\"create_time\":1718864103000,\"company_id\":\"Y\",\"org_memo\":\"1\",\"update_status\":\"0\",\"sts\":\"Y\",\"org_tel\":\"1\",\"org_id\":\"Y\",\"org_ncindustry\":\"1\",\"org_fatherorg\":\"c4913dde8da142bab4206fc084269382\",\"org_code\":\"003\",\"org_principal\":\"1\",\"org_countryzone\":\"1\"},\"add_status\":\"0\",\"pwdlevelcode\":\"\",\"user_type\":\"1\",\"user_code\":\"17633965916\",\"delete_status\":\"1\",\"id\":\"d99fe4e1c211450a960f7a1057da0d2c\",\"data_status\":\"F\",\"modify_user_id\":\"1\",\"sorts\":346,\"document_rule\":\"YH-2024-06-25-00112\",\"create_user_id\":\"1\",\"create_time\":1719305229000,\"company_id\":\"Y\",\"user_code_q\":\"KP003\",\"format\":\"ZH-CN\",\"mobile\":\"123123\",\"identityverifycode\":\"静态密码验证\",\"islocked\":\"N\",\"update_status\":\"0\",\"base_doc_type\":\"0\",\"sts\":\"Y\",\"login_name\":\"123123\",\"pwdparam\":\"2024-06-17\",\"org_id\":\"Y\",\"abledate\":\"2024-06-17 00:00:00\",\"isca\":\"Y\",\"contentlang\":\"ZH\"},\"query\":\"[]\",\"header\":\"[{\\\"parameterType\\\":\\\"fundamental\\\",\\\"length\\\":\\\"100\\\",\\\"index\\\":0,\\\"description\\\":\\\"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA87rrNR\\\",\\\"concreteType\\\":\\\"String\\\",\\\"id\\\":\\\"7127798c-b731-453a-b3ac-cfe9033eeace\\\",\\\"parameterName\\\":\\\"pubKey\\\",\\\"required\\\":true,\\\"example\\\":\\\"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA87rrNREgMNeOEOwlvM2iqqEfshDadRHziDSB2PbRnoMqSv1nGr3XBlZuseNj5HmxDEkLhOdfyw0yjzoz3wK7XhFpeN4Iyf7NT7hps5jAQMEpnul9Qwmj5qUr/eK5SaO9H8n7sh9BvCdrX9oRUh+U2/ceA3O+y/MUHk5DRvSadc8FhpqbOaNBbAzPnyYAwpVUPvaJ90jcGN1ZG99HR1GEzC+Cn9s6vgt7dYL6ysMs36bSP47xraDSxpfr0CLwa6JV/9KjLIeqL1ZaMtK0CJ1zJGCBA6O6kgxeE9Ul7q2lSS6mPAEJ78izaTYsrjhLpKT+eTtFBOLFbiCrbLp8tVE5kwIDAQAB\\\"},{\\\"parameterType\\\":\\\"fundamental\\\",\\\"length\\\":\\\"50\\\",\\\"index\\\":1,\\\"description\\\":\\\"OA\\\",\\\"concreteType\\\":\\\"String\\\",\\\"id\\\":\\\"7f965281-df0f-4d2f-b005-07e061fcde49\\\",\\\"parameterName\\\":\\\"client_id\\\",\\\"required\\\":true,\\\"example\\\":\\\"OA\\\"},{\\\"parameterType\\\":\\\"authport\\\",\\\"length\\\":\\\"50\\\",\\\"index\\\":2,\\\"concreteType\\\":\\\"String\\\",\\\"id\\\":\\\"cbc0e105-17c0-4385-8863-8903303edc1f\\\",\\\"parameterName\\\":\\\"access_token\\\",\\\"example\\\":[\\\"attribute\\\",\\\"data\\\",\\\"access_token\\\"]}]\",\"body\":\"[{\\\"index\\\":0,\\\"id\\\":\\\"beeedbc6-24c2-4093-9a5e-20fced9fb1b4\\\",\\\"parameterName\\\":\\\"body\\\",\\\"first\\\":true}]\"}"; + java.lang.String str = "{\"data\":{\"year\":\"2024\",\"prepared\":\"demo\",\"modify_time\":1730863191000,\"num\":\"13\",\"gl_detail\":[{\"create_user_id\":\"1\",\"amount\":\"5000\",\"formmain_id\":\"9da5a28900084951913df0d233427178\",\"create_time\":1730863191000,\"company_id\":\"0\",\"globalcreditamount\":\"0\",\"modify_time\":1730863191000,\"localcreditamount\":\"0\",\"localdebitamount\":\"5000\",\"explanation\":\"演示分录1\",\"globaldebitamount\":\"5000\",\"detail_id\":\"1\",\"groupdebitamount\":\"5000\",\"sts\":\"Y\",\"currtype_code\":\"CNY\",\"org_id\":\"0\",\"busidate\":\"2024-11-05\",\"groupcreditamount\":\"0\",\"detailindex\":\"1\",\"account_code\":\"100210\",\"id\":\"0eb6d3d5f12944e1bcbb00883cc4f13e\",\"data_status\":\"Y\",\"modify_user_id\":\"1\",\"sorts\":1},{\"create_user_id\":\"1\",\"amount\":\"5000\",\"formmain_id\":\"9da5a28900084951913df0d233427178\",\"create_time\":1730863191000,\"company_id\":\"0\",\"globalcreditamount\":\"5000\",\"modify_time\":1730863191000,\"localcreditamount\":\"5000\",\"localdebitamount\":\"0\",\"explanation\":\"演示分录2\",\"globaldebitamount\":\"0\",\"detail_id\":\"2\",\"groupdebitamount\":\"0\",\"sts\":\"Y\",\"currtype_code\":\"CNY\",\"org_id\":\"0\",\"busidate\":\"2024-11-05\",\"groupcreditamount\":\"5000\",\"detailindex\":\"2\",\"account_code\":\"2231\",\"id\":\"db9c531af7a94af2975d1c9f1ae21813\",\"data_status\":\"Y\",\"modify_user_id\":\"1\",\"sorts\":2}],\"document_rule_num\":1,\"add_status\":\"0\",\"vouchertype\":\"01\",\"attachment\":\"0\",\"delete_status\":\"1\",\"id\":\"9da5a28900084951913df0d233427178\",\"data_status\":\"Y\",\"modify_user_id\":\"1\",\"sorts\":1,\"document_rule\":\"PZ-20241106-00001\",\"create_user_id\":\"1\",\"period\":\"11\",\"create_time\":1730863191000,\"company_id\":\"Y\",\"update_status\":\"1\",\"accbook_code\":\"101-0002\",\"sts\":\"Y\",\"org_id\":\"Y\",\"prepareddate\":\"2024-11-05\",\"voucher_id\":\"1\",\"gl_fixtmpfreevalue\":[{\"create_user_id\":\"1\",\"formmain_id\":\"9da5a28900084951913df0d233427178\",\"create_time\":1730863191000,\"company_id\":\"0\",\"checktypecode\":\"0012\",\"modify_time\":1730863191000,\"checkvaluecode\":\"101\",\"detail_id\":\"2\",\"sts\":\"Y\",\"org_id\":\"0\",\"voucher_id\":\"1\",\"id\":\"779d40051ae3470583885d9c202d5ba1\",\"data_status\":\"Y\",\"modify_user_id\":\"1\",\"sorts\":1},{\"create_user_id\":\"1\",\"formmain_id\":\"9da5a28900084951913df0d233427178\",\"create_time\":1730863191000,\"company_id\":\"0\",\"checktypecode\":\"0006\",\"modify_time\":1730863191000,\"checkvaluecode\":\"000001\",\"detail_id\":\"2\",\"sts\":\"Y\",\"org_id\":\"0\",\"voucher_id\":\"1\",\"id\":\"f313361e495445958245ec61a00a1216\",\"data_status\":\"Y\",\"modify_user_id\":\"1\",\"sorts\":2}]},\"query\":\"[]\",\"header\":\"[{\\\"parameterType\\\":\\\"fundamental\\\",\\\"index\\\":0,\\\"concreteType\\\":\\\"String\\\",\\\"id\\\":\\\"77ba4bd1-c693-488f-b3b7-69bb4c02be76\\\",\\\"parameterName\\\":\\\"pubKey\\\",\\\"example\\\":\\\"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmlnN6sXjhJN6wUY0DILqiIL1ZX9ZU5Q40Hrr+4qhf3fddV/+/D1CyJo7aVGd3mJjD1BC1RXtnfxetaLzLrfTViq80RQvmmmKgt6rKiYMiW8ibcWoKaWMvwrlm0uT7RzYeXDP0l4qvoe8vjVWL63mQbx0y17p4opwTA9BV7P/CZ+9QyIJstN+yAg/owlNn48Jq4WspQps0/Zl/HvpiRjAPggVOqZLXkCjoBGrpNn/tlrDFbt+btK7tjhvsfT1zPMVAq8dNUKCMw5LoLsMxfT/ZWlI62zUAIbyO2/0iv5kCZw0I+DxPmGKVEOQ4x9FwXosSSD202H93CuBvVy/P31iUwIDAQAB\\\"},{\\\"parameterType\\\":\\\"fundamental\\\",\\\"index\\\":1,\\\"concreteType\\\":\\\"String\\\",\\\"id\\\":\\\"df32aa53-9c8e-4d31-8a9b-d78bc70f9214\\\",\\\"parameterName\\\":\\\"client_id\\\",\\\"example\\\":\\\"u8c\\\"},{\\\"parameterType\\\":\\\"authport\\\",\\\"index\\\":2,\\\"concreteType\\\":\\\"String\\\",\\\"id\\\":\\\"de304f55-ca04-47d9-93f9-70b52d9bba50\\\",\\\"parameterName\\\":\\\"access_token\\\",\\\"example\\\":[\\\"attribute\\\",\\\"data\\\",\\\"access_token\\\"]}]\",\"body\":\"[{\\\"parameterType\\\":\\\"complex\\\",\\\"children\\\":[{\\\"parameterType\\\":\\\"complex\\\",\\\"children\\\":[{\\\"parameterType\\\":\\\"fundamental\\\",\\\"concreteType\\\":\\\"String\\\",\\\"index\\\":2,\\\"parameterName\\\":\\\"accbookCode\\\",\\\"id\\\":\\\"95ff2224-bdb7-4a9d-a45b-8c19f444022b\\\",\\\"example\\\":\\\"X0644-0001\\\"},{\\\"parameterType\\\":\\\"fundamental\\\",\\\"concreteType\\\":\\\"String\\\",\\\"index\\\":3,\\\"parameterName\\\":\\\"prepareddate\\\",\\\"id\\\":\\\"7106bf79-133c-446e-be58-bf18d43a7c14\\\",\\\"example\\\":\\\"2023-09-19\\\"},{\\\"parameterType\\\":\\\"fundamental\\\",\\\"concreteType\\\":\\\"String\\\",\\\"index\\\":4,\\\"parameterName\\\":\\\"year\\\",\\\"id\\\":\\\"9b005ca9-e246-41c0-bbbb-aead5d6f44f1\\\",\\\"example\\\":\\\"2023\\\"},{\\\"parameterType\\\":\\\"fundamental\\\",\\\"concreteType\\\":\\\"String\\\",\\\"index\\\":5,\\\"parameterName\\\":\\\"num\\\",\\\"id\\\":\\\"fbe1d3a2-69e9-4df7-91d0-bb9005cd333e\\\",\\\"example\\\":\\\"4\\\"},{\\\"parameterType\\\":\\\"complexlist\\\",\\\"children\\\":[{\\\"parameterType\\\":\\\"fundamental\\\",\\\"concreteType\\\":\\\"String\\\",\\\"index\\\":7,\\\"parameterName\\\":\\\"detailindex\\\",\\\"id\\\":\\\"386e20b9-5992-4a95-8fa7-fb64677d55e9\\\",\\\"example\\\":\\\"1\\\"},{\\\"parameterType\\\":\\\"fundamental\\\",\\\"concreteType\\\":\\\"String\\\",\\\"index\\\":8,\\\"parameterName\\\":\\\"explanation\\\",\\\"id\\\":\\\"20cab876-bd5a-46b8-96ba-7112104a273f\\\",\\\"example\\\":\\\"测试\\\"},{\\\"parameterType\\\":\\\"fundamental\\\",\\\"concreteType\\\":\\\"String\\\",\\\"index\\\":9,\\\"parameterName\\\":\\\"accountCode\\\",\\\"id\\\":\\\"e1a89672-8449-4bda-a404-478f0594ac70\\\",\\\"example\\\":\\\"150401\\\"},{\\\"parameterType\\\":\\\"fundamental\\\",\\\"concreteType\\\":\\\"String\\\",\\\"index\\\":10,\\\"parameterName\\\":\\\"currtypeCode\\\",\\\"id\\\":\\\"43b33900-c5da-4afb-bbd7-0865bd02db58\\\",\\\"example\\\":\\\"CNY\\\"},{\\\"parameterType\\\":\\\"fundamental\\\",\\\"concreteType\\\":\\\"String\\\",\\\"index\\\":11,\\\"parameterName\\\":\\\"amount\\\",\\\"id\\\":\\\"4b0fd6a4-b1d0-489e-aec1-ca509e9221ad\\\",\\\"example\\\":\\\"1000\\\"},{\\\"parameterType\\\":\\\"fundamental\\\",\\\"concreteType\\\":\\\"String\\\",\\\"index\\\":12,\\\"parameterName\\\":\\\"localdebitamount\\\",\\\"id\\\":\\\"9a43ad19-f903-4a8a-a5ac-f13c9fba445e\\\",\\\"example\\\":\\\"1000\\\"},{\\\"parameterType\\\":\\\"fundamental\\\",\\\"concreteType\\\":\\\"String\\\",\\\"index\\\":13,\\\"parameterName\\\":\\\"localcreditamount\\\",\\\"id\\\":\\\"df2d1f92-89cb-411d-83ba-62366e931dba\\\",\\\"example\\\":\\\"0\\\"},{\\\"parameterType\\\":\\\"fundamental\\\",\\\"concreteType\\\":\\\"String\\\",\\\"index\\\":14,\\\"parameterName\\\":\\\"groupdebitamount\\\",\\\"id\\\":\\\"61965366-0500-40d7-bae4-5dd16eb90761\\\",\\\"example\\\":\\\"1000\\\"},{\\\"parameterType\\\":\\\"fundamental\\\",\\\"concreteType\\\":\\\"String\\\",\\\"index\\\":15,\\\"parameterName\\\":\\\"groupcreditamount\\\",\\\"id\\\":\\\"bdc3c6c2-de87-45f1-85cf-24f3b92920c6\\\",\\\"example\\\":\\\"0\\\"},{\\\"parameterType\\\":\\\"fundamental\\\",\\\"concreteType\\\":\\\"String\\\",\\\"index\\\":16,\\\"parameterName\\\":\\\"globaldebitamount\\\",\\\"id\\\":\\\"a6069792-2a6b-43ba-97d7-504e1c5e3156\\\",\\\"example\\\":\\\"1000\\\"},{\\\"parameterType\\\":\\\"fundamental\\\",\\\"concreteType\\\":\\\"String\\\",\\\"index\\\":17,\\\"parameterName\\\":\\\"globalcreditamount\\\",\\\"id\\\":\\\"528b2c6b-86a5-47ec-8b26-00259dacb0b4\\\",\\\"example\\\":\\\"0\\\"},{\\\"parameterType\\\":\\\"fundamental\\\",\\\"concreteType\\\":\\\"String\\\",\\\"index\\\":18,\\\"parameterName\\\":\\\"busidate\\\",\\\"id\\\":\\\"11636e2a-b9d8-4ee3-81fc-0e809d11bf4f\\\",\\\"example\\\":\\\"2023-09-19\\\"},{\\\"parameterType\\\":\\\"complexlist\\\",\\\"children\\\":[{\\\"parameterType\\\":\\\"fundamental\\\",\\\"concreteType\\\":\\\"String\\\",\\\"index\\\":20,\\\"parameterName\\\":\\\"checktypecode\\\",\\\"id\\\":\\\"b56bf160-7180-47ea-996a-acd8307eb5fa\\\",\\\"example\\\":\\\"0004\\\"},{\\\"parameterType\\\":\\\"fundamental\\\",\\\"concreteType\\\":\\\"String\\\",\\\"index\\\":21,\\\"parameterName\\\":\\\"checkvaluecode\\\",\\\"id\\\":\\\"88d4fbb0-d3b7-4f1e-981d-71e60d10e603\\\",\\\"example\\\":\\\"X0015\\\"}],\\\"concreteType\\\":\\\"ObjectCom\\\",\\\"index\\\":19,\\\"parameterName\\\":\\\"ass\\\",\\\"id\\\":\\\"c10103af-f382-4c9b-a8f4-0738b664abb0\\\"}],\\\"concreteType\\\":\\\"ObjectCom\\\",\\\"index\\\":6,\\\"parameterName\\\":\\\"detail\\\",\\\"id\\\":\\\"70f9d810-039e-4884-b986-bc5b75331fb4\\\"},{\\\"parameterType\\\":\\\"fundamental\\\",\\\"concreteType\\\":\\\"String\\\",\\\"index\\\":22,\\\"parameterName\\\":\\\"period\\\",\\\"id\\\":\\\"de91d6ad-c07b-4f84-a8c9-52e87de39d50\\\",\\\"example\\\":\\\"09\\\"},{\\\"parameterType\\\":\\\"fundamental\\\",\\\"concreteType\\\":\\\"String\\\",\\\"index\\\":23,\\\"parameterName\\\":\\\"vouchertype\\\",\\\"id\\\":\\\"5de12ed3-d27e-4848-a008-5fb2e5c656a8\\\",\\\"example\\\":\\\"01\\\"},{\\\"parameterType\\\":\\\"fundamental\\\",\\\"concreteType\\\":\\\"String\\\",\\\"index\\\":24,\\\"parameterName\\\":\\\"attachment\\\",\\\"id\\\":\\\"cc0ae4fb-5f33-46c9-a0bf-775b46ae8511\\\",\\\"example\\\":\\\"0\\\"},{\\\"parameterType\\\":\\\"fundamental\\\",\\\"concreteType\\\":\\\"String\\\",\\\"index\\\":25,\\\"parameterName\\\":\\\"prepared\\\",\\\"id\\\":\\\"4b1622d6-980e-4920-82d0-e078e8bdb009\\\",\\\"example\\\":\\\"zhuc\\\"}],\\\"concreteType\\\":\\\"Object\\\",\\\"index\\\":1,\\\"parameterName\\\":\\\"sendData\\\",\\\"id\\\":\\\"2fc2918b-73fd-4c31-ba9f-1721132f1fdf\\\"}],\\\"concreteType\\\":\\\"Object\\\",\\\"index\\\":0,\\\"id\\\":\\\"669eebef-e4ae-474e-9b88-46a5490dc3db\\\",\\\"parameterName\\\":\\\"body\\\",\\\"first\\\":true}]\"}"; A88772 s = new A88772(); s.execute(str); } static class A88772 { String execute(String jsonStr) { - com.alibaba.fastjson.JSONObject returnObject = new com.alibaba.fastjson.JSONObject(); - com.alibaba.fastjson.JSONObject bodys = new com.alibaba.fastjson.JSONObject(); - com.alibaba.fastjson.JSONObject reqData = com.alibaba.fastjson.JSON.parseObject(jsonStr); com.alibaba.fastjson.JSONObject data = reqData.getJSONObject("data"); - com.alibaba.fastjson.JSONObject ufinterfaceObject = new com.alibaba.fastjson.JSONObject(); - ufinterfaceObject.put("billtype", "customer"); - ufinterfaceObject.put("isexchange", "Y"); - ufinterfaceObject.put("replace", "Y"); - ufinterfaceObject.put("sender", "openUser"); - ufinterfaceObject.put("account", "ycjf"); - ufinterfaceObject.put("groupcode", "ycjf"); - com.alibaba.fastjson.JSONObject billObject = new com.alibaba.fastjson.JSONObject(); - com.alibaba.fastjson.JSONObject billheadObject = new com.alibaba.fastjson.JSONObject(); - billheadObject.put("code", data.get("code")); - billheadObject.put("custprop", data.get("custprop")); - billheadObject.put("custstate", data.get("custstate")); - billheadObject.put("pk_custclass", data.get("pk_custclass")); - billheadObject.put("pk_country", data.get("pk_country")); - billheadObject.put("pk_timezone", "P0800"); - billheadObject.put("pk_format", "ZH-CN"); - billheadObject.put("enablestate", data.get("enablestate")); - billheadObject.put("name", data.get("name")); - billheadObject.put("pk_group", data.get("pk_group")); - billheadObject.put("pk_org", data.get("pk_org")); - billheadObject.put("taxpayerid", data.get("taxpayerid")); - billObject.put("billhead", billheadObject); - ufinterfaceObject.put("bill", billObject); - bodys.put("ufinterface", ufinterfaceObject); - returnObject.put("bodys",bodys.toJSONString()); + com.alibaba.fastjson.JSONArray gl_detail = data.getJSONArray("gl_detail"); + com.alibaba.fastjson.JSONArray gl_fixtmpfreevalue = data.getJSONArray("gl_fixtmpfreevalue"); + + com.alibaba.fastjson.JSONObject returnObject = new com.alibaba.fastjson.JSONObject(); + com.alibaba.fastjson.JSONObject sendData = new com.alibaba.fastjson.JSONObject(); + sendData.put("accbookCode",data.getString("accbook_code")); + sendData.put("prepareddate",data.getString("prepareddate")); + sendData.put("year",data.getString("year")); + sendData.put("num",data.getString("num")); + sendData.put("period",data.getString("period")); + sendData.put("vouchertype",data.getString("vouchertype")); + sendData.put("attachment",data.getString("attachment")); + sendData.put("prepared",data.getString("prepared")); + com.alibaba.fastjson.JSONArray detail = new com.alibaba.fastjson.JSONArray(); + if(gl_detail != null && gl_detail.size() > 0){ + for (int i = 0; i < gl_detail.size(); i++) { + com.alibaba.fastjson.JSONObject detaildata = gl_detail.getJSONObject(i); + com.alibaba.fastjson.JSONObject object1 = new com.alibaba.fastjson.JSONObject(); + object1.put("detailindex",detaildata.getString("detailindex")); + object1.put("explanation",detaildata.getString("explanation")); + object1.put("accountCode",detaildata.getString("account_code")); + object1.put("currtypeCode",detaildata.getString("currtype_code")); + object1.put("amount",detaildata.getString("amount")); + object1.put("localdebitamount",detaildata.getString("localdebitamount")); + object1.put("localcreditamount",detaildata.getString("localcreditamount")); + object1.put("groupdebitamount",detaildata.getString("groupdebitamount")); + object1.put("groupcreditamount",detaildata.getString("groupcreditamount")); + object1.put("globaldebitamount",detaildata.getString("globaldebitamount")); + object1.put("globalcreditamount",detaildata.getString("globalcreditamount")); + object1.put("busidate",detaildata.getString("busidate")); + detail.add(object1); + if(gl_fixtmpfreevalue != null && gl_fixtmpfreevalue.size() > 0){ + com.alibaba.fastjson.JSONArray ass = new com.alibaba.fastjson.JSONArray(); + for (int i1 = 0; i1 < gl_fixtmpfreevalue.size(); i1++) { + if(gl_fixtmpfreevalue.getJSONObject(i1).getString("voucher_id").equals(data.getString("voucher_id")) + && gl_fixtmpfreevalue.getJSONObject(i1).getString("detail_id").equals(detaildata.getString("detail_id"))){ + com.alibaba.fastjson.JSONObject assdetail1 = new com.alibaba.fastjson.JSONObject(); + assdetail1.put("checktypecode",gl_fixtmpfreevalue.getJSONObject(i1).getString("checktypecode")); + assdetail1.put("checkvaluecode",gl_fixtmpfreevalue.getJSONObject(i1).getString("checkvaluecode")); + ass.add(assdetail1); + } + } + if(ass.size() > 0){ + object1.put("ass",ass); + + } + } + } + } + sendData.put("detail",detail); + returnObject.put("bodys",sendData); return returnObject.toJSONString(); - - - - - } } diff --git a/base-webapp/pom.xml b/base-webapp/pom.xml index 3507e248..f751b1fe 100644 --- a/base-webapp/pom.xml +++ b/base-webapp/pom.xml @@ -18,11 +18,11 @@ <artifactId>base-service</artifactId> <version>${revision}</version> </dependency> -<!-- <dependency>--> -<!-- <groupId>com.hzya.frame</groupId>--> -<!-- <artifactId>fw-bip</artifactId>--> -<!-- <version>${revision}</version>--> -<!-- </dependency>--> + <dependency> + <groupId>com.hzya.frame</groupId> + <artifactId>fw-bip</artifactId> + <version>${revision}</version> + </dependency> <!-- <dependency>--> <!-- <groupId>com.hzya.frame</groupId>--> <!-- <artifactId>fw-cbs</artifactId>--> diff --git a/fw-bip/pom.xml b/fw-bip/pom.xml new file mode 100644 index 00000000..f0f762fa --- /dev/null +++ b/fw-bip/pom.xml @@ -0,0 +1,85 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <parent> + <artifactId>kangarooDataCenterV3</artifactId> + <groupId>com.hzya.frame</groupId> + <version>${revision}</version> + </parent> + <modelVersion>4.0.0</modelVersion> + <artifactId>fw-bip</artifactId> + <packaging>jar</packaging> + <version>${revision}</version> + + <dependencies> + <dependency> + <groupId>com.hzya.frame</groupId> + <artifactId>base-service</artifactId> + <version>${revision}</version> + </dependency> + <dependency> + <groupId>mysql</groupId> + <artifactId>mysql-connector-java</artifactId> + <version>${mysql-connector-java}</version> + </dependency> + + <dependency> + <groupId>com.hzya.bip</groupId> + <artifactId>pubbaseapp_nccloud_rtLevel</artifactId> + <version>1</version> + <scope>system</scope> + <systemPath>${basedir}/src/main/webapp/WEB-INF/lib/pubbaseapp_nccloud_rtLevel-1.jar</systemPath> + </dependency> +<!-- <dependency>--> +<!-- <groupId>com.hzya.bipyonyoulog</groupId>--> +<!-- <artifactId>yonyoulog</artifactId>--> +<!-- <version>1</version>--> +<!-- <scope>system</scope>--> +<!-- <systemPath>${basedir}/src/main/resources/lib/yonyoulog.jar</systemPath>--> +<!-- </dependency>--> + +<!-- <dependency>--> +<!-- <groupId>com.hzya.bcprov</groupId>--> +<!-- <artifactId>bcprov</artifactId>--> +<!-- <version>1</version>--> +<!-- <scope>system</scope>--> +<!-- <systemPath>${basedir}/src/main/resources/lib/bcprov-jdk15on-1.70.jar</systemPath>--> +<!-- </dependency>--> + +<!-- <dependency>--> +<!-- <groupId>com.hzya.DataApiSdk</groupId>--> +<!-- <artifactId>DataApiSdk</artifactId>--> +<!-- <version>1</version>--> +<!-- <scope>system</scope>--> +<!-- <systemPath>${basedir}/src/main/resources/lib/DataApiSdk-jar-with-dependencies.jar</systemPath>--> +<!-- </dependency>--> +<!-- <dependency>--> +<!-- <groupId>com.hzya.openBasicSDK</groupId>--> +<!-- <artifactId>openBasicSDK</artifactId>--> +<!-- <version>1</version>--> +<!-- <scope>system</scope>--> +<!-- <systemPath>${basedir}/src/main/resources/lib/openBasicSDK-2.1.230630.jar</systemPath>--> +<!-- </dependency>--> + </dependencies> + <build> + <plugins> + <plugin> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-maven-plugin</artifactId> + <configuration> + <mainClass>none</mainClass> <!-- 取消查找本项目下的Main方法:为了解决Unable to find main class的问题 --> + <classifier>execute</classifier> <!-- 为了解决依赖模块找不到此模块中的类或属性 --> + <skip>true</skip> + </configuration> + <executions> + <execution> + <goals> + <goal>repackage</goal> + </goals> + </execution> + </executions> + </plugin> + </plugins> + </build> +</project> diff --git a/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/dao/IBipArchivesDao.java b/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/dao/IBipArchivesDao.java new file mode 100644 index 00000000..02516313 --- /dev/null +++ b/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/dao/IBipArchivesDao.java @@ -0,0 +1,15 @@ +package com.hzya.frame.bip.v3.v2207.dao; + +import com.hzya.frame.basedao.dao.IBaseDao; +import com.hzya.frame.bip.v3.v2207.entity.BipArchivesEntity; +import com.hzya.frame.bip.v3.v2207.entity.BipOrgsEntity; + +import java.util.List; + + +public interface IBipArchivesDao extends IBaseDao<BipArchivesEntity, String> { + + List<BipArchivesEntity> queryArchivesData(BipArchivesEntity archivesEntity); + List<BipArchivesEntity> queryArchivesDatays(BipArchivesEntity archivesEntity); + +} diff --git a/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/dao/IBipOrgsDao.java b/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/dao/IBipOrgsDao.java new file mode 100644 index 00000000..0ad05a4c --- /dev/null +++ b/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/dao/IBipOrgsDao.java @@ -0,0 +1,17 @@ +package com.hzya.frame.bip.v3.v2207.dao; + +import com.hzya.frame.basedao.dao.IBaseDao; +import com.hzya.frame.bip.v3.v2207.entity.BipOrgsEntity; + +import java.util.List; + + +public interface IBipOrgsDao extends IBaseDao<BipOrgsEntity, String> { + + /** + * 查询BIP业务单元 + * @param BipOrgsEntity + * @return + */ + List<BipOrgsEntity> thirdInterfaceGetOrgs(BipOrgsEntity BipOrgsEntity); +} diff --git a/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/dao/IBipOrgsDetailsDao.java b/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/dao/IBipOrgsDetailsDao.java new file mode 100644 index 00000000..e0e6ea3f --- /dev/null +++ b/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/dao/IBipOrgsDetailsDao.java @@ -0,0 +1,17 @@ +package com.hzya.frame.bip.v3.v2207.dao; + +import com.hzya.frame.basedao.dao.IBaseDao; +import com.hzya.frame.bip.v3.v2207.entity.BipOrgsDetailsEntity; + +import java.util.List; + + +public interface IBipOrgsDetailsDao extends IBaseDao<BipOrgsDetailsEntity, String> { + + /** + * 查询BIP业务单元银行账户 + * @param BipOrgsDetailsEntity + * @return + */ + List<BipOrgsDetailsEntity> thirdInterfaceGetOrgsDetails(BipOrgsDetailsEntity BipOrgsDetailsEntity); +} diff --git a/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/dao/IBipSupplierDao.java b/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/dao/IBipSupplierDao.java new file mode 100644 index 00000000..ba069080 --- /dev/null +++ b/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/dao/IBipSupplierDao.java @@ -0,0 +1,18 @@ +package com.hzya.frame.bip.v3.v2207.dao; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.hzya.frame.basedao.dao.IBaseDao; +import com.hzya.frame.bip.v3.v2207.entity.BipSupplierEntity; + +import java.util.List; + + +public interface IBipSupplierDao extends IBaseDao<BipSupplierEntity, String> { + + /** + * 查询BIP供应商 + * @param bipSupplierEntity + * @return + */ + List<BipSupplierEntity> thirdInterfaceGetSupplier(BipSupplierEntity bipSupplierEntity); +} diff --git a/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/dao/IBipSupplierDetailsDao.java b/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/dao/IBipSupplierDetailsDao.java new file mode 100644 index 00000000..2edaa29e --- /dev/null +++ b/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/dao/IBipSupplierDetailsDao.java @@ -0,0 +1,18 @@ +package com.hzya.frame.bip.v3.v2207.dao; + +import com.hzya.frame.basedao.dao.IBaseDao; +import com.hzya.frame.bip.v3.v2207.entity.BipSupplierDetailsEntity; +import com.hzya.frame.bip.v3.v2207.entity.BipSupplierEntity; + +import java.util.List; + + +public interface IBipSupplierDetailsDao extends IBaseDao<BipSupplierDetailsEntity, String> { + + /** + * 查询BIP供应商明细 + * @param bipSupplierDetailsEntity + * @return + */ + List<BipSupplierDetailsEntity> thirdInterfaceGetSupplierDetails(BipSupplierDetailsEntity bipSupplierDetailsEntity); +} diff --git a/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/dao/impl/BipArchivesDaoImpl.java b/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/dao/impl/BipArchivesDaoImpl.java new file mode 100644 index 00000000..987d702c --- /dev/null +++ b/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/dao/impl/BipArchivesDaoImpl.java @@ -0,0 +1,25 @@ +package com.hzya.frame.bip.v3.v2207.dao.impl; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.hzya.frame.basedao.dao.MybatisGenericDao; +import com.hzya.frame.bip.v3.v2207.dao.IBipArchivesDao; +import com.hzya.frame.bip.v3.v2207.dao.IBipOrgsDao; +import com.hzya.frame.bip.v3.v2207.entity.BipArchivesEntity; +import com.hzya.frame.bip.v3.v2207.entity.BipOrgsEntity; +import org.springframework.stereotype.Repository; + +import java.util.List; + +@Repository("bipArchivesDaoImpl") +public class BipArchivesDaoImpl extends MybatisGenericDao<BipArchivesEntity,String> implements IBipArchivesDao { + + @Override + public List<BipArchivesEntity> queryArchivesData(BipArchivesEntity entity) { + List<BipArchivesEntity> o = super.query(getSqlIdPrifx() + "queryArchivesData", entity); + return o; + } @Override + public List<BipArchivesEntity> queryArchivesDatays(BipArchivesEntity entity) { + List<BipArchivesEntity> o = super.query(getSqlIdPrifx() + "queryArchivesDatays", entity); + return o; + } +} diff --git a/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/dao/impl/BipOrgsDaoImpl.java b/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/dao/impl/BipOrgsDaoImpl.java new file mode 100644 index 00000000..478c54ca --- /dev/null +++ b/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/dao/impl/BipOrgsDaoImpl.java @@ -0,0 +1,24 @@ +package com.hzya.frame.bip.v3.v2207.dao.impl; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.hzya.frame.basedao.dao.MybatisGenericDao; +import com.hzya.frame.bip.v3.v2207.dao.IBipOrgsDao; +import com.hzya.frame.bip.v3.v2207.dao.IBipSupplierDao; +import com.hzya.frame.bip.v3.v2207.entity.BipOrgsEntity; +import org.springframework.stereotype.Repository; + +import java.util.List; + +@Repository("bipOrgsDaoImpl") +public class BipOrgsDaoImpl extends MybatisGenericDao<BipOrgsEntity,String> implements IBipOrgsDao { + /** + * 查询BIP业务单元 + * @param BipOrgsEntity + * @return + */ + @DS("oracle91") + @Override + public List<BipOrgsEntity> thirdInterfaceGetOrgs(BipOrgsEntity BipOrgsEntity) { + return super.query("com.hzya.frame.bip.v3.v2207.dao.impl.BipOrgsDaoImpl.thirdInterfaceGetOrgs",BipOrgsEntity); + } +} diff --git a/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/dao/impl/BipOrgsDetailsDaoImpl.java b/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/dao/impl/BipOrgsDetailsDaoImpl.java new file mode 100644 index 00000000..5d51da6d --- /dev/null +++ b/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/dao/impl/BipOrgsDetailsDaoImpl.java @@ -0,0 +1,19 @@ +package com.hzya.frame.bip.v3.v2207.dao.impl; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.hzya.frame.basedao.dao.MybatisGenericDao; +import com.hzya.frame.bip.v3.v2207.dao.IBipOrgsDetailsDao; +import com.hzya.frame.bip.v3.v2207.dao.IBipSupplierDetailsDao; +import com.hzya.frame.bip.v3.v2207.entity.BipOrgsDetailsEntity; +import org.springframework.stereotype.Repository; + +import java.util.List; + +@Repository("bipOrgsDetailsDaoImpl") +public class BipOrgsDetailsDaoImpl extends MybatisGenericDao<BipOrgsDetailsEntity,String> implements IBipOrgsDetailsDao { + @DS("oracle91") + @Override + public List<BipOrgsDetailsEntity> thirdInterfaceGetOrgsDetails(BipOrgsDetailsEntity bipOrgsDetailsEntity) { + return super.query("com.hzya.frame.bip.v3.v2207.dao.impl.BipOrgsDetailsDaoImpl.thirdInterfaceGetOrgsDetails",bipOrgsDetailsEntity); + } +} diff --git a/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/dao/impl/BipSupplierDaoImpl.java b/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/dao/impl/BipSupplierDaoImpl.java new file mode 100644 index 00000000..9abe9ee7 --- /dev/null +++ b/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/dao/impl/BipSupplierDaoImpl.java @@ -0,0 +1,25 @@ +package com.hzya.frame.bip.v3.v2207.dao.impl; + +import cn.hutool.http.HttpRequest; +import com.baomidou.dynamic.datasource.annotation.DS; +import com.hzya.frame.basedao.dao.MybatisGenericDao; +import com.hzya.frame.bip.v3.v2207.dao.IBipSupplierDao; +import com.hzya.frame.bip.v3.v2207.entity.BipSupplierEntity; +import com.hzya.frame.util.HttpUtil; +import org.springframework.stereotype.Repository; + +import java.util.List; + +@Repository("bipSupplierDaoImpl") +public class BipSupplierDaoImpl extends MybatisGenericDao<BipSupplierEntity,String> implements IBipSupplierDao { + /** + * 查询BIP供应商 + * @param bipSupplierEntity + * @return + */ + @DS("oracle91") + @Override + public List<BipSupplierEntity> thirdInterfaceGetSupplier(BipSupplierEntity bipSupplierEntity) { + return super.query("com.hzya.frame.bip.v3.v2207.dao.impl.BipSupplierDaoImpl.thirdInterfaceGetSupplier",bipSupplierEntity); + } +} diff --git a/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/dao/impl/BipSupplierDetailsDaoImpl.java b/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/dao/impl/BipSupplierDetailsDaoImpl.java new file mode 100644 index 00000000..89443371 --- /dev/null +++ b/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/dao/impl/BipSupplierDetailsDaoImpl.java @@ -0,0 +1,20 @@ +package com.hzya.frame.bip.v3.v2207.dao.impl; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.hzya.frame.basedao.dao.MybatisGenericDao; +import com.hzya.frame.bip.v3.v2207.dao.IBipSupplierDao; +import com.hzya.frame.bip.v3.v2207.dao.IBipSupplierDetailsDao; +import com.hzya.frame.bip.v3.v2207.entity.BipSupplierDetailsEntity; +import com.hzya.frame.bip.v3.v2207.entity.BipSupplierEntity; +import org.springframework.stereotype.Repository; + +import java.util.List; + +@Repository("bipSupplierDetailsDaoImpl") +public class BipSupplierDetailsDaoImpl extends MybatisGenericDao<BipSupplierDetailsEntity,String> implements IBipSupplierDetailsDao { + @DS("oracle91") + @Override + public List<BipSupplierDetailsEntity> thirdInterfaceGetSupplierDetails(BipSupplierDetailsEntity bipSupplierDetailsEntity) { + return super.query("com.hzya.frame.bip.v3.v2207.dao.impl.BipSupplierDetailsDaoImpl.thirdInterfaceGetSupplierDetails",bipSupplierDetailsEntity); + } +} diff --git a/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/dps/service/IPayMentService.java b/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/dps/service/IPayMentService.java new file mode 100644 index 00000000..ba800dce --- /dev/null +++ b/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/dps/service/IPayMentService.java @@ -0,0 +1,38 @@ +package com.hzya.frame.bip.v3.v2207.dps.service; + +import com.alibaba.fastjson.JSONObject; + + +public interface IPayMentService { + + /** + * + * @content 获取杭泰OA付款单传递CFS + * @Param + * @Return + * @Author hecan + * @Date 2023/10/16 11:59 + * **/ + String sendOAPayMentToCFS(JSONObject jsonObject, String type); + + /** + * + * @content 获取CFS登录校验码 + * @Param + * @Return + * @Author hecan + * @Date 2023/10/16 13:37 + * **/ + String sendCFSToken(String name, String password); + + /** + * + * @content 获取杭泰OA报销单传递CFS + * @Param + * @Return + * @Author hecan + * @Date 2023/10/16 16:17 + * **/ + String sendExpenseToCFS(JSONObject jsonObject); + +} diff --git a/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/dps/service/impl/PayMentServiceImpl.java b/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/dps/service/impl/PayMentServiceImpl.java new file mode 100644 index 00000000..1b9308a5 --- /dev/null +++ b/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/dps/service/impl/PayMentServiceImpl.java @@ -0,0 +1,389 @@ +package com.hzya.frame.bip.v3.v2207.dps.service.impl; + +import cn.hutool.http.HttpRequest; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.hzya.frame.bip.v3.v2207.dps.service.IPayMentService; +import com.hzya.frame.dateutil.DateUtil; +import org.dom4j.Document; +import org.dom4j.DocumentHelper; +import org.dom4j.Element; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.xml.sax.InputSource; + +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import java.io.StringReader; +import java.math.BigDecimal; +import java.util.Date; +import java.util.List; + + +@Service(value = "payMentServiceImpl") +public class PayMentServiceImpl implements IPayMentService { + + private static final Logger logger = LoggerFactory.getLogger(PayMentServiceImpl.class); + + private static final String NAME="admin"; + private static final String PASSWORD="aHRzejg4OA=="; + private static final String CFSURL="http://101.132.140.208:26883/erp/services/";//测试端口:26893,正式端口:26883 + + /** + * + * @content 杭泰OA付款单传递CFS 注:付款单,资金归集,资金拨付,同名账户划转和借款单都用同一个接口 + * @Param + * @Return + * @Author hecan + * @Date 2023/10/13 10:40 + * **/ + public String sendOAPayMentToCFS(JSONObject jsonStr,String type){ + logger.info("开始执行杭泰OA付款单传递CFS"); + try { + String cfsToken = sendCFSToken(NAME, PASSWORD); + if(null!=cfsToken) { + String jsonStrObj = jsonStr.getString("jsonStr"); + JSONObject jsonObjectMain = JSON.parseObject(jsonStrObj); + String erpVoucherNo = jsonObjectMain.getString("erpVoucherNo");//OA主键 + String purpose = jsonObjectMain.getString("purpose");//摘要 + String isForindividual = "0";//是否对私付款 + StringBuffer stringBuffer = new StringBuffer(); + String documentType=null; + switch (type){ + case "pay"://付款单 + documentType="01"; + break; + case "fundc"://资金归集 + documentType="02"; + break; + case "funda"://资金拨付 + documentType="03"; + break; + case "acc"://同名账户划转 + documentType="04"; + break; + case "loan"://借款单 + documentType="05"; + break; + default: + break; + } + JSONArray jsonStrList = jsonObjectMain.getJSONArray("details"); + if (null != jsonStrList && jsonStrList.size() > 0) { + for (Object seeyonEntity : jsonStrList) { + JSONObject jsonObjectFormson = JSON.parseObject(JSON.toJSONString(seeyonEntity)); + String payerAccName = jsonObjectFormson.getString("payerAccName");//转出方账户名(付款账户) + String payerAccNo = jsonObjectFormson.getString("payerAccNo");//转出方账号(付款账号) + String curCode = jsonObjectFormson.getString("curCode");//付款方币种 + String payeeAccName = jsonObjectFormson.getString("payeeAccName");//收款人帐户名称 + String payeeAccNo = jsonObjectFormson.getString("payeeAccNo");//收款方账户号 + BigDecimal amount = jsonObjectFormson.getBigDecimal("amount");//发生额 + String payeeBankCode = jsonObjectFormson.getString("payeeBankCode");//联行号 + String isQuick = jsonObjectFormson.getString("isQuick");//加急标志 + String payType = jsonObjectFormson.getString("payType");//结算方式 + String businessType = jsonObjectFormson.getString("businessType");//业务类别 + stringBuffer.append("<map>\n"); + stringBuffer.append("<documentType>" + nullConvert(documentType) + "</documentType>\n"); + stringBuffer.append("<erpVoucherNo>" + nullConvert(erpVoucherNo) + "</erpVoucherNo>\n"); + //stringBuffer.append("<payerAccName>"+"浙江杭泰数智能源开发有限公司"+"</payerAccName>\n"); + stringBuffer.append("<payerAccName>"+nullConvert(payerAccName)+"</payerAccName>\n"); + //stringBuffer.append("<payerAccNo>" +"71010122002702903"+ "</payerAccNo>\n"); + stringBuffer.append("<payerAccNo>" + nullConvert(payerAccNo) + "</payerAccNo>\n"); + stringBuffer.append("<curCode>" + nullConvert(curCode) + "</curCode>\n"); + stringBuffer.append("<payeeAccName>" + nullConvert(payeeAccName) + "</payeeAccName>\n"); + stringBuffer.append("<payeeAccNo>" + nullConvert(payeeAccNo) + "</payeeAccNo>\n"); + stringBuffer.append("<amount>" + nullConvert(String.valueOf(amount)) + "</amount>\n"); + //stringBuffer.append("<payeeBankCode>"+"301331000029"+"</payeeBankCode>\n"); + stringBuffer.append("<payeeBankCode>"+nullConvert(payeeBankCode)+"</payeeBankCode>\n"); + stringBuffer.append("<isQuick>" + nullConvert(isQuick) + "</isQuick>\n"); + stringBuffer.append("<isForindividual>" + nullConvert(isForindividual) + "</isForindividual>\n"); + stringBuffer.append("<payType>" + nullConvert(payType) + "</payType>\n"); + stringBuffer.append("<purpose>" + nullConvert(purpose) + "</purpose>\n"); + stringBuffer.append("<businessType>" + nullConvert(businessType) + "</businessType>\n"); + stringBuffer.append("<debitByCustomer>" + nullConvert(jsonObjectFormson.getString("debitByCustomer")) + "</debitByCustomer>\n");//借方客商辅助核算编码 + stringBuffer.append("<debitByBankAcc>" + nullConvert(payeeAccNo) + "</debitByBankAcc>\n");//借方银行账户辅助核算编码 + stringBuffer.append("<debitByPersonnel>" + nullConvert(jsonObjectFormson.getString("debitByPersonnel")) + "</debitByPersonnel>\n");//借方人员辅助核算编码 + stringBuffer.append("<creditByCustomer>" + nullConvert(jsonObjectFormson.getString("creditByCustomer")) + "</creditByCustomer>\n");//贷方客商辅助核算编码 + stringBuffer.append("<creditByBankAcc>" + nullConvert(payerAccNo) + "</creditByBankAcc>\n");//贷方银行辅助核算编码 + stringBuffer.append("</map>\n"); + } + } else { + stringBuffer.append("<map>\n"); + stringBuffer.append("<erpVoucherNo>" + nullConvert(erpVoucherNo) + "</erpVoucherNo>"); + stringBuffer.append("<purpose>" + nullConvert(purpose) + "</purpose>"); + stringBuffer.append("<isForindividual>" + nullConvert(isForindividual) + "</isForindividual>"); + stringBuffer.append("</map>\n"); + } + String result=null; + String xml= requestXML(cfsToken,"BkPaymentMainExchange",stringBuffer,"OA付款单同步发送"); + String url = "HTSZ_OA_BkPaymentMainWebService?wsdl"; + switch (type){ + case "pay"://付款单 + logger.info("OA付款单发送CFS的请求参数为:{}", xml); + result = HttpRequest.post(CFSURL+url).header("Content-Type", "soap/xml").timeout(30000).body(xml).execute().body(); + logger.info("OA付款单发送CFS的返回参数为:{}", result); + break; + case "fundc"://资金归集 + logger.info("OA资金归集发送CFS的请求参数为:{}", xml); + result = HttpRequest.post(CFSURL+url).header("Content-Type", "soap/xml").timeout(30000).body(xml).execute().body(); + logger.info("OA资金归集发送CFS的返回参数为:{}", result); + break; + case "funda"://资金调拨 + logger.info("OA资金拨付发送CFS的请求参数为:{}", xml); + result = HttpRequest.post(CFSURL+url).header("Content-Type", "soap/xml").timeout(30000).body(xml).execute().body(); + logger.info("OA资金拨付发送CFS的返回参数为:{}", result); + break; + case "acc"://同名账户划转 + logger.info("OA同名账户划转发送CFS的请求参数为:{}", xml); + result = HttpRequest.post(CFSURL+url).header("Content-Type", "soap/xml").timeout(30000).body(xml).execute().body(); + logger.info("OA同名账户划转发送CFS的返回参数为:{}", result); + break; + case "loan"://借款单 + logger.info("OA借还款发送CFS的请求参数为:{}", xml); + result = HttpRequest.post(CFSURL+url).header("Content-Type", "soap/xml").timeout(30000).body(xml).execute().body(); + logger.info("OA借还款发送CFS的返回参数为:{}", result); + break; + default: + break; + } + return analyzeXML(result,"pay"); + }else{ + logger.info("请先登录CFS登录接口获取Token"); + return null; + } + } catch (Exception e) { + e.printStackTrace(); + logger.info("杭泰OA付款单传递CFS错误,原因为:{}", e.getMessage()); + } + return null; + } + + /** + * + * @content 获取CFS登录校验码 + * @Param + * @Return + * @Author hecan + * @Date 2023/10/13 15:38 + * **/ + public String sendCFSToken(String name,String password) { + try { + String xml="<soap:Envelope xmlns:soap=\"http://www.w3.org/2003/05/soap-envelope\" xmlns:mdm=\"http://mdmData.server.webservice.banck.com\">\n" + + " <soap:Header/>\n" + + " <soap:Body>\n" + + " <mdm:intoPaymentDataXml>\n" + + " <!--Optional:-->\n" + + " <mdm:xml>\n" + + " <![CDATA[\n" + + " <?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + + "<message>\n" + + "<head>\n" + + "<transCode>LogOn</transCode>\n" + + "<erpTimestamp>"+DateUtil.dateToString(new Date(), "yyyy-MM-dd HH:mm:ss")+"</erpTimestamp>\n" + + "<sourcePlat>OA</sourcePlat>\n" + + "<desPlat>CFS</desPlat>\n" + + "<rmk>OA登录验证发送</rmk>\n" + + "</head>\n" + + "<body>\n" + + "<user>"+name+"</user>\n" + + "<password>"+password+"</password>\n" + + "</body>\n" + + "</message>\n" + + " ]]>\n" + + " </mdm:xml>\n" + + " </mdm:intoPaymentDataXml>\n" + + " </soap:Body>\n" + + "</soap:Envelope>"; + logger.info("CFS登录的请求参数为:{}",xml); + String url="HTSZ_OA_LogOnWebService?wsdl"; + String result = HttpRequest.post(CFSURL+url).header("Content-Type", "soap/xml").timeout(30000).body(xml).execute().body(); + logger.info("CFS登录的返回参数为:{}",result); + return analyzeXML(result,"login"); + }catch (Exception e){ + e.printStackTrace(); + logger.info("获取CFS登录失败,原因为:{}",e.getMessage()); + } + return null; + } + + /** + * + * @content 获取杭泰OA报销单传递CFS + * @Param + * @Return + * @Author hecan + * @Date 2023/10/16 16:17 + * **/ + @Override + public String sendExpenseToCFS(JSONObject jsonStr) { + logger.info("开始执行杭泰OA报销单传递CFS"); + try { + String token = sendCFSToken(NAME, PASSWORD); + if(null != token){ + String jsonStrObj = jsonStr.getString("jsonStr"); + JSONObject jsonObjectMain = JSON.parseObject(jsonStrObj); + String erpVoucherNo = jsonObjectMain.getString("erpVoucherNo");//OA主键 + String purpose = jsonObjectMain.getString("purpose");//摘要 + StringBuffer stringBuffer = new StringBuffer(); + JSONArray jsonStrList = jsonObjectMain.getJSONArray("details"); + if(null != jsonStrList && jsonStrList.size()>0){ + for (Object o : jsonStrList) { + JSONObject jsonObjectDetails = JSON.parseObject(JSON.toJSONString(o)); + String payerAccName = jsonObjectDetails.getString("payerAccName");//转出方账户名(付款账户) + String payerAccNo = jsonObjectDetails.getString("payerAccNo");//转出方账号(付款账号) + String curCode = jsonObjectDetails.getString("curCode");//付款方币种 + String payeeAccName = jsonObjectDetails.getString("payeeAccName");//收款人帐户名称 + String payeeAccNo = jsonObjectDetails.getString("payeeAccNo");//收款方账户号 + BigDecimal amount = jsonObjectDetails.getBigDecimal("amount");//发生额 + String payeeBankCode = jsonObjectDetails.getString("payeeBankCode");//联行号 + String isQuick = jsonObjectDetails.getString("isQuick");//加急标志 + String payType = jsonObjectDetails.getString("payType");//结算方式 + stringBuffer.append("<map>\n"); + stringBuffer.append("<erpVoucherNo>" + nullConvert(erpVoucherNo) + "</erpVoucherNo>\n"); + stringBuffer.append("<payerAccName>" + nullConvert(payerAccName) + "</payerAccName>\n"); + //stringBuffer.append("<payerAccName>"+"浙江杭泰数智能源开发有限公司"+"</payerAccName>\n"); + stringBuffer.append("<payerAccNo>" + nullConvert(payerAccNo) + "</payerAccNo>\n"); + //stringBuffer.append("<payerAccNo>" +"71010122002702903"+ "</payerAccNo>\n"); + stringBuffer.append("<curCode>" + nullConvert(curCode) + "</curCode>\n"); + stringBuffer.append("<payeeAccName>" + nullConvert(payeeAccName) + "</payeeAccName>\n"); + stringBuffer.append("<payeeAccNo>" + nullConvert(payeeAccNo) + "</payeeAccNo>\n"); + stringBuffer.append("<amount>" + nullConvert(String.valueOf(amount)) + "</amount>\n"); + stringBuffer.append("<payeeBankCode>" + nullConvert(payeeBankCode) + "</payeeBankCode>\n"); + //stringBuffer.append("<payeeBankCode>"+"301331000029"+"</payeeBankCode>\n"); + stringBuffer.append("<isQuick>" + nullConvert(isQuick) + "</isQuick>\n"); + stringBuffer.append("<payType>" + nullConvert(payType) + "</payType>\n"); + stringBuffer.append("<purpose>" + nullConvert(purpose) + "</purpose>\n"); + stringBuffer.append("</map>\n"); + } + } else { + stringBuffer.append("<map>\n"); + stringBuffer.append("<erpVoucherNo>" + erpVoucherNo + "</erpVoucherNo>\n"); + stringBuffer.append("<purpose>" + purpose + "</purpose>\n"); + stringBuffer.append("</map>\n"); + } + String xml= requestXML(token,"BkExpenseExchange",stringBuffer,"OA费用报销单同步发送"); + logger.info("OA报销单发送CFS的请求参数为:{}", xml); + String url = "HTSZ_OA_BkExpenseWebService?wsdl"; + String result = HttpRequest.post(CFSURL+url).header("Content-Type", "soap/xml").timeout(30000).body(xml).execute().body(); + logger.info("OA报销单发送CFS的返回参数为:{}", result); + return analyzeXML(result,"pay"); + } + }catch (Exception e){ + logger.info("杭泰OA报销单传递CFS错误,原因为:{}", e.getMessage()); + } + return null; + } + + //null转成空字符串 + private static String nullConvert(String str){ + if (null == str){ + return ""; + } + return str; + } + + private String requestXML(String token,String code,StringBuffer stringBuffer,String remark){ + String xml = "<soap:Envelope xmlns:soap=\"http://www.w3.org/2003/05/soap-envelope\" xmlns:mdm=\"http://mdmData.server.webservice.banck.com\">\n" + + " <soap:Header/>\n" + + " <soap:Body>\n" + + " <mdm:intoPaymentDataXml>\n" + + " <!--Optional:-->\n" + + " <mdm:xml>\n" + + " <![CDATA[\n" + + "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + + "<message>\n" + + "<head>\n" + + "<transCode>" + code + "</transCode>\n" + + "<erpTimestamp>" + DateUtil.dateToString(new Date(), "yyyy-MM-dd HH:mm:ss") + "</erpTimestamp>\n" + + "<sourcePlat>OA</sourcePlat>\n" + + "<desPlat>CFS</desPlat>\n" + + "<rmk>" + remark + "</rmk>\n" + + "<sessionId>" + token + "</sessionId>\n" + + "</head>\n" + + "<body>\n" + + "<list>\n"; + if (stringBuffer != null) { + xml += stringBuffer.toString(); + xml += "</list>\n" + + "</body>\n" + + "</message>\n" + + " ]]>\n" + + " </mdm:xml>\n" + + " </mdm:intoPaymentDataXml>\n" + + " </soap:Body>\n" + + "</soap:Envelope>"; + } else { + xml += "</list>\n" + + "</body>\n" + + "</message>\n" + + "]]>\n" + + " </mdm:xml>\n" + + " </mdm:intoPaymentDataXml>\n" + + " </soap:Body>\n" + + "</soap:Envelope>"; + } + return xml; + } + + /** + * + * @content 解析CFS返回的xml格式 + * @Param + * @Return + * @Author hecan + * @Date 2023/10/19 14:07 + * **/ + private static String analyzeXML(String result,String type){ + try { + DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); + DocumentBuilder builder = factory.newDocumentBuilder(); + org.w3c.dom.Document document = builder.parse(new InputSource(new StringReader(result))); + org.w3c.dom.Element bodyElement = (org.w3c.dom.Element) document.getElementsByTagName("ns:return").item(0); + if (null!=bodyElement) { + String textContent = bodyElement.getTextContent(); + Document documentContext = DocumentHelper.parseText(textContent); + Element rootElement = documentContext.getRootElement(); + Element body = rootElement.element("body"); + if (null != body) { + switch (type) { + case "login"://登录 + Element sessionId = body.element("sessionId"); + if (null != sessionId) { + logger.info("CFS登录的登录校验码为:{}", sessionId.getText()); + return sessionId.getText(); + } else { + logger.info("CFS登录的登录校验码没有获取到,请重新获取"); + return null; + } + case "pay"://付款单和报销单 + Element list = body.element("list"); + List<Element> elements = list.elements(); + String serialNo = null; + String statusMsg = null; + String erpVoucherNoCfs = null; + for (Element element : elements) { + serialNo = element.element("serialNo").getText(); + statusMsg = element.element("statusMsg").getText(); + erpVoucherNoCfs = element.element("erpVoucherNo").getText(); + } + JSONObject jsonObject=new JSONObject(); + jsonObject.put("erpVoucherNoCfs",erpVoucherNoCfs); + jsonObject.put("statusMsg",statusMsg); + jsonObject.put("serialNo",serialNo); + //return "当前单据:" + erpVoucherNoCfs + ",传递CFS返回信息:" + statusMsg + ",流水号:" + serialNo; + return jsonObject.toJSONString(); + default: + break; + } + } + } + }catch (Exception e){ + logger.info("解析CFS返回的xml格式错误:{}",e.getMessage()); + } + return null; + } + + +} diff --git a/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/dps/task/ElectronicTask.java b/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/dps/task/ElectronicTask.java new file mode 100644 index 00000000..a5b46c5d --- /dev/null +++ b/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/dps/task/ElectronicTask.java @@ -0,0 +1,194 @@ +package com.hzya.frame.bip.v3.v2207.dps.task; + +import cn.hutool.core.util.StrUtil; +import cn.hutool.http.HttpRequest; +import cn.hutool.http.HttpUtil; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.hzya.frame.bip.v3.v2207.dps.service.IPayMentService; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.io.File; +import java.util.HashMap; + + +@EnableScheduling +@Component +public class ElectronicTask { + static Logger logger= LoggerFactory.getLogger(ElectronicTask.class); + + @Resource + private IPayMentService payMentService; + //@Resource + //private ISeeYonDao seeYonDao; + //@Resource + //private ICtpAttachmentDao ctpAttachmentDao; + + + //@Scheduled(cron = "0 20 10 * * ?") + //public void sendElectronicToCFS() { + // logger.info("CFS电子回单共享开始执行---------->"); + // try { + // String token = payMentService.sendCFSToken("admin", "aHRzejg4OA=="); + // if(null!=token) { + // List<SeeyonEntity> seeyonEntities = seeYonDao.selectOAListByTypeformmain_0327(new SeeyonEntity()); + // if (seeyonEntities != null && seeyonEntities.size() > 0) { + // for (SeeyonEntity seeyonEntity : seeyonEntities) { + // String bankAcc = seeyonEntity.getField0137();//付款账号 + // //String bankAcc="03005389347"; + // String erpVoucherNo = seeyonEntity.getId();//OA付款单号 + // String xml = "<soap:Envelope xmlns:soap=\"http://www.w3.org/2003/05/soap-envelope\" xmlns:mdm=\"http://mdmData.server.webservice.banck.com\">\n" + + // " <soap:Header/>\n" + + // " <soap:Body>\n" + + // " <mdm:intoPaymentDataXml>\n" + + // " <!--Optional:-->\n" + + // " <mdm:xml>\n" + + // " <![CDATA[\n" + + // " <?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + + // "<message>\n" + + // "<head>\n" + + // "<transCode>BkReceiptQueryExchange</transCode>\n" + + // "<erpTimestamp>" + DateUtil.dateToString(new Date(), "yyyy-mm-dd hh:mm:ss") + "</erpTimestamp>\n" + + // "<sourcePlat>CFS</sourcePlat>\n" + + // "<desPlat>OA</desPlat>\n" + + // "<rmk>OA电子回单共享发送</rmk>\n" + + // "<sessionId>" + token + "</sessionId>\n" + + // "</head>\n" + + // "<body>\n" + + // "<bankAcc>" + bankAcc + "</bankAcc>\n" + + // "<erpVoucherNo>" + erpVoucherNo + "</erpVoucherNo>\n" + + // "</body>\n" + + // "</message>\n" + + // " ]]>\n" + + // " </mdm:xml>\n" + + // " </mdm:intoPaymentDataXml>\n" + + // " </soap:Body>\n" + + // "</soap:Envelope>"; + // logger.info("CFS电子回单共享请求参数为:{}", xml); + // String url = "http://101.132.140.208:26893/erp/services/HTSZ_OA_BkReceiptQueryWebService?wsdl"; + // String result = HttpRequest.post(url).header("Content-Type", "soap/xml").timeout(30000).body(xml).execute().body(); + // logger.info("CFS电子回单共享请求参数为:{}", result); + // DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); + // DocumentBuilder builder = factory.newDocumentBuilder(); + // org.w3c.dom.Document document = builder.parse(new InputSource(new StringReader(result))); + // org.w3c.dom.Element bodyElement = (org.w3c.dom.Element) document.getElementsByTagName("ns:return").item(0); + // if (null != bodyElement) { + // String textContent = bodyElement.getTextContent(); + // Document documentContext = DocumentHelper.parseText(textContent); + // Element rootElement = documentContext.getRootElement(); + // Element body = rootElement.element("body"); + // if("0000".equalsIgnoreCase(rootElement.element("head").element("returnCode").getText())){ + // if (null != body) { + // Element listElc = body.element("list"); + // List<Element> elementsElc = listElc.elements(); + // for (Element element : elementsElc) { + // String fielPath = element.element("filePath").getText();//电子回单附件路径 + // if (fielPath != null && fielPath!="") { + // // String fielPath="C:\\Users\\笃曙\\Desktop\\15HZ000342CIBN2023091100066856211000001.pdf"; + // File file = new File(fielPath); + // JSONObject jsonObject = fileUpload(file); + // logger.info("上传返回的附件id为:{}", jsonObject.getString("fileUrl")); + // if (jsonObject.getString("fileUrl") != null) { + // //表单的附件字段=ctpAttachment的Sub_reference,表单的Summary_id=ctpAttachment的att_reference + // String sub_reference = String.valueOf(UUIDLong.longUUID()); + // seeyonEntity.setField0264(sub_reference); + // seeYonDao.updateFormformmain_0327(seeyonEntity); + // //根据附件id查询附件业务数据 + // String file_url = jsonObject.getString("fileUrl"); + // CtpAttachmentEntity ctpAttachmentEntity = new CtpAttachmentEntity(); + // ctpAttachmentEntity.setFile_url(file_url); + // String att_reference = seeyonEntity.getSummary_id();//Summary_id + // ctpAttachmentEntity.setSub_reference(sub_reference); + // ctpAttachmentEntity.setAtt_reference(att_reference); + // List<CtpAttachmentEntity> ctpAttachmentEntities = ctpAttachmentDao.queryCtpAttachment(ctpAttachmentEntity); + // //如果没有查询到数据,就新增附件业务,否则更新 + // if (ctpAttachmentEntities.size() == 0) { + // String category = jsonObject.getString("category"); + // String type = jsonObject.getString("type"); + // String filename = jsonObject.getString("filename"); + // String mime_type = jsonObject.getString("mimeType"); + // String attachment_size = jsonObject.getString("size"); + // String id = String.valueOf(UUIDLong.longUUID()); + // ctpAttachmentEntity.setCategory(category); + // ctpAttachmentEntity.setFilename(filename); + // ctpAttachmentEntity.setType(type); + // ctpAttachmentEntity.setMime_type(mime_type); + // ctpAttachmentEntity.setAttachment_size(attachment_size); + // ctpAttachmentEntity.setId(id); + // ctpAttachmentEntity.setCategory("66"); + // ctpAttachmentEntity.setCreatedate(new Date()); + // ctpAttachmentDao.saveCtpAttachment(ctpAttachmentEntity); + // } else { + // if (ctpAttachmentEntities.size() > 1) { + // throw new BaseSystemException("OA附件业务表中查到多条记录"); + // } + // //更新数据到OA附件业务表中 + // ctpAttachmentDao.updateCtpAttachment(ctpAttachmentEntity); + // } + // } + // } + // } + // } + // }else{ + // logger.info("CFS电子回单返回得错误编码:{},以及返回的错误信息:{}",rootElement.element("head").element("returnCode").getText(),rootElement.element("head").element("returnMsg").getText()); + // } + // } + // } + // } + // } + // }catch (Exception e){ + // logger.info("CFS电子回单共享错误:{}",e.getMessage()); + // } + //} + + + public static JSONObject fileUpload(File file) { + if (null != file) { + try { + HashMap<String, Object> paramMap = new HashMap<>(); + paramMap.put("file", file); + String url = "/seeyon/rest/attachment?token=@token@";//如果后面加上applicationCategory=1&extensions=&firstSave=true,附件业务自动生成一条记录 + url = url.replaceAll("@token@", getToken()); + String result = HttpUtil.post("http://60.204.152.210" + url, paramMap); + if (StrUtil.isNotBlank(result)) { + logger.info("附件上传结果"+result); + JSONObject jsonObject = JSONObject.parseObject(result); + String atts = jsonObject.get("atts").toString(); + if (StrUtil.isNotEmpty(atts)) { + JSONArray jsonArray = JSONArray.parseArray(atts); + JSONObject res = (JSONObject) jsonArray.get(0); + /* String fileUrl = res.getString("fileUrl"); + logger.info("附件id:" + fileUrl); + return fileUrl;*/ + return res; + } + } + }catch (Exception e){ + logger.error("附件上传失败"+e.getMessage()); + } + } + return null; + } + + private static String getToken() { + //获取oatoken + HashMap<String, String> hashMap = new HashMap<>(); + hashMap.put("userName", "hzyaRest"); + hashMap.put("password", "a5ce21b8-91db-4cec-b3e3-3e44719655fd"); + hashMap.put("loginName","bdmanager"); + String result = HttpUtil.post("http://60.204.152.210" + "/seeyon/rest/token", JSON.toJSONString(hashMap)); + JSONObject jsonObject = JSONObject.parseObject(result); + if (null != jsonObject) { + logger.info(result); + logger.info("======token:{}======" + jsonObject.getString("id")); + return jsonObject.getString("id"); + } + return null; + } +} diff --git a/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/entity/BipArchivesEntity.java b/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/entity/BipArchivesEntity.java new file mode 100644 index 00000000..eef1c56d --- /dev/null +++ b/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/entity/BipArchivesEntity.java @@ -0,0 +1,188 @@ +package com.hzya.frame.bip.v3.v2207.entity; + +import cn.dev33.satoken.stp.StpUtil; +import com.hzya.frame.uuid.UUIDUtils; +import com.hzya.frame.web.entity.BaseEntity; + +import java.util.Date; + +/** + * (BdCorp)实体类 + * + * @author makejava + * @since 2023-09-06 14:47:18 + */ +public class BipArchivesEntity extends BaseEntity { + + private String archivesType;//类型 + private String leftCode;//左编码 + private String rightCode;//右编码 + + private String leftAppId;//左应用id + private String leftAppCode;//左应用编码 + private String leftAppName;//左应用名称 + private String leftApiId;//左接口ID + private String leftId;//左id + private String leftName;//左名称 + private String rightAppId;//右应用id + private String rightAppCode;//右应用编码 + private String rightAppName;//右应用名称 + private String rightApiId;//右接口ID + private String rightId;//右id + private String rightName;//右名称 + private String leftOrg;//左公司 + private String rightOrg;//右公司 + + public String getArchivesType() { + return archivesType; + } + + public void setArchivesType(String archivesType) { + this.archivesType = archivesType; + } + + public String getLeftCode() { + return leftCode; + } + + public void setLeftCode(String leftCode) { + this.leftCode = leftCode; + } + + public String getRightCode() { + return rightCode; + } + + public void setRightCode(String rightCode) { + this.rightCode = rightCode; + } + + public String getLeftAppId() { + return leftAppId; + } + + public void setLeftAppId(String leftAppId) { + this.leftAppId = leftAppId; + } + + public String getLeftAppCode() { + return leftAppCode; + } + + public void setLeftAppCode(String leftAppCode) { + this.leftAppCode = leftAppCode; + } + + public String getLeftAppName() { + return leftAppName; + } + + public void setLeftAppName(String leftAppName) { + this.leftAppName = leftAppName; + } + + public String getLeftApiId() { + return leftApiId; + } + + public void setLeftApiId(String leftApiId) { + this.leftApiId = leftApiId; + } + + public String getLeftId() { + return leftId; + } + + public void setLeftId(String leftId) { + this.leftId = leftId; + } + + public String getLeftName() { + return leftName; + } + + public void setLeftName(String leftName) { + this.leftName = leftName; + } + + public String getRightAppId() { + return rightAppId; + } + + public void setRightAppId(String rightAppId) { + this.rightAppId = rightAppId; + } + + public String getRightAppCode() { + return rightAppCode; + } + + public void setRightAppCode(String rightAppCode) { + this.rightAppCode = rightAppCode; + } + + public String getRightAppName() { + return rightAppName; + } + + public void setRightAppName(String rightAppName) { + this.rightAppName = rightAppName; + } + + public String getRightApiId() { + return rightApiId; + } + + public void setRightApiId(String rightApiId) { + this.rightApiId = rightApiId; + } + + public String getRightId() { + return rightId; + } + + public void setRightId(String rightId) { + this.rightId = rightId; + } + + public String getRightName() { + return rightName; + } + + public void setRightName(String rightName) { + this.rightName = rightName; + } + + public String getLeftOrg() { + return leftOrg; + } + + public void setLeftOrg(String leftOrg) { + this.leftOrg = leftOrg; + } + + public String getRightOrg() { + return rightOrg; + } + + public void setRightOrg(String rightOrg) { + this.rightOrg = rightOrg; + } + + public void setCreate() { + this.setId(UUIDUtils.getUUID()); + this.setSts("Y"); + this.setCreate_user_id("1"); + this.setModify_user_id("1"); + this.setCreate_time(new Date()); + this.setModify_time(new Date()); + this.setOrg_id("0"); + this.setCompanyId("0"); + } + //修改信息 + public void setUpdate() { + this.setModify_user_id("1"); + this.setModify_time(new Date()); + } +} + diff --git a/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/entity/BipArchivesEntity.xml b/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/entity/BipArchivesEntity.xml new file mode 100644 index 00000000..1a2f96ab --- /dev/null +++ b/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/entity/BipArchivesEntity.xml @@ -0,0 +1,71 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.hzya.frame.bip.v3.v2207.dao.impl.BipArchivesDaoImpl"> + <resultMap id="get-ArchivesEntity-result" type="com.hzya.frame.bip.v3.v2207.entity.BipArchivesEntity" > + <result property="id" column="id" jdbcType="VARCHAR"/> + <result property="leftAppId" column="left_app_id" jdbcType="VARCHAR"/> + <result property="leftAppCode" column="left_app_code" jdbcType="VARCHAR"/> + <result property="leftAppName" column="left_app_name" jdbcType="VARCHAR"/> + <result property="leftApiId" column="left_api_id" jdbcType="VARCHAR"/> + <result property="leftId" column="left_id" jdbcType="VARCHAR"/> + <result property="leftCode" column="left_code" jdbcType="VARCHAR"/> + <result property="leftName" column="left_name" jdbcType="VARCHAR"/> + <result property="rightAppId" column="right_app_id" jdbcType="VARCHAR"/> + <result property="rightAppCode" column="right_app_code" jdbcType="VARCHAR"/> + <result property="rightAppName" column="right_app_name" jdbcType="VARCHAR"/> + <result property="rightApiId" column="right_api_id" jdbcType="VARCHAR"/> + <result property="rightId" column="right_id" jdbcType="VARCHAR"/> + <result property="rightCode" column="right_code" jdbcType="VARCHAR"/> + <result property="rightName" column="right_name" jdbcType="VARCHAR"/> + <result property="sorts" column="sorts" jdbcType="INTEGER"/> + <result property="create_user_id" column="create_user_id" jdbcType="VARCHAR"/> + <result property="create_time" column="create_time" jdbcType="TIMESTAMP"/> + <result property="modify_user_id" column="modify_user_id" jdbcType="VARCHAR"/> + <result property="modify_time" column="modify_time" jdbcType="TIMESTAMP"/> + <result property="sts" column="sts" jdbcType="VARCHAR"/> + <result property="org_id" column="org_id" jdbcType="VARCHAR"/> + <result property="companyId" column="company_id" jdbcType="VARCHAR"/> + </resultMap> + + <select id="queryArchivesData" resultMap="get-ArchivesEntity-result" + parameterType="com.hzya.frame.bip.v3.v2207.entity.BipArchivesEntity"> + select + right_code + from + <choose> + <when test="archivesType == '1'.toString()"> sys_personnel_control </when> + <when test="archivesType == '2'.toString()"> sys_org_control </when> + <when test="archivesType == '6'.toString()"> sys_stock_control </when> + <when test="archivesType == '73'.toString()"> sys_merchant_control </when> + <when test="archivesType == 'D01'.toString()"> sys_taxrate_control </when> + <when test="archivesType == 'jobass'.toString()"> sys_project_control </when> + <when test="archivesType == '93'.toString()"> sys_bank_control </when> + <when test="archivesType == '96'.toString()"> sys_bankaccount_control </when> + <when test="archivesType == '22'.toString()"> sys_assets_control </when> + </choose> + <trim prefix="where" prefixOverrides="and"> + <if test="leftCode != null and leftCode != ''">and left_code = #{leftCode}</if> + <if test="leftOrg != null and leftOrg != ''">and left_org = #{leftOrg}</if> + and sts='Y' + </trim> + </select> + + <select id="queryArchivesDatays" resultMap="get-ArchivesEntity-result" + parameterType="com.hzya.frame.bip.v3.v2207.entity.BipArchivesEntity"> + select + right_code + from + <choose> + <when test="archivesType == '0012'.toString()"> sys_stock_control </when> + <when test="archivesType == '0006'.toString()"> sys_stock_control </when> + <when test="archivesType == '0004'.toString()"> sys_merchant_control </when> + </choose> + <trim prefix="where" prefixOverrides="and"> + <if test="leftCode != null and leftCode != ''">and left_code = #{leftCode}</if> + <if test="leftOrg != null and leftOrg != ''">and left_org = #{leftOrg}</if> + and sts='Y' + </trim> + </select> + +</mapper> + diff --git a/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/entity/BipAss.java b/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/entity/BipAss.java new file mode 100644 index 00000000..ebb9d80b --- /dev/null +++ b/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/entity/BipAss.java @@ -0,0 +1,24 @@ +package com.hzya.frame.bip.v3.v2207.entity; + + +public class BipAss { + private String checktypecode; + private String checkvaluecode; + + + public String getChecktypecode() { + return checktypecode; + } + + public void setChecktypecode(String checktypecode) { + this.checktypecode = checktypecode; + } + + public String getCheckvaluecode() { + return checkvaluecode; + } + + public void setCheckvaluecode(String checkvaluecode) { + this.checkvaluecode = checkvaluecode; + } +} \ No newline at end of file diff --git a/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/entity/BipCashflow.java b/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/entity/BipCashflow.java new file mode 100644 index 00000000..f29cb81c --- /dev/null +++ b/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/entity/BipCashflow.java @@ -0,0 +1,23 @@ +package com.hzya.frame.bip.v3.v2207.entity; + + +public class BipCashflow { + private String money; + private String pk_cashflow; + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getPk_cashflow() { + return pk_cashflow; + } + + public void setPk_cashflow(String pk_cashflow) { + this.pk_cashflow = pk_cashflow; + } +} \ No newline at end of file diff --git a/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/entity/BipOrgsDetailsEntity.java b/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/entity/BipOrgsDetailsEntity.java new file mode 100644 index 00000000..67f3d8e3 --- /dev/null +++ b/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/entity/BipOrgsDetailsEntity.java @@ -0,0 +1,65 @@ +package com.hzya.frame.bip.v3.v2207.entity; + +import com.hzya.frame.web.entity.BaseEntity; + +/**** + * BIP组织账户 + * @content: + * @author 👻👻👻👻👻👻👻👻 gjh + * @date 2023-10-24 10:03 + * @param + * @return + **/ +public class BipOrgsDetailsEntity extends BaseEntity { + + /*开户行编码*/ + private String bankCode; + /*开户行名称*/ + private String bankName; + /*账户*/ + private String accnum; + /*与组织关联的字段*/ + private String controlorg; + /*联行号*/ + private String cnapsCode; + + public String getCnapsCode() { + return cnapsCode; + } + + public void setCnapsCode(String cnapsCode) { + this.cnapsCode = cnapsCode; + } + + public String getControlorg() { + return controlorg; + } + + public void setControlorg(String controlorg) { + this.controlorg = controlorg; + } + + public String getBankCode() { + return bankCode; + } + + public void setBankCode(String bankCode) { + this.bankCode = bankCode; + } + + public String getBankName() { + return bankName; + } + + public void setBankName(String bankName) { + this.bankName = bankName; + } + + public String getAccnum() { + return accnum; + } + + public void setAccnum(String accnum) { + this.accnum = accnum; + } +} diff --git a/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/entity/BipOrgsDetailsEntity.xml b/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/entity/BipOrgsDetailsEntity.xml new file mode 100644 index 00000000..14fcaaa6 --- /dev/null +++ b/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/entity/BipOrgsDetailsEntity.xml @@ -0,0 +1,43 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.hzya.frame.bip.v3.v2207.dao.impl.BipOrgsDetailsDaoImpl"> + <resultMap id="get-BipOrgsDetailsEntity-result" type="com.hzya.frame.bip.v3.v2207.entity.BipOrgsDetailsEntity"> + <result property="bankCode" column="bankCode" /> + <result property="bankName" column="bankName" /> + <result property="accnum" column="accnum" /> + <result property="controlorg" column="controlorg" /> + <result property="cnapsCode" column="cnapsCode" /> + </resultMap> + + + <sql id="BipOrgsDetailsEntity_Base_Column_List"> + bankdoc.code as bankCode,bankdoc.name as bankName,bankaccbas.accnum,bankaccbas.controlorg,bankaccbas.combinenum as cnapsCode + </sql> + + <!--通过ID获取数据 --> + <select id="entity_get" resultMap="get-BipOrgsDetailsEntity-result"> + select + <include refid="BipOrgsDetailsEntity_Base_Column_List" /> + from bd_bankaccbas where pk_bankaccbas = #{pk_bankaccbas} + </select> + + + <!-- 查询 采用==查询 --> + <select id="thirdInterfaceGetOrgsDetails" resultMap="get-BipOrgsDetailsEntity-result" parameterType="com.hzya.frame.bip.v3.v2207.entity.BipOrgsDetailsEntity"> + select + <include refid="BipOrgsDetailsEntity_Base_Column_List" /> + from bd_bankaccbas bankaccbas + left join bd_bankdoc bankdoc on bankdoc.pk_bankdoc=bankaccbas.pk_bankdoc + <trim prefix="where" prefixOverrides="and"> + <if test="bankCode != null and bankCode !=''">bankdoc.code=#{bankCode}</if> + <if test="bankName != null and bankName !='' "> and bankdoc.name = #{bankName}</if> + <if test="accnum != null and accnum !='' "> and bankaccbas.accnum = #{accnum}</if> + and bankaccbas.dr='0' and bankdoc.dr='0' and bankaccbas.pk_banktype!='0001Z01000000000036S' and bankaccbas.controlorg = #{controlorg} + </trim> + </select> + + + + +</mapper> + diff --git a/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/entity/BipOrgsEntity.java b/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/entity/BipOrgsEntity.java new file mode 100644 index 00000000..ec5d7572 --- /dev/null +++ b/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/entity/BipOrgsEntity.java @@ -0,0 +1,63 @@ +package com.hzya.frame.bip.v3.v2207.entity; + +import com.hzya.frame.web.entity.BaseEntity; + +/** + * @description: BIP组织 entity + * @tableName: org_orgs + * @entityName: BipOrgsEntity + * @author: gjh + * @history: 1.0 + */ +public class BipOrgsEntity extends BaseEntity { + /*单位编码*/ + private String code; + /*开户单位*/ + private String name; + /*BIPID*/ + private String tripartiteId; + private String pk_financeorg; + private String orgsts; + + public String getOrgsts() { + return orgsts; + } + + public void setOrgsts(String orgsts) { + this.orgsts = orgsts; + } + + public String getPk_financeorg() { + return pk_financeorg; + } + + public void setPk_financeorg(String pk_financeorg) { + this.pk_financeorg = pk_financeorg; + } + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getTripartiteId() { + return tripartiteId; + } + + public void setTripartiteId(String tripartiteId) { + this.tripartiteId = tripartiteId; + } + + +} diff --git a/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/entity/BipOrgsEntity.xml b/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/entity/BipOrgsEntity.xml new file mode 100644 index 00000000..272541a7 --- /dev/null +++ b/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/entity/BipOrgsEntity.xml @@ -0,0 +1,98 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.hzya.frame.bip.v3.v2207.dao.impl.BipOrgsDaoImpl"> + <resultMap id="get-BipOrgsEntity-result" type="com.hzya.frame.bip.v3.v2207.entity.BipOrgsEntity"> + <result property="tripartiteId" column="tripartiteId" /> + <result property="code" column="code" /> + <result property="name" column="name" /> + <result property="pk_financeorg" column="pk_financeorg"/> + <result property="orgsts" column="orgsts"/> + </resultMap> + + <sql id="BipOrgsEntity_Base_Column_List"> + orgs.pk_financeorg as tripartiteId, + orgs.name , + orgs.code, + max(org_bank.ts)as ts + + </sql> + + <sql id="BipOrgsEntity_Base_Column_List_details"> + bankdoc.code as bankCode,bankdoc.name as bankName,bankaccbas.accnum,bankaccbas.controlorg + </sql> + + <!--通过ID获取数据 --> + <select id="entity_get" resultMap="get-BipOrgsEntity-result"> + select + <include refid="BipOrgsEntity_Base_Column_List" /> + from org_financeorg where pk_financeorg = #{pk_financeorg} + </select> + + <select id="thirdInterfaceGetOrgs" resultMap="get-BipOrgsEntity-result" parameterType="com.hzya.frame.bip.v3.v2207.entity.BipOrgsEntity"> + select + <include refid="BipOrgsEntity_Base_Column_List" /> + FROM + org_financeorg orgs + left join v_hzya_org_bank org_bank on org_bank.controlorg = orgs.pk_financeorg + + <trim prefix="where" prefixOverrides="and"> + <if test="code != null and code !=''"> orgs.code = #{code}</if> + <if test="name != null and name !='' "> and orgs.name = #{name}</if> + <if test="pk_financeorg != null and pk_financeorg !='' "> and orgs.pk_financeorg = #{tripartiteId}</if> + <if test="orgsts != null and orgsts !='' "> and orgs.ts >'2023-09-30 14:18:39' and orgs.ts > #{orgsts}</if> + and orgs.dr='0' + </trim> + GROUP BY orgs.pk_financeorg ,orgs.name,orgs.code + </select> + + <!-- 查询 采用==查询 --> + <select id="thirdInterfaceGetSupplierDetails" resultMap="get-BipOrgsEntity-result" parameterType="com.hzya.frame.bip.v3.v2207.entity.BipOrgsEntity"> + select + <include refid="BipOrgsEntity_Base_Column_List_details" /> + from bd_bankaccbas bankaccbas + left join bd_bankdoc bankdoc on bankdoc.pk_bankdoc=bankaccbas.pk_bankdoc + <trim prefix="where" prefixOverrides="and"> + <if test="code != null and code !=''">bankdoc.code=#{code}</if> + <if test="name != null and name !='' "> and bankdoc.name = #{name}</if> + <if test="accnum != null and accnum !='' "> and bankaccbas.accnum = #{accnum}</if> + <if test="controlorg != null and controlorg !='' "> and bankaccbas.controlorg = #{controlorg}</if> + and bankaccbas.dr='0' and bankdoc.dr='0' and bankaccbas.pk_banktype!='0001Z01000000000036S' + </trim> + </select> + + + <!-- 查询 采用==查询 --> + <!--<select id="BipOrgsEntity_list_base" resultMap="get-BipOrgsEntity-result" parameterType="com.hzya.frame.bip.v3.v2207.entity.BipOrgsEntity"> + select + <include refid="BipOrgsEntity_Base_Column_List" /> + FROM bd_cust_supplier supplier + left join db_customerbank bank ON supplier.code = bank.code + <trim prefix="where" prefixOverrides="and"> + <if test="code != null and code !=''">supplier.code=#{code}</if> + <if test="name != null and name !='' "> and supplier.name = #{name}</if> + <if test="taxpayerid != null and taxpayerid !='' "> and supplier.taxpayerid = #{taxpayerid}</if> + <if test="def1 != null and def1 !='' "> and bank.def1 = #{def1}</if> + <if test="def2 != null and def2 !='' "> and bank.def2 = #{def2}</if> + <if test="def3 != null and def3 !='' "> and bank.def3 = #{def3}</if> + </trim> + </select>--> + + + <!-- 分页查询列表 采用like格式 --> + <!--<select id="entity_list_like" resultMap="get-BipOrgsEntity-result" parameterType="com.hzya.frame.bip.v3.v2207.entity.BipOrgsEntity"> + select + <include refid="BipOrgsEntity_Base_Column_List" /> + FROM bd_cust_supplier supplier + left join db_customerbank bank ON supplier.code = bank.code + <trim prefix="where" prefixOverrides="and"> + <if test="code != null and code !=''"> supplier.code like concat('%',#{code},'%')</if> + <if test="name != null and name !='' "> and supplier.name like concat('%',#{name},'%')</if> + <if test="taxpayerid != null and taxpayerid !='' "> and supplier.taxpayeridlike concat('%',#{taxpayeridlike},'%')</if> + <if test="def1 != null and def1 !='' "> and bank.def1 like concat('%',#{def1},'%')</if> + <if test="def2 != null and def2 !='' "> and bank.def2 like concat('%',#{def2},'%')</if> + <if test="def3 != null and def3 !='' "> and bank.def3 like concat('%',#{def3},'%')</if> + </trim> + </select>--> + +</mapper> + diff --git a/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/entity/BipSupplierDetailsEntity.java b/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/entity/BipSupplierDetailsEntity.java new file mode 100644 index 00000000..48c6d9c4 --- /dev/null +++ b/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/entity/BipSupplierDetailsEntity.java @@ -0,0 +1,77 @@ +package com.hzya.frame.bip.v3.v2207.entity; + +import com.hzya.frame.web.entity.BaseEntity; + +public class BipSupplierDetailsEntity extends BaseEntity { + + private String code; + private String name; + /*开户行*/ + private String splitbank; + /*银行账号*/ + private String bankaccno; + /*是否默认*/ + private String isdefault; + /*联行号*/ + private String combinno; + + private String tripartiteId; + + public String getCombinno() { + return combinno; + } + + public void setCombinno(String combinno) { + this.combinno = combinno; + } + + public String getTripartiteId() { + return tripartiteId; + } + + public void setTripartiteId(String tripartiteId) { + this.tripartiteId = tripartiteId; + } + + public String getIsdefault() { + return isdefault; + } + + public void setIsdefault(String isdefault) { + this.isdefault = isdefault; + } + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getSplitbank() { + return splitbank; + } + + public void setSplitbank(String splitbank) { + this.splitbank = splitbank; + } + + public String getBankaccno() { + return bankaccno; + } + + public void setBankaccno(String bankaccno) { + this.bankaccno = bankaccno; + } + + +} diff --git a/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/entity/BipSupplierDetailsEntity.xml b/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/entity/BipSupplierDetailsEntity.xml new file mode 100644 index 00000000..64933d2f --- /dev/null +++ b/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/entity/BipSupplierDetailsEntity.xml @@ -0,0 +1,44 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.hzya.frame.bip.v3.v2207.dao.impl.BipSupplierDetailsDaoImpl"> + <resultMap id="get-BipSupplierDetailsEntity-result" type="com.hzya.frame.bip.v3.v2207.entity.BipSupplierDetailsEntity"> + <result property="code" column="code" /> + <result property="name" column="name" /> + <result property="splitbank" column="splitbank" /> + <result property="bankaccno" column="bankaccno" /> + <result property="tripartiteId" column="tripartiteId"></result> + <result property="combinno" column="combinno"></result> + </resultMap> + + + <sql id="BipSupplierDetailsEntity_Base_Column_List"> + splitbank,bankaccno,combinno,name,code + </sql> + + <!--通过ID获取数据 --> + <select id="entity_get" resultMap="get-BipSupplierDetailsEntity-result"> + select + <include refid="BipSupplierDetailsEntity_Base_Column_List" /> + from BD_SUPPLIER where pk_supplier = #{pk_supplier} and sdr='0' + </select> + + + <!-- 查询 采用==查询 --> + <select id="thirdInterfaceGetSupplierDetails" resultMap="get-BipSupplierDetailsEntity-result" parameterType="com.hzya.frame.bip.v3.v2207.entity.BipSupplierDetailsEntity"> + select + <include refid="BipSupplierDetailsEntity_Base_Column_List" /> + FROM db_customerbank + <trim prefix="where" prefixOverrides="and"> + <if test="code != null and code !=''">code=#{code}</if> + <if test="name != null and name !='' "> and name = #{name}</if> + <if test="bankaccno != null and bankaccno !='' "> and bankaccno = #{bankaccno}</if> + <if test="splitbank != null and splitbank !='' "> and splitbank = #{splitbank}</if> + <if test="combinno != null and combinno !='' "> and combinno = #{combinno}</if> + </trim> + </select> + + + + +</mapper> + diff --git a/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/entity/BipSupplierEntity.java b/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/entity/BipSupplierEntity.java new file mode 100644 index 00000000..53190872 --- /dev/null +++ b/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/entity/BipSupplierEntity.java @@ -0,0 +1,92 @@ +package com.hzya.frame.bip.v3.v2207.entity; + +import com.hzya.frame.web.entity.BaseEntity; + +/** + * @description: BIP供应商 entity + * @tableName: BD_SUPPLIER + * @entityName: BipSupplierEntity + * @author: gjh + * @history: 1.0 + */ +public class BipSupplierEntity extends BaseEntity { + + private String code; + private String name; + /*税号*/ + private String taxpayerid; + /*地址*/ + private String def1; + /*电话*/ + private String def2; + /*联系人*/ + private String def3; + private String tripartiteId; + + public String getTripartiteId() { + return tripartiteId; + } + + public void setTripartiteId(String tripartiteId) { + this.tripartiteId = tripartiteId; + } + + private String ts; + + public String getTs() { + return ts; + } + + public void setTs(String ts) { + this.ts = ts; + } + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getTaxpayerid() { + return taxpayerid; + } + + public void setTaxpayerid(String taxpayerid) { + this.taxpayerid = taxpayerid; + } + + public String getDef1() { + return def1; + } + + public void setDef1(String def1) { + this.def1 = def1; + } + + public String getDef2() { + return def2; + } + + public void setDef2(String def2) { + this.def2 = def2; + } + + public String getDef3() { + return def3; + } + + public void setDef3(String def3) { + this.def3 = def3; + } + +} diff --git a/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/entity/BipSupplierEntity.xml b/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/entity/BipSupplierEntity.xml new file mode 100644 index 00000000..2854fcd2 --- /dev/null +++ b/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/entity/BipSupplierEntity.xml @@ -0,0 +1,96 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.hzya.frame.bip.v3.v2207.dao.impl.BipSupplierDaoImpl"> + <resultMap id="get-BipSupplierEntity-result" type="com.hzya.frame.bip.v3.v2207.entity.BipSupplierEntity"> + <result property="taxpayerid" column="taxpayerid" /> + <result property="def1" column="def1" /> + <result property="def2" column="def2" /> + <result property="def3" column="def3" /> + <result property="code" column="code" /> + <result property="name" column="name" /> + <result property="ts" column="ts" /> + <result property="tripartiteId" column="tripartiteId" /> + </resultMap> + + <sql id="BipSupplierEntity_Base_Column_List"> + supplier.code,supplier.name,supplier.taxpayerid,bank.def1,bank.def2,bank.def3,supplier.ts, supplier.pk_cust_sup as tripartiteId + </sql> + + <sql id="BipSupplierEntity_Base_Column_List_details"> + splitbank,bankaccno,name,code + </sql> + + <!--通过ID获取数据 --> + <select id="entity_get" resultMap="get-BipSupplierEntity-result"> + select + <include refid="BipSupplierEntity_Base_Column_List" /> + from BD_SUPPLIER where pk_supplier = #{pk_supplier} and sdr='0' + </select> + + <select id="thirdInterfaceGetSupplier" resultMap="get-BipSupplierEntity-result" parameterType="com.hzya.frame.bip.v3.v2207.entity.BipSupplierEntity"> + select + <include refid="BipSupplierEntity_Base_Column_List" /> + FROM bd_cust_supplier supplier + left join db_customerbank bank ON supplier.code = bank.code + <trim prefix="where" prefixOverrides="and"> + <if test="code != null and code !=''">supplier.code=#{code}</if> + <if test="name != null and name !='' "> and supplier.name = #{name}</if> + <if test="taxpayerid != null and taxpayerid !='' "> and supplier.taxpayerid = #{taxpayerid}</if> + <if test="def1 != null and def1 !='' "> and bank.def1 = #{def1}</if> + <if test="def2 != null and def2 !='' "> and bank.def2 = #{def2}</if> + <if test="def3 != null and def3 !='' "> and bank.def3 = #{def3}</if> + <if test="tripartiteId != null and tripartiteId !='' "> and supplier.tripartiteId = #{tripartiteId}</if> + <if test="ts != null and ts !='' "> and supplier.ts >'2023-09-30 14:18:39' and supplier.ts > #{ts} </if> + </trim> + group by supplier.code,supplier.name,supplier.taxpayerid,bank.def1,bank.def2,bank.def3,supplier.ts, supplier.pk_cust_sup + </select> + + <!-- 查询 采用==查询 --> + <select id="thirdInterfaceGetSupplierDetails" resultMap="get-BipSupplierEntity-result" parameterType="com.hzya.frame.bip.v3.v2207.entity.BipSupplierEntity"> + select + <include refid="BipSupplierEntity_Base_Column_List_details" /> + FROM db_customerbank + <trim prefix="where" prefixOverrides="and"> + <if test="code != null and code !=''">code=#{code}</if> + <if test="name != null and name !='' "> and name = #{name}</if> + <if test="bankaccno != null and bankaccno !='' "> and bankaccno = #{bankaccno}</if> + <if test="splitbank != null and splitbank !='' "> and splitbank = #{splitbank}</if> + </trim> + </select> + + + <!-- 查询 采用==查询 --> + <select id="BipSupplierEntity_list_base" resultMap="get-BipSupplierEntity-result" parameterType="com.hzya.frame.bip.v3.v2207.entity.BipSupplierEntity"> + select + <include refid="BipSupplierEntity_Base_Column_List" /> + FROM bd_cust_supplier supplier + left join db_customerbank bank ON supplier.code = bank.code + <trim prefix="where" prefixOverrides="and"> + <if test="code != null and code !=''">supplier.code=#{code}</if> + <if test="name != null and name !='' "> and supplier.name = #{name}</if> + <if test="taxpayerid != null and taxpayerid !='' "> and supplier.taxpayerid = #{taxpayerid}</if> + <if test="def1 != null and def1 !='' "> and bank.def1 = #{def1}</if> + <if test="def2 != null and def2 !='' "> and bank.def2 = #{def2}</if> + <if test="def3 != null and def3 !='' "> and bank.def3 = #{def3}</if> + </trim> + </select> + + + <!-- 分页查询列表 采用like格式 --> + <select id="entity_list_like" resultMap="get-BipSupplierEntity-result" parameterType="com.hzya.frame.bip.v3.v2207.entity.BipSupplierEntity"> + select + <include refid="BipSupplierEntity_Base_Column_List" /> + FROM bd_cust_supplier supplier + left join db_customerbank bank ON supplier.code = bank.code + <trim prefix="where" prefixOverrides="and"> + <if test="code != null and code !=''"> supplier.code like concat('%',#{code},'%')</if> + <if test="name != null and name !='' "> and supplier.name like concat('%',#{name},'%')</if> + <if test="taxpayerid != null and taxpayerid !='' "> and supplier.taxpayeridlike concat('%',#{taxpayeridlike},'%')</if> + <if test="def1 != null and def1 !='' "> and bank.def1 like concat('%',#{def1},'%')</if> + <if test="def2 != null and def2 !='' "> and bank.def2 like concat('%',#{def2},'%')</if> + <if test="def3 != null and def3 !='' "> and bank.def3 like concat('%',#{def3},'%')</if> + </trim> + </select> + +</mapper> + diff --git a/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/entity/BipTokenVo.java b/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/entity/BipTokenVo.java new file mode 100644 index 00000000..f01ede61 --- /dev/null +++ b/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/entity/BipTokenVo.java @@ -0,0 +1,13 @@ +package com.hzya.frame.bip.v3.v2207.entity; + +import com.hzya.frame.web.entity.BaseEntity; + +/** + * com.hzya.frame.bip.v3.v2207.entity + * + * @author makejava + * @date 2024-05 -27 11:24 + */ + +public class BipTokenVo extends BaseEntity { +} diff --git a/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/entity/BipVoucher.java b/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/entity/BipVoucher.java new file mode 100644 index 00000000..b2138afe --- /dev/null +++ b/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/entity/BipVoucher.java @@ -0,0 +1,150 @@ +package com.hzya.frame.bip.v3.v2207.entity; + +import java.util.List; + +public class BipVoucher { + private List<BipVoucherDetails> details; + private List<BipVoucherDetails> detail; + private String no; + private String pk_corp; + private String pk_glorgbook; + private String pk_prepared; + private String pk_vouchertype; + private String pk_voucher; + private String period; + private String vouchertype; + private String attachment; + private String year; + private String prepared; + private String prepareddate; + private String num; + private String accbookCode; + + public List<BipVoucherDetails> getDetails() { + return details; + } + + public void setDetails(List<BipVoucherDetails> details) { + this.details = details; + } + + public String getNo() { + return no; + } + + public void setNo(String no) { + this.no = no; + } + + public String getPk_corp() { + return pk_corp; + } + + public void setPk_corp(String pk_corp) { + this.pk_corp = pk_corp; + } + + public String getPk_glorgbook() { + return pk_glorgbook; + } + + public void setPk_glorgbook(String pk_glorgbook) { + this.pk_glorgbook = pk_glorgbook; + } + + public String getPk_prepared() { + return pk_prepared; + } + + public void setPk_prepared(String pk_prepared) { + this.pk_prepared = pk_prepared; + } + + public String getPk_vouchertype() { + return pk_vouchertype; + } + + public void setPk_vouchertype(String pk_vouchertype) { + this.pk_vouchertype = pk_vouchertype; + } + + public String getPk_voucher() { + return pk_voucher; + } + + public void setPk_voucher(String pk_voucher) { + this.pk_voucher = pk_voucher; + } + + public List<BipVoucherDetails> getDetail() { + return detail; + } + + public void setDetail(List<BipVoucherDetails> detail) { + this.detail = detail; + } + + public String getPeriod() { + return period; + } + + public void setPeriod(String period) { + this.period = period; + } + + public String getVouchertype() { + return vouchertype; + } + + public void setVouchertype(String vouchertype) { + this.vouchertype = vouchertype; + } + + public String getAttachment() { + return attachment; + } + + public void setAttachment(String attachment) { + this.attachment = attachment; + } + + public String getYear() { + return year; + } + + public void setYear(String year) { + this.year = year; + } + + public String getPrepared() { + return prepared; + } + + public void setPrepared(String prepared) { + this.prepared = prepared; + } + + public String getPrepareddate() { + return prepareddate; + } + + public void setPrepareddate(String prepareddate) { + this.prepareddate = prepareddate; + } + + public String getNum() { + return num; + } + + public void setNum(String num) { + this.num = num; + } + + public String getAccbookCode() { + return accbookCode; + } + + public void setAccbookCode(String accbookCode) { + this.accbookCode = accbookCode; + } +} \ No newline at end of file diff --git a/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/entity/BipVoucherDetails.java b/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/entity/BipVoucherDetails.java new file mode 100644 index 00000000..252b7fba --- /dev/null +++ b/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/entity/BipVoucherDetails.java @@ -0,0 +1,186 @@ +package com.hzya.frame.bip.v3.v2207.entity; + +import java.util.List; + +public class BipVoucherDetails { + private List<BipAss> ass; + private List<BipCashflow> cashflow; + private String creditamount; + private String debitamount; + private String explanation; + private String localcreditamount; + private String localdebitamount; + private String pk_accsubj; + private String pk_currtype; + private String debitquantity; + private String price; + private String accountCode; + private String amount; + private String globalcreditamount; + private String globaldebitamount; + private String groupdebitamount; + private String currtypeCode; + private String busidate; + private String groupcreditamount; + private String detailindex; + + public List<BipAss> getAss() { + return ass; + } + + public void setAss(List<BipAss> ass) { + this.ass = ass; + } + + public List<BipCashflow> getCashflow() { + return cashflow; + } + + public void setCashflow(List<BipCashflow> cashflow) { + this.cashflow = cashflow; + } + + public String getCreditamount() { + return creditamount; + } + + public void setCreditamount(String creditamount) { + this.creditamount = creditamount; + } + + public String getDebitamount() { + return debitamount; + } + + public void setDebitamount(String debitamount) { + this.debitamount = debitamount; + } + + public String getExplanation() { + return explanation; + } + + public void setExplanation(String explanation) { + this.explanation = explanation; + } + + public String getLocalcreditamount() { + return localcreditamount; + } + + public void setLocalcreditamount(String localcreditamount) { + this.localcreditamount = localcreditamount; + } + + public String getLocaldebitamount() { + return localdebitamount; + } + + public void setLocaldebitamount(String localdebitamount) { + this.localdebitamount = localdebitamount; + } + + public String getPk_accsubj() { + return pk_accsubj; + } + + public void setPk_accsubj(String pk_accsubj) { + this.pk_accsubj = pk_accsubj; + } + + public String getPk_currtype() { + return pk_currtype; + } + + public void setPk_currtype(String pk_currtype) { + this.pk_currtype = pk_currtype; + } + + public String getDebitquantity() { + return debitquantity; + } + + public void setDebitquantity(String debitquantity) { + this.debitquantity = debitquantity; + } + + public String getPrice() { + return price; + } + + public void setPrice(String price) { + this.price = price; + } + + public String getAccountCode() { + return accountCode; + } + + public void setAccountCode(String accountCode) { + this.accountCode = accountCode; + } + + public String getAmount() { + return amount; + } + + public void setAmount(String amount) { + this.amount = amount; + } + + public String getGlobalcreditamount() { + return globalcreditamount; + } + + public void setGlobalcreditamount(String globalcreditamount) { + this.globalcreditamount = globalcreditamount; + } + + public String getGlobaldebitamount() { + return globaldebitamount; + } + + public void setGlobaldebitamount(String globaldebitamount) { + this.globaldebitamount = globaldebitamount; + } + + public String getGroupdebitamount() { + return groupdebitamount; + } + + public void setGroupdebitamount(String groupdebitamount) { + this.groupdebitamount = groupdebitamount; + } + + public String getCurrtypeCode() { + return currtypeCode; + } + + public void setCurrtypeCode(String currtypeCode) { + this.currtypeCode = currtypeCode; + } + + public String getBusidate() { + return busidate; + } + + public void setBusidate(String busidate) { + this.busidate = busidate; + } + + public String getGroupcreditamount() { + return groupcreditamount; + } + + public void setGroupcreditamount(String groupcreditamount) { + this.groupcreditamount = groupcreditamount; + } + + public String getDetailindex() { + return detailindex; + } + + public void setDetailindex(String detailindex) { + this.detailindex = detailindex; + } +} \ No newline at end of file diff --git a/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/service/IBipPzService.java b/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/service/IBipPzService.java new file mode 100644 index 00000000..1582e8d7 --- /dev/null +++ b/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/service/IBipPzService.java @@ -0,0 +1,12 @@ +package com.hzya.frame.bip.v3.v2207.service; + + +import com.hzya.frame.basedao.service.IBaseService; +import com.hzya.frame.bip.v3.v2207.entity.BipTokenVo; +import com.hzya.frame.sysnew.application.entity.SysExtensionApiEntity; + +public interface IBipPzService extends IBaseService<BipTokenVo,String>{ + + + SysExtensionApiEntity getPz(SysExtensionApiEntity entity); +} \ No newline at end of file diff --git a/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/service/IBipSsoService.java b/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/service/IBipSsoService.java new file mode 100644 index 00000000..2f8fe71e --- /dev/null +++ b/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/service/IBipSsoService.java @@ -0,0 +1,31 @@ +package com.hzya.frame.bip.v3.v2207.service; + + +import com.hzya.frame.basedao.service.IBaseService; +import com.hzya.frame.bip.v3.v2207.entity.BipTokenVo; +import com.hzya.frame.sysnew.application.entity.SysExtensionApiEntity; +import com.hzya.frame.web.entity.JsonResultEntity; + +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import javax.servlet.http.HttpServletRequest; + +public interface IBipSsoService extends IBaseService<BipTokenVo,String>{ +/** + * + * @content Bip单点统一认证接口 + * @author laborer + * @date 2024/5/30 0030 13:45 + * + */ + + String erpSso(HttpServletRequest request, String ticket)throws Exception; + /** + * + * @content 此方法获取sso动态加密,heade参数动态传入 + * @author laborer + * @date 2024/5/27 0027 11:38 + * + */ + SysExtensionApiEntity ssoEncrypt(SysExtensionApiEntity entity); +} \ No newline at end of file diff --git a/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/service/IBipV32207BillService.java b/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/service/IBipV32207BillService.java new file mode 100644 index 00000000..31806e42 --- /dev/null +++ b/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/service/IBipV32207BillService.java @@ -0,0 +1,19 @@ +package com.hzya.frame.bip.v3.v2207.service; + + +import com.hzya.frame.basedao.service.IBaseService; +import com.hzya.frame.bip.v3.v2207.entity.BipTokenVo; +import com.hzya.frame.sysnew.application.entity.SysExtensionApiEntity; + +public interface IBipV32207BillService extends IBaseService<BipTokenVo,String>{ +/** + * + * @content 此方法获取BIPtoken,heade参数动态传入 + * @author laborer + * @date 2024/5/27 0027 11:38 + * + */ + + SysExtensionApiEntity getBipBill(SysExtensionApiEntity entity); + SysExtensionApiEntity getBipBillYs(SysExtensionApiEntity entity); +} \ No newline at end of file diff --git a/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/service/IBipV32207Service.java b/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/service/IBipV32207Service.java new file mode 100644 index 00000000..d5bb362b --- /dev/null +++ b/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/service/IBipV32207Service.java @@ -0,0 +1,49 @@ +package com.hzya.frame.bip.v3.v2207.service; + + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.dynamic.datasource.annotation.DS; +import com.hzya.frame.basedao.service.IBaseService; +import com.hzya.frame.bip.v3.v2207.entity.BipSupplierEntity; +import com.hzya.frame.web.entity.JsonResultEntity; + +public interface IBipV32207Service extends IBaseService<BipSupplierEntity,String>{ + + /** + * @param jsonObject + * @return com.hzya.frame.web.entity.JsonResultEntity + * @Description 获取token + **/ + JsonResultEntity thirdInterfaceGetToken(JSONObject jsonObject); + + + /** + * @param jsonObject + * @return com.hzya.frame.web.entity.JsonResultEntity + * @Description 获取供应商 + **/ + @DS("oracle91") + JsonResultEntity thirdInterfaceGetSupplier(JSONObject jsonObject); + + + /** + * @param jsonObject + * @return com.hzya.frame.web.entity.JsonResultEntity + * @Description 新增供应商 + **/ + JsonResultEntity thirdInterfaceSaveSupplier(JSONObject jsonObject); + + /** + * 供应商传递OA + * @param jsonObject + * @return + */ + JsonResultEntity thirdInterfaceSendOa(JSONObject jsonObject) throws Exception; + + /** + * 获取BIP组织数据 + * @param jsonObject + * @return + */ + JsonResultEntity thirdInterfaceGetOrgs(JSONObject jsonObject); +} \ No newline at end of file diff --git a/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/service/IBipV32207TokenService.java b/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/service/IBipV32207TokenService.java new file mode 100644 index 00000000..fb452978 --- /dev/null +++ b/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/service/IBipV32207TokenService.java @@ -0,0 +1,22 @@ +package com.hzya.frame.bip.v3.v2207.service; + + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.dynamic.datasource.annotation.DS; +import com.hzya.frame.basedao.service.IBaseService; +import com.hzya.frame.bip.v3.v2207.entity.BipSupplierEntity; +import com.hzya.frame.bip.v3.v2207.entity.BipTokenVo; +import com.hzya.frame.sysnew.application.entity.SysExtensionApiEntity; +import com.hzya.frame.web.entity.JsonResultEntity; + +public interface IBipV32207TokenService extends IBaseService<BipTokenVo,String>{ +/** + * + * @content 此方法获取BIPtoken,heade参数动态传入 + * @author laborer + * @date 2024/5/27 0027 11:38 + * + */ + + SysExtensionApiEntity getBipToken(SysExtensionApiEntity entity); +} \ No newline at end of file diff --git a/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/service/impl/BipPzServiceImpl.java b/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/service/impl/BipPzServiceImpl.java new file mode 100644 index 00000000..b41af4e6 --- /dev/null +++ b/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/service/impl/BipPzServiceImpl.java @@ -0,0 +1,72 @@ +package com.hzya.frame.bip.v3.v2207.service.impl; + + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.hzya.frame.basedao.service.impl.BaseService; +import com.hzya.frame.bip.v3.v2207.dao.IBipArchivesDao; +import com.hzya.frame.bip.v3.v2207.entity.BipArchivesEntity; +import com.hzya.frame.bip.v3.v2207.entity.BipAss; +import com.hzya.frame.bip.v3.v2207.entity.BipTokenVo; +import com.hzya.frame.bip.v3.v2207.entity.BipVoucher; +import com.hzya.frame.bip.v3.v2207.entity.BipVoucherDetails; +import com.hzya.frame.bip.v3.v2207.service.IBipPzService; +import com.hzya.frame.sysnew.application.entity.SysExtensionApiEntity; +import com.hzya.frame.web.entity.BaseResult; +import jdk.nashorn.internal.ir.annotations.Reference; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.Arrays; +import java.util.List; + + +@Service(value = "bipPzService") +public class BipPzServiceImpl extends BaseService<BipTokenVo, String> implements IBipPzService { + private final Logger logger = LoggerFactory.getLogger(this.getClass()); + + @Resource + private IBipArchivesDao bipArchivesDao; + /** + * @param entity + * @return com.hzya.frame.sysnew.application.entity.SysExtensionApiEntity + * @Author lvleigang + * @Description 组装凭证数据 + * @Date 10:52 上午 2024/11/5 + **/ + @Override + public SysExtensionApiEntity getPz(SysExtensionApiEntity entity) { + String bodys = entity.getBodys(); + BipVoucher voucher = JSONObject.parseObject(bodys, BipVoucher.class); + List<String> fzhs = Arrays.asList(new String[]{"1", "2", "6", "73", "D01", "jobass", "93", "96", "22"}); + if (voucher.getDetails() != null && voucher.getDetails().size() > 0) { + for (int a = 0; a < voucher.getDetails().size(); a++) { + BipVoucherDetails voucherDetails = voucher.getDetails().get(a); + if (voucherDetails.getAss() != null && voucherDetails.getAss().size() > 0) { + for (int b = 0; b < voucherDetails.getAss().size(); b++) { + BipAss ass = voucherDetails.getAss().get(b); + if (ass.getChecktypecode() != null && !"".equals(ass.getChecktypecode())) { + //存在需要转换的 + if (fzhs.contains(ass.getChecktypecode())) { + BipArchivesEntity archivesEntity = new BipArchivesEntity(); + archivesEntity.setArchivesType(ass.getChecktypecode()); + archivesEntity.setLeftCode(ass.getCheckvaluecode()); + archivesEntity.setLeftOrg(voucher.getPk_corp()); + + List<BipArchivesEntity> archivesEntities = bipArchivesDao.queryArchivesData(archivesEntity); + if (archivesEntities != null && archivesEntities.size() > 0) { + ass.setCheckvaluecode(archivesEntities.get(0).getRightCode()); + } + } + } + } + } + } + } + bodys = JSON.toJSONString(voucher); + entity.setBodys(bodys); + return entity; + } +} diff --git a/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/service/impl/BipSsoServiceImpl.java b/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/service/impl/BipSsoServiceImpl.java new file mode 100644 index 00000000..c1d69514 --- /dev/null +++ b/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/service/impl/BipSsoServiceImpl.java @@ -0,0 +1,114 @@ +package com.hzya.frame.bip.v3.v2207.service.impl; + + +import cn.hutool.core.util.StrUtil; +import cn.hutool.http.HttpException; +import cn.hutool.http.HttpRequest; +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.IBipSsoService; +import com.hzya.frame.iputil.IPUtil; +import com.hzya.frame.sysnew.application.entity.SysExtensionApiEntity; +import nccloud.security.impl.SignatureTookKit; +import org.apache.commons.codec.binary.Base64; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; + +import javax.servlet.http.HttpServletRequest; +import java.util.Map; + + +@Service(value = "BipSsoServiceImpl") +public class BipSsoServiceImpl extends BaseService<BipTokenVo, String> implements IBipSsoService { + private final Logger logger = LoggerFactory.getLogger(this.getClass()); + private final String BASEURL = "http://192.168.2.237:8099/seeyon/thirdpartyController.do?ticket="; + private final String ESBURL = "http://127.0.0.1:9081/kangarooDataCenterV3/entranceController/externalCallInterface"; + /** + * + * @content Bip单点统一认证接口 + * @author laborer + * @date 2024/5/30 0030 13:45 + * + */ + + @Override + public String erpSso(HttpServletRequest request,String userCode)throws Exception { + logger.info("当前IP地址为"+ JSON.toJSONString(IPUtil.getIpAddress(request))); + String result = ""; + boolean flag = true; +// logger.info("接收到致远OA认证参数的ticket:{}",ticket); + //通过ticket获取OA用户信息 +// String userCode = HttpUtil.get(BASEURL+ticket); + logger.info("获取到的OA用户信息:{}",userCode); + String dsname = "ycjf"; + String client_id = "OAREST";//第三方系统id + StringBuffer sb = new StringBuffer(); + if(StrUtil.isNotEmpty(userCode)){ + try { + logger.info("开始加密"); + String security = genKey(userCode,userCode + (System.currentTimeMillis() + "").substring(0, 6)); + logger.info("加密结束:{}",security); + sb.append("type=type_security&dsname="+dsname+"&usercode="+userCode+"&client_id="+client_id+"&security="+security); + String baseUrl = "http://10.75.51.78:8899/service/genThirdPartyAccessToken?"+sb.toString(); + logger.info("请求BIPtokenbaseUrl:{}",baseUrl); + result = HttpRequest.post(baseUrl) + .header("Content-Type", "application/x-www-form-urlencoded")//头信息,多个头信息多次调用此方法即可 + .header("Content-Length", "10000")//头信息,多个头信息多次调用此方法即可 + .header("userid", "admin")//头信息,多个头信息多次调用此方法即可 + .body("{}")//表单内容 + .timeout(20000)//超时,毫秒 + .execute().body(); + logger.info("获取到的BIPtoken信息:{}",result); + } catch (HttpException e) { + flag=false; + e.printStackTrace(); + } + } + if(flag){ + String indexUR = "http://10.75.51.78:8899/nccloud/resources/uap/rbac/thirdpartylogin/main/index.html?accesstoken="+result+"&redirect_uri=http://10.75.51.78:8899/nccloud/resources/workbench/public/common/main/index.html#"; + logger.info(indexUR); + return indexUR; + }else{ + return "http://10.75.51.78:8899/nccloud/resources/uap/rbac/login/main/index.html"; + } + } + /** + * + * @content 此方法获取sso动态加密,heade参数动态传入 + * @author laborer + * @date 2024/5/27 0027 11:38 + * + */ + + @Override + public SysExtensionApiEntity ssoEncrypt(SysExtensionApiEntity entity) { + try { + Map<String, String> headers = entity.getHeaders(); + String userCode = headers.get("usercode");//用户编码 + String dsname = headers.get("dsname");//数据源 + String client_id = headers.get("client_id");//第三方系统id + StringBuffer sb = new StringBuffer(); + String security = genKey(userCode,userCode + (System.currentTimeMillis() + "").substring(0, 6)); + StringBuffer querys = new StringBuffer(); + querys.append("type=type_security"); + querys.append("&dsname="+dsname); + querys.append("&usercode="+userCode); + querys.append("&client_id="+client_id); + querys.append("&security="+security); + entity.setQuerys(querys.toString()); + headers.put("Content-Type", "application/x-www-form-urlencoded"); + headers.put("userid", "admin"); + entity.setHeaders(headers); + } catch (Exception e) { + e.printStackTrace(); + } + return entity; + } + /**获取NCC的key*/ + private static String genKey(String userid, String key) throws Exception { + return new Base64().encodeToString(SignatureTookKit.digestSign(userid.getBytes(), key.getBytes())); + } + +} diff --git a/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/service/impl/BipV32207BillServiceImpl.java b/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/service/impl/BipV32207BillServiceImpl.java new file mode 100644 index 00000000..1511d1ee --- /dev/null +++ b/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/service/impl/BipV32207BillServiceImpl.java @@ -0,0 +1,134 @@ +package com.hzya.frame.bip.v3.v2207.service.impl; + + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.hzya.frame.basedao.service.impl.BaseService; +import com.hzya.frame.bip.v3.v2207.dao.IBipArchivesDao; +import com.hzya.frame.bip.v3.v2207.entity.BipArchivesEntity; +import com.hzya.frame.bip.v3.v2207.entity.BipAss; +import com.hzya.frame.bip.v3.v2207.entity.BipTokenVo; +import com.hzya.frame.bip.v3.v2207.entity.BipVoucher; +import com.hzya.frame.bip.v3.v2207.entity.BipVoucherDetails; +import com.hzya.frame.bip.v3.v2207.service.IBipV32207BillService; +import com.hzya.frame.bip.v3.v2207.service.IBipV32207TokenService; +import com.hzya.frame.sysnew.application.entity.SysExtensionApiEntity; +import com.hzya.frame.util.bipV3.Encryption; +import com.hzya.frame.util.bipV3.SHA256Util; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.net.URLEncoder; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + + +@Service(value = "BipV32207BillServiceImpl") +public class BipV32207BillServiceImpl extends BaseService<BipTokenVo, String> implements IBipV32207BillService { + private final Logger logger = LoggerFactory.getLogger(this.getClass()); + @Resource + private IBipArchivesDao bipArchivesDao; + /** + * + * @content 此方法获取拼接单据动态加密,heade参数动态传入 + * @author laborer + * @date 2024/5/27 0027 11:38 + * + */ + + @Override + public SysExtensionApiEntity getBipBill(SysExtensionApiEntity entity) { + try { + Map<String, String> headers = entity.getHeaders(); + String client_id = headers.get("client_id"); + //token信息 + String access_token = headers.get("access_token"); + //公钥 + String pubKey = headers.get("pubKey"); + StringBuffer sb = new StringBuffer(); + sb.append(client_id); + String parm = entity.getBodys(); + if (StringUtils.isNotBlank(parm)) { + sb.append(parm); + } + sb.append(pubKey); + // 签名 + String sign = SHA256Util.getSHA256(sb.toString(), pubKey); + StringBuffer querys = new StringBuffer(); + querys.append("access_token="+access_token); + querys.append("&signature="+sign); + querys.append("&client_id="+client_id); + entity.setQuerys(querys.toString()); + headers.put("signature",sign); +// headers.put("content-type","application/x-www-form-urlencoded"); + } catch (Exception e) { + e.printStackTrace(); + } + return entity; + } + @Override + public SysExtensionApiEntity getBipBillYs(SysExtensionApiEntity entity) { + try { + String bodys = entity.getBodys(); + BipVoucher voucher = JSONObject.parseObject(bodys, BipVoucher.class); + List<String> fzhs = Arrays.asList(new String[]{"0012", "0006", "0004"}); + if (voucher.getDetail() != null && voucher.getDetail().size() > 0) { + for (int a = 0; a < voucher.getDetail().size(); a++) { + BipVoucherDetails voucherDetails = voucher.getDetail().get(a); + if (voucherDetails.getAss() != null && voucherDetails.getAss().size() > 0) { + for (int b = 0; b < voucherDetails.getAss().size(); b++) { + BipAss ass = voucherDetails.getAss().get(b); + if (ass.getChecktypecode() != null && !"".equals(ass.getChecktypecode())) { + //存在需要转换的 + if (fzhs.contains(ass.getChecktypecode())) { + BipArchivesEntity archivesEntity = new BipArchivesEntity(); + archivesEntity.setArchivesType(ass.getChecktypecode()); + archivesEntity.setLeftCode(ass.getCheckvaluecode()); + archivesEntity.setLeftOrg(voucher.getPk_corp()); + + List<BipArchivesEntity> archivesEntities = bipArchivesDao.queryArchivesDatays(archivesEntity); + if (archivesEntities != null && archivesEntities.size() > 0) { + ass.setCheckvaluecode(archivesEntities.get(0).getRightCode()); + } + } + } + } + } + } + } + bodys = JSON.toJSONString(voucher); + entity.setBodys(bodys); + + Map<String, String> headers = entity.getHeaders(); + String client_id = headers.get("client_id"); + //token信息 + String access_token = headers.get("access_token"); + //公钥 + String pubKey = headers.get("pubKey"); + StringBuffer sb = new StringBuffer(); + sb.append(client_id); + String parm = entity.getBodys(); + if (StringUtils.isNotBlank(parm)) { + sb.append(parm); + } + sb.append(pubKey); + // 签名 + String sign = SHA256Util.getSHA256(sb.toString(), pubKey); + StringBuffer querys = new StringBuffer(); + querys.append("access_token="+access_token); + querys.append("&signature="+sign); + querys.append("&client_id="+client_id); + entity.setQuerys(querys.toString()); + headers.put("signature",sign); +// headers.put("content-type","application/x-www-form-urlencoded"); + } catch (Exception e) { + e.printStackTrace(); + } + return entity; + } +} diff --git a/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/service/impl/BipV32207ServiceImpl.java b/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/service/impl/BipV32207ServiceImpl.java new file mode 100644 index 00000000..841e291b --- /dev/null +++ b/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/service/impl/BipV32207ServiceImpl.java @@ -0,0 +1,480 @@ +package com.hzya.frame.bip.v3.v2207.service.impl; + + +import cn.hutool.http.HttpRequest; +import cn.hutool.json.JSONUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.alibaba.fastjson2.JSON; +import com.baomidou.dynamic.datasource.annotation.DS; +import com.google.gson.Gson; +import com.hzya.frame.base.PluginBaseEntity; +import com.hzya.frame.basedao.service.impl.BaseService; +import com.hzya.frame.bip.v3.v2207.dao.IBipOrgsDao; +import com.hzya.frame.bip.v3.v2207.dao.IBipOrgsDetailsDao; +import com.hzya.frame.bip.v3.v2207.dao.IBipSupplierDao; +import com.hzya.frame.bip.v3.v2207.dao.IBipSupplierDetailsDao; +import com.hzya.frame.bip.v3.v2207.entity.BipOrgsDetailsEntity; +import com.hzya.frame.bip.v3.v2207.entity.BipOrgsEntity; +import com.hzya.frame.bip.v3.v2207.entity.BipSupplierDetailsEntity; +import com.hzya.frame.bip.v3.v2207.entity.BipSupplierEntity; +import com.hzya.frame.bip.v3.v2207.service.IBipV32207Service; +import com.hzya.frame.dateutil.DateUtil; +import com.hzya.frame.util.PluginUtils; +import com.hzya.frame.util.bipV3.Encryption; +import com.hzya.frame.util.bipV3.SHA256Util; +import com.hzya.frame.util.oldNcc.CompressUtil; +import com.hzya.frame.util.oldNcc.Decryption; +import com.hzya.frame.web.entity.BaseResult; +import com.hzya.frame.web.entity.JsonResultEntity; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + + +import java.net.URLEncoder; +import java.util.*; + + +@Service(value = "bipV32207Service") +public class BipV32207ServiceImpl extends BaseService<BipSupplierEntity, String> implements IBipV32207Service { + private final Logger logger = LoggerFactory.getLogger(this.getClass()); + //定义项目开始同步日期 + private String ts = "2023-09-30 15:47:08"; + //组织的同步日期 + private String orgsts = "2023-09-30 15:47:08"; + @Autowired + private IBipSupplierDao bipSupplierDao; + + @Autowired + private IBipSupplierDetailsDao bipSupplierDetailsDao; + + @Autowired + private IBipOrgsDao bipOrgsDao; + + @Autowired + private IBipOrgsDetailsDao bipOrgsDetailsDao; + + + /** + * @param object + * @return com.hzya.frame.web.entity.JsonResultEntity + * @Description 获取token + **/ + @Override + public JsonResultEntity thirdInterfaceGetToken(JSONObject object) { + JSONObject jsonObject = getstrObj("jsonStr", object); + String client_id = jsonObject.getString("client_id"); + String pubKey = jsonObject.getString("pubKey"); + String client_secret = jsonObject.getString("client_secret"); + String username = jsonObject.getString("username"); + String pwd = jsonObject.getString("pwd"); + String busi_center = jsonObject.getString("busi_center"); + String dsname = jsonObject.getString("dsname"); + String baseUrl = jsonObject.getString("baseUrl"); + Map<String, String> paramMap = new HashMap<String, String>(); + // 密码模式认证 + paramMap.put("grant_type", "password"); + // 第三方应用id + paramMap.put("client_id", client_id); + // 第三方应用secret 公钥加密 + try { + paramMap.put("client_secret", URLEncoder.encode(Encryption.pubEncrypt(pubKey, client_secret), "utf-8")); + } catch (Exception e) { + e.printStackTrace(); + } + // ncc用户名 + paramMap.put("username", username); + // 密码 公钥加密 + try { + paramMap.put("password", URLEncoder.encode(Encryption.pubEncrypt(pubKey, pwd), "utf-8")); + } catch (Exception e) { + return BaseResult.getFailureMessageEntity("获取token失败"); + } + // 账套编码 + paramMap.put("biz_center", busi_center); + // 签名 + String sign = SHA256Util.getSHA256(client_id + client_secret + username + pwd + pubKey, pubKey); + paramMap.put("signature", sign); + paramMap.put("dsname", dsname); + String url = baseUrl + "/nccloud/opm/accesstoken"; + String mediaType = "application/x-www-form-urlencoded"; + String token = null; + try { + token = doPostHutool(url, paramMap, mediaType, null, "", "token"); + } catch (Exception e) { + return BaseResult.getFailureMessageEntity("获取token失败"); + } + if (JSONUtil.isTypeJSON(token)) { + JSONObject jsonObject1 = JSONObject.parseObject(token); + return BaseResult.getSuccessMessageEntity("获取token成功", jsonObject1); + } else { + return BaseResult.getSuccessMessageEntity("获取token成功", token); + } + } + + /** + * 发送post请求 + * + * @param baseUrl + * @param paramMap + * @param mediaType + * @param headers + * @param json + * @return + */ + private String doPostHutool(String baseUrl, Map<String, String> paramMap, String mediaType, Map<String, String> headers, String json, String type) { + String result = null; + + try { + StringBuffer sb = new StringBuffer(); + sb.append(baseUrl); + if (paramMap != null) { + sb.append("?"); + for (Map.Entry<String, String> entry : paramMap.entrySet()) { + String key = entry.getKey(); + String value = entry.getValue(); + sb.append(key + "=" + value).append("&"); + } + } + if ("bill".equals(type)) { + sb.append("?"); + for (Map.Entry<String, String> entry : headers.entrySet()) { + String key = entry.getKey(); + String value = entry.getValue(); + sb.append(key + "=" + value).append("&"); + } + } + baseUrl = sb.toString().substring(0, sb.toString().length() - 1); + HttpRequest re = HttpRequest.post(baseUrl); + re.addHeaders(headers); + result = re.body(json) + .timeout(2000000)//超时,毫秒 + .execute().body(); + + } catch (Exception e) { + e.printStackTrace(); + } + + + return result; + } + + /** + * @param key + * @param object + * @return com.alibaba.fastjson.JSONObject + * @Author lvleigang + * @Description 获取对象转换成jsonobj + * @Date 11:51 下午 2023/7/10 + **/ + public JSONObject getstrObj(String key, JSONObject object) { + if (checkStr(object.getString(key))) { + return object.getJSONObject(key); + } + return new JSONObject(); + } + + /** + * @param str + * @return void + * @Author lvleigang + * @Description 校验字符串 + * @Date 11:41 上午 2022/12/7 + **/ + protected Boolean checkStr(String str) { + Boolean flag = true; + if (str == null || "".equals(str)) { + flag = false; + } + return flag; + } + + /** + * @param jsonObject + * @return com.hzya.frame.web.entity.JsonResultEntity + * @Description 获取供应商 + **/ + @Override + public JsonResultEntity thirdInterfaceGetSupplier(JSONObject jsonObject) { + BipSupplierEntity bipSupplierEntity = getData("jsonStr", jsonObject, BipSupplierEntity.class); + //设置查询区间 + bipSupplierEntity.setTs(ts); + logger.info("查询供应商数据,当前TS:"+ts); + List<BipSupplierEntity> bipSupplierEntities = bipSupplierDao.thirdInterfaceGetSupplier(bipSupplierEntity); + //更新TS时间 + ts = DateUtil.dateToString(new Date(),"yyyy-MM-dd HH:mm:ss"); + logger.info("TS已更新:"+ts); + //System.out.println("查询供应商明细"); + logger.info("查询供应商明细"+JSON.toJSONString(bipSupplierEntities)); + List<JSONObject> jsonObjectList=new ArrayList<>(); + //[{"code":"SL20231101727","dataSourceCode":"master","name":"无锡恒君安管理咨询有限公司","taxpayerid":"91320205MAD2HAQN6Q","tripartiteId":"0001A31000000002M3TS","ts":"2023-11-16 14:05:10"}] + + List<BipSupplierDetailsEntity> bipSupplierDetails = null; + for (BipSupplierEntity supplierEntity : bipSupplierEntities) { + List<JSONObject> list=new ArrayList<>(); + JSONObject jsonObjectResult=new JSONObject(); + jsonObjectResult.put("code",supplierEntity.getCode()); + jsonObjectResult.put("name",supplierEntity.getName()); + jsonObjectResult.put("taxpayerid",supplierEntity.getTaxpayerid()); + jsonObjectResult.put("def1",supplierEntity.getDef1()); + jsonObjectResult.put("def2",supplierEntity.getDef2()); + jsonObjectResult.put("def3",supplierEntity.getDef3()); + jsonObjectResult.put("tripartiteId",supplierEntity.getTripartiteId()); + //根据供应商编码和名称查询明细 + String code = supplierEntity.getCode(); + String name = supplierEntity.getName(); + //System.out.println("根据供应处名称,编码获取明细数据:code:"+code +"name:"+name); + logger.info("根据供应处名称,编码获取明细数据:code:"+code +"name:"+name); + BipSupplierDetailsEntity bipSupplierDetailsEntity = new BipSupplierDetailsEntity(); + bipSupplierDetailsEntity.setCode(code); + bipSupplierDetailsEntity.setName(name); + logger.info("根据供应商编码,名称查询银行档案 {}",JSON.toJSONString(bipSupplierDetailsEntity)); + List<BipSupplierDetailsEntity> bipSupplierDetailsEntities = queryBipSupplierDetails(bipSupplierDetailsEntity) ; +// /bipSupplierDetails.stream().filter(that-> code.equalsIgnoreCase(that.getCode() ) && name.equalsIgnoreCase(that.getName() ) ).collect(Collectors.toList()); + logger.info("根据供应处名称,编码获取明细数据 bipSupplierDetailsEntities值:{}",JSON.toJSONString(bipSupplierDetailsEntities)); + if (bipSupplierDetailsEntities.size()>0 && null!=bipSupplierDetailsEntities){ + bipSupplierDetailsEntities.get(0).setIsdefault("-8073674727882144390"); + for (BipSupplierDetailsEntity supplierDetailsEntity : bipSupplierDetailsEntities) { + JSONObject jsonObjectDetails=new JSONObject(); + jsonObjectDetails.put("splitbank",supplierDetailsEntity.getSplitbank()); + jsonObjectDetails.put("bankaccno",supplierDetailsEntity.getBankaccno()); + jsonObjectDetails.put("combinno",supplierDetailsEntity.getCombinno()); + jsonObjectDetails.put("isdefault",supplierDetailsEntity.getIsdefault()); + list.add(jsonObjectDetails); + } + } + jsonObjectResult.put("details",list); + jsonObjectList.add(jsonObjectResult); + } + return BaseResult.getSuccessMessageEntity("查询成功",jsonObjectList); + } + @DS("oracle91") + private List<BipSupplierDetailsEntity> queryBipSupplierDetails(BipSupplierDetailsEntity bipSupplierDetailsEntity){ +// BipSupplierDetailsEntity bipSupplierDetailsEntity=new BipSupplierDetailsEntity(); +// bipSupplierDetailsEntity.setCode(supplierEntity.getCode()); +// bipSupplierDetailsEntity.setName(supplierEntity.getName()); + + List<BipSupplierDetailsEntity> bipSupplierDetailsEntities = bipSupplierDetailsDao.thirdInterfaceGetSupplierDetails(bipSupplierDetailsEntity); + return bipSupplierDetailsEntities; + } + + + /** + * 获取BIP组织数据 + * @param jsonObject + * @return + */ + @Override + public JsonResultEntity thirdInterfaceGetOrgs(JSONObject jsonObject) { + BipOrgsEntity bipOrgsEntity = getData("jsonStr", jsonObject, BipOrgsEntity.class); + //设置查询区间 + bipOrgsEntity.setOrgsts(orgsts); + logger.info("查询组织数据,当前TS:" + orgsts); + List<BipOrgsEntity> bipOrgsEntities = bipOrgsDao.thirdInterfaceGetOrgs(bipOrgsEntity); + //更新TS时间 + orgsts = DateUtil.dateToString(new Date(), "yyyy-MM-dd HH:mm:ss"); + logger.info("组织TS已更新:" + orgsts); + logger.info("查询组织明细" + JSON.toJSONString(bipOrgsEntities)); + List<JSONObject> jsonObjectList = new ArrayList<>(); + if (null != bipOrgsEntities && bipOrgsEntities.size() > 0) { + for (BipOrgsEntity orgsEntity : bipOrgsEntities) { + List<JSONObject> list = new ArrayList<>(); + JSONObject jsonObjectResult = new JSONObject(); + jsonObjectResult.put("code", orgsEntity.getCode());//单位编码 + jsonObjectResult.put("name", orgsEntity.getName());//单位名称 + jsonObjectResult.put("tripartiteId", orgsEntity.getTripartiteId());//BIPID + //根据组织主键查询明细 + String tripartiteId = orgsEntity.getTripartiteId(); + //System.out.println("根据供应处名称,编码获取明细数据:code:"+code +"name:"+name); + logger.info("根据组织主键获取明细数据:pk_financeorg:{}", tripartiteId); + BipOrgsDetailsEntity bipOrgsDetailsEntity = new BipOrgsDetailsEntity(); + bipOrgsDetailsEntity.setControlorg(tripartiteId); + List<BipOrgsDetailsEntity> bipOrgsDetailsEntities = queryBipOrgsDetails(bipOrgsDetailsEntity); + if (bipOrgsDetailsEntities.size() > 0 && null != bipOrgsDetailsEntities) { + for (BipOrgsDetailsEntity orgsDetailsEntity : bipOrgsDetailsEntities) { + JSONObject jsonObjectDetails = new JSONObject(); + jsonObjectDetails.put("bankCode", orgsDetailsEntity.getBankCode());//开户行编码 + jsonObjectDetails.put("bankName", orgsDetailsEntity.getBankName());//开户行名称 + jsonObjectDetails.put("accnum", orgsDetailsEntity.getAccnum());//账户 + jsonObjectDetails.put("cnapsCode", orgsDetailsEntity.getCnapsCode());//联行号 + list.add(jsonObjectDetails); + } + } + jsonObjectResult.put("details", list); + jsonObjectList.add(jsonObjectResult); + } + } + return BaseResult.getSuccessMessageEntity("查询成功", jsonObjectList); + } + private List<BipOrgsDetailsEntity> queryBipOrgsDetails(BipOrgsDetailsEntity bipOrgsDetailsEntity){ + List<BipOrgsDetailsEntity> bipOrgsDetailsEntities = bipOrgsDetailsDao.thirdInterfaceGetOrgsDetails(bipOrgsDetailsEntity); + return bipOrgsDetailsEntities; + } + + /** + * @param object + * @return com.hzya.frame.web.entity.JsonResultEntity + * @Description 新增供应商 + **/ + @Override + public JsonResultEntity thirdInterfaceSaveSupplier(JSONObject object) { + JSONObject jsonObject = getstrObj("jsonStr", object); + //认证access_token + String access_token = jsonObject.getString("access_token"); + //认证security_key + String security_key = jsonObject.getString("security_key"); + //服务器ip:port + String baseUrl = jsonObject.getString("baseUrl"); + //api方法 + String apiUrl = jsonObject.getString("apiUrl"); + //发送的数据 + String sendData =jsonObject.getString("sendData"); + //对应于在第三方应用注册当中的app_id + String client_id = jsonObject.getString("client_id"); + //公钥 + String pubKey = jsonObject.getString("pubKey"); + //接口调用业务标识 + String busi_id = jsonObject.getString("busi_id"); + //重复调用检查 + String repeat_check = jsonObject.getString("repeat_check"); + //返回值压缩加密级别 + String secret_level = jsonObject.getString("secret_level") == null ? "L0": jsonObject.getString("secret_level") ; + try { + String returnStr = sendApi(access_token, security_key, baseUrl,apiUrl,sendData,client_id,pubKey,busi_id,repeat_check,secret_level); + if(JSONUtil.isTypeJSON(returnStr)){ + JSONObject jsonObject1 = JSONObject.parseObject(returnStr); + return BaseResult.getSuccessMessageEntity("发送数据成功",jsonObject1); + }else { + return BaseResult.getSuccessMessageEntity("发送数据成功",returnStr); + } + } catch (Exception e) { + return BaseResult.getFailureMessageEntity("发送数据错误"); + } + } + + /** + * 供应商传递OA + * @param jsonObject + * @return + */ + @Override + public JsonResultEntity thirdInterfaceSendOa(JSONObject jsonObject) throws Exception { + JSONObject jsonObjectStr = getstrObj("jsonStr", jsonObject); + PluginBaseEntity pluginBaseEntity = PluginUtils.getPluginsById(jsonObjectStr.getString("plug_id")); + JsonResultEntity s = pluginBaseEntity.executeBusiness(jsonObjectStr); + return BaseResult.getSuccessMessageEntity("传递成功"); + } + + + /** + * @param access_token 认证access_token + * @param security_key 认证security_key + * @param baseUrl 服务器ip:port + * @param apiUrl api方法 + * @param putParameter 发送的数据 + * @param client_id 对应于在第三方应用注册当中的app_id + * @param pubKey 公钥 + * @param busi_id 接口调用业务标识 + * @param repeat_check 重复调用检查 + * @param secret_level 返回值压缩加密级别 + * @return java.lang.String + * @Author lvleigang + * @Description 发起api接口 + * @Date 9:52 上午 2023/8/22 + **/ + private String sendApi(String access_token, String security_key, String baseUrl, String apiUrl, String putParameter, String client_id, String pubKey, String busi_id, String repeat_check, String secret_level) throws Exception{ + // header 参数 + Map<String, String> headermap = new HashMap<>(); + headermap.put("access_token", access_token); + headermap.put("client_id", client_id); + StringBuffer sb = new StringBuffer(); + sb.append(client_id); + if (StringUtils.isNotBlank(putParameter)) { + sb.append(putParameter); + } + sb.append(pubKey); + String sign = SHA256Util.getSHA256(sb.toString(), pubKey); + headermap.put("signature", sign); + if (StringUtils.isNotBlank(busi_id)) { + headermap.put("busi_id", busi_id); + } + if (StringUtils.isNotBlank(repeat_check)) { + headermap.put("repeat_check", repeat_check); + } + String mediaType = "application/json;charset=utf-8"; + // 表体数据json + // 根据安全级别选择加密或压缩请求表体参数 + String json = dealRequestBody(putParameter, security_key, secret_level); + // 返回值 + String sendUrl = baseUrl + apiUrl; + String result = doPostHutool(sendUrl, null, mediaType, headermap, json, "bill"); + String changeData = dealResponseBody(result, security_key, secret_level); + return changeData; + } + + // 返回值进行过加密和压缩,对返回值进行解压和解密 + private static String dealResponseBody(String source, String security_key, String level) throws Exception { + String result = null; + if (StringUtils.isEmpty(level) || SecretConst.LEVEL0.equals(level)) { + result = source; + } else if (SecretConst.LEVEL1.equals(level)) { + result = Decryption.symDecrypt(security_key, source); + } else if (SecretConst.LEVEL2.equals(level)) { + result = CompressUtil.gzipDecompress(source); + } else if (SecretConst.LEVEL3.equals(level)) { + result = CompressUtil.gzipDecompress(Decryption.symDecrypt(security_key, source)); + } else if (SecretConst.LEVEL4.equals(level)) { + result = Decryption.symDecrypt(security_key, CompressUtil.gzipDecompress(source)); + } else { + throw new Exception("无效的安全等级"); + } + + return result; + } + + // 根据安全级别设置,表体是否加密或压缩 + private static String dealRequestBody(String source, String security_key, String level) throws Exception { + String result = null; + if (StringUtils.isEmpty(level) || SecretConst.LEVEL0.equals(level)) { + result = source; + } else if (SecretConst.LEVEL1.equals(level)) { + result = Encryption.symEncrypt(security_key, source); + } else if (SecretConst.LEVEL2.equals(level)) { + result = CompressUtil.gzipCompress(source); + } else if (SecretConst.LEVEL3.equals(level)) { + result = Encryption.symEncrypt(security_key, CompressUtil.gzipCompress(source)); + } else if (SecretConst.LEVEL4.equals(level)) { + result = CompressUtil.gzipCompress(Encryption.symEncrypt(security_key, source)); + } else { + throw new Exception("无效的安全等级"); + } + + return result; + } + + class SecretConst { + /** + * LEVEL0 不压缩、不加密 + */ + public static final String LEVEL0 = "L0"; + /** + * LEVEL1 只加密、不压缩 + */ + public static final String LEVEL1 = "L1"; + /** + * LEVEL2 只压缩、不加密 + */ + public static final String LEVEL2 = "L2"; + /** + * LEVEL3 先压缩、后加密 + */ + public static final String LEVEL3 = "L3"; + /** + * LEVEL4 先加密、后压缩 + */ + public static final String LEVEL4 = "L4"; + } +} diff --git a/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/service/impl/BipV32207TokenServiceImpl.java b/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/service/impl/BipV32207TokenServiceImpl.java new file mode 100644 index 00000000..0d6fda14 --- /dev/null +++ b/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/service/impl/BipV32207TokenServiceImpl.java @@ -0,0 +1,92 @@ +package com.hzya.frame.bip.v3.v2207.service.impl; + + +import cn.hutool.http.HttpRequest; +import cn.hutool.json.JSONUtil; +import com.alibaba.fastjson.JSONObject; +import com.alibaba.fastjson2.JSON; +import com.baomidou.dynamic.datasource.annotation.DS; +import com.hzya.frame.base.PluginBaseEntity; +import com.hzya.frame.basedao.service.impl.BaseService; +import com.hzya.frame.bip.v3.v2207.dao.IBipOrgsDao; +import com.hzya.frame.bip.v3.v2207.dao.IBipOrgsDetailsDao; +import com.hzya.frame.bip.v3.v2207.dao.IBipSupplierDao; +import com.hzya.frame.bip.v3.v2207.dao.IBipSupplierDetailsDao; +import com.hzya.frame.bip.v3.v2207.entity.*; +import com.hzya.frame.bip.v3.v2207.service.IBipV32207Service; +import com.hzya.frame.bip.v3.v2207.service.IBipV32207TokenService; +import com.hzya.frame.dateutil.DateUtil; +import com.hzya.frame.sysnew.application.entity.SysExtensionApiEntity; +import com.hzya.frame.util.PluginUtils; +import com.hzya.frame.util.bipV3.Encryption; +import com.hzya.frame.util.bipV3.SHA256Util; +import com.hzya.frame.util.oldNcc.CompressUtil; +import com.hzya.frame.util.oldNcc.Decryption; +import com.hzya.frame.web.entity.BaseResult; +import com.hzya.frame.web.entity.JsonResultEntity; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.net.URLEncoder; +import java.util.*; + + +@Service(value = "bipV32207TokenService") +public class BipV32207TokenServiceImpl extends BaseService<BipTokenVo, String> implements IBipV32207TokenService { + private final Logger logger = LoggerFactory.getLogger(this.getClass()); + /** + * + * @content 此方法获取BIPtoken,heade参数动态传入 + * @author laborer + * @date 2024/5/27 0027 11:38 + * + */ + + @Override + public SysExtensionApiEntity getBipToken(SysExtensionApiEntity entity) { + try { + Map<String, String> headers = entity.getHeaders(); + String client_id = headers.get("client_id"); + Map<String, String> paramMap = new HashMap<String, String>(); + // 密码模式认证 + paramMap.put("grant_type", "client_credentials"); + // 第三方应用id + paramMap.put("client_id", client_id); + // 第三方应用secret] + String client_secret = headers.get("client_secret"); + // 账套编码 + String busi_center = headers.get("busi_center"); + //用户编码 + String usercode = headers.get("usercode"); + //数据库编码 + String dsname = headers.get("dsname"); + String pubKey = headers.get("pubKey"); + // 第三方应用secret 公钥加密] + paramMap.put("client_secret", URLEncoder.encode(Encryption.pubEncrypt(pubKey, client_secret), "utf-8")); + // 账套编码 + paramMap.put("biz_center", busi_center); + // // TODO 传递数据源和ncc登录用户 + paramMap.put("dsname", dsname); + paramMap.put("usercode", usercode); + // 签名 + String sign = SHA256Util.getSHA256(client_id + client_secret + pubKey,pubKey); + paramMap.put("signature", sign); + StringBuffer querys = new StringBuffer(); + querys.append("biz_center="+busi_center); + querys.append("&grant_type="+"client_credentials"); + querys.append("&signature="+sign); + querys.append("&dsname="+dsname); + querys.append("&client_secret="+URLEncoder.encode(Encryption.pubEncrypt(pubKey, client_secret), "utf-8")); + querys.append("&usercode="+usercode); + querys.append("&client_id="+client_id); + entity.setQuerys(querys.toString()); + headers.put("content-type","application/x-www-form-urlencoded"); + } catch (Exception e) { + e.printStackTrace(); + } + return entity; + } +} diff --git a/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/util/BipUtil.java b/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/util/BipUtil.java new file mode 100644 index 00000000..a7bfe324 --- /dev/null +++ b/fw-bip/src/main/java/com/hzya/frame/bip/v3/v2207/util/BipUtil.java @@ -0,0 +1,65 @@ +package com.hzya.frame.bip.v3.v2207.util; + +import cn.hutool.core.util.StrUtil; +import cn.hutool.http.HttpRequest; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; + +/** + * com.hzya.frame.bip.v3.v2207.util + * + * @author makejava + * @date 2024-05 -30 14:20 + */ + +public class BipUtil { + /** + * + * @content 发送单据到BIP系统 + * @author laborer + * @date 2024/6/21 0021 10:51 + * + */ + + public static String sendU9cTOBipEsb(String parm, String apiCode,String token){ + String baseUrl = "http://127.0.0.1:9999/kangarooDataCenterV3/entranceController/externalCallInterface"; + System.out.println("推送参数"+parm); + String result = HttpRequest.post(baseUrl) + .header("appId", "800023")//头信息,多个头信息多次调用此方法即可 + .header("access_token", token)//头信息,多个头信息多次调用此方法即可 + .header("apiCode", apiCode)//头信息,多个头信息多次调用此方法即可 + .header("publicKey", "ZJYA1vBeY1ai53iNmbAEsw6DImjkXGBkdMailxcBdliFC85Ce7eDIk+3zDUT+v578prj")//头信息,多个头信息多次调用此方法即可 + .header("secretKey", "7Gp6OjHrIaQ6R3tXGPrI4morjQyWL+qu4JJschQnkBRtv26VDgGFVYKOy5kMZfd/j3JzOP8MtA1LSGvL+2BWG8c/o7DKi92S4mr3zcGearA=")//头信息,多个头信息多次调用此方法即可 + .body(parm)//表单内容 + .timeout(20000)//超时,毫秒 + .execute().body(); + System.out.println("返回参数"+result); + if(StrUtil.isNotEmpty(result)){ + return analytic(result); + } + return null; + } + public static String getBipToken(String userCode, String apiCode){ + String baseUrl = "http://127.0.0.1:9999/kangarooDataCenterV3/entranceController/externalCallInterface"; + String result = HttpRequest.post(baseUrl) + .header("appId", "800023")//头信息,多个头信息多次调用此方法即可 + .header("apiCode", apiCode)//头信息,多个头信息多次调用此方法即可 + .header("usercode", userCode)//头信息,多个头信息多次调用此方法即可 + .header("publicKey", "ZJYA1vBeY1ai53iNmbAEsw6DImjkXGBkdMailxcBdliFC85Ce7eDIk+3zDUT+v578prj")//头信息,多个头信息多次调用此方法即可 + .header("secretKey", "7Gp6OjHrIaQ6R3tXGPrI4morjQyWL+qu4JJschQnkBRtv26VDgGFVYKOy5kMZfd/j3JzOP8MtA1LSGvL+2BWG8c/o7DKi92S4mr3zcGearA=")//头信息,多个头信息多次调用此方法即可 + .body("")//表单内容 + .timeout(20000)//超时,毫秒 + .execute().body(); + System.out.println("返回参数"+result); + if(StrUtil.isNotEmpty(result)){ + JSONObject obj = JSON.parseObject( analytic(result)); + JSONObject data = obj.getJSONObject("data"); + return data.getString("access_token"); + } + return null; + } + public static String analytic(String parm){ + JSONObject main = JSON.parseObject(parm); + return main.getString("attribute"); + } +} diff --git a/fw-bip/src/main/resources/lib/DataApiSdk-jar-with-dependencies.jar b/fw-bip/src/main/resources/lib/DataApiSdk-jar-with-dependencies.jar new file mode 100644 index 00000000..85b98bf5 Binary files /dev/null and b/fw-bip/src/main/resources/lib/DataApiSdk-jar-with-dependencies.jar differ diff --git a/fw-bip/src/main/resources/lib/bcprov-jdk15on-1.57.jar b/fw-bip/src/main/resources/lib/bcprov-jdk15on-1.57.jar new file mode 100644 index 00000000..5a10986b Binary files /dev/null and b/fw-bip/src/main/resources/lib/bcprov-jdk15on-1.57.jar differ diff --git a/fw-bip/src/main/resources/lib/bcprov-jdk15on-1.70.jar b/fw-bip/src/main/resources/lib/bcprov-jdk15on-1.70.jar new file mode 100644 index 00000000..0e4198e5 Binary files /dev/null and b/fw-bip/src/main/resources/lib/bcprov-jdk15on-1.70.jar differ diff --git a/fw-bip/src/main/resources/lib/openBasicSDK-2.1.230630.jar b/fw-bip/src/main/resources/lib/openBasicSDK-2.1.230630.jar new file mode 100644 index 00000000..e7e5ce1b Binary files /dev/null and b/fw-bip/src/main/resources/lib/openBasicSDK-2.1.230630.jar differ diff --git a/fw-bip/src/main/resources/lib/pubbaseapp_nccloud_rtLevel-1.jar b/fw-bip/src/main/resources/lib/pubbaseapp_nccloud_rtLevel-1.jar new file mode 100644 index 00000000..78aedbcf Binary files /dev/null and b/fw-bip/src/main/resources/lib/pubbaseapp_nccloud_rtLevel-1.jar differ diff --git a/fw-bip/src/main/resources/lib/yonyoulog.jar b/fw-bip/src/main/resources/lib/yonyoulog.jar new file mode 100644 index 00000000..06a4fa84 Binary files /dev/null and b/fw-bip/src/main/resources/lib/yonyoulog.jar differ diff --git a/fw-bip/src/main/webapp/WEB-INF/lib/DataApiSdk-jar-with-dependencies.jar b/fw-bip/src/main/webapp/WEB-INF/lib/DataApiSdk-jar-with-dependencies.jar new file mode 100644 index 00000000..85b98bf5 Binary files /dev/null and b/fw-bip/src/main/webapp/WEB-INF/lib/DataApiSdk-jar-with-dependencies.jar differ diff --git a/fw-bip/src/main/webapp/WEB-INF/lib/bcprov-jdk15on-1.57.jar b/fw-bip/src/main/webapp/WEB-INF/lib/bcprov-jdk15on-1.57.jar new file mode 100644 index 00000000..5a10986b Binary files /dev/null and b/fw-bip/src/main/webapp/WEB-INF/lib/bcprov-jdk15on-1.57.jar differ diff --git a/fw-bip/src/main/webapp/WEB-INF/lib/bcprov-jdk15on-1.70.jar b/fw-bip/src/main/webapp/WEB-INF/lib/bcprov-jdk15on-1.70.jar new file mode 100644 index 00000000..0e4198e5 Binary files /dev/null and b/fw-bip/src/main/webapp/WEB-INF/lib/bcprov-jdk15on-1.70.jar differ diff --git a/fw-bip/src/main/webapp/WEB-INF/lib/openBasicSDK-2.1.230630.jar b/fw-bip/src/main/webapp/WEB-INF/lib/openBasicSDK-2.1.230630.jar new file mode 100644 index 00000000..e7e5ce1b Binary files /dev/null and b/fw-bip/src/main/webapp/WEB-INF/lib/openBasicSDK-2.1.230630.jar differ diff --git a/fw-bip/src/main/webapp/WEB-INF/lib/pubbaseapp_nccloud_rtLevel-1.jar b/fw-bip/src/main/webapp/WEB-INF/lib/pubbaseapp_nccloud_rtLevel-1.jar new file mode 100644 index 00000000..78aedbcf Binary files /dev/null and b/fw-bip/src/main/webapp/WEB-INF/lib/pubbaseapp_nccloud_rtLevel-1.jar differ diff --git a/fw-bip/src/main/webapp/WEB-INF/lib/yonyoulog.jar b/fw-bip/src/main/webapp/WEB-INF/lib/yonyoulog.jar new file mode 100644 index 00000000..06a4fa84 Binary files /dev/null and b/fw-bip/src/main/webapp/WEB-INF/lib/yonyoulog.jar differ diff --git a/fw-bip/src/main/webapp/WEB-INF/web.xml b/fw-bip/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 00000000..d80081d1 --- /dev/null +++ b/fw-bip/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> +<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" + version="4.0"> +</web-app> \ No newline at end of file diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/makeinvoice/dao/IMakeInvoiceDao.java b/fw-oa/src/main/java/com/hzya/frame/seeyon/makeinvoice/dao/IMakeInvoiceDao.java new file mode 100644 index 00000000..12c863de --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/makeinvoice/dao/IMakeInvoiceDao.java @@ -0,0 +1,19 @@ +package com.hzya.frame.seeyon.makeinvoice.dao; + +import com.hzya.frame.basedao.dao.IBaseDao; +import com.hzya.frame.seeyon.makeinvoice.entity.MakeInvoiceEntity; + +import java.util.List; + +public interface IMakeInvoiceDao extends IBaseDao<MakeInvoiceEntity, String> { +/** + * + * @content 获取未推送税务的蓝字发票集合 + * @className: Administrator + * @author laborer + * @date 2025-03-20 15:32 + * + */ + + List<MakeInvoiceEntity> getMakeInvoiceByState(MakeInvoiceEntity entity); +} diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/makeinvoice/dao/impl/MakeInvoiceDaoImpl.java b/fw-oa/src/main/java/com/hzya/frame/seeyon/makeinvoice/dao/impl/MakeInvoiceDaoImpl.java new file mode 100644 index 00000000..a2990984 --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/makeinvoice/dao/impl/MakeInvoiceDaoImpl.java @@ -0,0 +1,20 @@ +package com.hzya.frame.seeyon.makeinvoice.dao.impl; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.hzya.frame.basedao.dao.MybatisGenericDao; +import com.hzya.frame.seeyon.makeinvoice.dao.IMakeInvoiceDao; +import com.hzya.frame.seeyon.makeinvoice.entity.MakeInvoiceEntity; +import org.springframework.stereotype.Repository; + +import java.util.HashMap; +import java.util.List; + +@Repository(value = "MakeInvoiceDaoImpl") +public class MakeInvoiceDaoImpl extends MybatisGenericDao<MakeInvoiceEntity,String> implements IMakeInvoiceDao { + + @Override + @DS("#entity.dataSourceCode") + public List<MakeInvoiceEntity> getMakeInvoiceByState(MakeInvoiceEntity entity) { + return (List<MakeInvoiceEntity>) super.selectList("com.hzya.frame.seeyon.makeinvoice.dao.impl.MakeInvoiceDaoImpl.getMakeInvoiceByState",entity); + } +} diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/makeinvoice/entity/MakeInvoiceEntity.java b/fw-oa/src/main/java/com/hzya/frame/seeyon/makeinvoice/entity/MakeInvoiceEntity.java new file mode 100644 index 00000000..46167157 --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/makeinvoice/entity/MakeInvoiceEntity.java @@ -0,0 +1,531 @@ +package com.hzya.frame.seeyon.makeinvoice.entity; + +import com.hzya.frame.web.entity.BaseEntity; + +public class MakeInvoiceEntity extends BaseEntity { + + private String sellerTaxNo;//企业纳税人识别号,建议传 + private String templateId;//模版ID,固定值: 测试环境: 生产环境:" + private String businessNo;//业务单号 (40长度) + private String superiorBusinessNo;//上级业务单号,后续接口创建红字发票申请时,可根据此字段查找该单号下的已开发票。可传:销售单号等,或可与业务单号保持一致 + private String buyerName;//购买方名称,收购发票会以在开票企业在云帐房内维护的信息覆盖该属性 + private String buyerTaxNo;//购买方纳税人识别号,收购发票时与企业编码二选一必传 + private String buyerAddrPhone;//购买方地址、电话,收购发票会以在开票企业在云帐房内维护的信息覆盖该属性 + private String buyerBankAccount;//购买方开户行及账号,收购发票会以在开票企业在云帐房内维护的信息覆盖该属性 + private String applyPerson;//申请人,为空时,平台将记录申请人为“系统自动” + private String applyEmailNotice;//是否邮件通知申请人,按平台内申请人邮箱发送示例值:0可选值:1 是0 否 + private String buyerEmailNotice;//是否邮件通知购买方,按平台内购买方邮箱发送示例值:0可选值:1 是0 否 + private String workcode;// 申请人工号 + private String otherEmail;//其他发票接收邮箱,可支持最多10个邮箱,邮箱间以英文字符;分隔 + private String buyerContact;//购买方发票邮寄接收联系人名称 + private String buyerMobile;//购买方发票邮寄接收手机号 + private String buyerRecvAddress;//购买方发票邮寄接收地址 + private String applicationRemark;//申请单其他说明 + private String attachments;//附件,文件Url地址列表 + private String notifyUrl;//回调通知地址【必须为外网可以调通的地址】 + private String specialInvoiceMark;//特殊票种标识 00非特殊票种 01农产品销售 02农产品收购 03 建筑服务 04 货物运输服务 05 不动产销售服务 06不动产经营租赁服务 14机动车" + private String sellerName;//销售方名称,收购类发票必填 ,非收购发票会以在开票企业在云帐房内维护的信息覆盖该属性 + private String sellerAddrPhone;//销售方地址、电话,非收购发票会以在开票企业在云帐房内维护的信息覆盖该属性 + private String sellerBankAccount;//销售方银行账号,非收购发票会以在开票企业在云帐房内维护的信息覆盖该属性 + private String extFieldJSONObject;//自定义字段,具体传参见示例 + private String extendFields;//自定义扩展字段.最多支持6个文本类型和4个日期类型,日期格式为yyyy-MM-dd.其中的key为用户自行配置(集团视角-应用设置-扩展字段配置) + private String applicationForm;//申请单信息 + private String invoiceType;//发票种类示例值:0可选值:0 增值税普通发票10 增值税专用发票2 增值税电子普通发票13增值税电子专用发票 21电子发票(增值税专用发票) 22电子发票(普通发票) + private String isPerson;//是否自然人 1是 默认为否 + private String levyTaxType;//征税方式,差额征税时,一个开票申请中只可有一张发票示例值:0 可选值:0 普通征税2 差额征税(差额开具)3 差额征税(全额开具) + private String deduction;//扣除额,差额征税时必填 + private String remark;//发票备注,换行使用\n隔开230字节(115个纯汉字) + private String detailList;//开票明细 + private String itemNo;//明细行编号,为空时,平台将自动生成一个唯一编号 + private String itemName;//商品名称 + private String taxCateCode;//税收分类编码,19位 + private String spec;//规格型号/(车辆识别代号/车架号码) + private String unit;//单位 + private String quantity;//数量示例值:200 (特殊票种为机动车时必填,且车架识别代号/车架号码不为空时,数值必须为正整数) + private String unitPrice;//单价示例值:100.23(特殊票种为机动车时必填) + private String price;//金额示例值:100.23 + private String taxRate;//税率示例值:0.03 + private String zeroFlag;//零税率标识,如果税率为0,必填示例值:1 可选值: 1:免税2:不征收3:普通零税率 + private String tax;//税额示例值:100.23 + private String includeTaxTag;//含税标识,为1时,则单价和金额为不含税单价及不含税金额示例值:0 可选值:0 含税1 不含税 + private String detailType;//明细行性质示例值:0 可选值: 0 正常行1 折扣行2 被折扣行 如果是折扣行,只开票明细只接受金额,并且金额不能超过被折扣行 + private String enjoyPreferentialFlag;//是否享受优惠 示例值:0 可选值: 0 否 1是 + private String preferentialPolicyType;//优惠政策类型(是否享受优惠为是时必传)传递 code 示例:100 100-简易征收 107-按3%简易征收, 108-按5%简易征收, 109-按5%简易征收减按1.5%计征" + private String specialIndustryDTO;//特殊票种信息-建筑服务 + private String place;//地址:建筑服务发生地,不动产地址。“-”分割 示例:江苏省-南京市-雨花台区 北京市-海淀区" + private String placeOfDetail;//详细地址:建筑服务发生地详细地址,不动产详细地址 + private String constructionProjectName;//建筑项目名称 + private String kqysssxbgglbm;//跨区域涉税事项报验管理編号 + private String productNo;//土地增值税项目编号 + private String crossDistinctCityFlag;//跨地(市)标志:是,否 + + + private String certificateOfTitle;//产权证书/不动产权证号 + private String areaUnit;//面积单位: 平方千米 平方米 孔公里 公顷 亩 h㎡ k㎡ ㎡" + private String startDate;//租赁开始,格式yyyy-MM-dd + private String endDate;//租赁结束,格式yyyy-MM-dd + + public String getSellerTaxNo() { + return sellerTaxNo; + } + + public void setSellerTaxNo(String sellerTaxNo) { + this.sellerTaxNo = sellerTaxNo; + } + + public String getTemplateId() { + return templateId; + } + + public void setTemplateId(String templateId) { + this.templateId = templateId; + } + + public String getBusinessNo() { + return businessNo; + } + + public void setBusinessNo(String businessNo) { + this.businessNo = businessNo; + } + + public String getSuperiorBusinessNo() { + return superiorBusinessNo; + } + + public void setSuperiorBusinessNo(String superiorBusinessNo) { + this.superiorBusinessNo = superiorBusinessNo; + } + + public String getBuyerName() { + return buyerName; + } + + public void setBuyerName(String buyerName) { + this.buyerName = buyerName; + } + + public String getBuyerTaxNo() { + return buyerTaxNo; + } + + public void setBuyerTaxNo(String buyerTaxNo) { + this.buyerTaxNo = buyerTaxNo; + } + + public String getBuyerAddrPhone() { + return buyerAddrPhone; + } + + public void setBuyerAddrPhone(String buyerAddrPhone) { + this.buyerAddrPhone = buyerAddrPhone; + } + + public String getBuyerBankAccount() { + return buyerBankAccount; + } + + public void setBuyerBankAccount(String buyerBankAccount) { + this.buyerBankAccount = buyerBankAccount; + } + + public String getApplyPerson() { + return applyPerson; + } + + public void setApplyPerson(String applyPerson) { + this.applyPerson = applyPerson; + } + + public String getApplyEmailNotice() { + return applyEmailNotice; + } + + public void setApplyEmailNotice(String applyEmailNotice) { + this.applyEmailNotice = applyEmailNotice; + } + + public String getBuyerEmailNotice() { + return buyerEmailNotice; + } + + public void setBuyerEmailNotice(String buyerEmailNotice) { + this.buyerEmailNotice = buyerEmailNotice; + } + + public String getWorkcode() { + return workcode; + } + + public void setWorkcode(String workcode) { + this.workcode = workcode; + } + + public String getOtherEmail() { + return otherEmail; + } + + public void setOtherEmail(String otherEmail) { + this.otherEmail = otherEmail; + } + + public String getBuyerContact() { + return buyerContact; + } + + public void setBuyerContact(String buyerContact) { + this.buyerContact = buyerContact; + } + + public String getBuyerMobile() { + return buyerMobile; + } + + public void setBuyerMobile(String buyerMobile) { + this.buyerMobile = buyerMobile; + } + + public String getBuyerRecvAddress() { + return buyerRecvAddress; + } + + public void setBuyerRecvAddress(String buyerRecvAddress) { + this.buyerRecvAddress = buyerRecvAddress; + } + + public String getApplicationRemark() { + return applicationRemark; + } + + public void setApplicationRemark(String applicationRemark) { + this.applicationRemark = applicationRemark; + } + + public String getAttachments() { + return attachments; + } + + public void setAttachments(String attachments) { + this.attachments = attachments; + } + + public String getNotifyUrl() { + return notifyUrl; + } + + public void setNotifyUrl(String notifyUrl) { + this.notifyUrl = notifyUrl; + } + + public String getSpecialInvoiceMark() { + return specialInvoiceMark; + } + + public void setSpecialInvoiceMark(String specialInvoiceMark) { + this.specialInvoiceMark = specialInvoiceMark; + } + + public String getSellerName() { + return sellerName; + } + + public void setSellerName(String sellerName) { + this.sellerName = sellerName; + } + + public String getSellerAddrPhone() { + return sellerAddrPhone; + } + + public void setSellerAddrPhone(String sellerAddrPhone) { + this.sellerAddrPhone = sellerAddrPhone; + } + + public String getSellerBankAccount() { + return sellerBankAccount; + } + + public void setSellerBankAccount(String sellerBankAccount) { + this.sellerBankAccount = sellerBankAccount; + } + + public String getExtFieldJSONObject() { + return extFieldJSONObject; + } + + public void setExtFieldJSONObject(String extFieldJSONObject) { + this.extFieldJSONObject = extFieldJSONObject; + } + + public String getExtendFields() { + return extendFields; + } + + public void setExtendFields(String extendFields) { + this.extendFields = extendFields; + } + + public String getApplicationForm() { + return applicationForm; + } + + public void setApplicationForm(String applicationForm) { + this.applicationForm = applicationForm; + } + + public String getInvoiceType() { + return invoiceType; + } + + public void setInvoiceType(String invoiceType) { + this.invoiceType = invoiceType; + } + + public String getIsPerson() { + return isPerson; + } + + public void setIsPerson(String isPerson) { + this.isPerson = isPerson; + } + + public String getLevyTaxType() { + return levyTaxType; + } + + public void setLevyTaxType(String levyTaxType) { + this.levyTaxType = levyTaxType; + } + + public String getDeduction() { + return deduction; + } + + public void setDeduction(String deduction) { + this.deduction = deduction; + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark; + } + + public String getDetailList() { + return detailList; + } + + public void setDetailList(String detailList) { + this.detailList = detailList; + } + + public String getItemNo() { + return itemNo; + } + + public void setItemNo(String itemNo) { + this.itemNo = itemNo; + } + + public String getItemName() { + return itemName; + } + + public void setItemName(String itemName) { + this.itemName = itemName; + } + + public String getTaxCateCode() { + return taxCateCode; + } + + public void setTaxCateCode(String taxCateCode) { + this.taxCateCode = taxCateCode; + } + + public String getSpec() { + return spec; + } + + public void setSpec(String spec) { + this.spec = spec; + } + + public String getUnit() { + return unit; + } + + public void setUnit(String unit) { + this.unit = unit; + } + + public String getQuantity() { + return quantity; + } + + public void setQuantity(String quantity) { + this.quantity = quantity; + } + + public String getUnitPrice() { + return unitPrice; + } + + public void setUnitPrice(String unitPrice) { + this.unitPrice = unitPrice; + } + + public String getPrice() { + return price; + } + + public void setPrice(String price) { + this.price = price; + } + + public String getTaxRate() { + return taxRate; + } + + public void setTaxRate(String taxRate) { + this.taxRate = taxRate; + } + + public String getZeroFlag() { + return zeroFlag; + } + + public void setZeroFlag(String zeroFlag) { + this.zeroFlag = zeroFlag; + } + + public String getTax() { + return tax; + } + + public void setTax(String tax) { + this.tax = tax; + } + + public String getIncludeTaxTag() { + return includeTaxTag; + } + + public void setIncludeTaxTag(String includeTaxTag) { + this.includeTaxTag = includeTaxTag; + } + + public String getDetailType() { + return detailType; + } + + public void setDetailType(String detailType) { + this.detailType = detailType; + } + + public String getEnjoyPreferentialFlag() { + return enjoyPreferentialFlag; + } + + public void setEnjoyPreferentialFlag(String enjoyPreferentialFlag) { + this.enjoyPreferentialFlag = enjoyPreferentialFlag; + } + + public String getPreferentialPolicyType() { + return preferentialPolicyType; + } + + public void setPreferentialPolicyType(String preferentialPolicyType) { + this.preferentialPolicyType = preferentialPolicyType; + } + + public String getSpecialIndustryDTO() { + return specialIndustryDTO; + } + + public void setSpecialIndustryDTO(String specialIndustryDTO) { + this.specialIndustryDTO = specialIndustryDTO; + } + + public String getPlace() { + return place; + } + + public void setPlace(String place) { + this.place = place; + } + + public String getPlaceOfDetail() { + return placeOfDetail; + } + + public void setPlaceOfDetail(String placeOfDetail) { + this.placeOfDetail = placeOfDetail; + } + + public String getConstructionProjectName() { + return constructionProjectName; + } + + public void setConstructionProjectName(String constructionProjectName) { + this.constructionProjectName = constructionProjectName; + } + + public String getKqysssxbgglbm() { + return kqysssxbgglbm; + } + + public void setKqysssxbgglbm(String kqysssxbgglbm) { + this.kqysssxbgglbm = kqysssxbgglbm; + } + + public String getProductNo() { + return productNo; + } + + public void setProductNo(String productNo) { + this.productNo = productNo; + } + + public String getCrossDistinctCityFlag() { + return crossDistinctCityFlag; + } + + public void setCrossDistinctCityFlag(String crossDistinctCityFlag) { + this.crossDistinctCityFlag = crossDistinctCityFlag; + } + + public String getCertificateOfTitle() { + return certificateOfTitle; + } + + public void setCertificateOfTitle(String certificateOfTitle) { + this.certificateOfTitle = certificateOfTitle; + } + + public String getAreaUnit() { + return areaUnit; + } + + public void setAreaUnit(String areaUnit) { + this.areaUnit = areaUnit; + } + + public String getStartDate() { + return startDate; + } + + public void setStartDate(String startDate) { + this.startDate = startDate; + } + + public String getEndDate() { + return endDate; + } + + public void setEndDate(String endDate) { + this.endDate = endDate; + } +} diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/makeinvoice/entity/MakeInvoiceEntity.xml b/fw-oa/src/main/java/com/hzya/frame/seeyon/makeinvoice/entity/MakeInvoiceEntity.xml new file mode 100644 index 00000000..68fe74db --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/makeinvoice/entity/MakeInvoiceEntity.xml @@ -0,0 +1,70 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.hzya.frame.seeyon.makeinvoice.dao.impl.MakeInvoiceDaoImpl"> + <resultMap id="get-MakeInvoiceEntity-result" type="com.hzya.frame.seeyon.makeinvoice.entity.MakeInvoiceEntity"> + <result property="sourceFlowNumber" column="sourceFlowNumber" /> + + + </resultMap> + + <sql id="MakeInvoiceEntity_Base_Column_List"> + id + + </sql> + + + + <select id="getMakeInvoiceByState" resultMap="get-MakeInvoiceEntity-result" parameterType="com.hzya.frame.seeyon.makeinvoice.entity.MakeInvoiceEntity"> + select + main.id as id, + field0163 as sellerTaxNo,-- 销方税号 + '等待客户提供' as templateId, -- 模版ID + field0117 as businessNo,-- 申请单单号 + field0106 as buyerName,-- 客户名称 + field0105 as buyerTaxNo,-- 客户税号 + field0100 + ' ' + field0101 as buyerAddrPhone,-- 地址和电话中间用空格隔开 + field0103 + ' ' + field0102 as buyerBankAccount,-- 开户行名称和开户行银行账户中间用空格隔开 + field0115 as applyPerson,-- 制单人 + 0 as applyEmailNotice,-- 是否邮件通知申请人 + 0 as buyerEmailNotice,-- 是否邮件通知购买方 + field0111 as otherEmail,-- 收件人邮箱 + field0126 as buyerRecvAddress,-- 邮寄地址 + '00' as specialInvoiceMark ,-- 临时默认00 后续确认 field0167建筑服务传03, 不动产租赁传06, 其他传00 + field0108 as sellerName, -- 销售方名称 + field0109 as invoiceType,-- 专票:21 普票:22 + '否' as isPerson, -- 是否自然人 + 0 as levyTaxType,-- 征税方式 + field0090 as remark,-- 备注 + field0080 as itemName,-- 上网电费 + '1100101010600000000' as taxCateCode,-- 税收分类编码 + field0083 as spec,-- 规格型号 + field0084 as quantity,-- 电量 + field0168 as unitPrice,-- 单价(不含税) + field0086 as price,-- 金额(不含税) + field0118 as taxRate,-- 默认0.13 + field0169 as tax,-- 税额 + field0169 as includeTaxTag,-- 税额 + 1 as detailType,-- 含税标识 + 0 as detailType,-- 明细行性质 + 0 as enjoyPreferentialFlag,-- 是否享受优惠 + field0167 + from formmain_0331 main + left join formson_0332 body on main.id = body.formmain_id + left join COL_SUMMARY summary on main.id = summary.form_recordid + where summary.state = '3' + and field0154 ='-8073674727882144390' -- 蓝字发票条件 是否红冲为是 + and field0206 is null + </select> + <select id="getMakeInvoiceByFormson_0700" resultMap="get-MakeInvoiceEntity-result" parameterType="com.hzya.frame.seeyon.makeinvoice.entity.MakeInvoiceEntity"> + + </select> + <select id="getMakeInvoiceByFormson_0701" resultMap="get-MakeInvoiceEntity-result" parameterType="com.hzya.frame.seeyon.makeinvoice.entity.MakeInvoiceEntity"> + + </select> + <!--通过主键修改方法--> + <update id="updatePushStatus" parameterType = "com.hzya.frame.seeyon.makeinvoice.entity.MakeInvoiceEntity" > + update ${tabName} set ${pushStatusField} =#{pushStatus} where id=#{dataId} + </update> + +</mapper> + diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/makeinvoice/service/IMakeInvoiceService.java b/fw-oa/src/main/java/com/hzya/frame/seeyon/makeinvoice/service/IMakeInvoiceService.java new file mode 100644 index 00000000..981808af --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/makeinvoice/service/IMakeInvoiceService.java @@ -0,0 +1,19 @@ +package com.hzya.frame.seeyon.makeinvoice.service; + +import com.alibaba.fastjson.JSONObject; +import com.hzya.frame.basedao.service.IBaseService; +import com.hzya.frame.seeyon.makeinvoice.entity.MakeInvoiceEntity; +import com.hzya.frame.web.entity.JsonResultEntity; + +public interface IMakeInvoiceService extends IBaseService<MakeInvoiceEntity,String> { +/** + * + * @content 推送蓝字发票申请单申请到税务平台 + * @className: Administrator + * @author laborer + * @date 2025-03-20 15:26 + * + */ + +JsonResultEntity sendMakeInvoiceSw(JSONObject requestJson); +} diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/makeinvoice/service/impl/MakeInvoiceServiceImpl.java b/fw-oa/src/main/java/com/hzya/frame/seeyon/makeinvoice/service/impl/MakeInvoiceServiceImpl.java new file mode 100644 index 00000000..5c987fe8 --- /dev/null +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/makeinvoice/service/impl/MakeInvoiceServiceImpl.java @@ -0,0 +1,27 @@ +package com.hzya.frame.seeyon.makeinvoice.service.impl; + +import com.alibaba.fastjson.JSONObject; +import com.hzya.frame.basedao.service.impl.BaseService; +import com.hzya.frame.seeyon.makeinvoice.dao.IMakeInvoiceDao; +import com.hzya.frame.seeyon.makeinvoice.entity.MakeInvoiceEntity; +import com.hzya.frame.seeyon.makeinvoice.service.IMakeInvoiceService; +import com.hzya.frame.web.entity.BaseResult; +import com.hzya.frame.web.entity.JsonResultEntity; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service("MakeInvoiceServiceImpl") +public class MakeInvoiceServiceImpl extends BaseService<MakeInvoiceEntity, String> implements IMakeInvoiceService { + +@Autowired +private IMakeInvoiceDao makeInvoiceDao; + @Override + public JsonResultEntity sendMakeInvoiceSw(JSONObject requestJson) { + MakeInvoiceEntity makeInvoice = new MakeInvoiceEntity(); + makeInvoice.setDataSourceCode("HT_OA"); + List<MakeInvoiceEntity> makeInvoiceEntityList = makeInvoiceDao.getMakeInvoiceByState(makeInvoice); + return BaseResult.getSuccessMessageEntity("操作成功"); + } +} diff --git a/pom.xml b/pom.xml index 2d3edc15..5b4fdf24 100644 --- a/pom.xml +++ b/pom.xml @@ -19,6 +19,17 @@ <!-- <module>fw-u8c</module>--> <!-- <module>fw-u9c</module>--> <!-- <module>fw-weixin</module>--> + <module>fw-bip</module> +<!-- <module>fw-cbs</module>--> +<!-- <module>fw-dd</module>--> +<!-- <module>fw-grpU8</module>--> +<!-- <module>fw-nc</module>--> +<!-- <module>fw-ncc</module>--> +<!-- <module>fw-ningbobank</module>--> +<!-- <module>fw-oa</module>--> +<!-- <module>fw-u8</module>--> +<!-- <module>fw-u8c</module>--> +<!-- <module>fw-u9c</module>--> </modules> <groupId>com.hzya.frame</groupId> <artifactId>kangarooDataCenterV3</artifactId> @@ -114,11 +125,6 @@ <artifactId>httpclient</artifactId> <version>${httpclient.version}</version> </dependency> - <dependency> - <groupId>org.apache.httpcomponents</groupId> - <artifactId>httpmime</artifactId> - <version>4.5.13</version> - </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-cache</artifactId> @@ -411,16 +417,6 @@ <artifactId>alibaba-dingtalk-service-sdk</artifactId> <version>2.0.0</version> </dependency> - <dependency> - <groupId>commons-net</groupId> - <artifactId>commons-net</artifactId> - <version>3.8.0</version> <!-- 这里的版本号可根据实际情况修改 --> - </dependency> - <dependency> - <groupId>com.jcraft</groupId> - <artifactId>jsch</artifactId> - <version>0.1.53</version> - </dependency> </dependencies> <build> @@ -471,33 +467,33 @@ <artifactId>maven-war-plugin</artifactId> <configuration> <webResources> -<!-- <resource>--> -<!-- <directory>${basedir}/../base-service/src/main/webapp/WEB-INF/lib</directory>--> -<!-- <targetPath>WEB-INF/lib/</targetPath>--> -<!-- <filtering>false</filtering>--> -<!-- <includes>--> -<!-- <!– 匹配所有jar包 –>--> -<!-- <include>**/*.jar</include>--> -<!-- </includes>--> -<!-- </resource>--> -<!-- <resource>--> -<!-- <directory>${basedir}/../fw-bip/src/main/webapp/WEB-INF/lib</directory>--> -<!-- <targetPath>WEB-INF/lib/</targetPath>--> -<!-- <filtering>false</filtering>--> -<!-- <includes>--> -<!-- <!– 匹配所有jar包 –>--> -<!-- <include>**/*.jar</include>--> -<!-- </includes>--> -<!-- </resource>--> -<!-- <resource>--> -<!-- <directory>${basedir}/../fw-ningbobank/src/main/webapp/WEB-INF/lib</directory>--> -<!-- <targetPath>WEB-INF/lib/</targetPath>--> -<!-- <filtering>false</filtering>--> -<!-- <includes>--> -<!-- <!– 匹配所有jar包 –>--> -<!-- <include>**/*.jar</include>--> -<!-- </includes>--> -<!-- </resource>--> + <resource> + <directory>${basedir}/../base-service/src/main/webapp/WEB-INF/lib</directory> + <targetPath>WEB-INF/lib/</targetPath> + <filtering>false</filtering> + <includes> + <!-- 匹配所有jar包 --> + <include>**/*.jar</include> + </includes> + </resource> + <resource> + <directory>${basedir}/../fw-bip/src/main/webapp/WEB-INF/lib</directory> + <targetPath>WEB-INF/lib/</targetPath> + <filtering>false</filtering> + <includes> + <!-- 匹配所有jar包 --> + <include>**/*.jar</include> + </includes> + </resource> + <resource> + <directory>${basedir}/../fw-ningbobank/src/main/webapp/WEB-INF/lib</directory> + <targetPath>WEB-INF/lib/</targetPath> + <filtering>false</filtering> + <includes> + <!-- 匹配所有jar包 --> + <include>**/*.jar</include> + </includes> + </resource> </webResources> </configuration> </plugin>