diff --git a/base-buildpackage/pom.xml b/base-buildpackage/pom.xml index a745746a..c9143ecf 100644 --- a/base-buildpackage/pom.xml +++ b/base-buildpackage/pom.xml @@ -43,6 +43,12 @@ httest + + dev + + dev + + xel diff --git a/base-buildpackage/src/main/java/com/hzya/frame/plugin/ht/plugin/InvoiceDistributePluginInitializer.java b/base-buildpackage/src/main/java/com/hzya/frame/plugin/ht/plugin/InvoiceDistributePluginInitializer.java index 14fc3fe7..af9593bc 100644 --- a/base-buildpackage/src/main/java/com/hzya/frame/plugin/ht/plugin/InvoiceDistributePluginInitializer.java +++ b/base-buildpackage/src/main/java/com/hzya/frame/plugin/ht/plugin/InvoiceDistributePluginInitializer.java @@ -1092,26 +1092,6 @@ public class InvoiceDistributePluginInitializer extends PluginBaseEntity { headers.putAll(header); } if (SysEnum.NEED_LOGIN.getValue().equals(apiEntity.getNeedLogin())) { - /* logger.info("=========正常开票申请单申请数据新增开始执行登录接口=============="); - //找到登陆接口 - SysApplicationApiEntity loginApi = sysApplicationApiDao.get(apiEntity.getAuthenticationPort()); - if (null == loginApi) { - saveMdmModuleSendLogEntity(mainCode,mdmModuleDistributeEntities.get(i1).getId(),"2","发送错误,认证接口不存在",mainDb,objects.get(i).getString("id"),sysApplicationEntity.getName(),sysApplicationEntity.getId(),apiEntity.getApiName(),apiEntity.getId(),doObjects.get(i).toJSONString(),"1"); - continue; - } - String rzquerys = getQuery(loginApi,null,null); - Map headersa = new HashMap<>(); - headersa.put("publicKey", "ZJYAWb7lhAUTYqekPkU+uHJv1/ObJxb7dT7sD8HPRDGAgyhCe7eDIk+3zDUT+v578prj"); - headersa.put("secretKey", "fviZnLBsQUAGF8w8FSOdJi7XlIm/XAZclMxRagDLfTyJFlvnIBF3w66Hrpfzs8cYj3JzOP8MtA1LSGvL+2BWG8c/o7DKi92S4mr3zcGearA="); - headersa.put("appId", sysApplicationEntity.getAppId().toString()); - headersa.put("apiCode", loginApi.getApiCode().toString()); - Map rzheaders = getHeaders(loginApi,headersa,null); - String rzbodys = getBodys(loginApi,null,null); - JsonResultEntity rzjsonResultEntity = sendData(loginApi,rzheaders,rzbodys,rzquerys); - if (!rzjsonResultEntity.isFlag()) { - saveMdmModuleSendLogEntity(mainCode,mdmModuleDistributeEntities.get(i1).getId(),"2","发送错误,认证接口错误",mainDb,objects.get(i).getString("id"),sysApplicationEntity.getName(),sysApplicationEntity.getId(),apiEntity.getApiName(),apiEntity.getId(),doObjects.get(i).toJSONString(),"1"); - continue; - }*/ JSONObject jsonObject=new JSONObject(); jsonObject.put("accessKey","6X3B526P5HqE6ums"); jsonObject.put("accessSecret","34e5fc32ac894a2ba2ade8c3852c7a0a"); @@ -1168,11 +1148,27 @@ public class InvoiceDistributePluginInitializer extends PluginBaseEntity { mdmModuleDistributeTripartiteEntity.setAppId(sysApplicationEntity.getId()); mdmModuleDistributeTripartiteEntity.setTripartiteId(backJsonResultEntity.getString("tripartiteId")); mdmModuleDistributeTripartiteDao.save(mdmModuleDistributeTripartiteEntity); + //修改下发状态 + logger.info("===开票申请单申请正常下发时候完毕更新新增状态为1======="); + Map updateMap = new HashMap<>(); + updateMap.put("tableName",mainDb); + //updateMap.put("dataStatus", "Y"); + updateMap.put("addStatus", "1"); + updateMap.put("id", objects.get(i).getString("id")); + mdmModuleDao.updateMdmSTs(updateMap); } } } catch (Exception e) { logger.error("开票申请单申请下发新增返回脚本解析保存三方id错误"+jsonResultEntity.getAttribute()); saveMdmModuleSendLogEntity(mainCode,mdmModuleDistributeEntities.get(i1).getId(),"2","新增返回脚本解析保存三方id错误",mainDb,objects.get(i).getString("id"),sysApplicationEntity.getName(),sysApplicationEntity.getId(),apiEntity.getApiName(),apiEntity.getId(),doObjects.get(i).toJSONString(),"1"); + //修改下发状态 + logger.info("===开票申请单申请正常下发时候完毕更新新增状态为2======="); + Map updateMap = new HashMap<>(); + updateMap.put("tableName",mainDb); + //updateMap.put("dataStatus", "Y"); + updateMap.put("addStatus", "2"); + updateMap.put("id", objects.get(i).getString("id")); + mdmModuleDao.updateMdmSTs(updateMap); continue; } } @@ -1186,12 +1182,20 @@ public class InvoiceDistributePluginInitializer extends PluginBaseEntity { saveMdmModuleSendLogEntity(mainCode,mdmModuleDistributeEntities.get(i1).getId(),"2","转发失败:"+jsonResultEntity.getAttribute(),mainDb,objects.get(i).getString("id"),sysApplicationEntity.getName(),sysApplicationEntity.getId(),apiEntity.getApiName(),apiEntity.getId(),doObjects.get(i).toJSONString(),"1"); objects.get(i).put("sendsanfzt123",false); logger.info("========开票申请单申请数据新增下发完成,日志保存为失败============"); + //修改下发状态 + logger.info("===开票申请单申请正常下发时候完毕更新新增状态为2======="); + Map updateMap = new HashMap<>(); + updateMap.put("tableName",mainDb); + //updateMap.put("dataStatus", "Y"); + updateMap.put("addStatus", "2"); + updateMap.put("id", objects.get(i).getString("id")); + mdmModuleDao.updateMdmSTs(updateMap); continue; } } } - //所有下发发送完成,修改数据状态 + /* //所有下发发送完成,修改数据状态 for (int i = 0; i < objects.size(); i++) { if(objects.get(i).getBoolean("sendsanfzt123")){ Map updateMap = new HashMap<>(); @@ -1201,7 +1205,7 @@ public class InvoiceDistributePluginInitializer extends PluginBaseEntity { updateMap.put("id", objects.get(i).getString("id")); mdmModuleDao.updateMdmSTs(updateMap); } - } + }*/ } private void saveMdmModuleSendLogEntity(Long mdmCode,String distributeId,String dataType,String remark,String dbname,String formmain_id, String target_app, String appId, String target_api,String apiID, String source_data, String option_type) throws Exception { 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 List queryZtzz(IncomeInvoiceEntity entity); List queryByAloneId(IncomeInvoiceEntity jnquerydata); + + List 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 o = (List) super.selectList(getSqlIdPrifx() + "queryByAloneId", entity); return o; } + + @Override + public List queryAccount(IncomeInvoiceEntity jnentity) { + List o = (List) super.selectList(getSqlIdPrifx() + "queryAccountByZq", jnentity); + return o; + } } diff --git a/base-buildpackage/src/main/java/com/hzya/frame/plugin/incomeInvoiceData/entity/IncomeInvoiceEntity.java b/base-buildpackage/src/main/java/com/hzya/frame/plugin/incomeInvoiceData/entity/IncomeInvoiceEntity.java index 27f90943..de25701b 100644 --- a/base-buildpackage/src/main/java/com/hzya/frame/plugin/incomeInvoiceData/entity/IncomeInvoiceEntity.java +++ b/base-buildpackage/src/main/java/com/hzya/frame/plugin/incomeInvoiceData/entity/IncomeInvoiceEntity.java @@ -15,6 +15,8 @@ public class IncomeInvoiceEntity extends BaseEntity { private String field0128; private String field0129; private String field0130; + private String field0138; + private String field0139; private String field0003; @@ -121,5 +123,21 @@ public class IncomeInvoiceEntity extends BaseEntity { public void setField0003(String field0003) { this.field0003 = field0003; } + + public String getField0138() { + return field0138; + } + + public void setField0138(String field0138) { + this.field0138 = field0138; + } + + public String getField0139() { + return field0139; + } + + public void setField0139(String field0139) { + this.field0139 = field0139; + } } 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 4fc5953d..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 @@ -195,6 +195,8 @@ field0128 = #{field0128}, field0129 = #{field0129}, field0130 = #{field0130}, + field0138 = #{field0138}, + field0139 = #{field0139}, where id = #{dataId} @@ -208,6 +210,8 @@ field0128 , field0129 , field0130 , + field0138 , + field0139 , )values( @@ -218,6 +222,8 @@ #{field0128} , #{field0129} , #{field0130} , + #{field0138} , + #{field0139} , ) @@ -256,276 +262,276 @@ SELECT a.ALONE_ID as ALONE_ID, - a.M10004 as aM10004, - a.M10005 as aM10005, - a.M10010 as aM10010, - a.M10012 as aM10012, - a.M10014 as aM10014, - a.M10019 as aM10019, - a.M10020 as aM10020, - a.M10021 as aM10021, - a.M10022 as aM10022, - a.M10025 as aM10025, - a.M10110 as aM10110, - a.M10027 as aM10027, - a.M10112 as aM10112, - a.M10029 as aM10029, - a.M10032 as aM10032, - a.M10033 as aM10033, - a.M10034 as aM10034, - a.M10035 as aM10035, - a.M10040 as aM10040, - a.M10128 as aM10128, - a.M10042 as aM10042, - a.M10130 as aM10130, - a.M10044 as aM10044, - a.M10045 as aM10045, - a.M10046 as aM10046, - a.M10047 as aM10047, - a.M10048 as aM10048, - a.M10049 as aM10049, - a.M10050 as aM10050, - a.M10051 as aM10051, - a.M10052 as aM10052, - a.M10053 as aM10053, - a.M10054 as aM10054, - a.M10055 as aM10055, - a.M10057 as aM10057, - a.M10059 as aM10059, - a.M10060 as aM10060, - a.M10061 as aM10061, - a.M10062 as aM10062, - a.M10063 as aM10063, - a.M10064 as aM10064, - a.M10065 as aM10065, - a.M10066 as aM10066, - a.M10073 as aM10073, - a.M10146 as aM10146, - a.M10075 as aM10075, - a.M10148 as aM10148, - a.M10077 as aM10077, - a.M10078 as aM10078, - a.M10079 as aM10079, - a.M10080 as aM10080, - a.M10081 as aM10081, - a.M10082 as aM10082, - a.M10083 as aM10083, - a.M10084 as aM10084, - a.M10087 as aM10087, - a.M10088 as aM10088, - a.M10091 as aM10091, - a.M10164 as aM10164, - a.M10093 as aM10093, - a.M10166 as aM10166, - a.M10095 as aM10095, - a.M10096 as aM10096, - a.M10097 as aM10097, - a.M10098 as aM10098, - a.M10099 as aM10099, - a.M10100 as aM10100, - a.M10101 as aM10101, - a.M10102 as aM10102, - a.M10105 as aM10105, - a.M10106 as aM10106, - a.M10109 as aM10109, - a.M10182 as aM10182, - a.M10111 as aM10111, - a.M10184 as aM10184, - a.M10113 as aM10113, - a.M10114 as aM10114, - a.M10115 as aM10115, - a.M10116 as aM10116, - a.M10117 as aM10117, - a.M10118 as aM10118, - a.M10119 as aM10119, - a.M10120 as aM10120, - a.M10123 as aM10123, - a.M10124 as aM10124, - a.M10127 as aM10127, - a.M10200 as aM10200, - a.M10129 as aM10129, - a.M10202 as aM10202, - a.M10131 as aM10131, - a.M10132 as aM10132, - a.M10133 as aM10133, - a.M10134 as aM10134, - a.M10135 as aM10135, - a.M10138 as aM10138, - a.M10141 as aM10141, - a.M10142 as aM10142, - a.M10143 as aM10143, - a.M10144 as aM10144, - a.M10145 as aM10145, - a.M10147 as aM10147, - a.M10149 as aM10149, - a.M10150 as aM10150, - a.M10151 as aM10151, - a.M10152 as aM10152, - a.M10153 as aM10153, - a.M10154 as aM10154, - a.M10155 as aM10155, - a.M10156 as aM10156, - a.M10257 as aM10257, - a.M10259 as aM10259, - a.M10159 as aM10159, - a.M10160 as aM10160, - a.M10161 as aM10161, - a.M10162 as aM10162, - a.M10163 as aM10163, - a.M10165 as aM10165, - a.M10167 as aM10167, - a.M10168 as aM10168, - a.M10169 as aM10169, - a.M10170 as aM10170, - a.M10171 as aM10171, - a.M10172 as aM10172, - a.M10173 as aM10173, - a.M10174 as aM10174, - a.M10281 as aM10281, - a.M10283 as aM10283, - a.M10179 as aM10179, - a.M10180 as aM10180, - a.M10181 as aM10181, - a.M10222 as aM10222, - a.M10183 as aM10183, - a.M10224 as aM10224, - a.M10185 as aM10185, - a.M10186 as aM10186, - a.M10187 as aM10187, - a.M10188 as aM10188, - a.M10189 as aM10189, - a.M10190 as aM10190, - a.M10191 as aM10191, - a.M10192 as aM10192, - a.M10295 as aM10295, - a.M10193 as aM10193, - a.M10297 as aM10297, - a.M10194 as aM10194, - a.M10195 as aM10195, - a.M10196 as aM10196, - a.M10197 as aM10197, - a.M10198 as aM10198, - a.M10199 as aM10199, - a.M10201 as aM10201, - a.M10203 as aM10203, - a.M10208 as aM10208, - a.M10209 as aM10209, - a.M10212 as aM10212, - a.M10310 as aM10310, - a.M10214 as aM10214, - a.M10312 as aM10312, - a.M10216 as aM10216, - a.M10217 as aM10217, - a.M10218 as aM10218, - a.M10219 as aM10219, - a.M10220 as aM10220, - a.M10221 as aM10221, - a.M10223 as aM10223, - a.M10225 as aM10225, - a.M10226 as aM10226, - a.M10227 as aM10227, - a.M10230 as aM10230, - a.M10231 as aM10231, - a.M10234 as aM10234, - a.M10325 as aM10325, - a.M10236 as aM10236, - a.M10327 as aM10327, - a.M10238 as aM10238, - a.M10239 as aM10239, - a.M10240 as aM10240, - a.M10241 as aM10241, - a.M10242 as aM10242, - a.M10243 as aM10243, - a.M10244 as aM10244, - a.M10245 as aM10245, - a.M10246 as aM10246, - a.M10247 as aM10247, - a.M10248 as aM10248, - a.M10249 as aM10249, - a.M10250 as aM10250, - a.M10251 as aM10251, - a.M10252 as aM10252, - a.M10253 as aM10253, - a.M10256 as aM10256, - a.M10340 as aM10340, - a.M10258 as aM10258, - a.M10342 as aM10342, - a.M10260 as aM10260, - a.M10265 as aM10265, - a.M10266 as aM10266, - a.M10267 as aM10267, - a.M10268 as aM10268, - a.M10269 as aM10269, - a.M10276 as aM10276, - a.M10277 as aM10277, - a.M10280 as aM10280, - a.M10282 as aM10282, - a.M10284 as aM10284, - a.M10287 as aM10287, - a.M10288 as aM10288, - a.M10289 as aM10289, - a.M10290 as aM10290, - a.M10291 as aM10291, - a.M10292 as aM10292, - a.M10293 as aM10293, - a.M10294 as aM10294, - a.M10011 as aM10011, - a.M10296 as aM10296, - a.M10013 as aM10013, - a.M10298 as aM10298, - a.M10299 as aM10299, - a.M10300 as aM10300, - a.M10301 as aM10301, - a.M10304 as aM10304, - a.M10305 as aM10305, - a.M10306 as aM10306, - a.M10307 as aM10307, - a.M10308 as aM10308, - a.M10309 as aM10309, - a.M10026 as aM10026, - a.M10311 as aM10311, - a.M10028 as aM10028, - a.M10313 as aM10313, - a.M10314 as aM10314, - a.M10315 as aM10315, - a.M10316 as aM10316, - a.M10319 as aM10319, - a.M10320 as aM10320, - a.M10321 as aM10321, - a.M10323 as aM10323, - a.M10326 as aM10326, - a.M10041 as aM10041, - a.M10328 as aM10328, - a.M10043 as aM10043, - a.M10329 as aM10329, - a.M10334 as aM10334, - a.M10335 as aM10335, - a.M10336 as aM10336, - a.M10338 as aM10338, - a.M10337 as aM10337, - a.M10339 as aM10339, - a.M10341 as aM10341, - a.M10056 as aM10056, - a.M10343 as aM10343, - a.M10058 as aM10058, - a.M10344 as aM10344, - a.M10347 as aM10347, - a.M10348 as aM10348, - a.M10349 as aM10349, - a.M10350 as aM10350, - a.M10351 as aM10351, - a.M10352 as aM10352, - a.M10353 as aM10353, - a.M10354 as aM10354, - b.MPQW10U as bMPQW10U, - b.MP81A2Z as bMP81A2Z, - b.MS13DPL as bMS13DPL, - b.M6TFKPL as bM6TFKPL, - c.M10002 as cM10002, - c.M10000 as cM10000, - c.M10004 as cM10004, - c.M10003 as cM10003, - c.M10001 as cM10001 + a.M10004 as AM10004, + a.M10005 as AM10005, + a.M10010 as AM10010, + a.M10012 as AM10012, + a.M10014 as AM10014, + a.M10019 as AM10019, + a.M10020 as AM10020, + a.M10021 as AM10021, + a.M10022 as AM10022, + a.M10025 as AM10025, + a.M10110 as AM10110, + a.M10027 as AM10027, + a.M10112 as AM10112, + a.M10029 as AM10029, + a.M10032 as AM10032, + a.M10033 as AM10033, + a.M10034 as AM10034, + a.M10035 as AM10035, + a.M10040 as AM10040, + a.M10128 as AM10128, + a.M10042 as AM10042, + a.M10130 as AM10130, + a.M10044 as AM10044, + a.M10045 as AM10045, + a.M10046 as AM10046, + a.M10047 as AM10047, + a.M10048 as AM10048, + a.M10049 as AM10049, + a.M10050 as AM10050, + a.M10051 as AM10051, + a.M10052 as AM10052, + a.M10053 as AM10053, + a.M10054 as AM10054, + a.M10055 as AM10055, + a.M10057 as AM10057, + a.M10059 as AM10059, + a.M10060 as AM10060, + a.M10061 as AM10061, + a.M10062 as AM10062, + a.M10063 as AM10063, + a.M10064 as AM10064, + a.M10065 as AM10065, + a.M10066 as AM10066, + a.M10073 as AM10073, + a.M10146 as AM10146, + a.M10075 as AM10075, + a.M10148 as AM10148, + a.M10077 as AM10077, + a.M10078 as AM10078, + a.M10079 as AM10079, + a.M10080 as AM10080, + a.M10081 as AM10081, + a.M10082 as AM10082, + a.M10083 as AM10083, + a.M10084 as AM10084, + a.M10087 as AM10087, + a.M10088 as AM10088, + a.M10091 as AM10091, + a.M10164 as AM10164, + a.M10093 as AM10093, + a.M10166 as AM10166, + a.M10095 as AM10095, + a.M10096 as AM10096, + a.M10097 as AM10097, + a.M10098 as AM10098, + a.M10099 as AM10099, + a.M10100 as AM10100, + a.M10101 as AM10101, + a.M10102 as AM10102, + a.M10105 as AM10105, + a.M10106 as AM10106, + a.M10109 as AM10109, + a.M10182 as AM10182, + a.M10111 as AM10111, + a.M10184 as AM10184, + a.M10113 as AM10113, + a.M10114 as AM10114, + a.M10115 as AM10115, + a.M10116 as AM10116, + a.M10117 as AM10117, + a.M10118 as AM10118, + a.M10119 as AM10119, + a.M10120 as AM10120, + a.M10123 as AM10123, + a.M10124 as AM10124, + a.M10127 as AM10127, + a.M10200 as AM10200, + a.M10129 as AM10129, + a.M10202 as AM10202, + a.M10131 as AM10131, + a.M10132 as AM10132, + a.M10133 as AM10133, + a.M10134 as AM10134, + a.M10135 as AM10135, + a.M10138 as AM10138, + a.M10141 as AM10141, + a.M10142 as AM10142, + a.M10143 as AM10143, + a.M10144 as AM10144, + a.M10145 as AM10145, + a.M10147 as AM10147, + a.M10149 as AM10149, + a.M10150 as AM10150, + a.M10151 as AM10151, + a.M10152 as AM10152, + a.M10153 as AM10153, + a.M10154 as AM10154, + a.M10155 as AM10155, + a.M10156 as AM10156, + a.M10257 as AM10257, + a.M10259 as AM10259, + a.M10159 as AM10159, + a.M10160 as AM10160, + a.M10161 as AM10161, + a.M10162 as AM10162, + a.M10163 as AM10163, + a.M10165 as AM10165, + a.M10167 as AM10167, + a.M10168 as AM10168, + a.M10169 as AM10169, + a.M10170 as AM10170, + a.M10171 as AM10171, + a.M10172 as AM10172, + a.M10173 as AM10173, + a.M10174 as AM10174, + a.M10281 as AM10281, + a.M10283 as AM10283, + a.M10179 as AM10179, + a.M10180 as AM10180, + a.M10181 as AM10181, + a.M10222 as AM10222, + a.M10183 as AM10183, + a.M10224 as AM10224, + a.M10185 as AM10185, + a.M10186 as AM10186, + a.M10187 as AM10187, + a.M10188 as AM10188, + a.M10189 as AM10189, + a.M10190 as AM10190, + a.M10191 as AM10191, + a.M10192 as AM10192, + a.M10295 as AM10295, + a.M10193 as AM10193, + a.M10297 as AM10297, + a.M10194 as AM10194, + a.M10195 as AM10195, + a.M10196 as AM10196, + a.M10197 as AM10197, + a.M10198 as AM10198, + a.M10199 as AM10199, + a.M10201 as AM10201, + a.M10203 as AM10203, + a.M10208 as AM10208, + a.M10209 as AM10209, + a.M10212 as AM10212, + a.M10310 as AM10310, + a.M10214 as AM10214, + a.M10312 as AM10312, + a.M10216 as AM10216, + a.M10217 as AM10217, + a.M10218 as AM10218, + a.M10219 as AM10219, + a.M10220 as AM10220, + a.M10221 as AM10221, + a.M10223 as AM10223, + a.M10225 as AM10225, + a.M10226 as AM10226, + a.M10227 as AM10227, + a.M10230 as AM10230, + a.M10231 as AM10231, + a.M10234 as AM10234, + a.M10325 as AM10325, + a.M10236 as AM10236, + a.M10327 as AM10327, + a.M10238 as AM10238, + a.M10239 as AM10239, + a.M10240 as AM10240, + a.M10241 as AM10241, + a.M10242 as AM10242, + a.M10243 as AM10243, + a.M10244 as AM10244, + a.M10245 as AM10245, + a.M10246 as AM10246, + a.M10247 as AM10247, + a.M10248 as AM10248, + a.M10249 as AM10249, + a.M10250 as AM10250, + a.M10251 as AM10251, + a.M10252 as AM10252, + a.M10253 as AM10253, + a.M10256 as AM10256, + a.M10340 as AM10340, + a.M10258 as AM10258, + a.M10342 as AM10342, + a.M10260 as AM10260, + a.M10265 as AM10265, + a.M10266 as AM10266, + a.M10267 as AM10267, + a.M10268 as AM10268, + a.M10269 as AM10269, + a.M10276 as AM10276, + a.M10277 as AM10277, + a.M10280 as AM10280, + a.M10282 as AM10282, + a.M10284 as AM10284, + a.M10287 as AM10287, + a.M10288 as AM10288, + a.M10289 as AM10289, + a.M10290 as AM10290, + a.M10291 as AM10291, + a.M10292 as AM10292, + a.M10293 as AM10293, + a.M10294 as AM10294, + a.M10011 as AM10011, + a.M10296 as AM10296, + a.M10013 as AM10013, + a.M10298 as AM10298, + a.M10299 as AM10299, + a.M10300 as AM10300, + a.M10301 as AM10301, + a.M10304 as AM10304, + a.M10305 as AM10305, + a.M10306 as AM10306, + a.M10307 as AM10307, + a.M10308 as AM10308, + a.M10309 as AM10309, + a.M10026 as AM10026, + a.M10311 as AM10311, + a.M10028 as AM10028, + a.M10313 as AM10313, + a.M10314 as AM10314, + a.M10315 as AM10315, + a.M10316 as AM10316, + a.M10319 as AM10319, + a.M10320 as AM10320, + a.M10321 as AM10321, + a.M10323 as AM10323, + a.M10326 as AM10326, + a.M10041 as AM10041, + a.M10328 as AM10328, + a.M10043 as AM10043, + a.M10329 as AM10329, + a.M10334 as AM10334, + a.M10335 as AM10335, + a.M10336 as AM10336, + a.M10338 as AM10338, + a.M10337 as AM10337, + a.M10339 as AM10339, + a.M10341 as AM10341, + a.M10056 as AM10056, + a.M10343 as AM10343, + a.M10058 as AM10058, + a.M10344 as AM10344, + a.M10347 as AM10347, + a.M10348 as AM10348, + a.M10349 as AM10349, + a.M10350 as AM10350, + a.M10351 as AM10351, + a.M10352 as AM10352, + a.M10353 as AM10353, + a.M10354 as AM10354, + b.MPQW10U as BMPQW10U, + b.MP81A2Z as BMP81A2Z, + b.MS13DPL as BMS13DPL, + b.M6TFKPL as BM6TFKPL, + c.M10002 as CM10002, + c.M10000 as CM10000, + c.M10004 as CM10004, + c.M10003 as CM10003, + c.M10001 as CM10001 FROM iufo_measure_data_qi0xy5nl a LEFT JOIN iufo_measure_data_v40w9co7 b on a.ALONE_ID = b.ALONE_ID @@ -534,5 +540,183 @@ and a.ALONE_ID = #{aloneId} + + + + + diff --git a/base-buildpackage/src/main/java/com/hzya/frame/plugin/incomeInvoiceData/plugin/FinancialReportPluginInitializer.java b/base-buildpackage/src/main/java/com/hzya/frame/plugin/incomeInvoiceData/plugin/FinancialReportPluginInitializer.java index 81153779..d10e99f8 100644 --- a/base-buildpackage/src/main/java/com/hzya/frame/plugin/incomeInvoiceData/plugin/FinancialReportPluginInitializer.java +++ b/base-buildpackage/src/main/java/com/hzya/frame/plugin/incomeInvoiceData/plugin/FinancialReportPluginInitializer.java @@ -3,6 +3,7 @@ package com.hzya.frame.plugin.incomeInvoiceData.plugin; import com.alibaba.fastjson.JSONObject; import com.hzya.frame.base.PluginBaseEntity; import com.hzya.frame.plugin.incomeInvoiceData.service.IIncomeInvoiceService; +import com.hzya.frame.web.entity.BaseResult; import com.hzya.frame.web.entity.JsonResultEntity; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -53,7 +54,8 @@ public class FinancialReportPluginInitializer extends PluginBaseEntity{ public JsonResultEntity executeBusiness(JSONObject requestJson) { try { logger.info("======开始执行财务信息同步========"); - return incomeInvoiceService.sendFinancialReportPlugin(requestJson); + return BaseResult.getSuccessMessageEntity("数据获取成功"); + //return incomeInvoiceService.sendFinancialReportPlugin(requestJson); }catch (Exception e){ logger.info("======执行财务同步失败:{}========",e.getMessage()); e.printStackTrace(); 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 916c69a3..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 @@ -17,7 +17,6 @@ import com.hzya.frame.uuid.UUIDLong; import com.hzya.frame.uuid.UUIDUtils; import com.hzya.frame.web.entity.BaseResult; import com.hzya.frame.web.entity.JsonResultEntity; -import org.apache.commons.collections.CollectionUtils; import org.apache.http.HttpEntity; import org.apache.http.client.config.RequestConfig; import org.apache.http.client.methods.CloseableHttpResponse; @@ -33,7 +32,9 @@ import org.apache.http.util.EntityUtils; import org.checkerframework.checker.units.qual.A; import org.springframework.beans.factory.annotation.Autowired; import com.hzya.frame.basedao.service.impl.BaseService; +import org.springframework.core.task.TaskExecutor; +import javax.annotation.Resource; import javax.net.ssl.SSLContext; import java.io.IOException; import java.math.BigDecimal; @@ -62,6 +63,9 @@ public class IncomeInvoiceServiceImpl extends BaseService parametersMap = new HashMap<>(); - parametersMap.put("accessKey",accessKey); - parametersMap.put("timestamp",timestamp); - String a = YzfSignUtil.signRequest(parametersMap,accessSecret); - dayabody.put("sign",a); + if(flags) { + Map parametersMap = new HashMap<>(); + parametersMap.put("accessKey",accessKey); + parametersMap.put("timestamp",timestamp); + String a = YzfSignUtil.signRequest(parametersMap,accessSecret); + dayabody.put("sign",a); + } Map headers = new HashMap<>(); headers.put("Content-Type", "application/json; charset=utf-8"); String returndata = sendPost(url, headers, dayabody.toJSONString()); @@ -405,56 +428,6 @@ public class IncomeInvoiceServiceImpl extends BaseService headers) { - SSLContext sslContext = null; - try { - sslContext = new SSLContextBuilder() - .loadTrustMaterial(null, TrustAllStrategy.INSTANCE) - .build(); - } catch (Exception e) { - - } - CloseableHttpClient closeableHttpClient = HttpClients.custom() - .setSSLContext(sslContext) - .setSSLHostnameVerifier(NoopHostnameVerifier.INSTANCE) - .build(); - // HttpClient - HttpGet get = new HttpGet(url); - CloseableHttpResponse response = null; - - RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(60000).build(); - get.setConfig(requestConfig);//设置请求参数【超时时间】 - if (headers != null && headers.size() > 0) { - for (String key : headers.keySet()) { - get.setHeader(key, headers.get(key)); - } - } - StringBuilder body = new StringBuilder(); - - try { - response = closeableHttpClient.execute(get); - HttpEntity entity = response.getEntity(); - body.append(EntityUtils.toString(entity,"UTF-8")); - logger.info("返回结果:" + body); - } catch (Exception e) { - logger.error("请求错误:" + e.getMessage()); - body.append(e.getMessage()); - } finally { - try { - // 关闭响应对象 - if (response != null) { - response.close(); - } - // 关闭响应对象 - if (closeableHttpClient != null) { - closeableHttpClient.close(); - } - } catch (IOException e) { - e.printStackTrace(); - } - } - return body.toString(); - } /** @@ -488,7 +461,9 @@ public class IncomeInvoiceServiceImpl extends BaseService list = incomeInvoiceDao.queryOaZb(incomeInvoiceEntity); if(list != null && list.size() == 1){ incomeInvoiceEntity.setFormmainId(list.get(0).getDataId()); @@ -539,7 +514,9 @@ public class IncomeInvoiceServiceImpl extends BaseService"); stringBuffer.append(""); stringBuffer.append(""); - stringBuffer.append(""); + stringBuffer.append(""); + stringBuffer.append(""); + stringBuffer.append(""); stringBuffer.append(""); stringBuffer.append(""); @@ -631,8 +608,19 @@ public class IncomeInvoiceServiceImpl extends BaseService":""); stringBuffer.append("").append(""); - stringBuffer.append("").append(""); - stringBuffer.append(jsonObject.getString("fpwj") != null?"":""); + stringBuffer.append("").append(""); + //stringBuffer.append(jsonObject.getString("url") != null?"":""); + stringBuffer.append(""); + stringBuffer.append("").append(""); + + stringBuffer.append("").append(""); + //stringBuffer.append(jsonObject.getString("ofdurl") != null?"":""); + stringBuffer.append(""); + stringBuffer.append("").append(""); + + stringBuffer.append("").append(""); + //stringBuffer.append(jsonObject.getString("xmlurl") != null?"":""); + stringBuffer.append(""); stringBuffer.append("").append(""); @@ -695,22 +683,36 @@ public class IncomeInvoiceServiceImpl extends BaseService sendAccountCodeReport(ztbm,cjzq,rwbm));//科目余额 + return BaseResult.getSuccessMessageEntity("数据获取成功"); + } + if(businessDataStr.getString("dataType").equals("2")){//财报 + if(ztbm == null || "".equals(ztbm)){ + return BaseResult.getFailureMessageEntity("账套编码为空"); + } + if(cjzq == null || "".equals(cjzq)){ + return BaseResult.getFailureMessageEntity("采集账期为空"); + } + if(rwbm == null || "".equals(rwbm)){ + return BaseResult.getFailureMessageEntity("任务编码为空"); + } + taskExecutor.execute(() -> sendFinancialReport(ztbm,cjzq,rwbm)); + return BaseResult.getSuccessMessageEntity("数据获取成功"); } - if(businessData.getString("field0007").equals("2")){//财报 - return sendFinancialReport(businessData); - } - if(businessData.getString("field0007").equals("3")){//进项发票 + if(businessDataStr.getString("dataType").equals("3")){//进项发票 return BaseResult.getFailureMessageEntity("数据类型错误"); } - if(businessData.getString("field0007").equals("4")){//销项发票 + if(businessDataStr.getString("dataType").equals("4")){//销项发票 return BaseResult.getFailureMessageEntity("数据类型错误"); } return BaseResult.getSuccessMessageEntity("推送数据成功"); @@ -722,39 +724,77 @@ public class IncomeInvoiceServiceImpl extends BaseService 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 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 + * @Description + * @Date 3:18 下午 2025/4/24 + * @param ztbm 账套编码 + * @param cjzq 采集账期 + * @param rwbm 任务编码 + * @return com.hzya.frame.web.entity.JsonResultEntity + **/ + private JsonResultEntity sendFinancialReport(String ztbm ,String cjzq,String rwbm) { + String access_token = ""; + if(flags){ + access_token = getToken(); + if (access_token == null) { + return BaseResult.getFailureMessageEntity("token获取失败"); + } + } + String url = cbUrl+access_token; - String ztbm = businessData.getString("field0005");//账套编码 - String sh = businessData.getString("field0006");//税号 - String sjlx = businessData.getString("field0007");//数据类型 - String cjzq = businessData.getString("field0008");//采集账期 - String rwbm = businessData.getString("field0009");//任务编码 - if(ztbm == null || "".equals(ztbm)){ - return BaseResult.getSuccessMessageEntity("账套编码为空"); - } - if(cjzq == null || "".equals(cjzq)){ - return BaseResult.getSuccessMessageEntity("采集账期为空"); - } - if(rwbm == null || "".equals(rwbm)){ - return BaseResult.getSuccessMessageEntity("任务编码为空"); - } - - Date date = null; String qncjzq = null; - IncomeInvoiceEntity dyAloneId = null; JSONObject dydata = null; JSONObject qndata = null; @@ -774,7 +814,7 @@ public class IncomeInvoiceServiceImpl extends BaseService jnlist = incomeInvoiceDao.queryZtzz(jnentity); @@ -785,7 +825,7 @@ public class IncomeInvoiceServiceImpl extends BaseService qnlist = incomeInvoiceDao.queryZtzz(qnentity); @@ -797,7 +837,7 @@ public class IncomeInvoiceServiceImpl extends BaseService dydataList = incomeInvoiceDao.queryByAloneId(jnquerydata); if(dydataList != null && dydataList.size() == 1){ @@ -809,7 +849,7 @@ public class IncomeInvoiceServiceImpl extends BaseService qndataList = incomeInvoiceDao.queryByAloneId(qnquerydata); if(qndataList != null && qndataList.size() == 1){ @@ -818,45 +858,167 @@ public class IncomeInvoiceServiceImpl extends BaseService headers = new HashMap<>(); headers.put("Content-Type", "application/json; charset=utf-8"); String returndata = sendPost(url, headers, sendData.toJSONString()); @@ -869,7 +1031,7 @@ public class IncomeInvoiceServiceImpl extends BaseService updateMap = new HashMap<>(); + updateMap.put("tableName",mainDb); + //updateMap.put("dataStatus", "F"); + updateMap.put("updateStatus", "1"); + updateMap.put("id", objects.get(i).getString("id")); + mdmModuleDao.updateMdmSTs(updateMap); continue; }else { //保存日志 saveMdmModuleSendLogEntity(mainCode,mdmModuleDistributeEntities.get(i1).getId(),"2","转发失败:"+jsonResultEntity.getAttribute(),mainDb,objects.get(i).getString("id"),sysApplicationEntity.getName(),sysApplicationEntity.getId(),apiEntity.getApiName(),apiEntity.getId(),doObjects.get(i).toJSONString(),"2"); + Map updateMap = new HashMap<>(); + updateMap.put("tableName",mainDb); + //updateMap.put("dataStatus", "F"); + updateMap.put("updateStatus", "2"); + updateMap.put("id", objects.get(i).getString("id")); + mdmModuleDao.updateMdmSTs(updateMap); continue; } } } - //所有下发发送完成,修改数据状态 + /*//所有下发发送完成,修改数据状态 for (int i = 0; i < objects.size(); i++) { Map updateMap = new HashMap<>(); updateMap.put("tableName",mainDb); @@ -904,7 +918,7 @@ public class ZxBankDistributePluginInitializer extends PluginBaseEntity { updateMap.put("updateStatus", "1"); updateMap.put("id", objects.get(i).getString("id")); mdmModuleDao.updateMdmSTs(updateMap); - } + }*/ } /** @@ -1083,19 +1097,19 @@ public class ZxBankDistributePluginInitializer extends PluginBaseEntity { continue; } JSONObject attritube = JSONObject.parseObject(rzjsonResultEntity.getAttribute().toString()); - logger.info("=======主数据正常新增下发登录返回数据:{}========",attritube.toJSONString()); + logger.info("=======中信司库付款单数据正常新增下发登录返回数据:{}========",attritube.toJSONString()); querys = getQuery(apiEntity,querys,attritube); headers = getHeaders(apiEntity,headers,attritube); bodys = getBodys(apiEntity,bodys,attritube); } //组装数据发送 - logger.info("=========开始执行主业务新增数据下发脚本,第二次=============="); + logger.info("=========开始执行中信司库付款单新增数据下发脚本,第二次=============="); JsonResultEntity jsonResultEntity = sendData(apiEntity,headers,bodys,querys); - logger.info("=====主数据新增下发返回结果为:{}",JSONObject.parseObject(jsonResultEntity.getAttribute().toString()).toJSONString()); + logger.info("=====中信司库付款单新增下发返回结果为:{}",JSONObject.parseObject(jsonResultEntity.getAttribute().toString()).toJSONString()); if(jsonResultEntity.isFlag()){ if (scriptEntity != null && scriptEntity.getId() != null && scriptEntity.getBackScriptData() != null ) { - logger.info("=========开始执行主数据新增返回脚本=============="); + logger.info("=========开始执行中信司库付款单新增返回脚本=============="); JSONObject backScriptJson = new JSONObject(); backScriptJson.put("data", jsonResultEntity.getAttribute()); groovy.put("code", scriptEntity.getScriptCode()+"back"); @@ -1124,30 +1138,54 @@ public class ZxBankDistributePluginInitializer extends PluginBaseEntity { mdmModuleDistributeTripartiteEntity.setAppId(sysApplicationEntity.getId()); mdmModuleDistributeTripartiteEntity.setTripartiteId(backJsonResultEntity.getString("tripartiteId")); mdmModuleDistributeTripartiteDao.save(mdmModuleDistributeTripartiteEntity); + //修改下发状态 + logger.info("===中信司库付款单正常下发时候完毕更新新增状态为1======="); + Map updateMap = new HashMap<>(); + updateMap.put("tableName",mainDb); + //updateMap.put("dataStatus", "Y"); + updateMap.put("addStatus", "1"); + updateMap.put("id", objects.get(i).getString("id")); + mdmModuleDao.updateMdmSTs(updateMap); } } } catch (Exception e) { - logger.error("新增返回脚本解析保存三方id错误"+jsonResultEntity.getAttribute()); + logger.error("中信司库付款单新增返回脚本解析保存三方id错误"+jsonResultEntity.getAttribute()); saveMdmModuleSendLogEntity(mainCode,mdmModuleDistributeEntities.get(i1).getId(),"2","新增返回脚本解析保存三方id错误",mainDb,objects.get(i).getString("id"),sysApplicationEntity.getName(),sysApplicationEntity.getId(),apiEntity.getApiName(),apiEntity.getId(),doObjects.get(i).toJSONString(),"1"); + //修改下发状态 + logger.info("===中信司库付款单正常下发时候完毕更新新增状态为2======="); + Map updateMap = new HashMap<>(); + updateMap.put("tableName",mainDb); + //updateMap.put("dataStatus", "Y"); + updateMap.put("addStatus", "2"); + updateMap.put("id", objects.get(i).getString("id")); + mdmModuleDao.updateMdmSTs(updateMap); continue; } } //保存日志 saveMdmModuleSendLogEntity(mainCode,mdmModuleDistributeEntities.get(i1).getId(),"1","发送成功",mainDb,objects.get(i).getString("id"),sysApplicationEntity.getName(),sysApplicationEntity.getId(),apiEntity.getApiName(),apiEntity.getId(),doObjects.get(i).toJSONString(),"1"); objects.get(i).put("sendsanfzt123",true); - logger.info("========主数据新增下发完成,日志保存为成功============"); + logger.info("========中信司库付款单新增下发完成,日志保存为成功============"); continue; }else { //保存日志 saveMdmModuleSendLogEntity(mainCode,mdmModuleDistributeEntities.get(i1).getId(),"2","转发失败:"+jsonResultEntity.getAttribute(),mainDb,objects.get(i).getString("id"),sysApplicationEntity.getName(),sysApplicationEntity.getId(),apiEntity.getApiName(),apiEntity.getId(),doObjects.get(i).toJSONString(),"1"); objects.get(i).put("sendsanfzt123",false); - logger.info("========主数据新增下发完成,日志保存为失败============"); + logger.info("========中信司库付款单新增下发完成,日志保存为失败============"); + //修改下发状态 + logger.info("===中信司库付款单正常下发时候完毕更新新增状态为2======="); + Map updateMap = new HashMap<>(); + updateMap.put("tableName",mainDb); + //updateMap.put("dataStatus", "Y"); + updateMap.put("addStatus", "2"); + updateMap.put("id", objects.get(i).getString("id")); + mdmModuleDao.updateMdmSTs(updateMap); continue; } } } - //所有下发发送完成,修改数据状态 + /* //所有下发发送完成,修改数据状态 for (int i = 0; i < objects.size(); i++) { if(objects.get(i).getBoolean("sendsanfzt123")){ Map updateMap = new HashMap<>(); @@ -1157,7 +1195,7 @@ public class ZxBankDistributePluginInitializer extends PluginBaseEntity { updateMap.put("id", objects.get(i).getString("id")); mdmModuleDao.updateMdmSTs(updateMap); } - } + }*/ } private void saveMdmModuleSendLogEntity(Long mdmCode,String distributeId,String dataType,String remark,String dbname,String formmain_id, String target_app, String appId, String target_api,String apiID, String source_data, String option_type) throws Exception { diff --git a/base-buildpackage/src/main/resources/application-dev.yml b/base-buildpackage/src/main/resources/application-dev.yml new file mode 100644 index 00000000..4121bb71 --- /dev/null +++ b/base-buildpackage/src/main/resources/application-dev.yml @@ -0,0 +1,42 @@ +#######################dev环境####################### +logging: + #日志级别 指定目录级别 + level: + root: warn + encodings: GBK + file: + # 日志保存路径 + path: /home/webservice/zt/log +spring: + datasource: + dynamic: + datasource: + master: + url: jdbc:mysql://ufidahz.com.cn:9014/businesscenter?serverTimezone=UTC&useUnicode=true&characterEncoding=UTF8&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowLoadLocalInfile=false&autoReconnect=true&failOverReadOnly=false&connectTimeout=30000&socketTimeout=30000&autoReconnectForPools=true + username: root + password: bd993088e8a7c3dc5f44441617f9b4bf + driver-class-name: com.mysql.jdbc.Driver # 3.2.0开始支持SPI可省略此配置 +savefile: + # 文件保存路径 + path: /home/webservice/zt/file +# path: D:\webservice\file +# pluginpath: D:\webservice\plugin + pluginpath: /home/webservice/zt/plugin +# tomcatpath: D:\apache-tomcat-9.0.69\webapps\kangarooDataCenter\WEB-INF\classes\ + tomcatpath: /home/webservice/zt/tomcatV3/webapps/kangarooDataCenterV3/WEB-INF/classes/ +cbs8: + appId: 1P4AGrpz + appSecret: 2c2369ae5dc04382844bbe3a5abf39e1bea9cd3a + url: https://cbs8-openapi-reprd.csuat.cmburl.cn + # 测试用这个 这个是银行给的,和下面的公钥不是一对密钥 + ya_private_key: 83BA7EC821D35F4CB31FF9A51C1EFA520FC52AF828C2337F88E91CF119B07F44 + # 这个私钥到时候上传到cbs,和下面到是同一对 + #ya_private_key: e1eacfdee9b8d4184437d5a2071e17ce31befc3d93395f9f05709ed562e8dc46 + ya_public_key: 044fa399d2223760f17b81b863cb482b009294c4516f8a605dea1475ec09e720eaa98468715e5ad509a592a0b426061551c5a3df236966c23253a7d894eac0dcde + cbs_public_key: 0469146F06BF3B01236E84632441E826 + #电子回单下载临时存放位置 + elec_path: /Users/xiangerlin/Downloads/ +OA: + data_source_code: yc_oa +zt: + url: http://127.0.0.1:9082/kangarooDataCenterV3/entranceController/externalCallInterface 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 @@ base-service ${revision} - - - - - + + com.hzya.frame + fw-bip + ${revision} + 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 @@ + + + + kangarooDataCenterV3 + com.hzya.frame + ${revision} + + 4.0.0 + fw-bip + jar + ${revision} + + + + com.hzya.frame + base-service + ${revision} + + + mysql + mysql-connector-java + ${mysql-connector-java} + + + + com.hzya.bip + pubbaseapp_nccloud_rtLevel + 1 + system + ${basedir}/src/main/webapp/WEB-INF/lib/pubbaseapp_nccloud_rtLevel-1.jar + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + none + execute + true + + + + + repackage + + + + + + + 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 { + + List queryArchivesData(BipArchivesEntity archivesEntity); + List 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 { + + /** + * 查询BIP业务单元 + * @param BipOrgsEntity + * @return + */ + List 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 { + + /** + * 查询BIP业务单元银行账户 + * @param BipOrgsDetailsEntity + * @return + */ + List 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 { + + /** + * 查询BIP供应商 + * @param bipSupplierEntity + * @return + */ + List 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 { + + /** + * 查询BIP供应商明细 + * @param bipSupplierDetailsEntity + * @return + */ + List 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 implements IBipArchivesDao { + + @Override + public List queryArchivesData(BipArchivesEntity entity) { + List o = super.query(getSqlIdPrifx() + "queryArchivesData", entity); + return o; + } @Override + public List queryArchivesDatays(BipArchivesEntity entity) { + List 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 implements IBipOrgsDao { + /** + * 查询BIP业务单元 + * @param BipOrgsEntity + * @return + */ + @DS("oracle91") + @Override + public List 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 implements IBipOrgsDetailsDao { + @DS("oracle91") + @Override + public List 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 implements IBipSupplierDao { + /** + * 查询BIP供应商 + * @param bipSupplierEntity + * @return + */ + @DS("oracle91") + @Override + public List 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 implements IBipSupplierDetailsDao { + @DS("oracle91") + @Override + public List 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("\n"); + stringBuffer.append("" + nullConvert(documentType) + "\n"); + stringBuffer.append("" + nullConvert(erpVoucherNo) + "\n"); + //stringBuffer.append(""+"浙江杭泰数智能源开发有限公司"+"\n"); + stringBuffer.append(""+nullConvert(payerAccName)+"\n"); + //stringBuffer.append("" +"71010122002702903"+ "\n"); + stringBuffer.append("" + nullConvert(payerAccNo) + "\n"); + stringBuffer.append("" + nullConvert(curCode) + "\n"); + stringBuffer.append("" + nullConvert(payeeAccName) + "\n"); + stringBuffer.append("" + nullConvert(payeeAccNo) + "\n"); + stringBuffer.append("" + nullConvert(String.valueOf(amount)) + "\n"); + //stringBuffer.append(""+"301331000029"+"\n"); + stringBuffer.append(""+nullConvert(payeeBankCode)+"\n"); + stringBuffer.append("" + nullConvert(isQuick) + "\n"); + stringBuffer.append("" + nullConvert(isForindividual) + "\n"); + stringBuffer.append("" + nullConvert(payType) + "\n"); + stringBuffer.append("" + nullConvert(purpose) + "\n"); + stringBuffer.append("" + nullConvert(businessType) + "\n"); + stringBuffer.append("" + nullConvert(jsonObjectFormson.getString("debitByCustomer")) + "\n");//借方客商辅助核算编码 + stringBuffer.append("" + nullConvert(payeeAccNo) + "\n");//借方银行账户辅助核算编码 + stringBuffer.append("" + nullConvert(jsonObjectFormson.getString("debitByPersonnel")) + "\n");//借方人员辅助核算编码 + stringBuffer.append("" + nullConvert(jsonObjectFormson.getString("creditByCustomer")) + "\n");//贷方客商辅助核算编码 + stringBuffer.append("" + nullConvert(payerAccNo) + "\n");//贷方银行辅助核算编码 + stringBuffer.append("\n"); + } + } else { + stringBuffer.append("\n"); + stringBuffer.append("" + nullConvert(erpVoucherNo) + ""); + stringBuffer.append("" + nullConvert(purpose) + ""); + stringBuffer.append("" + nullConvert(isForindividual) + ""); + stringBuffer.append("\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="\n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + "\n" + + "\n" + + "LogOn\n" + + ""+DateUtil.dateToString(new Date(), "yyyy-MM-dd HH:mm:ss")+"\n" + + "OA\n" + + "CFS\n" + + "OA登录验证发送\n" + + "\n" + + "\n" + + ""+name+"\n" + + ""+password+"\n" + + "\n" + + "\n" + + " ]]>\n" + + " \n" + + " \n" + + " \n" + + ""; + 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("\n"); + stringBuffer.append("" + nullConvert(erpVoucherNo) + "\n"); + stringBuffer.append("" + nullConvert(payerAccName) + "\n"); + //stringBuffer.append(""+"浙江杭泰数智能源开发有限公司"+"\n"); + stringBuffer.append("" + nullConvert(payerAccNo) + "\n"); + //stringBuffer.append("" +"71010122002702903"+ "\n"); + stringBuffer.append("" + nullConvert(curCode) + "\n"); + stringBuffer.append("" + nullConvert(payeeAccName) + "\n"); + stringBuffer.append("" + nullConvert(payeeAccNo) + "\n"); + stringBuffer.append("" + nullConvert(String.valueOf(amount)) + "\n"); + stringBuffer.append("" + nullConvert(payeeBankCode) + "\n"); + //stringBuffer.append(""+"301331000029"+"\n"); + stringBuffer.append("" + nullConvert(isQuick) + "\n"); + stringBuffer.append("" + nullConvert(payType) + "\n"); + stringBuffer.append("" + nullConvert(purpose) + "\n"); + stringBuffer.append("\n"); + } + } else { + stringBuffer.append("\n"); + stringBuffer.append("" + erpVoucherNo + "\n"); + stringBuffer.append("" + purpose + "\n"); + stringBuffer.append("\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 = "\n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + "\n" + + "\n" + + "" + code + "\n" + + "" + DateUtil.dateToString(new Date(), "yyyy-MM-dd HH:mm:ss") + "\n" + + "OA\n" + + "CFS\n" + + "" + remark + "\n" + + "" + token + "\n" + + "\n" + + "\n" + + "\n"; + if (stringBuffer != null) { + xml += stringBuffer.toString(); + xml += "\n" + + "\n" + + "\n" + + " ]]>\n" + + " \n" + + " \n" + + " \n" + + ""; + } else { + xml += "\n" + + "\n" + + "\n" + + "]]>\n" + + " \n" + + " \n" + + " \n" + + ""; + } + 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 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 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 = "\n" + + // " \n" + + // " \n" + + // " \n" + + // " \n" + + // " \n" + + // " \n" + + // "\n" + + // "\n" + + // "BkReceiptQueryExchange\n" + + // "" + DateUtil.dateToString(new Date(), "yyyy-mm-dd hh:mm:ss") + "\n" + + // "CFS\n" + + // "OA\n" + + // "OA电子回单共享发送\n" + + // "" + token + "\n" + + // "\n" + + // "\n" + + // "" + bankAcc + "\n" + + // "" + erpVoucherNo + "\n" + + // "\n" + + // "\n" + + // " ]]>\n" + + // " \n" + + // " \n" + + // " \n" + + // ""; + // 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 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 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 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 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 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + + bankdoc.code as bankCode,bankdoc.name as bankName,bankaccbas.accnum,bankaccbas.controlorg,bankaccbas.combinenum as cnapsCode + + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + orgs.pk_financeorg as tripartiteId, + orgs.name , + orgs.code, + max(org_bank.ts)as ts + + + + + bankdoc.code as bankCode,bankdoc.name as bankName,bankaccbas.accnum,bankaccbas.controlorg + + + + + + + + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + + + splitbank,bankaccno,combinno,name,code + + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + + + + supplier.code,supplier.name,supplier.taxpayerid,bank.def1,bank.def2,bank.def3,supplier.ts, supplier.pk_cust_sup as tripartiteId + + + + splitbank,bankaccno,name,code + + + + + + + + + + + + + + + + + + + + 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 details; + private List 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 getDetails() { + return details; + } + + public void setDetails(List 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 getDetail() { + return detail; + } + + public void setDetail(List 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 ass; + private List 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 getAss() { + return ass; + } + + public void setAss(List ass) { + this.ass = ass; + } + + public List getCashflow() { + return cashflow; + } + + public void setCashflow(List 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{ + + + 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{ +/** + * + * @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{ +/** + * + * @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{ + + /** + * @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{ +/** + * + * @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 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 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 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 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 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 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 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 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 archivesEntities = bipArchivesDao.queryArchivesDatays(archivesEntity); + if (archivesEntities != null && archivesEntities.size() > 0) { + ass.setCheckvaluecode(archivesEntities.get(0).getRightCode()); + } + } + } + } + } + } + } + bodys = JSON.toJSONString(voucher); + entity.setBodys(bodys); + + Map 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 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 paramMap = new HashMap(); + // 密码模式认证 + 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 paramMap, String mediaType, Map headers, String json, String type) { + String result = null; + + try { + StringBuffer sb = new StringBuffer(); + sb.append(baseUrl); + if (paramMap != null) { + sb.append("?"); + for (Map.Entry 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 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 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 jsonObjectList=new ArrayList<>(); + //[{"code":"SL20231101727","dataSourceCode":"master","name":"无锡恒君安管理咨询有限公司","taxpayerid":"91320205MAD2HAQN6Q","tripartiteId":"0001A31000000002M3TS","ts":"2023-11-16 14:05:10"}] + + List bipSupplierDetails = null; + for (BipSupplierEntity supplierEntity : bipSupplierEntities) { + List 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 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 queryBipSupplierDetails(BipSupplierDetailsEntity bipSupplierDetailsEntity){ +// BipSupplierDetailsEntity bipSupplierDetailsEntity=new BipSupplierDetailsEntity(); +// bipSupplierDetailsEntity.setCode(supplierEntity.getCode()); +// bipSupplierDetailsEntity.setName(supplierEntity.getName()); + + List 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 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 jsonObjectList = new ArrayList<>(); + if (null != bipOrgsEntities && bipOrgsEntities.size() > 0) { + for (BipOrgsEntity orgsEntity : bipOrgsEntities) { + List 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 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 queryBipOrgsDetails(BipOrgsDetailsEntity bipOrgsDetailsEntity){ + List 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 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 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 headers = entity.getHeaders(); + String client_id = headers.get("client_id"); + Map paramMap = new HashMap(); + // 密码模式认证 + 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 @@ + + + \ No newline at end of file diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/dao/ICtpFileDao.java b/fw-oa/src/main/java/com/hzya/frame/seeyon/dao/ICtpFileDao.java index 87961648..47fe57ae 100644 --- a/fw-oa/src/main/java/com/hzya/frame/seeyon/dao/ICtpFileDao.java +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/dao/ICtpFileDao.java @@ -3,10 +3,21 @@ package com.hzya.frame.seeyon.dao; import com.hzya.frame.basedao.dao.IBaseDao; import com.hzya.frame.seeyon.entity.CtpFileEntity; +import java.util.List; + /** * @Description seeyon 附件对象 * @Author xiangerlin * @Date 2024/6/17 15:21 **/ public interface ICtpFileDao extends IBaseDao { + /** + * + * @content 根据附件id查询附加信息 + * @Param + * @Return + * @Author hecan + * @Date 2025-04-27 18:03 + * **/ + List queryCtpFileById(CtpFileEntity ctpFileEntity); } diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/dao/impl/CtpFileDaoImpl.java b/fw-oa/src/main/java/com/hzya/frame/seeyon/dao/impl/CtpFileDaoImpl.java index 8b80d3d7..7b02c5c6 100644 --- a/fw-oa/src/main/java/com/hzya/frame/seeyon/dao/impl/CtpFileDaoImpl.java +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/dao/impl/CtpFileDaoImpl.java @@ -1,12 +1,13 @@ package com.hzya.frame.seeyon.dao.impl; +import com.baomidou.dynamic.datasource.annotation.DS; import com.hzya.frame.basedao.dao.MybatisGenericDao; -import com.hzya.frame.seeyon.dao.ICtpAttachmentDao; import com.hzya.frame.seeyon.dao.ICtpFileDao; -import com.hzya.frame.seeyon.entity.CtpAttachmentEntity; import com.hzya.frame.seeyon.entity.CtpFileEntity; import org.springframework.stereotype.Repository; +import java.util.List; + /** * @Description * @Author xiangerlin @@ -14,4 +15,9 @@ import org.springframework.stereotype.Repository; **/ @Repository() public class CtpFileDaoImpl extends MybatisGenericDao implements ICtpFileDao { + @DS("#ctpFileEntity.dataSourceCode") + @Override + public List queryCtpFileById(CtpFileEntity ctpFileEntity) { + return (List) super.selectList("queryCtpFileById",ctpFileEntity); + } } diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/entity/CtpFileEntity.xml b/fw-oa/src/main/java/com/hzya/frame/seeyon/entity/CtpFileEntity.xml index 3f3c8cad..366258d7 100644 --- a/fw-oa/src/main/java/com/hzya/frame/seeyon/entity/CtpFileEntity.xml +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/entity/CtpFileEntity.xml @@ -1,6 +1,6 @@ - + @@ -45,5 +45,17 @@ + + + diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/invoice/entity/InvoiceEntity.xml b/fw-oa/src/main/java/com/hzya/frame/seeyon/invoice/entity/InvoiceEntity.xml index 10213540..9d0bdd09 100644 --- a/fw-oa/src/main/java/com/hzya/frame/seeyon/invoice/entity/InvoiceEntity.xml +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/invoice/entity/InvoiceEntity.xml @@ -95,7 +95,7 @@ - update ${tabName} set ${url_field} =#{url} where id=#{id} + update formmain_0331 set ${url_field} =#{url} where id=#{id} @@ -105,7 +105,7 @@ - update ${tabName} set + update formmain_0331 set ${input_result_status_filed} = #{input_result_status}, ${invoice_code_field} = #{invoice_code}, diff --git a/fw-oa/src/main/java/com/hzya/frame/seeyon/invoice/service/impl/InvoiceServiceImpl.java b/fw-oa/src/main/java/com/hzya/frame/seeyon/invoice/service/impl/InvoiceServiceImpl.java index dfbdd22f..da2a802c 100644 --- a/fw-oa/src/main/java/com/hzya/frame/seeyon/invoice/service/impl/InvoiceServiceImpl.java +++ b/fw-oa/src/main/java/com/hzya/frame/seeyon/invoice/service/impl/InvoiceServiceImpl.java @@ -1,6 +1,8 @@ package com.hzya.frame.seeyon.invoice.service.impl; +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; @@ -8,7 +10,9 @@ import com.hzya.frame.basedao.service.impl.BaseService; import com.hzya.frame.mdm.mdmModuleSource.dao.impl.MdmModuleSourceDaoImpl; import com.hzya.frame.mdm.mdmModuleSource.entity.MdmModuleSourceEntity; import com.hzya.frame.seeyon.dao.ICtpAttachmentDao; +import com.hzya.frame.seeyon.dao.ICtpFileDao; import com.hzya.frame.seeyon.entity.CtpAttachmentEntity; +import com.hzya.frame.seeyon.entity.CtpFileEntity; import com.hzya.frame.seeyon.invoice.dao.IInvoiceDao; import com.hzya.frame.seeyon.invoice.dao.IInvoiceDetailsDao; import com.hzya.frame.seeyon.invoice.entity.InvoiceEntity; @@ -31,11 +35,16 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import javax.net.ssl.HttpsURLConnection; +import javax.net.ssl.SSLContext; +import javax.net.ssl.TrustManager; +import javax.net.ssl.X509TrustManager; import java.io.File; import java.io.FileOutputStream; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; +import java.security.cert.X509Certificate; import java.util.*; @Service(value = "InvoiceServiceImpl") @@ -54,6 +63,9 @@ public class InvoiceServiceImpl extends BaseService imple private ComparisonServiceImpl comparisonServiceimpl; @Autowired private ICtpAttachmentDao ctpAttachmentDao; + @Autowired + private ICtpFileDao ctpFileDao; + @Value("${zt.url}") private String url; @@ -152,84 +164,82 @@ public class InvoiceServiceImpl extends BaseService imple return BaseResult.getSuccessMessageEntity("查询成功"); } for (InvoiceEntity entity : invoiceEntities) { - long timestamp = System.currentTimeMillis(); - Map parametersMap = new HashMap<>(); - parametersMap.put("accessKey","6X3B526P5HqE6ums"); - parametersMap.put("timestamp",timestamp); - String sign = YzfSignUtil.signRequest(parametersMap,"34e5fc32ac894a2ba2ade8c3852c7a0a"); - JSONObject jsonObject=new JSONObject(); - jsonObject.put("serialNumber",entity.getId()); - jsonObject.put("accessKey","6X3B526P5HqE6ums"); - jsonObject.put("sign",sign); - jsonObject.put("timestamp",timestamp); - logger.info("=======调用杭泰税务查询申请单详情的请求参数为:{}=======",jsonObject.toJSONString()); - //发送数据 - String result = HttpRequest.post(url). - header("appId", "800060"). - header("apiCode", "8000600003"). - header("publicKey", "ZJYAmRjjYEDgqw4UXWHZNicYclErG0hsrwKQcHukPlP0K1pCe7eDIk+3zDUT+v578prj"). - header("secretKey", "D6AHU3PL8UsNfK6A8I6mL4X1ma2NXckX/vM7AOzI/jmzJf+R1aY06Q6SBz7Y7drHj3JzOP8MtA1LSGvL+2BWG8c/o7DKi92S4mr3zcGearA="). - body(jsonObject.toJSONString()). - execute(). - body(); - logger.info("=====调用杭泰税务查询申请单详情的返回参数为:{}===========",result); - JSONObject resultJson = JSONObject.parseObject(result); - if (!resultJson.getBoolean("flag")) { - saveTaskLivingDetails(entity.getId(), entity.getBusiness_no(), jsonObject.toJSONString(), resultJson.toJSONString(), false,""); - } else { - JSONObject attribute = resultJson.getJSONObject("attribute"); - if("0".equals(attribute.getString("code"))){ - JSONObject jsonResult=JSONObject.parseObject(attribute.getString("result")); - if(null !=jsonResult){ - JSONArray jsonArray = jsonResult.getJSONArray("invoiceInfoVOList"); - if(CollectionUtils.isNotEmpty(jsonArray)){ - for (int i = 0; i < jsonArray.size(); i++) { - //表单的附件字段=ctpAttachment的Sub_reference,表单的Summary_id=ctpAttachment的att_reference - String sub_reference = String.valueOf(UUIDLong.longUUID()); - String att_reference = entity.getSummaryId();//Summary_id - JSONObject invoiceInfo = jsonArray.getJSONObject(i); - String invoiceCode = invoiceInfo.getString("invoiceCode");//发票代码 - String invoiceNumber = invoiceInfo.getString("invoiceNumber");//发票号码 - String resultStatus = InvoiceState.invoiceStateGetValue(jsonResult.getString("resultStatus"));//开票结果 - entity.setInvoice_code(invoiceCode); - entity.setInvoice_number(invoiceNumber); - entity.setResult_status(resultStatus); - //将开票结果,发票号码,发票代码,回写OA - invoiceDao.updateInvoiceResult(entity); - if (null != invoiceInfo.getString("url") || null != invoiceInfo.getString("ofdUrl")) { - String pdfUrl = invoiceInfo.getString("url");//pdf文件 - String ofdUrl = invoiceInfo.getString("ofdUrl");//ofd文件 - String xmlUrl = invoiceInfo.getString("xmlUrl");//xml文件 - //获取pdf文件到本地 并为pdf取名,否则会报无法访问错误 - logger.info("========开始将pdf文件保存到本地========"); - String pdfFileName = generateFileName(pdfUrl, "pdf"); - String pdfSavePath = invoicePdfUrl + pdfFileName; - downloadPdf(pdfUrl, pdfSavePath); - logger.info("========pdf文件保存到本地完成========"); - File filePdf = new File(pdfSavePath); - logger.info("========开始将pdf文件上传OA========"); - ManyfileUpload(filePdf, entity, sub_reference, att_reference, jsonObject); - logger.info("========pdf文件上传OA完成========"); - //获取ofd文件到本地 - logger.info("========开始将ofd文件保存到本地========"); - String ofdFileName = generateFileName(ofdUrl, "ofd"); - String ofdSavePath = ofdUrl + ofdFileName; - downloadPdf(ofdUrl, ofdSavePath); - logger.info("========ofd文件保存到本地完成========"); - File fileOfd = new File(ofdSavePath); - logger.info("========开始将ofd文件上传OA========"); - ManyfileUpload(fileOfd, entity, sub_reference, att_reference, jsonObject); - logger.info("========ofd文件上传OA完成========"); + entity.setDataSourceCode("HT-OA"); + JSONObject jsonObject = new JSONObject(); + jsonObject.put("serialNumber", entity.getSerial_number()); + //发送数据 + String result = HttpRequest.post(url). + header("appId", "800060"). + header("apiCode", "8000600003"). + header("publicKey", "ZJYAmRjjYEDgqw4UXWHZNicYclErG0hsrwKQcHukPlP0K1pCe7eDIk+3zDUT+v578prj"). + header("secretKey", "D6AHU3PL8UsNfK6A8I6mL4X1ma2NXckX/vM7AOzI/jmzJf+R1aY06Q6SBz7Y7drHj3JzOP8MtA1LSGvL+2BWG8c/o7DKi92S4mr3zcGearA="). + body(jsonObject.toJSONString()). + execute(). + body(); + logger.info("=====调用杭泰税务查询申请单详情的返回参数为:{}===========", result); + JSONObject resultJson = JSONObject.parseObject(result); + if (!resultJson.getBoolean("flag")) { + saveTaskLivingDetails(entity.getId(), entity.getBusiness_no(), jsonObject.toJSONString(), resultJson.toJSONString(), false, ""); + } else { + JSONObject attribute = resultJson.getJSONObject("attribute"); + if ("0".equals(attribute.getString("code"))) { + JSONObject jsonResult = JSONObject.parseObject(attribute.getString("result")); + if (null != jsonResult && jsonResult.getString("serialNumber").equals(entity.getSerial_number())) { + JSONArray jsonArray = jsonResult.getJSONArray("invoiceInfoVOList"); + if (CollectionUtils.isNotEmpty(jsonArray)) { + for (int i = 0; i < jsonArray.size(); i++) { + //表单的附件字段=ctpAttachment的Sub_reference,表单的Summary_id=ctpAttachment的att_reference + String sub_reference = String.valueOf(UUIDLong.longUUID()); + String att_reference = entity.getSummaryId();//Summary_id + JSONObject invoiceInfo = jsonArray.getJSONObject(i); + String invoiceCode = invoiceInfo.getString("invoiceCode");//发票代码 + String invoiceNumber = invoiceInfo.getString("invoiceNumber");//发票号码 + String resultStatus = InvoiceState.invoiceStateGetValue(jsonResult.getString("resultStatus"));//开票结果 + entity.setInvoice_code(invoiceCode); + entity.setInvoice_number(invoiceNumber); + entity.setResult_status(resultStatus); + entity.setId(entity.getSerial_number()); + //将开票结果,发票号码,发票代码,回写OA + logger.info("=======开始将开票结果,发票号码,发票代码,回写OA======"); + invoiceDao.updateInvoiceResult(entity); + logger.info("=======将开票结果,发票号码,发票代码,回写OA完毕======"); + if (null != invoiceInfo.getString("url") || null != invoiceInfo.getString("ofdUrl")) { + String pdfUrl = invoiceInfo.getString("url");//pdf文件 + String ofdUrl = invoiceInfo.getString("ofdUrl");//ofd文件 + String xmlUrl = invoiceInfo.getString("xmlUrl");//xml文件 + //获取pdf文件到本地 并为pdf取名,否则会报无法访问错误 + logger.info("========开始将pdf文件保存到本地========"); + String pdfFileName = generateFileName(pdfUrl, "PDF"); + String pdfSavePath = invoicePdfUrl + pdfFileName; + downloadPdf(pdfUrl, pdfSavePath); + logger.info("========pdf文件保存到本地完成========"); + File filePdf = new File(pdfSavePath); + if(null !=filePdf){ + logger.info("========开始将pdf文件上传OA========"); + ManyfileUpload(filePdf, entity, sub_reference, att_reference, jsonObject); + logger.info("========pdf文件上传OA完成========"); + } + //获取ofd文件到本地 + logger.info("========开始将ofd文件保存到本地========"); + String ofdFileName = generateFileName(ofdUrl, "OFD"); + String ofdSavePath = invoiceOfdUrl + ofdFileName; + downloadPdf(ofdUrl, ofdSavePath); + logger.info("========ofd文件保存到本地完成========"); + File fileOfd = new File(ofdSavePath); + if(null !=fileOfd){ + logger.info("========开始将ofd文件上传OA========"); + ManyfileUpload(fileOfd, entity, sub_reference, att_reference, jsonObject); + logger.info("========ofd文件上传OA完成========"); + } + } } } } } } - } - } }catch (Exception e){ - logger.info("======查询杭泰税务申请单详情失败====",e.getMessage()); + logger.info("======查询杭泰税务申请单详情失败:{}====",e.getMessage()); e.printStackTrace(); } return null; @@ -248,17 +258,9 @@ public class InvoiceServiceImpl extends BaseService imple return BaseResult.getSuccessMessageEntity("查询成功"); } for (InvoiceEntity entity : invoiceEntities) { - long timestamp = System.currentTimeMillis(); - Map parametersMap = new HashMap<>(); - parametersMap.put("accessKey","6X3B526P5HqE6ums"); - parametersMap.put("timestamp",timestamp); - String sign = YzfSignUtil.signRequest(parametersMap,"34e5fc32ac894a2ba2ade8c3852c7a0a"); + entity.setDataSourceCode("HT-OA"); JSONObject jsonObject=new JSONObject(); jsonObject.put("serialNumber",entity.getId()); - jsonObject.put("accessKey","6X3B526P5HqE6ums"); - jsonObject.put("sign",sign); - jsonObject.put("timestamp",timestamp); - logger.info("=======调用杭泰税务查询发票批量录入结果的请求参数为:{}=======",jsonObject.toJSONString()); //发送数据 String result = HttpRequest.post(url). header("appId", "800060"). @@ -293,61 +295,125 @@ public class InvoiceServiceImpl extends BaseService imple } } }catch (Exception e){ - logger.info("======查询杭泰税务发票批量录入结果失败====",e.getMessage()); + logger.info("======查询杭泰税务发票批量录入结果失败:{}====",e.getMessage()); e.printStackTrace(); } return null; } private void ManyfileUpload(File file,InvoiceEntity entity,String sub_reference,String att_reference,JSONObject jsonObject){ - JSONObject jsonObjectOfd = OARestUtil.fileUpload(file,"8000590003","8000590001"); - if (jsonObjectOfd.getString("fileUrl") != null) { - entity.setUrl(sub_reference); - entity.setDataSourceCode("HT-OA"); - invoiceDao.updateInvoiceUrl(entity); - //根据附件id查询附件业务数据 - String file_url = jsonObjectOfd.getString("fileUrl"); - CtpAttachmentEntity ctpAttachmentEntity = new CtpAttachmentEntity(); - ctpAttachmentEntity.setFile_url(file_url); - ctpAttachmentEntity.setSub_reference(sub_reference); - ctpAttachmentEntity.setAtt_reference(att_reference); - ctpAttachmentEntity.setDataSourceCode("HT-OA"); - List 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()); - ctpAttachmentEntity.setDataSourceCode("HT-OA"); - ctpAttachmentDao.saveCtpAttachment(ctpAttachmentEntity); - } else { - if (ctpAttachmentEntities.size() > 1) { - throw new BaseSystemException("OA附件业务表中查到多条记录"); + logger.info("=======文件名称为:{}=====",file.getName()); + if(null !=file) { + JSONObject jsonObjectOfd = fileUploadPdfAndOfd(file); + if (jsonObjectOfd.getString("fileUrl") != null) { + entity.setUrl(sub_reference); + entity.setDataSourceCode("HT-OA"); + logger.info("===========查询开票详情开始将附件id更新OA=========="); + invoiceDao.updateInvoiceUrl(entity); + logger.info("===========查询开票详情将附件id更新OA完毕=========="); + //根据附件id查询附件信息 + CtpFileEntity ctpFileEntity=new CtpFileEntity(); + ctpFileEntity.setId(jsonObjectOfd.getString("fileUrl")); + ctpFileEntity.setDataSourceCode("HT-OA"); + List query = ctpFileDao.queryCtpFileById(ctpFileEntity); + if(CollectionUtils.isNotEmpty(query)) { + CtpFileEntity ctpFile = query.get(0); + //根据附件id查询附件业务数据 + String file_url = jsonObjectOfd.getString("fileUrl"); + CtpAttachmentEntity ctpAttachmentEntity = new CtpAttachmentEntity(); + ctpAttachmentEntity.setFile_url(file_url); + ctpAttachmentEntity.setSub_reference(sub_reference); + ctpAttachmentEntity.setAtt_reference(att_reference); + ctpAttachmentEntity.setDataSourceCode("HT-OA"); + List ctpAttachmentEntities = ctpAttachmentDao.queryCtpAttachment(ctpAttachmentEntity); + //如果没有查询到数据,就新增附件业务,否则更新 + if (ctpAttachmentEntities.size() == 0) { + String category =ctpFile.getCategory(); + String type =ctpFile.getType(); + String filename =ctpFile.getFilename(); + String mime_type =ctpFile.getMime_type(); + String attachment_size =ctpFile.getFile_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()); + ctpAttachmentEntity.setDataSourceCode("HT-OA"); + ctpAttachmentDao.saveCtpAttachment(ctpAttachmentEntity); + } else { + if (ctpAttachmentEntities.size() > 1) { + throw new BaseSystemException("OA附件业务表中查到多条记录"); + } + //更新数据到OA附件业务表中 + ctpAttachmentDao.updateCtpAttachment(ctpAttachmentEntity); + } + logger.info("=====电子回单执行完毕======="); + }else{ + logger.info("========根据附件id:{}没有查询到附件信息======",jsonObjectOfd.getString("fileUrl")); } - //更新数据到OA附件业务表中 - ctpAttachmentDao.updateCtpAttachment(ctpAttachmentEntity); } - logger.info("=====电子回单执行完毕======="); + file.delete(); + }else{ + logger.info("==========本地没有文件=============="); } - file.delete(); } + public JSONObject fileUploadPdfAndOfd(File file) { + if (null != file) { + try { + HashMap 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 res; + } + } + }catch (Exception e){ + logger.error("附件上传失败"+e.getMessage()); + } + } + return null; + } + + private String getToken() { + //获取oatoken + HashMap 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; +} + private void downloadPdf(String pdfUrl, String savePath) { try { URL url = new URL(pdfUrl); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); - connection.setRequestMethod("Post"); + // 处理 HTTPS 证书(测试环境忽略验证,生产环境需移除) + if (pdfUrl.startsWith("https")) { + trustAllCertificates((HttpsURLConnection) connection); + } + connection.setRequestMethod("GET"); int responseCode = connection.getResponseCode(); if (responseCode == HttpURLConnection.HTTP_OK) { InputStream inputStream = connection.getInputStream(); @@ -371,6 +437,20 @@ public class InvoiceServiceImpl extends BaseService imple } } + private static void trustAllCertificates(HttpsURLConnection conn) throws Exception { + TrustManager[] trustAllCerts = new TrustManager[]{ + new X509TrustManager() { + @Override public void checkClientTrusted(X509Certificate[] chain, String authType) {} + @Override public void checkServerTrusted(X509Certificate[] chain, String authType) {} + @Override public X509Certificate[] getAcceptedIssuers() { return new X509Certificate[0]; } + } + }; + SSLContext sslContext = SSLContext.getInstance("TLS"); + sslContext.init(null, trustAllCerts, new java.security.SecureRandom()); + conn.setSSLSocketFactory(sslContext.getSocketFactory()); + conn.setHostnameVerifier((hostname, session) -> true); // 忽略主机名验证 + } + private String generateFileName(String url, String extension) { // 这里简单根据 URL 的参数生成文件名,你可以根据实际需求调整 String[] parts = url.split("&"); 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 { +/** + * + * @content 获取未推送税务的蓝字发票集合 + * @className: Administrator + * @author laborer + * @date 2025-03-20 15:32 + * + */ + + List 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 implements IMakeInvoiceDao { + + @Override + @DS("#entity.dataSourceCode") + public List getMakeInvoiceByState(MakeInvoiceEntity entity) { + return (List) 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 @@ + + + + + + + + + + + id + + + + + + + + + + + update ${tabName} set ${pushStatusField} =#{pushStatus} where id=#{dataId} + + + + 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 { +/** + * + * @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 implements IMakeInvoiceService { + +@Autowired +private IMakeInvoiceDao makeInvoiceDao; + @Override + public JsonResultEntity sendMakeInvoiceSw(JSONObject requestJson) { + MakeInvoiceEntity makeInvoice = new MakeInvoiceEntity(); + makeInvoice.setDataSourceCode("HT_OA"); + List makeInvoiceEntityList = makeInvoiceDao.getMakeInvoiceByState(makeInvoice); + return BaseResult.getSuccessMessageEntity("操作成功"); + } +} diff --git a/pom.xml b/pom.xml index 2d3edc15..69375712 100644 --- a/pom.xml +++ b/pom.xml @@ -19,6 +19,17 @@ + fw-bip + + + + + + + + + + com.hzya.frame kangarooDataCenterV3