From 3ef44331e3bd3e8b61513c88b7439631f49f05c7 Mon Sep 17 00:00:00 2001
From: zjh <1084500556@qq.com>
Date: 星期二, 14 五月 2024 17:00:07 +0800
Subject: [PATCH] zjh 2024/05/14-1

---
 ltkj-admin/src/main/java/com/ltkj/LtkjApplication.java                                |    2 
 ltkj-system/src/main/java/com/ltkj/tduck/utils/SortUtils.java                         |  218 ++--
 /dev/null                                                                             |   57 -
 ltkj-admin/src/main/java/com/ltkj/web/tduck/UserFormSettingController.java            |  284 +++---
 ltkj-admin/src/main/java/com/ltkj/web/tduck/UserFormController.java                   |  620 ++++++------
 ltkj-system/src/main/java/com/ltkj/tduck/service/UserFormSettingService.java          |  122 +-
 ltkj-system/src/main/java/com/ltkj/tduck/service/impl/UserFormSettingServiceImpl.java |  388 ++++----
 ltkj-system/src/main/java/com/ltkj/tduck/utils/CacheUtils.java                        |  266 ++--
 ltkj-system/src/main/java/com/ltkj/tduck/service/impl/UserFormDataServiceImpl.java    |  312 +++---
 ltkj-admin/src/main/java/com/ltkj/web/tduck/UserFormResultController.java             |  460 +++++-----
 ltkj-admin/src/main/resources/application.yml                                         |   20 
 11 files changed, 1,347 insertions(+), 1,402 deletions(-)

diff --git a/ltkj-admin/src/main/java/com/ltkj/LtkjApplication.java b/ltkj-admin/src/main/java/com/ltkj/LtkjApplication.java
index 37c6a91..32ea5ec 100644
--- a/ltkj-admin/src/main/java/com/ltkj/LtkjApplication.java
+++ b/ltkj-admin/src/main/java/com/ltkj/LtkjApplication.java
@@ -3,6 +3,7 @@
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
+import org.springframework.cache.annotation.EnableCaching;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.scheduling.annotation.EnableAsync;
 import org.springframework.transaction.annotation.EnableTransactionManagement;
@@ -15,6 +16,7 @@
 @EnableTransactionManagement
 @SpringBootApplication(exclude = {DataSourceAutoConfiguration.class},scanBasePackages = {"org.jeecg.modules.jmreport","com.ltkj"})
 @EnableAsync
+//@EnableCaching
 public class LtkjApplication {
     public static void main(String[] args) {
         //spring-boot-devtools鐨勬ā鍧椾娇Spring Boot搴旂敤鏀寔鐑儴缃诧紝鏃犻渶鎵嬪姩閲嶅惎Spring Boot搴旂敤銆�
diff --git a/ltkj-admin/src/main/java/com/ltkj/web/tduck/UserFormController.java b/ltkj-admin/src/main/java/com/ltkj/web/tduck/UserFormController.java
index 18487d7..ffda232 100644
--- a/ltkj-admin/src/main/java/com/ltkj/web/tduck/UserFormController.java
+++ b/ltkj-admin/src/main/java/com/ltkj/web/tduck/UserFormController.java
@@ -1,311 +1,311 @@
-package com.ltkj.web.tduck;
-
-import cn.hutool.core.util.ObjectUtil;
-import cn.hutool.core.util.StrUtil;
-import cn.hutool.json.JSONObject;
-import cn.hutool.json.JSONUtil;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import com.ltkj.common.core.domain.AjaxResult;
-import com.ltkj.tduck.constant.CommonConstants;
-import com.ltkj.tduck.domain.*;
-import com.ltkj.tduck.enums.FormStatusEnum;
-import com.ltkj.tduck.enums.FormTypeEnum;
-import com.ltkj.tduck.request.QueryFormItemRequest;
-import com.ltkj.tduck.request.QueryFormRequest;
-import com.ltkj.tduck.request.QueryFormTemplateTypeRequest;
-import com.ltkj.tduck.request.SortFormItemRequest;
-import com.ltkj.tduck.service.*;
-import com.ltkj.tduck.utils.FormDataUtils;
-import com.ltkj.tduck.utils.Result;
-import com.ltkj.tduck.utils.SortUtils;
-import com.ltkj.tduck.utils.ValidatorUtils;
-import com.ltkj.tduck.vo.FormFieldVO;
-import com.ltkj.tduck.vo.OperateFormItemVO;
-import com.ltkj.tduck.vo.UserFormDetailVO;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.web.bind.annotation.*;
-
-import javax.annotation.Resource;
-import javax.annotation.security.PermitAll;
-import javax.validation.constraints.NotBlank;
-import java.util.ArrayList;
-import java.util.Comparator;
-import java.util.Date;
-import java.util.List;
-
-
-/**
- * 鐢ㄦ埛琛ㄥ崟
- **/
-@RequiredArgsConstructor
-@RestController
-@Slf4j
-//@RequestMapping("/tduck-api")
-public class UserFormController {
-    @Resource
-    private final UserFormService formService;
-    @Resource
-    private final UserFormItemService formItemService;
-    @Resource
-    private final FormTemplateCategoryService formTemplateCategoryService;
-    @Resource
-    private final SortUtils sortUtils;
-
-    private final UserFormThemeService userFormThemeService;
-    private final UserFormLogicService userFormLogicService;
-
-
-    /**
-     * 鏌ヨ琛ㄥ崟
-     */
-    @GetMapping("/user/form/{key}")
-    public AjaxResult queryFormByKey(@PathVariable @NotBlank String key) {
-        return AjaxResult.success(formService.getByKey(key));
-    }
-
-    /**
-     * 椤圭洰琛ㄥ崟椤规煡璇�
-     */
-    @GetMapping("/user/form/item/list")
-    public AjaxResult queryFormItems(QueryFormItemRequest request) {
-        ValidatorUtils.validateEntity(request);
-//        FormAuthUtils.hasPermission(request.getKey());
-        List<UserFormItemEntity> itemEntityList = formItemService.list(Wrappers.<UserFormItemEntity>lambdaQuery().eq(UserFormItemEntity::getFormKey, request.getKey()).eq(ObjectUtil.isNotNull(request.getDisplayType()), UserFormItemEntity::getDisplayType, request.getDisplayType()));
-        itemEntityList.sort(Comparator.comparing(UserFormItemEntity::getSort));
-        return AjaxResult.success(itemEntityList);
-    }
-
-
-    /**
-     * 鍒嗛〉鏌ヨ椤圭洰鍒嗙被
-     *
-     * @return
-     */
-    @GetMapping("/form/template/type/list")
-    public AjaxResult queryFormTemplateTypes(QueryFormTemplateTypeRequest.List request) {
-        return AjaxResult.success(formTemplateCategoryService.list(Wrappers.<FormTemplateCategoryEntity>lambdaQuery()
-                .orderByDesc(FormTemplateCategoryEntity::getSort)));
-    }
-
-
-    /**
-     * 琛ㄥ崟鏇存柊
-     *
-     * @param form
-     */
-    @PostMapping("/user/form/update")
-    public AjaxResult updateForm(@RequestBody UserFormEntity form) {
-//        ValidatorUtils.validateEntity(form, AddGroup.class);
-        UserFormEntity oldForm = formService.getByKey(form.getFormKey());
-        if (ObjectUtil.isNotNull(oldForm)) {
-            form.setId(oldForm.getId());
-            formService.updateById(form);
-        }
-        return AjaxResult.success();
-    }
-
-
-    /**
-     * 椤圭洰琛ㄥ崟椤瑰垱寤�
-     *
-     * @param entity
-     */
-    @PostMapping("/user/form/item/create")
-    public AjaxResult createFormItem(@RequestBody UserFormItemEntity entity) {
-//        ValidatorUtils.validateEntity(entity, AddGroup.class);
-        if (ObjectUtil.isNull(entity.getDisplayType())) {
-            entity.setDisplayType(false);
-        }
-        if (ObjectUtil.isNull(entity.getHideType())) {
-            entity.setHideType(false);
-        }
-        //鎺掑簭涓嬫爣璁$畻
-        entity.setSort(sortUtils.getInitialSortPosition(entity.getFormKey()));
-        entity.setSpecialType(formItemService.isSpecialTypeItem(entity));
-        entity.setCreateTime(new Date());
-        boolean save = formItemService.save(entity);
-        return AjaxResult.success(new OperateFormItemVO(entity.getSort(), entity.getId(), save, false));
-    }
-
-
-    /**
-     * 鎵归噺椤圭洰琛ㄥ崟椤瑰垱寤�
-     */
-    @PostMapping("/user/form/item/batch/create")
-    public AjaxResult batchCreateFormItem(@RequestBody List<UserFormItemEntity> itemEntityList) {
-        //鎺掑簭涓嬫爣璁$畻
-        itemEntityList.forEach(item -> item.setSort(sortUtils.getInitialSortPosition(item.getFormKey())));
-        itemEntityList.forEach(item -> item.setDisplayType(false));
-        itemEntityList.forEach(item -> item.setHideType(false));
-        itemEntityList.forEach(item -> item.setSpecialType(false));
-        boolean save = formItemService.saveBatch(itemEntityList);
-        AjaxResult ajaxResult = new AjaxResult();
-        ajaxResult.put("code", 200);
-        ajaxResult.put("data", null);
-        ajaxResult.put("msg", null);
-        return ajaxResult;
-    }
-
-
-    /**
-     * 琛ㄥ崟椤瑰垹闄�
-     */
-    @PostMapping("/user/form/item/delete")
-    public AjaxResult deleteFormItem(@RequestBody UserFormItemEntity request) {
-//        FormAuthUtils.hasPermission(request.getFormKey());
-        boolean delete = formItemService.remove(Wrappers.<UserFormItemEntity>lambdaQuery().eq(UserFormItemEntity::getFormKey, request.getFormKey()).eq(UserFormItemEntity::getFormItemId, request.getFormItemId()));
-        return AjaxResult.success(delete);
-    }
-
-
-    /**
-     * 琛ㄥ崟椤规洿鏂�
-     *
-     * @param request
-     */
-    @PostMapping("/user/form/item/update")
-    public AjaxResult updateFormItem(@RequestBody UserFormItemEntity request) {
-//        FormAuthUtils.hasPermission(request.getFormKey());
-//        ValidatorUtils.validateEntity(request, UpdateGroup.class);
-        request.setSpecialType(formItemService.isSpecialTypeItem(request));
-        boolean update = formItemService.update(request, Wrappers.<UserFormItemEntity>lambdaQuery().eq(UserFormItemEntity::getFormKey, request.getFormKey()).eq(UserFormItemEntity::getFormItemId, request.getFormItemId()));
-        return AjaxResult.success(update);
-    }
-
-    /**
-     * 琛ㄥ崟椤规帓搴�
-     *
-     * @param request
-     */
-    @PostMapping("/user/form/item/sort")
-    public AjaxResult sortFormItem(@RequestBody SortFormItemRequest request) {
+//package com.ltkj.web.tduck;
+//
+//import cn.hutool.core.util.ObjectUtil;
+//import cn.hutool.core.util.StrUtil;
+//import cn.hutool.json.JSONObject;
+//import cn.hutool.json.JSONUtil;
+//import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+//import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+//import com.ltkj.common.core.domain.AjaxResult;
+//import com.ltkj.tduck.constant.CommonConstants;
+//import com.ltkj.tduck.domain.*;
+//import com.ltkj.tduck.enums.FormStatusEnum;
+//import com.ltkj.tduck.enums.FormTypeEnum;
+//import com.ltkj.tduck.request.QueryFormItemRequest;
+//import com.ltkj.tduck.request.QueryFormRequest;
+//import com.ltkj.tduck.request.QueryFormTemplateTypeRequest;
+//import com.ltkj.tduck.request.SortFormItemRequest;
+//import com.ltkj.tduck.service.*;
+//import com.ltkj.tduck.utils.FormDataUtils;
+//import com.ltkj.tduck.utils.Result;
+//import com.ltkj.tduck.utils.SortUtils;
+//import com.ltkj.tduck.utils.ValidatorUtils;
+//import com.ltkj.tduck.vo.FormFieldVO;
+//import com.ltkj.tduck.vo.OperateFormItemVO;
+//import com.ltkj.tduck.vo.UserFormDetailVO;
+//import lombok.RequiredArgsConstructor;
+//import lombok.extern.slf4j.Slf4j;
+//import org.springframework.web.bind.annotation.*;
+//
+//import javax.annotation.Resource;
+//import javax.annotation.security.PermitAll;
+//import javax.validation.constraints.NotBlank;
+//import java.util.ArrayList;
+//import java.util.Comparator;
+//import java.util.Date;
+//import java.util.List;
+//
+//
+///**
+// * 鐢ㄦ埛琛ㄥ崟
+// **/
+//@RequiredArgsConstructor
+//@RestController
+//@Slf4j
+////@RequestMapping("/tduck-api")
+//public class UserFormController {
+//    @Resource
+//    private final UserFormService formService;
+//    @Resource
+//    private final UserFormItemService formItemService;
+//    @Resource
+//    private final FormTemplateCategoryService formTemplateCategoryService;
+//    @Resource
+//    private final SortUtils sortUtils;
+//
+//    private final UserFormThemeService userFormThemeService;
+//    private final UserFormLogicService userFormLogicService;
+//
+//
+//    /**
+//     * 鏌ヨ琛ㄥ崟
+//     */
+//    @GetMapping("/user/form/{key}")
+//    public AjaxResult queryFormByKey(@PathVariable @NotBlank String key) {
+//        return AjaxResult.success(formService.getByKey(key));
+//    }
+//
+//    /**
+//     * 椤圭洰琛ㄥ崟椤规煡璇�
+//     */
+//    @GetMapping("/user/form/item/list")
+//    public AjaxResult queryFormItems(QueryFormItemRequest request) {
 //        ValidatorUtils.validateEntity(request);
-        if (ObjectUtil.isNull(request.getAfterPosition()) && ObjectUtil.isNull(request.getBeforePosition())) {
-            return AjaxResult.success();
-        }
-        UserFormItemEntity itemEntity = formItemService.getOne(Wrappers.<UserFormItemEntity>lambdaQuery().eq(UserFormItemEntity::getFormKey, request.getFormKey()).eq(UserFormItemEntity::getFormItemId, request.getFormItemId()));
-        Long sort = sortUtils.calcSortPosition(request.getBeforePosition(), request.getAfterPosition(), request.getFormKey());
-        if (sortUtils.sortAllList(request.getBeforePosition(), request.getAfterPosition(), request.getFormKey(), sort)) {
-            return AjaxResult.success(new OperateFormItemVO(itemEntity.getSort(), itemEntity.getId(), true, true));
-        }
-        itemEntity.setSort(sort);
-        boolean b = formItemService.updateById(itemEntity);
-        return AjaxResult.success(new OperateFormItemVO(itemEntity.getSort(), itemEntity.getId(), b, false));
-    }
-
-
-    /**
-     * 鏌ヨ琛ㄥ崟璇︽儏
-     * 鍖呭惈琛ㄥ崟淇℃伅 琛ㄥ崟瀛楁淇℃伅 琛ㄥ崟涓婚
-     *
-     * @param key
-     */
-    @GetMapping("/user/form/details/{key}")
-    @PermitAll
-    public AjaxResult queryFormDetails(@PathVariable @NotBlank String key) {
-        UserFormEntity form = formService.getByKey(key);
-        if (ObjectUtil.isNull(form)) {
-            return AjaxResult.success();
-        }
-        List<UserFormItemEntity> formItemList = formItemService.list(Wrappers.<UserFormItemEntity>lambdaQuery().ne(UserFormItemEntity::getHideType, 1).eq(UserFormItemEntity::getFormKey, key));
-        formItemList.sort(Comparator.comparing(UserFormItemEntity::getSort));
-        UserFormThemeEntity theme = userFormThemeService.getByKey(key);
-        UserFormLogicEntity formLogic = userFormLogicService.getOne(Wrappers.<UserFormLogicEntity>lambdaQuery().eq(UserFormLogicEntity::getFormKey, key));
-        // 濡傛灉鏄�冭瘯 绉婚櫎姝g‘绛旀 閬垮厤鎶婃纭瓟妗堣繑鍥炲埌鍓嶇
-        if (form.getType() == FormTypeEnum.EXAM.getValue().toString()) {
-            formItemList.forEach(item -> {
-                JSONObject schemeJson = JSONUtil.parseObj(item.getScheme());
-                if (schemeJson.containsKey("examConfig")) {
-                    schemeJson.getJSONObject("examConfig").remove("answer");
-                }
-                item.setScheme(schemeJson);
-            });
-        }
-        return AjaxResult.success(new UserFormDetailVO(new UserFormDetailVO.UserForm(form), formItemList, theme, formLogic));
-    }
-
-
-    /**
-     * 鍙戝竷琛ㄥ崟
-     */
-    @PostMapping("/user/form/publish")
-    public AjaxResult publishForm(@RequestBody UserFormEntity request) {
-//        FormAuthUtils.hasPermission(request.getFormKey());
-        long count = formItemService.count(Wrappers.<UserFormItemEntity>lambdaQuery().eq(UserFormItemEntity::getFormKey, request.getFormKey()));
-        if (count == CommonConstants.ConstantNumber.ZERO) {
-            return AjaxResult.error("鏃犳湁鏁堣〃鍗曢」锛屾棤娉曞彂甯�");
-        }
-        UserFormEntity entity = formService.getByKey(request.getFormKey());
-        entity.setStatus(2);
-        return AjaxResult.success(formService.updateById(entity));
-    }
-
-
-    /**
-     * 鍋滄鏀堕泦
-     *
-     * @param request
-     */
-    @PostMapping("/user/form/stop")
-    public Result stopForm(@RequestBody UserFormEntity request) {
-//        FormAuthUtils.hasPermission(request.getFormKey());
-        UserFormEntity entity = formService.getByKey(request.getFormKey());
-        entity.setStatus(3);
-        return Result.success(formService.updateById(entity));
-    }
-
-
-    /**
-     * 鏌ヨ鎴戠殑琛ㄥ崟鍒嗛〉
-     */
-    @GetMapping("/user/form/page")
-    public Result queryMyForms(@RequestAttribute Long userId, QueryFormRequest.Page request) {
-        LambdaQueryWrapper<UserFormEntity> queryWrapper = Wrappers.<UserFormEntity>lambdaQuery().eq(UserFormEntity::getUserId, userId)
-                .eq(ObjectUtil.isNotNull(request.getFolder()), UserFormEntity::getFolder, request.getFolder())
-                .eq(ObjectUtil.isNotNull(request.getType()), UserFormEntity::getType, request.getType())
-                .eq(UserFormEntity::getDeleted, 0).func(i -> {
-                    // 閫氳繃鏂囦欢鍚嶆悳绱㈡椂 鍙互鎼滅储鍒板瓙鏂囦欢澶逛笅鐨勮〃鍗�
-                    if (StrUtil.isNotBlank(request.getName()) && request.getFolderId() == 0) {
-                    } else {
-                        i.eq(UserFormEntity::getFolderId, request.getFolderId());
-                    }
-                }).eq(ObjectUtil.isNotNull(request.getStatus()), UserFormEntity::getStatus, request.getStatus()).like(StrUtil.isNotBlank(request.getName()),
-                        UserFormEntity::getName, request.getName()).le(ObjectUtil.isNotNull(request.getEndDateTime()), UserFormEntity::getUpdateTime,
-                        request.getEndDateTime()).ge(ObjectUtil.isNotNull(request.getBeginDateTime()), UserFormEntity::getUpdateTime,
-                        request.getBeginDateTime()).orderByDesc(UserFormEntity::getFolder)
-//                .orderByDesc(TBaseEntity::getCreateTime)
-                ;
-        return Result.success(formService.page(request.toMybatisPage(), queryWrapper));
-    }
-
-
-    /**
-     * 鑾峰彇琛ㄥ崟瀛楁 鍖呮嫭绯荤粺榛樿瀛楁
-     */
-    @GetMapping("/user/form/fields/{formKey}")
-    public Result queryUserFormFields(@PathVariable String formKey) {
-        return Result.success(formItemService.listAllFormFields(formKey));
-    }
-
-    /**
-     * 鑾峰彇琛ㄥ崟鍥哄畾瀛楁
-     * 鎵�鏈夎〃鍗曢兘鍖呭惈 鐢ㄤ簬鏌ョ湅璇︽儏鍙充晶鏄剧ず
-     */
-    @GetMapping("/user/form/fixed/fields/{formKey}")
-    public Result queryUserFormFixedFields(@PathVariable String formKey) {
-        // 鏌ヨ琛ㄥ崟绫诲瀷
-        UserFormEntity userFormEntity = formService.getByKey(formKey);
-        List<FormFieldVO> fields = new ArrayList<>();
-        FormDataUtils.addFormBaseDataField(fields);
-        fields.add(new FormFieldVO("submitUaOs", "鎿嶄綔绯荤粺"));
-        fields.add(new FormFieldVO("submitUaDevice", "璁惧"));
-        fields.add(new FormFieldVO(UserFormDataEntity.Fields.submitBrowser, "娴忚鍣�"));
-        fields.add(new FormFieldVO(UserFormDataEntity.Fields.submitAddress, "鍦板潃"));
-        fields.add(new FormFieldVO(UserFormDataEntity.Fields.submitRequestIp, "IP"));
-        fields.add(new FormFieldVO(UserFormDataEntity.Fields.wxUserInfo, "寰俊鐢ㄦ埛"));
-        return Result.success(fields);
-    }
-
-}
+////        FormAuthUtils.hasPermission(request.getKey());
+//        List<UserFormItemEntity> itemEntityList = formItemService.list(Wrappers.<UserFormItemEntity>lambdaQuery().eq(UserFormItemEntity::getFormKey, request.getKey()).eq(ObjectUtil.isNotNull(request.getDisplayType()), UserFormItemEntity::getDisplayType, request.getDisplayType()));
+//        itemEntityList.sort(Comparator.comparing(UserFormItemEntity::getSort));
+//        return AjaxResult.success(itemEntityList);
+//    }
+//
+//
+//    /**
+//     * 鍒嗛〉鏌ヨ椤圭洰鍒嗙被
+//     *
+//     * @return
+//     */
+//    @GetMapping("/form/template/type/list")
+//    public AjaxResult queryFormTemplateTypes(QueryFormTemplateTypeRequest.List request) {
+//        return AjaxResult.success(formTemplateCategoryService.list(Wrappers.<FormTemplateCategoryEntity>lambdaQuery()
+//                .orderByDesc(FormTemplateCategoryEntity::getSort)));
+//    }
+//
+//
+//    /**
+//     * 琛ㄥ崟鏇存柊
+//     *
+//     * @param form
+//     */
+//    @PostMapping("/user/form/update")
+//    public AjaxResult updateForm(@RequestBody UserFormEntity form) {
+////        ValidatorUtils.validateEntity(form, AddGroup.class);
+//        UserFormEntity oldForm = formService.getByKey(form.getFormKey());
+//        if (ObjectUtil.isNotNull(oldForm)) {
+//            form.setId(oldForm.getId());
+//            formService.updateById(form);
+//        }
+//        return AjaxResult.success();
+//    }
+//
+//
+//    /**
+//     * 椤圭洰琛ㄥ崟椤瑰垱寤�
+//     *
+//     * @param entity
+//     */
+//    @PostMapping("/user/form/item/create")
+//    public AjaxResult createFormItem(@RequestBody UserFormItemEntity entity) {
+////        ValidatorUtils.validateEntity(entity, AddGroup.class);
+//        if (ObjectUtil.isNull(entity.getDisplayType())) {
+//            entity.setDisplayType(false);
+//        }
+//        if (ObjectUtil.isNull(entity.getHideType())) {
+//            entity.setHideType(false);
+//        }
+//        //鎺掑簭涓嬫爣璁$畻
+//        entity.setSort(sortUtils.getInitialSortPosition(entity.getFormKey()));
+//        entity.setSpecialType(formItemService.isSpecialTypeItem(entity));
+//        entity.setCreateTime(new Date());
+//        boolean save = formItemService.save(entity);
+//        return AjaxResult.success(new OperateFormItemVO(entity.getSort(), entity.getId(), save, false));
+//    }
+//
+//
+//    /**
+//     * 鎵归噺椤圭洰琛ㄥ崟椤瑰垱寤�
+//     */
+//    @PostMapping("/user/form/item/batch/create")
+//    public AjaxResult batchCreateFormItem(@RequestBody List<UserFormItemEntity> itemEntityList) {
+//        //鎺掑簭涓嬫爣璁$畻
+//        itemEntityList.forEach(item -> item.setSort(sortUtils.getInitialSortPosition(item.getFormKey())));
+//        itemEntityList.forEach(item -> item.setDisplayType(false));
+//        itemEntityList.forEach(item -> item.setHideType(false));
+//        itemEntityList.forEach(item -> item.setSpecialType(false));
+//        boolean save = formItemService.saveBatch(itemEntityList);
+//        AjaxResult ajaxResult = new AjaxResult();
+//        ajaxResult.put("code", 200);
+//        ajaxResult.put("data", null);
+//        ajaxResult.put("msg", null);
+//        return ajaxResult;
+//    }
+//
+//
+//    /**
+//     * 琛ㄥ崟椤瑰垹闄�
+//     */
+//    @PostMapping("/user/form/item/delete")
+//    public AjaxResult deleteFormItem(@RequestBody UserFormItemEntity request) {
+////        FormAuthUtils.hasPermission(request.getFormKey());
+//        boolean delete = formItemService.remove(Wrappers.<UserFormItemEntity>lambdaQuery().eq(UserFormItemEntity::getFormKey, request.getFormKey()).eq(UserFormItemEntity::getFormItemId, request.getFormItemId()));
+//        return AjaxResult.success(delete);
+//    }
+//
+//
+//    /**
+//     * 琛ㄥ崟椤规洿鏂�
+//     *
+//     * @param request
+//     */
+//    @PostMapping("/user/form/item/update")
+//    public AjaxResult updateFormItem(@RequestBody UserFormItemEntity request) {
+////        FormAuthUtils.hasPermission(request.getFormKey());
+////        ValidatorUtils.validateEntity(request, UpdateGroup.class);
+//        request.setSpecialType(formItemService.isSpecialTypeItem(request));
+//        boolean update = formItemService.update(request, Wrappers.<UserFormItemEntity>lambdaQuery().eq(UserFormItemEntity::getFormKey, request.getFormKey()).eq(UserFormItemEntity::getFormItemId, request.getFormItemId()));
+//        return AjaxResult.success(update);
+//    }
+//
+//    /**
+//     * 琛ㄥ崟椤规帓搴�
+//     *
+//     * @param request
+//     */
+//    @PostMapping("/user/form/item/sort")
+//    public AjaxResult sortFormItem(@RequestBody SortFormItemRequest request) {
+////        ValidatorUtils.validateEntity(request);
+//        if (ObjectUtil.isNull(request.getAfterPosition()) && ObjectUtil.isNull(request.getBeforePosition())) {
+//            return AjaxResult.success();
+//        }
+//        UserFormItemEntity itemEntity = formItemService.getOne(Wrappers.<UserFormItemEntity>lambdaQuery().eq(UserFormItemEntity::getFormKey, request.getFormKey()).eq(UserFormItemEntity::getFormItemId, request.getFormItemId()));
+//        Long sort = sortUtils.calcSortPosition(request.getBeforePosition(), request.getAfterPosition(), request.getFormKey());
+//        if (sortUtils.sortAllList(request.getBeforePosition(), request.getAfterPosition(), request.getFormKey(), sort)) {
+//            return AjaxResult.success(new OperateFormItemVO(itemEntity.getSort(), itemEntity.getId(), true, true));
+//        }
+//        itemEntity.setSort(sort);
+//        boolean b = formItemService.updateById(itemEntity);
+//        return AjaxResult.success(new OperateFormItemVO(itemEntity.getSort(), itemEntity.getId(), b, false));
+//    }
+//
+//
+//    /**
+//     * 鏌ヨ琛ㄥ崟璇︽儏
+//     * 鍖呭惈琛ㄥ崟淇℃伅 琛ㄥ崟瀛楁淇℃伅 琛ㄥ崟涓婚
+//     *
+//     * @param key
+//     */
+//    @GetMapping("/user/form/details/{key}")
+//    @PermitAll
+//    public AjaxResult queryFormDetails(@PathVariable @NotBlank String key) {
+//        UserFormEntity form = formService.getByKey(key);
+//        if (ObjectUtil.isNull(form)) {
+//            return AjaxResult.success();
+//        }
+//        List<UserFormItemEntity> formItemList = formItemService.list(Wrappers.<UserFormItemEntity>lambdaQuery().ne(UserFormItemEntity::getHideType, 1).eq(UserFormItemEntity::getFormKey, key));
+//        formItemList.sort(Comparator.comparing(UserFormItemEntity::getSort));
+//        UserFormThemeEntity theme = userFormThemeService.getByKey(key);
+//        UserFormLogicEntity formLogic = userFormLogicService.getOne(Wrappers.<UserFormLogicEntity>lambdaQuery().eq(UserFormLogicEntity::getFormKey, key));
+//        // 濡傛灉鏄�冭瘯 绉婚櫎姝g‘绛旀 閬垮厤鎶婃纭瓟妗堣繑鍥炲埌鍓嶇
+//        if (form.getType() == FormTypeEnum.EXAM.getValue().toString()) {
+//            formItemList.forEach(item -> {
+//                JSONObject schemeJson = JSONUtil.parseObj(item.getScheme());
+//                if (schemeJson.containsKey("examConfig")) {
+//                    schemeJson.getJSONObject("examConfig").remove("answer");
+//                }
+//                item.setScheme(schemeJson);
+//            });
+//        }
+//        return AjaxResult.success(new UserFormDetailVO(new UserFormDetailVO.UserForm(form), formItemList, theme, formLogic));
+//    }
+//
+//
+//    /**
+//     * 鍙戝竷琛ㄥ崟
+//     */
+//    @PostMapping("/user/form/publish")
+//    public AjaxResult publishForm(@RequestBody UserFormEntity request) {
+////        FormAuthUtils.hasPermission(request.getFormKey());
+//        long count = formItemService.count(Wrappers.<UserFormItemEntity>lambdaQuery().eq(UserFormItemEntity::getFormKey, request.getFormKey()));
+//        if (count == CommonConstants.ConstantNumber.ZERO) {
+//            return AjaxResult.error("鏃犳湁鏁堣〃鍗曢」锛屾棤娉曞彂甯�");
+//        }
+//        UserFormEntity entity = formService.getByKey(request.getFormKey());
+//        entity.setStatus(2);
+//        return AjaxResult.success(formService.updateById(entity));
+//    }
+//
+//
+//    /**
+//     * 鍋滄鏀堕泦
+//     *
+//     * @param request
+//     */
+//    @PostMapping("/user/form/stop")
+//    public Result stopForm(@RequestBody UserFormEntity request) {
+////        FormAuthUtils.hasPermission(request.getFormKey());
+//        UserFormEntity entity = formService.getByKey(request.getFormKey());
+//        entity.setStatus(3);
+//        return Result.success(formService.updateById(entity));
+//    }
+//
+//
+//    /**
+//     * 鏌ヨ鎴戠殑琛ㄥ崟鍒嗛〉
+//     */
+//    @GetMapping("/user/form/page")
+//    public Result queryMyForms(@RequestAttribute Long userId, QueryFormRequest.Page request) {
+//        LambdaQueryWrapper<UserFormEntity> queryWrapper = Wrappers.<UserFormEntity>lambdaQuery().eq(UserFormEntity::getUserId, userId)
+//                .eq(ObjectUtil.isNotNull(request.getFolder()), UserFormEntity::getFolder, request.getFolder())
+//                .eq(ObjectUtil.isNotNull(request.getType()), UserFormEntity::getType, request.getType())
+//                .eq(UserFormEntity::getDeleted, 0).func(i -> {
+//                    // 閫氳繃鏂囦欢鍚嶆悳绱㈡椂 鍙互鎼滅储鍒板瓙鏂囦欢澶逛笅鐨勮〃鍗�
+//                    if (StrUtil.isNotBlank(request.getName()) && request.getFolderId() == 0) {
+//                    } else {
+//                        i.eq(UserFormEntity::getFolderId, request.getFolderId());
+//                    }
+//                }).eq(ObjectUtil.isNotNull(request.getStatus()), UserFormEntity::getStatus, request.getStatus()).like(StrUtil.isNotBlank(request.getName()),
+//                        UserFormEntity::getName, request.getName()).le(ObjectUtil.isNotNull(request.getEndDateTime()), UserFormEntity::getUpdateTime,
+//                        request.getEndDateTime()).ge(ObjectUtil.isNotNull(request.getBeginDateTime()), UserFormEntity::getUpdateTime,
+//                        request.getBeginDateTime()).orderByDesc(UserFormEntity::getFolder)
+////                .orderByDesc(TBaseEntity::getCreateTime)
+//                ;
+//        return Result.success(formService.page(request.toMybatisPage(), queryWrapper));
+//    }
+//
+//
+//    /**
+//     * 鑾峰彇琛ㄥ崟瀛楁 鍖呮嫭绯荤粺榛樿瀛楁
+//     */
+//    @GetMapping("/user/form/fields/{formKey}")
+//    public Result queryUserFormFields(@PathVariable String formKey) {
+//        return Result.success(formItemService.listAllFormFields(formKey));
+//    }
+//
+//    /**
+//     * 鑾峰彇琛ㄥ崟鍥哄畾瀛楁
+//     * 鎵�鏈夎〃鍗曢兘鍖呭惈 鐢ㄤ簬鏌ョ湅璇︽儏鍙充晶鏄剧ず
+//     */
+//    @GetMapping("/user/form/fixed/fields/{formKey}")
+//    public Result queryUserFormFixedFields(@PathVariable String formKey) {
+//        // 鏌ヨ琛ㄥ崟绫诲瀷
+//        UserFormEntity userFormEntity = formService.getByKey(formKey);
+//        List<FormFieldVO> fields = new ArrayList<>();
+//        FormDataUtils.addFormBaseDataField(fields);
+//        fields.add(new FormFieldVO("submitUaOs", "鎿嶄綔绯荤粺"));
+//        fields.add(new FormFieldVO("submitUaDevice", "璁惧"));
+//        fields.add(new FormFieldVO(UserFormDataEntity.Fields.submitBrowser, "娴忚鍣�"));
+//        fields.add(new FormFieldVO(UserFormDataEntity.Fields.submitAddress, "鍦板潃"));
+//        fields.add(new FormFieldVO(UserFormDataEntity.Fields.submitRequestIp, "IP"));
+//        fields.add(new FormFieldVO(UserFormDataEntity.Fields.wxUserInfo, "寰俊鐢ㄦ埛"));
+//        return Result.success(fields);
+//    }
+//
+//}
diff --git a/ltkj-admin/src/main/java/com/ltkj/web/tduck/UserFormResultController.java b/ltkj-admin/src/main/java/com/ltkj/web/tduck/UserFormResultController.java
index 7f1fca1..2ed03de 100644
--- a/ltkj-admin/src/main/java/com/ltkj/web/tduck/UserFormResultController.java
+++ b/ltkj-admin/src/main/java/com/ltkj/web/tduck/UserFormResultController.java
@@ -1,254 +1,254 @@
-package com.ltkj.web.tduck;
-
-import cn.hutool.core.date.DateUtil;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.ltkj.common.core.domain.AjaxResult;
-import com.ltkj.common.utils.SecurityUtils;
-import com.ltkj.common.utils.http.HttpUtils;
-import com.ltkj.tduck.domain.UserFormDataEntity;
-import com.ltkj.tduck.domain.UserFormViewCountEntity;
-import com.ltkj.tduck.request.QueryFormResultRequest;
-import com.ltkj.tduck.service.UserFormDataService;
-import com.ltkj.tduck.service.UserFormViewCountService;
-import com.ltkj.tduck.utils.Result;
-import com.ltkj.tduck.utils.ValidatorUtils;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.web.bind.annotation.*;
-
-import javax.annotation.security.PermitAll;
-import javax.servlet.http.HttpServletRequest;
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ConcurrentMap;
-
-
-/**
- * 琛ㄥ崟鏁版嵁
- *
- * @author : smalljop
- * @description : 琛ㄥ崟鏁版嵁椤� 褰撳墠鐢ㄦ埛鑷繁浣跨敤鎺ュ彛
- * @create : 2020-11-18 18:17
- **/
-
-@Slf4j
-@RestController
-@RequiredArgsConstructor
-@RequestMapping("/user/form/data")
-public class UserFormResultController {
-    private final UserFormDataService formResultService;
-//    private final UserFormSettingService userFormSettingService;
-//    private final FormDataImportUtils formDataImportUtils;
-//    private final FormDataExportUtils formDataExportUtils;
-//    private final UserFormService userFormService;
-    private final UserFormViewCountService userFormViewCountService;
-//    private final MailService mailService;
-//    private final WxMpUserMsgService userMsgService;
-    private final ConcurrentMap<String, Integer> viewFormMap = new ConcurrentHashMap<>();
-
-
-
-    /**
-     * 鏍规嵁浣撴鍙疯幏鍙栭棶鍗疯褰�
-     */
-    @GetMapping("getRecordByTjNumber")
-    public AjaxResult getRecordByTjNumber(String tjNumber) {
-        LambdaQueryWrapper<UserFormDataEntity> wq=new LambdaQueryWrapper<>();
-        wq.eq(UserFormDataEntity::getTjNumber,tjNumber);
-        final List<UserFormDataEntity> list = formResultService.list(wq);
-        AjaxResult ajaxResult = new AjaxResult();
-        ajaxResult.put("code", 200);
-        ajaxResult.put("data", list);
-        ajaxResult.put("msg", null);
-        return ajaxResult;
-    }
-
-
-    /***
-     * 鏌ョ湅琛ㄥ崟
-     * 璁板綍鏌ョ湅鐨処P 缁熻鏌ョ湅鐢ㄦ埛鏁�
-     */
-    @GetMapping("view/{formKey}")
-    @PermitAll
-    public Result<Void> viewForm(HttpServletRequest request, @PathVariable("formKey") String formKey) {
-        if (viewFormMap.containsKey(formKey)) {
-            userFormViewCountService.increment(formKey);
-        } else {
-            // 涓嶅瓨鍦ㄥ垯娣诲姞
-            Long count = userFormViewCountService.count(formKey);
-            if (count == 0) {
-                UserFormViewCountEntity entity = new UserFormViewCountEntity();
-                entity.setFormKey(formKey);
-                entity.setCount(1L);
-                userFormViewCountService.save(entity);
-            }
-            viewFormMap.put(formKey, 1);
-        }
-        return Result.success();
-    }
-
-    /**
-     * 鏌ヨ鏁版嵁
-     *
-     * @param request 鏌ヨ鏉′欢
-     * @return 鏁版嵁
-     */
-    @PostMapping("query")
-    public Result queryFormDataTable(@RequestBody QueryFormResultRequest request) {
-//        FormAuthUtils.hasPermission(request.getFormKey());
-        return Result.success(formResultService.listFormDataTable(request));
-    }
-
-    /**
-     * 鑾峰彇鏌愭潯鏁版嵁璇︽儏
-     *
-     * @param dataId 鏁版嵁ID
-     * @return 鏁版嵁璇︽儏
-     */
-    @GetMapping("details/{dataId}")
-    @PermitAll
-    public Result getFormDataDetails(@PathVariable("dataId") String dataId) {
-        return formResultService.getFormDataDetails(dataId);
-    }
+//package com.ltkj.web.tduck;
+//
+//import cn.hutool.core.date.DateUtil;
+//import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+//import com.ltkj.common.core.domain.AjaxResult;
+//import com.ltkj.common.utils.SecurityUtils;
+//import com.ltkj.common.utils.http.HttpUtils;
+//import com.ltkj.tduck.domain.UserFormDataEntity;
+//import com.ltkj.tduck.domain.UserFormViewCountEntity;
+//import com.ltkj.tduck.request.QueryFormResultRequest;
+//import com.ltkj.tduck.service.UserFormDataService;
+//import com.ltkj.tduck.service.UserFormViewCountService;
+//import com.ltkj.tduck.utils.Result;
+//import com.ltkj.tduck.utils.ValidatorUtils;
+//import lombok.RequiredArgsConstructor;
+//import lombok.extern.slf4j.Slf4j;
+//import org.springframework.web.bind.annotation.*;
+//
+//import javax.annotation.security.PermitAll;
+//import javax.servlet.http.HttpServletRequest;
+//import java.util.List;
+//import java.util.Map;
+//import java.util.concurrent.ConcurrentHashMap;
+//import java.util.concurrent.ConcurrentMap;
+//
+//
+///**
+// * 琛ㄥ崟鏁版嵁
+// *
+// * @author : smalljop
+// * @description : 琛ㄥ崟鏁版嵁椤� 褰撳墠鐢ㄦ埛鑷繁浣跨敤鎺ュ彛
+// * @create : 2020-11-18 18:17
+// **/
+//
+//@Slf4j
+//@RestController
+//@RequiredArgsConstructor
+//@RequestMapping("/user/form/data")
+//public class UserFormResultController {
+//    private final UserFormDataService formResultService;
+////    private final UserFormSettingService userFormSettingService;
+////    private final FormDataImportUtils formDataImportUtils;
+////    private final FormDataExportUtils formDataExportUtils;
+////    private final UserFormService userFormService;
+//    private final UserFormViewCountService userFormViewCountService;
+////    private final MailService mailService;
+////    private final WxMpUserMsgService userMsgService;
+//    private final ConcurrentMap<String, Integer> viewFormMap = new ConcurrentHashMap<>();
+//
 //
 //
 //    /**
-//     * 濉啓闄勪欢瀵煎嚭
-//     *
-//     * @param request 璇锋眰
-//     * @return 鏂囦欢
+//     * 鏍规嵁浣撴鍙疯幏鍙栭棶鍗疯褰�
 //     */
-//    @PostMapping("/download/file")
-//    public Result downloadFormResultFile(@RequestBody QueryFormResultRequest request) {
-//        return formResultService.downloadFormResultFile(request);
+//    @GetMapping("getRecordByTjNumber")
+//    public AjaxResult getRecordByTjNumber(String tjNumber) {
+//        LambdaQueryWrapper<UserFormDataEntity> wq=new LambdaQueryWrapper<>();
+//        wq.eq(UserFormDataEntity::getTjNumber,tjNumber);
+//        final List<UserFormDataEntity> list = formResultService.list(wq);
+//        AjaxResult ajaxResult = new AjaxResult();
+//        ajaxResult.put("code", 200);
+//        ajaxResult.put("data", list);
+//        ajaxResult.put("msg", null);
+//        return ajaxResult;
 //    }
-
-    /**
-     * 濉啓
-     *
-     * @param entity  濉啓鏁版嵁
-     * @param request 璇锋眰
-     * @return
-     */
-    @PostMapping("/create")
-    public AjaxResult createFormResult(@RequestBody UserFormDataEntity entity, HttpServletRequest request) {
-        ValidatorUtils.validateEntity(entity);
-        entity.setSubmitRequestIp(HttpUtils.getIpAddr(request));
-        // 濡傛灉宸茬粡鐧婚檰浜嗕篃璁板綍鐢ㄦ埛淇℃伅 try catch 閬垮厤鎶涘嚭寮傚父
-        entity.setCreateBy(SecurityUtils.getUserId() != null ? String.valueOf(SecurityUtils.getUserId()) : null);
-        Map<String, Object> result = formResultService.saveFormResult(entity);
-        return AjaxResult.success(result);
-    }
-
-
-    /**
-     * 鍏紑濉啓
-     *
-     * @param entity  濉啓鏁版嵁
-     * @param request 璇锋眰
-     */
-    @PostMapping("/public/create")
-    @PermitAll
-    public Result<Map<String, Object>> createPublicFormResult(@RequestBody UserFormDataEntity entity, HttpServletRequest request) {
-
-        ValidatorUtils.validateEntity(entity);
-        entity.setSubmitRequestIp(HttpUtils.getIpAddr(request));
-//        Result<Boolean> userFormSettingStatus = userFormSettingService.getUserFormWriteSettingStatus(entity.getFormKey(), entity.getSubmitRequestIp(), entity.getWxOpenId(), CommonConstants.ConstantNumber.ONE);
-//        if (StrUtil.isNotBlank(userFormSettingStatus.getMsg())) {
-//            return Result.failed(userFormSettingStatus.getMsg());
+//
+//
+//    /***
+//     * 鏌ョ湅琛ㄥ崟
+//     * 璁板綍鏌ョ湅鐨処P 缁熻鏌ョ湅鐢ㄦ埛鏁�
+//     */
+//    @GetMapping("view/{formKey}")
+//    @PermitAll
+//    public Result<Void> viewForm(HttpServletRequest request, @PathVariable("formKey") String formKey) {
+//        if (viewFormMap.containsKey(formKey)) {
+//            userFormViewCountService.increment(formKey);
+//        } else {
+//            // 涓嶅瓨鍦ㄥ垯娣诲姞
+//            Long count = userFormViewCountService.count(formKey);
+//            if (count == 0) {
+//                UserFormViewCountEntity entity = new UserFormViewCountEntity();
+//                entity.setFormKey(formKey);
+//                entity.setCount(1L);
+//                userFormViewCountService.save(entity);
+//            }
+//            viewFormMap.put(formKey, 1);
 //        }
-        // 濡傛灉宸茬粡鐧婚檰浜嗕篃璁板綍鐢ㄦ埛淇℃伅 try catch 閬垮厤鎶涘嚭寮傚父
-        entity.setCreateBy(SecurityUtils.getUserId() != null ? String.valueOf(SecurityUtils.getUserId()) : null);
-        Map<String, Object> result = formResultService.saveFormResult(entity);
-//        ThreadUtil.execAsync(() -> {
-//            sendWriteResultNotify(entity.getFormKey());
-//        });
-        return Result.success(result);
-//        return Result.success();
-    }
-
-//
-//    /**
-//     * 鎵归噺鍒犻櫎
-//     *
-//     * @param formKey    琛ㄥ崟key
-//     * @param dataIdList 鏁版嵁ID
-//     * @return Result
-//     */
-//    @PostMapping("/delete/{formKey}")
-//    public Result deleteFormData(@RequestBody List<String> dataIdList, @PathVariable("formKey") String formKey) {
-//        formResultService.deleteByIds(dataIdList, formKey);
 //        return Result.success();
 //    }
-
-
+//
 //    /**
-//     * 鏇存柊
+//     * 鏌ヨ鏁版嵁
+//     *
+//     * @param request 鏌ヨ鏉′欢
+//     * @return 鏁版嵁
+//     */
+//    @PostMapping("query")
+//    public Result queryFormDataTable(@RequestBody QueryFormResultRequest request) {
+////        FormAuthUtils.hasPermission(request.getFormKey());
+//        return Result.success(formResultService.listFormDataTable(request));
+//    }
+//
+//    /**
+//     * 鑾峰彇鏌愭潯鏁版嵁璇︽儏
+//     *
+//     * @param dataId 鏁版嵁ID
+//     * @return 鏁版嵁璇︽儏
+//     */
+//    @GetMapping("details/{dataId}")
+//    @PermitAll
+//    public Result getFormDataDetails(@PathVariable("dataId") String dataId) {
+//        return formResultService.getFormDataDetails(dataId);
+//    }
+////
+////
+////    /**
+////     * 濉啓闄勪欢瀵煎嚭
+////     *
+////     * @param request 璇锋眰
+////     * @return 鏂囦欢
+////     */
+////    @PostMapping("/download/file")
+////    public Result downloadFormResultFile(@RequestBody QueryFormResultRequest request) {
+////        return formResultService.downloadFormResultFile(request);
+////    }
+//
+//    /**
+//     * 濉啓
 //     *
 //     * @param entity  濉啓鏁版嵁
 //     * @param request 璇锋眰
-//     * @return Result
+//     * @return
 //     */
-//    @PostMapping("/update")
-//    @PermitAll
-//    public Result<Void> updateFormResult(@RequestBody UserFormDataEntity entity, HttpServletRequest request) {
+//    @PostMapping("/create")
+//    public AjaxResult createFormResult(@RequestBody UserFormDataEntity entity, HttpServletRequest request) {
 //        ValidatorUtils.validateEntity(entity);
-//        try {
-//            entity.setUpdateBy(String.valueOf(SecurityUtils.getUserId()));
-//        } catch (Exception ignored) {
-//        }
-//        formResultService.updateFormResult(entity);
-//        return Result.success();
+//        entity.setSubmitRequestIp(HttpUtils.getIpAddr(request));
+//        // 濡傛灉宸茬粡鐧婚檰浜嗕篃璁板綍鐢ㄦ埛淇℃伅 try catch 閬垮厤鎶涘嚭寮傚父
+//        entity.setCreateBy(SecurityUtils.getUserId() != null ? String.valueOf(SecurityUtils.getUserId()) : null);
+//        Map<String, Object> result = formResultService.saveFormResult(entity);
+//        return AjaxResult.success(result);
 //    }
 //
+//
 //    /**
-//     * 涓嬭浇瀵煎叆妯℃澘
+//     * 鍏紑濉啓
 //     *
-//     * @param response 鍝嶅簲
-//     * @param formKey  琛ㄥ崟key
+//     * @param entity  濉啓鏁版嵁
+//     * @param request 璇锋眰
 //     */
-//    @GetMapping("/import/template")
-//    public void downloadImportTemplate(HttpServletResponse response, String formKey) {
-//        formDataImportUtils.importTemplateExcel(response, formKey);
+//    @PostMapping("/public/create")
+//    @PermitAll
+//    public Result<Map<String, Object>> createPublicFormResult(@RequestBody UserFormDataEntity entity, HttpServletRequest request) {
+//
+//        ValidatorUtils.validateEntity(entity);
+//        entity.setSubmitRequestIp(HttpUtils.getIpAddr(request));
+////        Result<Boolean> userFormSettingStatus = userFormSettingService.getUserFormWriteSettingStatus(entity.getFormKey(), entity.getSubmitRequestIp(), entity.getWxOpenId(), CommonConstants.ConstantNumber.ONE);
+////        if (StrUtil.isNotBlank(userFormSettingStatus.getMsg())) {
+////            return Result.failed(userFormSettingStatus.getMsg());
+////        }
+//        // 濡傛灉宸茬粡鐧婚檰浜嗕篃璁板綍鐢ㄦ埛淇℃伅 try catch 閬垮厤鎶涘嚭寮傚父
+//        entity.setCreateBy(SecurityUtils.getUserId() != null ? String.valueOf(SecurityUtils.getUserId()) : null);
+//        Map<String, Object> result = formResultService.saveFormResult(entity);
+////        ThreadUtil.execAsync(() -> {
+////            sendWriteResultNotify(entity.getFormKey());
+////        });
+//        return Result.success(result);
+////        return Result.success();
 //    }
 //
-//    /**
-//     * 瀵煎嚭琛ㄥ崟鏁版嵁
-//     */
-//    @PostMapping("export")
-//    public void exportFormData(@RequestBody ExportRequest.FormData exportRequest) {
-//        formDataExportUtils.exportData(exportRequest);
-//    }
-//
-//    /**
-//     * 瀵煎叆琛ㄥ崟鏁版嵁
-//     *
-//     * @param file 鏂囦欢
-//     * @return Result
-//     */
-//    @PostMapping("import")
-//    public Result importFormData(@RequestParam("file") MultipartFile file, UserFormDataEntity dataEntity) throws IOException {
-//        return Result.success(formDataImportUtils.importFile(file.getInputStream(), dataEntity.getFormKey()));
-//    }
+////
+////    /**
+////     * 鎵归噺鍒犻櫎
+////     *
+////     * @param formKey    琛ㄥ崟key
+////     * @param dataIdList 鏁版嵁ID
+////     * @return Result
+////     */
+////    @PostMapping("/delete/{formKey}")
+////    public Result deleteFormData(@RequestBody List<String> dataIdList, @PathVariable("formKey") String formKey) {
+////        formResultService.deleteByIds(dataIdList, formKey);
+////        return Result.success();
+////    }
 //
 //
-//    private void sendWriteResultNotify(String formKey) {
-//        FormSettingSchemaStruct formSettingSchema = userFormSettingService.getFormSettingSchema(formKey);
-//        if (ObjectUtil.isNull(formSettingSchema)) {
-//            return;
-//        }
-//        UserFormEntity form = userFormService.getByKey(formKey);
-//        if (StrUtil.isNotBlank(formSettingSchema.getNewWriteNotifyEmail())) {
-//            mailService.sendTemplateHtmlMail(formSettingSchema.getNewWriteNotifyEmail(), "鏂板洖澶嶉�氱煡", "mail/form-write-notify", MapUtil.of("projectName", form.getName()));
-//        }
+////    /**
+////     * 鏇存柊
+////     *
+////     * @param entity  濉啓鏁版嵁
+////     * @param request 璇锋眰
+////     * @return Result
+////     */
+////    @PostMapping("/update")
+////    @PermitAll
+////    public Result<Void> updateFormResult(@RequestBody UserFormDataEntity entity, HttpServletRequest request) {
+////        ValidatorUtils.validateEntity(entity);
+////        try {
+////            entity.setUpdateBy(String.valueOf(SecurityUtils.getUserId()));
+////        } catch (Exception ignored) {
+////        }
+////        formResultService.updateFormResult(entity);
+////        return Result.success();
+////    }
+////
+////    /**
+////     * 涓嬭浇瀵煎叆妯℃澘
+////     *
+////     * @param response 鍝嶅簲
+////     * @param formKey  琛ㄥ崟key
+////     */
+////    @GetMapping("/import/template")
+////    public void downloadImportTemplate(HttpServletResponse response, String formKey) {
+////        formDataImportUtils.importTemplateExcel(response, formKey);
+////    }
+////
+////    /**
+////     * 瀵煎嚭琛ㄥ崟鏁版嵁
+////     */
+////    @PostMapping("export")
+////    public void exportFormData(@RequestBody ExportRequest.FormData exportRequest) {
+////        formDataExportUtils.exportData(exportRequest);
+////    }
+////
+////    /**
+////     * 瀵煎叆琛ㄥ崟鏁版嵁
+////     *
+////     * @param file 鏂囦欢
+////     * @return Result
+////     */
+////    @PostMapping("import")
+////    public Result importFormData(@RequestParam("file") MultipartFile file, UserFormDataEntity dataEntity) throws IOException {
+////        return Result.success(formDataImportUtils.importFile(file.getInputStream(), dataEntity.getFormKey()));
+////    }
+////
+////
+////    private void sendWriteResultNotify(String formKey) {
+////        FormSettingSchemaStruct formSettingSchema = userFormSettingService.getFormSettingSchema(formKey);
+////        if (ObjectUtil.isNull(formSettingSchema)) {
+////            return;
+////        }
+////        UserFormEntity form = userFormService.getByKey(formKey);
+////        if (StrUtil.isNotBlank(formSettingSchema.getNewWriteNotifyEmail())) {
+////            mailService.sendTemplateHtmlMail(formSettingSchema.getNewWriteNotifyEmail(), "鏂板洖澶嶉�氱煡", "mail/form-write-notify", MapUtil.of("projectName", form.getName()));
+////        }
+////
+////        if (StrUtil.isNotBlank(formSettingSchema.getNewWriteNotifyWx())) {
+////            List<String> openIdList = StrUtil.splitTrim(formSettingSchema.getNewWriteNotifyWx(), ";");
+////            openIdList.stream().forEach(openId -> {
+////                userMsgService.sendKfTextMsg("", openId, "鏀跺埌鏂扮殑鍙嶉锛岃鍘籔c绔煡鐪�");
+////            });
+////        }
+////    }
 //
-//        if (StrUtil.isNotBlank(formSettingSchema.getNewWriteNotifyWx())) {
-//            List<String> openIdList = StrUtil.splitTrim(formSettingSchema.getNewWriteNotifyWx(), ";");
-//            openIdList.stream().forEach(openId -> {
-//                userMsgService.sendKfTextMsg("", openId, "鏀跺埌鏂扮殑鍙嶉锛岃鍘籔c绔煡鐪�");
-//            });
-//        }
-//    }
-
-}
+//}
diff --git a/ltkj-admin/src/main/java/com/ltkj/web/tduck/UserFormSettingController.java b/ltkj-admin/src/main/java/com/ltkj/web/tduck/UserFormSettingController.java
index f30af9b..220de5d 100644
--- a/ltkj-admin/src/main/java/com/ltkj/web/tduck/UserFormSettingController.java
+++ b/ltkj-admin/src/main/java/com/ltkj/web/tduck/UserFormSettingController.java
@@ -1,143 +1,143 @@
-package com.ltkj.web.tduck;
-
-import cn.hutool.core.util.ObjectUtil;
-import com.ltkj.common.utils.http.HttpUtils;
-import com.ltkj.tduck.domain.UserFormSettingEntity;
-import com.ltkj.tduck.request.CheckWritePwdRequest;
-import com.ltkj.tduck.service.UserFormSettingService;
-import com.ltkj.tduck.utils.CacheUtils;
-import com.ltkj.tduck.utils.Result;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.*;
-
-import javax.annotation.security.PermitAll;
-import javax.servlet.http.HttpServletRequest;
-import java.util.Map;
-
-/**
- * 琛ㄥ崟璁剧疆
- *
- * @author : smalljop
- * @description : 琛ㄥ崟璁剧疆
- * @create : 2020-11-18 18:17
- **/
-@Slf4j
-@RestController
-@RequiredArgsConstructor
-public class UserFormSettingController {
-
-    private final UserFormSettingService userFormSettingService;
-//    private final WxMpUserService wxMpUserService;
-    private final CacheUtils cacheUtils;
-//    private final WxMpService wxMpService;
-
-
-    /**
-     * 淇濆瓨琛ㄥ崟璁剧疆
-     */
-    @PostMapping("/user/form/setting/save")
-    public Result<Boolean> saveFormSetting(@RequestBody Map<String, Object> setting) {
-        String formKey = setting.get("formKey").toString();
-//        FormAuthUtils.hasPermission(formKey);
-        return Result.success(userFormSettingService.saveFormSetting(setting));
-    }
-
-    /**
-     * 琛ㄥ崟鎻愪氦璁剧疆鏌ヨ
-     */
-    @GetMapping("/user/form/setting/{key}")
-    public Result<Map<String, Object>> queryFormSettingByKey(@PathVariable("key") String formKey) {
-        UserFormSettingEntity setting = userFormSettingService.getFormSettingByKey(formKey);
-        if (ObjectUtil.isNull(setting)) {
-            return Result.success();
-        }
-        Map<String, Object> settings = setting.getSettings();
-        settings.put(UserFormSettingEntity.Fields.formKey, formKey);
-        return Result.success(settings);
-    }
-
-
-    /**
-     * 褰撳墠濉啓璁剧疆鐨勭姸鎬�
-     *
-     * @param formKey  琛ㄥ崟key
-     * @param wxOpenId 寰俊openid
-     * @param type     绫诲瀷 1鍏紑濉啓 2.鎸囧畾濉啓
-     */
-    @GetMapping("/user/form/setting-status")
-    @PermitAll
-    public Result<Boolean> querySettingStatus(@RequestParam String formKey, @RequestParam(required = false) String wxOpenId, @RequestParam(required = false) Integer type, HttpServletRequest request) {
-        return userFormSettingService.getUserFormWriteSettingStatus(formKey, HttpUtils.getIpAddr(request), wxOpenId, type);
-    }
-
-
-    /**
-     * 濉啓寰俊閫氱煡浜岀淮鐮�
-     */
-    @GetMapping("/user/form/wx/notify-qrcode")
-    public Result<String> getWxNotifyQrCode(@RequestParam("key") String formKey) throws Exception {
-//        String loginSceneStr = JsonUtils.objToJson(new WxMpQrCodeGenRequest(WxMpQrCodeGenRequest.QrCodeType.SUB_NOTIFY, formKey));
-//        //5鍒嗛挓鏈夋晥
-//        WxMpQrCodeTicket ticket = wxMpService.getQrcodeService().qrCodeCreateTmpTicket(loginSceneStr, 10 * 60);
-//        String subNotifyQrcodeUrl = wxMpService.getQrcodeService().qrCodePictureUrl(ticket.getTicket());
-//        return Result.success(subNotifyQrcodeUrl);
-        return Result.success();
-    }
-
-
-    /**
-     * 濉啓寰俊閫氱煡浜岀淮鐮�
-     */
-    @PostMapping("/user/form/wx/delete/notify-user")
-    public Result<Boolean> deleteWxNotifyQrCode(@RequestParam("key") String key, @RequestParam("openId") String openId) {
-//        cacheUtils.removeList(StrUtil.format(WxMpRedisKeyConstants.WX_MP_SUB_NOTIFY, key), openId);
-        return Result.success(true);
-    }
-
-    /**
-     * 鑾峰彇琛ㄥ崟寰俊閫氱煡鐢ㄦ埛
-     */
-    @GetMapping("/user/form/wx/notify-user")
-    public Result getWxNotifyUser(@RequestParam("key") String formKey, @RequestParam(required = false) String openIdStr) {
-//        Set<Object> subNotifyUsers = null;
-//        if (StrUtil.isNotBlank(openIdStr)) {
-//            subNotifyUsers = Sets.newHashSet(StrUtil.splitTrim(openIdStr, ";"));
-//        } else {
-//            List coll = cacheUtils.getList(StrUtil.format(WxMpRedisKeyConstants.WX_MP_SUB_NOTIFY, formKey), String.class);
-//            subNotifyUsers = Collections.singleton(coll.stream().collect(Collectors.toSet()));
+//package com.ltkj.web.tduck;
+//
+//import cn.hutool.core.util.ObjectUtil;
+//import com.ltkj.common.utils.http.HttpUtils;
+//import com.ltkj.tduck.domain.UserFormSettingEntity;
+//import com.ltkj.tduck.request.CheckWritePwdRequest;
+//import com.ltkj.tduck.service.UserFormSettingService;
+//import com.ltkj.tduck.utils.CacheUtils;
+//import com.ltkj.tduck.utils.Result;
+//import lombok.RequiredArgsConstructor;
+//import lombok.extern.slf4j.Slf4j;
+//import org.springframework.validation.annotation.Validated;
+//import org.springframework.web.bind.annotation.*;
+//
+//import javax.annotation.security.PermitAll;
+//import javax.servlet.http.HttpServletRequest;
+//import java.util.Map;
+//
+///**
+// * 琛ㄥ崟璁剧疆
+// *
+// * @author : smalljop
+// * @description : 琛ㄥ崟璁剧疆
+// * @create : 2020-11-18 18:17
+// **/
+//@Slf4j
+//@RestController
+//@RequiredArgsConstructor
+//public class UserFormSettingController {
+//
+//    private final UserFormSettingService userFormSettingService;
+////    private final WxMpUserService wxMpUserService;
+//    private final CacheUtils cacheUtils;
+////    private final WxMpService wxMpService;
+//
+//
+//    /**
+//     * 淇濆瓨琛ㄥ崟璁剧疆
+//     */
+//    @PostMapping("/user/form/setting/save")
+//    public Result<Boolean> saveFormSetting(@RequestBody Map<String, Object> setting) {
+//        String formKey = setting.get("formKey").toString();
+////        FormAuthUtils.hasPermission(formKey);
+//        return Result.success(userFormSettingService.saveFormSetting(setting));
+//    }
+//
+//    /**
+//     * 琛ㄥ崟鎻愪氦璁剧疆鏌ヨ
+//     */
+//    @GetMapping("/user/form/setting/{key}")
+//    public Result<Map<String, Object>> queryFormSettingByKey(@PathVariable("key") String formKey) {
+//        UserFormSettingEntity setting = userFormSettingService.getFormSettingByKey(formKey);
+//        if (ObjectUtil.isNull(setting)) {
+//            return Result.success();
 //        }
-//        return Result.success(wxMpUserService.listWxMpUserByOpenId(subNotifyUsers).stream().map(item -> new WxMpUserVO(item.getNickname(), item.getHeadImgUrl(), item.getOpenId())).collect(Collectors.toList()));
-        return Result.success();
-    }
-
-
-    /**
-     * 鍏紑鎺ュ彛
-     * 琛ㄥ崟濉啓鏃堕渶瑕佺殑璁剧疆
-     */
-    @GetMapping("/user/form/public/settings/{key}")
-    @PermitAll
-    public Result queryPublicFormSettingByKey(@PathVariable("key") String formKey) {
-//        FormSettingSchemaStruct formSettingSchema = userFormSettingService.getFormSettingSchema(formKey);
-        return Result.success();
-    }
-
-    /**
-     * 鍏紑鎺ュ彛
-     * 妫�鏌ュ~鍐欏瘑鐮佹槸鍚︽纭�
-     */
-    @PostMapping("/user/form/public/checkWritePwd")
-    @PermitAll
-    public Result<Boolean> checkWritePwd(@RequestBody @Validated CheckWritePwdRequest request) {
-//        FormSettingSchemaStruct formSettingSchema = userFormSettingService.getFormSettingSchema(request.getFormKey());
-//        if (formSettingSchema.getWritePassword().equals(request.getPassword())) {
-//            return Result.success(true);
-//        }
-//        return Result.failed("瀵嗙爜杈撳叆閿欒");
-        return Result.success(true);
-    }
-
-
-}
+//        Map<String, Object> settings = setting.getSettings();
+//        settings.put(UserFormSettingEntity.Fields.formKey, formKey);
+//        return Result.success(settings);
+//    }
+//
+//
+//    /**
+//     * 褰撳墠濉啓璁剧疆鐨勭姸鎬�
+//     *
+//     * @param formKey  琛ㄥ崟key
+//     * @param wxOpenId 寰俊openid
+//     * @param type     绫诲瀷 1鍏紑濉啓 2.鎸囧畾濉啓
+//     */
+//    @GetMapping("/user/form/setting-status")
+//    @PermitAll
+//    public Result<Boolean> querySettingStatus(@RequestParam String formKey, @RequestParam(required = false) String wxOpenId, @RequestParam(required = false) Integer type, HttpServletRequest request) {
+//        return userFormSettingService.getUserFormWriteSettingStatus(formKey, HttpUtils.getIpAddr(request), wxOpenId, type);
+//    }
+//
+//
+//    /**
+//     * 濉啓寰俊閫氱煡浜岀淮鐮�
+//     */
+//    @GetMapping("/user/form/wx/notify-qrcode")
+//    public Result<String> getWxNotifyQrCode(@RequestParam("key") String formKey) throws Exception {
+////        String loginSceneStr = JsonUtils.objToJson(new WxMpQrCodeGenRequest(WxMpQrCodeGenRequest.QrCodeType.SUB_NOTIFY, formKey));
+////        //5鍒嗛挓鏈夋晥
+////        WxMpQrCodeTicket ticket = wxMpService.getQrcodeService().qrCodeCreateTmpTicket(loginSceneStr, 10 * 60);
+////        String subNotifyQrcodeUrl = wxMpService.getQrcodeService().qrCodePictureUrl(ticket.getTicket());
+////        return Result.success(subNotifyQrcodeUrl);
+//        return Result.success();
+//    }
+//
+//
+//    /**
+//     * 濉啓寰俊閫氱煡浜岀淮鐮�
+//     */
+//    @PostMapping("/user/form/wx/delete/notify-user")
+//    public Result<Boolean> deleteWxNotifyQrCode(@RequestParam("key") String key, @RequestParam("openId") String openId) {
+////        cacheUtils.removeList(StrUtil.format(WxMpRedisKeyConstants.WX_MP_SUB_NOTIFY, key), openId);
+//        return Result.success(true);
+//    }
+//
+//    /**
+//     * 鑾峰彇琛ㄥ崟寰俊閫氱煡鐢ㄦ埛
+//     */
+//    @GetMapping("/user/form/wx/notify-user")
+//    public Result getWxNotifyUser(@RequestParam("key") String formKey, @RequestParam(required = false) String openIdStr) {
+////        Set<Object> subNotifyUsers = null;
+////        if (StrUtil.isNotBlank(openIdStr)) {
+////            subNotifyUsers = Sets.newHashSet(StrUtil.splitTrim(openIdStr, ";"));
+////        } else {
+////            List coll = cacheUtils.getList(StrUtil.format(WxMpRedisKeyConstants.WX_MP_SUB_NOTIFY, formKey), String.class);
+////            subNotifyUsers = Collections.singleton(coll.stream().collect(Collectors.toSet()));
+////        }
+////        return Result.success(wxMpUserService.listWxMpUserByOpenId(subNotifyUsers).stream().map(item -> new WxMpUserVO(item.getNickname(), item.getHeadImgUrl(), item.getOpenId())).collect(Collectors.toList()));
+//        return Result.success();
+//    }
+//
+//
+//    /**
+//     * 鍏紑鎺ュ彛
+//     * 琛ㄥ崟濉啓鏃堕渶瑕佺殑璁剧疆
+//     */
+//    @GetMapping("/user/form/public/settings/{key}")
+//    @PermitAll
+//    public Result queryPublicFormSettingByKey(@PathVariable("key") String formKey) {
+////        FormSettingSchemaStruct formSettingSchema = userFormSettingService.getFormSettingSchema(formKey);
+//        return Result.success();
+//    }
+//
+//    /**
+//     * 鍏紑鎺ュ彛
+//     * 妫�鏌ュ~鍐欏瘑鐮佹槸鍚︽纭�
+//     */
+//    @PostMapping("/user/form/public/checkWritePwd")
+//    @PermitAll
+//    public Result<Boolean> checkWritePwd(@RequestBody @Validated CheckWritePwdRequest request) {
+////        FormSettingSchemaStruct formSettingSchema = userFormSettingService.getFormSettingSchema(request.getFormKey());
+////        if (formSettingSchema.getWritePassword().equals(request.getPassword())) {
+////            return Result.success(true);
+////        }
+////        return Result.failed("瀵嗙爜杈撳叆閿欒");
+//        return Result.success(true);
+//    }
+//
+//
+//}
diff --git a/ltkj-admin/src/main/resources/application.yml b/ltkj-admin/src/main/resources/application.yml
index 9dd66dd..02875c5 100644
--- a/ltkj-admin/src/main/resources/application.yml
+++ b/ltkj-admin/src/main/resources/application.yml
@@ -70,22 +70,22 @@
     restart:
       # 鐑儴缃插紑鍏�
       enabled: true
-  cache:
-    type: ehcache
-    ehcache:
-      config: classpath:config/ehcache.xml
+#  cache:
+#    type: ehcache
+#    ehcache:
+#      config: classpath:config/ehcache.xml
   # redis 閰嶇疆
 #  redis:
 #    # 鍦板潃
-#    host: 101.42.27.146
-##    host: localhost
+##    host: 101.42.27.146
+#    host: localhost
 #    # 绔彛锛岄粯璁や负6379
 #    port: 6379
 #    # 鏁版嵁搴撶储寮�
 #    database: 0
 #    # 瀵嗙爜
-#    password: 654321
-##    password: 123456
+##    password: 654321
+#    password: 123456
 #    # 杩炴帴瓒呮椂鏃堕棿
 #    timeout: 120s
 #    lettuce:
@@ -220,11 +220,11 @@
 #绉湪鎶ヨ〃璁块棶鍦板潃
 jimu:
 #  path: https://ltpeis.xaltjdkj.cn:5011/ltkj-admin
-  path: https://ltpeis.xaltjdkj.cn:5021/ltkj-admin
+#  path: https://ltpeis.xaltjdkj.cn:5021/ltkj-admin
 #  path: http://192.168.0.5:5000/ltkj-admin
 #   path: http://10.168.0.9:5011
 #   path: http://192.168.0.105:5011
-#  path: http://192.168.0.112:5011
+  path: http://192.168.1.113:5011
 
 
 jeecg :
diff --git a/ltkj-admin/src/main/resources/config/ehcache.xml b/ltkj-admin/src/main/resources/config/ehcache.xml
deleted file mode 100644
index d352174..0000000
--- a/ltkj-admin/src/main/resources/config/ehcache.xml
+++ /dev/null
@@ -1,57 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:noNamespaceSchemaLocation="ehcache.xsd">
-    <!--timeToIdleSeconds 褰撶紦瀛橀棽缃畁绉掑悗閿�姣� -->
-    <!--timeToLiveSeconds 褰撶紦瀛樺瓨娲籲绉掑悗閿�姣� -->
-    <!-- 缂撳瓨閰嶇疆
-        name:缂撳瓨鍚嶇О銆�
-        maxElementsInMemory锛氱紦瀛樻渶澶т釜鏁般��
-        eternal:瀵硅薄鏄惁姘镐箙鏈夋晥锛屼竴浣嗚缃簡锛宼imeout灏嗕笉璧蜂綔鐢ㄣ��
-        timeToIdleSeconds锛氳缃璞″湪澶辨晥鍓嶇殑鍏佽闂茬疆鏃堕棿锛堝崟浣嶏細绉掞級銆備粎褰揺ternal=false瀵硅薄涓嶆槸姘镐箙鏈夋晥鏃朵娇鐢紝鍙�夊睘鎬э紝榛樿鍊兼槸0锛屼篃灏辨槸鍙棽缃椂闂存棤绌峰ぇ銆�
-        timeToLiveSeconds锛氳缃璞″湪澶辨晥鍓嶅厑璁稿瓨娲绘椂闂达紙鍗曚綅锛氱锛夈�傛渶澶ф椂闂翠粙浜庡垱寤烘椂闂村拰澶辨晥鏃堕棿涔嬮棿銆備粎褰揺ternal=false瀵硅薄涓嶆槸姘镐箙鏈夋晥鏃朵娇鐢紝榛樿鏄�0.锛屼篃灏辨槸瀵硅薄瀛樻椿鏃堕棿鏃犵┓澶с��
-        overflowToDisk锛氬綋鍐呭瓨涓璞℃暟閲忚揪鍒癿axElementsInMemory鏃讹紝Ehcache灏嗕細瀵硅薄鍐欏埌纾佺洏涓�� diskSpoolBufferSizeMB锛氳繖涓弬鏁拌缃瓺iskStore锛堢鐩樼紦瀛橈級鐨勭紦瀛樺尯澶у皬銆傞粯璁ゆ槸30MB銆傛瘡涓狢ache閮藉簲璇ユ湁鑷繁鐨勪竴涓紦鍐插尯銆�
-        maxElementsOnDisk锛氱‖鐩樻渶澶х紦瀛樹釜鏁般��
-        diskPersistent锛氭槸鍚︾紦瀛樿櫄鎷熸満閲嶅惎鏈熸暟鎹� Whether the disk
-        store persists between restarts of the Virtual Machine. The default value
-        is false.
-        diskExpiryThreadIntervalSeconds锛氱鐩樺け鏁堢嚎绋嬭繍琛屾椂闂撮棿闅旓紝榛樿鏄�120绉掋��  memoryStoreEvictionPolicy锛氬綋杈惧埌maxElementsInMemory闄愬埗鏃讹紝Ehcache灏嗕細鏍规嵁鎸囧畾鐨勭瓥鐣ュ幓娓呯悊鍐呭瓨銆傞粯璁ょ瓥鐣ユ槸
-LRU锛堟渶杩戞渶灏戜娇鐢級銆備綘鍙互璁剧疆涓篎IFO锛堝厛杩涘厛鍑猴級鎴栨槸LFU锛堣緝灏戜娇鐢級銆�
-        clearOnFlush锛氬唴瀛樻暟閲忔渶澶ф椂鏄惁娓呴櫎銆� -->
-    <!-- 纾佺洏缂撳瓨浣嶇疆 -->
-    <diskStore path="java.io.tmpdir"/>
-    <!-- 榛樿缂撳瓨 -->
-    <defaultCache
-            maxElementsInMemory="10000"
-            eternal="false"
-            timeToIdleSeconds="120"
-            timeToLiveSeconds="120"
-            maxElementsOnDisk="10000000"
-            diskExpiryThreadIntervalSeconds="120"
-            memoryStoreEvictionPolicy="LRU">
-
-        <persistence strategy="localTempSwap"/>
-    </defaultCache>
-
-    <!--    鎸佷箙鍖朿ache-->
-    <cache name="eternal_cache"
-           maxElementsInMemory="10000"
-           eternal="true"
-           timeToIdleSeconds="120"
-           timeToLiveSeconds="120"
-           overflowToDisk="true"
-           diskPersistent="true"
-           diskExpiryThreadIntervalSeconds="10"/>
-
-    <!-- 涓存椂cache -->
-    <cache name="temp_cache"
-           maxElementsInMemory="10000"
-           eternal="false"
-           timeToIdleSeconds="300"
-           timeToLiveSeconds="300"
-           maxElementsOnDisk="10000000"
-           diskExpiryThreadIntervalSeconds="120"
-           memoryStoreEvictionPolicy="LRU">
-        <persistence strategy="localTempSwap"/>
-    </cache>
-
-</ehcache>
\ No newline at end of file
diff --git a/ltkj-system/src/main/java/com/ltkj/tduck/service/UserFormSettingService.java b/ltkj-system/src/main/java/com/ltkj/tduck/service/UserFormSettingService.java
index 978225f..fd0432f 100644
--- a/ltkj-system/src/main/java/com/ltkj/tduck/service/UserFormSettingService.java
+++ b/ltkj-system/src/main/java/com/ltkj/tduck/service/UserFormSettingService.java
@@ -1,61 +1,61 @@
-package com.ltkj.tduck.service;
-
-
-
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.ltkj.tduck.domain.UserFormSettingEntity;
-import com.ltkj.tduck.struct.FormSettingSchemaStruct;
-import com.ltkj.tduck.utils.Result;
-
-import java.util.Map;
-
-/**
- * 琛ㄥ崟璁剧疆
- *
- * @author smalljop
- * @since 2020-11-30 14:00:52
- */
-public interface UserFormSettingService extends IService<UserFormSettingEntity> {
-    /**
-     * 淇濆瓨琛ㄥ崟璁剧疆
-     */
-    Boolean saveFormSetting(Map<String, Object> params);
-
-
-    /**
-     * 琛ㄥ崟璁剧疆
-     *
-     * @param formKey 琛ㄥ崟key
-     * @return 璁剧疆椤�
-     */
-    UserFormSettingEntity getFormSettingByKey(String formKey);
-
-    /**
-     * 璁剧疆鍏蜂綋瀹氫箟璁剧疆椤�
-     *
-     * @param formKey 琛ㄥ崟key
-     * @return 璁剧疆椤�
-     */
-    FormSettingSchemaStruct getFormSettingSchema(String formKey);
-
-    /**
-     * 鑾峰彇褰撳墠椤圭洰璁剧疆鐨勭姸鎬�
-     * 鏄惁鍙互濉啓绛�
-     *
-     * @param formKey   琛ㄥ崟key
-     * @param requestIp 璇锋眰ip
-     * @param wxOpenId  寰俊openid
-     * @param type      绫诲瀷 1鍏紑濉啓 2.鎸囧畾濉啓
-     * @return 鏄惁鍙互濉啓
-     */
-    Result<Boolean> getUserFormWriteSettingStatus(String formKey, String requestIp, String wxOpenId, Integer type);
-
-
-    /**
-     * 鍒犻櫎琛ㄥ崟鎵�鏈夎缃�
-     *
-     * @param key 琛ㄥ崟key
-     * @return 鏄惁鍒犻櫎鎴愬姛
-     */
-    Boolean deleteAllSetting(String key);
-}
+//package com.ltkj.tduck.service;
+//
+//
+//
+//import com.baomidou.mybatisplus.extension.service.IService;
+//import com.ltkj.tduck.domain.UserFormSettingEntity;
+//import com.ltkj.tduck.struct.FormSettingSchemaStruct;
+//import com.ltkj.tduck.utils.Result;
+//
+//import java.util.Map;
+//
+///**
+// * 琛ㄥ崟璁剧疆
+// *
+// * @author smalljop
+// * @since 2020-11-30 14:00:52
+// */
+//public interface UserFormSettingService extends IService<UserFormSettingEntity> {
+//    /**
+//     * 淇濆瓨琛ㄥ崟璁剧疆
+//     */
+//    Boolean saveFormSetting(Map<String, Object> params);
+//
+//
+//    /**
+//     * 琛ㄥ崟璁剧疆
+//     *
+//     * @param formKey 琛ㄥ崟key
+//     * @return 璁剧疆椤�
+//     */
+//    UserFormSettingEntity getFormSettingByKey(String formKey);
+//
+//    /**
+//     * 璁剧疆鍏蜂綋瀹氫箟璁剧疆椤�
+//     *
+//     * @param formKey 琛ㄥ崟key
+//     * @return 璁剧疆椤�
+//     */
+//    FormSettingSchemaStruct getFormSettingSchema(String formKey);
+//
+//    /**
+//     * 鑾峰彇褰撳墠椤圭洰璁剧疆鐨勭姸鎬�
+//     * 鏄惁鍙互濉啓绛�
+//     *
+//     * @param formKey   琛ㄥ崟key
+//     * @param requestIp 璇锋眰ip
+//     * @param wxOpenId  寰俊openid
+//     * @param type      绫诲瀷 1鍏紑濉啓 2.鎸囧畾濉啓
+//     * @return 鏄惁鍙互濉啓
+//     */
+//    Result<Boolean> getUserFormWriteSettingStatus(String formKey, String requestIp, String wxOpenId, Integer type);
+//
+//
+//    /**
+//     * 鍒犻櫎琛ㄥ崟鎵�鏈夎缃�
+//     *
+//     * @param key 琛ㄥ崟key
+//     * @return 鏄惁鍒犻櫎鎴愬姛
+//     */
+//    Boolean deleteAllSetting(String key);
+//}
diff --git a/ltkj-system/src/main/java/com/ltkj/tduck/service/impl/UserFormDataServiceImpl.java b/ltkj-system/src/main/java/com/ltkj/tduck/service/impl/UserFormDataServiceImpl.java
index 6cb5bdd..3aedf94 100644
--- a/ltkj-system/src/main/java/com/ltkj/tduck/service/impl/UserFormDataServiceImpl.java
+++ b/ltkj-system/src/main/java/com/ltkj/tduck/service/impl/UserFormDataServiceImpl.java
@@ -1,159 +1,159 @@
-package com.ltkj.tduck.service.impl;
-
-import cn.hutool.core.bean.BeanUtil;
-import cn.hutool.core.map.MapUtil;
-import cn.hutool.core.util.ObjectUtil;
-import cn.hutool.core.util.StrUtil;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.ltkj.common.utils.ip.AddressUtils;
-import com.ltkj.tduck.constant.CommonConstants;
-import com.ltkj.tduck.domain.UserFormDataEntity;
-import com.ltkj.tduck.mapper.UserFormDataMapper;
-import com.ltkj.tduck.request.QueryFormResultRequest;
-import com.ltkj.tduck.service.UserFormDataService;
-import com.ltkj.tduck.service.UserFormItemService;
-import com.ltkj.tduck.utils.CacheUtils;
-import com.ltkj.tduck.utils.FormDataUtils;
-import com.ltkj.tduck.utils.Result;
-import com.ltkj.tduck.vo.FormDataTableVO;
-import com.ltkj.tduck.vo.FormFieldVO;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import static com.ltkj.tduck.constant.FormRedisKeyConstants.FORM_RESULT_NUMBER;
-
-
-/**
- * 琛ㄥ崟琛ㄥ崟椤�(FormResult)琛ㄦ湇鍔″疄鐜扮被
- *
- * @author smalljop
- * @since 2020-11-23 14:09:22
- */
-@Service
-@Slf4j
-@RequiredArgsConstructor
-public class UserFormDataServiceImpl extends ServiceImpl<UserFormDataMapper, UserFormDataEntity> implements UserFormDataService {
-
-    private final UserFormItemService userFormItemService;
-    private final CacheUtils redisUtils;
-    private final FormDataUtils formDataUtils;
-
-
-    @Override
-    @Transactional(rollbackFor = Exception.class)
-    public Map<String, Object> saveFormResult(UserFormDataEntity entity) {
-        HashMap<String, Object> result = MapUtil.newHashMap();
-        String formKey = entity.getFormKey();
-        entity.setSubmitAddress(AddressUtils.getRealAddressByIP(entity.getSubmitRequestIp()));
-        entity.setSerialNumber(redisUtils.incr(StrUtil.format(FORM_RESULT_NUMBER, formKey), CommonConstants.ConstantNumber.ONE));
-        this.save(entity);
-//        formDataUtils.syncSaveFormData(entity);
-        result.put("id", entity.getId());
-        return result;
-    }
-
-
-    /**
-     * 涓嬭浇琛ㄥ崟缁撴灉涓殑闄勪欢
-     *
-     * @param request
-     * @return
-     */
+//package com.ltkj.tduck.service.impl;
+//
+//import cn.hutool.core.bean.BeanUtil;
+//import cn.hutool.core.map.MapUtil;
+//import cn.hutool.core.util.ObjectUtil;
+//import cn.hutool.core.util.StrUtil;
+//import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+//import com.ltkj.common.utils.ip.AddressUtils;
+//import com.ltkj.tduck.constant.CommonConstants;
+//import com.ltkj.tduck.domain.UserFormDataEntity;
+//import com.ltkj.tduck.mapper.UserFormDataMapper;
+//import com.ltkj.tduck.request.QueryFormResultRequest;
+//import com.ltkj.tduck.service.UserFormDataService;
+//import com.ltkj.tduck.service.UserFormItemService;
+//import com.ltkj.tduck.utils.CacheUtils;
+//import com.ltkj.tduck.utils.FormDataUtils;
+//import com.ltkj.tduck.utils.Result;
+//import com.ltkj.tduck.vo.FormDataTableVO;
+//import com.ltkj.tduck.vo.FormFieldVO;
+//import lombok.RequiredArgsConstructor;
+//import lombok.extern.slf4j.Slf4j;
+//import org.springframework.stereotype.Service;
+//import org.springframework.transaction.annotation.Transactional;
+//
+//import java.util.HashMap;
+//import java.util.List;
+//import java.util.Map;
+//
+//import static com.ltkj.tduck.constant.FormRedisKeyConstants.FORM_RESULT_NUMBER;
+//
+//
+///**
+// * 琛ㄥ崟琛ㄥ崟椤�(FormResult)琛ㄦ湇鍔″疄鐜扮被
+// *
+// * @author smalljop
+// * @since 2020-11-23 14:09:22
+// */
+//@Service
+//@Slf4j
+//@RequiredArgsConstructor
+//public class UserFormDataServiceImpl extends ServiceImpl<UserFormDataMapper, UserFormDataEntity> implements UserFormDataService {
+//
+//    private final UserFormItemService userFormItemService;
+//    private final CacheUtils redisUtils;
+//    private final FormDataUtils formDataUtils;
+//
+//
 //    @Override
-//    public Result downloadFormResultFile(QueryFormResultRequest request) {
-//        String uuid = IdUtil.simpleUUID();
-//        List<UserFormItemEntity> userFormItemEntityList = userFormItemService.list(Wrappers.<UserFormItemEntity>lambdaQuery().eq(UserFormItemEntity::getFormKey, request.getFormKey()).in(UserFormItemEntity::getType, CollUtil.newArrayList(FormItemTypeEnum.UPLOAD.toString(), FormItemTypeEnum.IMAGE_UPLOAD.toString())));
-//        //缁撴灉
-//        List<Map> rows = null;
-//        if (ObjectUtil.isNull(request.getCurrent()) && ObjectUtil.isNull(request.getSize())) {
-//            rows = formDataUtils.searchAll(request);
-//        } else {
-//            FormDataTableVO formDataTableVO = this.listFormDataTable(request);
-//            rows = formDataTableVO.getRows();
+//    @Transactional(rollbackFor = Exception.class)
+//    public Map<String, Object> saveFormResult(UserFormDataEntity entity) {
+//        HashMap<String, Object> result = MapUtil.newHashMap();
+//        String formKey = entity.getFormKey();
+//        entity.setSubmitAddress(AddressUtils.getRealAddressByIP(entity.getSubmitRequestIp()));
+//        entity.setSerialNumber(redisUtils.incr(StrUtil.format(FORM_RESULT_NUMBER, formKey), CommonConstants.ConstantNumber.ONE));
+//        this.save(entity);
+////        formDataUtils.syncSaveFormData(entity);
+//        result.put("id", entity.getId());
+//        return result;
+//    }
+//
+//
+//    /**
+//     * 涓嬭浇琛ㄥ崟缁撴灉涓殑闄勪欢
+//     *
+//     * @param request
+//     * @return
+//     */
+////    @Override
+////    public Result downloadFormResultFile(QueryFormResultRequest request) {
+////        String uuid = IdUtil.simpleUUID();
+////        List<UserFormItemEntity> userFormItemEntityList = userFormItemService.list(Wrappers.<UserFormItemEntity>lambdaQuery().eq(UserFormItemEntity::getFormKey, request.getFormKey()).in(UserFormItemEntity::getType, CollUtil.newArrayList(FormItemTypeEnum.UPLOAD.toString(), FormItemTypeEnum.IMAGE_UPLOAD.toString())));
+////        //缁撴灉
+////        List<Map> rows = null;
+////        if (ObjectUtil.isNull(request.getCurrent()) && ObjectUtil.isNull(request.getSize())) {
+////            rows = formDataUtils.searchAll(request);
+////        } else {
+////            FormDataTableVO formDataTableVO = this.listFormDataTable(request);
+////            rows = formDataTableVO.getRows();
+////        }
+////        if (CollectionUtil.isEmpty(rows) || CollectionUtil.isEmpty(userFormItemEntityList)) {
+////            return Result.failed("鏆傛棤鏀堕泦闄勪欢锛屾棤娉曚笅杞�");
+////        }
+////        List<Map> finalRows = rows;
+////        ThreadUtil.execAsync(() -> {
+////            TimeInterval timer = DateUtil.timer();
+////            List<String> paths = new ArrayList<>();
+////            List<InputStream> ins = new ArrayList<>();
+////            try {
+////                finalRows.forEach(result -> {
+////                    int index = 0;
+////                    userFormItemEntityList.forEach(item -> {
+////                        List<UploadResultStruct> uploadResults = JsonUtils.jsonToList(JsonUtils.objToJson(MapUtil.get(result, item.getFormItemId(), List.class)), UploadResultStruct.class);
+////                        if (CollectionUtil.isNotEmpty(uploadResults)) {
+////                            uploadResults.forEach(uFile -> {
+////                                if (StrUtil.isNotBlank(uFile.getUrl())) {
+////                                    paths.add(FileNameUtil.getName(uFile.getUrl()));
+////                                    byte[] bytes = HttpUtil.downloadBytes(uFile.getUrl());
+////                                    ins.add(IoUtil.toStream(bytes));
+////                                }
+////                            });
+////                        }
+////                    });
+////                    AsyncProcessUtils.setProcess(uuid, ++index / finalRows.size());
+////                });
+////                // 鍘嬬缉涓婁紶oss
+////                ByteArrayOutputStream zipOutputStream = new ByteArrayOutputStream();
+////                ZipUtil.zip(zipOutputStream, paths.toArray(new String[]{}), ins.toArray(new InputStream[]{}));
+////                String downloadUrl = OssStorageFactory.getStorageService().upload(zipOutputStream.toByteArray(), StorageUtils.generateFileName("download", ".zip"));
+////                AsyncProcessUtils.setProcess(uuid, downloadUrl);
+////                log.info("export file cost time: {}", timer.interval());
+////            } catch (Exception e) {
+////                log.error("download file", e);
+////            }
+////        });
+////        return Result.success(uuid);
+////    }
+////
+////
+//    @Override
+//    public FormDataTableVO listFormDataTable(QueryFormResultRequest request) {
+//        return formDataUtils.search(request);
+//    }
+////
+////
+////    @Override
+////    public Boolean deleteByIds(List<String> dataIdList, String formKey) {
+////        baseMapper.deleteBatchIds(dataIdList);
+////        formDataUtils.asyncDeleteEsDocument(dataIdList, formKey);
+////        return true;
+////    }
+////
+////    @Override
+////    public Boolean updateFormResult(UserFormDataEntity entity) {
+////        UserFormDataEntity dataEntity = this.getById(entity.getId());
+////        dataEntity.setOriginalData(entity.getOriginalData());
+////        dataEntity.setUpdateBy(entity.getUpdateBy());
+////        boolean update = this.updateById(dataEntity);
+////        // 鏌ヨ鏁版嵁 鍚屾鍒癳s 閬垮厤鏁版嵁鍙樼┖琚鐩�
+////        formDataUtils.asyncUpdateEsDocument(dataEntity);
+////        return update;
+////    }
+//
+//    @Override
+//    public Result getFormDataDetails(String dataId) {
+//        Map<String, Object> result =new HashMap<>();
+//        UserFormDataEntity dataEntity = this.getById(dataId);
+//        List<FormFieldVO> formFields = userFormItemService.listFormFields(dataEntity.getFormKey());
+//        // 琛ㄥ崟瀛楁
+//        result.put("formFields", formFields);
+//        // 琛ㄥ崟濉啓鏁版嵁
+//        if (ObjectUtil.isNotNull(dataEntity)) {
+//            Map<String, Object> originalData = dataEntity.getOriginalData();
+//            dataEntity.setOriginalData(null);
+//            originalData.putAll(BeanUtil.beanToMap(dataEntity, false, true));
+//            result.put("formData", originalData);
 //        }
-//        if (CollectionUtil.isEmpty(rows) || CollectionUtil.isEmpty(userFormItemEntityList)) {
-//            return Result.failed("鏆傛棤鏀堕泦闄勪欢锛屾棤娉曚笅杞�");
-//        }
-//        List<Map> finalRows = rows;
-//        ThreadUtil.execAsync(() -> {
-//            TimeInterval timer = DateUtil.timer();
-//            List<String> paths = new ArrayList<>();
-//            List<InputStream> ins = new ArrayList<>();
-//            try {
-//                finalRows.forEach(result -> {
-//                    int index = 0;
-//                    userFormItemEntityList.forEach(item -> {
-//                        List<UploadResultStruct> uploadResults = JsonUtils.jsonToList(JsonUtils.objToJson(MapUtil.get(result, item.getFormItemId(), List.class)), UploadResultStruct.class);
-//                        if (CollectionUtil.isNotEmpty(uploadResults)) {
-//                            uploadResults.forEach(uFile -> {
-//                                if (StrUtil.isNotBlank(uFile.getUrl())) {
-//                                    paths.add(FileNameUtil.getName(uFile.getUrl()));
-//                                    byte[] bytes = HttpUtil.downloadBytes(uFile.getUrl());
-//                                    ins.add(IoUtil.toStream(bytes));
-//                                }
-//                            });
-//                        }
-//                    });
-//                    AsyncProcessUtils.setProcess(uuid, ++index / finalRows.size());
-//                });
-//                // 鍘嬬缉涓婁紶oss
-//                ByteArrayOutputStream zipOutputStream = new ByteArrayOutputStream();
-//                ZipUtil.zip(zipOutputStream, paths.toArray(new String[]{}), ins.toArray(new InputStream[]{}));
-//                String downloadUrl = OssStorageFactory.getStorageService().upload(zipOutputStream.toByteArray(), StorageUtils.generateFileName("download", ".zip"));
-//                AsyncProcessUtils.setProcess(uuid, downloadUrl);
-//                log.info("export file cost time: {}", timer.interval());
-//            } catch (Exception e) {
-//                log.error("download file", e);
-//            }
-//        });
-//        return Result.success(uuid);
+//        return Result.success(result);
 //    }
-//
-//
-    @Override
-    public FormDataTableVO listFormDataTable(QueryFormResultRequest request) {
-        return formDataUtils.search(request);
-    }
-//
-//
-//    @Override
-//    public Boolean deleteByIds(List<String> dataIdList, String formKey) {
-//        baseMapper.deleteBatchIds(dataIdList);
-//        formDataUtils.asyncDeleteEsDocument(dataIdList, formKey);
-//        return true;
-//    }
-//
-//    @Override
-//    public Boolean updateFormResult(UserFormDataEntity entity) {
-//        UserFormDataEntity dataEntity = this.getById(entity.getId());
-//        dataEntity.setOriginalData(entity.getOriginalData());
-//        dataEntity.setUpdateBy(entity.getUpdateBy());
-//        boolean update = this.updateById(dataEntity);
-//        // 鏌ヨ鏁版嵁 鍚屾鍒癳s 閬垮厤鏁版嵁鍙樼┖琚鐩�
-//        formDataUtils.asyncUpdateEsDocument(dataEntity);
-//        return update;
-//    }
-
-    @Override
-    public Result getFormDataDetails(String dataId) {
-        Map<String, Object> result =new HashMap<>();
-        UserFormDataEntity dataEntity = this.getById(dataId);
-        List<FormFieldVO> formFields = userFormItemService.listFormFields(dataEntity.getFormKey());
-        // 琛ㄥ崟瀛楁
-        result.put("formFields", formFields);
-        // 琛ㄥ崟濉啓鏁版嵁
-        if (ObjectUtil.isNotNull(dataEntity)) {
-            Map<String, Object> originalData = dataEntity.getOriginalData();
-            dataEntity.setOriginalData(null);
-            originalData.putAll(BeanUtil.beanToMap(dataEntity, false, true));
-            result.put("formData", originalData);
-        }
-        return Result.success(result);
-    }
-}
+//}
diff --git a/ltkj-system/src/main/java/com/ltkj/tduck/service/impl/UserFormSettingServiceImpl.java b/ltkj-system/src/main/java/com/ltkj/tduck/service/impl/UserFormSettingServiceImpl.java
index cf23b5b..36f24c1 100644
--- a/ltkj-system/src/main/java/com/ltkj/tduck/service/impl/UserFormSettingServiceImpl.java
+++ b/ltkj-system/src/main/java/com/ltkj/tduck/service/impl/UserFormSettingServiceImpl.java
@@ -1,194 +1,194 @@
-package com.ltkj.tduck.service.impl;
-
-import cn.hutool.core.bean.BeanUtil;
-import cn.hutool.core.collection.CollUtil;
-import cn.hutool.core.date.DateUtil;
-import cn.hutool.core.util.ObjectUtil;
-import cn.hutool.core.util.StrUtil;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.ltkj.common.utils.SecurityUtils;
-import com.ltkj.tduck.constant.CommonConstants;
-import com.ltkj.tduck.domain.UserFormDataEntity;
-import com.ltkj.tduck.domain.UserFormEntity;
-import com.ltkj.tduck.domain.UserFormSettingEntity;
-import com.ltkj.tduck.enums.FormStatusEnum;
-import com.ltkj.tduck.mapper.UserFormSettingMapper;
-import com.ltkj.tduck.service.UserFormDataService;
-import com.ltkj.tduck.service.UserFormService;
-import com.ltkj.tduck.service.UserFormSettingService;
-import com.ltkj.tduck.struct.FormSettingSchemaStruct;
-import com.ltkj.tduck.utils.Result;
-import lombok.RequiredArgsConstructor;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.time.LocalTime;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-
-/**
- * 琛ㄥ崟琛ㄥ崟椤�(UserFormSetting)琛ㄦ湇鍔″疄鐜扮被
- *
- * @author smalljop
- * @since 2020-11-30 14:00:53
- */
-@Service
-@RequiredArgsConstructor
-public class UserFormSettingServiceImpl extends ServiceImpl<UserFormSettingMapper, UserFormSettingEntity> implements UserFormSettingService {
-    private final UserFormService userFormService;
-    private final UserFormDataService userFormDataService;
-
-    @Override
-    public Boolean saveFormSetting(Map<String, Object> params) {
-        String formKey = params.get("formKey").toString();
-        UserFormSettingEntity entity = this.getOne(Wrappers.<UserFormSettingEntity>lambdaQuery().eq(UserFormSettingEntity::getFormKey, formKey));
-        if (ObjectUtil.isNull(entity)) {
-            UserFormSettingEntity setting = new UserFormSettingEntity();
-            setting.setFormKey(formKey);
-            setting.setSettings(params);
-            return this.save(setting);
-        }
-        Map<String, Object> settings = entity.getSettings();
-        settings.putAll(params);
-        entity.setSettings(settings);
-        return this.updateById(entity);
-    }
-
-
-    @Override
-    public UserFormSettingEntity getFormSettingByKey(String formKey) {
-        return this.getOne(Wrappers.<UserFormSettingEntity>lambdaQuery().eq(UserFormSettingEntity::getFormKey, formKey));
-    }
-
-    @Override
-    public FormSettingSchemaStruct getFormSettingSchema(String formKey) {
-        UserFormSettingEntity settingEntity = getFormSettingByKey(formKey);
-        if (ObjectUtil.isNull(settingEntity)) {
-            return null;
-        }
-        return BeanUtil.toBean(settingEntity.getSettings(), FormSettingSchemaStruct.class);
-    }
-
-
-    @Override
-    public Result<Boolean> getUserFormWriteSettingStatus(String formKey, String requestIp, String wxOpenId, Integer type) {
-        UserFormEntity userFormEntity = userFormService.getByKey(formKey);
-        boolean checkPublish = Objects.equals(type, CommonConstants.ConstantNumber.ONE) &&
-                (ObjectUtil.isNull(userFormEntity) || userFormEntity.getStatus() != 2);
-        // 闈炲叕寮�濉啓 涓嶆牎楠屽彂甯冪姸鎬�
-        if (checkPublish) {
-            return Result.success(null, "琛ㄥ崟鏆傛椂鏃犳硶濉啓");
-        }
-        UserFormSettingEntity settingEntity = getFormSettingByKey(formKey);
-        if (ObjectUtil.isNull(settingEntity)) {
-            return Result.success(true);
-        }
-        FormSettingSchemaStruct settingSchemaStruct = BeanUtil.toBean(settingEntity.getSettings(), FormSettingSchemaStruct.class);
-        // 濉啓鏃堕棿闄愬埗
-        boolean writeInterviewTime = isWriteInterviewTime(settingSchemaStruct);
-        if (!writeInterviewTime) {
-            return Result.success(null, StrUtil.blankToDefault(settingSchemaStruct.getWriteInterviewTimeText(), "涓嶅湪绛旈鏃堕棿鑼冨洿鍐咃紝鏈夐棶棰樿涓庤〃鍗曞彂甯冭�呰仈绯�"));
-        }
-        // 姣忎釜寰俊绛旈娆℃暟闄愬埗
-        if (settingSchemaStruct.isWxWriteCountLimitStatus()) {
-            LambdaQueryWrapper<UserFormDataEntity> wrapper = Wrappers.<UserFormDataEntity>lambdaQuery().eq(UserFormDataEntity::getFormKey, formKey).eq(UserFormDataEntity::getWxOpenId, wxOpenId);
-            String rangeTypeSql = FormSettingSchemaStruct.DateRangeType.getDateSql(settingSchemaStruct.getWxWriteCountLimitDateType());
-            wrapper.apply(StrUtil.isNotBlank(rangeTypeSql), rangeTypeSql);
-            long writeCount = userFormDataService.count(wrapper);
-            if (writeCount >= settingSchemaStruct.getWxWriteCountLimit()) {
-                return Result.success(null, StrUtil.blankToDefault(settingSchemaStruct.getWxWriteCountLimitText(), "璇ュ井淇″凡缁忔彁浜よ繃鏁版嵁锛屼笉鍙噸澶嶆彁浜わ紝鏈夐棶棰樿涓庤〃鍗曞彂甯冭�呰仈绯�"));
-            }
-        }
-        // 姣忎釜IP绛旈娆℃暟闄愬埗
-        if (settingSchemaStruct.isIpWriteCountLimitStatus()) {
-            LambdaQueryWrapper<UserFormDataEntity> wrapper = Wrappers.<UserFormDataEntity>lambdaQuery().eq(UserFormDataEntity::getFormKey, formKey).eq(UserFormDataEntity::getSubmitRequestIp, requestIp);
-            String rangeTypeSql = FormSettingSchemaStruct.DateRangeType.getDateSql(settingSchemaStruct.getIpWriteCountLimitDateType());
-            wrapper.apply(StrUtil.isNotBlank(rangeTypeSql), rangeTypeSql);
-            long writeCount = userFormDataService.count(wrapper);
-            if (writeCount >= settingSchemaStruct.getIpWriteCountLimit()) {
-                return Result.success(null, StrUtil.blankToDefault(settingSchemaStruct.getIpWriteCountLimitText(), "璇P宸茬粡鎻愪氦杩囨暟鎹紝涓嶅彲閲嶅鎻愪氦锛屾湁闂璇蜂笌琛ㄥ崟鍙戝竷鑰呰仈绯�"));
-            }
-        }
-        // 鎬荤瓟棰樻鏁伴檺鍒�
-        if (settingSchemaStruct.isTotalWriteCountLimitStatus()) {
-            LambdaQueryWrapper<UserFormDataEntity> wrapper = Wrappers.<UserFormDataEntity>lambdaQuery().eq(UserFormDataEntity::getFormKey, formKey);
-            String rangeTypeSql = FormSettingSchemaStruct.DateRangeType.getDateSql(settingSchemaStruct.getTotalWriteCountLimitDateType());
-            wrapper.apply(StrUtil.isNotBlank(rangeTypeSql), rangeTypeSql);
-            long writeCount = userFormDataService.count(wrapper);
-            if (writeCount >= settingSchemaStruct.getTotalWriteCountLimit()) {
-                return Result.success(null, StrUtil.blankToDefault(settingSchemaStruct.getTotalWriteCountLimitText(), "璇ヨ〃鍗曟敹闆嗘暟鎹凡缁忚揪鍒颁笂闄愶紝鏈夐棶棰樿涓庤〃鍗曞彂甯冭�呰仈绯�"));
-            }
-        }
-        // 姣忎釜璐﹀彿绛旈娆℃暟闄愬埗
-        if (settingSchemaStruct.isAccountWriteCountLimitStatus()) {
-            LambdaQueryWrapper<UserFormDataEntity> wrapper = Wrappers.<UserFormDataEntity>lambdaQuery().eq(UserFormDataEntity::getFormKey, formKey)
-                    .eq(UserFormDataEntity::getCreateBy, SecurityUtils.getUserId());
-            String rangeTypeSql = FormSettingSchemaStruct.DateRangeType.getDateSql(settingSchemaStruct.getAccountWriteCountLimitDateType());
-            wrapper.apply(StrUtil.isNotBlank(rangeTypeSql), rangeTypeSql);
-            long writeCount = userFormDataService.count(wrapper);
-            if (writeCount >= settingSchemaStruct.getAccountWriteCountLimit()) {
-                return Result.success(null, StrUtil.blankToDefault(settingSchemaStruct.getAccountWriteCountLimitText(), "璇ヨ处鍙峰凡缁忔彁浜よ繃鏁版嵁锛屼笉鍙噸澶嶆彁浜わ紝鏈夐棶棰樿涓庤〃鍗曞彂甯冭�呰仈绯�"));
-            }
-        }
-        return Result.success(true);
-    }
-
-    /**
-     * 鏄惁鍦ㄨ缃殑绛旈鏃堕棿鍐�
-     *
-     * @return true 鍦ㄧ瓟棰樻椂闂村唴
-     */
-    private boolean isWriteInterviewTime(FormSettingSchemaStruct settingSchemaStruct) {
-        // 绛旈鏃堕棿闄愬埗
-        if (settingSchemaStruct.isWriteInterviewTimeStatus()) {
-            // 鏄惁姣忓ぉ鏃堕棿鑼冨洿闄愬埗
-            if (settingSchemaStruct.isWriteInterviewDayTimeStatus()) {
-                // 鏄惁鍦ㄥ厑璁歌闂殑澶╁唴
-                List<String> writeInterviewDateRange = settingSchemaStruct.getWriteInterviewDateRange();
-                if (CollUtil.isEmpty(writeInterviewDateRange) || DateUtil.isIn(DateUtil.date(), DateUtil.parse(writeInterviewDateRange.get(0)), DateUtil.parse(writeInterviewDateRange.get(1)))) {
-                    // 鏄惁鍦ㄥ厑璁歌闂殑灏忔椂鍐�
-                    List<String> writeInterviewTimeRange = settingSchemaStruct.getWriteInterviewTimeRange();
-                    LocalTime now = LocalTime.now();
-                    boolean isRange = CollUtil.isNotEmpty(writeInterviewDateRange) && now.isBefore(LocalTime.parse(writeInterviewTimeRange.get(0))) || now.isAfter(LocalTime.parse(writeInterviewTimeRange.get(1)));
-                    if (isRange) {
-                        return false;
-                    }
-                } else {
-                    return false;
-                }
-            } else {
-                // 鏄惁鍦ㄥ厑璁歌闂殑澶╁唴
-                List<String> writeInterviewDateTimeRange = settingSchemaStruct.getWriteInterviewDateTimeRange();
-                if (CollUtil.isNotEmpty(writeInterviewDateTimeRange) && !DateUtil.isIn(DateUtil.date(), DateUtil.parse(writeInterviewDateTimeRange.get(0)), DateUtil.parse(writeInterviewDateTimeRange.get(1)))) {
-                    return false;
-                }
-            }
-            // 鏄惁鏄瘡鍛ㄥ厑璁歌闂殑鍛ㄥ嚑
-            List<String> writeInterviewTimeWhichDays = settingSchemaStruct.getWriteInterviewTimeWhichDays();
-            if (CollUtil.isNotEmpty(writeInterviewTimeWhichDays)) {
-                // 鑾峰彇浠婂ぉ鏄瘡鍛ㄧ殑绗嚑澶�
-                int day = DateUtil.dayOfWeek(DateUtil.date());
-                return writeInterviewTimeWhichDays.contains(String.valueOf(day));
-            }
-        }
-        return true;
-    }
-
-
-    /**
-     * 鍒犻櫎鍏ㄩ儴鐨勮〃鍗曟暟鎹�
-     *
-     * @param formKey 琛ㄥ崟key
-     * @return 鍒犻櫎缁撴灉
-     */
-    @Override
-    @Transactional(rollbackFor = {Exception.class})
-    public Boolean deleteAllSetting(String formKey) {
-        this.remove(Wrappers.<UserFormSettingEntity>lambdaQuery().eq(UserFormSettingEntity::getFormKey, formKey));
-        return true;
-    }
-
-}
+//package com.ltkj.tduck.service.impl;
+//
+//import cn.hutool.core.bean.BeanUtil;
+//import cn.hutool.core.collection.CollUtil;
+//import cn.hutool.core.date.DateUtil;
+//import cn.hutool.core.util.ObjectUtil;
+//import cn.hutool.core.util.StrUtil;
+//import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+//import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+//import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+//import com.ltkj.common.utils.SecurityUtils;
+//import com.ltkj.tduck.constant.CommonConstants;
+//import com.ltkj.tduck.domain.UserFormDataEntity;
+//import com.ltkj.tduck.domain.UserFormEntity;
+//import com.ltkj.tduck.domain.UserFormSettingEntity;
+//import com.ltkj.tduck.enums.FormStatusEnum;
+//import com.ltkj.tduck.mapper.UserFormSettingMapper;
+//import com.ltkj.tduck.service.UserFormDataService;
+//import com.ltkj.tduck.service.UserFormService;
+//import com.ltkj.tduck.service.UserFormSettingService;
+//import com.ltkj.tduck.struct.FormSettingSchemaStruct;
+//import com.ltkj.tduck.utils.Result;
+//import lombok.RequiredArgsConstructor;
+//import org.springframework.stereotype.Service;
+//import org.springframework.transaction.annotation.Transactional;
+//
+//import java.time.LocalTime;
+//import java.util.List;
+//import java.util.Map;
+//import java.util.Objects;
+//
+///**
+// * 琛ㄥ崟琛ㄥ崟椤�(UserFormSetting)琛ㄦ湇鍔″疄鐜扮被
+// *
+// * @author smalljop
+// * @since 2020-11-30 14:00:53
+// */
+//@Service
+//@RequiredArgsConstructor
+//public class UserFormSettingServiceImpl extends ServiceImpl<UserFormSettingMapper, UserFormSettingEntity> implements UserFormSettingService {
+//    private final UserFormService userFormService;
+//    private final UserFormDataService userFormDataService;
+//
+//    @Override
+//    public Boolean saveFormSetting(Map<String, Object> params) {
+//        String formKey = params.get("formKey").toString();
+//        UserFormSettingEntity entity = this.getOne(Wrappers.<UserFormSettingEntity>lambdaQuery().eq(UserFormSettingEntity::getFormKey, formKey));
+//        if (ObjectUtil.isNull(entity)) {
+//            UserFormSettingEntity setting = new UserFormSettingEntity();
+//            setting.setFormKey(formKey);
+//            setting.setSettings(params);
+//            return this.save(setting);
+//        }
+//        Map<String, Object> settings = entity.getSettings();
+//        settings.putAll(params);
+//        entity.setSettings(settings);
+//        return this.updateById(entity);
+//    }
+//
+//
+//    @Override
+//    public UserFormSettingEntity getFormSettingByKey(String formKey) {
+//        return this.getOne(Wrappers.<UserFormSettingEntity>lambdaQuery().eq(UserFormSettingEntity::getFormKey, formKey));
+//    }
+//
+//    @Override
+//    public FormSettingSchemaStruct getFormSettingSchema(String formKey) {
+//        UserFormSettingEntity settingEntity = getFormSettingByKey(formKey);
+//        if (ObjectUtil.isNull(settingEntity)) {
+//            return null;
+//        }
+//        return BeanUtil.toBean(settingEntity.getSettings(), FormSettingSchemaStruct.class);
+//    }
+//
+//
+//    @Override
+//    public Result<Boolean> getUserFormWriteSettingStatus(String formKey, String requestIp, String wxOpenId, Integer type) {
+//        UserFormEntity userFormEntity = userFormService.getByKey(formKey);
+//        boolean checkPublish = Objects.equals(type, CommonConstants.ConstantNumber.ONE) &&
+//                (ObjectUtil.isNull(userFormEntity) || userFormEntity.getStatus() != 2);
+//        // 闈炲叕寮�濉啓 涓嶆牎楠屽彂甯冪姸鎬�
+//        if (checkPublish) {
+//            return Result.success(null, "琛ㄥ崟鏆傛椂鏃犳硶濉啓");
+//        }
+//        UserFormSettingEntity settingEntity = getFormSettingByKey(formKey);
+//        if (ObjectUtil.isNull(settingEntity)) {
+//            return Result.success(true);
+//        }
+//        FormSettingSchemaStruct settingSchemaStruct = BeanUtil.toBean(settingEntity.getSettings(), FormSettingSchemaStruct.class);
+//        // 濉啓鏃堕棿闄愬埗
+//        boolean writeInterviewTime = isWriteInterviewTime(settingSchemaStruct);
+//        if (!writeInterviewTime) {
+//            return Result.success(null, StrUtil.blankToDefault(settingSchemaStruct.getWriteInterviewTimeText(), "涓嶅湪绛旈鏃堕棿鑼冨洿鍐咃紝鏈夐棶棰樿涓庤〃鍗曞彂甯冭�呰仈绯�"));
+//        }
+//        // 姣忎釜寰俊绛旈娆℃暟闄愬埗
+//        if (settingSchemaStruct.isWxWriteCountLimitStatus()) {
+//            LambdaQueryWrapper<UserFormDataEntity> wrapper = Wrappers.<UserFormDataEntity>lambdaQuery().eq(UserFormDataEntity::getFormKey, formKey).eq(UserFormDataEntity::getWxOpenId, wxOpenId);
+//            String rangeTypeSql = FormSettingSchemaStruct.DateRangeType.getDateSql(settingSchemaStruct.getWxWriteCountLimitDateType());
+//            wrapper.apply(StrUtil.isNotBlank(rangeTypeSql), rangeTypeSql);
+//            long writeCount = userFormDataService.count(wrapper);
+//            if (writeCount >= settingSchemaStruct.getWxWriteCountLimit()) {
+//                return Result.success(null, StrUtil.blankToDefault(settingSchemaStruct.getWxWriteCountLimitText(), "璇ュ井淇″凡缁忔彁浜よ繃鏁版嵁锛屼笉鍙噸澶嶆彁浜わ紝鏈夐棶棰樿涓庤〃鍗曞彂甯冭�呰仈绯�"));
+//            }
+//        }
+//        // 姣忎釜IP绛旈娆℃暟闄愬埗
+//        if (settingSchemaStruct.isIpWriteCountLimitStatus()) {
+//            LambdaQueryWrapper<UserFormDataEntity> wrapper = Wrappers.<UserFormDataEntity>lambdaQuery().eq(UserFormDataEntity::getFormKey, formKey).eq(UserFormDataEntity::getSubmitRequestIp, requestIp);
+//            String rangeTypeSql = FormSettingSchemaStruct.DateRangeType.getDateSql(settingSchemaStruct.getIpWriteCountLimitDateType());
+//            wrapper.apply(StrUtil.isNotBlank(rangeTypeSql), rangeTypeSql);
+//            long writeCount = userFormDataService.count(wrapper);
+//            if (writeCount >= settingSchemaStruct.getIpWriteCountLimit()) {
+//                return Result.success(null, StrUtil.blankToDefault(settingSchemaStruct.getIpWriteCountLimitText(), "璇P宸茬粡鎻愪氦杩囨暟鎹紝涓嶅彲閲嶅鎻愪氦锛屾湁闂璇蜂笌琛ㄥ崟鍙戝竷鑰呰仈绯�"));
+//            }
+//        }
+//        // 鎬荤瓟棰樻鏁伴檺鍒�
+//        if (settingSchemaStruct.isTotalWriteCountLimitStatus()) {
+//            LambdaQueryWrapper<UserFormDataEntity> wrapper = Wrappers.<UserFormDataEntity>lambdaQuery().eq(UserFormDataEntity::getFormKey, formKey);
+//            String rangeTypeSql = FormSettingSchemaStruct.DateRangeType.getDateSql(settingSchemaStruct.getTotalWriteCountLimitDateType());
+//            wrapper.apply(StrUtil.isNotBlank(rangeTypeSql), rangeTypeSql);
+//            long writeCount = userFormDataService.count(wrapper);
+//            if (writeCount >= settingSchemaStruct.getTotalWriteCountLimit()) {
+//                return Result.success(null, StrUtil.blankToDefault(settingSchemaStruct.getTotalWriteCountLimitText(), "璇ヨ〃鍗曟敹闆嗘暟鎹凡缁忚揪鍒颁笂闄愶紝鏈夐棶棰樿涓庤〃鍗曞彂甯冭�呰仈绯�"));
+//            }
+//        }
+//        // 姣忎釜璐﹀彿绛旈娆℃暟闄愬埗
+//        if (settingSchemaStruct.isAccountWriteCountLimitStatus()) {
+//            LambdaQueryWrapper<UserFormDataEntity> wrapper = Wrappers.<UserFormDataEntity>lambdaQuery().eq(UserFormDataEntity::getFormKey, formKey)
+//                    .eq(UserFormDataEntity::getCreateBy, SecurityUtils.getUserId());
+//            String rangeTypeSql = FormSettingSchemaStruct.DateRangeType.getDateSql(settingSchemaStruct.getAccountWriteCountLimitDateType());
+//            wrapper.apply(StrUtil.isNotBlank(rangeTypeSql), rangeTypeSql);
+//            long writeCount = userFormDataService.count(wrapper);
+//            if (writeCount >= settingSchemaStruct.getAccountWriteCountLimit()) {
+//                return Result.success(null, StrUtil.blankToDefault(settingSchemaStruct.getAccountWriteCountLimitText(), "璇ヨ处鍙峰凡缁忔彁浜よ繃鏁版嵁锛屼笉鍙噸澶嶆彁浜わ紝鏈夐棶棰樿涓庤〃鍗曞彂甯冭�呰仈绯�"));
+//            }
+//        }
+//        return Result.success(true);
+//    }
+//
+//    /**
+//     * 鏄惁鍦ㄨ缃殑绛旈鏃堕棿鍐�
+//     *
+//     * @return true 鍦ㄧ瓟棰樻椂闂村唴
+//     */
+//    private boolean isWriteInterviewTime(FormSettingSchemaStruct settingSchemaStruct) {
+//        // 绛旈鏃堕棿闄愬埗
+//        if (settingSchemaStruct.isWriteInterviewTimeStatus()) {
+//            // 鏄惁姣忓ぉ鏃堕棿鑼冨洿闄愬埗
+//            if (settingSchemaStruct.isWriteInterviewDayTimeStatus()) {
+//                // 鏄惁鍦ㄥ厑璁歌闂殑澶╁唴
+//                List<String> writeInterviewDateRange = settingSchemaStruct.getWriteInterviewDateRange();
+//                if (CollUtil.isEmpty(writeInterviewDateRange) || DateUtil.isIn(DateUtil.date(), DateUtil.parse(writeInterviewDateRange.get(0)), DateUtil.parse(writeInterviewDateRange.get(1)))) {
+//                    // 鏄惁鍦ㄥ厑璁歌闂殑灏忔椂鍐�
+//                    List<String> writeInterviewTimeRange = settingSchemaStruct.getWriteInterviewTimeRange();
+//                    LocalTime now = LocalTime.now();
+//                    boolean isRange = CollUtil.isNotEmpty(writeInterviewDateRange) && now.isBefore(LocalTime.parse(writeInterviewTimeRange.get(0))) || now.isAfter(LocalTime.parse(writeInterviewTimeRange.get(1)));
+//                    if (isRange) {
+//                        return false;
+//                    }
+//                } else {
+//                    return false;
+//                }
+//            } else {
+//                // 鏄惁鍦ㄥ厑璁歌闂殑澶╁唴
+//                List<String> writeInterviewDateTimeRange = settingSchemaStruct.getWriteInterviewDateTimeRange();
+//                if (CollUtil.isNotEmpty(writeInterviewDateTimeRange) && !DateUtil.isIn(DateUtil.date(), DateUtil.parse(writeInterviewDateTimeRange.get(0)), DateUtil.parse(writeInterviewDateTimeRange.get(1)))) {
+//                    return false;
+//                }
+//            }
+//            // 鏄惁鏄瘡鍛ㄥ厑璁歌闂殑鍛ㄥ嚑
+//            List<String> writeInterviewTimeWhichDays = settingSchemaStruct.getWriteInterviewTimeWhichDays();
+//            if (CollUtil.isNotEmpty(writeInterviewTimeWhichDays)) {
+//                // 鑾峰彇浠婂ぉ鏄瘡鍛ㄧ殑绗嚑澶�
+//                int day = DateUtil.dayOfWeek(DateUtil.date());
+//                return writeInterviewTimeWhichDays.contains(String.valueOf(day));
+//            }
+//        }
+//        return true;
+//    }
+//
+//
+//    /**
+//     * 鍒犻櫎鍏ㄩ儴鐨勮〃鍗曟暟鎹�
+//     *
+//     * @param formKey 琛ㄥ崟key
+//     * @return 鍒犻櫎缁撴灉
+//     */
+//    @Override
+//    @Transactional(rollbackFor = {Exception.class})
+//    public Boolean deleteAllSetting(String formKey) {
+//        this.remove(Wrappers.<UserFormSettingEntity>lambdaQuery().eq(UserFormSettingEntity::getFormKey, formKey));
+//        return true;
+//    }
+//
+//}
diff --git a/ltkj-system/src/main/java/com/ltkj/tduck/utils/CacheUtils.java b/ltkj-system/src/main/java/com/ltkj/tduck/utils/CacheUtils.java
index 7f5c037..88470c7 100644
--- a/ltkj-system/src/main/java/com/ltkj/tduck/utils/CacheUtils.java
+++ b/ltkj-system/src/main/java/com/ltkj/tduck/utils/CacheUtils.java
@@ -1,133 +1,133 @@
-package com.ltkj.tduck.utils;
-
-import cn.hutool.core.convert.Convert;
-import cn.hutool.core.util.ObjectUtil;
-import cn.hutool.core.util.StrUtil;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.compress.utils.Lists;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.cache.Cache;
-import org.springframework.cache.annotation.EnableCaching;
-import org.springframework.cache.ehcache.EhCacheCacheManager;
-import org.springframework.stereotype.Component;
-
-import java.util.List;
-
-/**
- * @author : tduck
- * @description : 鍩轰簬ehcache瀹炵幇
- * @create :  2022/01/06 10:40
- **/
-@Component
-@Slf4j
-@EnableCaching
-public class CacheUtils {
-    private final String ETERNAL_CACHE_NAME = "eternal_cache";
-    private final String TEMP_CACHE_NAME = "temp_cache";
-    @Autowired
-    private EhCacheCacheManager cacheManager;
-
-    /**
-     * 淇濆瓨鍒癈ache
-     */
-    public void save(String key, String value) {
-        cacheManager.getCache(ETERNAL_CACHE_NAME).put(key, value);
-    }
-
-    /**
-     * 鑾峰彇
-     *
-     * @param key
-     */
-    public String get(String key) {
-        Cache.ValueWrapper valueWrapper = cacheManager.getCache(ETERNAL_CACHE_NAME).get(key);
-        if (ObjectUtil.isNotNull(valueWrapper) && ObjectUtil.isNotNull(valueWrapper.get())) {
-            return valueWrapper.get().toString();
-        }
-        return null;
-    }
-
-
-    /**
-     * 鑷
-     *
-     * @param key
-     * @param number
-     * @return
-     */
-    public Long incr(String key, Integer number) {
-        String v = get(key);
-        if (StrUtil.isBlank(v)) {
-            v = "0";
-        }
-        long finalValue = Convert.toLong(v) + number;
-        save(key, String.valueOf(finalValue));
-        return finalValue;
-    }
-
-
-    /**
-     * 娣诲姞鍒伴泦鍚堢紦瀛�
-     *
-     * @param key
-     * @param value
-     */
-    public void addList(String key, Object value) {
-        List coll = this.getList(key, Object.class);
-        coll.add(value);
-        cacheManager.getCache(TEMP_CACHE_NAME).put(key, JsonUtils.objToJson(coll));
-    }
-
-
-    /**
-     * 浠庨泦鍚堜腑绉婚櫎
-     *
-     * @param key
-     * @param value
-     */
-    public void removeList(String key, Object value) {
-        List coll = this.getList(key, Object.class);
-        coll.remove(value);
-        cacheManager.getCache(TEMP_CACHE_NAME).put(key, JsonUtils.objToJson(coll));
-    }
-
-    /**
-     * 鑾峰彇闆嗗悎
-     *
-     * @param key
-     */
-    public List getList(String key, Class classz) {
-        String v = get(key);
-        if (ObjectUtil.isNotNull(v)) {
-            return JsonUtils.jsonToList(v, classz.getClass());
-        }
-        return Lists.newArrayList();
-    }
-
-
-    /**
-     * 涓存椂淇濆瓨 榛樿5min
-     */
-    public void tempSave(String key, String value) {
-        cacheManager.getCache(TEMP_CACHE_NAME).put(key, value);
-    }
-
-    /**
-     * 鑾峰彇涓存椂瀛樺偍鍙橀噺
-     *
-     * @param key
-     */
-    public String getTemp(String key) {
-        Cache.ValueWrapper valueWrapper = cacheManager.getCache(TEMP_CACHE_NAME).get(key);
-        if (ObjectUtil.isNotNull(valueWrapper) && ObjectUtil.isNotNull(valueWrapper.get())) {
-            return valueWrapper.get().toString();
-        }
-        return null;
-    }
-
-    public void removeTemp(String key) {
-        cacheManager.getCache(TEMP_CACHE_NAME).evict(key);
-    }
-
-
-}
+//package com.ltkj.tduck.utils;
+//
+//import cn.hutool.core.convert.Convert;
+//import cn.hutool.core.util.ObjectUtil;
+//import cn.hutool.core.util.StrUtil;
+//import lombok.extern.slf4j.Slf4j;
+//import org.apache.commons.compress.utils.Lists;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.cache.Cache;
+//import org.springframework.cache.annotation.EnableCaching;
+//import org.springframework.cache.ehcache.EhCacheCacheManager;
+//import org.springframework.stereotype.Component;
+//
+//import java.util.List;
+//
+///**
+// * @author : tduck
+// * @description : 鍩轰簬ehcache瀹炵幇
+// * @create :  2022/01/06 10:40
+// **/
+//@Component
+//@Slf4j
+//@EnableCaching
+//public class CacheUtils {
+//    private final String ETERNAL_CACHE_NAME = "eternal_cache";
+//    private final String TEMP_CACHE_NAME = "temp_cache";
+//    @Autowired
+//    private EhCacheCacheManager cacheManager;
+//
+//    /**
+//     * 淇濆瓨鍒癈ache
+//     */
+//    public void save(String key, String value) {
+//        cacheManager.getCache(ETERNAL_CACHE_NAME).put(key, value);
+//    }
+//
+//    /**
+//     * 鑾峰彇
+//     *
+//     * @param key
+//     */
+//    public String get(String key) {
+//        Cache.ValueWrapper valueWrapper = cacheManager.getCache(ETERNAL_CACHE_NAME).get(key);
+//        if (ObjectUtil.isNotNull(valueWrapper) && ObjectUtil.isNotNull(valueWrapper.get())) {
+//            return valueWrapper.get().toString();
+//        }
+//        return null;
+//    }
+//
+//
+//    /**
+//     * 鑷
+//     *
+//     * @param key
+//     * @param number
+//     * @return
+//     */
+//    public Long incr(String key, Integer number) {
+//        String v = get(key);
+//        if (StrUtil.isBlank(v)) {
+//            v = "0";
+//        }
+//        long finalValue = Convert.toLong(v) + number;
+//        save(key, String.valueOf(finalValue));
+//        return finalValue;
+//    }
+//
+//
+//    /**
+//     * 娣诲姞鍒伴泦鍚堢紦瀛�
+//     *
+//     * @param key
+//     * @param value
+//     */
+//    public void addList(String key, Object value) {
+//        List coll = this.getList(key, Object.class);
+//        coll.add(value);
+//        cacheManager.getCache(TEMP_CACHE_NAME).put(key, JsonUtils.objToJson(coll));
+//    }
+//
+//
+//    /**
+//     * 浠庨泦鍚堜腑绉婚櫎
+//     *
+//     * @param key
+//     * @param value
+//     */
+//    public void removeList(String key, Object value) {
+//        List coll = this.getList(key, Object.class);
+//        coll.remove(value);
+//        cacheManager.getCache(TEMP_CACHE_NAME).put(key, JsonUtils.objToJson(coll));
+//    }
+//
+//    /**
+//     * 鑾峰彇闆嗗悎
+//     *
+//     * @param key
+//     */
+//    public List getList(String key, Class classz) {
+//        String v = get(key);
+//        if (ObjectUtil.isNotNull(v)) {
+//            return JsonUtils.jsonToList(v, classz.getClass());
+//        }
+//        return Lists.newArrayList();
+//    }
+//
+//
+//    /**
+//     * 涓存椂淇濆瓨 榛樿5min
+//     */
+//    public void tempSave(String key, String value) {
+//        cacheManager.getCache(TEMP_CACHE_NAME).put(key, value);
+//    }
+//
+//    /**
+//     * 鑾峰彇涓存椂瀛樺偍鍙橀噺
+//     *
+//     * @param key
+//     */
+//    public String getTemp(String key) {
+//        Cache.ValueWrapper valueWrapper = cacheManager.getCache(TEMP_CACHE_NAME).get(key);
+//        if (ObjectUtil.isNotNull(valueWrapper) && ObjectUtil.isNotNull(valueWrapper.get())) {
+//            return valueWrapper.get().toString();
+//        }
+//        return null;
+//    }
+//
+//    public void removeTemp(String key) {
+//        cacheManager.getCache(TEMP_CACHE_NAME).evict(key);
+//    }
+//
+//
+//}
diff --git a/ltkj-system/src/main/java/com/ltkj/tduck/utils/SortUtils.java b/ltkj-system/src/main/java/com/ltkj/tduck/utils/SortUtils.java
index c59f3ce..56e135a 100644
--- a/ltkj-system/src/main/java/com/ltkj/tduck/utils/SortUtils.java
+++ b/ltkj-system/src/main/java/com/ltkj/tduck/utils/SortUtils.java
@@ -1,109 +1,109 @@
-package com.ltkj.tduck.utils;
-
-
-import cn.hutool.core.util.ObjectUtil;
-import cn.hutool.core.util.StrUtil;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import com.ltkj.tduck.constant.FormRedisKeyConstants;
-import com.ltkj.tduck.domain.UserFormItemEntity;
-import com.ltkj.tduck.service.UserFormItemService;
-import lombok.RequiredArgsConstructor;
-import org.springframework.stereotype.Component;
-
-import java.util.Comparator;
-import java.util.List;
-
-/**
- * 涓や釜鍓嶆彁:浣嶇疆鐨勪俊鎭褰曞湪浠诲姟鐨勬ā鍨嬩笂(pos瀛楁);涓�鑸袱涓换鍔$殑pos鍊肩浉宸緢澶�(榛樿鏄�65536);鐜板湪鍋囪鏈変换鍔� A, B, C.
- * 鍒椾妇鍑犱釜甯歌鐨勫満鏅�:濡傛灉C瑕佺Щ鍒癆鐨勫墠闈�, 閭d箞鍚庣浼氭妸 C.pos 鏀逛负 A.pos/2;鑻ユ灉C瑕佺Щ鍒癆鍜孊涔嬮棿,
- * 閭d箞鍚庣浼氭妸 C.pos 鏀逛负 (A.pos + B.pos)/2;濡傛灉B瑕佺Щ鍒癈鐨勫悗闈�, 閭d箞鍚庣浼氭妸 B.pos 鏀逛负 C.pos + 65536;
- * 褰撶劧杩欓噷浼氭湁涓瀬绔儏鍐甸渶瑕佸鐞�(鍋囪pos鏄暣鏁�):濡傛灉 A.pos 鏄� 1, B.pos 鏄� 2, C鎯崇Щ鍒癆鍜孊涔嬮棿, 鍏跺疄鏄病鏈変竴涓暣鏁板彲浠ョ敤鐨�,
- * 閽堝杩欑鎯呭喌, 鍚庣浼氶噸鏂扮粰鏁翠釜鍒楄〃鐨勪换鍔¢噸鏂板埛涓�閬峱os鍊�.
- * <p>
- * 鎷栧姩鎺掑簭宸ュ叿绫�
- * 绠楁硶鍙傝�� @link https://www.zhihu.com/question/55789722
- *
- * @author smalljop
- */
-@RequiredArgsConstructor
-@Component
-public class SortUtils {
-
-    private final CacheUtils cacheUtils;
-
-    /**
-     * 鎺掑簭榛樿鑷鍥犲瓙
-     */
-    private final Long SORT_DEFAULT_INCR_FACT = 65536L;
-
-    private final UserFormItemService formItemService;
-
-
-    /**
-     * 鑾峰彇鎺掑簭鏁板��
-     *
-     * @param formKey 琛ㄥ崟key
-     * @return 鍒濆鎺掑簭鏁板��
-     */
-    public Long getInitialSortPosition(String formKey) {
-        String redisKey = StrUtil.format(FormRedisKeyConstants.FORM_ITEM_POS_DELTA, formKey);
-        // 妯℃澘鍒涘缓鏃� 鍒濆鎺掑簭鏁板��
-        if (StrUtil.isBlank(cacheUtils.get(redisKey))) {
-            Long sort = formItemService.getLastItemSort(formKey);
-            cacheUtils.save(redisKey, String.valueOf(sort == null ? 1 : sort));
-        }
-        return cacheUtils.incr(redisKey, SORT_DEFAULT_INCR_FACT.intValue());
-    }
-
-
-    /**
-     * * 涓や釜鍓嶆彁:浣嶇疆鐨勪俊鎭褰曞湪浠诲姟鐨勬ā鍨嬩笂(pos瀛楁);涓�鑸袱涓换鍔$殑pos鍊肩浉宸緢澶�(榛樿鏄�65536);鐜板湪鍋囪鏈変换鍔� A, B, C.
-     * * 鍒椾妇鍑犱釜甯歌鐨勫満鏅�:濡傛灉C瑕佺Щ鍒癆鐨勫墠闈�, 閭d箞鍚庣浼氭妸 C.pos 鏀逛负 A.pos/2;鑻ユ灉C瑕佺Щ鍒癆鍜孊涔嬮棿,
-     * * 閭d箞鍚庣浼氭妸 C.pos 鏀逛负 (A.pos + B.pos)/2;濡傛灉B瑕佺Щ鍒癈鐨勫悗闈�, 閭d箞鍚庣浼氭妸 B.pos 鏀逛负 C.pos + 65536;
-     * * 褰撶劧杩欓噷浼氭湁涓瀬绔儏鍐甸渶瑕佸鐞�(鍋囪pos鏄暣鏁�):濡傛灉 A.pos 鏄� 1, B.pos 鏄� 2, C鎯崇Щ鍒癆鍜孊涔嬮棿, 鍏跺疄鏄病鏈変竴涓暣鏁板彲浠ョ敤鐨�,
-     * * 閽堝杩欑鎯呭喌, 鍚庣浼氶噸鏂扮粰鏁翠釜鍒楄〃鐨勪换鍔¢噸鏂板埛涓�閬峱os鍊�.
-     * 鎺掑簭涔嬪悗閲嶆柊璁$畻
-     *
-     * @param beforePosition 涔嬪墠鐨勪綅缃�
-     * @param afterPosition  涔嬪悗鐨勪綅缃�
-     * @param formKey        琛ㄥ崟key
-     * @return 鏈�缁堜綅缃�
-     */
-    public Long calcSortPosition(Long beforePosition, Long afterPosition, String formKey) {
-        String redisKey = StrUtil.format(FormRedisKeyConstants.FORM_ITEM_POS_DELTA, formKey);
-        boolean isCenter = (ObjectUtil.isNotNull(beforePosition) && 0L != beforePosition) && (ObjectUtil.isNotNull(afterPosition) && 0L != afterPosition);
-        if (isCenter) { // 鏀惧埌涓棿
-            return (beforePosition + afterPosition) / 2;
-        }
-        if (ObjectUtil.isNull(beforePosition) || 0L == beforePosition) { // 鏀惧埌鏈�鍓嶉潰
-            return afterPosition / 2;
-        } else { // 鏀惧埌鏈�鍚庨潰
-            return cacheUtils.incr(redisKey, SORT_DEFAULT_INCR_FACT.intValue());
-        }
-    }
-
-
-    /**
-     * 鏋佺鎯呭喌鍒锋柊鏁翠釜鍒楄〃
-     *
-     * @param beforePosition 涔嬪墠鐨勪綅缃�
-     * @param afterPosition  涔嬪悗鐨勪綅缃�
-     * @param formKey        琛ㄥ崟key
-     * @param sort           鎺掑簭鏁板��
-     */
-    public Boolean sortAllList(Long beforePosition, Long afterPosition, String formKey, Long sort) {
-        // 鍗冲皢娌℃湁鏁存暟锛屽埛鏂板叏閮ㄥ垪琛ㄦ帓搴忓��
-        if ((ObjectUtil.isNotNull(beforePosition) && 0L != beforePosition && ObjectUtil.equal(sort, beforePosition + 1))
-                || (ObjectUtil.isNotNull(afterPosition) && 0L != afterPosition && ObjectUtil.equal(sort, 1L))) {
-            List<UserFormItemEntity> itemEntityList = formItemService.list(Wrappers.<UserFormItemEntity>lambdaQuery().eq(UserFormItemEntity::getFormKey, formKey));
-            itemEntityList.sort(Comparator.comparing(UserFormItemEntity::getSort));
-            for (int i = 0; i < itemEntityList.size(); i++) {
-                itemEntityList.get(i).setSort(SORT_DEFAULT_INCR_FACT * (i + 1));
-            }
-            formItemService.updateBatchById(itemEntityList);
-            return true;
-        }
-        return false;
-    }
-
-}
+//package com.ltkj.tduck.utils;
+//
+//
+//import cn.hutool.core.util.ObjectUtil;
+//import cn.hutool.core.util.StrUtil;
+//import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+//import com.ltkj.tduck.constant.FormRedisKeyConstants;
+//import com.ltkj.tduck.domain.UserFormItemEntity;
+//import com.ltkj.tduck.service.UserFormItemService;
+//import lombok.RequiredArgsConstructor;
+//import org.springframework.stereotype.Component;
+//
+//import java.util.Comparator;
+//import java.util.List;
+//
+///**
+// * 涓や釜鍓嶆彁:浣嶇疆鐨勪俊鎭褰曞湪浠诲姟鐨勬ā鍨嬩笂(pos瀛楁);涓�鑸袱涓换鍔$殑pos鍊肩浉宸緢澶�(榛樿鏄�65536);鐜板湪鍋囪鏈変换鍔� A, B, C.
+// * 鍒椾妇鍑犱釜甯歌鐨勫満鏅�:濡傛灉C瑕佺Щ鍒癆鐨勫墠闈�, 閭d箞鍚庣浼氭妸 C.pos 鏀逛负 A.pos/2;鑻ユ灉C瑕佺Щ鍒癆鍜孊涔嬮棿,
+// * 閭d箞鍚庣浼氭妸 C.pos 鏀逛负 (A.pos + B.pos)/2;濡傛灉B瑕佺Щ鍒癈鐨勫悗闈�, 閭d箞鍚庣浼氭妸 B.pos 鏀逛负 C.pos + 65536;
+// * 褰撶劧杩欓噷浼氭湁涓瀬绔儏鍐甸渶瑕佸鐞�(鍋囪pos鏄暣鏁�):濡傛灉 A.pos 鏄� 1, B.pos 鏄� 2, C鎯崇Щ鍒癆鍜孊涔嬮棿, 鍏跺疄鏄病鏈変竴涓暣鏁板彲浠ョ敤鐨�,
+// * 閽堝杩欑鎯呭喌, 鍚庣浼氶噸鏂扮粰鏁翠釜鍒楄〃鐨勪换鍔¢噸鏂板埛涓�閬峱os鍊�.
+// * <p>
+// * 鎷栧姩鎺掑簭宸ュ叿绫�
+// * 绠楁硶鍙傝�� @link https://www.zhihu.com/question/55789722
+// *
+// * @author smalljop
+// */
+//@RequiredArgsConstructor
+//@Component
+//public class SortUtils {
+//
+//    private final CacheUtils cacheUtils;
+//
+//    /**
+//     * 鎺掑簭榛樿鑷鍥犲瓙
+//     */
+//    private final Long SORT_DEFAULT_INCR_FACT = 65536L;
+//
+//    private final UserFormItemService formItemService;
+//
+//
+//    /**
+//     * 鑾峰彇鎺掑簭鏁板��
+//     *
+//     * @param formKey 琛ㄥ崟key
+//     * @return 鍒濆鎺掑簭鏁板��
+//     */
+//    public Long getInitialSortPosition(String formKey) {
+//        String redisKey = StrUtil.format(FormRedisKeyConstants.FORM_ITEM_POS_DELTA, formKey);
+//        // 妯℃澘鍒涘缓鏃� 鍒濆鎺掑簭鏁板��
+//        if (StrUtil.isBlank(cacheUtils.get(redisKey))) {
+//            Long sort = formItemService.getLastItemSort(formKey);
+//            cacheUtils.save(redisKey, String.valueOf(sort == null ? 1 : sort));
+//        }
+//        return cacheUtils.incr(redisKey, SORT_DEFAULT_INCR_FACT.intValue());
+//    }
+//
+//
+//    /**
+//     * * 涓や釜鍓嶆彁:浣嶇疆鐨勪俊鎭褰曞湪浠诲姟鐨勬ā鍨嬩笂(pos瀛楁);涓�鑸袱涓换鍔$殑pos鍊肩浉宸緢澶�(榛樿鏄�65536);鐜板湪鍋囪鏈変换鍔� A, B, C.
+//     * * 鍒椾妇鍑犱釜甯歌鐨勫満鏅�:濡傛灉C瑕佺Щ鍒癆鐨勫墠闈�, 閭d箞鍚庣浼氭妸 C.pos 鏀逛负 A.pos/2;鑻ユ灉C瑕佺Щ鍒癆鍜孊涔嬮棿,
+//     * * 閭d箞鍚庣浼氭妸 C.pos 鏀逛负 (A.pos + B.pos)/2;濡傛灉B瑕佺Щ鍒癈鐨勫悗闈�, 閭d箞鍚庣浼氭妸 B.pos 鏀逛负 C.pos + 65536;
+//     * * 褰撶劧杩欓噷浼氭湁涓瀬绔儏鍐甸渶瑕佸鐞�(鍋囪pos鏄暣鏁�):濡傛灉 A.pos 鏄� 1, B.pos 鏄� 2, C鎯崇Щ鍒癆鍜孊涔嬮棿, 鍏跺疄鏄病鏈変竴涓暣鏁板彲浠ョ敤鐨�,
+//     * * 閽堝杩欑鎯呭喌, 鍚庣浼氶噸鏂扮粰鏁翠釜鍒楄〃鐨勪换鍔¢噸鏂板埛涓�閬峱os鍊�.
+//     * 鎺掑簭涔嬪悗閲嶆柊璁$畻
+//     *
+//     * @param beforePosition 涔嬪墠鐨勪綅缃�
+//     * @param afterPosition  涔嬪悗鐨勪綅缃�
+//     * @param formKey        琛ㄥ崟key
+//     * @return 鏈�缁堜綅缃�
+//     */
+//    public Long calcSortPosition(Long beforePosition, Long afterPosition, String formKey) {
+//        String redisKey = StrUtil.format(FormRedisKeyConstants.FORM_ITEM_POS_DELTA, formKey);
+//        boolean isCenter = (ObjectUtil.isNotNull(beforePosition) && 0L != beforePosition) && (ObjectUtil.isNotNull(afterPosition) && 0L != afterPosition);
+//        if (isCenter) { // 鏀惧埌涓棿
+//            return (beforePosition + afterPosition) / 2;
+//        }
+//        if (ObjectUtil.isNull(beforePosition) || 0L == beforePosition) { // 鏀惧埌鏈�鍓嶉潰
+//            return afterPosition / 2;
+//        } else { // 鏀惧埌鏈�鍚庨潰
+//            return cacheUtils.incr(redisKey, SORT_DEFAULT_INCR_FACT.intValue());
+//        }
+//    }
+//
+//
+//    /**
+//     * 鏋佺鎯呭喌鍒锋柊鏁翠釜鍒楄〃
+//     *
+//     * @param beforePosition 涔嬪墠鐨勪綅缃�
+//     * @param afterPosition  涔嬪悗鐨勪綅缃�
+//     * @param formKey        琛ㄥ崟key
+//     * @param sort           鎺掑簭鏁板��
+//     */
+//    public Boolean sortAllList(Long beforePosition, Long afterPosition, String formKey, Long sort) {
+//        // 鍗冲皢娌℃湁鏁存暟锛屽埛鏂板叏閮ㄥ垪琛ㄦ帓搴忓��
+//        if ((ObjectUtil.isNotNull(beforePosition) && 0L != beforePosition && ObjectUtil.equal(sort, beforePosition + 1))
+//                || (ObjectUtil.isNotNull(afterPosition) && 0L != afterPosition && ObjectUtil.equal(sort, 1L))) {
+//            List<UserFormItemEntity> itemEntityList = formItemService.list(Wrappers.<UserFormItemEntity>lambdaQuery().eq(UserFormItemEntity::getFormKey, formKey));
+//            itemEntityList.sort(Comparator.comparing(UserFormItemEntity::getSort));
+//            for (int i = 0; i < itemEntityList.size(); i++) {
+//                itemEntityList.get(i).setSort(SORT_DEFAULT_INCR_FACT * (i + 1));
+//            }
+//            formItemService.updateBatchById(itemEntityList);
+//            return true;
+//        }
+//        return false;
+//    }
+//
+//}

--
Gitblit v1.8.0