From 3661de73e32b43f9b339a26cfb75dbc124b1c3b2 Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Thu, 28 Jul 2022 14:36:05 +0800 Subject: [PATCH] =?UTF-8?q?=E8=81=94=E5=BB=BA=E5=8D=95=E4=BD=8D=E3=80=81?= =?UTF-8?q?=E7=A4=BE=E4=BC=9A=E8=87=AA=E7=BB=84=E7=BB=87=E5=8F=96=E6=B6=88?= =?UTF-8?q?=E5=90=8C=E6=AD=A5=E6=93=8D=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet/dto/form/CheckStaffInfoFormDTO.java | 5 +- .../controller/DepartmentController.java | 21 +++++- .../com/epmet/service/DepartmentService.java | 4 +- .../service/impl/DepartmentServiceImpl.java | 68 +++++++++++++++++-- .../feign/GovProjectOpenFeignClient.java | 2 + .../GovProjectOpenFeignClientFallback.java | 5 ++ .../epmet/controller/ProjectController.java | 8 +++ .../com/epmet/service/ProjectService.java | 1 + .../service/impl/ProjectServiceImpl.java | 9 +++ .../resources/mapper/CustomerStaffDao.xml | 12 ++-- 10 files changed, 120 insertions(+), 15 deletions(-) diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/CheckStaffInfoFormDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/CheckStaffInfoFormDTO.java index 855755e1c1..b3fc9b036c 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/CheckStaffInfoFormDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/CheckStaffInfoFormDTO.java @@ -34,7 +34,7 @@ public class CheckStaffInfoFormDTO implements Serializable { /** * 联建单位、社会自组织Id */ - @NotBlank(message = "id不能为空", groups = CheckAdd.class) + @NotBlank(message = "id不能为空", groups = {CheckAdd.class, CheckEdit.class}) private String id; /** * 部门名称 @@ -55,7 +55,7 @@ public class CheckStaffInfoFormDTO implements Serializable { * 联建单位: party_unit * 社会自组织: community_org */ - @NotBlank(message = "部门类型不能为空", groups = CheckAdd.class) + @NotBlank(message = "部门类型不能为空", groups = {CheckAdd.class, CheckEdit.class}) private String deptType; /** * 部门Id [取消同步时必填] @@ -65,6 +65,7 @@ public class CheckStaffInfoFormDTO implements Serializable { /** * 部门下工作人员Id */ + @NotBlank(message = "工作人员Id不能为空", groups = CheckEdit.class) private String deptStaffId; //token中信息 diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/DepartmentController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/DepartmentController.java index 448181bf74..da70a814b7 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/DepartmentController.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/DepartmentController.java @@ -178,9 +178,24 @@ public class DepartmentController { * @Author sun * @Description 联建单位、社会自组织同步到通讯录操作 */ - @PostMapping("addoreditdeptorstaff") - public Result addOrEditDeptOrStaff(@RequestBody CheckStaffInfoFormDTO formDTO) { - return new Result().ok(departmentService.addOrEditDeptOrStaff(formDTO)); + @PostMapping("syncdept") + public Result syncDept(@LoginUser TokenDto tokenDTO, @RequestBody CheckStaffInfoFormDTO formDTO) { + ValidatorUtils.validateEntity(formDTO, CheckStaffInfoFormDTO.CheckAdd.class); + formDTO.setCustomerId(tokenDTO.getCustomerId()); + formDTO.setUserId(tokenDTO.getUserId()); + return new Result().ok(departmentService.syncDept(formDTO)); + } + + /** + * @Author sun + * @Description 联建单位、社会自组织取消同步 + */ + @PostMapping("notsyncdept") + public Result notSyncDept(@LoginUser TokenDto tokenDTO, @RequestBody CheckStaffInfoFormDTO formDTO) { + ValidatorUtils.validateEntity(formDTO, CheckStaffInfoFormDTO.CheckEdit.class); + formDTO.setCustomerId(tokenDTO.getCustomerId()); + formDTO.setUserId(tokenDTO.getUserId()); + return new Result().ok(departmentService.notSyncDept(formDTO)); } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/DepartmentService.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/DepartmentService.java index 020ef3551e..adcf468e9d 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/DepartmentService.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/DepartmentService.java @@ -104,5 +104,7 @@ public interface DepartmentService { CheckStaffInfoResultDTO checkStaffInfo(CheckStaffInfoFormDTO formDTO); - CheckStaffInfoResultDTO addOrEditDeptOrStaff(CheckStaffInfoFormDTO formDTO); + CheckStaffInfoResultDTO syncDept(CheckStaffInfoFormDTO formDTO); + + CheckStaffInfoResultDTO notSyncDept(CheckStaffInfoFormDTO formDTO); } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/DepartmentServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/DepartmentServiceImpl.java index 69f3ab9ae2..22fcda5a1e 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/DepartmentServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/DepartmentServiceImpl.java @@ -34,16 +34,14 @@ import com.epmet.dao.CustomerAgencyDao; import com.epmet.dao.CustomerDepartmentDao; import com.epmet.dao.CustomerStaffDepartmentDao; import com.epmet.dao.StaffOrgRelationDao; -import com.epmet.dto.CustomerDepartmentDTO; -import com.epmet.dto.CustomerIdDTO; -import com.epmet.dto.CustomerStaffDTO; -import com.epmet.dto.CustomerStaffDepartmentDTO; +import com.epmet.dto.*; import com.epmet.dto.form.*; import com.epmet.dto.result.*; import com.epmet.entity.*; import com.epmet.feign.EpmetHeartOpenFeignClient; import com.epmet.feign.EpmetUserFeignClient; import com.epmet.feign.EpmetUserOpenFeignClient; +import com.epmet.feign.GovProjectOpenFeignClient; import com.epmet.service.*; import com.epmet.util.ModuleConstant; import org.apache.commons.lang3.StringUtils; @@ -56,6 +54,7 @@ import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.RequestBody; import java.util.ArrayList; +import java.util.Date; import java.util.List; /** @@ -93,6 +92,8 @@ public class DepartmentServiceImpl implements DepartmentService { private StaffOrgRelationService staffOrgRelationService; @Autowired private EpmetHeartOpenFeignClient epmetHeartOpenFeignClient; + @Autowired + private GovProjectOpenFeignClient govProjectOpenFeignClient; /** * @param formDTO @@ -364,7 +365,8 @@ public class DepartmentServiceImpl implements DepartmentService { } @Override - public CheckStaffInfoResultDTO addOrEditDeptOrStaff(CheckStaffInfoFormDTO formDTO) { + @Transactional(rollbackFor = Exception.class) + public CheckStaffInfoResultDTO syncDept(CheckStaffInfoFormDTO formDTO) { CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(formDTO.getCustomerId(), formDTO.getUserId()); if (null == staffInfo) { throw new EpmetException(String.format("查询工作人员%s缓存信息失败...", formDTO.getUserId())); @@ -438,9 +440,11 @@ public class DepartmentServiceImpl implements DepartmentService { if(("agency".equals(resultDTO.getOrgType()))){ //一、更新人员基础数据[姓名 手机号信息] CustomerStaffDTO staffDTO = new CustomerStaffDTO(); + staffDTO.setCustomerId(formDTO.getCustomerId()); staffDTO.setUserId(resultDTO.getStaffId()); staffDTO.setRealName(formDTO.getPersonName()); staffDTO.setMobile(formDTO.getMobile()); + staffDTO.setUpdatedTime(new Date()); staffDTO.setUpdatedBy(resultDTO.getUserId()); Result result = epmetUserOpenFeignClient.editToStaff(staffDTO); if (!result.success()) { @@ -474,5 +478,59 @@ public class DepartmentServiceImpl implements DepartmentService { return resultDTO; } + @Override + @Transactional(rollbackFor = Exception.class) + public CheckStaffInfoResultDTO notSyncDept(CheckStaffInfoFormDTO formDTO) { + CheckStaffInfoResultDTO resultDTO = new CheckStaffInfoResultDTO(); + //1.校验当前部门下工作人员是否有代办项目 + ProjectListFromDTO project = new ProjectListFromDTO(); + project.setUserId(formDTO.getDeptStaffId()); + Result> projectResult = govProjectOpenFeignClient.staffPendingProject(project); + if (!projectResult.success()) { + throw new RenException("获取工作人员代办项目数据失败" + projectResult.getMsg()); + } + if(projectResult.getData().size()>NumConstant.ZERO){ + String msg = String.format("当前%s下负责人存在未办结的项目,请先将待处理项目办结后再操作",("party_unit".equals(formDTO.getDeptType())?"联建单位":"社会自组织")); + resultDTO.setMsg(msg); + } + //2.无代办项目的则删除部门、工作人员信息、修改联建单位/社会自组织业务数据 + //2-1.删除部门 + customerDepartmentDao.deleteById(formDTO.getId()); + //2-2.删除部门人员关系数据 + LambdaQueryWrapper query = new LambdaQueryWrapper<>(); + query.eq(CustomerStaffDepartmentEntity::getDepartmentId, formDTO.getDeptId()); + query.eq(CustomerStaffDepartmentEntity::getUserId, formDTO.getDeptStaffId()); + customerStaffDepartmentDao.delete(query); + //2-3.删除人员注册关系数据 + LambdaQueryWrapper StaffOrgRelation = new LambdaQueryWrapper<>(); + StaffOrgRelation.eq(StaffOrgRelationEntity::getOrgId, formDTO.getDeptId()); + StaffOrgRelation.eq(StaffOrgRelationEntity::getStaffId, formDTO.getDeptStaffId()); + staffOrgRelationDao.delete(StaffOrgRelation); + //2-4.删除工作人员数据 + CustomerStaffDTO staffDTO = new CustomerStaffDTO(); + staffDTO.setCustomerId(formDTO.getCustomerId()); + staffDTO.setUserId(formDTO.getDeptStaffId()); + staffDTO.setDelFlag(1); + staffDTO.setUpdatedTime(new Date()); + staffDTO.setUpdatedBy(formDTO.getUserId()); + Result result = epmetUserOpenFeignClient.editToStaff(staffDTO); + if (!result.success()) { + throw new RenException("更新工作人员基础信息失败" + result.getMsg()); + } + //2-5.修改联建单位/社会自组织业务数据 + resultDTO.setId(formDTO.getId()); + resultDTO.setDeptId(formDTO.getDeptId()); + resultDTO.setDeptType(formDTO.getDeptType()); + resultDTO.setDeptStaffId(formDTO.getDeptStaffId()); + resultDTO.setSyncType("not_sync"); + Result heartResult = epmetHeartOpenFeignClient.editPartyOrCommunity(resultDTO); + if (!heartResult.success()) { + throw new RenException("修改联建单位/社会自组织业务数据失败" + heartResult.getMsg()); + } + + resultDTO.setType(true); + return resultDTO; + } + } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/GovProjectOpenFeignClient.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/GovProjectOpenFeignClient.java index 1242d3064b..7907ac7ec5 100644 --- a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/GovProjectOpenFeignClient.java +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/GovProjectOpenFeignClient.java @@ -175,5 +175,7 @@ public interface GovProjectOpenFeignClient { @PostMapping("gov/project/icEvent/closeprojectordemand") Result closeProjectOrDemand(@RequestBody ColseProjectOrDemandFormDTO formDTO); + @PostMapping("gov/project/project/staffpendingproject") + Result> staffPendingProject(@RequestBody ProjectListFromDTO formDTO); } diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/fallback/GovProjectOpenFeignClientFallback.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/fallback/GovProjectOpenFeignClientFallback.java index 49a969f91e..51f7922ba5 100644 --- a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/fallback/GovProjectOpenFeignClientFallback.java +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/fallback/GovProjectOpenFeignClientFallback.java @@ -169,4 +169,9 @@ public class GovProjectOpenFeignClientFallback implements GovProjectOpenFeignCli public Result closeProjectOrDemand(ColseProjectOrDemandFormDTO formDTO) { return ModuleUtils.feignConError(ServiceConstant.GOV_PROJECT_SERVER, "closeProjectOrDemand",formDTO); } + + @Override + public Result> staffPendingProject(ProjectListFromDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.GOV_PROJECT_SERVER, "staffPendingProject",formDTO); + } } diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectController.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectController.java index 03bb218bd1..fb8bcad8fd 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectController.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectController.java @@ -379,4 +379,12 @@ public class ProjectController { ValidatorUtils.validateEntity(formDTO, SatisfactionEvaluationListFormDTO.SatisfactionEvaluationListForm.class); return new Result().ok(projectService.satisfactionEvaluationList(formDTO)); } + + /** + * Desc: 查询客户下工作人员是否有代办项目 + */ + @PostMapping("staffpendingproject") + public Result> staffPendingProject(@RequestBody ProjectListFromDTO fromDTO){ + return new Result>().ok(projectService.staffPendingProject(fromDTO)); + } } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectService.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectService.java index 82a88d3a5b..2e5fd4fd76 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectService.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectService.java @@ -395,4 +395,5 @@ public interface ProjectService extends BaseService { */ void projectListExport(HttpServletResponse response,ProjectManageListFormDTO formDTO) throws IOException; + List staffPendingProject(ProjectListFromDTO fromDTO); } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java index a9f4ca0093..7d26d3f9a0 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java @@ -3445,4 +3445,13 @@ public class ProjectServiceImpl extends BaseServiceImpl staffPendingProject(ProjectListFromDTO fromDTO) { + fromDTO.setPageNo(0); + fromDTO.setPageSize(1); + List projectList = baseDao.selectPendList(fromDTO); + return projectList; + } + } diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/CustomerStaffDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/CustomerStaffDao.xml index 919b69fe0b..62a9312c6d 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/CustomerStaffDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/CustomerStaffDao.xml @@ -458,12 +458,16 @@ UPDATE customer_staff - SET real_name = #{realName}, - mobile = #{mobile}, - updated_time = NOW(), - updated_by = #{updatedBy} + + real_name = #{realName}, + mobile = #{mobile}, + updated_by = #{updatedBy}, + updated_time = #{updatedTime}, + del_flag = #{delFlag} + WHERE del_flag = '0' + AND customer_id = #{customerId} AND user_id = #{userId}