From 8cbd0dd038f2eb5309f7181728bd44bade762e93 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Thu, 21 Apr 2022 10:50:21 +0800 Subject: [PATCH 1/6] sql --- .../db/migration/V0.0.17__edit_building_and_house.sql | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 epmet-module/gov-org/gov-org-server/src/main/resources/db/migration/V0.0.17__edit_building_and_house.sql diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/db/migration/V0.0.17__edit_building_and_house.sql b/epmet-module/gov-org/gov-org-server/src/main/resources/db/migration/V0.0.17__edit_building_and_house.sql new file mode 100644 index 0000000000..a737175597 --- /dev/null +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/db/migration/V0.0.17__edit_building_and_house.sql @@ -0,0 +1,3 @@ +alter table ic_building add COLUMN BUILDING_LEADER_NAME VARCHAR(11) comment '楼长姓名' AFTER TOTAL_HOUSE_NUM; +alter table ic_building add COLUMN BUILDING_LEADER_MOBILE VARCHAR(11) comment '楼长电话' AFTER BUILDING_LEADER_NAME; +alter table ic_house add COLUMN SORT INT(11) comment '排序' DEFAULT 0 AFTER DOOR_NAME; \ No newline at end of file From 6de1e21fb942f07e944056234664e3177aabdb2d Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Thu, 21 Apr 2022 11:05:09 +0800 Subject: [PATCH 2/6] =?UTF-8?q?building=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/epmet/dto/IcBuildingDTO.java | 10 ++++++++++ .../src/main/java/com/epmet/dto/IcHouseDTO.java | 5 +++++ .../java/com/epmet/dto/form/IcBulidingAddFormDTO.java | 10 ++++++++++ .../com/epmet/dto/result/IcBuildingListResultDTO.java | 10 ++++++++++ .../java/com/epmet/controller/BuildingController.java | 1 - .../main/java/com/epmet/entity/IcBuildingEntity.java | 10 ++++++++++ .../src/main/java/com/epmet/entity/IcHouseEntity.java | 5 +++++ .../com/epmet/service/impl/BuildingServiceImpl.java | 3 --- .../src/main/resources/mapper/IcBuildingDao.xml | 4 +++- 9 files changed, 53 insertions(+), 5 deletions(-) diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/IcBuildingDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/IcBuildingDTO.java index 4d9aa11d17..2bb91a53ec 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/IcBuildingDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/IcBuildingDTO.java @@ -85,6 +85,16 @@ public class IcBuildingDTO implements Serializable { */ private Integer totalHouseNum; + /** + * 楼长姓名 + */ + private String buildingLeaderName; + + /** + * 楼长电话 + */ + private String buildingLeaderMobile; + /** * 中心点位:经度 */ diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/IcHouseDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/IcHouseDTO.java index 2bec463b9b..b2ccb2c1d2 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/IcHouseDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/IcHouseDTO.java @@ -73,6 +73,11 @@ public class IcHouseDTO implements Serializable { */ private String doorName; + /** + * 排序 + */ + private Integer sort; + /** * 房屋类型,这里存储字典value就可以 */ diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/IcBulidingAddFormDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/IcBulidingAddFormDTO.java index e476297ec6..0039390e15 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/IcBulidingAddFormDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/IcBulidingAddFormDTO.java @@ -123,6 +123,16 @@ public class IcBulidingAddFormDTO implements Serializable { private String latitude; + /** + * 楼长姓名 + */ + private String buildingLeaderName; + + /** + * 楼长电话 + */ + private String buildingLeaderMobile; + diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/IcBuildingListResultDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/IcBuildingListResultDTO.java index c33d50956a..550938c23e 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/IcBuildingListResultDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/IcBuildingListResultDTO.java @@ -41,4 +41,14 @@ public class IcBuildingListResultDTO extends PageFormDTO { private Integer totalUnitNum; private String longitude; private String buildingType; + + /** + * 楼长姓名 + */ + private String buildingLeaderName; + + /** + * 楼长电话 + */ + private String buildingLeaderMobile; } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/BuildingController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/BuildingController.java index 80bf38f375..9185571640 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/BuildingController.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/BuildingController.java @@ -96,7 +96,6 @@ public class BuildingController { //效验数据 ValidatorUtils.validateEntity(formDTO, IcBulidingAddFormDTO.UpdateShowGroup.class); String customerId = tokenDTO.getCustomerId(); -// String customerId = "123123"; buildingService.updateBuilding(customerId,formDTO); return new Result().ok("修改成功"); } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/IcBuildingEntity.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/IcBuildingEntity.java index b4d4811caa..98b4d54012 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/IcBuildingEntity.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/IcBuildingEntity.java @@ -80,6 +80,16 @@ public class IcBuildingEntity extends BaseEpmetEntity { */ private Integer totalHouseNum; + /** + * 楼长姓名 + */ + private String buildingLeaderName; + + /** + * 楼长电话 + */ + private String buildingLeaderMobile; + /** * 中心点位:经度 */ diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/IcHouseEntity.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/IcHouseEntity.java index 4861c69271..96ddb46fc6 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/IcHouseEntity.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/IcHouseEntity.java @@ -73,6 +73,11 @@ public class IcHouseEntity extends BaseEpmetEntity { */ private String doorName; + /** + * 排序 + */ + private Integer sort; + /** * 房屋类型,这里存储字典value就可以 */ diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/BuildingServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/BuildingServiceImpl.java index 20e1d2d4ef..1a3611f72c 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/BuildingServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/BuildingServiceImpl.java @@ -426,14 +426,11 @@ public class BuildingServiceImpl implements BuildingService { if (null != count && count > 0) { throw new RenException(EpmetErrorCode.BUILDING_NAME_EXITED.getCode(), EpmetErrorCode.BUILDING_NAME_EXITED.getMsg()); } - IcBuildingDTO icBuilding = icBuildingService.get(formDTO.getBuildingId()); - if (!icBuilding.getNeighborHoodId().equals(formDTO.getNeighborHoodId())) { //更新对应房屋小区id List icHouseEntities = icHouseDao.selectList(new QueryWrapper().lambda().eq(IcHouseEntity::getBuildingId, formDTO.getBuildingId())); if (!CollectionUtils.isEmpty(icHouseEntities)) { - // throw new RenException(EpmetErrorCode.ORG_EDIT_FAILED.getCode(), "楼栋单元下存在房屋,无法更新"); } } diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcBuildingDao.xml b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcBuildingDao.xml index 14a71d2e13..59ac9f2b24 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcBuildingDao.xml +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcBuildingDao.xml @@ -82,7 +82,9 @@ a.LONGITUDE as longitude, a.LATITUDE as latitude, a.TYPE as buildingTypeKey, - (SELECT COUNT(1) FROM ic_house WHERE DEL_FLAG = '0' AND BUILDING_ID = a.ID) AS realTotalHouseNum + (SELECT COUNT(1) FROM ic_house WHERE DEL_FLAG = '0' AND BUILDING_ID = a.ID) AS realTotalHouseNum, + a.BUILDING_LEADER_NAME, + a.BUILDING_LEADER_MOBILE from ic_building a LEFT JOIN ic_neighbor_hood b on a.NEIGHBOR_HOOD_ID = b.ID and b.DEL_FLAG='0' left join customer_agency c on b.AGENCY_ID = c.ID and c.DEL_FLAG='0' From 383e832219111c6bd63d44b2f09e03c2a180a68a Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Thu, 21 Apr 2022 11:15:16 +0800 Subject: [PATCH 3/6] =?UTF-8?q?build=E5=AF=BC=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/epmet/dto/ImportGeneralDTO.java | 10 ++++++++++ .../com/epmet/model/BuildingInfoModel.java | 6 ++++++ .../impl/IcNeighborHoodServiceImpl.java | 2 ++ .../resources/excel/building_template.xlsx | Bin 12352 -> 11331 bytes 4 files changed, 18 insertions(+) diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/ImportGeneralDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/ImportGeneralDTO.java index c18766b89e..ae31756ed4 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/ImportGeneralDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/ImportGeneralDTO.java @@ -45,6 +45,16 @@ public class ImportGeneralDTO implements Serializable { private String buildingName; private String buildingId; + /** + * 楼长姓名 + */ + private String buildingLeaderName; + + /** + * 楼长电话 + */ + private String buildingLeaderMobile; + /** * 房屋类型 */ diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/BuildingInfoModel.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/BuildingInfoModel.java index dac7c09015..81495c3da6 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/BuildingInfoModel.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/BuildingInfoModel.java @@ -36,6 +36,12 @@ public class BuildingInfoModel { @ExcelProperty(value = "户数") private Integer totalHouseNum; + @ExcelProperty(value = "楼长姓名") + private String buildingLeaderName; + + @ExcelProperty(value = "楼长电话") + private String buildingLeaderMobile; + @ExcelIgnore private Integer num; diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcNeighborHoodServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcNeighborHoodServiceImpl.java index 8d8e78e5fc..8d94428f70 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcNeighborHoodServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcNeighborHoodServiceImpl.java @@ -601,6 +601,8 @@ public class IcNeighborHoodServiceImpl extends BaseServiceImpl NumConstant.ZERO) { //设置楼宇单元 diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/excel/building_template.xlsx b/epmet-module/gov-org/gov-org-server/src/main/resources/excel/building_template.xlsx index cffd4abd6996b7481af66336670bc5dd44629a6a..1a9b2d2d25fd5fb3c88b62b1ca0daedf93caf788 100644 GIT binary patch literal 11331 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 S6dMd1EE7~pj-Yz<{(k@?`z!ze literal 12352 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 F{|`=*`z-(f From 86354d5dd62cf0bb9fdf4234eaebdf987e42c870 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Thu, 21 Apr 2022 13:50:10 +0800 Subject: [PATCH 4/6] =?UTF-8?q?ic=5Fform=5Fquery=5Fbuilder=E6=96=B0?= =?UTF-8?q?=E5=A2=9Eitem=5Ftype,label,fun=5Ftype?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../db/migration/V0.0.21__addcol_item_build.sql | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 epmet-module/oper-customize/oper-customize-server/src/main/resources/db/migration/V0.0.21__addcol_item_build.sql diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/resources/db/migration/V0.0.21__addcol_item_build.sql b/epmet-module/oper-customize/oper-customize-server/src/main/resources/db/migration/V0.0.21__addcol_item_build.sql new file mode 100644 index 0000000000..94ef459adf --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-server/src/main/resources/db/migration/V0.0.21__addcol_item_build.sql @@ -0,0 +1,13 @@ +alter table ic_form_query_builder add COLUMN ITEM_TYPE VARCHAR(32) NOT NULL COMMENT '组件类型' after FORM_CODE; +alter table ic_form_query_builder add COLUMN LABEL VARCHAR(32) NOT NULL COMMENT '项标签' after FORM_ITEM_ID; +alter table ic_form_query_builder add COLUMN FUN_TYPE VARCHAR(32) COMMENT '值转换类型' after QUERY_TYPE; + +update ic_form_query_builder set item_type=( +select i.ITEM_TYPE from ic_form_item i where i.id=FORM_ITEM_ID +and i.CUSTOMER_ID=CUSTOMER_ID +)where DEL_FLAG='0'; + +update ic_form_query_builder set LABEL=( +select i.LABEL from ic_form_item i where i.id=FORM_ITEM_ID +and i.CUSTOMER_ID=CUSTOMER_ID +)where DEL_FLAG='0'; \ No newline at end of file From d1ab33f12976c4ff461b5fbccfef6800d561b945 Mon Sep 17 00:00:00 2001 From: jianjun Date: Thu, 21 Apr 2022 14:10:37 +0800 Subject: [PATCH 5/6] =?UTF-8?q?=E8=87=AA=E5=AE=9A=E4=B9=89=E6=A8=A1?= =?UTF-8?q?=E6=9D=BF=E5=AF=BC=E5=87=BA=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/epmet/dto/IcExportTemplateDTO.java | 85 +++++++++++++++++++ .../IcExportTemplateController.java | 62 ++++++++++++++ .../epmet/dao/IcExportTemplateConfigDao.java | 16 ++++ .../com/epmet/dao/IcExportTemplateDao.java | 16 ++++ .../entity/IcExportTemplateConfigEntity.java | 56 ++++++++++++ .../epmet/entity/IcExportTemplateEntity.java | 54 ++++++++++++ .../service/IcExportTemplateService.java | 78 +++++++++++++++++ .../impl/IcExportTemplateServiceImpl.java | 83 ++++++++++++++++++ .../mapper/IcExportTemplateConfigDao.xml | 24 ++++++ .../resources/mapper/IcExportTemplateDao.xml | 23 +++++ 10 files changed, 497 insertions(+) create mode 100644 epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/IcExportTemplateDTO.java create mode 100644 epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcExportTemplateController.java create mode 100644 epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/IcExportTemplateConfigDao.java create mode 100644 epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/IcExportTemplateDao.java create mode 100644 epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/entity/IcExportTemplateConfigEntity.java create mode 100644 epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/entity/IcExportTemplateEntity.java create mode 100644 epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcExportTemplateService.java create mode 100644 epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcExportTemplateServiceImpl.java create mode 100644 epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcExportTemplateConfigDao.xml create mode 100644 epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcExportTemplateDao.xml diff --git a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/IcExportTemplateDTO.java b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/IcExportTemplateDTO.java new file mode 100644 index 0000000000..95805207fd --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/IcExportTemplateDTO.java @@ -0,0 +1,85 @@ +package com.epmet.dto; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + + +/** + * 自定义表单导出模板 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-04-21 + */ +@Data +public class IcExportTemplateDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + private String id; + + /** + * 客户id + */ + private String customerId; + + /** + * 表单CODE,从字典获取 + */ + private String formCode; + + /** + * 模板名称 + */ + private String name; + + /** + * 0:动态;1:文件 + */ + private Integer type; + + /** + * 文件地址;http开头或者项目组模板存放相对路径 + */ + private String url; + + /** + * 排序 + */ + private Integer sort; + + /** + * 0未删除,1已删除 + */ + private Integer delFlag; + + /** + * 乐观锁 + */ + private Integer revision; + + /** + * 创建人 + */ + private String createdBy; + + /** + * 创建时间 + */ + private Date createdTime; + + /** + * 更新人 + */ + private String updatedBy; + + /** + * 更新时间 + */ + private Date updatedTime; + +} diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcExportTemplateController.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcExportTemplateController.java new file mode 100644 index 0000000000..64ea75254e --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcExportTemplateController.java @@ -0,0 +1,62 @@ +package com.epmet.controller; + +import com.epmet.commons.tools.aop.NoRepeatSubmit; +import com.epmet.commons.tools.page.PageData; +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.dto.IcExportTemplateDTO; +import com.epmet.service.IcExportTemplateService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.Map; + + +/** + * 自定义表单导出模板 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-04-21 + */ +@RestController +@RequestMapping("icExportTemplate") +public class IcExportTemplateController { + + @Autowired + private IcExportTemplateService icExportTemplateService; + + @RequestMapping("page") + public Result> page(@RequestParam Map params){ + PageData page = icExportTemplateService.page(params); + return new Result>().ok(page); + } + + @RequestMapping(value = "{id}",method = {RequestMethod.POST,RequestMethod.GET}) + public Result get(@PathVariable("id") String id){ + IcExportTemplateDTO data = icExportTemplateService.get(id); + return new Result().ok(data); + } + + @NoRepeatSubmit + @PostMapping("save") + public Result save(@RequestBody IcExportTemplateDTO dto){ + //效验数据 + ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class); + icExportTemplateService.save(dto); + return new Result(); + } + + + @PostMapping("delete") + public Result delete(@RequestBody String[] ids){ + //效验数据 + AssertUtils.isArrayEmpty(ids, "id"); + icExportTemplateService.delete(ids); + return new Result(); + } + + +} diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/IcExportTemplateConfigDao.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/IcExportTemplateConfigDao.java new file mode 100644 index 0000000000..baaec72abd --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/IcExportTemplateConfigDao.java @@ -0,0 +1,16 @@ +package com.epmet.dao; + +import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.entity.IcExportTemplateConfigEntity; +import org.apache.ibatis.annotations.Mapper; + +/** + * 自定义表单导出模板配置项 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-04-21 + */ +@Mapper +public interface IcExportTemplateConfigDao extends BaseDao { + +} \ No newline at end of file diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/IcExportTemplateDao.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/IcExportTemplateDao.java new file mode 100644 index 0000000000..cfcad2875c --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/IcExportTemplateDao.java @@ -0,0 +1,16 @@ +package com.epmet.dao; + +import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.entity.IcExportTemplateEntity; +import org.apache.ibatis.annotations.Mapper; + +/** + * 自定义表单导出模板 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-04-21 + */ +@Mapper +public interface IcExportTemplateDao extends BaseDao { + +} \ No newline at end of file diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/entity/IcExportTemplateConfigEntity.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/entity/IcExportTemplateConfigEntity.java new file mode 100644 index 0000000000..d2f4dffe32 --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/entity/IcExportTemplateConfigEntity.java @@ -0,0 +1,56 @@ +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 2022-04-21 + */ +@Data +@EqualsAndHashCode(callSuper=false) +@TableName("ic_export_template_config") +public class IcExportTemplateConfigEntity extends BaseEpmetEntity { + + private static final long serialVersionUID = 1L; + + /** + * 客户id + */ + private String customerId; + + /** + * 模板主键id + */ + private String tempId; + + /** + * 父id + */ + private String pid; + + /** + * ic_form_item.id + */ + private String formItemId; + + /** + * 表头宽度 + */ + private Integer width; + + /** + * 项标签 + */ + private String label; + + /** + * 排序 + */ + private Integer sort; + +} diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/entity/IcExportTemplateEntity.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/entity/IcExportTemplateEntity.java new file mode 100644 index 0000000000..433f78b4aa --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/entity/IcExportTemplateEntity.java @@ -0,0 +1,54 @@ +package com.epmet.entity; + +import com.baomidou.mybatisplus.annotation.TableName; + +import com.epmet.commons.mybatis.entity.BaseEpmetEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.Date; + +/** + * 自定义表单导出模板 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-04-21 + */ +@Data +@EqualsAndHashCode(callSuper=false) +@TableName("ic_export_template") +public class IcExportTemplateEntity extends BaseEpmetEntity { + + private static final long serialVersionUID = 1L; + + /** + * 客户id + */ + private String customerId; + + /** + * 表单CODE,从字典获取 + */ + private String formCode; + + /** + * 模板名称 + */ + private String name; + + /** + * 0:动态;1:文件 + */ + private Integer type; + + /** + * 文件地址;http开头或者项目组模板存放相对路径 + */ + private String url; + + /** + * 排序 + */ + private Integer sort; + +} diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcExportTemplateService.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcExportTemplateService.java new file mode 100644 index 0000000000..8aeeaea6d2 --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcExportTemplateService.java @@ -0,0 +1,78 @@ +package com.epmet.service; + +import com.epmet.commons.mybatis.service.BaseService; +import com.epmet.commons.tools.page.PageData; +import com.epmet.dto.IcExportTemplateDTO; +import com.epmet.entity.IcExportTemplateEntity; + +import java.util.List; +import java.util.Map; + +/** + * 自定义表单导出模板 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-04-21 + */ +public interface IcExportTemplateService extends BaseService { + + /** + * 默认分页 + * + * @param params + * @return PageData + * @author generator + * @date 2022-04-21 + */ + PageData page(Map params); + + /** + * 默认查询 + * + * @param params + * @return java.util.List + * @author generator + * @date 2022-04-21 + */ + List list(Map params); + + /** + * 单条查询 + * + * @param id + * @return IcExportTemplateDTO + * @author generator + * @date 2022-04-21 + */ + IcExportTemplateDTO get(String id); + + /** + * 默认保存 + * + * @param dto + * @return void + * @author generator + * @date 2022-04-21 + */ + void save(IcExportTemplateDTO dto); + + /** + * 默认更新 + * + * @param dto + * @return void + * @author generator + * @date 2022-04-21 + */ + void update(IcExportTemplateDTO dto); + + /** + * 批量删除 + * + * @param ids + * @return void + * @author generator + * @date 2022-04-21 + */ + void delete(String[] ids); +} \ No newline at end of file diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcExportTemplateServiceImpl.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcExportTemplateServiceImpl.java new file mode 100644 index 0000000000..9e88bda150 --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcExportTemplateServiceImpl.java @@ -0,0 +1,83 @@ +package com.epmet.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; +import com.epmet.commons.tools.constant.FieldConstant; +import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.dao.IcExportTemplateDao; +import com.epmet.dto.IcExportTemplateDTO; +import com.epmet.entity.IcExportTemplateEntity; +import com.epmet.service.IcExportTemplateService; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Arrays; +import java.util.List; +import java.util.Map; + +/** + * 自定义表单导出模板 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-04-21 + */ +@Service +public class IcExportTemplateServiceImpl extends BaseServiceImpl implements IcExportTemplateService { + + + @Override + public PageData page(Map params) { + IPage page = baseDao.selectPage( + getPage(params, FieldConstant.CREATED_TIME, false), + getWrapper(params) + ); + return getPageData(page, IcExportTemplateDTO.class); + } + + @Override + public List list(Map params) { + List entityList = baseDao.selectList(getWrapper(params)); + + return ConvertUtils.sourceToTarget(entityList, IcExportTemplateDTO.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 IcExportTemplateDTO get(String id) { + IcExportTemplateEntity entity = baseDao.selectById(id); + return ConvertUtils.sourceToTarget(entity, IcExportTemplateDTO.class); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void save(IcExportTemplateDTO dto) { + IcExportTemplateEntity entity = ConvertUtils.sourceToTarget(dto, IcExportTemplateEntity.class); + insert(entity); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void update(IcExportTemplateDTO dto) { + IcExportTemplateEntity entity = ConvertUtils.sourceToTarget(dto, IcExportTemplateEntity.class); + updateById(entity); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void delete(String[] ids) { + // 逻辑删除(@TableLogic 注解) + baseDao.deleteBatchIds(Arrays.asList(ids)); + } + +} diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcExportTemplateConfigDao.xml b/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcExportTemplateConfigDao.xml new file mode 100644 index 0000000000..7d3e620e9d --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcExportTemplateConfigDao.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcExportTemplateDao.xml b/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcExportTemplateDao.xml new file mode 100644 index 0000000000..f94f6a62bf --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcExportTemplateDao.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From 612fcc050f05573760a7cdfa005cdbce766f77ba Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Thu, 21 Apr 2022 14:19:05 +0800 Subject: [PATCH 6/6] =?UTF-8?q?house=E5=AF=BC=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/epmet/dto/ImportGeneralDTO.java | 5 +++++ .../java/com/epmet/model/HouseInfoModel.java | 3 +++ .../epmet/model/ImportHouseInfoListener.java | 19 ++++++++++++++++++ .../main/resources/excel/house_template.xlsx | Bin 9581 -> 9649 bytes 4 files changed, 27 insertions(+) diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/ImportGeneralDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/ImportGeneralDTO.java index ae31756ed4..583a76ee91 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/ImportGeneralDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/ImportGeneralDTO.java @@ -162,4 +162,9 @@ public class ImportGeneralDTO implements Serializable { * 小区重复状态 */ private Boolean neighborHoodExistStatus = false; + + /** + * 排序 + */ + private Integer sort; } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/HouseInfoModel.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/HouseInfoModel.java index 740892f4cd..332fc6b6bb 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/HouseInfoModel.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/HouseInfoModel.java @@ -50,6 +50,9 @@ public class HouseInfoModel { @ExcelProperty(value = "房主身份证") private String ownerIdCard; + @ExcelProperty(value = "排序") + private Integer sort; + @ExcelIgnore private Integer num; diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/ImportHouseInfoListener.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/ImportHouseInfoListener.java index 08eb31a9cc..515e8127bc 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/ImportHouseInfoListener.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/ImportHouseInfoListener.java @@ -34,6 +34,8 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Map; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import java.util.stream.Collectors; import static com.epmet.constant.ImportErrorMsgConstants.*; @@ -152,6 +154,11 @@ public class ImportHouseInfoListener extends AnalysisEventListener0) { + Pattern pattern = Pattern.compile("[0-9]*"); + Matcher isNum = pattern.matcher(str); + if (!isNum.matches()) { + return false; + } + return true; + } + return false; + } + public void disposeErrorMsg(HouseInfoModel data,String msg){ HouseErrorInfoModel err = ConvertUtils.sourceToTarget(data, HouseErrorInfoModel.class); err.setErrorMsg(msg); diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/excel/house_template.xlsx b/epmet-module/gov-org/gov-org-server/src/main/resources/excel/house_template.xlsx index cf5681e1f4074e88e34c73d26e98414785921bc0..37c0cc1c02b9a740d5135585b1bff8f7ed773a72 100644 GIT binary patch delta 5666 zcmZ9Qbx@qmvWHompdq-+5(qBA9fAc7?vUVai_43{;>+S1oP^*G!QFzhSg-^OZb5?F zeD|DNr|y}mnLm2EW~TaA-8KCjy{%QQNdcj0+}T8H!81WLz~tM0Zi2y+&=U=J7dYgJ zuH-0mG|!me3(J}eZ@ZD>Y|@+dKhJ17{4Wki^ay|RsH}WnmV3UFoaqvDF_Glc^a}fg zykUebla7MmXUNag;cZsw=A~6h*}PhnXS&*igbiq6*8BTP<2wCpxQI5*k4|`l9$-6$ zD#C^)T{$w!P9QQlv-?#s8z-9y??Ikl1o4kVM>HX@WsGu-3ip^R%B7C_8~@@BaZU04 zLNv^Tf?&d8{tR@YCtHranfs+FUG!1jW}|Jdl>4LzB2Pk}=nn(yY4>-E zz^_zif_*e5E6YdzS5>Nt+lv0)yVQ5T&xq zMSZK;&?c04VVumL{CdS_|Wnk<(uywX2bfL_?ib+@sHGO zqa>EMxjV=zJYvWrLTK;$ZQhZU?TNmfp5Msl?3v$Ys#<*@Gu4pM*Pe4wA;qSe&H%qR zNp+kUrBnI5CrAmAnA?uO#ely@HNvZI?&S+aMM6r(MnWP(f{Qaz00X*4E|hXaK?+-v zU*w6^tGp42{>7@SSjuLoHf%~leZk^{rCxMp$t~v;oxuqNrJL4V#vmxyd54XK3{7cx z_Y{XvdPKAFvS9Xq6~jP(Z|*-C;J+ifE^MpGaRkG9NSnW~8$F74))By7XvWYj;+{6>-H{f>4$;{rF9;IkJToCp{8dYG$^3 zdkAUd)UU;*U6}($-uv}%v$lnOieGx>7=t`9pV|zA7#Uv$qEIu~StXICLuV z-~^~cFbEDZCdp$wrbqkp4c?x4lryzVw)48UDI}Jc6y+=cWfpECx})zR_3=m?0#A5_ ze$%z+jFzwB^vO;5v23aq2p&*B<1Jsc3x!bbeKs&+rK^dGHcG*{=X>IZ>ZM~brh%!4 z`De88^n}f{x&<qLf8 z5V!mhgKy5jY(fKNx%p4Fl3wjrd--)+oZD!863n9|!eN~Y;^MPT%Q>c4%Uo`K?Hqc6 zSiVKnPX4IRS#nunf)wSLXI~vq%$#{yOoI&r&D?jxM;1+fmP58|{kDeLnKSdoU|6a| zn!IcSuTK5w4gH9$%g?CNS`0`7K1!>~5_CrC3}x~I^_b-KDOaC)!9&6$rZ-sF$vtaiU<_OOP&u1eUOM}8F*g#x{yl2SecR4tzU-XT|DEmUB5P! zn|ORi0;6;Bb8DHo0USk{`4XJrPhUhVJ(CUREy+LW?4XCrWEBsnluN)tO2ZP_Af-Kt zbdVAzAej$RVp*q<)yB<|mx*`yG0)cnCag~aDOsZ9eJln?ys@rQARqt=4e5Kf2gwL| zInpL%YPGAhUqDD0wQs)^&E7{$VAxa@T0}Z|w<)Ep?AgW{wxGlZVDmle`qeqZzUCcb zie(zdW#>K{h7$YEi~*N#5Q7h=-QnH!O2CvC(9vnk(3$8z-MSOzW{S!AVQ{Y>eInb_ z^Z7NoKsN2_zQ^t6-ct7TLv!oKiDX~?AFiRDM#1LrQC!2%%;rG1wb!=JpJ_Zq&L zLC9I%;oWEvw|tI2(9c_vkhMOQ!flIm_g?Ty`5!y69=#Z~@1OarPGKDP04vH@^kVhW z{T<1_)rkTw#fVz3gvE#s-0gRfeSU_7w4i~6g!{MN`#5rWKztpoJUD%v9OsRlTvir{ zA0^D6LNsauF|A{Z%SlVq>h%ReK;H@I$TiFrAZBz`QKdK`} zTWCD3!;fwD?4y9F-q|n=JkE91c$_eu#6oVjbPM;$qQNn{c^-MdMUDr)FIS`6gXsXTO(IY1f+;42i9XygGsqSK{p^!gUI%2ifb73xh0T?ng#{ zny6X1!v*d2e)pYj7&eOhI$G&Fw*4+yBYtDOfzjuTNgLMjYmcs`{oy$wMVpR^4(0rN z#2ITg<(iKzZXaw0xEL~BtRlNilIgsarp2Qmj)+@0`(r*zz1=QJ`)AX^EYMeG%~+=@ z;AE88(?sWlrCO=;Vc+oX+A@Xz-2Fj>=I0;pl(+m%iGrm94&!mZD@NnmDqyX`LkOFp zbkXczpYD}=CLqj>28;~MwM19kcPT>7{4vKngWcEqNuIccKwN^ObKIKtv6sn4enQVN zp3}Ln``x#(-NdQdwID$<5MtPlABDPta5IzsbwJz6T?iraix8HZ=yd+_n4jFfjN7t9 z7h#s-i*suOSGN5(j;ig$d1M)PIePpM@NC8Ea(SumJvVP=miyN3si|9AXvcT2fx4_4 zu5<@s;)GdZph;WDiDOQd-dX4^vN8#kpfqKaP5%R$1H2X-ljB*`TFFT?Ok~AhVa-n& zTdYKw0P|LSKVg{FOG4qB`C6%G=1}SxJJA@CRT|nT$!Kz1x53Ri14{Z2=>sP;ga7ETGpI3iUet7z`+rH7m)(<>dDn`&@L z%MEEozI(?kPr8YOg-IJ4p!}^uKYiZL%PZ{*o4s=j6>C}_tXlBbUNxCnYrv}})2WtY z$4s>Oolxs}D;u+Z&45o$_aoT{FkP7>HH#sDmG!JuzC_=wD9K%)RMhv)o$ymEM*u9S z%2yxygf?$nrJ#>BZaiTIecX{N69_QCCY@;ynu_9QWiq6h(Qb)m8WIpR_9y6-v)DL1 zDnd+2N~I?Sk=@Dq%zC%^cOpDDo%qwD&0t`5=N=K=cEaNyo-FRzRibzgwo4yl)M5bn zNiouuVAWwU;_2?_F=Oql@Ql99p>5lStRKIlm zYknpJp*o+{`5o&{Y)X%e>R6MUkoZKL?XTd>a+~&Jj@MRSc|Oj<-plX{QMtCGn3JLz zrpmXIOc}LgQg$$D;osJ@PJ8BxyV&~Id~w1kn3YxD5Wlg-Xo;c0OOBHBrw0n(d)l(y zxTPNVg!o?;ow*|L*uVZkHVR2}-h`$Ec0M=i#`}(QKXn}8BZ--1(-i`<{Uc=wZlKw2 zfT7f(`-_a)fnSReDYYn!8(`I{V|l;dtduTSenuT-+`6Uwn-9hs;`L{^0u`$oZ9crD z9IdQQePHKxI+tJTX?W~n%N}6*R_Og%MX_-Ika4+$Mw;g5$mus+esk zRD|T4{OgmH7mB#Y^Fzd1FS25FzC}|(YT9eROo3#0Ab!3mBv6glx`)YhFyW8Xrp(w$t-&X4_;R1hf7QFW}#~Dp#<#7uII~rO<4vZk$2Qq zs+j?2w@Z>I>cEq$nD5=q{SW-fpzBY_fz%;*0bA&weoWZZ7wst(Nqwg)qTAus+OUr5 zCxH@c)3_zVnbl!~ln{p9NmH>bF(D{_C<`+vKJ85r%u=wN(W?(U6tCI$=h4GoT|ruv zx4u)J29)3UD5?H(GKly!@L&#ZyKoP$>Eu#t-vx z?b=}I)41Ep6~iH3#AhJiIlSbmR-@HIee+A&g7G^`VUwhBI6jQrgE1IM^7qYad{l4I>jqk#IBM^Xc7a@H{!4Tq|d zA`(wGiO<5M!FcRuBbQ>gKksjj_B)t0F3V_v$6Qt-VXgG#3`L}@fZ$jS)M7~DVX1Iv z^^5`gFv?batx%uNIrFc{@&N|#VvrL1g|^_Dd@rPL!UD@09(8Rd0buf9+=pF%xbhLC zdXX{~_jvn(a~xdTJVmE#q_*7pr{v0*MLD3_-XI*I%szC|R15a)v!=#L!*nA!?wdbI5Hv z!Z;m|@za-vPHD<+d~?MD4H#H(Qr~HaL?GsfI3~q%MH6Sa4{lEsTxPpdWkK?(dSD{Fuq+-i0@c$V`j@?DJ7YGUI78wcYAF}b! zPuCW{z=#hx&5Wt_N)e%NbU;t0#!da`&(fL>1CRrQ(dFq2w0h&@y$P6Nf_-|(WM6~r z!J~2{&kE?cW@i_gYgnLed+v`e-wf{g>>bxtu>FOUwMeFus9;IKN~>>+hZ7>31O(G` zVN#jWg!0P_`mz`qg&CbKA2mnA&C@h+naIb!#4-T!%(Zq?(WyP)Bqufp3U(oD?>AW^ z9~hb^4%Mu-2T#QC9xj%6FG+65rc=}KAT z8rIC361BM_5x*)A6)ZQF-6Z%NNYm+@Wm-#xd_02c$5d_8_psWOIiF?LO3~$NT}JE7 zNeg`V)*ZRaCR81st>=H;?!CE#Z$|BZ=)H@`GwH1v#h2bj7xC>{zoLe$jTJc9(J63xzS{%jV4ce9gJtR4C@AM$Fkg&x&7&jXsXCw_|SIwF@@A($i4rnt_79w(quyZy2nB`oc|D8 zc5aQBJJ+&%N~yX*l<4&AF~9?x{pDr~_u6~VI@x>EQnNr7Fuea>DSf0$;WVz^&1uSx6ImTG&}h@YGU zd*6@wz0Nc=Pv{RCv^xEz1Iu6Jx(ZL$2cX74fj6-ghcmu#e{!nkOG;(X&AXdHE?xC z0b~RXyqboJO+y)kO!U9W^Div;-zoKPE1qCNF(Nq3^s`ii1|2_H(T#ShgJ%#=s%l`mgJCSby delta 5588 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