|
|
@@ -1,14 +1,16 @@
|
|
|
package com.uas.platform.b2b.erp.service.impl;
|
|
|
|
|
|
import com.uas.platform.b2b.dao.CommonDao;
|
|
|
+import com.uas.platform.b2b.erp.dao.ProdIoPayDao;
|
|
|
import com.uas.platform.b2b.erp.model.ProdIoPay;
|
|
|
import com.uas.platform.b2b.erp.service.ProdIoPayService;
|
|
|
import com.uas.platform.b2b.support.SystemSession;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.util.CollectionUtils;
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
-import java.util.Collection;
|
|
|
+import java.util.Date;
|
|
|
import java.util.List;
|
|
|
import java.util.Set;
|
|
|
import java.util.stream.Collectors;
|
|
|
@@ -25,6 +27,9 @@ public class ProdIoPayServiceImpl implements ProdIoPayService {
|
|
|
@Autowired
|
|
|
private CommonDao commonDao;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private ProdIoPayDao payDao;
|
|
|
+
|
|
|
/**
|
|
|
* 更新出入库单付款金额
|
|
|
*
|
|
|
@@ -37,14 +42,140 @@ public class ProdIoPayServiceImpl implements ProdIoPayService {
|
|
|
classSet.forEach(clazz -> {
|
|
|
List<ProdIoPay> filterPayList = payList.stream().filter(pay -> clazz.equals(pay.getPiClass())).collect(Collectors.toList());
|
|
|
Long enUU = SystemSession.getUser().getEnterprise().getUu();
|
|
|
- if (clazz.equals(ProdIoPay.SALE_ACCEPT)) {
|
|
|
- sqlList.addAll(updateSaleAccept(filterPayList, enUU));
|
|
|
- } else if (clazz.equals(ProdIoPay.SALE_RETURN)) {
|
|
|
- sqlList.addAll(updateSaleReturn(filterPayList, enUU));
|
|
|
- } else if (clazz.equals(ProdIoPay.SALE_BAD_IN)) {
|
|
|
- sqlList.addAll(updateSaleBadIn(filterPayList, enUU));
|
|
|
+ switch (clazz) {
|
|
|
+ case ProdIoPay.SALE_ACCEPT:
|
|
|
+ sqlList.addAll(updateSaleAccept(filterPayList, enUU));
|
|
|
+ break;
|
|
|
+ case ProdIoPay.SALE_RETURN:
|
|
|
+ sqlList.addAll(updateSaleReturn(filterPayList, enUU));
|
|
|
+ break;
|
|
|
+ case ProdIoPay.SALE_BAD_IN:
|
|
|
+ sqlList.addAll(updateSaleBadIn(filterPayList, enUU));
|
|
|
+ break;
|
|
|
+ case ProdIoPay.SALE_BAD_OUT:
|
|
|
+ sqlList.addAll(updateSaleBadOut(filterPayList, enUU));
|
|
|
+ break;
|
|
|
+ case ProdIoPay.MAKE_ACCEPT:
|
|
|
+ sqlList.addAll(updateMakeAccept(filterPayList, enUU));
|
|
|
+ break;
|
|
|
+ case ProdIoPay.MAKE_RETURN:
|
|
|
+ sqlList.addAll(updateMakeReturn(filterPayList, enUU));
|
|
|
+ break;
|
|
|
+ case ProdIoPay.ADJUSTMENT:
|
|
|
+ sqlList.addAll(updateAdjustment(filterPayList, enUU));
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ if (!CollectionUtils.isEmpty(sqlList)) {
|
|
|
+ try {
|
|
|
+ commonDao.getJdbcTemplate().batchUpdate(sqlList.toArray(new String[sqlList.size()]));
|
|
|
+ savePayList(payList);
|
|
|
+ } catch (RuntimeException e) {
|
|
|
+ throw new RuntimeException("付款记录更新失败; " + e.getMessage());
|
|
|
}
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 保存付款记录
|
|
|
+ *
|
|
|
+ * @param payList 付款记录
|
|
|
+ */
|
|
|
+ private void savePayList(List<ProdIoPay> payList) {
|
|
|
+ payList.forEach(pay -> {
|
|
|
+ pay.setEnUU(SystemSession.getUser().getEnterprise().getUu());
|
|
|
+ pay.setDate(new Date(System.currentTimeMillis()));
|
|
|
+ });
|
|
|
+ payDao.save(payList);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 更新货款调账付款相关
|
|
|
+ *
|
|
|
+ * @param payList 货款调账付款数据
|
|
|
+ * @param enUU 企业UU(客户方)
|
|
|
+ * @return sqlList
|
|
|
+ */
|
|
|
+ private List<String> updateAdjustment(List<ProdIoPay> payList, Long enUU) {
|
|
|
+ List<String> sqlList = new ArrayList<>();
|
|
|
+ payList.forEach(pay -> {
|
|
|
+ String sql = "update purc$apbilladjustment" +
|
|
|
+ " set aa_payment = " + pay.getAmount() + "," +
|
|
|
+ " aa_paydate = '" + new java.sql.Date(pay.getInDate().getTime()) + "'" +
|
|
|
+ " where aa_custuu = " + enUU +
|
|
|
+ " and aa_ordercode = '" + pay.getPiCode() + "'" +
|
|
|
+ " and aa_detno = " + pay.getPiDetNo();
|
|
|
+ sqlList.add(sql);
|
|
|
});
|
|
|
+ return sqlList;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 更新委外验收单付款相关
|
|
|
+ *
|
|
|
+ * @param payList 委外验收单付款数据
|
|
|
+ * @param enUU 企业UU(客户方)
|
|
|
+ * @return sqlList
|
|
|
+ */
|
|
|
+ private List<String> updateMakeReturn(List<ProdIoPay> payList, Long enUU) {
|
|
|
+ List<String> sqlList = new ArrayList<>();
|
|
|
+ payList.forEach(pay -> {
|
|
|
+ String sql = "update make$returnitem" +
|
|
|
+ " right join make$return on mri_paid = mr_id" +
|
|
|
+ " set mri_payment = " + pay.getAmount() + "," +
|
|
|
+ " mri_paydate = '" + new java.sql.Date(pay.getInDate().getTime()) + "'" +
|
|
|
+ " where mr_enuu = " + enUU +
|
|
|
+ " and mr_code = '" + pay.getPiCode() + "'" +
|
|
|
+ " and mri_number = " + pay.getPiDetNo();
|
|
|
+ sqlList.add(sql);
|
|
|
+ });
|
|
|
+ return sqlList;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 更新委外验收单付款相关
|
|
|
+ *
|
|
|
+ * @param payList 委外验收单付款数据
|
|
|
+ * @param enUU 企业UU(客户方)
|
|
|
+ * @return sqlList
|
|
|
+ */
|
|
|
+ private List<String> updateMakeAccept(List<ProdIoPay> payList, Long enUU) {
|
|
|
+ List<String> sqlList = new ArrayList<>();
|
|
|
+ payList.forEach(pay -> {
|
|
|
+ String sql = "update make$acceptitem" +
|
|
|
+ " right join make$accept on mai_paid = ma_id" +
|
|
|
+ " set mai_payment = " + pay.getAmount() + "," +
|
|
|
+ " mai_paydate = '" + new java.sql.Date(pay.getInDate().getTime()) + "'" +
|
|
|
+ " where ma_enuu = " + enUU +
|
|
|
+ " and ma_code = '" + pay.getPiCode() + "'" +
|
|
|
+ " and mai_number = " + pay.getPiDetNo();
|
|
|
+ sqlList.add(sql);
|
|
|
+ });
|
|
|
+ return sqlList;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 更新不良品出库单付款相关
|
|
|
+ *
|
|
|
+ * @param payList 不良品入库单付款数据
|
|
|
+ * @param enUU 企业UU(客户方)
|
|
|
+ * @return sqlList
|
|
|
+ */
|
|
|
+ private List<String> updateSaleBadOut(List<ProdIoPay> payList, Long enUU) {
|
|
|
+ List<String> sqlList = new ArrayList<>();
|
|
|
+ payList.forEach(pay -> {
|
|
|
+ String sql = "update purc$badoutitem" +
|
|
|
+ " right join purc$badout on poi_poid = po_id" +
|
|
|
+ " set poi_payment = " + pay.getAmount() + "," +
|
|
|
+ " poi_paydate = '" + new java.sql.Date(pay.getInDate().getTime()) + "'" +
|
|
|
+ " where po_enuu = " + enUU +
|
|
|
+ " and po_code = '" + pay.getPiCode() + "'" +
|
|
|
+ " and poi_number = " + pay.getPiDetNo();
|
|
|
+ sqlList.add(sql);
|
|
|
+ });
|
|
|
+ return sqlList;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -58,9 +189,9 @@ public class ProdIoPayServiceImpl implements ProdIoPayService {
|
|
|
List<String> sqlList = new ArrayList<>();
|
|
|
payList.forEach(pay -> {
|
|
|
String sql = "update purc$badinitem" +
|
|
|
- " right join purc$badin on pbi_pbid = pbi_id" +
|
|
|
+ " right join purc$badin on pbi_pbid = pb_id" +
|
|
|
" set pbi_payment = " + pay.getAmount() + "," +
|
|
|
- " pbi_paydate = " + pay.getInDate() +
|
|
|
+ " pbi_paydate = '" + new java.sql.Date(pay.getInDate().getTime()) + "'" +
|
|
|
" where pb_enuu = " + enUU +
|
|
|
" and pb_code = '" + pay.getPiCode() + "'" +
|
|
|
" and pbi_number = " + pay.getPiDetNo();
|
|
|
@@ -82,7 +213,7 @@ public class ProdIoPayServiceImpl implements ProdIoPayService {
|
|
|
String sql = "update purc$returnitem" +
|
|
|
" right join purc$return on pri_prid = pr_id" +
|
|
|
" set pri_payment = " + pay.getAmount() + "," +
|
|
|
- " pri_paydate = " + pay.getInDate() +
|
|
|
+ " pri_paydate = '" + new java.sql.Date(pay.getInDate().getTime()) + "'" +
|
|
|
" where pr_enuu = " + enUU +
|
|
|
" and purc$return.pr_code = '" + pay.getPiCode() + "'" +
|
|
|
" and pri_number = " + pay.getPiDetNo();
|
|
|
@@ -104,7 +235,7 @@ public class ProdIoPayServiceImpl implements ProdIoPayService {
|
|
|
String sql = "update purc$acceptitem" +
|
|
|
" right join purc$accept on pai_paid = pa_id" +
|
|
|
" set pai_payment = " + pay.getAmount() + "," +
|
|
|
- " pai_paydate = " + pay.getInDate() +
|
|
|
+ " pai_paydate = '" + new java.sql.Date(pay.getInDate().getTime()) + "'" +
|
|
|
" where pa_enuu = " + enUU +
|
|
|
" and pa_code = '" + pay.getPiCode() + "'" +
|
|
|
" and pai_number = " + pay.getPiDetNo();
|