From 2bd6f8c263132f6f5acfc4f9dc9458a26e450767 Mon Sep 17 00:00:00 2001 From: jianjun Date: Thu, 25 Nov 2021 09:18:29 +0800 Subject: [PATCH 1/6] git-flow-plus --- git-flow-plus.config | 1 + 1 file changed, 1 insertion(+) create mode 100644 git-flow-plus.config diff --git a/git-flow-plus.config b/git-flow-plus.config new file mode 100644 index 0000000000..2658dce63a --- /dev/null +++ b/git-flow-plus.config @@ -0,0 +1 @@ +{"dingtalkToken":"","featurePrefix":"dev/","hotfixPrefix":"hotfix/","language":"CN","masterBranch":"dev","releaseBranch":"develop","releaseFinishIsDeleteFeature":false,"releaseFinishIsDeleteRelease":false,"tagPrefix":"","testBranch":"release_temp"} From 130b8664b88df0dfd7c46ad2bc88fdb120f4b48b Mon Sep 17 00:00:00 2001 From: jianjun Date: Thu, 25 Nov 2021 09:19:44 +0800 Subject: [PATCH 2/6] git-flow-plus --- git-flow-plus.config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/git-flow-plus.config b/git-flow-plus.config index 2658dce63a..8bb93b2cea 100644 --- a/git-flow-plus.config +++ b/git-flow-plus.config @@ -1 +1 @@ -{"dingtalkToken":"","featurePrefix":"dev/","hotfixPrefix":"hotfix/","language":"CN","masterBranch":"dev","releaseBranch":"develop","releaseFinishIsDeleteFeature":false,"releaseFinishIsDeleteRelease":false,"tagPrefix":"","testBranch":"release_temp"} +{"dingtalkToken":"","featurePrefix":"dev/","hotfixPrefix":"hotfix/","language":"CN","masterBranch":"dev","releaseBranch":"release_temp","releaseFinishIsDeleteFeature":false,"releaseFinishIsDeleteRelease":false,"tagPrefix":"","testBranch":"develop"} From 66e2b8181370cfa769a9cc4028664b7d190f51af Mon Sep 17 00:00:00 2001 From: jianjun Date: Thu, 25 Nov 2021 09:30:14 +0800 Subject: [PATCH 3/6] git-flow-plus3 --- git-flow-plus.config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/git-flow-plus.config b/git-flow-plus.config index 8bb93b2cea..0bf061e180 100644 --- a/git-flow-plus.config +++ b/git-flow-plus.config @@ -1 +1 @@ -{"dingtalkToken":"","featurePrefix":"dev/","hotfixPrefix":"hotfix/","language":"CN","masterBranch":"dev","releaseBranch":"release_temp","releaseFinishIsDeleteFeature":false,"releaseFinishIsDeleteRelease":false,"tagPrefix":"","testBranch":"develop"} +{"dingtalkToken":"","featurePrefix":"dev/","hotfixPrefix":"hotfix/","language":"CN","masterBranch":"master","releaseBranch":"release_temp","releaseFinishIsDeleteFeature":false,"releaseFinishIsDeleteRelease":false,"tagPrefix":"","testBranch":"develop"} From ab72e6e52f934985d10d426836403d9fa1cf4f28 Mon Sep 17 00:00:00 2001 From: jianjun Date: Thu, 25 Nov 2021 09:37:14 +0800 Subject: [PATCH 4/6] git-flow-plus3 --- git-flow-plus.config | 1 - 1 file changed, 1 deletion(-) delete mode 100644 git-flow-plus.config diff --git a/git-flow-plus.config b/git-flow-plus.config deleted file mode 100644 index 0bf061e180..0000000000 --- a/git-flow-plus.config +++ /dev/null @@ -1 +0,0 @@ -{"dingtalkToken":"","featurePrefix":"dev/","hotfixPrefix":"hotfix/","language":"CN","masterBranch":"master","releaseBranch":"release_temp","releaseFinishIsDeleteFeature":false,"releaseFinishIsDeleteRelease":false,"tagPrefix":"","testBranch":"develop"} From ad5f07fde5fa98d4d891eb77fc54895e123230e1 Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Thu, 25 Nov 2021 10:05:24 +0800 Subject: [PATCH 5/6] =?UTF-8?q?=E7=A4=BE=E4=BC=9A=E7=BB=84=E7=BB=87?= =?UTF-8?q?=E5=AF=BC=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/IcSocietyOrgController.java | 4 +-- .../java/com/epmet/dao/IcSocietyOrgDao.java | 7 ++++ .../service/impl/IcSocietyOrgServiceImpl.java | 35 ++++++++++++++++--- .../main/resources/mapper/IcSocietyOrgDao.xml | 22 ++++++++++++ .../epmet/feign/EpmetUserOpenFeignClient.java | 2 +- 5 files changed, 63 insertions(+), 7 deletions(-) diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcSocietyOrgController.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcSocietyOrgController.java index 3fe71d8b60..786fc77928 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcSocietyOrgController.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcSocietyOrgController.java @@ -139,7 +139,7 @@ public class IcSocietyOrgController { /** * @Author sun - * @Description 九小场所下组织列表导入---咱不能使用 程序未开发 + * @Description 九小场所下组织列表导入 **/ @PostMapping("import") public Result importExcel(@LoginUser TokenDto tokenDTO, @RequestParam("file") MultipartFile file) throws IOException, ParseException { @@ -151,7 +151,7 @@ public class IcSocietyOrgController { List numList = new ArrayList<>(); if (!CollectionUtils.isEmpty(failList)) { for (IcSocietyOrgExcel entity : failList) { - log.error("第{}行,{}", entity.getRowNum(), entity.getErrorMsg());//打印失败的行 和失败的信息 + log.warn("第{}行,{}", entity.getRowNum(), entity.getErrorMsg());//打印失败的行 和失败的信息 numList.add(entity.getRowNum()); } //return new Result().error(8001,failList.get(0).getErrorMsg()); diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcSocietyOrgDao.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcSocietyOrgDao.java index 2a435d7d9f..60f62e3a8d 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcSocietyOrgDao.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcSocietyOrgDao.java @@ -18,6 +18,7 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.IcSocietyOrgDTO; import com.epmet.dto.form.GetListSocietyOrgFormDTO; import com.epmet.dto.result.GetListSocietyOrgResultDTO; import com.epmet.dto.result.SocietyOrgListResultDTO; @@ -53,4 +54,10 @@ public interface IcSocietyOrgDao extends BaseDao { @Param("societyName")String societyName, @Param("customerId")String customerId, @Param("queryPurpose")String queryPurpose); + + /** + * @Author sun + * @Description 查询当前组织下的社会组织数据 + **/ + List getByAgencyId(@Param("agencyId") String agencyId); } \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcSocietyOrgServiceImpl.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcSocietyOrgServiceImpl.java index 4e37c4cd50..e9fc54a6f1 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcSocietyOrgServiceImpl.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcSocietyOrgServiceImpl.java @@ -27,6 +27,7 @@ import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.dao.IcSocietyOrgDao; import com.epmet.dto.CustomerStaffDTO; +import com.epmet.dto.IcSocietyOrgDTO; import com.epmet.dto.form.*; import com.epmet.dto.form.demand.ServiceQueryFormDTO; import com.epmet.dto.result.*; @@ -179,20 +180,36 @@ public class IcSocietyOrgServiceImpl extends BaseServiceImpl importExcel(String customerId, List list, String staffId, List numList) throws ParseException { - //1.数据校验 只允许导入当前组织下社会组织 CustomerStaffInfoCacheResult staffInfoCache = CustomerStaffRedis.getStaffInfo(customerId, staffId); + //查询当前组织下的社会组织数据 + List societyOrgList = baseDao.getByAgencyId(staffInfoCache.getAgencyId()); + //1.数据校验 只允许导入当前组织下社会组织且是当前组织下不存在的社会组织 //组织名称不一样的数据舍弃 Iterator iterator = list.iterator(); while (iterator.hasNext()) { IcSocietyOrgExcel obj = iterator.next(); if (!obj.getAgencyName().trim().equals(staffInfoCache.getAgencyName())) { numList.add(obj.getRowNum()); + log.warn(String.format("不是当前组织下可导入的数据,组织名称->%s,行号->%s", obj.getAgencyName(), obj.getRowNum())); iterator.remove(); + continue; } + societyOrgList.forEach(org -> { + if (obj.getSocietyName().equals(org.getSocietyName())) { + numList.add(obj.getRowNum()); + log.warn(String.format("当前组织下的社会组织已存在,社会组织名称->%s,行号->%s", obj.getSocietyName(), obj.getRowNum())); + iterator.remove(); + } + }); + } - if(CollectionUtils.isEmpty(list)){ + if (CollectionUtils.isEmpty(list)) { return numList; } @@ -205,12 +222,21 @@ public class IcSocietyOrgServiceImpl extends BaseServiceImpl iter = list.iterator(); + while (iter.hasNext()) { + IcSocietyOrgExcel obj = iter.next(); + numList.add(obj.getRowNum()); + iterator.remove(); + } + return numList; + } Map map = staffResult.getData().stream().collect(Collectors.toMap(CustomerStaffDTO::getRealName, CustomerStaffDTO::getUserId)); //3.遍历封装有效数据 List houseEntityList = new ArrayList<>(); Iterator iterator1 = list.iterator(); - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); while (iterator1.hasNext()) { IcSocietyOrgExcel icHouseExcel = iterator1.next(); IcSocietyOrgEntity entity = new IcSocietyOrgEntity(); @@ -223,9 +249,10 @@ public class IcSocietyOrgServiceImpl extends BaseServiceImpl%s,行号->%s", icHouseExcel.getAdminStaffName(), icHouseExcel.getRowNum())); iterator1.remove(); continue; } diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcSocietyOrgDao.xml b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcSocietyOrgDao.xml index 46f1475d7d..56daf5dc2b 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcSocietyOrgDao.xml +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcSocietyOrgDao.xml @@ -65,4 +65,26 @@ + + + \ No newline at end of file diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java index 6bf9a4466e..4e9b5f9d0e 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java @@ -658,6 +658,6 @@ public interface EpmetUserOpenFeignClient { * @Author sun * @Description 根据工作人员姓名批量查询基础信息数据 **/ - @GetMapping(value = "epmetuser/customerstaff/getbyrealnames") + @PostMapping(value = "epmetuser/customerstaff/getbyrealnames") Result> getByRealNames(@RequestBody GetByRealNamesFormDTO formDTO); } From e62829c4b639b6aea6a59dde881d20c402c4e8b6 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Thu, 25 Nov 2021 10:05:41 +0800 Subject: [PATCH 6/6] =?UTF-8?q?=E5=AF=BC=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tools/exception/EpmetErrorCode.java | 2 + .../AddCommunitySelfOrganizationFormDTO.java | 2 - .../EditCommunitySelfOrganizationFormDTO.java | 2 - ...IcCommunitySelfOrganizationController.java | 31 +++++-- .../dao/IcCommunitySelfOrganizationDao.java | 9 ++ .../ImportCommunitySelfOrganization.java | 40 +++++++++ .../ImportCommunitySelfOrganizationSon.java | 20 +++++ .../IcCommunitySelfOrganizationService.java | 13 +++ ...cCommunitySelfOrganizationServiceImpl.java | 83 +++++++++++++++++++ .../mapper/IcCommunitySelfOrganizationDao.xml | 13 +++ 10 files changed, 206 insertions(+), 9 deletions(-) create mode 100644 epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/excel/ImportCommunitySelfOrganization.java create mode 100644 epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/excel/ImportCommunitySelfOrganizationSon.java diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java index 075ee8d15c..a63db7b080 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java @@ -157,6 +157,8 @@ public enum EpmetErrorCode { EXISTS_SAME_PHONE_ERROR(8529, "%s存在重复"), + COMMUNITY_SELF_ORGANIZATION_LIST_REPART_ERROR(8530, "%s社区自组织名称已存在"), + // 该错误不会提示给前端,只是后端传输错误信息用。 ACCESS_SQL_FILTER_MISSION_ARGS(8701, "缺少生成权限过滤SQL所需参数"), OPER_ADD_CUSTOMER_ROOT_AGENCY_ERROR(8702, "添加客户根级组织失败"), diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/AddCommunitySelfOrganizationFormDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/AddCommunitySelfOrganizationFormDTO.java index a9e6cd450e..302f3d08a4 100644 --- a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/AddCommunitySelfOrganizationFormDTO.java +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/AddCommunitySelfOrganizationFormDTO.java @@ -59,13 +59,11 @@ public class AddCommunitySelfOrganizationFormDTO implements Serializable { /** * 经度 */ - @NotBlank(message = "longitude不能为空",groups = AddCommunitySelfOrganizationForm.class) private String longitude; /** * 纬度 */ - @NotBlank(message = "latitude不能为空",groups = AddCommunitySelfOrganizationForm.class) private String latitude; /** diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/EditCommunitySelfOrganizationFormDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/EditCommunitySelfOrganizationFormDTO.java index 588843ba92..cade96113f 100644 --- a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/EditCommunitySelfOrganizationFormDTO.java +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/EditCommunitySelfOrganizationFormDTO.java @@ -61,13 +61,11 @@ public class EditCommunitySelfOrganizationFormDTO implements Serializable { /** * 经度 */ - @NotBlank(message = "longitude不能为空",groups = EditCommunitySelfOrganizationForm.class) private String longitude; /** * 纬度 */ - @NotBlank(message = "latitude不能为空",groups = EditCommunitySelfOrganizationForm.class) private String latitude; /** diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcCommunitySelfOrganizationController.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcCommunitySelfOrganizationController.java index a772108b44..7578334f2c 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcCommunitySelfOrganizationController.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcCommunitySelfOrganizationController.java @@ -18,6 +18,7 @@ package com.epmet.controller; import com.epmet.commons.tools.annotation.LoginUser; +import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.ExcelUtils; @@ -28,18 +29,17 @@ 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.IcCommunitySelfOrganizationDTO; -import com.epmet.dto.form.AddCommunitySelfOrganizationFormDTO; -import com.epmet.dto.form.CommunitySelfOrganizationListFormDTO; -import com.epmet.dto.form.DelCommunitySelfOrganizationFormDTO; -import com.epmet.dto.form.EditCommunitySelfOrganizationFormDTO; +import com.epmet.dto.form.*; import com.epmet.dto.form.demand.ServiceQueryFormDTO; import com.epmet.dto.result.CommunitySelfOrganizationListResultDTO; import com.epmet.dto.result.demand.OptionDTO; import com.epmet.excel.ExportCommunitySelfOrganizationExcel; import com.epmet.excel.IcCommunitySelfOrganizationExcel; import com.epmet.service.IcCommunitySelfOrganizationService; +import org.apache.commons.io.FilenameUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; import java.util.List; @@ -115,7 +115,28 @@ public class IcCommunitySelfOrganizationController { ExcelUtils.exportExcelToTarget(response, null, resultDTO.getList(), ExportCommunitySelfOrganizationExcel.class); } - //@PostMapping("importcommunityselforganization") + /** + * @Description 导入 + * @param tokenDto + * @param response + * @param file + * @author zxc + * @date 2021/11/25 9:03 上午 + */ + @PostMapping("importcommunityselforganization") + public Result importCommunitySelfOrganization(@LoginUser TokenDto tokenDto, HttpServletResponse response, @RequestPart("file") MultipartFile file) throws Exception { + if (file.isEmpty()) { + throw new RenException("请上传文件"); + } + + // 校验文件类型 + String extension = FilenameUtils.getExtension(file.getOriginalFilename()); + if (!"xls".equals(extension) && !"xlsx".equals(extension)) { + throw new RenException("文件类型不匹配"); + } + icCommunitySelfOrganizationService.importCommunitySelfOrganization(tokenDto, response, file); + return new Result(); + } /** * @Description 添加社区自组织 diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcCommunitySelfOrganizationDao.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcCommunitySelfOrganizationDao.java index 3fee0e0a71..efc9881b2a 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcCommunitySelfOrganizationDao.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcCommunitySelfOrganizationDao.java @@ -55,4 +55,13 @@ public interface IcCommunitySelfOrganizationDao extends BaseDao selectListByAgencyId(@Param("customerId") String customerId, @Param("agencyIds") List agencyIds, @Param("orgName") String orgName); + + /** + * @Description 根据名字查询存在的自组织 + * @param names + * @author zxc + * @date 2021/11/25 9:07 上午 + */ + List selectOrgByOrgName(@Param("names")List names, @Param("customerId") String customerId); + } \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/excel/ImportCommunitySelfOrganization.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/excel/ImportCommunitySelfOrganization.java new file mode 100644 index 0000000000..2a9995be2a --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/excel/ImportCommunitySelfOrganization.java @@ -0,0 +1,40 @@ +package com.epmet.excel; + +import cn.afterturn.easypoi.excel.annotation.Excel; +import cn.afterturn.easypoi.excel.annotation.ExcelCollection; +import com.epmet.commons.tools.utils.ExcelVerifyInfo; +import lombok.Data; + +import java.util.Date; +import java.util.List; + +/** + * @Author zxc + * @DateTime 2021/11/24 4:34 下午 + * @DESC + */ +@Data +public class ImportCommunitySelfOrganization extends ExcelVerifyInfo { + + @Excel(name = "组织名称", needMerge = true) + private String organizationName; + + @Excel(name = "组织人数", needMerge = true) + private Integer organizationPersonCount; + + @Excel(name = "服务事项", needMerge = true) + private String serviceItem; + + @Excel(name = "负责人", needMerge = true) + private String principalName; + + @Excel(name = "联系电话", needMerge = true) + private String principalPhone; + + @Excel(name = "创建时间", needMerge = true) + private Date organizationCreatedTime; + + @ExcelCollection(name = "组织成员") + private List persons; + +} diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/excel/ImportCommunitySelfOrganizationSon.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/excel/ImportCommunitySelfOrganizationSon.java new file mode 100644 index 0000000000..7fb44af70e --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/excel/ImportCommunitySelfOrganizationSon.java @@ -0,0 +1,20 @@ +package com.epmet.excel; + +import cn.afterturn.easypoi.excel.annotation.Excel; +import lombok.Data; + +/** + * @Author zxc + * @DateTime 2021/11/24 4:46 下午 + * @DESC + */ +@Data +public class ImportCommunitySelfOrganizationSon { + + @Excel(name = "姓名") + private String personName; + + @Excel(name = "电话") + private String personPhone; + +} diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcCommunitySelfOrganizationService.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcCommunitySelfOrganizationService.java index d9b536b625..4445d2f82b 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcCommunitySelfOrganizationService.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcCommunitySelfOrganizationService.java @@ -29,7 +29,10 @@ import com.epmet.dto.form.demand.ServiceQueryFormDTO; import com.epmet.dto.result.CommunitySelfOrganizationListResultDTO; import com.epmet.dto.result.demand.OptionDTO; import com.epmet.entity.IcCommunitySelfOrganizationEntity; +import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; import java.util.List; import java.util.Map; @@ -145,4 +148,14 @@ public interface IcCommunitySelfOrganizationService extends BaseService queryServiceList(ServiceQueryFormDTO formDTO); + + /** + * @Description 导入 + * @param tokenDto + * @param response + * @param file + * @author zxc + * @date 2021/11/25 9:03 上午 + */ + void importCommunitySelfOrganization(TokenDto tokenDto, HttpServletResponse response, MultipartFile file) throws IOException; } \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcCommunitySelfOrganizationServiceImpl.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcCommunitySelfOrganizationServiceImpl.java index 0121cb1a5c..267ef87956 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcCommunitySelfOrganizationServiceImpl.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcCommunitySelfOrganizationServiceImpl.java @@ -1,5 +1,6 @@ package com.epmet.service.impl; +import cn.afterturn.easypoi.excel.entity.result.ExcelImportResult; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -18,6 +19,7 @@ import com.epmet.commons.tools.redis.common.bean.AgencyInfoCache; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.DateUtils; +import com.epmet.commons.tools.utils.ExcelPoiUtils; import com.epmet.constant.IcCommunitySelfOrganizationConstant; import com.epmet.dao.IcCommunitySelfOrganizationDao; import com.epmet.dto.IcCommunitySelfOrganizationDTO; @@ -31,6 +33,7 @@ import com.epmet.dto.result.CommunitySelfOrganizationListResultDTO; import com.epmet.dto.result.demand.OptionDTO; import com.epmet.entity.IcCommunitySelfOrganizationEntity; import com.epmet.entity.IcCommunitySelfOrganizationPersonnelEntity; +import com.epmet.excel.ImportCommunitySelfOrganization; import com.epmet.service.IcCommunitySelfOrganizationPersonnelService; import com.epmet.service.IcCommunitySelfOrganizationService; import com.epmet.service.IcUserDemandRecService; @@ -41,7 +44,10 @@ 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.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; import java.util.*; import java.util.concurrent.atomic.AtomicReference; import java.util.stream.Collectors; @@ -316,4 +322,81 @@ public class IcCommunitySelfOrganizationServiceImpl extends BaseServiceImpl testExcelImportResult = ExcelPoiUtils.importExcelMore(file, 0, 2, ImportCommunitySelfOrganization.class); + List list = testExcelImportResult.getList(); + if (CollectionUtils.isNotEmpty(list)){ + String customerId = tokenDto.getCustomerId(); + List existsNames = baseDao.selectOrgByOrgName(list.stream().map(m -> m.getOrganizationName()).collect(Collectors.toList()), customerId); + Map> groupByName = list.stream().collect(Collectors.groupingBy(ImportCommunitySelfOrganization::getOrganizationName)); + groupByName.forEach((k,v) -> { + if (v.size() > NumConstant.ONE){ + existsNames.add(k); + } + }); + List repeatName = existsNames.stream().distinct().collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(repeatName)){ + StringBuffer sb = new StringBuffer(); + repeatName.forEach(p -> { + sb.append(p).append(","); + }); + String copywriter = sb.toString().substring(NumConstant.ZERO, sb.length() - NumConstant.ONE); + EpmetErrorCode.COMMUNITY_SELF_ORGANIZATION_LIST_REPART_ERROR.setMsg(String.format(EpmetErrorCode.COMMUNITY_SELF_ORGANIZATION_LIST_REPART_ERROR.getMsg(),copywriter)); + throw new RenException(EpmetErrorCode.COMMUNITY_SELF_ORGANIZATION_LIST_REPART_ERROR.getCode()); + } + CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(customerId, tokenDto.getUserId()); + if (null == staffInfo){ + throw new RenException(String.format("查询人员{%s}信息失败",tokenDto.getUserId())); + } + AgencyInfoCache agencyInfo = CustomerOrgRedis.getAgencyInfo(staffInfo.getAgencyId()); + if (null == agencyInfo){ + throw new RenException(String.format("查询组织信息失败%s",staffInfo.getAgencyId())); + } + list.forEach(l -> { + IcCommunitySelfOrganizationEntity e = ConvertUtils.sourceToTarget(l, IcCommunitySelfOrganizationEntity.class); + e.setCustomerId(customerId); + e.setOrgId(staffInfo.getAgencyId()); + e.setOrgType(IcCommunitySelfOrganizationConstant.ORG_TYPE_AGENCY); + e.setPid(agencyInfo.getPid()); + e.setPids(agencyInfo.getPids()); + e.setOrganizationCreatedTime(l.getOrganizationCreatedTime()); + baseDao.insert(e); + if (CollectionUtils.isNotEmpty(l.getPersons())){ + List persons = ConvertUtils.sourceToTarget(l.getPersons(), IcCommunitySelfOrganizationPersonnelEntity.class); + Map> groupByPhone = persons.stream().collect(Collectors.groupingBy(IcCommunitySelfOrganizationPersonnelEntity::getPersonPhone)); + List phones = new ArrayList<>(); + groupByPhone.forEach((k,v) -> { + if (v.size() > NumConstant.ONE){ + phones.add(k); + } + }); + if (CollectionUtils.isNotEmpty(phones)){ + StringBuffer sb = new StringBuffer(); + phones.forEach(p -> { + sb.append(p).append(","); + }); + String copywriter = sb.toString().substring(NumConstant.ZERO, sb.length() - NumConstant.ONE); + EpmetErrorCode.EXISTS_SAME_PHONE_ERROR.setMsg(String.format(EpmetErrorCode.EXISTS_SAME_PHONE_ERROR.getMsg(),copywriter)); + throw new RenException(EpmetErrorCode.EXISTS_SAME_PHONE_ERROR.getCode()); + } + persons.forEach(p -> { + p.setCustomerId(customerId); + p.setOrgId(e.getId()); + }); + personnelService.insertBatch(persons); + } + }); + } + } + } \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcCommunitySelfOrganizationDao.xml b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcCommunitySelfOrganizationDao.xml index 9b7eeca58d..aff4bf4c67 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcCommunitySelfOrganizationDao.xml +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcCommunitySelfOrganizationDao.xml @@ -84,4 +84,17 @@ + + + \ No newline at end of file