From c3119499421306c2475138d003402f6510746ed2 Mon Sep 17 00:00:00 2001 From: jianjun Date: Wed, 8 Dec 2021 16:59:37 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E8=A1=A8=E5=8D=95=E5=88=9D=E5=A7=8B?= =?UTF-8?q?=E5=8C=96=E6=9A=82=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet/controller/IcFormController.java | 69 +++++------------ .../controller/IcFormItemController.java | 63 ++------------- .../com/epmet/service/IcFormItemService.java | 66 +--------------- .../java/com/epmet/service/IcFormService.java | 66 +--------------- .../service/impl/IcFormItemServiceImpl.java | 55 +------------- .../epmet/service/impl/IcFormServiceImpl.java | 76 ++++--------------- 6 files changed, 41 insertions(+), 354 deletions(-) diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcFormController.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcFormController.java index dee3afb8ec..d35993f13a 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcFormController.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcFormController.java @@ -18,28 +18,20 @@ package com.epmet.controller; import com.epmet.commons.tools.annotation.LoginUser; -import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.exception.EpmetErrorCode; +import com.epmet.commons.tools.exception.EpmetException; import com.epmet.commons.tools.security.dto.TokenDto; -import com.epmet.commons.tools.utils.ExcelUtils; import com.epmet.commons.tools.utils.Result; -import com.epmet.commons.tools.validator.AssertUtils; import com.epmet.commons.tools.validator.ValidatorUtils; -import com.epmet.commons.tools.validator.group.AddGroup; -import com.epmet.commons.tools.validator.group.DefaultGroup; -import com.epmet.commons.tools.validator.group.UpdateGroup; -import com.epmet.dto.IcFormDTO; import com.epmet.dto.form.CustomerFormQueryDTO; import com.epmet.dto.result.*; -import com.epmet.excel.IcFormExcel; import com.epmet.service.IcFormItemService; import com.epmet.service.IcFormService; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; -import javax.servlet.http.HttpServletResponse; import java.util.List; -import java.util.Map; import java.util.Set; @@ -58,49 +50,24 @@ public class IcFormController { @Autowired private IcFormItemService icFormItemService; - @GetMapping("page") - public Result> page(@RequestParam Map params){ - PageData page = icFormService.page(params); - return new Result>().ok(page); - } - - @GetMapping("{id}") - public Result get(@PathVariable("id") String id){ - IcFormDTO data = icFormService.get(id); - return new Result().ok(data); - } - - @PostMapping - public Result save(@RequestBody IcFormDTO dto){ - //效验数据 - ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class); - icFormService.save(dto); - return new Result(); - } - - @PutMapping - public Result update(@RequestBody IcFormDTO dto){ - //效验数据 - ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class); - icFormService.update(dto); - return new Result(); - } - - @DeleteMapping - public Result delete(@RequestBody String[] ids){ - //效验数据 - AssertUtils.isArrayEmpty(ids, "id"); - icFormService.delete(ids); - return new Result(); - } - - @GetMapping("export") - public void export(@RequestParam Map params, HttpServletResponse response) throws Exception { - List list = icFormService.list(params); - ExcelUtils.exportExcelToTarget(response, null, list, IcFormExcel.class); + /** + * desc: 初始化 客户表单配置 + * + * @param customerId + * @param formCode + * @return com.epmet.commons.tools.utils.Result + * @author LiuJanJun + * @date 2021/12/8 4:28 下午 + */ + @GetMapping("initCustomerForm/{formCode}") + public Result initCustomerFormByCode(@RequestParam String customerId, + @PathVariable(value = "formCode") String formCode){ + if (StringUtils.isBlank(customerId)){ + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),"参数错误"); + } + return new Result().ok(icFormService.initCustomerFormByCode(customerId,formCode)); } - /** * 获取居民信息表单 【dynamic=null】查询全部;否则查询对应的item * diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcFormItemController.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcFormItemController.java index 50f4d10ff9..1cfe0d4276 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcFormItemController.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcFormItemController.java @@ -17,25 +17,16 @@ package com.epmet.controller; -import com.epmet.commons.tools.page.PageData; -import com.epmet.commons.tools.utils.ExcelUtils; import com.epmet.commons.tools.utils.Result; -import com.epmet.commons.tools.validator.AssertUtils; -import com.epmet.commons.tools.validator.ValidatorUtils; -import com.epmet.commons.tools.validator.group.AddGroup; -import com.epmet.commons.tools.validator.group.UpdateGroup; -import com.epmet.commons.tools.validator.group.DefaultGroup; -import com.epmet.dto.IcFormItemDTO; import com.epmet.dto.result.ColumnTableNameResultDTO; -import com.epmet.dto.result.CustomerStaffRoleResultDTO; -import com.epmet.excel.IcFormItemExcel; import com.epmet.service.IcFormItemService; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; -import javax.servlet.http.HttpServletResponse; import java.util.List; -import java.util.Map; /** @@ -47,52 +38,10 @@ import java.util.Map; @RestController @RequestMapping("icformitem") public class IcFormItemController { - + @Autowired private IcFormItemService icFormItemService; - @GetMapping("page") - public Result> page(@RequestParam Map params){ - PageData page = icFormItemService.page(params); - return new Result>().ok(page); - } - - @GetMapping("{id}") - public Result get(@PathVariable("id") String id){ - IcFormItemDTO data = icFormItemService.get(id); - return new Result().ok(data); - } - - @PostMapping - public Result save(@RequestBody IcFormItemDTO dto){ - //效验数据 - ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class); - icFormItemService.save(dto); - return new Result(); - } - - @PutMapping - public Result update(@RequestBody IcFormItemDTO dto){ - //效验数据 - ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class); - icFormItemService.update(dto); - return new Result(); - } - - @DeleteMapping - public Result delete(@RequestBody String[] ids){ - //效验数据 - AssertUtils.isArrayEmpty(ids, "id"); - icFormItemService.delete(ids); - return new Result(); - } - - @GetMapping("export") - public void export(@RequestParam Map params, HttpServletResponse response) throws Exception { - List list = icFormItemService.list(params); - ExcelUtils.exportExcelToTarget(response, null, list, IcFormItemExcel.class); - } - /** * @Author sun * @Description 居民信息新增查询各表必填字段 @@ -102,4 +51,4 @@ public class IcFormItemController { return new Result>().ok(icFormItemService.getMustColumn(customerId)); } -} \ No newline at end of file +} diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcFormItemService.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcFormItemService.java index 32480613c2..575e31d6b1 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcFormItemService.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcFormItemService.java @@ -18,8 +18,6 @@ package com.epmet.service; import com.epmet.commons.mybatis.service.BaseService; -import com.epmet.commons.tools.page.PageData; -import com.epmet.dto.IcFormItemDTO; import com.epmet.dto.form.CustomerFormQueryDTO; import com.epmet.dto.result.ColumnTableNameResultDTO; import com.epmet.dto.result.ConditionResultDTO; @@ -28,7 +26,6 @@ import com.epmet.dto.result.TableHeaderResultDTO; import com.epmet.entity.IcFormItemEntity; import java.util.List; -import java.util.Map; import java.util.Set; /** @@ -38,67 +35,6 @@ import java.util.Set; * @since v1.0.0 2021-10-26 */ public interface IcFormItemService extends BaseService { - - /** - * 默认分页 - * - * @param params - * @return PageData - * @author generator - * @date 2021-10-26 - */ - PageData page(Map params); - - /** - * 默认查询 - * - * @param params - * @return java.util.List - * @author generator - * @date 2021-10-26 - */ - List list(Map params); - - /** - * 单条查询 - * - * @param id - * @return IcFormItemDTO - * @author generator - * @date 2021-10-26 - */ - IcFormItemDTO get(String id); - - /** - * 默认保存 - * - * @param dto - * @return void - * @author generator - * @date 2021-10-26 - */ - void save(IcFormItemDTO dto); - - /** - * 默认更新 - * - * @param dto - * @return void - * @author generator - * @date 2021-10-26 - */ - void update(IcFormItemDTO dto); - - /** - * 批量删除 - * - * @param ids - * @return void - * @author generator - * @date 2021-10-26 - */ - void delete(String[] ids); - /** * 获取居民信息的查询条件,组件列表 * @@ -122,4 +58,4 @@ public interface IcFormItemService extends BaseService { * @Description 居民信息新增查询各表必填字段 **/ List getMustColumn(String customerId); -} \ No newline at end of file +} diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcFormService.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcFormService.java index c90e6227dc..fdceecbb51 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcFormService.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcFormService.java @@ -18,15 +18,12 @@ package com.epmet.service; import com.epmet.commons.mybatis.service.BaseService; -import com.epmet.commons.tools.page.PageData; -import com.epmet.dto.IcFormDTO; import com.epmet.dto.form.CustomerFormQueryDTO; import com.epmet.dto.result.CustomerFormResultDTO; import com.epmet.dto.result.FormItemResult; import com.epmet.entity.IcFormEntity; import java.util.List; -import java.util.Map; /** * 配置表单 @@ -35,67 +32,6 @@ import java.util.Map; * @since v1.0.0 2021-10-26 */ public interface IcFormService extends BaseService { - - /** - * 默认分页 - * - * @param params - * @return PageData - * @author generator - * @date 2021-10-26 - */ - PageData page(Map params); - - /** - * 默认查询 - * - * @param params - * @return java.util.List - * @author generator - * @date 2021-10-26 - */ - List list(Map params); - - /** - * 单条查询 - * - * @param id - * @return IcFormDTO - * @author generator - * @date 2021-10-26 - */ - IcFormDTO get(String id); - - /** - * 默认保存 - * - * @param dto - * @return void - * @author generator - * @date 2021-10-26 - */ - void save(IcFormDTO dto); - - /** - * 默认更新 - * - * @param dto - * @return void - * @author generator - * @date 2021-10-26 - */ - void update(IcFormDTO dto); - - /** - * 批量删除 - * - * @param ids - * @return void - * @author generator - * @date 2021-10-26 - */ - void delete(String[] ids); - /** * 获取居民信息表单 * @@ -116,4 +52,6 @@ public interface IcFormService extends BaseService { * @date 2021.10.27 17:41:59 */ List listItems(String customerId, String formCode); + + String initCustomerFormByCode(String customerId, String formCode); } diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcFormItemServiceImpl.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcFormItemServiceImpl.java index f614e64e0b..00c79db52c 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcFormItemServiceImpl.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcFormItemServiceImpl.java @@ -49,59 +49,6 @@ import java.util.*; @Service public class IcFormItemServiceImpl extends BaseServiceImpl implements IcFormItemService { - - @Override - public PageData page(Map params) { - IPage page = baseDao.selectPage( - getPage(params, FieldConstant.CREATED_TIME, false), - getWrapper(params) - ); - return getPageData(page, IcFormItemDTO.class); - } - - @Override - public List list(Map params) { - List entityList = baseDao.selectList(getWrapper(params)); - - return ConvertUtils.sourceToTarget(entityList, IcFormItemDTO.class); - } - - private QueryWrapper getWrapper(Map params){ - String id = (String)params.get(FieldConstant.ID_HUMP); - - QueryWrapper wrapper = new QueryWrapper<>(); - wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id); - - return wrapper; - } - - @Override - public IcFormItemDTO get(String id) { - IcFormItemEntity entity = baseDao.selectById(id); - return ConvertUtils.sourceToTarget(entity, IcFormItemDTO.class); - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void save(IcFormItemDTO dto) { - IcFormItemEntity entity = ConvertUtils.sourceToTarget(dto, IcFormItemEntity.class); - insert(entity); - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void update(IcFormItemDTO dto) { - IcFormItemEntity entity = ConvertUtils.sourceToTarget(dto, IcFormItemEntity.class); - updateById(entity); - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void delete(String[] ids) { - // 逻辑删除(@TableLogic 注解) - baseDao.deleteBatchIds(Arrays.asList(ids)); - } - /** * 获取居民信息的查询条件,组件列表 * @@ -171,4 +118,4 @@ public class IcFormItemServiceImpl extends BaseServiceImpl implements IcFormService { @Autowired - private CustomerFootBarRedis customerFootBarRedis; + private CustomerFootBarRedis customerFootBarRedis; @Autowired private RedisUtils redisUtils; - @Override - public PageData page(Map params) { - IPage page = baseDao.selectPage( - getPage(params, FieldConstant.CREATED_TIME, false), - getWrapper(params) - ); - return getPageData(page, IcFormDTO.class); - } - - @Override - public List list(Map params) { - List entityList = baseDao.selectList(getWrapper(params)); - - return ConvertUtils.sourceToTarget(entityList, IcFormDTO.class); - } - - private QueryWrapper getWrapper(Map params){ - String id = (String)params.get(FieldConstant.ID_HUMP); - - QueryWrapper wrapper = new QueryWrapper<>(); - wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id); - - return wrapper; - } - - @Override - public IcFormDTO get(String id) { - IcFormEntity entity = baseDao.selectById(id); - return ConvertUtils.sourceToTarget(entity, IcFormDTO.class); - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void save(IcFormDTO dto) { - IcFormEntity entity = ConvertUtils.sourceToTarget(dto, IcFormEntity.class); - insert(entity); - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void update(IcFormDTO dto) { - IcFormEntity entity = ConvertUtils.sourceToTarget(dto, IcFormEntity.class); - updateById(entity); - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void delete(String[] ids) { - // 逻辑删除(@TableLogic 注解) - baseDao.deleteBatchIds(Arrays.asList(ids)); - } - /** * 获取居民信息表单 * @@ -165,4 +103,16 @@ public class IcFormServiceImpl extends BaseServiceImpl return formItemResults; } + + @Override + public String initCustomerFormByCode(String customerId, String formCode) { + CustomerFormResultDTO formResultDTO = baseDao.selectByCode(customerId, formCode); + if (formResultDTO == null){ + return "该客户已经存在了表单的数据"; + } + CustomerFormResultDTO defaultIcForm = baseDao.selectByCode("default", formCode); + + + return null; + } } From befacc4eddd513b4d89f466a0215a392d8a72113 Mon Sep 17 00:00:00 2001 From: jianjun Date: Wed, 8 Dec 2021 22:27:37 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96=E5=AE=A2?= =?UTF-8?q?=E6=88=B7=E8=A1=A8=E5=8D=95=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet/controller/IcFormController.java | 4 +- .../com/epmet/dao/IcFormQueryBuilderDao.java | 33 +++++ .../entity/IcFormQueryBuilderEntity.java | 63 ++++++++ .../java/com/epmet/service/IcFormService.java | 2 +- .../epmet/service/impl/IcFormServiceImpl.java | 136 +++++++++++++++--- .../mapper/IcFormQueryBuilderDao.xml | 22 +++ 6 files changed, 239 insertions(+), 21 deletions(-) create mode 100644 epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/IcFormQueryBuilderDao.java create mode 100644 epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/entity/IcFormQueryBuilderEntity.java create mode 100644 epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcFormQueryBuilderDao.xml diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcFormController.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcFormController.java index d35993f13a..8466ceb6a6 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcFormController.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcFormController.java @@ -60,12 +60,12 @@ public class IcFormController { * @date 2021/12/8 4:28 下午 */ @GetMapping("initCustomerForm/{formCode}") - public Result initCustomerFormByCode(@RequestParam String customerId, + public Result initCustomerFormByCode(@RequestParam String customerId,@RequestParam String areaCode, @PathVariable(value = "formCode") String formCode){ if (StringUtils.isBlank(customerId)){ throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),"参数错误"); } - return new Result().ok(icFormService.initCustomerFormByCode(customerId,formCode)); + return new Result().ok(icFormService.initCustomerFormByCode(customerId, areaCode, formCode)); } /** diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/IcFormQueryBuilderDao.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/IcFormQueryBuilderDao.java new file mode 100644 index 0000000000..a142d8d637 --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/IcFormQueryBuilderDao.java @@ -0,0 +1,33 @@ +/** + * Copyright 2018 人人开源 https://www.renren.io + *

+ * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + *

+ * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.epmet.dao; + +import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.entity.IcFormQueryBuilderEntity; +import org.apache.ibatis.annotations.Mapper; + +/** + * 表单查询项 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2021-12-08 + */ +@Mapper +public interface IcFormQueryBuilderDao extends BaseDao { + +} \ No newline at end of file diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/entity/IcFormQueryBuilderEntity.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/entity/IcFormQueryBuilderEntity.java new file mode 100644 index 0000000000..f8255baa01 --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/entity/IcFormQueryBuilderEntity.java @@ -0,0 +1,63 @@ +/** + * Copyright 2018 人人开源 https://www.renren.io + *

+ * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + *

+ * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.epmet.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.epmet.commons.mybatis.entity.BaseEpmetEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 表单查询项 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2021-12-08 + */ +@Data +@EqualsAndHashCode(callSuper=false) +@TableName("ic_form_query_builder") +public class IcFormQueryBuilderEntity extends BaseEpmetEntity { + + private static final long serialVersionUID = 1L; + + /** + * 客户id + */ + private String customerId; + + /** + * ic_form_item.id + */ + private String formItemId; + + /** + * ic_form.form_code,举例:resi_base_info + */ + private String formCode; + + /** + * 查询类型: equal, like,daterange.... + */ + private String queryType; + + /** + * 排序 + */ + private Integer sort; + +} diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcFormService.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcFormService.java index fdceecbb51..7bbc7ca275 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcFormService.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcFormService.java @@ -53,5 +53,5 @@ public interface IcFormService extends BaseService { */ List listItems(String customerId, String formCode); - String initCustomerFormByCode(String customerId, String formCode); + String initCustomerFormByCode(String customerId, String areaCode, String formCode); } diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcFormServiceImpl.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcFormServiceImpl.java index 28edd796be..e9e2b3b1f4 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcFormServiceImpl.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcFormServiceImpl.java @@ -17,23 +17,33 @@ package com.epmet.service.impl; +import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; +import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.constant.StrConstant; import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.redis.RedisKeys; import com.epmet.commons.tools.redis.RedisUtils; -import com.epmet.dao.IcFormDao; +import com.epmet.commons.tools.utils.DateUtils; +import com.epmet.dao.*; import com.epmet.dto.form.CustomerFormQueryDTO; import com.epmet.dto.result.CustomerFormResultDTO; import com.epmet.dto.result.FormGroupDTO; import com.epmet.dto.result.FormItemResult; -import com.epmet.entity.IcFormEntity; +import com.epmet.entity.*; import com.epmet.redis.CustomerFootBarRedis; import com.epmet.service.IcFormService; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; +import java.util.Date; import java.util.List; /** @@ -42,13 +52,22 @@ import java.util.List; * @author generator generator@elink-cn.com * @since v1.0.0 2021-10-26 */ +@Slf4j @Service public class IcFormServiceImpl extends BaseServiceImpl implements IcFormService { - @Autowired - private CustomerFootBarRedis customerFootBarRedis; + @Autowired + private CustomerFootBarRedis customerFootBarRedis; - @Autowired - private RedisUtils redisUtils; + @Autowired + private RedisUtils redisUtils; + @Autowired + private IcFormItemDao icFormItemDao; + @Autowired + private IcFormItemOptionsDao icFormItemOptionsDao; + @Autowired + private IcFormItemGroupDao icFormItemGroupDao; + @Autowired + private IcFormQueryBuilderDao icFormQueryBuilderDao; /** * 获取居民信息表单 @@ -60,19 +79,19 @@ public class IcFormServiceImpl extends BaseServiceImpl */ @Override public CustomerFormResultDTO getCustomerForm(CustomerFormQueryDTO formDto) { - CustomerFormResultDTO customerFormResultDTO = customerFootBarRedis.getCustomerFormResultDTO(formDto.getFormCode(), formDto.getCustomerId(),formDto.getDynamic()); + CustomerFormResultDTO customerFormResultDTO = customerFootBarRedis.getCustomerFormResultDTO(formDto.getFormCode(), formDto.getCustomerId(), formDto.getDynamic()); if (null != customerFormResultDTO) { return customerFormResultDTO; } - CustomerFormResultDTO resultDTO=baseDao.selectByCode(formDto.getCustomerId(),formDto.getFormCode()); + CustomerFormResultDTO resultDTO = baseDao.selectByCode(formDto.getCustomerId(), formDto.getFormCode()); if (null == resultDTO) { - throw new RenException(EpmetErrorCode.CUSTOMER_FORM_NOT_EXITS.getCode(),EpmetErrorCode.CUSTOMER_FORM_NOT_EXITS.getMsg()); + throw new RenException(EpmetErrorCode.CUSTOMER_FORM_NOT_EXITS.getCode(), EpmetErrorCode.CUSTOMER_FORM_NOT_EXITS.getMsg()); } - List itemList=baseDao.selectItemList(resultDTO.getFormId(),formDto.getDynamic()); - List groupList=baseDao.selectListGroup(resultDTO.getFormId()); + List itemList = baseDao.selectItemList(resultDTO.getFormId(), formDto.getDynamic()); + List groupList = baseDao.selectListGroup(resultDTO.getFormId()); resultDTO.setItemList(itemList); resultDTO.setGroupList(groupList); - customerFootBarRedis.setCustomerFormResultDTO(formDto.getFormCode(),formDto.getCustomerId(),resultDTO,formDto.getDynamic()); + customerFootBarRedis.setCustomerFormResultDTO(formDto.getFormCode(), formDto.getCustomerId(), resultDTO, formDto.getDynamic()); return resultDTO; } @@ -88,9 +107,9 @@ public class IcFormServiceImpl extends BaseServiceImpl } // 从db取 - CustomerFormResultDTO formResultDto=baseDao.selectByCode(customerId, formCode); + CustomerFormResultDTO formResultDto = baseDao.selectByCode(customerId, formCode); if (null == formResultDto) { - throw new RenException(EpmetErrorCode.CUSTOMER_FORM_NOT_EXITS.getCode(),EpmetErrorCode.CUSTOMER_FORM_NOT_EXITS.getMsg()); + throw new RenException(EpmetErrorCode.CUSTOMER_FORM_NOT_EXITS.getCode(), EpmetErrorCode.CUSTOMER_FORM_NOT_EXITS.getMsg()); } List formItemResults = baseDao.listItems(formResultDto.getFormId()); @@ -104,15 +123,96 @@ public class IcFormServiceImpl extends BaseServiceImpl return formItemResults; } + @Transactional(rollbackFor = Exception.class) @Override - public String initCustomerFormByCode(String customerId, String formCode) { + public String initCustomerFormByCode(String customerId, String areaCode, String formCode) { CustomerFormResultDTO formResultDTO = baseDao.selectByCode(customerId, formCode); - if (formResultDTO == null){ + if (formResultDTO != null) { return "该客户已经存在了表单的数据"; } - CustomerFormResultDTO defaultIcForm = baseDao.selectByCode("default", formCode); + String defaultCustomerId = "default"; + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(IcFormEntity::getCustomerId, defaultCustomerId); + wrapper.eq(IcFormEntity::getFormCode, formCode); + IcFormEntity defaultIcForm = baseDao.selectOne(wrapper); + if (defaultIcForm == null) { + return "默认配置错误"; + } + + //统一前缀 + String newPrefixed = DateUtils.format(new Date(), DateUtils.DATE_TIME_NO_SPLIT) + StrConstant.UNDER_LINE; + String newFormId = newPrefixed + defaultIcForm.getId(); + defaultIcForm.setId(newFormId); + defaultIcForm.setAreaCode(areaCode); + + int insert = baseDao.insert(defaultIcForm); + log.info("insert icForm:" + insert); + + LambdaQueryWrapper wrapperItem = new LambdaQueryWrapper<>(); + wrapperItem.eq(IcFormItemEntity::getCustomerId, defaultCustomerId); + wrapperItem.eq(IcFormItemEntity::getFormCode, formCode); + List itemList = icFormItemDao.selectList(wrapperItem); + if (CollectionUtils.isEmpty(itemList)) { + return "默认配置错误"; + } + //设置item + itemList.forEach(item -> { + item.setId(newPrefixed + item.getId()); + item.setCustomerId(customerId); + item.setFormId(newFormId); + item.setAreaCode(areaCode); + item.setParentItemId(newPrefixed + item.getParentItemId()); + item.setItemGroupId(newPrefixed + item.getItemGroupId()); + String optionSourceValue = item.getOptionSourceValue(); + if (StringUtils.isNotBlank(optionSourceValue) && optionSourceValue.contains(StrConstant.QUESTION_MARK)){ + //多个参数 + String[] paramArr = optionSourceValue.split(StrConstant.QUESTION_MARK_TRANSFER)[NumConstant.ONE].split(StrConstant.AND_MARK); + for (String o : paramArr) { + optionSourceValue = optionSourceValue.replace(o, newPrefixed + o); + } + item.setOptionSourceValue(optionSourceValue); + } + log.debug("item:"+ JSON.toJSONString(item)); + icFormItemDao.insert(item); + }); + LambdaQueryWrapper wrapperOptions = new LambdaQueryWrapper<>(); + wrapperOptions.eq(IcFormItemOptionsEntity::getCustomerId, defaultCustomerId); + wrapperOptions.eq(IcFormItemOptionsEntity::getFormCode, formCode); + List optionsList = icFormItemOptionsDao.selectList(wrapperOptions); + optionsList.forEach(item -> { + item.setId(newPrefixed + item.getId()); + item.setCustomerId(customerId); + item.setFormId(newFormId); + item.setItemId(newPrefixed + item.getItemId()); + log.debug("option:"+ JSON.toJSONString(item)); + icFormItemOptionsDao.insert(item); + }); + + LambdaQueryWrapper wrapperGroup = new LambdaQueryWrapper<>(); + wrapperGroup.eq(IcFormItemGroupEntity::getCustomerId, defaultCustomerId); + wrapperGroup.eq(IcFormItemGroupEntity::getFormCode, formCode); + List groupList = icFormItemGroupDao.selectList(wrapperGroup); + groupList.forEach(item -> { + item.setId(newPrefixed + item.getId()); + item.setCustomerId(customerId); + item.setFormId(newFormId); + log.debug("group:"+ JSON.toJSONString(item)); + icFormItemGroupDao.insert(item); + }); + + LambdaQueryWrapper wrapperQuery = new LambdaQueryWrapper<>(); + wrapperQuery.eq(IcFormQueryBuilderEntity::getCustomerId, defaultCustomerId); + wrapperQuery.eq(IcFormQueryBuilderEntity::getFormCode, formCode); + List queryList = icFormQueryBuilderDao.selectList(wrapperQuery); + queryList.forEach(item -> { + item.setId(newPrefixed + item.getId()); + item.setCustomerId(customerId); + item.setFormItemId(newPrefixed + item.getFormItemId()); + log.debug("query:"+ JSON.toJSONString(item)); + icFormQueryBuilderDao.insert(item); + }); - return null; + return "初始化成功!客户ID:" + customerId + " formCode:" + formCode; } } diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcFormQueryBuilderDao.xml b/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcFormQueryBuilderDao.xml new file mode 100644 index 0000000000..62281279fa --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcFormQueryBuilderDao.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file