Compare commits
2 Commits
189d791071
...
a3eb8ddea4
Author | SHA1 | Date |
---|---|---|
|
a3eb8ddea4 | |
|
466b44fb84 |
|
@ -0,0 +1,9 @@
|
|||
package com.hzya.frame.plugin.BudgetExecutionDetails.dao;
|
||||
|
||||
import com.hzya.frame.basedao.dao.IBaseDao;
|
||||
import com.hzya.frame.plugin.BudgetExecutionDetails.entity.BudgetExecutionDetailsEntity;
|
||||
|
||||
public interface IBudgetExecutionDetailsDao extends IBaseDao<BudgetExecutionDetailsEntity, String> {
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
package com.hzya.frame.plugin.BudgetExecutionDetails.dao.impl;
|
||||
|
||||
import com.hzya.frame.basedao.dao.MybatisGenericDao;
|
||||
import com.hzya.frame.plugin.BudgetExecutionDetails.dao.IBudgetExecutionDetailsDao;
|
||||
import com.hzya.frame.plugin.BudgetExecutionDetails.entity.BudgetExecutionDetailsEntity;
|
||||
|
||||
|
||||
public class BudgetExecutionDetailsDaoImpl extends MybatisGenericDao<BudgetExecutionDetailsEntity, String> implements IBudgetExecutionDetailsDao {
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
package com.hzya.frame.plugin.BudgetExecutionDetails.entity;
|
||||
|
||||
import com.hzya.frame.web.entity.BaseEntity;
|
||||
|
||||
public class BudgetExecutionDetailsEntity extends BaseEntity {
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.hzya.frame.plugin.BudgetExecutionDetails.dao.impl.BudgetExecutionDetailsDaoImpl">
|
||||
|
||||
</mapper>
|
||||
|
|
@ -0,0 +1,60 @@
|
|||
package com.hzya.frame.plugin.BudgetExecutionDetails.plugin;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.hzya.frame.base.PluginBaseEntity;
|
||||
import com.hzya.frame.plugin.BudgetExecutionDetails.service.IBudgetExecutionDetailsService;
|
||||
import com.hzya.frame.web.entity.JsonResultEntity;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
/**
|
||||
* 推送预算执行明细数据
|
||||
*
|
||||
* @author makejava
|
||||
* @since 2024-06-21 13:52:35
|
||||
*/
|
||||
public class BudgetExecutionDetailsPluginInitializer extends PluginBaseEntity{
|
||||
Logger logger = LoggerFactory.getLogger(BudgetExecutionDetailsPluginInitializer.class);
|
||||
@Autowired
|
||||
private IBudgetExecutionDetailsService budgetExecutionDetailsService;
|
||||
|
||||
@Override
|
||||
public void initialize() {
|
||||
logger.info(getPluginLabel() + "执行初始化方法initialize()");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void destroy() {
|
||||
logger.info(getPluginLabel() + "执行销毁方法destroy()");
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getPluginId() {
|
||||
return "BudgetExecutionDetailsPlugin";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getPluginName() {
|
||||
return "BudgetExecutionDetailsPlugin插件";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getPluginLabel() {
|
||||
return "BudgetExecutionDetailsPlugin";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getPluginType() {
|
||||
return "1";
|
||||
}
|
||||
@Override
|
||||
public JsonResultEntity executeBusiness(JSONObject requestJson) {
|
||||
try {
|
||||
logger.info("======开始执行推送预算执行明细数据同步========");
|
||||
return budgetExecutionDetailsService.syncBudgetExecutionDetailsData(requestJson);
|
||||
}catch (Exception e){
|
||||
logger.info("======执行推送预算执行明细数据同步失败:{}========",e.getMessage());
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
package com.hzya.frame.plugin.BudgetExecutionDetails.service;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.hzya.frame.basedao.service.IBaseService;
|
||||
import com.hzya.frame.plugin.BudgetExecutionDetails.entity.BudgetExecutionDetailsEntity;
|
||||
import com.hzya.frame.web.entity.JsonResultEntity;
|
||||
|
||||
public interface IBudgetExecutionDetailsService extends IBaseService<BudgetExecutionDetailsEntity, String>{
|
||||
|
||||
/**
|
||||
* @Author lvleigang
|
||||
* @Description 推送预算执行明细数据
|
||||
* @Date 9:05 上午 2025/9/11
|
||||
* @param requestJson
|
||||
* @return com.hzya.frame.web.entity.JsonResultEntity
|
||||
**/
|
||||
JsonResultEntity syncBudgetExecutionDetailsData(JSONObject requestJson);
|
||||
}
|
|
@ -0,0 +1,335 @@
|
|||
package com.hzya.frame.plugin.BudgetExecutionDetails.service.impl;
|
||||
|
||||
import cn.hutool.http.HttpRequest;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.hzya.frame.plugin.BudgetExecutionDetails.dao.IBudgetExecutionDetailsDao;
|
||||
import com.hzya.frame.plugin.BudgetExecutionDetails.entity.BudgetExecutionDetailsEntity;
|
||||
import com.hzya.frame.plugin.BudgetExecutionDetails.service.IBudgetExecutionDetailsService;
|
||||
import com.hzya.frame.web.entity.BaseResult;
|
||||
import com.hzya.frame.web.entity.JsonResultEntity;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import com.hzya.frame.basedao.service.impl.BaseService;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
|
||||
public class BudgetExecutionDetailsServiceImpl extends BaseService<BudgetExecutionDetailsEntity, String> implements IBudgetExecutionDetailsService {
|
||||
@Value("${zt.url}")
|
||||
private String url;
|
||||
|
||||
private IBudgetExecutionDetailsDao budgetExecutionDetailsDao;
|
||||
|
||||
@Autowired
|
||||
public void setBudgetExecutionDetailsDao(IBudgetExecutionDetailsDao dao) {
|
||||
this.budgetExecutionDetailsDao = dao;
|
||||
this.dao = dao;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param requestJson
|
||||
* @return com.hzya.frame.web.entity.JsonResultEntity
|
||||
* @Author lvleigang
|
||||
* @Description 推送预算执行明细数据
|
||||
* @Date 9:05 上午 2025/9/11
|
||||
**/
|
||||
@Override
|
||||
public JsonResultEntity syncBudgetExecutionDetailsData(JSONObject requestJson) {
|
||||
logger.error("同步预算执行明细数据:" + requestJson.toJSONString());
|
||||
JSONObject jsonStr = requestJson.getJSONObject("jsonStr");
|
||||
if (jsonStr == null) {
|
||||
return BaseResult.getFailureMessageEntity("系统错误");
|
||||
}
|
||||
JSONObject businessDataStr = jsonStr.getJSONObject("businessDataStr");
|
||||
if (businessDataStr == null) {
|
||||
return BaseResult.getFailureMessageEntity("系统错误");
|
||||
}
|
||||
String zbTableName = null;
|
||||
String mxTableName = null;
|
||||
if (businessDataStr.containsKey("formmain_11416")) {//XZ-A新展日常费用报销申请单-个人
|
||||
zbTableName = "formmain_11416";
|
||||
mxTableName = "formson_11417";
|
||||
} else if (businessDataStr.containsKey("formmain_11498")) {//XZ-A新展日常费用报销申请单-个人独立核算
|
||||
zbTableName = "formmain_11498";
|
||||
mxTableName = "formson_11499";
|
||||
} else if (businessDataStr.containsKey("formmain_11421")) {//XZ-B差旅报销申请单境内
|
||||
zbTableName = "formmain_11421";
|
||||
mxTableName = "formson_11423";
|
||||
} else if (businessDataStr.containsKey("formmain_11521")) {//XZ-B差旅报销申请单境内-个人独立核算
|
||||
zbTableName = "formmain_11521";
|
||||
mxTableName = "formson_11523";
|
||||
} else if (businessDataStr.containsKey("formmain_11472")) {//XZ-D新展费用报销申请单-高层
|
||||
zbTableName = "formmain_11472";
|
||||
mxTableName = "formson_11474";
|
||||
} else if (businessDataStr.containsKey("formmain_11884")) {//XZ-E差旅报销申请单境外-个人
|
||||
zbTableName = "formmain_11884";
|
||||
mxTableName = "formson_11886";
|
||||
} else if (businessDataStr.containsKey("formmain_11526")) {//XZ-F新展日常费用报销对公(有发票)
|
||||
zbTableName = "formmain_11526";
|
||||
mxTableName = "formson_11527";
|
||||
} else if (businessDataStr.containsKey("formmain_11489")) {//XZ-G新展日常费用报销对公(无发票)
|
||||
zbTableName = "formmain_11489";
|
||||
mxTableName = "formson_11490";
|
||||
} else if (businessDataStr.containsKey("formmain_11475")) {//XZ-H新展付款申请单-高层
|
||||
zbTableName = "formmain_11475";
|
||||
mxTableName = "formson_11476";
|
||||
}else {
|
||||
return BaseResult.getFailureMessageEntity("系统错误,该表不需要推送预算执行明细数据");
|
||||
}
|
||||
JSONObject mainData = businessDataStr.getJSONObject(zbTableName);
|
||||
JSONArray detailArray = businessDataStr.getJSONArray(mxTableName);
|
||||
if(detailArray == null || detailArray.size() == 0){
|
||||
return BaseResult.getFailureMessageEntity("金额明细不允许为空");
|
||||
}
|
||||
//组装发送数据
|
||||
String sendData = getSendData(mainData, detailArray,zbTableName,mxTableName);
|
||||
logger.error("推送预算执行明细数据推送数据:" + sendData);
|
||||
String tokenResult = HttpRequest.post("http://10.0.2.151/api/oauth/token").
|
||||
header("Content-Type", "application/x-www-form-urlencoded").
|
||||
form("grant_type","client_credentials").
|
||||
form("client_id","zyclient").
|
||||
form("client_secret","b66ef34621eb493b8a085dd93b80a8f1").
|
||||
execute().
|
||||
body();
|
||||
logger.error("推送预算执行明细数据token返回:" + tokenResult);
|
||||
JSONObject tokenJson = JSONObject.parseObject(tokenResult);
|
||||
if (tokenJson.getString("access_token") != null && !"".equals(tokenJson.getString("access_token"))) {
|
||||
String sendResultString = HttpRequest.post(url).
|
||||
header("appId", "800051").
|
||||
header("apiCode", "8000510022").
|
||||
header("Authorization", "Bearer " + tokenJson.getString("access_token")).
|
||||
header("publicKey", "ZJYAM2YFEIsIaI1e4wMagkS2Q7SFgGk0RvsPhEES45m/OVFCe7eDIk+3zDUT+v578prj").
|
||||
header("secretKey", "lR6+uf94mvNMclAB43oIwmhJSMDzQaViTkfXLeNvmGdpLfbFiUvbgbU+p43zO25Zj3JzOP8MtA1LSGvL+2BWG8c/o7DKi92S4mr3zcGearA=").
|
||||
body(sendData).
|
||||
execute().
|
||||
body();
|
||||
JSONObject sendResult = JSONObject.parseObject(sendResultString);
|
||||
if (sendResult.getBoolean("flag")) {
|
||||
return BaseResult.getSuccessMessageEntity("推送预算执行明细数据成功");
|
||||
} else {
|
||||
return BaseResult.getFailureMessageEntity("推送预算执行明细数据失败:" + sendResult.getString("msg"));
|
||||
}
|
||||
} else {
|
||||
return BaseResult.getFailureMessageEntity("推送预算执行明细Token获取失败,请联系管理员" );
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @Author lvleigang
|
||||
* @Description 组装发送数据
|
||||
* @Date 2:35 下午 2025/9/11
|
||||
* @param mainData
|
||||
* @param detailArray
|
||||
* @param zbTableName
|
||||
* @param mxTableName
|
||||
* @return com.alibaba.fastjson.JSONObject
|
||||
**/
|
||||
private String getSendData(JSONObject mainData, JSONArray detailArray, String zbTableName, String mxTableName) {
|
||||
JSONArray sendJson = new JSONArray();
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
||||
for (int i = 0; i < detailArray.size(); i++) {
|
||||
// 创建JSONObject实例
|
||||
JSONObject jsonObject = new JSONObject();
|
||||
if (zbTableName.equals("formmain_11416")) {//XZ-A新展日常费用报销申请单-个人
|
||||
jsonObject.put("reimbursementNo", mainData.getString("field0001"));//对应报销单号
|
||||
jsonObject.put("budgetYear", mainData.getString("field0002"));//对应预算年度
|
||||
jsonObject.put("budgetPeriod", mainData.getString("field0003"));//对应预算期数
|
||||
jsonObject.put("caliberInfoType", "1");//对应口径信息类型 1为部门,2为个人
|
||||
jsonObject.put("caliberInfoDep", mainData.getString("field0095"));//对应部门口径信息
|
||||
jsonObject.put("caliberInfoPer", "");//对应个人口径信息
|
||||
jsonObject.put("reimburser", mainData.getString("field0006"));//对应报销人
|
||||
Date date = mainData.getDate("field0017");
|
||||
jsonObject.put("reimbursementDate", sdf.format(date));//对应报销日期
|
||||
if(mainData.getString("field0131") != null && "国内".equals(mainData.getString("field0131"))){
|
||||
jsonObject.put("reimbursementScope", "1");//对应报销所属范围;必填 说明:1为国内、2为海外
|
||||
}else {
|
||||
jsonObject.put("reimbursementScope", "2");//对应报销所属范围;必填 说明:1为国内、2为海外
|
||||
}
|
||||
jsonObject.put("operationType", "CREATE");//对应操作类型
|
||||
|
||||
jsonObject.put("reimbursementAmount", detailArray.getJSONObject(i).getBigDecimal("field0047"));//对应报销金额
|
||||
jsonObject.put("expenseType1", detailArray.getJSONObject(i).getString("field0035"));//对应费用类型
|
||||
jsonObject.put("expenseType2", detailArray.getJSONObject(i).getString("field0036"));//对应费用类型
|
||||
}
|
||||
|
||||
if (zbTableName.equals("formmain_11498")) {//XZ-A新展日常费用报销申请单-个人独立核算
|
||||
jsonObject.put("reimbursementNo", mainData.getString("field0001"));//对应报销单号
|
||||
jsonObject.put("budgetYear", mainData.getString("field0002"));//对应预算年度
|
||||
jsonObject.put("budgetPeriod", mainData.getString("field0003"));//对应预算期数
|
||||
jsonObject.put("caliberInfoType", "2");//对应口径信息类型 1为部门,2为个人
|
||||
jsonObject.put("caliberInfoDep", "");//对应部门口径信息
|
||||
jsonObject.put("caliberInfoPer", mainData.getString("field0006"));//对应个人口径信息
|
||||
jsonObject.put("reimburser", mainData.getString("field0006"));//对应报销人
|
||||
Date date = mainData.getDate("field0017");
|
||||
jsonObject.put("reimbursementDate", sdf.format(date));//对应报销日期
|
||||
if(mainData.getString("field0131") != null && "国内".equals(mainData.getString("field0131"))){
|
||||
jsonObject.put("reimbursementScope", "1");//对应报销所属范围;必填 说明:1为国内、2为海外
|
||||
}else {
|
||||
jsonObject.put("reimbursementScope", "2");//对应报销所属范围;必填 说明:1为国内、2为海外
|
||||
}
|
||||
jsonObject.put("operationType", "CREATE");//对应操作类型
|
||||
|
||||
jsonObject.put("reimbursementAmount", detailArray.getJSONObject(i).getBigDecimal("field0047"));//对应报销金额
|
||||
jsonObject.put("expenseType1", detailArray.getJSONObject(i).getString("field0035"));//对应费用类型
|
||||
jsonObject.put("expenseType2", detailArray.getJSONObject(i).getString("field0036"));//对应费用类型
|
||||
}
|
||||
|
||||
if (zbTableName.equals("formmain_11421")) {//XZ-B差旅报销申请单境内
|
||||
jsonObject.put("reimbursementNo", mainData.getString("field0001"));//对应报销单号
|
||||
jsonObject.put("budgetYear", mainData.getString("field0002"));//对应预算年度
|
||||
jsonObject.put("budgetPeriod", mainData.getString("field0003"));//对应预算期数
|
||||
jsonObject.put("caliberInfoType", "1");//对应口径信息类型 1为部门,2为个人
|
||||
jsonObject.put("caliberInfoDep", mainData.getString("field0191"));//对应部门口径信息
|
||||
jsonObject.put("caliberInfoPer", "");//对应个人口径信息
|
||||
jsonObject.put("reimburser", mainData.getString("field0006"));//对应报销人
|
||||
Date date = mainData.getDate("field0017");
|
||||
jsonObject.put("reimbursementDate", sdf.format(date));//对应报销日期
|
||||
jsonObject.put("reimbursementScope", "1");//对应报销所属范围;必填 说明:1为国内、2为海外
|
||||
jsonObject.put("operationType", "CREATE");//对应操作类型
|
||||
|
||||
jsonObject.put("reimbursementAmount", detailArray.getJSONObject(i).getBigDecimal("field0062"));//对应报销金额
|
||||
jsonObject.put("expenseType1", detailArray.getJSONObject(i).getString("field0054"));//对应费用类型
|
||||
jsonObject.put("expenseType2", detailArray.getJSONObject(i).getString("field0055"));//对应费用类型
|
||||
}
|
||||
|
||||
if (zbTableName.equals("formmain_11521")) {//XZ-B差旅报销申请单境内-个人独立核算
|
||||
jsonObject.put("reimbursementNo", mainData.getString("field0001"));//对应报销单号
|
||||
jsonObject.put("budgetYear", mainData.getString("field0002"));//对应预算年度
|
||||
jsonObject.put("budgetPeriod", mainData.getString("field0003"));//对应预算期数
|
||||
jsonObject.put("caliberInfoType", "2");//对应口径信息类型 1为部门,2为个人
|
||||
jsonObject.put("caliberInfoDep", "");//对应部门口径信息
|
||||
jsonObject.put("caliberInfoPer", mainData.getString("field0006"));//对应个人口径信息
|
||||
jsonObject.put("reimburser", mainData.getString("field0006"));//对应报销人
|
||||
Date date = mainData.getDate("field0017");
|
||||
jsonObject.put("reimbursementDate", sdf.format(date));//对应报销日期
|
||||
jsonObject.put("reimbursementScope", "1");//对应报销所属范围;必填 说明:1为国内、2为海外
|
||||
jsonObject.put("operationType", "CREATE");//对应操作类型
|
||||
|
||||
jsonObject.put("reimbursementAmount", detailArray.getJSONObject(i).getBigDecimal("field0062"));//对应报销金额
|
||||
jsonObject.put("expenseType1", detailArray.getJSONObject(i).getString("field0054"));//对应费用类型
|
||||
jsonObject.put("expenseType2", detailArray.getJSONObject(i).getString("field0055"));//对应费用类型
|
||||
}
|
||||
|
||||
if (zbTableName.equals("formmain_11472")) {//XZ-D新展费用报销申请单-高层
|
||||
jsonObject.put("reimbursementNo", mainData.getString("field0001"));//对应报销单号
|
||||
jsonObject.put("budgetYear", mainData.getString("field0002"));//对应预算年度
|
||||
jsonObject.put("budgetPeriod", mainData.getString("field0003"));//对应预算期数
|
||||
if(mainData.getString("field0020") != null && "-6667798358293724382".equals(mainData.getString("field0020"))){//是
|
||||
jsonObject.put("caliberInfoType", "2");//对应口径信息类型 1为部门,2为个人
|
||||
}else {
|
||||
jsonObject.put("caliberInfoType", "1");//对应口径信息类型 1为部门,2为个人
|
||||
}
|
||||
jsonObject.put("caliberInfoDep", mainData.getString("field0107"));//对应部门口径信息
|
||||
jsonObject.put("caliberInfoPer", mainData.getString("field0006"));//对应个人口径信息
|
||||
jsonObject.put("reimburser", mainData.getString("field0006"));//对应报销人
|
||||
Date date = mainData.getDate("field0017");
|
||||
jsonObject.put("reimbursementDate", sdf.format(date));//对应报销日期
|
||||
if(mainData.getString("field0156") != null && "国内".equals(mainData.getString("field0156"))){
|
||||
jsonObject.put("reimbursementScope", "1");//对应报销所属范围;必填 说明:1为国内、2为海外
|
||||
}else {
|
||||
jsonObject.put("reimbursementScope", "2");//对应报销所属范围;必填 说明:1为国内、2为海外
|
||||
}
|
||||
jsonObject.put("operationType", "CREATE");//对应操作类型
|
||||
|
||||
jsonObject.put("reimbursementAmount", detailArray.getJSONObject(i).getBigDecimal("field0058"));//对应报销金额
|
||||
jsonObject.put("expenseType1", detailArray.getJSONObject(i).getString("field0046"));//对应费用类型
|
||||
jsonObject.put("expenseType2", detailArray.getJSONObject(i).getString("field0047"));//对应费用类型
|
||||
}
|
||||
|
||||
if (zbTableName.equals("formmain_11884")) {//XZ-E差旅报销申请单境外-个人
|
||||
jsonObject.put("reimbursementNo", mainData.getString("field0001"));//对应报销单号
|
||||
jsonObject.put("budgetYear", mainData.getString("field0002"));//对应预算年度
|
||||
jsonObject.put("budgetPeriod", mainData.getString("field0003"));//对应预算期数
|
||||
jsonObject.put("caliberInfoType", "1");//对应口径信息类型 1为部门,2为个人
|
||||
jsonObject.put("caliberInfoDep", mainData.getString("field0099"));//对应部门口径信息
|
||||
jsonObject.put("caliberInfoPer", "");//对应个人口径信息
|
||||
jsonObject.put("reimburser", mainData.getString("field0006"));//对应报销人
|
||||
Date date = mainData.getDate("field0017");
|
||||
jsonObject.put("reimbursementDate", sdf.format(date));//对应报销日期
|
||||
jsonObject.put("reimbursementScope", "2");//对应报销所属范围;必填 说明:1为国内、2为海外
|
||||
jsonObject.put("operationType", "CREATE");//对应操作类型
|
||||
|
||||
jsonObject.put("reimbursementAmount", detailArray.getJSONObject(i).getBigDecimal("field0058"));//对应报销金额
|
||||
jsonObject.put("expenseType1", detailArray.getJSONObject(i).getString("field0046"));//对应费用类型
|
||||
jsonObject.put("expenseType2", detailArray.getJSONObject(i).getString("field0047"));//对应费用类型
|
||||
}
|
||||
|
||||
if (zbTableName.equals("formmain_11526")) {//XZ-F新展日常费用报销对公(有发票)
|
||||
jsonObject.put("reimbursementNo", mainData.getString("field0001"));//对应报销单号
|
||||
jsonObject.put("budgetYear", mainData.getString("field0002"));//对应预算年度
|
||||
jsonObject.put("budgetPeriod", mainData.getString("field0003"));//对应预算期数
|
||||
jsonObject.put("caliberInfoType", "1");//对应口径信息类型 1为部门,2为个人
|
||||
jsonObject.put("caliberInfoDep", mainData.getString("field0098"));//对应部门口径信息
|
||||
jsonObject.put("caliberInfoPer", "");//对应个人口径信息
|
||||
jsonObject.put("reimburser", mainData.getString("field0006"));//对应报销人
|
||||
Date date = mainData.getDate("field0017");
|
||||
jsonObject.put("reimbursementDate", sdf.format(date));//对应报销日期
|
||||
if(mainData.getString("field0135") != null && "国内".equals(mainData.getString("field0135"))){
|
||||
jsonObject.put("reimbursementScope", "1");//对应报销所属范围;必填 说明:1为国内、2为海外
|
||||
}else {
|
||||
jsonObject.put("reimbursementScope", "2");//对应报销所属范围;必填 说明:1为国内、2为海外
|
||||
}
|
||||
jsonObject.put("operationType", "CREATE");//对应操作类型
|
||||
|
||||
jsonObject.put("reimbursementAmount", detailArray.getJSONObject(i).getBigDecimal("field0071"));//对应报销金额
|
||||
jsonObject.put("expenseType1", detailArray.getJSONObject(i).getString("field0031"));//对应费用类型
|
||||
jsonObject.put("expenseType2", detailArray.getJSONObject(i).getString("field0050"));//对应费用类型
|
||||
}
|
||||
|
||||
if (zbTableName.equals("formmain_11489")) {//XZ-G新展日常费用报销对公(无发票)
|
||||
jsonObject.put("reimbursementNo", mainData.getString("field0001"));//对应报销单号
|
||||
jsonObject.put("budgetYear", mainData.getString("field0002"));//对应预算年度
|
||||
jsonObject.put("budgetPeriod", mainData.getString("field0003"));//对应预算期数
|
||||
jsonObject.put("caliberInfoType", "1");//对应口径信息类型 1为部门,2为个人
|
||||
jsonObject.put("caliberInfoDep", mainData.getString("field0098"));//对应部门口径信息
|
||||
jsonObject.put("caliberInfoPer", "");//对应个人口径信息
|
||||
jsonObject.put("reimburser", mainData.getString("field0006"));//对应报销人
|
||||
Date date = mainData.getDate("field0017");
|
||||
jsonObject.put("reimbursementDate", sdf.format(date));//对应报销日期
|
||||
if(mainData.getString("field0134") != null && "国内".equals(mainData.getString("field0134"))){
|
||||
jsonObject.put("reimbursementScope", "1");//对应报销所属范围;必填 说明:1为国内、2为海外
|
||||
}else {
|
||||
jsonObject.put("reimbursementScope", "2");//对应报销所属范围;必填 说明:1为国内、2为海外
|
||||
}
|
||||
jsonObject.put("operationType", "CREATE");//对应操作类型
|
||||
|
||||
jsonObject.put("reimbursementAmount", detailArray.getJSONObject(i).getBigDecimal("field0071"));//对应报销金额
|
||||
jsonObject.put("expenseType1", detailArray.getJSONObject(i).getString("field0031"));//对应费用类型
|
||||
jsonObject.put("expenseType2", detailArray.getJSONObject(i).getString("field0050"));//对应费用类型
|
||||
}
|
||||
|
||||
if (zbTableName.equals("formmain_11475")) {//XZ-H新展付款申请单-高层
|
||||
jsonObject.put("reimbursementNo", mainData.getString("field0001"));//对应报销单号
|
||||
jsonObject.put("budgetYear", mainData.getString("field0002"));//对应预算年度
|
||||
jsonObject.put("budgetPeriod", mainData.getString("field0003"));//对应预算期数
|
||||
if(mainData.getString("field0083") != null && "-6667798358293724382".equals(mainData.getString("field0083"))){//是
|
||||
jsonObject.put("caliberInfoType", "2");//对应口径信息类型 1为部门,2为个人
|
||||
}else {
|
||||
jsonObject.put("caliberInfoType", "1");//对应口径信息类型 1为部门,2为个人
|
||||
}
|
||||
jsonObject.put("caliberInfoDep", mainData.getString("field0098"));//对应部门口径信息
|
||||
jsonObject.put("caliberInfoPer", mainData.getString("field0006"));//对应个人口径信息
|
||||
jsonObject.put("reimburser", mainData.getString("field0006"));//对应报销人
|
||||
Date date = mainData.getDate("field0017");
|
||||
jsonObject.put("reimbursementDate", sdf.format(date));//对应报销日期
|
||||
if(mainData.getString("field0134") != null && "国内".equals(mainData.getString("field0134"))){
|
||||
jsonObject.put("reimbursementScope", "1");//对应报销所属范围;必填 说明:1为国内、2为海外
|
||||
}else {
|
||||
jsonObject.put("reimbursementScope", "2");//对应报销所属范围;必填 说明:1为国内、2为海外
|
||||
}
|
||||
jsonObject.put("operationType", "CREATE");//对应操作类型
|
||||
|
||||
jsonObject.put("reimbursementAmount", detailArray.getJSONObject(i).getBigDecimal("field0071"));//对应报销金额
|
||||
jsonObject.put("expenseType1", detailArray.getJSONObject(i).getString("field0091"));//对应费用类型
|
||||
jsonObject.put("expenseType2", detailArray.getJSONObject(i).getString("field0060"));//对应费用类型
|
||||
}
|
||||
sendJson.add(jsonObject);
|
||||
}
|
||||
return sendJson.toJSONString();
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -209,6 +209,14 @@ public class BusinessServiceImpl extends BaseService<BusinessEntity, String> imp
|
|||
Integer queryCursor = 1;
|
||||
JSONArray datalist = new JSONArray();
|
||||
List<String> a = new ArrayList<>();
|
||||
a.add("2025-09-01");
|
||||
a.add("2025-09-02");
|
||||
a.add("2025-09-03");
|
||||
a.add("2025-09-04");
|
||||
a.add("2025-09-05");
|
||||
a.add("2025-09-06");
|
||||
a.add("2025-09-07");
|
||||
a.add("2025-09-08");
|
||||
a.add("2025-09-09");
|
||||
a.add(times);
|
||||
for (int i = 0; i < a.size(); i++) {
|
||||
|
|
|
@ -365,10 +365,9 @@ public class NuoNuoServiceImpl extends BaseService<NuoNuoEntity, String> impleme
|
|||
detail.put("detailAddress", mainData.getString("field0180"));//不动产详细地址
|
||||
detail.put("realPropertyCertificate", field0177);//规格型号/不动产权证
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
||||
SimpleDateFormat inputFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
Date date = inputFormat.parse(mainData.getString("field0183"));
|
||||
Date date = mainData.getDate("field0183");
|
||||
detail.put("rentStartDate", sdf.format(date));//租赁期起期,停车费业务支持yyyy-MM-dd HH:mm格式
|
||||
Date date1 = inputFormat.parse(mainData.getString("field0184"));
|
||||
Date date1 = mainData.getDate("field0184");
|
||||
detail.put("rentEndDate", sdf.format(date1));//租赁期止期支持yyyy-MM-dd HH:mm格式
|
||||
if (mainData.getString("field0185") != null && "1".equals(mainData.getString("field0185"))) {
|
||||
detail.put("crossCityFlag", 1);//跨地市标志
|
||||
|
@ -404,14 +403,13 @@ public class NuoNuoServiceImpl extends BaseService<NuoNuoEntity, String> impleme
|
|||
asd.append(" ");
|
||||
}
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
||||
SimpleDateFormat inputFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
if(mainData.getString("field0183") != null){
|
||||
Date date = inputFormat.parse(mainData.getString("field0183"));
|
||||
Date date = mainData.getDate("field0183");
|
||||
asd.append(sdf.format(date));
|
||||
asd.append(" ");
|
||||
}
|
||||
if(mainData.getString("field0184") != null){
|
||||
Date date = inputFormat.parse(mainData.getString("field0184"));
|
||||
Date date = mainData.getDate("field0184");
|
||||
asd.append(sdf.format(date));
|
||||
asd.append(" ");
|
||||
}
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<plugin>
|
||||
<id>BudgetExecutionDetailsPlugin</id>
|
||||
<name>BudgetExecutionDetailsPlugin插件</name>
|
||||
<category>20250911001</category>
|
||||
</plugin>
|
|
@ -0,0 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
|
||||
<beans default-autowire="byName">
|
||||
<bean name="budgetExecutionDetailsDao" class="com.hzya.frame.plugin.BudgetExecutionDetails.dao.impl.BudgetExecutionDetailsDaoImpl" />
|
||||
</beans>
|
|
@ -0,0 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
|
||||
<beans default-autowire="byName">
|
||||
<bean name="budgetExecutionDetailsPluginInitializer" class="com.hzya.frame.plugin.BudgetExecutionDetails.plugin.BudgetExecutionDetailsPluginInitializer" />
|
||||
</beans>
|
|
@ -0,0 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
|
||||
<beans default-autowire="byName">
|
||||
<bean name="budgetExecutionDetailsService" class="com.hzya.frame.plugin.BudgetExecutionDetails.service.impl.BudgetExecutionDetailsServiceImpl" />
|
||||
</beans>
|
|
@ -1,12 +1,14 @@
|
|||
package com.hzya.frame;
|
||||
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.hzya.frame.plugin.businessData.dao.IBusinessDao;
|
||||
import com.hzya.frame.plugin.c4project.plugin.LexmisC4ProjectPluginInitializer;
|
||||
import com.hzya.frame.plugin.paymentSlip.service.IPaymentSlipService;
|
||||
import com.hzya.frame.plugin.paymentSlip.service.impl.PaymentSlipServiceImpl;
|
||||
import com.hzya.frame.util.AESUtil;
|
||||
import com.hzya.frame.web.entity.BaseResult;
|
||||
import org.apache.http.HttpEntity;
|
||||
import org.apache.http.client.config.RequestConfig;
|
||||
import org.apache.http.client.methods.CloseableHttpResponse;
|
||||
|
@ -24,6 +26,7 @@ import org.springframework.boot.test.context.SpringBootTest;
|
|||
import org.springframework.test.context.junit4.SpringRunner;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.math.BigDecimal;
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
|
@ -47,7 +50,7 @@ public class temButtom {
|
|||
private LexmisC4ProjectPluginInitializer lexmisC4ProjectPluginInitializer;
|
||||
|
||||
@Test
|
||||
public void test01() {
|
||||
public void test01() throws ParseException {
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
long timestamp = Long.parseLong("1744473600000"); // 字符串转 long
|
||||
|
||||
|
@ -75,12 +78,162 @@ public class temButtom {
|
|||
// e.printStackTrace();
|
||||
//}
|
||||
//String asd = sdf.format(date);
|
||||
String asdasda = "{\"jsonStr\":\"{\\\"affairId\\\":\\\"65490615926082872\\\",\\\"businessDataStr\\\":\\\"{\\\\\\\"formson_11953\\\\\\\":[{\\\\\\\"field0154\\\\\\\":163.79997856,\\\\\\\"field0155\\\\\\\":156,\\\\\\\"field0166\\\\\\\":\\\\\\\"经营租赁\\\\\\\",\\\\\\\"field0177\\\\\\\":\\\\\\\"浙2017,0155337\\\\\\\",\\\\\\\"field0156\\\\\\\":0.05,\\\\\\\"field0178\\\\\\\":\\\\\\\"平方米\\\\\\\",\\\\\\\"formmain_id\\\\\\\":-8403014784906081879,\\\\\\\"field0157\\\\\\\":93.29,\\\\\\\"field0147\\\\\\\":1,\\\\\\\"field0158\\\\\\\":\\\\\\\"3040502020400000000\\\\\\\",\\\\\\\"field0169\\\\\\\":\\\\\\\"1\\\\\\\",\\\\\\\"field0202\\\\\\\":1,\\\\\\\"field0148\\\\\\\":\\\\\\\"房租费\\\\\\\",\\\\\\\"field0159\\\\\\\":727.66,\\\\\\\"field0190\\\\\\\":\\\\\\\"SWJZ-2025043\\\\\\\",\\\\\\\"sort\\\\\\\":1,\\\\\\\"field0170\\\\\\\":\\\\\\\"09\\\\\\\",\\\\\\\"field0192\\\\\\\":\\\\\\\"HL05-013-20250008711\\\\\\\",\\\\\\\"field0160\\\\\\\":14553.24,\\\\\\\"field0193\\\\\\\":\\\\\\\"06\\\\\\\",\\\\\\\"field0149\\\\\\\":15280.9,\\\\\\\"id\\\\\\\":6181348360060813429}],\\\\\\\"formmain_11951\\\\\\\":{\\\\\\\"field0191\\\\\\\":\\\\\\\"B座705室 2025-09-01&2025-11-30 \\\\\\\",\\\\\\\"id\\\\\\\":-8403014784906081879,\\\\\\\"state\\\\\\\":1,\\\\\\\"field0163\\\\\\\":\\\\\\\"0571-88866999\\\\\\\",\\\\\\\"field0164\\\\\\\":\\\\\\\"中国银行杭州市庆春支行\\\\\\\",\\\\\\\"field0165\\\\\\\":\\\\\\\"381858327191\\\\\\\",\\\\\\\"field0001\\\\\\\":\\\\\\\"HL05-013-2025000871\\\\\\\",\\\\\\\"field0122\\\\\\\":\\\\\\\"cmp802\\\\\\\",\\\\\\\"ratifyflag\\\\\\\":0,\\\\\\\"field0167\\\\\\\":\\\\\\\"数电普票(电子)\\\\\\\",\\\\\\\"field0200\\\\\\\":4269396590321421689,\\\\\\\"field0124\\\\\\\":\\\\\\\"7202\\\\\\\",\\\\\\\"field0168\\\\\\\":\\\\\\\"pc\\\\\\\",\\\\\\\"field0201\\\\\\\":\\\\\\\"B座705室\\\\\\\",\\\\\\\"field0005\\\\\\\":\\\\\\\"-5276321587621769733\\\\\\\",\\\\\\\"sort\\\\\\\":0,\\\\\\\"field0161\\\\\\\":\\\\\\\"浙江省杭州市滨江区火炬大道581号D座\\\\\\\",\\\\\\\"field0162\\\\\\\":\\\\\\\"91330000768682555E\\\\\\\",\\\\\\\"ratify_member_id\\\\\\\":\\\\\\\"0\\\\\\\",\\\\\\\"finishedflag\\\\\\\":0,\\\\\\\"field0130\\\\\\\":\\\\\\\"018\\\\\\\",\\\\\\\"field0174\\\\\\\":15280.9,\\\\\\\"field0175\\\\\\\":727.66,\\\\\\\"field0011\\\\\\\":\\\\\\\"2296848734747248917\\\\\\\",\\\\\\\"field0176\\\\\\\":14553.24,\\\\\\\"field0134\\\\\\\":\\\\\\\"浙江省杭州市上城区环站东路859号金龙中心、铭腾大厦A幢-407\\\\\\\",\\\\\\\"field0135\\\\\\\":\\\\\\\"13003673092\\\\\\\",\\\\\\\"field0091\\\\\\\":\\\\\\\"CY000047\\\\\\\",\\\\\\\"field0092\\\\\\\":\\\\\\\"杭州皓诚企业管理有限公司\\\\\\\",\\\\\\\"field0173\\\\\\\":93.29,\\\\\\\"field0006\\\\\\\":\\\\\\\"sw25102\\\\\\\",\\\\\\\"field0007\\\\\\\":\\\\\\\"6247337885813720085\\\\\\\",\\\\\\\"field0128\\\\\\\":\\\\\\\"中国银行股份有限公司杭州湖墅支行\\\\\\\",\\\\\\\"field0129\\\\\\\":\\\\\\\"浙江三维无线科技有限公司\\\\\\\",\\\\\\\"field0009\\\\\\\":\\\\\\\"-7145603844771590658\\\\\\\",\\\\\\\"modify_member_id\\\\\\\":\\\\\\\"2021102011312154727\\\\\\\",\\\\\\\"start_date\\\\\\\":1757493604548,\\\\\\\"field0185\\\\\\\":\\\\\\\"0\\\\\\\",\\\\\\\"field0142\\\\\\\":\\\\\\\"OA01\\\\\\\",\\\\\\\"field0186\\\\\\\":\\\\\\\"2\\\\\\\",\\\\\\\"field0143\\\\\\\":\\\\\\\"SW01\\\\\\\",\\\\\\\"field0187\\\\\\\":\\\\\\\"06\\\\\\\",\\\\\\\"field0144\\\\\\\":\\\\\\\"(36D1-Cxx-F3)\\\\\\\",\\\\\\\"field0024\\\\\\\":\\\\\\\"3847844229251616506\\\\\\\",\\\\\\\"field0189\\\\\\\":7508062739999639242,\\\\\\\"field0146\\\\\\\":\\\\\\\"91330109MA2HXGRK5U\\\\\\\",\\\\\\\"field0180\\\\\\\":\\\\\\\"浙江省杭州市滨江区浦沿街道火炬大道581号\\\\\\\",\\\\\\\"field0182\\\\\\\":\\\\\\\"浙江省杭州市滨江区\\\\\\\",\\\\\\\"field0183\\\\\\\":1756656000000,\\\\\\\"field0184\\\\\\\":1764432000000,\\\\\\\"approve_member_id\\\\\\\":\\\\\\\"0\\\\\\\",\\\\\\\"start_member_id\\\\\\\":\\\\\\\"-5276321587621769733\\\\\\\",\\\\\\\"field0017\\\\\\\":1755619200000,\\\\\\\"field0139\\\\\\\":\\\\\\\"394878199259\\\\\\\",\\\\\\\"modify_date\\\\\\\":1757556515371}}\\\",\\\"formApp\\\":\\\"749147193823937773\\\",\\\"currentActivityId\\\":\\\"\\\",\\\"eventType\\\":\\\"onBeforeFinishWorkitem\\\",\\\"id\\\":\\\"-8403014784906081879\\\"}\",\"eventType\":\"onBeforeFinishWorkitem\",\"formAppId\":\"749147193823937773\"}";
|
||||
JSONObject requestJson = JSONObject.parseObject(asdasda);
|
||||
JSONObject jsonStr = requestJson.getJSONObject("jsonStr");
|
||||
if (jsonStr == null) {
|
||||
}
|
||||
JSONObject businessDataStr = jsonStr.getJSONObject("businessDataStr");
|
||||
if (businessDataStr == null) {
|
||||
}
|
||||
JSONObject mainData = businessDataStr.getJSONObject("formmain_11951");
|
||||
if (mainData == null) {
|
||||
}
|
||||
JSONArray detailArray = businessDataStr.getJSONArray("formson_11953");
|
||||
if (mainData.getString("field0168") != null && "SJ".equals(mainData.getString("field0168"))) {
|
||||
}
|
||||
if (mainData.getString("field0150") != null && !"".equals(mainData.getString("field0150"))) {
|
||||
}
|
||||
JSONObject jsonObject = getSendData(mainData,detailArray);
|
||||
String a = AESUtil.encrypt("hzya@1314");
|
||||
System.out.println(a);
|
||||
String b = AESUtil.decrypt("62e4295b615a30dbf3b8ee96f41c820b");
|
||||
System.out.println(b);
|
||||
}
|
||||
private JSONObject getSendData(JSONObject mainData, JSONArray detailArray) throws ParseException {
|
||||
JSONObject sendData = new JSONObject();
|
||||
sendData.put("buyerName", mainData.getString("field0092"));//购方名称
|
||||
sendData.put("buyerTaxnum", mainData.getString("field0146"));//购方税号
|
||||
sendData.put("buyerAddress", mainData.getString("field0134"));//购方地址
|
||||
sendData.put("buyerPhone", mainData.getString("field0135"));//购方电话
|
||||
sendData.put("buyerBank", mainData.getString("field0128"));//购方开户行
|
||||
sendData.put("buyerAccount", mainData.getString("field0139"));//购方银行账号
|
||||
sendData.put("orderNo", mainData.getString("field0001"));//订单编号
|
||||
//sendData.put("bizCallbackUrl", "http://10.0.2.112:9021/kangarooDataCenterV3/entranceController/nuoNuoCallback");//回调地址测试
|
||||
sendData.put("bizCallbackUrl","http://10.0.2.112:9011/kangarooDataCenterV3/entranceController/nuoNuoCallback");//回调地址正式
|
||||
sendData.put("sellerName", mainData.getString("field0129"));//销方名称
|
||||
sendData.put("sellerTaxnum", mainData.getString("field0162"));//销方税号
|
||||
sendData.put("sellerAddress", mainData.getString("field0161"));//销方地址
|
||||
sendData.put("sellerPhone", mainData.getString("field0163"));//销方电话
|
||||
sendData.put("sellerBank", mainData.getString("field0164"));//销方开户银行
|
||||
sendData.put("sellerAccount", mainData.getString("field0165"));//销方银行账号
|
||||
sendData.put("invoiceLine", mainData.getString("field0168"));//发票种类,bs:数电专票(电子),pc:数电普票(电子)
|
||||
sendData.put("invoiceType", 1);//开票类型,1:蓝票;2:红票
|
||||
sendData.put("substituteFlag", 0);//代开标志,0:非代开;1:代开。
|
||||
sendData.put("listFlag", 0);//清单标志,0:非清单;1:清单
|
||||
sendData.put("notifyType", -1);//推送方式,-1:不推送;0:邮箱;1:手机(默认);2:邮箱、手机;3:根据交付手机、邮箱动态交付
|
||||
sendData.put("requestSrc", 0);//请求来源,0 :api接口
|
||||
sendData.put("checkBlue", 0);//开具红票时是否校验蓝票 0.校验蓝票是否存在诺税通 1.不校验蓝票是否存在诺税通但校验可冲红金额 2.不校验蓝票是否存在诺税通且不校验可冲红金额
|
||||
JSONArray sendArray = new JSONArray();
|
||||
|
||||
String ys = null;
|
||||
String field0177 = null;
|
||||
String field0190 = null;
|
||||
if (detailArray != null && detailArray.size() > 0) {
|
||||
for (int i = 0; i < detailArray.size(); i++) {
|
||||
if (detailArray.getJSONObject(i).getString("field0193") != null && "06".equals(detailArray.getJSONObject(i).getString("field0193"))) {
|
||||
ys = "06";
|
||||
field0177 = detailArray.getJSONObject(i).getString("field0177");
|
||||
}
|
||||
if (detailArray.getJSONObject(i).getString("field0193") != null && "03".equals(detailArray.getJSONObject(i).getString("field0193"))) {
|
||||
ys = "03";
|
||||
field0190 = detailArray.getJSONObject(i).getString("field0190");
|
||||
}
|
||||
JSONObject detail = new JSONObject();
|
||||
detail.put("detailIndex", detailArray.getJSONObject(i).getString("field0147"));//明细序号数电票明细行必须从1开始编号
|
||||
detail.put("detailType", 0);//明细行性质:0,正常行;1,折扣行;2,被折扣行
|
||||
detail.put("goodsName", detailArray.getJSONObject(i).getString("field0148"));//商品名称
|
||||
if (detailArray.getJSONObject(i).getString("field0159") != null && !"".equals(detailArray.getJSONObject(i).getString("field0159"))
|
||||
&& detailArray.getJSONObject(i).getBigDecimal("field0159").compareTo(BigDecimal.ONE) == 0 //税额
|
||||
) {
|
||||
detail.put("withTaxFlag", 0);//含税标志,0:不含税,1:含税
|
||||
} else {
|
||||
detail.put("withTaxFlag", 1);//含税标志,0:不含税,1:含税
|
||||
}
|
||||
if(ys == null || !"03".equals(ys)){
|
||||
detail.put("goodsPrice", detailArray.getJSONObject(i).getString("field0154"));//含税单价
|
||||
detail.put("taxFreePrice", detailArray.getJSONObject(i).getString("field0155"));//不含税单价
|
||||
detail.put("goodsNum", detailArray.getJSONObject(i).getString("field0157"));//数量
|
||||
}
|
||||
detail.put("taxrate", detailArray.getJSONObject(i).getString("field0156"));//税率
|
||||
detail.put("goodsCode", detailArray.getJSONObject(i).getString("field0158"));//税收分类编码
|
||||
detail.put("favouredPolicyCode", detailArray.getJSONObject(i).getString("field0170"));//优惠政策编码
|
||||
detail.put("deduction", detailArray.getJSONObject(i).getString("field0172"));//扣除额
|
||||
detail.put("taxFreeAmount", detailArray.getJSONObject(i).getString("field0160"));//不含税金额
|
||||
detail.put("tax", detailArray.getJSONObject(i).getString("field0159"));//税额
|
||||
detail.put("taxAmount", detailArray.getJSONObject(i).getString("field0149"));//含税金额
|
||||
if (detailArray.getJSONObject(i).getString("field0147") != null && !"".equals(detailArray.getJSONObject(i).getString("field0147"))) {
|
||||
detail.put("favouredPolicyFlag", "1");//优惠政策标识,0:不使用;1:使用 数电发票时为空,仅传入优惠政策编码即可
|
||||
} else {
|
||||
detail.put("favouredPolicyFlag", "0");//优惠政策标识,0:不使用;1:使用 数电发票时为空,仅传入优惠政策编码即可
|
||||
}
|
||||
sendArray.add(detail);
|
||||
}
|
||||
}
|
||||
sendData.put("detail", sendArray);
|
||||
if ("06".equals(ys)) {
|
||||
sendData.put("specificFactor", "06");//不动产租赁发票
|
||||
JSONArray realPropertyRentInfoList = new JSONArray();
|
||||
JSONObject detail = new JSONObject();
|
||||
detail.put("realPropertyAddress", mainData.getString("field0182"));//不动产地址
|
||||
detail.put("detailAddress", mainData.getString("field0180"));//不动产详细地址
|
||||
detail.put("realPropertyCertificate", field0177);//规格型号/不动产权证
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
||||
Date date = mainData.getDate("field0183");
|
||||
detail.put("rentStartDate", sdf.format(date));//租赁期起期,停车费业务支持yyyy-MM-dd HH:mm格式
|
||||
Date date1 = mainData.getDate("field0184");
|
||||
detail.put("rentEndDate", sdf.format(date1));//租赁期止期支持yyyy-MM-dd HH:mm格式
|
||||
if (mainData.getString("field0185") != null && "1".equals(mainData.getString("field0185"))) {
|
||||
detail.put("crossCityFlag", 1);//跨地市标志
|
||||
} else {
|
||||
detail.put("crossCityFlag", 0);//跨地市标志
|
||||
}
|
||||
detail.put("unit", mainData.getString("field0186"));//面积单位(默认平方米)
|
||||
realPropertyRentInfoList.add(detail);
|
||||
sendData.put("realPropertyRentInfoList", realPropertyRentInfoList);//不动产租赁发票
|
||||
}else if ("03".equals(ys)) {
|
||||
sendData.put("specificFactor", "03");//建筑服务
|
||||
JSONObject detail = new JSONObject();
|
||||
detail.put("buildingAddress", mainData.getString("field0182"));//建筑服务发生地
|
||||
detail.put("detailedAddress", mainData.getString("field0180"));//不动产详细地址
|
||||
detail.put("landVatItemNo", mainData.getString("field0194"));//土地增值税项目编号
|
||||
detail.put("itemName", field0190);//项目名称
|
||||
detail.put("taxRelatedNumber", mainData.getString("field0196"));//跨区域涉税事项报验管理编号
|
||||
|
||||
if (mainData.getString("field0185") != null && "1".equals(mainData.getString("field0185"))) {
|
||||
detail.put("crossCityFlag", 1);//跨地市标志
|
||||
} else {
|
||||
detail.put("crossCityFlag", 0);//跨地市标志
|
||||
}
|
||||
sendData.put("invoiceBuildingInfo", detail);//不动产租赁发票
|
||||
}else {
|
||||
StringBuffer asd = new StringBuffer();
|
||||
if(mainData.getString("field0179") != null){
|
||||
asd.append(mainData.getString("field0179"));
|
||||
asd.append(" ");
|
||||
}
|
||||
if(mainData.getString("field0180") != null){
|
||||
asd.append(mainData.getString("field0180"));
|
||||
asd.append(" ");
|
||||
}
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
||||
SimpleDateFormat inputFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
if(mainData.getString("field0183") != null){
|
||||
Date date = inputFormat.parse(mainData.getString("field0183"));
|
||||
asd.append(sdf.format(date));
|
||||
asd.append(" ");
|
||||
}
|
||||
if(mainData.getString("field0184") != null){
|
||||
Date date = inputFormat.parse(mainData.getString("field0184"));
|
||||
asd.append(sdf.format(date));
|
||||
asd.append(" ");
|
||||
}
|
||||
if(asd != null && !"".equals(asd.toString())){
|
||||
sendData.put("remark",asd.toString());
|
||||
}
|
||||
}
|
||||
return sendData;
|
||||
}
|
||||
|
||||
//@Test
|
||||
public void test02() {
|
||||
|
|
Loading…
Reference in New Issue