Ver Fonte

同步仓库和机具表

mac há 2 anos atrás
pai
commit
cb2add84cb

+ 12 - 0
kxs-product/kxs-product-api/src/main/java/com/kxs/product/api/model/KxsMachine.java

@@ -251,6 +251,12 @@ public class KxsMachine extends Model<KxsMachine> implements Serializable {
     @Schema(description = "合伙人用户ID")
     private Integer partnerId;
 
+    /**
+     * 预发到用户的ID
+     */
+    @Schema(description = "预发到用户的ID")
+    private Integer preUserId;
+
 
     /**
      * 补录标识 0未补录 1已补录
@@ -264,6 +270,12 @@ public class KxsMachine extends Model<KxsMachine> implements Serializable {
     @Schema(description = "补录标识 0未补录 1已补录")
     private Integer isOpAct;
 
+    /**
+     * 业务批次号
+     */
+    @Schema(description = "业务批次号")
+    private String batchNo;
+
 
 }
 

+ 2 - 0
kxs-product/kxs-product-biz/src/main/resources/mapper/KxsMachineMapper.xml

@@ -34,6 +34,8 @@
         <result column="is_supply" property="isSupply" />
         <result column="is_op_act" property="isOpAct" />
         <result column="return_status" property="returnStatus" />
+        <result column="pre_user_id" property="preUserId" />
+        <result column="batch_no" property="batchNo" />
 
     </resultMap>
     <select id="machineStoreList" resultType="com.kxs.product.api.vo.kxsapp.machine.MachineStoreListVO">

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

@@ -103,78 +103,78 @@ public class DtsController {
                 record.commit(String.valueOf(record.getSourceTimestamp()));
                 return;
             }
-            if (!"UserMoveInfo".equals(dmlData.getTableName())) {
-                log.info("开始消费:{}表的数据,dataID:{}, 表名:{}", dmlData.getTableName(), dataId, dmlData.getDatabaseName());
-            }
-
-            //用户表
-            if ("Users".equals(dmlData.getTableName())) {
-                kxsUserService.changeUser(dmlData);
-            }
-            //用户预设职级表
-            if ("UserRankWhite".equals(dmlData.getTableName())) {
-                kxsUserPresetLogService.changeUser(dmlData);
-            }
-            //密码操作
-            if ("UserMoveInfo".equals(dmlData.getTableName())) {
-                kxsUserService.changeUserPwd(dmlData);
-                //密码操作不存储原始数据
-                record.commit(String.valueOf(record.getSourceTimestamp()));
-                return;
-            }
-            //用户地址表
-            if ("UserAddress".equals(dmlData.getTableName())) {
-                kxsUserAddressService.changeData(dmlData);
-            }
-            //用户账户
-            if ("UserAccount".equals(dmlData.getTableName()) && "KxsProfitServer".equals(dmlData.getDatabaseName())) {
-                kxsUserAmountService.changeData(dmlData);
-            }
-            //用户预扣款表
-            if ("ToChargeBackRecord".equals(dmlData.getTableName())) {
-                kxsUserAdvanceService.changeData(dmlData);
-            }
-            //用户账户余额日志
-            if ("UserAccountRecord".equals(dmlData.getTableName())) {
-                kxsUserAmountLogService.changeData(dmlData);
-            }
-            //用户提现申请记录
-            if ("UserCashRecord".equals(dmlData.getTableName()) && "KxsProfitServer".equals(dmlData.getDatabaseName())) {
-                kxsUserWithdrawalService.changeData(dmlData);
-            }
-            //盟主表
-            if ("Leaders".equals(dmlData.getTableName())) {
-                kxsLeaderService.changeData(dmlData);
-            }
-            //盟主金额变动记录表
-            if ("LeaderReserveRecord".equals(dmlData.getTableName())) {
-                kxsLeaderAmountLogService.changeData(dmlData);
-            }
-            //合伙人表
-            if ("OperatorRankWhite".equals(dmlData.getTableName())) {
-                kxsPartnerService.changeData(dmlData);
-            }
-            //合伙人账户 -> 合伙人表
-            if ("UserAccount".equals(dmlData.getTableName()) && "KxsOpServer".equals(dmlData.getDatabaseName())) {
-                kxsPartnerService.changeAccountData(dmlData);
-            }
-
-
-            //商品表同步
-            if ("Products".equals(dmlData.getTableName())) {
-                kxsShopGoodsService.changeData(dmlData);
-            }
-            //每日晨会同步
-            if ("SchoolMorningMeet".equals(dmlData.getTableName())) {
-                kxsMorningService.changeData(dmlData);
-            }
-            if ("SchoolMorningMeetLog".equals(dmlData.getTableName())) {
-                kxsMorningService.changeLogData(dmlData);
-            }
-            //创客学堂
-            if ("SchoolMakerStudy".equals(dmlData.getTableName())) {
-                kxsSchoolStudyService.changeData(dmlData);
-            }
+//            if (!"UserMoveInfo".equals(dmlData.getTableName())) {
+//                log.info("开始消费:{}表的数据,dataID:{}, 表名:{}", dmlData.getTableName(), dataId, dmlData.getDatabaseName());
+//            }
+//
+//            //用户表
+//            if ("Users".equals(dmlData.getTableName())) {
+//                kxsUserService.changeUser(dmlData);
+//            }
+//            //用户预设职级表
+//            if ("UserRankWhite".equals(dmlData.getTableName())) {
+//                kxsUserPresetLogService.changeUser(dmlData);
+//            }
+//            //密码操作
+//            if ("UserMoveInfo".equals(dmlData.getTableName())) {
+//                kxsUserService.changeUserPwd(dmlData);
+//                //密码操作不存储原始数据
+//                record.commit(String.valueOf(record.getSourceTimestamp()));
+//                return;
+//            }
+//            //用户地址表
+//            if ("UserAddress".equals(dmlData.getTableName())) {
+//                kxsUserAddressService.changeData(dmlData);
+//            }
+//            //用户账户
+//            if ("UserAccount".equals(dmlData.getTableName()) && "KxsProfitServer".equals(dmlData.getDatabaseName())) {
+//                kxsUserAmountService.changeData(dmlData);
+//            }
+//            //用户预扣款表
+//            if ("ToChargeBackRecord".equals(dmlData.getTableName())) {
+//                kxsUserAdvanceService.changeData(dmlData);
+//            }
+//            //用户账户余额日志
+//            if ("UserAccountRecord".equals(dmlData.getTableName())) {
+//                kxsUserAmountLogService.changeData(dmlData);
+//            }
+//            //用户提现申请记录
+//            if ("UserCashRecord".equals(dmlData.getTableName()) && "KxsProfitServer".equals(dmlData.getDatabaseName())) {
+//                kxsUserWithdrawalService.changeData(dmlData);
+//            }
+//            //盟主表
+//            if ("Leaders".equals(dmlData.getTableName())) {
+//                kxsLeaderService.changeData(dmlData);
+//            }
+//            //盟主金额变动记录表
+//            if ("LeaderReserveRecord".equals(dmlData.getTableName())) {
+//                kxsLeaderAmountLogService.changeData(dmlData);
+//            }
+//            //合伙人表
+//            if ("OperatorRankWhite".equals(dmlData.getTableName())) {
+//                kxsPartnerService.changeData(dmlData);
+//            }
+//            //合伙人账户 -> 合伙人表
+//            if ("UserAccount".equals(dmlData.getTableName()) && "KxsOpServer".equals(dmlData.getDatabaseName())) {
+//                kxsPartnerService.changeAccountData(dmlData);
+//            }
+//
+//
+//            //商品表同步
+//            if ("Products".equals(dmlData.getTableName())) {
+//                kxsShopGoodsService.changeData(dmlData);
+//            }
+//            //每日晨会同步
+//            if ("SchoolMorningMeet".equals(dmlData.getTableName())) {
+//                kxsMorningService.changeData(dmlData);
+//            }
+//            if ("SchoolMorningMeetLog".equals(dmlData.getTableName())) {
+//                kxsMorningService.changeLogData(dmlData);
+//            }
+//            //创客学堂
+//            if ("SchoolMakerStudy".equals(dmlData.getTableName())) {
+//                kxsSchoolStudyService.changeData(dmlData);
+//            }
 
             //仓库表
             if ("StoreHouse".equals(dmlData.getTableName())) {
@@ -201,7 +201,7 @@ public class DtsController {
 //            kxsDtsLogService.save(kxsDtsLog);
 
             //删除错误记录,不管有没有都删除,因为很快
-            kxsDtsErrorLogService.removeById(dataId);
+//            kxsDtsErrorLogService.removeById(dataId);
 
             record.commit(String.valueOf(record.getSourceTimestamp()));
         } catch (Exception e) {

+ 64 - 16
kxs-transfer/src/main/java/com/kxs/transfer/api/service/product/impl/KxsMachineServiceImpl.java

@@ -4,6 +4,9 @@ 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.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+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.store.api.model.KxsWarehouse;
@@ -47,7 +50,8 @@ public class KxsMachineServiceImpl extends ServiceImpl<KxsMachineMapper, KxsMach
 
         //操作类型
         OperationType operation = dmlData.getOperation();
-
+        UpdateWrapper<KxsMachine> wrapper = new UpdateWrapper<>();
+        LambdaUpdateWrapper<KxsMachine> lambda = wrapper.lambda().eq(KxsMachine::getId, id);
         for (String field : changeFieldList) {
 
             switch (field) {
@@ -55,9 +59,17 @@ public class KxsMachineServiceImpl extends ServiceImpl<KxsMachineMapper, KxsMach
                     int userId = Integer.parseInt(validFieldDataMap.get(field).toString());
                     if(userId > 0){
                         machine.setStatus(1);
+                    }else{
+                        machine.setStatus(0);
                     }
                     machine.setUserId(Integer.parseInt(validFieldDataMap.get(field).toString()));
                     break;
+                case "Status":
+                    int status = Integer.parseInt(validFieldDataMap.get(field).toString());
+                    if(status == -1){
+                        machine.setStatus(status);
+                    }
+                    break;
                 case "PosSn":
                     machine.setPosSn(validFieldDataMap.get(field).toString());
                     break;
@@ -72,11 +84,18 @@ public class KxsMachineServiceImpl extends ServiceImpl<KxsMachineMapper, KxsMach
                 case "BindMerchantId":
                     machine.setMerchantId(Integer.valueOf(validFieldDataMap.get(field).toString()));
                     break;
+                case "PreUserId":
+                    machine.setPreUserId(Integer.valueOf(validFieldDataMap.get(field).toString()));
+                    break;
                 case "BrandId":
                     machine.setBrandId(Integer.valueOf(validFieldDataMap.get(field).toString()));
                     break;
                 case "RecycEndDate":
-                    machine.setRecycleEndTime(LocalDateTimeUtil.parse(validFieldDataMap.get(field).toString(), DatePattern.NORM_DATETIME_PATTERN));
+                    if(validFieldDataMap.get(field) != null){
+                        machine.setRecycleEndTime(LocalDateTimeUtil.parse(validFieldDataMap.get(field).toString(), DatePattern.NORM_DATETIME_PATTERN));
+                    }else{
+                        lambda.set(KxsMachine::getRecycleEndTime, null);
+                    }
                     break;
                 case "IsPurchase":
                     int isPurchase = Integer.parseInt(validFieldDataMap.get(field).toString());
@@ -88,7 +107,11 @@ public class KxsMachineServiceImpl extends ServiceImpl<KxsMachineMapper, KxsMach
                             recycleEndTime = kxsMachine.getRecycleEndTime();
                         }
                     }
-                    if(isPurchase == 0 && Objects.requireNonNull(recycleEndTime).isAfter(LocalDateTime.now())){
+                    if(recycleEndTime == null ){
+                        machine.setRecycleStatus(0);
+                        break;
+                    }
+                    if(isPurchase == 0 && recycleEndTime.isAfter(LocalDateTime.now())){
                         machine.setRecycleStatus(1);
                     }else{
                         machine.setRecycleStatus(0);
@@ -98,7 +121,11 @@ public class KxsMachineServiceImpl extends ServiceImpl<KxsMachineMapper, KxsMach
                     machine.setMachineType(Integer.valueOf(validFieldDataMap.get(field).toString()));
                     break;
                 case "PrizeParams":
-                    machine.setCashPledge(new BigDecimal(validFieldDataMap.get(field).toString()));
+                    if(validFieldDataMap.get(field) != null){
+                        machine.setCashPledge(new BigDecimal(validFieldDataMap.get(field).toString()));
+                    }else{
+                        machine.setCashPledge(new BigDecimal(299));
+                    }
                     break;
                 case "SeoKeyword":
                     BigDecimal bigDecimal = new BigDecimal(validFieldDataMap.get(field).toString());
@@ -108,10 +135,18 @@ public class KxsMachineServiceImpl extends ServiceImpl<KxsMachineMapper, KxsMach
                     machine.setSourcePledge(bigDecimal);
                     break;
                 case "BindingTime":
-                    machine.setBindTime(LocalDateTimeUtil.parse(validFieldDataMap.get(field).toString(), DatePattern.NORM_DATETIME_PATTERN));
+                    if(validFieldDataMap.get(field) != null){
+                        machine.setBindTime(LocalDateTimeUtil.parse(validFieldDataMap.get(field).toString(), DatePattern.NORM_DATETIME_PATTERN));
+                    }else{
+                        lambda.set(KxsMachine::getBindTime, null);
+                    }
                     break;
                 case "ActivationTime":
-                    machine.setActTime(LocalDateTimeUtil.parse(validFieldDataMap.get(field).toString(), DatePattern.NORM_DATETIME_PATTERN));
+                    if(validFieldDataMap.get(field) != null){
+                        machine.setActTime(LocalDateTimeUtil.parse(validFieldDataMap.get(field).toString(), DatePattern.NORM_DATETIME_PATTERN));
+                    }else{
+                        lambda.set(KxsMachine::getActTime, null);
+                    }
                     break;
                 case "DownFee":
                     machine.setMachineRatio(new BigDecimal(validFieldDataMap.get(field).toString()));
@@ -144,26 +179,39 @@ public class KxsMachineServiceImpl extends ServiceImpl<KxsMachineMapper, KxsMach
                     machine.setIsOpAct(Integer.valueOf(validFieldDataMap.get(field).toString()));
                     break;
                 case "TransferTime":
-                    machine.setDeliveryTime(LocalDateTimeUtil.parse(validFieldDataMap.get(field).toString(), DatePattern.NORM_DATETIME_PATTERN));
+                    if(validFieldDataMap.get(field) != null){
+                        machine.setDeliveryTime(LocalDateTimeUtil.parse(validFieldDataMap.get(field).toString(), DatePattern.NORM_DATETIME_PATTERN));
+                    }else{
+                        lambda.set(KxsMachine::getDeliveryTime, null);
+                    }
+                    break;
+                case "BatchNo":
+                    machine.setBatchNo(validFieldDataMap.get(field).toString());
                     break;
                 case "CreateDate":
                     machine.setCreateTime(LocalDateTimeUtil.parse(validFieldDataMap.get(field).toString(), DatePattern.NORM_DATETIME_PATTERN));
                     break;
                 case "UpdateDate":
-                    machine.setUpdateTime(LocalDateTimeUtil.parse(validFieldDataMap.get(field).toString(), DatePattern.NORM_DATETIME_PATTERN));
+                    if(validFieldDataMap.get(field) != null){
+                        machine.setUpdateTime(LocalDateTimeUtil.parse(validFieldDataMap.get(field).toString(), DatePattern.NORM_DATETIME_PATTERN));
+                    }else{
+                        lambda.set(KxsMachine::getUpdateTime, null);
+                    }
                     break;
             }
         }
-        KxsMachine kxsMachine = baseMapper.selectById(machine.getId());
-        if(kxsMachine == null){
-            if(machine.getCashPledge() == null){
-                machine.setCashPledge(new BigDecimal("299"));
+        if(operation.equals(OperationType.UPDATE)){
+            baseMapper.update(machine, lambda);
+        }
+        if(operation.equals(OperationType.INSERT)){
+            KxsMachine kxsMachine = baseMapper.selectById(machine.getId());
+            if(kxsMachine == null){
+                if(machine.getCashPledge() == null){
+                    machine.setCashPledge(new BigDecimal("299"));
+                }
+                baseMapper.insert(machine);
             }
-            baseMapper.insert(machine);
-        }else{
-            baseMapper.updateById(machine);
         }
-
     }
 }
 

+ 1 - 0
kxs-transfer/src/main/java/com/kxs/transfer/api/service/store/impl/KxsMachineRecycleServiceImpl.java

@@ -17,6 +17,7 @@ import com.kxs.transfer.api.mapper.store.KxsMachineRecycleMapper;
 import com.kxs.transfer.api.mapper.store.KxsWarehouseMapper;
 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.KxsMachineRecycleService;
 import com.kxs.user.api.model.KxsUser;
 import lombok.RequiredArgsConstructor;

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

@@ -158,7 +158,7 @@ public class KxsWarehouseServiceImpl extends ServiceImpl<KxsWarehouseMapper, Kxs
             }
         }
         if(operation.equals(OperationType.INSERT)){
-            KxsWarehouse kxsWarehouse = baseMapper.selectById(warehouse.getId());
+            KxsWarehouse kxsWarehouse = baseMapper.selectById(id);
             if(kxsWarehouse == null){
                 warehouse.setId(id);
                 baseMapper.insert(warehouse);

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

@@ -132,9 +132,10 @@ a.Name as name, case a.Kind when 1 then 0 when 2 then 1 end brand_type, a.PosPri
 from KqProducts a
 left join KxsBsServer.Col c on a.AdColId = c.ColId
 where a.`Status` > 0
+
 //机具表
 select a.Id as id, a.UserId as user_id,a.CreateDate as create_time, a.UpdateDate as update_time,
-a.PosSn as pos_sn, a.StoreId as warehouse_id, a.BindMerchantId as merchant_id, a.BrandId as brand_id,
+a.PosSn as pos_sn, a.StoreId as warehouse_id, a.BindMerchantId as merchant_id, a.BrandId as brand_id, a.PreUserId as pre_user_id,
 (case when a.IsPurchase = 0 && a.RecycEndDate > NOW() then 1 ELSE 0 end) as  recycle_status, a.RecycEndDate as recycle_end_time,
 a.PosSnType as machine_type, ifnull(a.PrizeParams, 299) as cash_pledge, case when a.SeoKeyword > 1000 then a.SeoKeyword / 100 ELSE a.SeoKeyword end as source_pledge,
 a.BindingTime as bind_time, a.ActivationTime as act_time, a.DownFee as machine_ratio, a.ActivationState as is_act, a.BindingState as bind_status,
@@ -143,6 +144,7 @@ IsSupplement as is_supply, IsOpAct as is_op_act, case when a.UserId = 0 then 0
 a.RecycStatus as return_status,
 b.StoreName as warehouse_name
 FROM PosMachinesTwo a LEFT JOIN StoreHouse b on  a.StoreId = b.id
+
 //仓库表
 select a.Id as id, a.UserId as user_id,a.CreateDate as create_time, a.UpdateDate as update_time,
 StoreNo as warehouse_no, StoreName as warehouse_name, BrandId as brand_id, ProductName as brand_name,a.Address as warehouse_address,