From a2399ec2ebe1255bad3335bc2fd2dd4f005edd53 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Thu, 23 Dec 2021 10:47:31 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8A=A0=E7=82=B9=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tools/exception/EpmetErrorCode.java | 6 +- .../dto/IcUserDemandSatisfactionDTO.java | 9 +- .../com/epmet/dto/IcUserDemandServiceDTO.java | 5 +- .../demand/ResiClientMyDemandFormDTO.java | 56 +++++ .../result/demand/DemandCategoryResDTO.java | 23 ++ .../dto/result/demand/DemandDataDTO.java | 3 + .../dto/result/demand/DemandDetailResDTO.java | 9 + .../dto/result/demand/DemandPageResDTO.java | 3 + .../demand/IcResiUserReportDemandRes.java | 4 + .../demand/ResiClientMyDemandResDTO.java | 74 ++++++ .../IcResiDemandDictController.java | 29 ++- .../controller/ResiDemandController.java | 19 +- .../com/epmet/dao/IcResiDemandDictDao.java | 17 ++ .../com/epmet/dao/IcUserDemandRecDao.java | 10 + .../IcUserDemandSatisfactionEntity.java | 4 + .../entity/IcUserDemandServiceEntity.java | 2 +- .../IcCommunitySelfOrganizationService.java | 2 + .../com/epmet/service/IcPartyUnitService.java | 2 + .../service/IcResiDemandDictService.java | 18 ++ .../epmet/service/IcSocietyOrgService.java | 1 + .../epmet/service/IcUserDemandRecService.java | 46 ++-- ...cCommunitySelfOrganizationServiceImpl.java | 5 + .../service/impl/IcPartyUnitServiceImpl.java | 5 + .../impl/IcResiDemandDictServiceImpl.java | 39 ++- .../service/impl/IcSocietyOrgServiceImpl.java | 5 + .../impl/IcUserDemandRecServiceImpl.java | 231 +++++++++++------- .../resources/mapper/IcResiDemandDictDao.xml | 52 ++++ .../resources/mapper/IcUserDemandRecDao.xml | 45 +++- 28 files changed, 586 insertions(+), 138 deletions(-) create mode 100644 epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/demand/ResiClientMyDemandFormDTO.java create mode 100644 epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/demand/DemandCategoryResDTO.java create mode 100644 epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/demand/ResiClientMyDemandResDTO.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 803b801402..fc74ea5977 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 @@ -85,16 +85,18 @@ public enum EpmetErrorCode { BUILDING_NAME_EXITED(8215,"楼栋名称已存在"), DOOR_NAME_EXITED(8216,"门牌号已存在"), NEIGHBOOR_NAME_EXITED(8217,"小区名称已存在"), + //需求相关的改用EpmetException DEMAND_NAME_EXITED(8218, "分类名称已存在"), - DEMAND_CAN_NOT_CANCEL(8219, "需求已完成,不可取消"), + DEMAND_CAN_NOT_CANCEL(8219, "当前状态,不可取消"), DEMAND_CAN_NOT_ASSIGN(8220, "当前状态,不可指派"), - DEMAND_CAN_NOT_FINISH(8221, "当前状态,不能评价"), + DEMAND_CAN_NOT_FINISH(8221, "当前状态,不能确认服务完成"), DEMAND_FINISHED(8222,"需求已完成"), DEMAND_CAN_NOT_UPDATE(8223,"当前状态,不可更新需求"), DEMAND_NOT_EXITS(8224,"需求不存在"), DEMAND_SERVICE_NOT_EXITS(8225,"服务记录不存在"), DEMAND_CAN_NOT_TAKE_ORDER(8226, "当前状态,不可接单"), DEMAND_CAN_NOT_EVALUATE(8227, "当前状态,不可评价"), + REQUIRE_PERMISSION(8301, "您没有足够的操作权限"), THIRD_PLAT_REQUEST_ERROR(8302, "请求第三方平台错误"), diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcUserDemandSatisfactionDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcUserDemandSatisfactionDTO.java index c28b702723..e1ec95519d 100644 --- a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcUserDemandSatisfactionDTO.java +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcUserDemandSatisfactionDTO.java @@ -17,11 +17,11 @@ package com.epmet.dto; -import java.io.Serializable; -import java.util.Date; import lombok.Data; +import java.io.Serializable; import java.math.BigDecimal; +import java.util.Date; /** * 居民需求评价记录表 @@ -69,6 +69,11 @@ public class IcUserDemandSatisfactionDTO implements Serializable { */ private BigDecimal score; + /** + * 评价时,填写的完成情况 + */ + private String remark; + /** * 删除标识:0.未删除 1.已删除 */ diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcUserDemandServiceDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcUserDemandServiceDTO.java index e3196e2b02..aa2218a8af 100644 --- a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcUserDemandServiceDTO.java +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcUserDemandServiceDTO.java @@ -17,9 +17,10 @@ package com.epmet.dto; +import lombok.Data; + import java.io.Serializable; import java.util.Date; -import lombok.Data; /** @@ -69,7 +70,7 @@ public class IcUserDemandServiceDTO implements Serializable { private Date serviceEndTime; /** - * 完成情况 + * 此列暂时没有用。完成情况在ic_user_demand_satisfaction.remark */ private String finishDesc; diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/demand/ResiClientMyDemandFormDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/demand/ResiClientMyDemandFormDTO.java new file mode 100644 index 0000000000..dad278f438 --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/demand/ResiClientMyDemandFormDTO.java @@ -0,0 +1,56 @@ +package com.epmet.dto.form.demand; + +import com.epmet.commons.tools.dto.form.PageFormDTO; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * 居民端-我的需求列表入参 + */ +@Data +public class ResiClientMyDemandFormDTO extends PageFormDTO implements Serializable { + /*List userIds=new ArrayList<>(); + userIds.add(formDTO.getIcResiUserId()); + if(CollectionUtils.isNotEmpty(formDTO.getEpmetUserIdList())){ + userIds.addAll(formDTO.getEpmetUserIdList()); + } + formDTO.setUserIds(userIds); + //2、小程序内自己上报+赋能平台待录入的 + PageInfo pageInfo = PageHelper.startPage(formDTO.getPageNo(), + formDTO.getPageSize()).doSelectPageInfo(() -> baseDao.selectUserDemand(formDTO)); + List list = pageInfo.getList(); + if (CollectionUtils.isNotEmpty(list)) { + // 1、状态字典 + Result> statusRes = adminOpenFeignClient.dictMap(DictTypeEnum.USER_DEMAND_STATUS.getCode()); + Map statusMap = statusRes.success() && MapUtils.isNotEmpty(statusRes.getData()) ? statusRes.getData() : new HashMap<>(); + //2、查询分类名称 + List categoryCodes = list.stream().map(IcResiUserReportDemandRes::getCategoryCode).collect(Collectors.toList()); + List dictList = demandDictService.listByCodes(formDTO.getCustomerId(), categoryCodes); + Map dictMap = dictList.stream().collect(Collectors.toMap(IcResiDemandDictEntity::getCategoryCode, IcResiDemandDictEntity::getCategoryName)); + + for (IcResiUserReportDemandRes resDto : list) { + resDto.setStatusName(statusMap.containsKey(resDto.getStatus()) ? statusMap.get(resDto.getStatus()) : StrConstant.EPMETY_STR); + if (null != dictMap && dictMap.containsKey(resDto.getCategoryCode())) { + resDto.setCategoryName(dictMap.get(resDto.getCategoryCode())); + } + resDto.setFirstCategoryName(demandDictService.getCategoryName(formDTO.getCustomerId(),resDto.getFirstCategoryCode())); + } + }*/ + public interface AddUserInternalGroup {} + @NotBlank(message = "gridId不能为空",groups = AddUserInternalGroup.class) + private String gridId; + + /** + * 待处理:unprocessed;处理中:processing;已完成:finished;已取消:canceled + */ + @NotBlank(message = "type不能为空,待处理:unprocessed;处理中:processing;已完成:finished;已取消:canceled",groups = AddUserInternalGroup.class) + private String type; + + @NotBlank(message = "userId不能为空",groups = AddUserInternalGroup.class) + private String userId; + + @NotBlank(message = "customerId不能为空",groups = AddUserInternalGroup.class) + private String customerId; +} diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/demand/DemandCategoryResDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/demand/DemandCategoryResDTO.java new file mode 100644 index 0000000000..c03c898eb6 --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/demand/DemandCategoryResDTO.java @@ -0,0 +1,23 @@ +package com.epmet.dto.result.demand; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + + +/** + * 1、居民端-我有需求,分类列表发布餐(可用) + * 2、居民端-我有需求,最近预约返参 + */ +@Data +public class DemandCategoryResDTO implements Serializable { + private String categoryId; + private String categoryCode; + private String parentCode; + private String categoryName; + @JsonIgnore + private String customerId; + private List children; +} diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/demand/DemandDataDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/demand/DemandDataDTO.java index f5ca265feb..5153d91eed 100644 --- a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/demand/DemandDataDTO.java +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/demand/DemandDataDTO.java @@ -5,6 +5,9 @@ import lombok.Data; import java.io.Serializable; import java.util.List; +/** + * 数据分析-个人档案-需求详情,研判分析的 分类,以及分类下的需求 + */ @Data public class DemandDataDTO implements Serializable { private String firstCategoryCode; diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/demand/DemandDetailResDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/demand/DemandDetailResDTO.java index 5a71625cac..96aab58234 100644 --- a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/demand/DemandDetailResDTO.java +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/demand/DemandDetailResDTO.java @@ -10,6 +10,7 @@ import java.util.Date; /** * 需求大厅-需求详情 + * 我的需求-需求详情 todo */ @Data public class DemandDetailResDTO implements Serializable { @@ -97,4 +98,12 @@ public class DemandDetailResDTO implements Serializable { * 服务记录主键 */ private String serviceId; + + // 以下几个返参在我的需求详情中返回: + private String serviceType; + private String serviceUserName; + private String serviceUserMobile; + private String serviceUnitName; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date cancelTime; } diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/demand/DemandPageResDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/demand/DemandPageResDTO.java index 5b2a12c529..4f39edf676 100644 --- a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/demand/DemandPageResDTO.java +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/demand/DemandPageResDTO.java @@ -6,6 +6,9 @@ import java.io.Serializable; import java.math.BigDecimal; import java.util.List; +/** + * 需求分类:列表返参 + */ @Data public class DemandPageResDTO implements Serializable { private String customerId; diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/demand/IcResiUserReportDemandRes.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/demand/IcResiUserReportDemandRes.java index 19757a671c..4dd722fb59 100644 --- a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/demand/IcResiUserReportDemandRes.java +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/demand/IcResiUserReportDemandRes.java @@ -7,6 +7,10 @@ import lombok.Data; import java.io.Serializable; import java.util.Date; +/** + * 数据分析-个人档案,居民需求列表table + * 数据分析-个人档案,需求详情,研判分析-需求列表 + */ @Data public class IcResiUserReportDemandRes implements Serializable { private static final long serialVersionUID = 7043350476644105434L; diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/demand/ResiClientMyDemandResDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/demand/ResiClientMyDemandResDTO.java new file mode 100644 index 0000000000..f606c04f5e --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/demand/ResiClientMyDemandResDTO.java @@ -0,0 +1,74 @@ +package com.epmet.dto.result.demand; + + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonIgnore; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + +/** + * 居民端-我的需求列表入参 + */ +@Data +public class ResiClientMyDemandResDTO implements Serializable { + private String demandRecId; + @JsonIgnore + private String categoryCode; + @JsonIgnore + private String parentCode; + /** + * 二级分类名称 + */ + private String categoryName; + + /** + * 服务要求-服务时间:yyyy-MM-dd HH:mm + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date wantServiceTime; + + /** + * 服务地点 + */ + private String serviceAddress; + /** + * 根据服务方类型找名字 + */ + //服务方类型:服务方类型:志愿者:volunteer;社会组织:social_org;社区自组织:community_org;区域党建单位:party_unit; + @JsonIgnore + private String serviceType; + @JsonIgnore + private String serverId; + + /** + * 服务方负责人姓名,如果是志愿者返回志愿者的姓名 + */ + private String serviceUserName; + /** + * 服务方负责人联系电话,如果是志愿者返回志愿者的注册手机号 + */ + private String serviceUserMobile; + /** + * 社会组织名 + * 社区自组织名 + * 区域党建单位名 + */ + private String serviceUnitName; + /** + * 1:已评价;0:未评价;评价后ic_user_satisfaction表有记录 + */ + private Boolean evaluateFlag; + /** + * 得分可为半星 + */ + private BigDecimal score; + /** + * 待处理:pending;已取消canceled;已派单:assigned;已接单:have_order;已完成:finished + */ + private String status; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date cancelTime; +} diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcResiDemandDictController.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcResiDemandDictController.java index 565a7a8423..b77618376b 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcResiDemandDictController.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcResiDemandDictController.java @@ -21,15 +21,19 @@ import com.epmet.commons.tools.annotation.LoginUser; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.dto.form.PageFormDTO; import com.epmet.commons.tools.dto.result.OptionResultDTO; +import com.epmet.commons.tools.exception.EpmetErrorCode; +import com.epmet.commons.tools.exception.EpmetException; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.AssertUtils; import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.dto.form.demand.*; +import com.epmet.dto.result.demand.DemandCategoryResDTO; import com.epmet.dto.result.demand.DemandPageResDTO; import com.epmet.dto.result.demand.OptionDTO; import com.epmet.service.IcResiDemandDictService; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -172,8 +176,31 @@ public class IcResiDemandDictController { return new Result>().ok(icResiDemandDictService.querySubCodeList(formDTO)); } + /** + * 居民端,我有需求,分类列表 + * 查询可用的需求 + * + * @param tokenDto + * @return + */ + @PostMapping("category-list") + public Result> queryCategoryList(@LoginUser TokenDto tokenDto){ + //测试EpmetEx + if(StringUtils.isNotBlank(tokenDto.getCustomerId())){ + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "internalMsg","用户看到的msg???"); + } + return new Result>().ok(icResiDemandDictService.queryCategoryList(tokenDto.getCustomerId())); + } - + /** + * 居民端,我有需求,最近预约,显示最近预约过的五个需求,按照预约时间倒 + * @param tokenDto + * @return + */ + @PostMapping("latest-order") + public Result> queryLatestOrder(@LoginUser TokenDto tokenDto){ + return new Result>().ok(icResiDemandDictService.queryLatestOrder(tokenDto.getUserId(),tokenDto.getCustomerId())); + } diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/ResiDemandController.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/ResiDemandController.java index 1e5dc8d033..9a2e1a896c 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/ResiDemandController.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/ResiDemandController.java @@ -12,10 +12,7 @@ import com.epmet.constant.SystemMessageType; import com.epmet.constant.UserDemandConstant; import com.epmet.dto.form.SystemMsgFormDTO; import com.epmet.dto.form.demand.*; -import com.epmet.dto.result.demand.DemandDetailResDTO; -import com.epmet.dto.result.demand.DemandHallResultDTO; -import com.epmet.dto.result.demand.FinishResultDTO; -import com.epmet.dto.result.demand.TakeOrderResultDTO; +import com.epmet.dto.result.demand.*; import com.epmet.feign.EpmetMessageOpenFeignClient; import com.epmet.service.IcUserDemandRecService; import lombok.extern.slf4j.Slf4j; @@ -151,6 +148,18 @@ public class ResiDemandController { return new Result(); } - + /** + * 居民端-我的需求(待处理,处理中,已完成,已取消) + * @param tokenDto + * @param formDTO + * @return + */ + @PostMapping("mydemand") + public Result> queryMyDemand(@LoginUser TokenDto tokenDto, @RequestBody ResiClientMyDemandFormDTO formDTO){ + formDTO.setUserId(tokenDto.getUserId()); + formDTO.setCustomerId(tokenDto.getCustomerId()); + ValidatorUtils.validateEntity(formDTO,PageFormDTO.AddUserInternalGroup.class,ResiClientMyDemandFormDTO.AddUserInternalGroup.class); + return new Result>().ok(icUserDemandRecService.queryMyDemandForResiClient(formDTO)); + } } diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcResiDemandDictDao.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcResiDemandDictDao.java index 8142b0c659..29bbd8454e 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcResiDemandDictDao.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcResiDemandDictDao.java @@ -19,6 +19,7 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.commons.tools.dto.result.OptionResultDTO; +import com.epmet.dto.result.demand.DemandCategoryResDTO; import com.epmet.dto.result.demand.DemandPageResDTO; import com.epmet.dto.result.demand.OptionDTO; import com.epmet.entity.IcResiDemandDictEntity; @@ -68,4 +69,20 @@ public interface IcResiDemandDictDao extends BaseDao { String selectNameByCode(@Param("customerId")String customerId, @Param("categoryCode") String categoryCode); IcResiDemandDictEntity selectByCode(@Param("customerId") String customerId, @Param("categoryCode") String categoryCode); + + /** + * 居民端-我有需求,分类列表 + * @param customerId + * @param parentCode + * @return + */ + List queryCategoryList(@Param("customerId") String customerId, @Param("parentCode")String parentCode); + + /** + * 查询分类信息,限制未被禁用的 + * @param customerId + * @param categoryCodes + * @return + */ + List selectListByCodes(@Param("customerId") String customerId, @Param("categoryCodes") List categoryCodes); } \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcUserDemandRecDao.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcUserDemandRecDao.java index c118a2d8b2..2ba049bd30 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcUserDemandRecDao.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcUserDemandRecDao.java @@ -99,4 +99,14 @@ public interface IcUserDemandRecDao extends BaseDao { List selectListDemandHall(@Param("gridId") String gridId, @Param("type") String type, @Param("currentUserId") String currentUserId); + /** + * 居民端-我的需求(待处理,处理中,已完成,已取消) + * + * @param gridId + * @param type 待处理:unprocessed;处理中:processing;已完成:finished;已取消:canceled + * @return demandUserId 需求人id + */ + List queryMyDemandForResiClient(@Param("gridId") String gridId, + @Param("type")String type, + @Param("demandUserId")String demandUserId); } \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/IcUserDemandSatisfactionEntity.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/IcUserDemandSatisfactionEntity.java index bae8aaaff0..ab17c5d738 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/IcUserDemandSatisfactionEntity.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/IcUserDemandSatisfactionEntity.java @@ -69,4 +69,8 @@ public class IcUserDemandSatisfactionEntity extends BaseEpmetEntity { */ private BigDecimal score; + /** + * 评价时,填写的完成情况 + */ + private String remark; } diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/IcUserDemandServiceEntity.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/IcUserDemandServiceEntity.java index b2b95ec5d4..2dd6b4ca04 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/IcUserDemandServiceEntity.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/IcUserDemandServiceEntity.java @@ -69,7 +69,7 @@ public class IcUserDemandServiceEntity extends BaseEpmetEntity { private Date serviceEndTime; /** - * 完成情况 + * 此列暂时没有用。完成情况在ic_user_demand_satisfaction.remark */ private String finishDesc; 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 4445d2f82b..9f8c8f4682 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 @@ -158,4 +158,6 @@ public interface IcCommunitySelfOrganizationService extends BaseService queryListById(List communityOrgIds); } \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcPartyUnitService.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcPartyUnitService.java index 490e19bee6..16a96f8194 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcPartyUnitService.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcPartyUnitService.java @@ -148,4 +148,6 @@ public interface IcPartyUnitService extends BaseService { * @param formDTO */ void calPartyUnitSatisfation(CalPartyUnitSatisfactionFormDTO formDTO); + + List queryListById(List partyUnitIds); } \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcResiDemandDictService.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcResiDemandDictService.java index 716956d292..b3adf2301c 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcResiDemandDictService.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcResiDemandDictService.java @@ -22,6 +22,7 @@ import com.epmet.commons.tools.dto.result.OptionResultDTO; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.utils.Result; import com.epmet.dto.form.demand.*; +import com.epmet.dto.result.demand.DemandCategoryResDTO; import com.epmet.dto.result.demand.DemandPageResDTO; import com.epmet.dto.result.demand.OptionDTO; import com.epmet.entity.IcResiDemandDictEntity; @@ -128,4 +129,21 @@ public interface IcResiDemandDictService extends BaseService queryCategoryList(String customerId); + + /** + * 居民端,我有需求,最近预约,显示最近预约过的五个需求,按照预约时间倒 + * @param userId + * @param customerId + * @return + */ + List queryLatestOrder(String userId, String customerId); } \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcSocietyOrgService.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcSocietyOrgService.java index f2646de029..0147c948f1 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcSocietyOrgService.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcSocietyOrgService.java @@ -75,4 +75,5 @@ public interface IcSocietyOrgService extends BaseService { **/ List importExcel(String customerId, List list, String staffId, List numList) throws ParseException; + List queryListById(List socialOrgIds); } \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcUserDemandRecService.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcUserDemandRecService.java index ffdf84580a..61132ea3eb 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcUserDemandRecService.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcUserDemandRecService.java @@ -25,7 +25,6 @@ import com.epmet.dto.result.demand.*; import com.epmet.entity.IcUserDemandRecEntity; import java.util.List; -import java.util.Map; /** * 居民需求记录表 @@ -35,25 +34,6 @@ import java.util.Map; */ public interface IcUserDemandRecService extends BaseService { - /** - * 默认分页 - * - * @param params - * @return PageData - * @author generator - * @date 2021-11-19 - */ - PageData page(Map params); - - /** - * 默认查询 - * - * @param params - * @return java.util.List - * @author generator - * @date 2021-11-19 - */ - List list(Map params); /** * 单条查询 @@ -65,16 +45,6 @@ public interface IcUserDemandRecService extends BaseService getLatestRegCode(String userId); + + /** + * 居民端-我的需求(待处理,处理中,已完成,已取消) + * @param formDTO + * @return + */ + List queryMyDemandForResiClient(ResiClientMyDemandFormDTO formDTO); } \ 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 cde9814019..5a5cd89fe0 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 @@ -399,4 +399,9 @@ public class IcCommunitySelfOrganizationServiceImpl extends BaseServiceImpl queryListById(List communityOrgIds) { + return baseDao.selectBatchIds(communityOrgIds); + } + } diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPartyUnitServiceImpl.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPartyUnitServiceImpl.java index ab96c7c68b..7f18773e78 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPartyUnitServiceImpl.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPartyUnitServiceImpl.java @@ -452,6 +452,11 @@ public class IcPartyUnitServiceImpl extends BaseServiceImpl queryListById(List partyUnitIds) { + return baseDao.selectBatchIds(partyUnitIds); + } + private String getServiceMatter(Map map, String matter) { List matters = Arrays.asList(matter.split(StrConstant.COLON)); List list = matters.stream().map(map::get).collect(Collectors.toList()); diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcResiDemandDictServiceImpl.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcResiDemandDictServiceImpl.java index 96ab55a472..e8ceed48a2 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcResiDemandDictServiceImpl.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcResiDemandDictServiceImpl.java @@ -29,22 +29,22 @@ import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.utils.Result; import com.epmet.dao.IcResiDemandDictDao; import com.epmet.dto.form.demand.*; +import com.epmet.dto.result.demand.DemandCategoryResDTO; import com.epmet.dto.result.demand.DemandPageResDTO; import com.epmet.dto.result.demand.OptionDTO; import com.epmet.entity.IcResiDemandDictEntity; import com.epmet.service.IcResiDemandDictService; +import com.epmet.service.IcUserDemandRecService; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; 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 java.util.Arrays; -import java.util.Collections; -import java.util.List; -import java.util.Map; +import java.util.*; /** * 居民需求字典表 @@ -55,6 +55,8 @@ import java.util.Map; @Slf4j @Service public class IcResiDemandDictServiceImpl extends BaseServiceImpl implements IcResiDemandDictService { + @Autowired + private IcUserDemandRecService icUserDemandRecService; /** * 分页查询 @@ -263,5 +265,34 @@ public class IcResiDemandDictServiceImpl extends BaseServiceImpl queryCategoryList(String customerId) { + return baseDao.queryCategoryList(customerId,NumConstant.ZERO_STR); + } + + /** + * 居民端,我有需求,最近预约,显示最近预约过的五个需求,按照预约时间倒 + * + * @param userId + * @param customerId + * @return + */ + @Override + public List queryLatestOrder(String userId, String customerId) { + List categoryCodes=icUserDemandRecService.getLatestRegCode(userId); + if(CollectionUtils.isNotEmpty(categoryCodes)){ + //限制未被禁用的 + return baseDao.selectListByCodes(customerId,categoryCodes); + } + return new ArrayList<>(); + } + } \ 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 e9fc54a6f1..5827a15107 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 @@ -268,4 +268,9 @@ public class IcSocietyOrgServiceImpl extends BaseServiceImpl queryListById(List socialOrgIds) { + return baseDao.selectBatchIds(socialOrgIds); + } + } \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcUserDemandRecServiceImpl.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcUserDemandRecServiceImpl.java index d16de90717..5856a47206 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcUserDemandRecServiceImpl.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcUserDemandRecServiceImpl.java @@ -19,9 +19,7 @@ package com.epmet.service.impl; import com.alibaba.fastjson.JSON; 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.constant.NumConstant; import com.epmet.commons.tools.constant.StrConstant; import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; @@ -49,9 +47,7 @@ import com.epmet.entity.*; import com.epmet.feign.EpmetAdminOpenFeignClient; import com.epmet.feign.EpmetUserOpenFeignClient; import com.epmet.feign.GovOrgOpenFeignClient; -import com.epmet.service.IcResiDemandDictService; -import com.epmet.service.IcUserDemandRecService; -import com.epmet.service.VolunteerInfoService; +import com.epmet.service.*; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import lombok.extern.slf4j.Slf4j; @@ -91,31 +87,12 @@ public class IcUserDemandRecServiceImpl extends BaseServiceImpl page(Map params) { - IPage page = baseDao.selectPage( - getPage(params, FieldConstant.CREATED_TIME, false), - getWrapper(params) - ); - return getPageData(page, IcUserDemandRecDTO.class); - } - - @Override - public List list(Map params) { - List entityList = baseDao.selectList(getWrapper(params)); - - return ConvertUtils.sourceToTarget(entityList, IcUserDemandRecDTO.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; - } + @Autowired + private IcPartyUnitService partyUnitService; + @Autowired + private IcSocietyOrgService societyOrgService; + @Autowired + private IcCommunitySelfOrganizationService communitySelfOrganizationService; @Override public IcUserDemandRecDTO get(String id) { @@ -123,13 +100,6 @@ public class IcUserDemandRecServiceImpl extends BaseServiceImpl getLatestRegCode(String userId) { + QueryWrapper queryWrapper=new QueryWrapper<>(); + queryWrapper.eq("DEMAND_USER_ID",userId); + queryWrapper.orderByDesc("WANT_SERVICE_TIME"); + queryWrapper.last("limit 5"); + queryWrapper.select("DISTINCT CATEGORY_CODE"); + return baseDao.selectList(queryWrapper).stream().map(o->o.toString()).collect(Collectors.toList()); + } + + /** + * 居民端-我的需求(待处理,处理中,已完成,已取消) + * 待处理:unprocessed;处理中:processing;已完成:finished;已取消:canceled + * + * @param formDTO + * @return + */ + @Override + public List queryMyDemandForResiClient(ResiClientMyDemandFormDTO formDTO) { + PageInfo result = PageHelper.startPage(formDTO.getPageNo(), + formDTO.getPageSize()).doSelectPageInfo(() -> baseDao.queryMyDemandForResiClient(formDTO.getGridId(), + formDTO.getType(), formDTO.getUserId())); + List list=result.getList(); + if (CollectionUtils.isNotEmpty(list)) { + //1、服务方(社会组织、社区自组织、区域化党建单位)单位名称,负责人姓名,负责人手机号 + List partyUnitIds = result.getList().stream().filter(l -> l.getServiceType().equals(UserDemandConstant.PARTY_UNIT)).map(ResiClientMyDemandResDTO::getServerId).collect(Collectors.toList()); + Map partyUnitMap =getPartyUnitMap(partyUnitIds); + + List socialOrgIds = result.getList().stream().filter(l -> l.getServiceType().equals(UserDemandConstant.SOCIAL_ORG)).map(ResiClientMyDemandResDTO::getServerId).collect(Collectors.toList()); + Map socialOrgMap=getSocialOrgMap(socialOrgIds); + + List communityOrgIds = result.getList().stream().filter(l -> l.getServiceType().equals(UserDemandConstant.COMMUNITY_ORG)).map(ResiClientMyDemandResDTO::getServerId).collect(Collectors.toList()); + Map communityOrgMap=getCommunityOrgMap(communityOrgIds); + + //2、志愿者姓名、手机号 + Set userIdList=list.stream().filter(item->item.getServiceType().equals(UserDemandConstant.VOLUNTEER)).map(ResiClientMyDemandResDTO::getServerId).collect(Collectors.toSet()); + Map userInfoMap=getVolunteerMap(userIdList); + + for (ResiClientMyDemandResDTO resDto : list) { + //3、查询分类名称 + IcResiDemandDictEntity demandDict = demandDictService.getByCode(formDTO.getCustomerId(), resDto.getCategoryCode()); + resDto.setCategoryName(null != demandDict ? demandDict.getCategoryName() : StrConstant.EPMETY_STR); + switch (resDto.getServiceType()) + { + case UserDemandConstant.PARTY_UNIT: + resDto.setServiceUnitName(partyUnitMap.get(resDto.getServerId()).getUnitName()); + resDto.setServiceUserName(partyUnitMap.get(resDto.getServerId()).getContact()); + resDto.setServiceUserMobile(partyUnitMap.get(resDto.getServerId()).getContactMobile()); + break; + case UserDemandConstant.SOCIAL_ORG: + resDto.setServiceUnitName(socialOrgMap.get(resDto.getServerId()).getSocietyName()); + resDto.setServiceUserName(socialOrgMap.get(resDto.getServerId()).getPersonInCharge()); + resDto.setServiceUserMobile(socialOrgMap.get(resDto.getServerId()).getMobile()); + break; + case UserDemandConstant.COMMUNITY_ORG: + resDto.setServiceUnitName(communityOrgMap.get(resDto.getServerId()).getOrganizationName()); + resDto.setServiceUserName(communityOrgMap.get(resDto.getServerId()).getPrincipalName()); + resDto.setServiceUserMobile(communityOrgMap.get(resDto.getServerId()).getPrincipalPhone()); + break; + case UserDemandConstant.VOLUNTEER: + resDto.setServiceUnitName(StrConstant.EPMETY_STR); + resDto.setServiceUserName(userInfoMap.get(resDto.getServerId()).getRealName()); + resDto.setServiceUserMobile(userInfoMap.get(resDto.getServerId()).getMobile()); + break; + default: + log.warn("serviceType 错误"); + break; + } + } + } + return list; + } + + + /** + * 获取党建单位基本信息 + * @param partyUnitIds + * @return + */ + private Map getPartyUnitMap(List partyUnitIds) { + List partyUnitList=partyUnitService.queryListById(partyUnitIds); + Map partyUnitMap = partyUnitList.stream().collect(Collectors.toMap(IcPartyUnitEntity::getId, o -> o, (o1, o2) -> o1)); + return partyUnitMap; + } + + /** + * 获取社会组织基本信息 + * @param socialOrgIds + * @return + */ + private Map getSocialOrgMap(List socialOrgIds) { + List socialOrgList=societyOrgService.queryListById(socialOrgIds); + Map socialOrgMap = socialOrgList.stream().collect(Collectors.toMap(IcSocietyOrgEntity::getId, o -> o, (o1, o2) -> o1)); + return socialOrgMap; + } + + /** + * 获取社区自组织基本信息 + * @param communityOrgIds + * @return + */ + private Map getCommunityOrgMap(List communityOrgIds) { + List communityOrgList=communitySelfOrganizationService.queryListById(communityOrgIds); + Map communityOrgMap = communityOrgList.stream().collect(Collectors.toMap(IcCommunitySelfOrganizationEntity::getId, o -> o, (o1, o2) -> o1)); + return communityOrgMap; + } + + /** + * 获取志愿者基本信息 + * @param userIdList + * @return + */ + private Map getVolunteerMap(Set userIdList) { + Map userInfoMap=new HashMap<>(); + if(CollectionUtils.isNotEmpty(userIdList)){ + Result> userInfoRes = epmetUserOpenFeignClient.queryUserBaseInfo(new ArrayList<>(userIdList)); + if(!userInfoRes.success()||CollectionUtils.isEmpty(userInfoRes.getData())){ + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),"查询志愿者信息异常","服务方查询异常"); + } + userInfoMap=userInfoRes.getData().stream().collect(Collectors.toMap(UserBaseInfoResultDTO::getUserId, o -> o, (o1, o2) -> o1)); + } + return userInfoMap; + } } \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcResiDemandDictDao.xml b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcResiDemandDictDao.xml index 9be81d0e7e..0d75fda6db 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcResiDemandDictDao.xml +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcResiDemandDictDao.xml @@ -254,4 +254,56 @@ and customer_id=#{customerId} and category_code=#{categoryCode} + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcUserDemandRecDao.xml b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcUserDemandRecDao.xml index 1b6dcab86e..93b1423a58 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcUserDemandRecDao.xml +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcUserDemandRecDao.xml @@ -68,7 +68,7 @@ ) as serviceName, s.SERVICE_START_TIME as serviceStartTime, s.SERVICE_END_TIME as serviceEndTime, - IFNULL(s.FINISH_DESC,'') as finishDesc, + IFNULL(sa.remark,'') as finishDesc, '' AS serviceShowName, s.id as serviceId, ( @@ -192,7 +192,7 @@ ) as serviceName, s.SERVICE_START_TIME as serviceStartTime, s.SERVICE_END_TIME as serviceEndTime, - IFNULL(s.FINISH_DESC,'') as finishDesc, + IFNULL(sa.remark,'') as finishDesc, '' AS serviceShowName, s.id as serviceId, left(r.CATEGORY_CODE,4) as firstCategoryCode, @@ -253,7 +253,7 @@ ) as serviceName, s.SERVICE_START_TIME as serviceStartTime, s.SERVICE_END_TIME as serviceEndTime, - IFNULL(s.FINISH_DESC,'') as finishDesc, + IFNULL(s.remark,'') as finishDesc, '' AS serviceShowName, s.id as serviceId, ( @@ -452,4 +452,43 @@ order by r.WANT_SERVICE_TIME asc + + + + \ No newline at end of file