|
@@ -89,6 +89,7 @@ public class ZxtdReportServiceImpl implements ZxtdReportService {
|
|
|
formUuid.put("OTHER_PAYABLE","FORM-48CCA085CFDF4DC3B036A880F77842ED273S");// 其他应付账款表
|
|
|
formUuid.put("INCOME","FORM-DA4BC7EA522E4D59A9233C507206D291N1XX");// 收入申请表
|
|
|
formUuid.put("PAY","FORM-DE36121157B74774B5C8462E38519269OAVS");// 支出申请表
|
|
|
+ formUuid.put("ARTIFICIAL","FORM-52CEBFBA6D56413993E1F5075A493FDCVXVT");// 资产负债手动维护表
|
|
|
} else {
|
|
|
formUuid.put("DOMAIN", "https://nxcyz4.aliwork.com/");
|
|
|
}
|
|
@@ -112,6 +113,25 @@ public class ZxtdReportServiceImpl implements ZxtdReportService {
|
|
|
Map mainData=new HashMap();
|
|
|
mainData.put("year",year);
|
|
|
|
|
|
+ // 计算费用合计 与 净利润
|
|
|
+ String payTotalKey="payTotalAmt";
|
|
|
+ String payTotalAmtTotal="0";
|
|
|
+ String netProfitKey="netProfitAmt";
|
|
|
+ String netProfitTotal="0";
|
|
|
+ for (int i = 1; i < 13; i++) {
|
|
|
+ // 费用合计
|
|
|
+ String amt=addAmt(PROFIT_SUM,1,4,i);// 第一位数据是收入,不参与计算
|
|
|
+ mainData.put(payTotalKey+i,amt);
|
|
|
+ payTotalAmtTotal=NumberUtil.add(amt,payTotalAmtTotal).toString();
|
|
|
+ // 净利润
|
|
|
+ String net=subAmt(PROFIT_SUM,1,4,i);
|
|
|
+ mainData.put(netProfitKey+i,net);
|
|
|
+ netProfitTotal=NumberUtil.add(netProfitTotal,net).toString();
|
|
|
+ }
|
|
|
+ mainData.put("payTotalAmtTotal",payTotalAmtTotal);
|
|
|
+ mainData.put("netProfitTotal",netProfitTotal);
|
|
|
+
|
|
|
+
|
|
|
//获取股东分红、长期投资、退投资款
|
|
|
List<Map> payDataList = getYdFormDataList(_matchFormUuid("PAY"),JSONObject.toJSONString(UtilMap.map("textField_lqvpypje", year)),YDConf.FORM_QUERY.retrieve_list);
|
|
|
String fenhong = "fenhong";
|
|
@@ -123,22 +143,43 @@ public class ZxtdReportServiceImpl implements ZxtdReportService {
|
|
|
String subject = formData.get("selectField_lp9j90w8") == null ? "" : formData.get("selectField_lp9j90w8").toString();
|
|
|
if (Objects.nonNull(formData.get("textField_lqvpypje"))){
|
|
|
String year2 = formData.get("textField_lqvpypje").toString();
|
|
|
- String month = year2.substring(5);
|
|
|
+ String month = year2.substring(6);
|
|
|
String amt = formData.get("numberField_lp82nads").toString();
|
|
|
|
|
|
- if(subject.equals("分红")){
|
|
|
+ if(subject.equals("FH")){
|
|
|
mainData.put(fenhong+month,NumberUtil.add(mainData.get(fenhong+month) == null ? "0.00" : mainData.get(fenhong+month).toString(),amt).toString());
|
|
|
+ mainData.put(fenhong+"Total",NumberUtil.add(mainData.get(fenhong+"Total") == null ? "0.00" : mainData.get(fenhong+"Total").toString(),amt).toString());
|
|
|
}
|
|
|
+
|
|
|
if(subject.equals("对外投资")){
|
|
|
mainData.put(touzi+month,NumberUtil.add(mainData.get(touzi+month) == null ? "0.00" : mainData.get(touzi+month).toString(),amt).toString());
|
|
|
+ mainData.put(touzi+"Total",NumberUtil.add(mainData.get(touzi+"Total") == null ? "0.00" : mainData.get(touzi+"Total").toString(),amt).toString());
|
|
|
}
|
|
|
if(subject.equals("退投资款")){
|
|
|
mainData.put(tuitouzi+month,NumberUtil.add(mainData.get(tuitouzi+month) == null ? "0.00" : mainData.get(tuitouzi+month).toString(),amt).toString());
|
|
|
+ mainData.put(tuitouzi+"Total",NumberUtil.add(mainData.get(tuitouzi+"Total") == null ? "0.00" : mainData.get(tuitouzi+"Total").toString(),amt).toString());
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ //获取剩余净利润
|
|
|
+ for (int i = 1; i < 13; i++) {
|
|
|
+ //剩余净利润=净利润-分红-长期投资-退投资款
|
|
|
+ String netProfitAmt = mainData.get(netProfitKey + i) == null ? "0.00" : String.valueOf(mainData.get(netProfitKey + i));
|
|
|
+ String fenhongAmt = mainData.get(fenhong + i) == null ? "0.00" : String.valueOf(mainData.get(fenhong + i));
|
|
|
+ String touziAmt = mainData.get(touzi + i) == null ? "0.00" : String.valueOf(mainData.get(touzi + i));
|
|
|
+ String tuitouziAmt = mainData.get(tuitouzi + i) == null ? "0.00" : String.valueOf(mainData.get(tuitouzi + i));
|
|
|
+
|
|
|
+ String remainNet=NumberUtil.sub(netProfitAmt,fenhongAmt,touziAmt,tuitouziAmt).toString();
|
|
|
+ mainData.put("remainNet"+i,remainNet);
|
|
|
+ }
|
|
|
+ mainData.put("remainNetTotal",NumberUtil.sub(netProfitTotal,
|
|
|
+ mainData.get(fenhong+"Total") == null ? "0.00" : String.valueOf(mainData.get(fenhong+"Total")),
|
|
|
+ mainData.get(touzi+"Total") == null ? "0.00" : String.valueOf(mainData.get(touzi+"Total")),
|
|
|
+ mainData.get(tuitouzi+"Total") == null ? "0.00" : String.valueOf(mainData.get(tuitouzi+"Total")))
|
|
|
+ .toString());
|
|
|
+
|
|
|
Map map = new HashMap();
|
|
|
map.put("dataList",dataList);
|
|
|
map.put("mainData",mainData);
|
|
@@ -554,6 +595,10 @@ public class ZxtdReportServiceImpl implements ZxtdReportService {
|
|
|
// 查询利润统计表
|
|
|
List<Map> profitList = getYdFormDataList(_matchFormUuid("PROFIT"),JSONObject.toJSONString(UtilMap.map("textField_lqvp89br",year)),YDConf.FORM_QUERY.retrieve_list);
|
|
|
|
|
|
+ //查询资产负债手动维护表
|
|
|
+ List<Map> artificialList = getYdFormDataList(_matchFormUuid("ARTIFICIAL"),JSONObject.toJSONString(UtilMap.map("textField_lxtzn9up",year)),YDConf.FORM_QUERY.retrieve_list_all);
|
|
|
+
|
|
|
+
|
|
|
//货币资金
|
|
|
Accounts accounts1 = new Accounts();
|
|
|
|
|
@@ -627,6 +672,24 @@ public class ZxtdReportServiceImpl implements ZxtdReportService {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ //获取收入中实际已收的金额-应收账款表
|
|
|
+ List<Map> collect = incomeList.stream().filter(p ->
|
|
|
+ String.valueOf(((Map) p.get("formData")).get("selectField_ly2pd5cm")).equals("关联应收帐款表"))
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ //应收-已收
|
|
|
+ if (!collect.isEmpty()){
|
|
|
+ for (Map oneCollect : collect) {
|
|
|
+ Map formData1 = (Map) oneCollect.get("formData");
|
|
|
+ String amt = String.valueOf(formData1.get("numberField_lp8278sd"));
|
|
|
+ String month = String.valueOf(formData1.get("textField_lxl8moor")).substring(6);
|
|
|
+ ReflectUtil.invoke(accounts3,"setAmt"+month,NumberUtil.sub(ReflectUtil.invoke(accounts3,"getAmt"+month),amt).setScale(2,BigDecimal.ROUND_HALF_UP).toString());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ String addAmt = accounts3.getInitialAmt();
|
|
|
+ for (int i = 1; i < month1+2; i++) {
|
|
|
+ ReflectUtil.invoke(accounts3,"setAmt"+i,NumberUtil.add(ReflectUtil.invoke(accounts3,"getAmt"+i),addAmt).setScale(2,BigDecimal.ROUND_HALF_UP).toString());
|
|
|
+ addAmt = ReflectUtil.invoke(accounts3,"getAmt"+i);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
//其他应收款
|
|
@@ -657,8 +720,69 @@ public class ZxtdReportServiceImpl implements ZxtdReportService {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ //获取收入中实际已收的金额-应收账款表
|
|
|
+ List<Map> collect = incomeList.stream().filter(p ->
|
|
|
+ String.valueOf(((Map) p.get("formData")).get("selectField_ly2pd5cm")).equals("关联其他应收款表"))
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ //应收-已收
|
|
|
+ if (!collect.isEmpty()){
|
|
|
+ for (Map oneCollect : collect) {
|
|
|
+ Map formData1 = (Map) oneCollect.get("formData");
|
|
|
+ String amt = String.valueOf(formData1.get("numberField_lp8278sd"));
|
|
|
+ String month = String.valueOf(formData1.get("textField_lxl8moor")).substring(6);
|
|
|
+ ReflectUtil.invoke(accounts2,"setAmt"+month,NumberUtil.sub(ReflectUtil.invoke(accounts2,"getAmt"+month),amt).setScale(2,BigDecimal.ROUND_HALF_UP).toString());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ String addAmt = accounts2.getInitialAmt();
|
|
|
+ for (int i = 1; i < month1+2; i++) {
|
|
|
+ ReflectUtil.invoke(accounts2,"setAmt"+i,NumberUtil.add(ReflectUtil.invoke(accounts2,"getAmt"+i),addAmt).setScale(2,BigDecimal.ROUND_HALF_UP).toString());
|
|
|
+ addAmt = ReflectUtil.invoke(accounts2,"getAmt"+i);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
+ //手填数据
|
|
|
+ Accounts accounts4 = new Accounts();
|
|
|
+ Accounts accounts5 = new Accounts();
|
|
|
+ Accounts accounts6 = new Accounts();
|
|
|
+ Accounts accounts8 = new Accounts();
|
|
|
+ Accounts accounts9 = new Accounts();
|
|
|
+ Accounts accounts14 = new Accounts();
|
|
|
+ if (!artificialList.isEmpty()){
|
|
|
+ for (Map artificial : artificialList) {
|
|
|
+ Map formData = (Map) artificial.get("formData");
|
|
|
+ String subject = String.valueOf(formData.get("selectField_lxtqso85"));
|
|
|
+ Accounts accounts = new Accounts();
|
|
|
+ List<Map> artificialDetails = (List<Map>) formData.get("tableField_lqyx5k0c");
|
|
|
+ if (Objects.nonNull(artificialDetails) && !artificialDetails.isEmpty()){
|
|
|
+ for (Map artificialDetail : artificialDetails) {
|
|
|
+ accounts.setInitialAmt(getBigDecimalStringAmt(artificialDetail.get("numberField_lqyx5k0o")));
|
|
|
+ accounts.setAmt1(getBigDecimalStringAmt(artificialDetail.get("numberField_lqyx5k0q")));
|
|
|
+ accounts.setAmt2(getBigDecimalStringAmt(artificialDetail.get("numberField_lqyx5k0r")));
|
|
|
+ accounts.setAmt3(getBigDecimalStringAmt(artificialDetail.get("numberField_lqyx5k0s")));
|
|
|
+ accounts.setAmt4(getBigDecimalStringAmt(artificialDetail.get("numberField_lqyx5k0t")));
|
|
|
+ accounts.setAmt5(getBigDecimalStringAmt(artificialDetail.get("numberField_lqyx5k0u")));
|
|
|
+ accounts.setAmt6(getBigDecimalStringAmt(artificialDetail.get("numberField_lqyx5k0v")));
|
|
|
+ accounts.setAmt7(getBigDecimalStringAmt(artificialDetail.get("numberField_lqyx5k0w")));
|
|
|
+ accounts.setAmt8(getBigDecimalStringAmt(artificialDetail.get("numberField_lqyx5k0x")));
|
|
|
+ accounts.setAmt9(getBigDecimalStringAmt(artificialDetail.get("numberField_lqyx5k0y")));
|
|
|
+ accounts.setAmt10(getBigDecimalStringAmt(artificialDetail.get("numberField_lqyx5k0z")));
|
|
|
+ accounts.setAmt11(getBigDecimalStringAmt(artificialDetail.get("numberField_lqyx5k10")));
|
|
|
+ accounts.setAmt12(getBigDecimalStringAmt(artificialDetail.get("numberField_lqyx5k11")));
|
|
|
+ switch (subject){
|
|
|
+ case "固定资产账面价值" : accounts4.add(accounts);break;
|
|
|
+ case "无形资产" : accounts5.add(accounts);break;
|
|
|
+ case "长期投资" : accounts6.add(accounts);break;
|
|
|
+ case "应付职工薪酬" : accounts8.add(accounts);break;
|
|
|
+ case "应交税费" : accounts9.add(accounts);break;
|
|
|
+ case "实收资本" : accounts14.add(accounts);break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
//应付账款
|
|
|
Accounts accounts12 = new Accounts();
|
|
|
|
|
@@ -687,8 +811,29 @@ public class ZxtdReportServiceImpl implements ZxtdReportService {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ //获取支出中实际已付的金额-应付账款表
|
|
|
+ List<Map> collect = payList.stream().filter(p ->
|
|
|
+ String.valueOf(((Map) p.get("formData")).get("selectField_ly2lhkpe")).equals("关联应付账款表"))
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ //应付-已付
|
|
|
+ if (!collect.isEmpty()){
|
|
|
+ for (Map oneCollect : collect) {
|
|
|
+ Map formData1 = (Map) oneCollect.get("formData");
|
|
|
+ String amt = String.valueOf(formData1.get("numberField_lp82nads"));
|
|
|
+ String month = String.valueOf(formData1.get("textField_lqvpypje")).substring(6);
|
|
|
+ ReflectUtil.invoke(accounts12,"setAmt"+month,NumberUtil.sub(ReflectUtil.invoke(accounts12,"getAmt"+month),amt).setScale(2,BigDecimal.ROUND_HALF_UP).toString());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ String addAmt = accounts12.getInitialAmt();
|
|
|
+ for (int i = 1; i < month1+2; i++) {
|
|
|
+ ReflectUtil.invoke(accounts12,"setAmt"+i,NumberUtil.add(ReflectUtil.invoke(accounts12,"getAmt"+i),addAmt).setScale(2,BigDecimal.ROUND_HALF_UP).toString());
|
|
|
+ addAmt = ReflectUtil.invoke(accounts12,"getAmt"+i);
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+
|
|
|
//其他应付款
|
|
|
Accounts accounts10 = new Accounts();
|
|
|
|
|
@@ -717,6 +862,25 @@ public class ZxtdReportServiceImpl implements ZxtdReportService {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ //获取支出中实际已付的金额-其他应付款表
|
|
|
+ List<Map> collect = payList.stream().filter(p ->
|
|
|
+ String.valueOf(((Map) p.get("formData")).get("selectField_ly2lhkpe")).equals("关联其他应付款表"))
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ //应付-已付
|
|
|
+ if (!collect.isEmpty()){
|
|
|
+ for (Map oneCollect : collect) {
|
|
|
+ Map formData1 = (Map) oneCollect.get("formData");
|
|
|
+ String amt = String.valueOf(formData1.get("numberField_lp82nads"));
|
|
|
+ String month = String.valueOf(formData1.get("textField_lqvpypje")).substring(6);
|
|
|
+ ReflectUtil.invoke(accounts10,"setAmt"+month,NumberUtil.sub(ReflectUtil.invoke(accounts10,"getAmt"+month),amt).setScale(2,BigDecimal.ROUND_HALF_UP).toString());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ String addAmt = accounts10.getInitialAmt();
|
|
|
+ for (int i = 1; i < month1+2; i++) {
|
|
|
+ ReflectUtil.invoke(accounts10,"setAmt"+i,NumberUtil.add(ReflectUtil.invoke(accounts10,"getAmt"+i),addAmt).setScale(2,BigDecimal.ROUND_HALF_UP).toString());
|
|
|
+ addAmt = ReflectUtil.invoke(accounts10,"getAmt"+i);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
//未分配利润
|
|
@@ -735,6 +899,12 @@ public class ZxtdReportServiceImpl implements ZxtdReportService {
|
|
|
case 1:dataList.add(accounts1);break;
|
|
|
case 2:dataList.add(accounts2);break;
|
|
|
case 3:dataList.add(accounts3);break;
|
|
|
+ case 4:dataList.add(accounts4);break;
|
|
|
+ case 5:dataList.add(accounts5);break;
|
|
|
+ case 6:dataList.add(accounts6);break;
|
|
|
+ case 8:dataList.add(accounts8);break;
|
|
|
+ case 9:dataList.add(accounts9);break;
|
|
|
+ case 14:dataList.add(accounts14);break;
|
|
|
case 10:dataList.add(accounts10);break;
|
|
|
case 12:dataList.add(accounts12);break;
|
|
|
case 15:dataList.add(accounts15);break;
|
|
@@ -969,7 +1139,7 @@ public class ZxtdReportServiceImpl implements ZxtdReportService {
|
|
|
}
|
|
|
|
|
|
//分配股利、利润或偿付利息支付的现金
|
|
|
- if (ArrayUtil.contains(new String[]{"分红","借款利息"}, subject)){
|
|
|
+ if (ArrayUtil.contains(new String[]{"FH","借款利息"}, subject)){
|
|
|
cash.setAmt21(NumberUtil.add(cash.getAmt21(), formData.get("numberField_lp82nads").toString()).setScale(2,RoundingMode.HALF_UP).toString());
|
|
|
}
|
|
|
|
|
@@ -1011,7 +1181,7 @@ public class ZxtdReportServiceImpl implements ZxtdReportService {
|
|
|
}
|
|
|
|
|
|
//分配股利、利润或偿付利息支付的现金
|
|
|
- if (ArrayUtil.contains(new String[]{"分红","借款利息"}, subject)){
|
|
|
+ if (ArrayUtil.contains(new String[]{"FH","借款利息"}, subject)){
|
|
|
cash.setLastAmt21(NumberUtil.add(cash.getLastAmt21(), formData.get("numberField_lp82nads").toString()).setScale(2,RoundingMode.HALF_UP).toString());
|
|
|
}
|
|
|
|