领悦推送uc

This commit is contained in:
Harryxzy 2024-10-11 09:10:33 +08:00
parent 8803052577
commit 9621882a04
2 changed files with 196 additions and 179 deletions

View File

@ -52,5 +52,10 @@ public class LyVoucherPushParam {
*/
private List<LyVoucherDetailPushParam> details;
/**
* 账簿编码
*/
private String zbbm;
}

View File

@ -6,10 +6,7 @@ import com.engine.common.util.ServiceUtil;
import com.engine.core.impl.Service;
import com.engine.salary.entity.hrm.DeptInfo;
import com.engine.salary.entity.hrm.SubCompanyInfo;
import com.engine.salary.entity.ly.dto.LyFzhsBrowser;
import com.engine.salary.entity.ly.dto.LyFzhsInfo;
import com.engine.salary.entity.ly.dto.LyPzPreview;
import com.engine.salary.entity.ly.dto.LyVoucherDetailDTO;
import com.engine.salary.entity.ly.dto.*;
import com.engine.salary.entity.ly.param.*;
import com.engine.salary.entity.ly.po.*;
import com.engine.salary.entity.salaryformula.ExpressFormula;
@ -31,10 +28,15 @@ import com.engine.salary.util.db.IdGenerator;
import com.engine.salary.util.db.MapperProxyFactory;
import com.engine.salary.util.page.PageInfo;
import com.engine.salary.util.page.SalaryPageUtil;
import com.engine.salary.util.xml.XStreamUtil;
import com.google.common.collect.Lists;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.MapUtils;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.methods.RequestEntity;
import org.apache.commons.httpclient.methods.StringRequestEntity;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang3.math.NumberUtils;
import weaver.conn.RecordSet;
@ -696,181 +698,188 @@ public class LyPZServiceImpl extends Service implements LyPZService {
private void pushVoucher(LyVoucherPushParam pushParam) {
pushParam.setStatus(NumberUtils.INTEGER_ONE);
pushParam.setPushMsg("推送成功");
// Calendar cal = Calendar.getInstance();
// cal.setTime(new Date());
//
// LyNCVoucher lyNCVoucher = new LyNCVoucher();
// // 凭证类别 非空 凭证类别)
// lyNCVoucher.setPkVouchertype("01");
// // 会计年度 非空
// lyNCVoucher.setYear(String.valueOf(cal.get(Calendar.YEAR)));
// // 来源系统 非空 只支持模块编号
// lyNCVoucher.setPkSystem("GL");
// // 凭证类型值 0正常凭证 3数量调整凭证 不可空
// lyNCVoucher.setVoucherkind("0");
// // 核算账簿 非空 账簿_财务核算账簿
// lyNCVoucher.setPkAccountingbook("201-0003");
// // 会计期间 非空
// lyNCVoucher.setPeriod("02");
// // 制单日期 非空
// lyNCVoucher.setPrepareddate("2024-02-22 00:00:00");
// // 制单人 非空 用户
// lyNCVoucher.setPkPrepared("fw");
// //所属组织 非空 组织
// lyNCVoucher.setPkOrg("101");
// lyNCVoucher.setDiscardflag("N");
//
//
// List<LyVoucherDetailPushParam> jfDetailList = new ArrayList<>();
// List<LyVoucherDetailPushParam> dfDetailList = new ArrayList<>();
// pushParam.getDetails().stream().forEach(detail -> {
// if ((StringUtils.isNotBlank(detail.getJfValue())) && (!"0.00".equals(detail.getJfValue()))) {
// jfDetailList.add(detail);
// } else {
// dfDetailList.add(detail);
// }
// });
// ArrayList<LyNCVoucherDetail> lyNCVoucherDetailList = new ArrayList<>();
// // 借方分录
// for (int i = 0; i < jfDetailList.size(); i++) {
// LyVoucherDetailPushParam detailParam = jfDetailList.get(i);
// LyNCVoucherDetail lyNCVoucherDetail = new LyNCVoucherDetail();
// // 分录号 非空
// lyNCVoucherDetail.setDetailindex(String.valueOf(i+1));
// // 摘要 非空
// lyNCVoucherDetail.setExplanation(detailParam.getZy());
// // 折本汇率
// lyNCVoucherDetail.setExcrate2("1");
// // 原币借方金额
// lyNCVoucherDetail.setDebitamount(detailParam.getJfValue());
// // 本币借方金额 可空
// lyNCVoucherDetail.setLocaldebitamount(detailParam.getJfValue());
// // 币种 非空
// lyNCVoucherDetail.setPkCurrtype("CNY");
// // 科目 非空
// String kjkm = detailParam.getKjkm();
// String kjkmbm = kjkm.split("\\\\")[0];
// lyNCVoucherDetail.setPkAccasoa(kjkmbm);
// // 辅助核算
// List<LyNCVoucherAss> lyNCVoucherAssList = new ArrayList<>();
// if (StringUtils.isNotBlank(detailParam.getFzhsXmqs())) {
// LyNCVoucherAss ass = new LyNCVoucherAss();
// ass.setPkChecktype("");
// ass.setPkCheckvalue(detailParam.getFzhsXmqs());
// lyNCVoucherAssList.add(ass);
// }
// if (StringUtils.isNotBlank(detailParam.getFzhsFwlb())) {
// LyNCVoucherAss ass = new LyNCVoucherAss();
// ass.setPkChecktype("");
// ass.setPkCheckvalue(detailParam.getFzhsFwlb());
// lyNCVoucherAssList.add(ass);
// }
// if (StringUtils.isNotBlank(detailParam.getFzhsSllb())) {
// LyNCVoucherAss ass = new LyNCVoucherAss();
// ass.setPkChecktype("");
// ass.setPkCheckvalue(detailParam.getFzhsSllb());
// lyNCVoucherAssList.add(ass);
// }
// if (StringUtils.isNotBlank(detailParam.getFzhsKs())) {
// LyNCVoucherAss ass = new LyNCVoucherAss();
// ass.setPkChecktype("");
// ass.setPkCheckvalue(detailParam.getFzhsKs());
// lyNCVoucherAssList.add(ass);
// }
// lyNCVoucherDetail.setAss(lyNCVoucherAssList);
// lyNCVoucherDetailList.add(lyNCVoucherDetail);
// }
//
// // 贷方分录
// for (int i = 0; i < dfDetailList.size(); i++) {
// LyVoucherDetailPushParam detailParam = dfDetailList.get(i);
// LyNCVoucherDetail lyNCVoucherDetail = new LyNCVoucherDetail();
// // 分录号 非空
// lyNCVoucherDetail.setDetailindex(lyNCVoucherDetailList.size() + String.valueOf(i+1));
// // 摘要 非空
// lyNCVoucherDetail.setExplanation(detailParam.getZy());
// // 折本汇率
// lyNCVoucherDetail.setExcrate2("1");
// // 原币借方金额
// lyNCVoucherDetail.setCreditamount(detailParam.getDfValue());
// // 本币借方金额 可空
// lyNCVoucherDetail.setLocalcreditamount(detailParam.getDfValue());
// // 币种 非空
// lyNCVoucherDetail.setPkCurrtype("CNY");
// // 科目 非空
// String kjkm = detailParam.getKjkm();
// String kjkmbm = kjkm.split("\\\\")[0];
// lyNCVoucherDetail.setPkAccasoa(kjkmbm);
// // 辅助核算
// List<LyNCVoucherAss> lyNCVoucherAssList = new ArrayList<>();
// if (StringUtils.isNotBlank(detailParam.getFzhsXmqs())) {
// LyNCVoucherAss ass = new LyNCVoucherAss();
// ass.setPkChecktype("");
// ass.setPkCheckvalue(detailParam.getFzhsXmqs());
// lyNCVoucherAssList.add(ass);
// }
// if (StringUtils.isNotBlank(detailParam.getFzhsFwlb())) {
// LyNCVoucherAss ass = new LyNCVoucherAss();
// ass.setPkChecktype("");
// ass.setPkCheckvalue(detailParam.getFzhsFwlb());
// lyNCVoucherAssList.add(ass);
// }
// if (StringUtils.isNotBlank(detailParam.getFzhsSllb())) {
// LyNCVoucherAss ass = new LyNCVoucherAss();
// ass.setPkChecktype("");
// ass.setPkCheckvalue(detailParam.getFzhsSllb());
// lyNCVoucherAssList.add(ass);
// }
// if (StringUtils.isNotBlank(detailParam.getFzhsKs())) {
// LyNCVoucherAss ass = new LyNCVoucherAss();
// ass.setPkChecktype("");
// ass.setPkCheckvalue(detailParam.getFzhsKs());
// lyNCVoucherAssList.add(ass);
// }
// lyNCVoucherDetail.setAss(lyNCVoucherAssList);
// lyNCVoucherDetailList.add(lyNCVoucherDetail);
// }
// lyNCVoucher.setDetails(lyNCVoucherDetailList);
// LyNCVoucherHead voucherHead = new LyNCVoucherHead();
// voucherHead.setVoucherHead(lyNCVoucher);
//
// LyNCVoucherUfinterface lyNCVoucherUfinterface = new LyNCVoucherUfinterface();
// lyNCVoucherUfinterface.setVoucher(voucherHead);
// lyNCVoucherUfinterface.setAccount("develop");
// lyNCVoucherUfinterface.setBilltype("vouchergl");
// lyNCVoucherUfinterface.setBusinessunitcode("develop");
// lyNCVoucherUfinterface.setFilename("");
// lyNCVoucherUfinterface.setGroupcode("");
// lyNCVoucherUfinterface.setIsexchange("");
// lyNCVoucherUfinterface.setOrgcode("");
// lyNCVoucherUfinterface.setReceiver("0001121000000000JIYO");
// lyNCVoucherUfinterface.setReplace("");
// lyNCVoucherUfinterface.setRoottag("");
// lyNCVoucherUfinterface.setSender("OA");
//
// String xml = "<?xml version=\"1.0\" encoding='UTF-8'?>" + XStreamUtil.marshal(lyNCVoucherUfinterface);
// System.out.println(xml);
//
//
// HttpClient httpClient = new HttpClient();
// PostMethod httpPost = new PostMethod("http://172.18.0.10:8090/service/XChangeServlet?account=002&groupcode=leading");
// httpPost.setRequestHeader("content-type", "application/json;charset=utf-8");
//
// String result = "";
// try {
// RequestEntity entity = new StringRequestEntity(xml, "application/json", "UTF-8");
// httpPost.setRequestEntity(entity);
// httpClient.executeMethod(httpPost);
// result = httpPost.getResponseBodyAsString();
// System.out.println(result);
// LyNCVoucherReturn lyNCVoucherReturn = XStreamUtil.unmarshal(LyNCVoucherReturn.class, result);
// System.out.println(lyNCVoucherReturn);
//
//
// } catch (Exception e) {
// System.out.println("d");
// }
// throw new SalaryRunTimeException("hi");
Calendar cal = Calendar.getInstance();
cal.setTime(new Date());
LyNCVoucher lyNCVoucher = new LyNCVoucher();
// 凭证类别 非空 凭证类别)
lyNCVoucher.setPkVouchertype("01");
// 会计年度 非空
lyNCVoucher.setYear(String.valueOf(cal.get(Calendar.YEAR)));
// 来源系统 非空 只支持模块编号
lyNCVoucher.setPkSystem("GL");
// 凭证类型值 0正常凭证 3数量调整凭证 不可空
lyNCVoucher.setVoucherkind("0");
// 核算账簿 非空 账簿_财务核算账簿
lyNCVoucher.setPkAccountingbook("201-0003");
// 会计期间 非空
lyNCVoucher.setPeriod(String.valueOf(cal.get(Calendar.MONTH)+1));
// 制单日期 非空
lyNCVoucher.setPrepareddate(SalaryDateUtil.getFormatLocalDateTime(new Date()));
// 制单人 非空 用户
lyNCVoucher.setPkPrepared("fw");
//所属组织 非空 组织
// lyNCVoucher.setPkOrg(pushParam.getZbbm().split("-")[0]);
lyNCVoucher.setPkOrg("201");
lyNCVoucher.setDiscardflag("N");
List<LyVoucherDetailPushParam> jfDetailList = new ArrayList<>();
List<LyVoucherDetailPushParam> dfDetailList = new ArrayList<>();
pushParam.getDetails().stream().forEach(detail -> {
if ((StringUtils.isNotBlank(detail.getJfValue())) && (!"0.00".equals(detail.getJfValue()))) {
jfDetailList.add(detail);
} else {
dfDetailList.add(detail);
}
});
ArrayList<LyNCVoucherDetail> lyNCVoucherDetailList = new ArrayList<>();
// 借方分录
for (int i = 0; i < jfDetailList.size(); i++) {
LyVoucherDetailPushParam detailParam = jfDetailList.get(i);
LyNCVoucherDetail lyNCVoucherDetail = new LyNCVoucherDetail();
// 分录号 非空
lyNCVoucherDetail.setDetailindex(String.valueOf(i+1));
// 摘要 非空
lyNCVoucherDetail.setExplanation(detailParam.getZy());
// 折本汇率
lyNCVoucherDetail.setExcrate2("1");
// 原币借方金额
lyNCVoucherDetail.setDebitamount(detailParam.getJfValue());
// 本币借方金额 可空
lyNCVoucherDetail.setLocaldebitamount(detailParam.getJfValue());
// 币种 非空
lyNCVoucherDetail.setPkCurrtype("CNY");
// 科目 非空
String kjkm = detailParam.getKjkm();
String kjkmbm = kjkm.split("\\\\")[0];
lyNCVoucherDetail.setPkAccasoa(kjkmbm);
// 辅助核算
List<LyNCVoucherAss> lyNCVoucherAssList = new ArrayList<>();
if (StringUtils.isNotBlank(detailParam.getFzhsXmqs())) {
// 项目期数
LyNCVoucherAss ass = new LyNCVoucherAss();
ass.setPkChecktype("0010");
ass.setPkCheckvalue(detailParam.getFzhsXmqs());
lyNCVoucherAssList.add(ass);
}
if (StringUtils.isNotBlank(detailParam.getFzhsFwlb())) {
// 房屋列别
LyNCVoucherAss ass = new LyNCVoucherAss();
ass.setPkChecktype("xz001");
ass.setPkCheckvalue(detailParam.getFzhsFwlb());
lyNCVoucherAssList.add(ass);
}
if (StringUtils.isNotBlank(detailParam.getFzhsSllb())) {
// 税率类别
LyNCVoucherAss ass = new LyNCVoucherAss();
ass.setPkChecktype("yy001");
ass.setPkCheckvalue(detailParam.getFzhsSllb());
lyNCVoucherAssList.add(ass);
}
if (StringUtils.isNotBlank(detailParam.getFzhsKs())) {
LyNCVoucherAss ass = new LyNCVoucherAss();
// 客商
ass.setPkChecktype("0004");
ass.setPkCheckvalue(detailParam.getFzhsKs());
lyNCVoucherAssList.add(ass);
}
// TODO 其他
lyNCVoucherDetail.setAss(lyNCVoucherAssList);
lyNCVoucherDetailList.add(lyNCVoucherDetail);
}
// 贷方分录
for (int i = 0; i < dfDetailList.size(); i++) {
LyVoucherDetailPushParam detailParam = dfDetailList.get(i);
LyNCVoucherDetail lyNCVoucherDetail = new LyNCVoucherDetail();
// 分录号 非空
lyNCVoucherDetail.setDetailindex(lyNCVoucherDetailList.size() + String.valueOf(i+1));
// 摘要 非空
lyNCVoucherDetail.setExplanation(detailParam.getZy());
// 折本汇率
lyNCVoucherDetail.setExcrate2("1");
// 原币借方金额
lyNCVoucherDetail.setCreditamount(detailParam.getDfValue());
// 本币借方金额 可空
lyNCVoucherDetail.setLocalcreditamount(detailParam.getDfValue());
// 币种 非空
lyNCVoucherDetail.setPkCurrtype("CNY");
// 科目 非空
String kjkm = detailParam.getKjkm();
String kjkmbm = kjkm.split("\\\\")[0];
lyNCVoucherDetail.setPkAccasoa(kjkmbm);
// 辅助核算
List<LyNCVoucherAss> lyNCVoucherAssList = new ArrayList<>();
if (StringUtils.isNotBlank(detailParam.getFzhsXmqs())) {
LyNCVoucherAss ass = new LyNCVoucherAss();
ass.setPkChecktype("0010");
ass.setPkCheckvalue(detailParam.getFzhsXmqs());
lyNCVoucherAssList.add(ass);
}
if (StringUtils.isNotBlank(detailParam.getFzhsFwlb())) {
LyNCVoucherAss ass = new LyNCVoucherAss();
ass.setPkChecktype("xz001");
ass.setPkCheckvalue(detailParam.getFzhsFwlb());
lyNCVoucherAssList.add(ass);
}
if (StringUtils.isNotBlank(detailParam.getFzhsSllb())) {
LyNCVoucherAss ass = new LyNCVoucherAss();
ass.setPkChecktype("yy001");
ass.setPkCheckvalue(detailParam.getFzhsSllb());
lyNCVoucherAssList.add(ass);
}
if (StringUtils.isNotBlank(detailParam.getFzhsKs())) {
LyNCVoucherAss ass = new LyNCVoucherAss();
ass.setPkChecktype("0004");
ass.setPkCheckvalue(detailParam.getFzhsKs());
lyNCVoucherAssList.add(ass);
}
// todo 其他
lyNCVoucherDetail.setAss(lyNCVoucherAssList);
lyNCVoucherDetailList.add(lyNCVoucherDetail);
}
lyNCVoucher.setDetails(lyNCVoucherDetailList);
LyNCVoucherHead voucherHead = new LyNCVoucherHead();
voucherHead.setVoucherHead(lyNCVoucher);
LyNCVoucherUfinterface lyNCVoucherUfinterface = new LyNCVoucherUfinterface();
lyNCVoucherUfinterface.setVoucher(voucherHead);
lyNCVoucherUfinterface.setAccount("develop");
lyNCVoucherUfinterface.setBilltype("vouchergl");
lyNCVoucherUfinterface.setBusinessunitcode("develop");
lyNCVoucherUfinterface.setFilename("");
lyNCVoucherUfinterface.setGroupcode("");
lyNCVoucherUfinterface.setIsexchange("");
lyNCVoucherUfinterface.setOrgcode("");
lyNCVoucherUfinterface.setReceiver("");
lyNCVoucherUfinterface.setReplace("");
lyNCVoucherUfinterface.setRoottag("");
lyNCVoucherUfinterface.setSender("OA");
// "<?xml version=\"1.0\" encoding='gb2312'?>"
String xml = XStreamUtil.marshal(lyNCVoucherUfinterface);
System.out.println(xml);
HttpClient httpClient = new HttpClient();
PostMethod httpPost = new PostMethod("http://172.18.0.10:8090/service/XChangeServlet?account=002&groupcode=leading");
httpPost.setRequestHeader("content-type", "application/json;charset=utf-8");
String result = "";
try {
RequestEntity entity = new StringRequestEntity(xml, "application/json", "UTF-8");
httpPost.setRequestEntity(entity);
httpClient.executeMethod(httpPost);
result = httpPost.getResponseBodyAsString();
System.out.println(result);
LyNCVoucherReturn lyNCVoucherReturn = XStreamUtil.unmarshal(LyNCVoucherReturn.class, result);
System.out.println(lyNCVoucherReturn);
} catch (Exception e) {
System.out.println("d");
}
throw new SalaryRunTimeException("hi");
// test 生成xml
@ -917,6 +926,9 @@ public class LyPZServiceImpl extends Service implements LyPZService {
* @param pushParam
*/
private void verifyKjkm(LyVoucherPushParam pushParam) {
// if(StringUtils.isBlank(pushParam.getZbbm())) {
// throw new SalaryRunTimeException("账簿编码不能为空");
// }
// 校验科目id是否合规
Map<String, String> kmbmInfoMap = new HashMap<>();
List<UfKjkmPO> allKjkm = getUfKjkmMapper().listAll();