|
|
@@ -0,0 +1,115 @@
|
|
|
+package com.uas.platform.b2b.erp.service.impl;
|
|
|
+
|
|
|
+import com.uas.platform.b2b.dao.CommonDao;
|
|
|
+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 java.util.ArrayList;
|
|
|
+import java.util.Collection;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Set;
|
|
|
+import java.util.stream.Collectors;
|
|
|
+
|
|
|
+/**
|
|
|
+ * 出入库单付款金额
|
|
|
+ *
|
|
|
+ * @author hejq
|
|
|
+ * @date 2019-01-03 14:10
|
|
|
+ */
|
|
|
+@Service
|
|
|
+public class ProdIoPayServiceImpl implements ProdIoPayService {
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private CommonDao commonDao;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 更新出入库单付款金额
|
|
|
+ *
|
|
|
+ * @param payList 出入库单付款记录
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public void saveAndUpdate(List<ProdIoPay> payList) {
|
|
|
+ Set<String> classSet = payList.parallelStream().map(ProdIoPay::getPiClass).collect(Collectors.toSet());
|
|
|
+ List<String> sqlList = new ArrayList<>();
|
|
|
+ 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));
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 更新不良品入库单付款相关
|
|
|
+ *
|
|
|
+ * @param payList 不良品入库单付款数据
|
|
|
+ * @param enUU 企业UU(客户方)
|
|
|
+ * @return sqlList
|
|
|
+ */
|
|
|
+ private List<String> updateSaleBadIn(List<ProdIoPay> payList, Long enUU) {
|
|
|
+ List<String> sqlList = new ArrayList<>();
|
|
|
+ payList.forEach(pay -> {
|
|
|
+ String sql = "update purc$badinitem" +
|
|
|
+ " right join purc$badin on pbi_pbid = pbi_id" +
|
|
|
+ " set pbi_payment = " + pay.getAmount() + "," +
|
|
|
+ " pbi_paydate = " + pay.getInDate() +
|
|
|
+ " where pb_enuu = " + enUU +
|
|
|
+ " and pb_code = '" + pay.getPiCode() + "'" +
|
|
|
+ " and pbi_number = " + pay.getPiDetNo();
|
|
|
+ sqlList.add(sql);
|
|
|
+ });
|
|
|
+ return sqlList;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 更新采购验退单付款相关
|
|
|
+ *
|
|
|
+ * @param payList 采购验退单付款数据
|
|
|
+ * @param enUU 企业UU(客户方)
|
|
|
+ * @return sqlList
|
|
|
+ */
|
|
|
+ private List<String> updateSaleReturn(List<ProdIoPay> payList, Long enUU) {
|
|
|
+ List<String> sqlList = new ArrayList<>();
|
|
|
+ payList.forEach(pay -> {
|
|
|
+ String sql = "update purc$returnitem" +
|
|
|
+ " right join purc$return on pri_prid = pr_id" +
|
|
|
+ " set pri_payment = " + pay.getAmount() + "," +
|
|
|
+ " pri_paydate = " + pay.getInDate() +
|
|
|
+ " where pr_enuu = " + enUU +
|
|
|
+ " and purc$return.pr_code = '" + pay.getPiCode() + "'" +
|
|
|
+ " and pri_number = " + pay.getPiDetNo();
|
|
|
+ sqlList.add(sql);
|
|
|
+ });
|
|
|
+ return sqlList;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 更新采购验收单付款相关
|
|
|
+ *
|
|
|
+ * @param payList 采购验收单付款数据
|
|
|
+ * @param enUU 企业UU(客户方)
|
|
|
+ * @return sqlList
|
|
|
+ */
|
|
|
+ private List<String> updateSaleAccept(List<ProdIoPay> payList, Long enUU) {
|
|
|
+ List<String> sqlList = new ArrayList<>();
|
|
|
+ payList.forEach(pay -> {
|
|
|
+ String sql = "update purc$acceptitem" +
|
|
|
+ " right join purc$accept on pai_paid = pa_id" +
|
|
|
+ " set pai_payment = " + pay.getAmount() + "," +
|
|
|
+ " pai_paydate = " + pay.getInDate() +
|
|
|
+ " where pa_enuu = " + enUU +
|
|
|
+ " and pa_code = '" + pay.getPiCode() + "'" +
|
|
|
+ " and pai_number = " + pay.getPiDetNo();
|
|
|
+ sqlList.add(sql);
|
|
|
+ });
|
|
|
+ return sqlList;
|
|
|
+ }
|
|
|
+}
|