From 9621882a04dda963b5db2a1fd90c371ea6bf5556 Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Fri, 11 Oct 2024 09:10:33 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A2=86=E6=82=A6=E6=8E=A8=E9=80=81uc?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/ly/param/LyVoucherPushParam.java | 5 + .../salary/service/impl/LyPZServiceImpl.java | 370 +++++++++--------- 2 files changed, 196 insertions(+), 179 deletions(-) diff --git a/src/com/engine/salary/entity/ly/param/LyVoucherPushParam.java b/src/com/engine/salary/entity/ly/param/LyVoucherPushParam.java index b1ca27d41..d04cad174 100644 --- a/src/com/engine/salary/entity/ly/param/LyVoucherPushParam.java +++ b/src/com/engine/salary/entity/ly/param/LyVoucherPushParam.java @@ -52,5 +52,10 @@ public class LyVoucherPushParam { */ private List details; + /** + * 账簿编码 + */ + private String zbbm; + } diff --git a/src/com/engine/salary/service/impl/LyPZServiceImpl.java b/src/com/engine/salary/service/impl/LyPZServiceImpl.java index 38facdbc7..5e721be77 100644 --- a/src/com/engine/salary/service/impl/LyPZServiceImpl.java +++ b/src/com/engine/salary/service/impl/LyPZServiceImpl.java @@ -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 jfDetailList = new ArrayList<>(); - // List 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 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 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 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 = "" + 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 jfDetailList = new ArrayList<>(); + List 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 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 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 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"); + // "" + 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 kmbmInfoMap = new HashMap<>(); List allKjkm = getUfKjkmMapper().listAll();