科目余额表推送有度

This commit is contained in:
yuqh 2025-05-21 16:07:20 +08:00
parent 0234240494
commit ee2d16d077
2 changed files with 52 additions and 12 deletions

View File

@ -77,7 +77,7 @@ public class IncomeInvoiceDaoImpl extends MybatisGenericDao<IncomeInvoiceEntity,
List<JSONObject> o = (List<JSONObject>) super.selectList(getSqlIdPrifx() + "queryByAloneId", entity);
return o;
}
@DS("htBip")
@Override
public List<JSONObject> queryAccount(IncomeInvoiceEntity jnentity) {
List<JSONObject> o = (List<JSONObject>) super.selectList(getSqlIdPrifx() + "queryAccountByZq", jnentity);

View File

@ -890,11 +890,12 @@ public class IncomeInvoiceServiceImpl extends BaseService<IncomeInvoiceEntity, S
}
private JsonResultEntity sendAccountCodeReport(String ztbm, String cjzq, String rwbm) {
String access_token = getToken();
if (access_token == null) {
return BaseResult.getFailureMessageEntity("token获取失败");
}
String url = uploadBalanceTableUrl+access_token;
logger.info("科目余额开始采集数据"+ztbm);
// String access_token = getToken();
// if (access_token == null) {
// return BaseResult.getFailureMessageEntity("token获取失败");
// }
String url = uploadBalanceTableUrl;
//通过公司编码账期查询该单位的科目余额信息下发有度
//查询当月帐套组织
IncomeInvoiceEntity jnentity = new IncomeInvoiceEntity();
@ -902,20 +903,59 @@ public class IncomeInvoiceServiceImpl extends BaseService<IncomeInvoiceEntity, S
jnentity.setSysData(cjzq);
jnentity.setOrgCode(ztbm);
//查询该账期下的科目余额
// logger.info("111111111111111111");
List<JSONObject> jnlist = incomeInvoiceDao.queryAccount(jnentity);
JSONArray balanceTableList = new JSONArray();
for(JSONObject jsonObject :jnlist){
JSONObject balanceTable = new JSONObject();
balanceTable.put("subjectCode", jsonObject.getString("SUBJECTCODE"));
balanceTable.put("subjectName", jsonObject.getString("SUBJECTNAME"));
//格式化
String subjectFullName = jsonObject.getString("SUBJECTFULLNAME");
// 1. 查找第一个反斜杠的位置
int firstIndex = subjectFullName.indexOf("\\");
// 2. 截取第一个反斜杠之后的部分如果存在
String substring = firstIndex != -1
? subjectFullName.substring(firstIndex + 1)
: subjectFullName;
// 3. 将所有剩余的反斜杠替换为下划线
String result = substring.replace("\\", "_");
balanceTable.put("subjectFullName",result );
balanceTable.put("superCode", jsonObject.getString("SUPERCODE"));
balanceTable.put("subjectDir", jsonObject.getString("SUBJECTDIR"));
balanceTable.put("subjectType", jsonObject.getString("SUBJECTTYPE"));
balanceTable.put("subjectLevel", jsonObject.getString("SUBJECTLEVEL"));
balanceTable.put("endLevel", jsonObject.getString("ENDLEVEL"));
balanceTable.put("debitValue", jsonObject.getString("DEBITVALUE"));
balanceTable.put("creditValue", jsonObject.getString("CREDITVALUE"));
balanceTable.put("initialSubjectDir", jsonObject.getString("INITIALSUBJECTDIR"));
balanceTable.put("initialDebitBalanceValue", jsonObject.getString("INITIALDEBITBALANCEVALUE"));
balanceTable.put("initialCreditBalanceValue", jsonObject.getString("INITIALCREDITBALANCEVALUE"));
balanceTable.put("balanceSubjectDir", jsonObject.getString("BALANCESUBJECTDIR"));
balanceTable.put("balanceDeditValue", jsonObject.getString("BALANCEDEDITVALUE"));
balanceTable.put("balanceCreditValue", jsonObject.getString("BALANCECREDITVALUE"));
balanceTable.put("totalDebitValue", jsonObject.getString("TOTALDEBITVALUE"));
balanceTable.put("totalCreditValue", jsonObject.getString("TOTALCREDITVALUE"));
balanceTableList.add(balanceTable);
}
// logger.info("222222222222222222");
//正常来说数组不存在空的情况 如果为空就直接下发空数组给他们
JSONObject sendData = new JSONObject();
sendData.put("accessKey",accessKey);
long timestamp = System.currentTimeMillis();
sendData.put("timestamp",timestamp);
// 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);
// String a = YzfSignUtil.signRequest(sendData,accessSecret);
// sendData.put("sign",a);
sendData.put("balanceTableList",balanceTableList);
Map<String, String> headers = new HashMap<>();
headers.put("Content-Type", "application/json; charset=utf-8");
logger.info("科目余额开始发送数据"+sendData.toJSONString());
String returndata = sendPost(url, headers, sendData.toJSONString());
logger.info("科目余额返回数据"+returndata);
if (returndata != null && JSONObject.isValidObject(returndata)) {
JSONObject dataJson = JSONObject.parseObject(returndata);
if(dataJson != null && dataJson.getString("code") != null && "0".equals( dataJson.getString("code"))){