From 00943d430aac59f5e7593d59a15619eac0308dce Mon Sep 17 00:00:00 2001 From: YenHex Date: Tue, 4 Jul 2023 15:41:10 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=90=8C=E6=AD=A5=E7=9A=84?= =?UTF-8?q?=E6=88=90=E6=9C=AC=E4=B8=AD=E5=BF=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/demo/Application.java | 5 +- .../java/com/demo/cost/TbsServiceImpl.java | 76 ++++++++++++------- .../com/demo/t20230704/SyncNotCheckMain.java | 2 +- .../demo/t202307042/CenterUserNameXlt.java | 22 ++++++ 4 files changed, 74 insertions(+), 31 deletions(-) create mode 100644 src/main/java/com/demo/t202307042/CenterUserNameXlt.java diff --git a/src/main/java/com/demo/Application.java b/src/main/java/com/demo/Application.java index db1ce67..676a493 100644 --- a/src/main/java/com/demo/Application.java +++ b/src/main/java/com/demo/Application.java @@ -7,6 +7,7 @@ import com.demo.dto.DaoContext; import com.demo.t20230616.SyncBudget; import com.demo.t20230621.BudgetMathMain; import com.demo.t20230703.SyncMatchActCenter; +import com.demo.t20230704.SyncNotCheckMain; import com.demo.util.SetData; import lombok.extern.slf4j.Slf4j; @@ -56,8 +57,8 @@ public class Application { //更新申请和活动的状态 new TbsMatchServiceImpl().updateStatus(); - // - + //同步isCancel=1的费用释放 + new SyncNotCheckMain().doMain(); } diff --git a/src/main/java/com/demo/cost/TbsServiceImpl.java b/src/main/java/com/demo/cost/TbsServiceImpl.java index 4a3036b..01ee2e5 100644 --- a/src/main/java/com/demo/cost/TbsServiceImpl.java +++ b/src/main/java/com/demo/cost/TbsServiceImpl.java @@ -12,6 +12,7 @@ import com.demo.jsl.entity.supplier.JslSupplier; import com.demo.jsl.entity.user.JslUser; import com.demo.jsl.entity.verifi.VtbVerification; import com.demo.jsl.entity.verifi.VtbVerificationSubject; +import com.demo.t202307042.CenterUserNameXlt; import com.demo.util.*; import com.demo.util.dto.DateSplitDTO; import lombok.SneakyThrows; @@ -128,6 +129,7 @@ public class TbsServiceImpl { log.info(year + "年" + month + "月无数据"); return; } + List centerUserNameList = jslContext.sql("select * from center_user_name_xlt ").getList(CenterUserNameXlt.class); List> listList = CollectionUtil.createList(allCostList, 2000); List costList = new ArrayList<>(); for (List xltCostList : listList) { @@ -156,14 +158,14 @@ public class TbsServiceImpl { String fileName = "D:\\logs\\" + year + "_" + month + "_err_codes.log"; FileUtil.create(fileName); if (costList.size() > 0) { - this.syncCostMain(xltContext, jslContext, costList, fileName, title); + this.syncCostMain(xltContext, jslContext, costList, title,centerUserNameList); } xltContext.close(); jslContext.close(); } @SneakyThrows - private void syncCostMain(DbContext xltContext, DbContext jslContext, List costList, String fileName, String title) { + private void syncCostMain(DbContext xltContext, DbContext jslContext, List costList, String title,List centerUserNameList ) { List categoryList = jslContext.sql("select id,xlt_id,code,name from goods_category").getList(JslGoodsCategory.class); String customerIds = costList.stream().map(a -> "'" + a.getCusCode() + "'").distinct().collect(Collectors.joining(",")); if (customerIds.length() < 1) { @@ -174,7 +176,7 @@ public class TbsServiceImpl { for (int i = 0; i < costList.size(); i++) { XltCost xltCost = costList.get(i); try { - buildCostItem(xltContext, jslContext, categoryList, jslSuppliers, xltCost); + buildCostItem(xltContext, jslContext, categoryList, jslSuppliers, xltCost,centerUserNameList); System.out.println(title + " =>" + i + "/" + costList.size()); } catch (SQLException e) { e.printStackTrace(); @@ -182,7 +184,8 @@ public class TbsServiceImpl { } } - private void buildCostItem(DbContext xltContext, DbContext jslContext, List categoryList, List jslSuppliers, XltCost xltCost) throws SQLException { + private void buildCostItem(DbContext xltContext, DbContext jslContext, List categoryList, + List jslSuppliers, XltCost xltCost,List centerUserNameList) throws SQLException { JslUser jslUser = jslContext.sql("select id,code from sys_user where code = ?", xltCost.getUserCode()).getItem(JslUser.class); String userId = "0"; if (jslUser != null&&jslUser.getId()!=null) { @@ -425,8 +428,8 @@ public class TbsServiceImpl { this.buildAndSaveCenterGoods(jslContext, supplierId,saleRegion, costApplyId, costItem, - activityId, jslSubject, targetType, targetCode, targetName, levelIds, levelNames, targetId); - this.buildAndSaveActivityCenter(jslContext, xltCost, supplierId,saleRegion, costApplyId, costItem, activityId, jslSubject); + activityId, jslSubject, targetType, targetCode, targetName, levelIds, levelNames, targetId,centerUserNameList); + this.buildAndSaveActivityCenter(jslContext, supplierId,saleRegion, costApplyId, costItem, activityId, jslSubject,centerUserNameList); //核销读取另外一个表 // if (costItem.getCheckMoney().compareTo(BigDecimal.ZERO) > 0) { @@ -439,7 +442,10 @@ public class TbsServiceImpl { - private void buildAndSaveCenterGoods(DbContext jslContext, Long supplierId, JslBmsRegion saleRegion,Long costApplyId, XltCostItem costItem, Long activityId, JslSubject jslSubject, String targetType, String targetCode, String targetName, String levelIds, String levelNames, Long targetId) throws SQLException { + private void buildAndSaveCenterGoods(DbContext jslContext, Long supplierId, JslBmsRegion saleRegion,Long costApplyId, + XltCostItem costItem, Long activityId, JslSubject jslSubject, String targetType, + String targetCode, String targetName, String levelIds, String levelNames, + Long targetId,List centerUserNameList) throws SQLException { JslActivityCenterGoods centerGoods = new JslActivityCenterGoods(); centerGoods.setCostApplyId(costApplyId); centerGoods.setActivityId(activityId); @@ -452,9 +458,18 @@ public class TbsServiceImpl { centerGoods.setSupplierCode(costItem.getCusCode()); centerGoods.setSupplierName(costItem.getCusName()); -// if (costItem.getCenterId().equals(xltCost.getCusId())) { -// centerGoods.setCenterId(supplierId + ""); -// } else { + //设置成本中心 + String xltCenterCode = costItem.getCenterCode(); + for (CenterUserNameXlt nameXlt : centerUserNameList) { + if(nameXlt.getCenterUserName().equals(xltCenterCode)){ + centerGoods.setCenterType(nameXlt.getType()); + centerGoods.setCenterId(nameXlt.getCmsCenterId()); + centerGoods.setCenterName(nameXlt.getCmsCenterName()); + centerGoods.setCenterCode(nameXlt.getCmsCenterCode()); + break; + } + } + if(centerGoods.getCenterName()==null){ if(saleRegion!=null&&!"0".equals(saleRegion.getId())){ centerGoods.setCenterType("saleRegion"); centerGoods.setCenterId(saleRegion.getId()); @@ -463,11 +478,7 @@ public class TbsServiceImpl { }else { centerGoods.setCenterId("__"+supplierId); } -// -// JslSupplier centerSuppliers = jslContext.sql("SELECT id,xlt_id,name FROM `bms_supplier` WHERE xlt_id = ?", costItem.getCenterId() -// ).getItem(JslSupplier.class); -// centerGoods.setCenterId(centerSuppliers.getId() + ""); -// } + } //todo 同步核销时更新 //centerGoods.setUsedAmount(totalCheckMoney); @@ -504,7 +515,6 @@ public class TbsServiceImpl { /** * 保存成本中心 * @param jslContext - * @param xltCost * @param supplierId * @param costApplyId * @param costItem @@ -512,20 +522,33 @@ public class TbsServiceImpl { * @param jslSubject * @throws SQLException */ - private void buildAndSaveActivityCenter(DbContext jslContext, XltCost xltCost, Long supplierId, JslBmsRegion saleRegion, Long costApplyId, XltCostItem costItem, Long activityId, JslSubject jslSubject) throws SQLException { + private void buildAndSaveActivityCenter(DbContext jslContext, Long supplierId, JslBmsRegion saleRegion, + Long costApplyId, XltCostItem costItem, Long activityId, JslSubject jslSubject, + List centerUserNameList) throws SQLException { JslActivityCenter activityCenter = new JslActivityCenter(); activityCenter.setCostApplyId(costApplyId); activityCenter.setActivityId(activityId); activityCenter.setSubjectId(jslSubject.getId()); activityCenter.setCenterAmount(costItem.getMoney()); activityCenter.setCenterRate(new BigDecimal("100")); - activityCenter.setCenterType("customer"); - activityCenter.setTenantId("001"); - activityCenter.setCenterCode(costItem.getCenterCode()); - activityCenter.setCenterName(costItem.getCenterName()); -// if (costItem.getCenterId().equals(xltCost.getCusId())) { -// activityCenter.setCenterId(supplierId + ""); -// } else { + + String xltCenterCode = costItem.getCenterCode(); + boolean exist = false; + for (CenterUserNameXlt nameXlt : centerUserNameList) { + if(nameXlt.getCenterUserName().equals(xltCenterCode)){ + activityCenter.setCenterType(nameXlt.getType()); + activityCenter.setCenterId(nameXlt.getCmsCenterId()); + activityCenter.setCenterName(nameXlt.getCmsCenterName()); + activityCenter.setCenterCode(nameXlt.getCmsCenterCode()); + exist = true; + break; + } + } + if(exist){ + activityCenter.setCenterType("customer"); + activityCenter.setTenantId("001"); + activityCenter.setCenterCode(costItem.getCenterCode()); + activityCenter.setCenterName(costItem.getCenterName()); if(saleRegion!=null&&!"0".equals(saleRegion.getId())){ activityCenter.setCenterType("saleRegion"); activityCenter.setCenterId(saleRegion.getId()); @@ -534,10 +557,7 @@ public class TbsServiceImpl { }else { activityCenter.setCenterId("__"+supplierId); } -// JslSupplier centerSuppliers = jslContext.sql("SELECT id,xlt_id,name FROM `bms_supplier` WHERE xlt_id = ?", costItem.getCenterId() -// ).getItem(JslSupplier.class); -// activityCenter.setCenterId(centerSuppliers.getId() + ""); -// } + } //todo 同步时更新 //activityCenter.setUsedAmount(totalCheckMoney); diff --git a/src/main/java/com/demo/t20230704/SyncNotCheckMain.java b/src/main/java/com/demo/t20230704/SyncNotCheckMain.java index 49ba0fd..acf826d 100644 --- a/src/main/java/com/demo/t20230704/SyncNotCheckMain.java +++ b/src/main/java/com/demo/t20230704/SyncNotCheckMain.java @@ -52,7 +52,7 @@ public class SyncNotCheckMain { /** 统计活动的不予核销 */ String sql_sum_release = "SELECT sum(used_amount) FROM `vtb_fund_flow` where activity_id = ? and fund_type = 'release'"; - //删除历史记录 + /** 删除历史记录 */ String del_fund_flow = "delete from vtb_fund_flow where remark = 'byCancel_1' and activity_id = ?"; String del_budget_log = "delete from tbs_budget_log where remark = 'byCancel_1' and activity_id = ?"; diff --git a/src/main/java/com/demo/t202307042/CenterUserNameXlt.java b/src/main/java/com/demo/t202307042/CenterUserNameXlt.java new file mode 100644 index 0000000..fba305e --- /dev/null +++ b/src/main/java/com/demo/t202307042/CenterUserNameXlt.java @@ -0,0 +1,22 @@ +package com.demo.t202307042; + +import lombok.Data; + +/** + * @author YenHex + * @since 2023/7/4 + **/ +@Data +public class CenterUserNameXlt { + + String centerId; + + String centerUserName; + + String cmsCenterId; + String cmsCenterCode; + String cmsCenterName; + + String type; + +}