ソースを参照

1.机具申请表数据同步
2。仓库预发机同步
3.训练营列表返回开始时间

mac 2 年 前
コミット
6cafbb3e2d
15 ファイル変更522 行追加22 行削除
  1. 2 2
      kxs-store/kxs-store-api/src/main/java/com/kxs/store/api/model/KxsMachineAdvanceInfo.java
  2. 6 0
      kxs-store/kxs-store-api/src/main/java/com/kxs/store/api/model/KxsMachineApply.java
  3. 1 1
      kxs-store/kxs-store-biz/src/main/java/com/kxs/store/biz/service/impl/KxsMachineAdvanceServiceImpl.java
  4. 1 1
      kxs-store/kxs-store-biz/src/main/java/com/kxs/store/biz/service/impl/KxsMachineApplyServiceImpl.java
  5. 1 0
      kxs-store/kxs-store-biz/src/main/resources/mapper/KxsMachineApplyMapper.xml
  6. 12 0
      kxs-system/kxs-system-api/src/main/java/com/kxs/system/api/vo/kxsapp/camp/CampPageVO.java
  7. 1 1
      kxs-system/kxs-system-biz/src/main/resources/mapper/KxsCampMapper.xml
  8. 36 17
      kxs-transfer/src/main/java/com/kxs/transfer/api/controller/DtsController.java
  9. 19 0
      kxs-transfer/src/main/java/com/kxs/transfer/api/mapper/store/KxsMachineAdvanceInfoMapper.java
  10. 29 0
      kxs-transfer/src/main/java/com/kxs/transfer/api/mapper/store/KxsMachineAdvanceMapper.java
  11. 21 0
      kxs-transfer/src/main/java/com/kxs/transfer/api/mapper/store/KxsMachineApplyDetailMapper.java
  12. 29 0
      kxs-transfer/src/main/java/com/kxs/transfer/api/mapper/store/KxsMachineApplyMapper.java
  13. 24 0
      kxs-transfer/src/main/java/com/kxs/transfer/api/service/product/impl/KxsShopOrderService.java
  14. 162 0
      kxs-transfer/src/main/java/com/kxs/transfer/api/service/store/impl/KxsMachineAdvanceService.java
  15. 178 0
      kxs-transfer/src/main/java/com/kxs/transfer/api/service/store/impl/KxsMachineApplyService.java

+ 2 - 2
kxs-store/kxs-store-api/src/main/java/com/kxs/store/api/model/KxsMachineAdvanceInfo.java

@@ -102,9 +102,9 @@ public class KxsMachineAdvanceInfo extends Model<KxsMachineAdvanceInfo> implemen
 
 
     /**
-     * 是否占用预发额度 0否 1是
+     * 是否占用创客的预发额度 0否 1是
      */
-    @Schema(description = "是否占用预发额度 0否 1是")
+    @Schema(description = "是否占用创客的预发额度 0否 1是")
     private Integer isUseAmount;
 
 

+ 6 - 0
kxs-store/kxs-store-api/src/main/java/com/kxs/store/api/model/KxsMachineApply.java

@@ -155,6 +155,12 @@ public class KxsMachineApply extends Model<KxsMachineApply> implements Serializa
     @Schema(description = "顶级创客ID")
     private Integer topUserId;
 
+    /**
+     * 合伙人ID
+     */
+    @Schema(description = "合伙人ID")
+    private Integer partnerId;
+
 
     /**
      * 备注

+ 1 - 1
kxs-store/kxs-store-biz/src/main/java/com/kxs/store/biz/service/impl/KxsMachineAdvanceServiceImpl.java

@@ -251,7 +251,7 @@ public class KxsMachineAdvanceServiceImpl extends ServiceImpl<KxsMachineAdvanceM
             kxsMachineAdvanceInfoMapper.insert(kxsMachineAdvanceInfo);
 
             //修改状态为预发机
-//            machine.setStatus(MachineTypeEnum.STATUS_ADVANCE.getType());
+            machine.setPreUserId(toUser.getId());
             R<Boolean> result = remoteKxsProductService.updateByMachine(machine, SecurityConstants.FROM_IN);
             if(!result.getData()){
                 throw new GlobalCustomerException(StoreErrorTypeEnum.DATA_ERROR.getDescription());

+ 1 - 1
kxs-store/kxs-store-biz/src/main/java/com/kxs/store/biz/service/impl/KxsMachineApplyServiceImpl.java

@@ -205,7 +205,7 @@ public class KxsMachineApplyServiceImpl extends ServiceImpl<KxsMachineApplyMappe
                     kxsWarehouseLimitService.refreshUserAmount(userId.intValue(), price, KindTypeEnum.SUB.getType());
                 }
                 //已经添加到预扣款
-                if (kxsMachineAdvance.getIsAdvance() == 1 && kxsMachineAdvance.getAdvanceId() != null) {
+                if (kxsMachineAdvance.getAdvanceId() != null) {
                     //查询当前的预扣款
                     R<KxsUserAdvance> advanceResult = remoteKxsUserService.loadByAdvanceId(kxsMachineAdvance.getAdvanceId(), SecurityConstants.FROM_IN);
                     KxsUserAdvance advance = RetOps.of(advanceResult)

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

@@ -25,6 +25,7 @@
         <result column="remark" property="remark" />
         <result column="username" property="username" />
         <result column="user_code" property="userCode" />
+        <result column="partner_id" property="partnerId" />
 
     </resultMap>
     <select id="getByPage" resultType="com.kxs.store.api.vo.kxsapp.storeOrder.StoreOrderListVO">

+ 12 - 0
kxs-system/kxs-system-api/src/main/java/com/kxs/system/api/vo/kxsapp/camp/CampPageVO.java

@@ -6,6 +6,7 @@ import lombok.Data;
 
 import java.io.Serial;
 import java.io.Serializable;
+import java.time.LocalDateTime;
 
 /**
  * 列表vo
@@ -58,7 +59,18 @@ public class CampPageVO implements Serializable {
     private String title;
 
 
+    /**
+     * 开始时间
+     */
+    @Schema(description = "开始时间")
+    private LocalDateTime startTime;
+
 
+    /**
+     * 结束时间
+     */
+    @Schema(description = "结束时间")
+    private LocalDateTime endTime;
 
 
 	

+ 1 - 1
kxs-system/kxs-system-biz/src/main/resources/mapper/KxsCampMapper.xml

@@ -28,7 +28,7 @@
 
     </resultMap>
     <select id="getByPage" resultType="com.kxs.system.api.vo.kxsapp.camp.CampPageVO">
-        SELECT a.id, a.status, a.camp_num, a.camp_type, a.pic_url, a.title
+        SELECT a.id, a.status, a.camp_num, a.camp_type, a.pic_url, a.title, a.start_time, a.end_time
         from kxs_camp a
         left join kxs_camp_user b on a.id = b.camp_id
         <where>

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

@@ -4,6 +4,8 @@ import com.alibaba.fastjson.JSON;
 import com.aliyun.dts.subscribe.clients.record.DefaultUserRecord;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.kxs.product.api.model.KxsMerchant;
+import com.kxs.store.api.model.KxsMachineAdvance;
+import com.kxs.store.api.model.KxsMachineApply;
 import com.kxs.system.api.model.KxsSchoolStudy;
 import com.kxs.transfer.api.annotation.DtsMsgListener;
 import com.kxs.transfer.api.mapper.user.KxsUserByStageMapper;
@@ -17,6 +19,8 @@ import com.kxs.transfer.api.service.product.impl.KxsMachineTrackService;
 import com.kxs.transfer.api.service.product.impl.KxsShopOrderService;
 import com.kxs.transfer.api.service.store.KxsMachineRecycleService;
 import com.kxs.transfer.api.service.store.KxsWarehouseService;
+import com.kxs.transfer.api.service.store.impl.KxsMachineAdvanceService;
+import com.kxs.transfer.api.service.store.impl.KxsMachineApplyService;
 import com.kxs.transfer.api.service.sys.KxsMorningLogService;
 import com.kxs.transfer.api.service.sys.KxsMorningService;
 import com.kxs.transfer.api.service.sys.KxsSchoolStudyService;
@@ -83,6 +87,8 @@ public class DtsController {
     //仓库模块
     private final KxsWarehouseService kxsWarehouseService;
     private final KxsMachineRecycleService kxsMachineRecycleService;
+    private final KxsMachineApplyService kxsMachineApplyService;
+    private final KxsMachineAdvanceService kxsMachineAdvanceService;
 
     @Value("${spring.profiles.active}")
     private String active;
@@ -218,23 +224,6 @@ public class DtsController {
             if ("SchoolMakerStudy".equals(dmlData.getTableName())) {
                 kxsSchoolStudyService.changeData(dmlData);
             }
-
-            //仓库表
-            if ("StoreHouse".equals(dmlData.getTableName())) {
-                kxsWarehouseService.changeData(dmlData);
-            }
-            //仓库担保记录
-            if ("StoreHouseAmountPromiss".equals(dmlData.getTableName())) {
-                kxsWarehouseService.changeCreditData(dmlData);
-            }
-            //仓库额度表
-            if ("UserAccount".equals(dmlData.getTableName()) && ("dev".equals(active) || "test".equals(active) ? "KxsMainServer":"KxsProfitServer").equals(dmlData.getDatabaseName())) {
-                kxsWarehouseService.changeAccountData(dmlData);
-            }
-            //小仓库额度表
-            if ("UserAccount".equals(dmlData.getTableName()) && ("dev".equals(active) || "test".equals(active) ? "KxsMainServer":"KxsProfitServer").equals(dmlData.getDatabaseName())) {
-                kxsWarehouseService.changeAccountMinData(dmlData);
-            }
             //机具表
             if ("PosMachinesTwo".equals(dmlData.getTableName())) {
                 kxsMachineService.changeData(dmlData);
@@ -278,6 +267,36 @@ public class DtsController {
             if ("PosCouponRecord".equals(dmlData.getTableName())) {
                 kxsTicketTransferService.changeInfoData(dmlData);
             }
+
+
+            //仓库表
+            if ("StoreHouse".equals(dmlData.getTableName())) {
+                kxsWarehouseService.changeData(dmlData);
+            }
+            //机具申请订单表
+            if ("MachineApply".equals(dmlData.getTableName())) {
+                kxsMachineApplyService.changeData(dmlData);
+            }
+            //仓库预发机
+            if ("PreSendStockDetail".equals(dmlData.getTableName())) {
+                kxsMachineAdvanceService.changeData(dmlData);
+            }
+            //仓库担保记录
+            if ("StoreHouseAmountPromiss".equals(dmlData.getTableName())) {
+                kxsWarehouseService.changeCreditData(dmlData);
+            }
+            //仓库额度表
+            if ("UserAccount".equals(dmlData.getTableName()) && ("dev".equals(active) || "test".equals(active) ? "KxsMainServer":"KxsProfitServer").equals(dmlData.getDatabaseName())) {
+                kxsWarehouseService.changeAccountData(dmlData);
+            }
+            //小分仓库额度表
+            if ("UserAccount".equals(dmlData.getTableName()) && ("dev".equals(active) || "test".equals(active) ? "KxsMainServer":"KxsProfitServer").equals(dmlData.getDatabaseName())) {
+                kxsWarehouseService.changeAccountMinData(dmlData);
+            }
+
+
+
+
             //创客消息表
             if ("MsgPersonal".equals(dmlData.getTableName())) {
                 kxsSysMsgService.changeUserData(dmlData);

+ 19 - 0
kxs-transfer/src/main/java/com/kxs/transfer/api/mapper/store/KxsMachineAdvanceInfoMapper.java

@@ -0,0 +1,19 @@
+package com.kxs.transfer.api.mapper.store;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.kxs.store.api.model.KxsMachineAdvanceInfo;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 客小爽预发机明细表(KxsMachineAdvanceInfo)表数据库访问层
+ *
+ * @author 系统
+ * @since 2024-01-10 18:14:55
+ */
+@Mapper
+@DS("store")
+public interface KxsMachineAdvanceInfoMapper extends BaseMapper<KxsMachineAdvanceInfo> {
+
+}
+

+ 29 - 0
kxs-transfer/src/main/java/com/kxs/transfer/api/mapper/store/KxsMachineAdvanceMapper.java

@@ -0,0 +1,29 @@
+package com.kxs.transfer.api.mapper.store;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.kxs.store.api.model.KxsMachineAdvance;
+import com.kxs.store.api.vo.kxsapp.store.StoreAdvanceMachineVO;
+import com.kxs.store.api.vo.kxsapp.storeAdvance.UserWarehouseListVO;
+import com.kxs.store.api.vo.kxsapp.userAdvance.AdvanceDevModalVO;
+import com.kxs.store.api.vo.kxsapp.userAdvance.UserAdvanceListVO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 客小爽预发机表(KxsMachineAdvance)表数据库访问层
+ *
+ * @author 系统
+ * @since 2024-01-08 09:46:02
+ */
+@Mapper
+@DS("store")
+public interface KxsMachineAdvanceMapper extends BaseMapper<KxsMachineAdvance> {
+
+}
+

+ 21 - 0
kxs-transfer/src/main/java/com/kxs/transfer/api/mapper/store/KxsMachineApplyDetailMapper.java

@@ -0,0 +1,21 @@
+package com.kxs.transfer.api.mapper.store;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.kxs.store.api.model.KxsMachineApplyDetail;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+/**
+ * 客小爽机具申请详情表(KxsMachineApplyDetail)表数据库访问层
+ *
+ * @author 系统
+ * @since 2024-01-08 09:46:02
+ */
+@Mapper
+@DS("store")
+public interface KxsMachineApplyDetailMapper extends BaseMapper<KxsMachineApplyDetail> {
+
+}
+

+ 29 - 0
kxs-transfer/src/main/java/com/kxs/transfer/api/mapper/store/KxsMachineApplyMapper.java

@@ -0,0 +1,29 @@
+package com.kxs.transfer.api.mapper.store;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.kxs.store.api.dto.kxsapp.storeOrder.OrderMonthTotalDTO;
+import com.kxs.store.api.dto.kxsapp.storeOrder.OrderMonthTotalDetailDTO;
+import com.kxs.store.api.dto.kxsapp.storeOrder.StoreOrderListDTO;
+import com.kxs.store.api.model.KxsMachineApply;
+import com.kxs.store.api.vo.kxsapp.storeOrder.OrderMonthTotalDetailVO;
+import com.kxs.store.api.vo.kxsapp.storeOrder.OrderMonthTotalVO;
+import com.kxs.store.api.vo.kxsapp.storeOrder.StoreOrderListVO;
+import com.kxs.store.api.vo.kxsapp.userOrder.UserApplyMahineListVO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * 客小爽机具申请表(KxsMachineApply)表数据库访问层
+ *
+ * @author 系统
+ * @since 2024-01-08 09:46:02
+ */
+@Mapper
+@DS("store")
+public interface KxsMachineApplyMapper extends BaseMapper<KxsMachineApply> {
+
+}
+

+ 24 - 0
kxs-transfer/src/main/java/com/kxs/transfer/api/service/product/impl/KxsShopOrderService.java

@@ -6,13 +6,18 @@ import cn.hutool.core.util.StrUtil;
 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.KxsShopGoods;
 import com.kxs.product.api.model.KxsShopOrder;
 import com.kxs.product.api.model.KxsShopOrderInfo;
+import com.kxs.store.api.model.KxsMachineApplyDetail;
 import com.kxs.system.api.model.KxsMorningLog;
 import com.kxs.system.api.model.KxsSchoolMenu;
+import com.kxs.transfer.api.mapper.product.KxsMachineMapper;
 import com.kxs.transfer.api.mapper.product.KxsShopOrderInfoMapper;
 import com.kxs.transfer.api.mapper.product.KxsShopOrderMapper;
+import com.kxs.transfer.api.mapper.store.KxsMachineApplyDetailMapper;
+import com.kxs.transfer.api.mapper.store.KxsMachineApplyMapper;
 import com.kxs.transfer.api.model.table.DMLData;
 import com.kxs.transfer.api.model.table.FieldData;
 import lombok.RequiredArgsConstructor;
@@ -34,6 +39,10 @@ public class KxsShopOrderService extends ServiceImpl<KxsShopOrderMapper, KxsShop
 
     private final KxsShopOrderInfoMapper kxsShopOrderInfoMapper;
 
+    private final KxsMachineMapper kxsMachineMapper;
+
+    private final KxsMachineApplyDetailMapper kxsMachineApplyDetailMapper;
+
     public void changeData(DMLData dmlData) {
         //修改的字段值
         Map<String, Object> validFieldDataMap = dmlData.getValidFieldDataMap();
@@ -50,6 +59,21 @@ public class KxsShopOrderService extends ServiceImpl<KxsShopOrderMapper, KxsShop
         }
         int sort = Integer.parseInt(fieldDataMap.get("Sort").getValue().toString());
         if(sort != 0){
+            //获取发货的机具号列表
+            if(fieldDataMap.get("SnNos").getValue() != null){
+                String sns = fieldDataMap.get("SnNos").getValue().toString();
+                String[] split = sns.split(",");
+                //机具申请订单,把发货的机具绑定的机具申请的订单详情表里
+                List<KxsMachineApplyDetail> kxsMachineApplyDetails = kxsMachineApplyDetailMapper.selectList(Wrappers.<KxsMachineApplyDetail>lambdaQuery().eq(KxsMachineApplyDetail::getOrderId, sort));
+                if(split.length == kxsMachineApplyDetails.size()){
+                    for (int i = 0; i < kxsMachineApplyDetails.size(); i++) {
+                        kxsMachineApplyDetails.get(i).setPosSn(split[i]);
+                        KxsMachine kxsMachine = kxsMachineMapper.selectOne(Wrappers.<KxsMachine>lambdaQuery().eq(KxsMachine::getPosSn, split[i]));
+                        kxsMachineApplyDetails.get(i).setMachineId(kxsMachine.getId());
+                        kxsMachineApplyDetailMapper.updateById(kxsMachineApplyDetails.get(i));
+                    }
+                }
+            }
             return;
         }
         //操作的主键

+ 162 - 0
kxs-transfer/src/main/java/com/kxs/transfer/api/service/store/impl/KxsMachineAdvanceService.java

@@ -0,0 +1,162 @@
+package com.kxs.transfer.api.service.store.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.date.DatePattern;
+import cn.hutool.core.date.LocalDateTimeUtil;
+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.KxsBrand;
+import com.kxs.store.api.model.*;
+import com.kxs.transfer.api.mapper.product.KxsBrandMapper;
+import com.kxs.transfer.api.mapper.store.KxsMachineAdvanceInfoMapper;
+import com.kxs.transfer.api.mapper.store.KxsMachineAdvanceMapper;
+import com.kxs.transfer.api.mapper.store.KxsMachineApplyDetailMapper;
+import com.kxs.transfer.api.mapper.store.KxsWarehouseMapper;
+import com.kxs.transfer.api.mapper.user.KxsUserAdvanceMapper;
+import com.kxs.transfer.api.model.table.DMLData;
+import com.kxs.transfer.api.model.table.FieldData;
+import com.kxs.user.api.model.KxsUser;
+import com.kxs.user.api.model.KxsUserAdvance;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 客小爽预发机表(KxsMachineAdvance)表服务实现类
+ *
+ * @author 系统
+ * @since 2024-01-08 09:46:02
+ */
+@Service("kxsMachineAdvanceService")
+@RequiredArgsConstructor
+public class KxsMachineAdvanceService extends ServiceImpl<KxsMachineAdvanceMapper, KxsMachineAdvance>  {
+
+    private final KxsMachineAdvanceInfoMapper kxsMachineAdvanceInfoMapper;
+
+    private final KxsBrandMapper kxsBrandMapper;
+
+    private final KxsWarehouseMapper kxsWarehouseMapper;
+
+    private final KxsUserAdvanceMapper kxsUserAdvanceMapper;
+
+    public void changeData(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());
+
+        KxsMachineAdvance machineAdvance = new KxsMachineAdvance();
+
+        KxsMachineAdvanceInfo machineAdvanceInfo = new KxsMachineAdvanceInfo();
+
+        //操作类型
+        OperationType operation = dmlData.getOperation();
+        if (operation.equals(OperationType.DELETE)) {
+            baseMapper.deleteById(id);
+            kxsMachineAdvanceInfoMapper.delete(Wrappers.<KxsMachineAdvanceInfo>lambdaQuery().eq(KxsMachineAdvanceInfo::getOrderId, id));
+            return;
+        }
+        for (String field : changeFieldList) {
+
+            switch (field) {
+                case "ToUserId":
+                    int userId = Integer.parseInt(validFieldDataMap.get(field).toString());
+                    machineAdvance.setToUserId(userId);
+                    break;
+                case "FromUserId":
+                    machineAdvance.setSendUserId(Integer.valueOf(validFieldDataMap.get(field).toString()));
+                    break;
+                case "BrandId":
+                    KxsBrand brand = kxsBrandMapper.selectById(Integer.valueOf(validFieldDataMap.get(field).toString()));
+                    machineAdvance.setBrandId(Integer.valueOf(validFieldDataMap.get(field).toString()));
+                    machineAdvance.setBrandName(brand.getName());
+                    break;
+                case "ProductName":
+                    machineAdvance.setBrandName(validFieldDataMap.get(field).toString());
+                    break;
+                case "FromStoreId":
+                    Integer storeId = Integer.valueOf(validFieldDataMap.get(field).toString());
+                    KxsWarehouse warehouse = kxsWarehouseMapper.selectById(storeId);
+                    machineAdvance.setWarehouseId(storeId);
+                    machineAdvance.setWarehouseName(warehouse.getWarehouseName());
+                    break;
+                case "SnId":
+                    machineAdvanceInfo.setMachineId(Integer.valueOf(validFieldDataMap.get(field).toString()));
+                    break;
+                case "ApplyFlag":
+                    machineAdvanceInfo.setIsApply(Integer.valueOf(validFieldDataMap.get(field).toString()));
+                    break;
+                case "SnNo":
+                    machineAdvanceInfo.setPosSn(validFieldDataMap.get(field).toString());
+                    break;
+                case "AuthFlag":
+                    machineAdvanceInfo.setIsUseAmount(Integer.valueOf(validFieldDataMap.get(field).toString()));
+                    break;
+                case "WithholdFlag":
+                    machineAdvanceInfo.setIsAdvance(Integer.valueOf(validFieldDataMap.get(field).toString()));
+                    KxsUserAdvance advance = kxsUserAdvanceMapper.selectOne(Wrappers.<KxsUserAdvance>lambdaQuery().eq(KxsUserAdvance::getExtField, machineAdvanceInfo.getPosSn()));
+                    if(advance != null){
+                        machineAdvanceInfo.setAdvanceId(advance.getId());
+                    }
+
+                    break;
+                case "CancelFlag":
+                    machineAdvanceInfo.setIsReturn(Integer.valueOf(validFieldDataMap.get(field).toString()));
+                    break;
+                case "CancelDate":
+                    machineAdvanceInfo.setReturnTime(LocalDateTimeUtil.parse(validFieldDataMap.get(field).toString(), DatePattern.NORM_DATETIME_PATTERN));
+                    break;
+                case "Status":
+                    int status = Integer.parseInt(validFieldDataMap.get(field).toString());
+                    machineAdvanceInfo.setIsConfirm(status == -1 ? 2 : status);
+                    break;
+                case "CreateDate":
+                    machineAdvance.setCreateTime(LocalDateTimeUtil.parse(validFieldDataMap.get(field).toString(), DatePattern.NORM_DATETIME_PATTERN));
+                    machineAdvanceInfo.setCreateTime(LocalDateTimeUtil.parse(validFieldDataMap.get(field).toString(), DatePattern.NORM_DATETIME_PATTERN));
+
+                    break;
+                case "UpdateDate":
+                    machineAdvance.setUpdateTime(LocalDateTimeUtil.parse(validFieldDataMap.get(field).toString(), DatePattern.NORM_DATETIME_PATTERN));
+                    machineAdvanceInfo.setUpdateTime(LocalDateTimeUtil.parse(validFieldDataMap.get(field).toString(), DatePattern.NORM_DATETIME_PATTERN));
+                    break;
+                case "ApplyDate":
+                    machineAdvanceInfo.setUpdateTime(LocalDateTimeUtil.parse(validFieldDataMap.get(field).toString(), DatePattern.NORM_DATETIME_PATTERN));
+                    break;
+
+            }
+        }
+        if (operation.equals(OperationType.UPDATE)) {
+            if(BeanUtil.isNotEmpty(machineAdvance, "entityClass")){
+                machineAdvance.setId(id);
+                baseMapper.updateById(machineAdvance);
+            }
+            if(BeanUtil.isNotEmpty(machineAdvanceInfo, "entityClass")){
+                machineAdvanceInfo.setId(id);
+                machineAdvanceInfo.setOrderId(id);
+                kxsMachineAdvanceInfoMapper.updateById(machineAdvanceInfo);
+            }
+        }
+        if (operation.equals(OperationType.INSERT)) {
+            KxsMachineAdvance kxsMachineAdvance = baseMapper.selectById(id);
+            if (kxsMachineAdvance == null) {
+                machineAdvance.setId(id);
+                baseMapper.insert(machineAdvance);
+
+                machineAdvanceInfo.setId(id);
+                machineAdvanceInfo.setOrderId(id);
+                kxsMachineAdvanceInfoMapper.insert(machineAdvanceInfo);
+
+            }
+        }
+    }
+}
+

+ 178 - 0
kxs-transfer/src/main/java/com/kxs/transfer/api/service/store/impl/KxsMachineApplyService.java

@@ -0,0 +1,178 @@
+package com.kxs.transfer.api.service.store.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.date.DatePattern;
+import cn.hutool.core.date.LocalDateTimeUtil;
+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.store.api.model.*;
+import com.kxs.transfer.api.mapper.store.KxsMachineApplyDetailMapper;
+import com.kxs.transfer.api.mapper.store.KxsMachineApplyMapper;
+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.user.api.model.KxsUser;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Service;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 客小爽机具申请表(KxsMachineApply)表服务实现类
+ *
+ * @author 系统
+ * @since 2024-01-08 09:46:02
+ */
+@Service("kxsMachineApplyService")
+@RequiredArgsConstructor
+public class KxsMachineApplyService extends ServiceImpl<KxsMachineApplyMapper, KxsMachineApply> {
+
+    private final KxsMachineApplyDetailMapper kxsMachineApplyDetailMapper;
+
+    private final KxsUserMapper kxsUserMapper;
+
+    public void changeData(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());
+
+        KxsMachineApply machineApply = new KxsMachineApply();
+
+        List<KxsMachineApplyDetail> machineApplyDetailList = new ArrayList<>();
+
+        //操作类型
+        OperationType operation = dmlData.getOperation();
+        if (operation.equals(OperationType.DELETE)) {
+            baseMapper.deleteById(id);
+            kxsMachineApplyDetailMapper.delete(Wrappers.<KxsMachineApplyDetail>lambdaQuery().eq(KxsMachineApplyDetail::getOrderId, id));
+            return;
+        }
+        for (String field : changeFieldList) {
+
+            switch (field) {
+                case "UserId":
+                    int userId = Integer.parseInt(validFieldDataMap.get(field).toString());
+                    KxsUser user = kxsUserMapper.selectById(userId);
+                    if (user != null) {
+                        machineApply.setUsername(user.getUsername());
+                        machineApply.setUserCode(user.getUserCode());
+                    }
+                    machineApply.setUserId(userId);
+                    break;
+                case "ApplyNo":
+                    machineApply.setOrderSn(validFieldDataMap.get(field).toString());
+                    break;
+                case "BrandId":
+                    machineApply.setBrandId(Integer.valueOf(validFieldDataMap.get(field).toString()));
+                    break;
+                case "ProductName":
+                    machineApply.setBrandName(validFieldDataMap.get(field).toString());
+                    break;
+                case "RealName":
+                    machineApply.setContacts(validFieldDataMap.get(field).toString());
+                    break;
+                case "Mobile":
+                    machineApply.setPhone(validFieldDataMap.get(field).toString());
+                    break;
+                case "StoreId":
+                    machineApply.setWarehouseId(Integer.valueOf(validFieldDataMap.get(field).toString()));
+                    break;
+                case "ApplyDeviceNum":
+                    machineApply.setApplyNum(Integer.valueOf(validFieldDataMap.get(field).toString()));
+                    break;
+                case "TopUserId":
+                    machineApply.setTopUserId(Integer.valueOf(validFieldDataMap.get(field).toString()));
+                    break;
+                case "Areas":
+                    String[] split = validFieldDataMap.get(field).toString().split(",");
+                    if (split.length == 3) {
+                        machineApply.setAddress(split[0] + split[1] + split[2]);
+                    }
+                    break;
+                case "Address":
+                    machineApply.setAddress(machineApply.getAddress() + validFieldDataMap.get(field).toString());
+                    break;
+                case "OperateId":
+                    machineApply.setPartnerId(Integer.valueOf(validFieldDataMap.get(field).toString()));
+                    break;
+                case "Sort":
+                    int sort = Integer.parseInt(validFieldDataMap.get(field).toString());
+                    machineApply.setApplyType(sort == 0 ? 0 : 1);
+
+                    if (fieldDataMap.get("SwapSnExpand").getValue() != null && fieldDataMap.get("OrderExpand").getValue() != null) {
+                        String swapSnExpand = fieldDataMap.get("SwapSnExpand").getValue().toString();
+                        String orderExpand = fieldDataMap.get("OrderExpand").getValue().toString();
+                        if (sort == 0) {
+                            //循环机申请
+                            String[] machineIds = orderExpand.split(",");
+                            for (String machineId : machineIds) {
+                                KxsMachineApplyDetail machineApplyDetail = new KxsMachineApplyDetail();
+                                machineApplyDetail.setRecycleMachineId(Integer.valueOf(machineId));
+                                machineApplyDetail.setOrderId(id);
+                                machineApplyDetail.setApplyType(0);
+                                machineApplyDetailList.add(machineApplyDetail);
+                            }
+                        } else {
+                            //兑换券申请
+                            swapSnExpand = swapSnExpand.replace("\n", ",");
+                            String[] ticketCodes = swapSnExpand.split(",");
+                            String[] ticketIds = orderExpand.split(",");
+                            for (int i = 0; i < ticketCodes.length; i++) {
+                                String[] sns = ticketCodes[i].split(":");
+                                KxsMachineApplyDetail machineApplyDetail = new KxsMachineApplyDetail();
+                                machineApplyDetail.setTicketCode(sns[0]);
+                                machineApplyDetail.setApplyType(1);
+                                machineApplyDetail.setTicketId(Integer.valueOf(ticketIds[i]));
+                                machineApplyDetail.setOrderId(id);
+                                machineApplyDetailList.add(machineApplyDetail);
+                            }
+                        }
+                    }
+                    break;
+                case "Status":
+                    int status = Integer.parseInt(validFieldDataMap.get(field).toString());
+                    machineApply.setStatus(status == -1 ? 2 : status);
+                    break;
+                case "DeliveryType":
+                    int deliveryType = Integer.parseInt(validFieldDataMap.get(field).toString());
+                    machineApply.setGetMode(deliveryType == 1 ? 1 : 0);
+                    break;
+                case "CreateDate":
+                    machineApply.setCreateTime(LocalDateTimeUtil.parse(validFieldDataMap.get(field).toString(), DatePattern.NORM_DATETIME_PATTERN));
+                    break;
+                case "UpdateDate":
+                    machineApply.setUpdateTime(LocalDateTimeUtil.parse(validFieldDataMap.get(field).toString(), DatePattern.NORM_DATETIME_PATTERN));
+                    break;
+
+            }
+        }
+        if (operation.equals(OperationType.UPDATE)) {
+            machineApply.setId(id);
+            baseMapper.updateById(machineApply);
+        }
+        if (operation.equals(OperationType.INSERT)) {
+            KxsMachineApply kxsMachineApply = baseMapper.selectById(id);
+            if (kxsMachineApply == null) {
+                machineApply.setId(id);
+                baseMapper.insert(machineApply);
+                if (!machineApplyDetailList.isEmpty()) {
+                    for (KxsMachineApplyDetail machineApplyDetail : machineApplyDetailList) {
+                        kxsMachineApplyDetailMapper.insert(machineApplyDetail);
+                    }
+                }
+            }
+        }
+    }
+
+
+}
+