Browse Source

同步仓库表

mac 2 years ago
parent
commit
5bca2c57c1

+ 10 - 4
kxs-store/kxs-store-api/src/main/java/com/kxs/store/api/model/KxsWarehouseCreditAmount.java

@@ -5,10 +5,7 @@ import java.io.Serializable;
 import java.math.BigDecimal;
 import java.time.LocalDateTime;
 
-import com.baomidou.mybatisplus.annotation.FieldFill;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.*;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
@@ -57,6 +54,8 @@ public class KxsWarehouseCreditAmount extends Model<KxsWarehouseCreditAmount> im
      * 删除标记,0未删除,1已删除
      */
     @Schema(description = "删除标记,0未删除,1已删除")
+    @TableLogic
+    @TableField(fill = FieldFill.INSERT)
     private Integer delFlag;
 
 
@@ -107,6 +106,13 @@ public class KxsWarehouseCreditAmount extends Model<KxsWarehouseCreditAmount> im
     private Integer createBy;
 
 
+    /**
+     * 备注
+     */
+    @Schema(description = "备注")
+    private String remark;
+
+
 
 
 }

+ 0 - 14
kxs-store/kxs-store-api/src/main/java/com/kxs/store/api/model/KxsWarehouseLimit.java

@@ -118,20 +118,6 @@ public class KxsWarehouseLimit extends Model<KxsWarehouseLimit> implements Seria
     private BigDecimal yueForAmount;
 
 
-    /**
-     * 银行卡提现总额
-     */
-    @Schema(description = "银行卡提现总额")
-    private BigDecimal bankWithdrawAmount;
-
-
-    /**
-     * 余额提现总额
-     */
-    @Schema(description = "余额提现总额")
-    private BigDecimal yueWithdrawAmount;
-
-
     /**
      * 已用额度
      */

+ 1 - 0
kxs-store/kxs-store-biz/src/main/resources/mapper/KxsWarehouseCreditAmountMapper.xml

@@ -14,6 +14,7 @@
         <result column="username" property="username" />
         <result column="user_code" property="userCode" />
         <result column="create_by" property="createBy" />
+        <result column="remark" property="remark" />
 
     </resultMap>
 

+ 0 - 2
kxs-store/kxs-store-biz/src/main/resources/mapper/KxsWarehouseLimitMapper.xml

@@ -15,8 +15,6 @@
         <result column="credit_amount" property="creditAmount" />
         <result column="create_by" property="createBy" />
         <result column="yue_for_amount" property="yueForAmount" />
-        <result column="bank_withdraw_amount" property="bankWithdrawAmount" />
-        <result column="yue_withdraw_amount" property="yueWithdrawAmount" />
         <result column="used_amount" property="usedAmount" />
         <result column="warehouse_type" property="warehouseType" />
 

+ 18 - 6
kxs-transfer/src/main/java/com/kxs/transfer/api/controller/DtsController.java

@@ -179,12 +179,24 @@ public class DtsController {
             if ("SchoolMakerStudy".equals(dmlData.getTableName())) {
                 kxsSchoolStudyService.changeData(dmlData);
             }
-//
-//            //仓库表
-//            if ("StoreHouse".equals(dmlData.getTableName())) {
-//                kxsWarehouseService.changeData(dmlData);
-//            }
-//            //机具表
+
+            //仓库表
+            if ("StoreHouse".equals(dmlData.getTableName())) {
+                kxsWarehouseService.changeData(dmlData);
+            }
+            //仓库担保记录
+            if ("StoreHouseAmountPromiss".equals(dmlData.getTableName())) {
+                kxsWarehouseService.changeCreditData(dmlData);
+            }
+            //仓库额度表
+            if ("UserAccount".equals(dmlData.getTableName()) && "KxsProfitServer".equals(dmlData.getDatabaseName())) {
+                kxsWarehouseService.changeAccountData(dmlData);
+            }
+            //小仓库额度表
+            if ("UserAccount".equals(dmlData.getTableName()) && "KxsProfitServer".equals(dmlData.getDatabaseName())) {
+                kxsWarehouseService.changeAccountMinData(dmlData);
+            }
+            //机具表
             if ("PosMachinesTwo".equals(dmlData.getTableName())) {
                 kxsMachineService.changeData(dmlData);
             }

+ 17 - 0
kxs-transfer/src/main/java/com/kxs/transfer/api/mapper/store/KxsWarehouseCreditAmountMapper.java

@@ -0,0 +1,17 @@
+package com.kxs.transfer.api.mapper.store;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.kxs.store.api.model.KxsWarehouseCreditAmount;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 客小爽分仓担保明细记录表(KxsWarehousePromiss)表数据库访问层
+ *
+ * @author 系统
+ * @since 2024-01-08 09:46:02
+ */
+@Mapper
+public interface KxsWarehouseCreditAmountMapper extends BaseMapper<KxsWarehouseCreditAmount> {
+
+}
+

+ 17 - 0
kxs-transfer/src/main/java/com/kxs/transfer/api/mapper/store/KxsWarehouseLimitMapper.java

@@ -0,0 +1,17 @@
+package com.kxs.transfer.api.mapper.store;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.kxs.store.api.model.KxsWarehouseLimit;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 客小爽仓库额度表(KxsWarehouseLimit)表数据库访问层
+ *
+ * @author 系统
+ * @since 2024-01-08 09:46:02
+ */
+@Mapper
+public interface KxsWarehouseLimitMapper extends BaseMapper<KxsWarehouseLimit> {
+
+}
+

+ 6 - 0
kxs-transfer/src/main/java/com/kxs/transfer/api/service/store/KxsWarehouseService.java

@@ -22,5 +22,11 @@ public interface KxsWarehouseService extends IService<KxsWarehouse> {
 
 
     void changeData(DMLData dmlData);
+
+    void changeCreditData(DMLData dmlData);
+
+    void changeAccountData(DMLData dmlData);
+
+    void changeAccountMinData(DMLData dmlData);
 }
 

+ 190 - 1
kxs-transfer/src/main/java/com/kxs/transfer/api/service/store/impl/KxsWarehouseServiceImpl.java

@@ -5,17 +5,24 @@ import cn.hutool.core.date.DatePattern;
 import cn.hutool.core.date.LocalDateTimeUtil;
 import cn.hutool.core.util.NumberUtil;
 import com.aliyun.dts.subscribe.clients.record.OperationType;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.kxs.product.api.model.KxsMachine;
+import com.kxs.product.api.model.KxsTicket;
 import com.kxs.store.api.model.KxsWarehouse;
+import com.kxs.store.api.model.KxsWarehouseCreditAmount;
 import com.kxs.store.api.model.KxsWarehouseLimit;
 import com.kxs.store.api.model.KxsWarehouseStock;
+import com.kxs.transfer.api.mapper.store.KxsWarehouseCreditAmountMapper;
+import com.kxs.transfer.api.mapper.store.KxsWarehouseLimitMapper;
 import com.kxs.transfer.api.mapper.store.KxsWarehouseMapper;
 import com.kxs.transfer.api.mapper.store.KxsWarehouseStockMapper;
 import com.kxs.transfer.api.mapper.user.KxsUserMapper;
 import com.kxs.transfer.api.model.table.DMLData;
+import com.kxs.transfer.api.model.table.FieldData;
 import com.kxs.transfer.api.service.store.KxsWarehouseService;
 import com.kxs.user.api.model.KxsUser;
+import com.kxs.user.api.model.KxsUserAmount;
 import com.kxs.user.api.model.KxsUserReal;
 import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Service;
@@ -37,6 +44,8 @@ public class KxsWarehouseServiceImpl extends ServiceImpl<KxsWarehouseMapper, Kxs
     private final KxsUserMapper kxsUserMapper;
 
     private final KxsWarehouseStockMapper kxsWarehouseStockMapper;
+    private final KxsWarehouseLimitMapper kxsWarehouseLimitMapper;
+    private final KxsWarehouseCreditAmountMapper kxsWarehouseCreditAmountMapper;
 
     @Override
     public void changeData(DMLData dmlData) {
@@ -53,7 +62,10 @@ public class KxsWarehouseServiceImpl extends ServiceImpl<KxsWarehouseMapper, Kxs
 
         //操作类型
         OperationType operation = dmlData.getOperation();
-
+        if(operation.equals(OperationType.DELETE)){
+            baseMapper.deleteById(id);
+            return;
+        }
         for (String field : changeFieldList) {
 
             switch (field) {
@@ -176,5 +188,182 @@ public class KxsWarehouseServiceImpl extends ServiceImpl<KxsWarehouseMapper, Kxs
         }
 
     }
+
+    @Override
+    public void changeCreditData(DMLData dmlData) {
+        //修改的字段值
+        Map<String, Object> validFieldDataMap = dmlData.getValidFieldDataMap();
+        //修改的字段
+        List<String> changeFieldList = dmlData.getChangeFieldList();
+        //操作的主键
+        int id = Integer.parseInt(dmlData.getId());
+
+        KxsWarehouseCreditAmount creditAmount = new KxsWarehouseCreditAmount();
+
+        creditAmount.setId(id);
+
+        //操作类型
+        OperationType operation = dmlData.getOperation();
+        if(operation.equals(OperationType.DELETE)){
+            kxsWarehouseCreditAmountMapper.deleteById(id);
+            return;
+        }
+        for (String field : changeFieldList) {
+
+            switch (field) {
+                case "Status":
+                    if(Integer.parseInt(validFieldDataMap.get(field).toString()) == -1){
+                        kxsWarehouseCreditAmountMapper.deleteById(id);
+                        return;
+                    }
+                    break;
+                case "PromissAmount":
+                    creditAmount.setCreditAmount(new BigDecimal(validFieldDataMap.get(field).toString()));
+                    break;
+                case "FromUserId":
+                    Integer userId = Integer.valueOf(validFieldDataMap.get(field).toString());
+                    KxsUser user = kxsUserMapper.selectById(userId);
+                    creditAmount.setCreditUserId(userId);
+                    creditAmount.setUsername(user.getUsername());
+                    creditAmount.setUserCode(user.getUserCode());
+                    break;
+                case "ToUserId":
+                    creditAmount.setToCreditUserId(Integer.valueOf(validFieldDataMap.get(field).toString()));
+                    break;
+                case "SeoDescription":
+                    creditAmount.setRemark(validFieldDataMap.get(field).toString());
+                    break;
+
+                case "CreateDate":
+                    creditAmount.setCreateTime(LocalDateTimeUtil.parse(validFieldDataMap.get(field).toString(), DatePattern.NORM_DATETIME_PATTERN));
+                    break;
+                case "UpdateDate":
+                    creditAmount.setUpdateTime(LocalDateTimeUtil.parse(validFieldDataMap.get(field).toString(), DatePattern.NORM_DATETIME_PATTERN));
+                    break;
+            }
+        }
+        if(operation.equals(OperationType.INSERT)){
+            KxsWarehouseCreditAmount kxsWarehouseCreditAmount = kxsWarehouseCreditAmountMapper.selectById(id);
+            if(kxsWarehouseCreditAmount == null){
+                kxsWarehouseCreditAmountMapper.insert(creditAmount);
+            }
+        }
+        if(operation.equals(OperationType.UPDATE)){
+
+            kxsWarehouseCreditAmountMapper.updateById(creditAmount);
+        }
+    }
+
+    @Override
+    public void changeAccountData(DMLData dmlData) {
+        //修改的字段值
+        Map<String, Object> validFieldDataMap = dmlData.getValidFieldDataMap();
+        //全部字段值
+        Map<String, FieldData> fieldDataMap = dmlData.getFieldDataMap();
+        //修改的字段
+        List<String> changeFieldList = dmlData.getChangeFieldList();
+        //操作的主键
+        int id = Integer.parseInt(dmlData.getId());
+        Integer userId = null;
+
+        KxsWarehouseLimit warehouseLimit = new KxsWarehouseLimit();
+
+        if(fieldDataMap.get("UserId").getValue() != null){
+            userId = Integer.valueOf(fieldDataMap.get("UserId").getValue().toString());
+        }
+        for (String field : changeFieldList) {
+
+            switch (field) {
+                case "UserId":
+                    warehouseLimit.setUserId(Integer.valueOf(validFieldDataMap.get(field).toString()));
+                    break;
+                case "ValidAmount":
+                    warehouseLimit.setValidAmount(new BigDecimal(validFieldDataMap.get(field).toString()));
+                    break;
+                case "FixedAmount":
+                    warehouseLimit.setFixedAmount(new BigDecimal(validFieldDataMap.get(field).toString()));
+                    break;
+                case "TempAmount":
+                    warehouseLimit.setForAmount(new BigDecimal(validFieldDataMap.get(field).toString()));
+                    break;
+                case "TempAmountForBalance":
+                    warehouseLimit.setYueForAmount(new BigDecimal(validFieldDataMap.get(field).toString()));
+                    break;
+                case "CreateDate":
+                    warehouseLimit.setCreateTime(LocalDateTimeUtil.parse(validFieldDataMap.get(field).toString(), DatePattern.NORM_DATETIME_PATTERN));
+                    break;
+                case "UpdateDate":
+                    warehouseLimit.setUpdateTime(LocalDateTimeUtil.parse(validFieldDataMap.get(field).toString(), DatePattern.NORM_DATETIME_PATTERN));
+                    break;
+            }
+        }
+        if (BeanUtil.isNotEmpty(warehouseLimit, "entityClass") && userId != null) {
+            KxsWarehouseLimit kxsWarehouseLimit = kxsWarehouseLimitMapper.selectOne(Wrappers.<KxsWarehouseLimit>lambdaQuery()
+                    .eq(KxsWarehouseLimit::getWarehouseType, 0)
+                    .eq(KxsWarehouseLimit::getUserId, userId));
+            if (kxsWarehouseLimit == null) {
+                kxsWarehouseLimitMapper.insert(warehouseLimit);
+            }else{
+                warehouseLimit.setId(kxsWarehouseLimit.getId());
+                kxsWarehouseLimitMapper.updateById(warehouseLimit);
+            }
+        }
+    }
+
+    @Override
+    public void changeAccountMinData(DMLData dmlData) {
+        //修改的字段值
+        Map<String, Object> validFieldDataMap = dmlData.getValidFieldDataMap();
+        //全部字段值
+        Map<String, FieldData> fieldDataMap = dmlData.getFieldDataMap();
+        //修改的字段
+        List<String> changeFieldList = dmlData.getChangeFieldList();
+        //操作的主键
+        int id = Integer.parseInt(dmlData.getId());
+        Integer userId = null;
+
+        KxsWarehouseLimit warehouseLimit = new KxsWarehouseLimit();
+
+        if(fieldDataMap.get("UserId").getValue() != null){
+            userId = Integer.valueOf(fieldDataMap.get("UserId").getValue().toString());
+        }
+        for (String field : changeFieldList) {
+
+            switch (field) {
+                case "UserId":
+                    warehouseLimit.setUserId(Integer.valueOf(validFieldDataMap.get(field).toString()));
+                    break;
+                case "ValidPreAmount":
+                    warehouseLimit.setValidAmount(new BigDecimal(validFieldDataMap.get(field).toString()));
+                    break;
+                case "ThisMonthPreAmount":
+                    warehouseLimit.setFixedAmount(new BigDecimal(validFieldDataMap.get(field).toString()));
+                    break;
+                case "PreTempAmount":
+                    warehouseLimit.setForAmount(new BigDecimal(validFieldDataMap.get(field).toString()));
+                    break;
+                case "PreTempAmountForBalance":
+                    warehouseLimit.setYueForAmount(new BigDecimal(validFieldDataMap.get(field).toString()));
+                    break;
+                case "CreateDate":
+                    warehouseLimit.setCreateTime(LocalDateTimeUtil.parse(validFieldDataMap.get(field).toString(), DatePattern.NORM_DATETIME_PATTERN));
+                    break;
+                case "UpdateDate":
+                    warehouseLimit.setUpdateTime(LocalDateTimeUtil.parse(validFieldDataMap.get(field).toString(), DatePattern.NORM_DATETIME_PATTERN));
+                    break;
+            }
+        }
+        if (BeanUtil.isNotEmpty(warehouseLimit, "entityClass") && userId != null) {
+            KxsWarehouseLimit kxsWarehouseLimit = kxsWarehouseLimitMapper.selectOne(Wrappers.<KxsWarehouseLimit>lambdaQuery()
+                    .eq(KxsWarehouseLimit::getWarehouseType, 1)
+                    .eq(KxsWarehouseLimit::getUserId, userId));
+            if (kxsWarehouseLimit == null) {
+                kxsWarehouseLimitMapper.insert(warehouseLimit);
+            }else{
+                warehouseLimit.setId(kxsWarehouseLimit.getId());
+                kxsWarehouseLimitMapper.updateById(warehouseLimit);
+            }
+        }
+    }
 }
 

+ 7 - 1
kxs-transfer/src/main/resources/import.txt

@@ -160,11 +160,17 @@ TotalNum as stock_total, LaveNum as stock_num, OutNum as delivery_num, a.Id as w
 from StoreHouse a
 -- 仓库额度表
 SELECT s.Id as id, s.UserId as user_id, s.CreateDate as create_time, s.UpdateDate as update_time,
-a.ValidAmount as valid_amount, a.FixedAmount as fixed_amount, a.TempAmount as for_amount, ifnull(b.PromissAmount,0) as credit_amount
+a.ValidAmount as valid_amount, a.FixedAmount as fixed_amount, a.TempAmount as for_amount, TempAmountForBalance as yue_for_amount, ifnull(b.PromissAmount,0) as credit_amount
 from StoreHouse s
 left join UserAccount a on a.UserId = s.UserId
 left JOIN StoreHouseAmountPromiss b on s.UserId = b.ToUserId and b.status = 1
 GROUP BY s.UserId
+-- 仓库担保记录
+SELECT a.Id as id, a.CreateDate as create_time, a.UpdateDate as update_time, case a.Status when  1 then 0 when -1 then 1 end  del_flag,
+a.PromissAmount as credit_amount, a.FromUserId as credit_user_id, a.ToUserId as to_credit_user_id, a.SeoDescription as remark,
+u.RealName as username, u.MakerCode as user_code
+FROM StoreHouseAmountPromiss a
+LEFT JOIN Users u on u.id = a.ToUserId WHERE a.`Status` < 2
 
 //机具回收表
 SELECT  a.Id as id, a.UserId as user_id,a.CreateDate as create_time, a.UpdateDate as update_time,