Browse Source

Merge remote-tracking branch 'origin/dev_zhili' into dev_zhili

# Conflicts:
#	epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/DictTypeEnum.java
#	epmet-module/gov-project/gov-project-server/pom.xml
#	epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/IcEventDao.java
#	epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/IcEventServiceImpl.java
dev
sunyuchao 3 years ago
parent
commit
9363d7e3fd
  1. 1
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/DictTypeEnum.java
  2. 2
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/ProjectDTO.java
  3. 10
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/ProjectProcessDTO.java
  4. 19
      epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/AddCommunitySelfOrganizationFormDTO.java
  5. 6
      epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/EditCommunitySelfOrganizationFormDTO.java
  6. 9
      epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/CommunitySelfOrganizationListDTO.java
  7. 5
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/IcCommunitySelfOrganizationEntity.java
  8. 3
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/excel/ExportCommunitySelfOrganizationExcel.java
  9. 4
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/excel/ImportCommunitySelfOrganization.java
  10. 25
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcCommunitySelfOrganizationServiceImpl.java
  11. 1
      epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcCommunitySelfOrganizationDao.xml
  12. BIN
      epmet-module/epmet-heart/epmet-heart-server/src/main/resources/templates/self_org_import_template.xlsx
  13. 50
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/EventProcessAnalysisCommonFormDTO.java
  14. 10
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/EventToProjectFormDTO.java
  15. 47
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ProcessAnalysisEventListFormDTO.java
  16. 12
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ProjectApprovalFormDTO.java
  17. 10
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ProjectClosedFromDTO.java
  18. 4
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ProjectManageListFormDTO.java
  19. 10
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ProjectResponseFormDTO.java
  20. 23
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/SatisfactionEvaluationListFormDTO.java
  21. 10
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/TransferFormDTO.java
  22. 18
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/IcEventResultDTO.java
  23. 2
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ProcessListV2ResultDTO.java
  24. 11
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ProcessStatusRatioResultDTO.java
  25. 4
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ProjectManageListResultDTO.java
  26. 35
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/SatisfactionEvaluationListResultDTO.java
  27. 40
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/enums/EcEventProcessStatusEnum.java
  28. 1
      epmet-module/gov-project/gov-project-server/pom.xml
  29. 44
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/IcEventController.java
  30. 15
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectController.java
  31. 42
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/IcEventDao.java
  32. 13
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectSatisfactionDetailDao.java
  33. 2
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/ProjectEntity.java
  34. 10
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/ProjectProcessEntity.java
  35. 8
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/IcEventService.java
  36. 25
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectService.java
  37. 140
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/IcEventServiceImpl.java
  38. 2
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectProcessServiceImpl.java
  39. 40
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java
  40. 8
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java
  41. 46
      epmet-module/gov-project/gov-project-server/src/main/resources/mapper/IcEventDao.xml
  42. 28
      epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectDao.xml
  43. 12
      epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectSatisfactionDetailDao.xml

1
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/DictTypeEnum.java

@ -23,6 +23,7 @@ public enum DictTypeEnum {
PATROL_WORK_TYPE("patrol_work_type", "例行工作分类", 13),
GRID_TYPE("grid_type", "网格类型", 12),
ITEM_TYPE_QUERY("item_type_query","居民信息组件查询方式",14),
SELF_ORG_CATEGORY("self_org_category","社区自组织分类",15),
IC_EVENT("ic_event","事件管理",19),
;

2
epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/ProjectDTO.java

@ -50,6 +50,8 @@ public class ProjectDTO implements Serializable {
*/
private String agencyId;
private String gridId;
/**
* 来源议题issue
*/

10
epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/ProjectProcessDTO.java

@ -109,6 +109,16 @@ public class ProjectProcessDTO implements Serializable {
*/
private String costWorkdays;
/**
* 协办单位ID
*/
private String assistanceUnitId;
/**
* 协办单位类型1社区自组织2联建单位
*/
private String assistanceUnitType;
/**
* 删除标识0.未删除 1.已删除
*/

19
epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/AddCommunitySelfOrganizationFormDTO.java

@ -1,7 +1,9 @@
package com.epmet.dto.form;
import com.epmet.commons.tools.validator.group.CustomerClientShowGroup;
import com.epmet.dto.IcCommunitySelfOrganizationPersonnelDTO;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
@ -18,36 +20,40 @@ public class AddCommunitySelfOrganizationFormDTO implements Serializable {
private static final long serialVersionUID = -4996925380900678065L;
public interface AddCommunitySelfOrganizationForm{}
public interface AddCommunitySelfOrganizationForm extends CustomerClientShowGroup {}
/**
* 组织名称
*/
@NotBlank(message = "organizationName不能为空",groups = AddCommunitySelfOrganizationForm.class)
@NotBlank(message = "组织名称不能为空",groups = AddCommunitySelfOrganizationForm.class)
@Length(max = 50,message = "组织名称最多输入50字",groups = AddCommunitySelfOrganizationForm.class)
private String organizationName;
@NotBlank(message = "分类不能为空", groups = AddCommunitySelfOrganizationForm.class)
private String categoryCode;
/**
* 组织人数
*/
@NotNull(message = "organizationPersonCount不能为空",groups = AddCommunitySelfOrganizationForm.class)
@NotNull(message = "组织人数不能为空",groups = AddCommunitySelfOrganizationForm.class)
private Integer organizationPersonCount;
/**
* 负责人姓名
*/
@NotBlank(message = "principalName不能为空",groups = AddCommunitySelfOrganizationForm.class)
@NotBlank(message = "负责人不能为空",groups = AddCommunitySelfOrganizationForm.class)
private String principalName;
/**
* 负责人电话
*/
@NotBlank(message = "principalPhone不能为空",groups = AddCommunitySelfOrganizationForm.class)
@NotBlank(message = "联系电话",groups = AddCommunitySelfOrganizationForm.class)
private String principalPhone;
/**
* 服务事项
*/
@NotBlank(message = "serviceItem不能为空",groups = AddCommunitySelfOrganizationForm.class)
@NotBlank(message = "服务事项不能为空",groups = AddCommunitySelfOrganizationForm.class)
private String serviceItem;
/**
@ -63,6 +69,7 @@ public class AddCommunitySelfOrganizationFormDTO implements Serializable {
/**
* 经度
*/
@NotBlank(message = "位置坐标不能为空",groups = AddCommunitySelfOrganizationForm.class)
private String longitude;
/**

6
epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/EditCommunitySelfOrganizationFormDTO.java

@ -26,6 +26,12 @@ public class EditCommunitySelfOrganizationFormDTO implements Serializable {
@NotBlank(message = "organizationName不能为空",groups = EditCommunitySelfOrganizationForm.class)
private String organizationName;
/**
* 分类编码
*/
@NotBlank(message = "categoryCode不能为空",groups = EditCommunitySelfOrganizationForm.class)
private String categoryCode;
/**
* 组织人数
*/

9
epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/CommunitySelfOrganizationListDTO.java

@ -33,6 +33,15 @@ public class CommunitySelfOrganizationListDTO implements Serializable {
*/
private String organizationName;
/**
* 分类来源于字典表dictType=self_org_category;
*/
private String categoryCode;
/**
* 分类名称
*/
private String categoryName;
/**
* 服务事项
*/

5
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/IcCommunitySelfOrganizationEntity.java

@ -67,6 +67,11 @@ public class IcCommunitySelfOrganizationEntity extends BaseEpmetEntity {
*/
private String organizationName;
/**
* 分类来源于字典表dictType=self_org_category;
*/
private String categoryCode;
/**
* 组织人数
*/

3
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/excel/ExportCommunitySelfOrganizationExcel.java

@ -15,6 +15,9 @@ public class ExportCommunitySelfOrganizationExcel {
@Excel(name = "组织名称", width = 40, needMerge = true)
private String organizationName;
@Excel(name = "分类", width = 40, needMerge = true)
private String categoryName;
@Excel(name = "组织人数", width = 20, needMerge = true)
private Integer organizationPersonCount;

4
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/excel/ImportCommunitySelfOrganization.java

@ -20,6 +20,10 @@ public class ImportCommunitySelfOrganization extends ExcelVerifyInfo {
@NotBlank(message = "不能为空")
private String organizationName;
@Excel(name = "分类", needMerge = true)
@NotBlank(message = "不能为空")
private String categoryCode;
@Excel(name = "组织人数", needMerge = true)
//@NotNull(message = "不能为空")
private Integer organizationPersonCount;

25
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcCommunitySelfOrganizationServiceImpl.java

@ -12,6 +12,7 @@ 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;
import com.epmet.commons.tools.enums.DictTypeEnum;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.EpmetException;
import com.epmet.commons.tools.exception.ExceptionUtils;
@ -43,6 +44,7 @@ import com.epmet.entity.IcCommunitySelfOrganizationEntity;
import com.epmet.entity.IcCommunitySelfOrganizationPersonnelEntity;
import com.epmet.excel.CommunitySelfOrgImportExcel;
import com.epmet.excel.ImportCommunitySelfOrganization;
import com.epmet.feign.EpmetAdminOpenFeignClient;
import com.epmet.feign.EpmetCommonServiceOpenFeignClient;
import com.epmet.feign.OssFeignClient;
import com.epmet.service.IcCommunitySelfOrganizationPersonnelService;
@ -51,6 +53,7 @@ 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.collections4.MapUtils;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileItemFactory;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
@ -93,6 +96,8 @@ public class IcCommunitySelfOrganizationServiceImpl extends BaseServiceImpl<IcCo
private OssFeignClient ossFeignClient;
@Autowired
private EpmetCommonServiceOpenFeignClient commonServiceOpenFeignClient;
@Autowired
private EpmetAdminOpenFeignClient adminOpenFeignClient;
@Override
public PageData<IcCommunitySelfOrganizationDTO> page(Map<String, Object> params) {
@ -313,6 +318,11 @@ public class IcCommunitySelfOrganizationServiceImpl extends BaseServiceImpl<IcCo
formDTO.setCustomerId(tokenDto.getCustomerId());
final int[] i = {(formDTO.getPageNo() - NumConstant.ONE) * formDTO.getPageSize() + NumConstant.ONE};
CommunitySelfOrganizationListResultDTO result = new CommunitySelfOrganizationListResultDTO();
//获取分类名称字典
Result<Map<String, String>> dictMapRes=adminOpenFeignClient.dictMap(DictTypeEnum.SELF_ORG_CATEGORY.getCode());
Map<String, String> dictMap = dictMapRes.success() && MapUtils.isNotEmpty(dictMapRes.getData()) ? dictMapRes.getData() : new HashMap<>();
if (formDTO.getIsPage()){
PageInfo<CommunitySelfOrganizationListDTO> objectPageInfo = PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize()).doSelectPageInfo(() -> baseDao.selectCommunitySelfOrganizationList(formDTO));
result.setTotal(Integer.valueOf(String.valueOf(objectPageInfo.getTotal())));
@ -321,6 +331,8 @@ public class IcCommunitySelfOrganizationServiceImpl extends BaseServiceImpl<IcCo
l.setSort(i[NumConstant.ZERO]);
i[NumConstant.ZERO]++;
l.setScore(null == pointMap.get(l.getOrgId()) ? NumConstant.ZERO : pointMap.get(l.getOrgId()));
//赋值分类名称
l.setCategoryName(dictMap.get(l.getCategoryCode()));
}
result.setList(objectPageInfo.getList());
}
@ -333,6 +345,8 @@ public class IcCommunitySelfOrganizationServiceImpl extends BaseServiceImpl<IcCo
for (CommunitySelfOrganizationListDTO r : resultDTOs) {
r.setSort(sort.getAndSet(sort.get() + NumConstant.ONE));
r.setScore(null == pointMap.get(r.getOrgId()) ? NumConstant.ZERO : pointMap.get(r.getOrgId()));
//赋值分类名称
r.setCategoryName(dictMap.get(r.getCategoryCode()));
}
result.setList(resultDTOs);
}
@ -538,7 +552,8 @@ public class IcCommunitySelfOrganizationServiceImpl extends BaseServiceImpl<IcCo
iterator.remove();
}
}
Result<Map<String, String>> dictMapRes = adminOpenFeignClient.dictMap(DictTypeEnum.SELF_ORG_CATEGORY.getCode());
Map<String, String> categoryMap = dictMapRes.success() && MapUtils.isNotEmpty(dictMapRes.getData()) ? dictMapRes.getData() : new HashMap<>();
list.forEach(l -> {
IcCommunitySelfOrganizationEntity e = ConvertUtils.sourceToTarget(l, IcCommunitySelfOrganizationEntity.class);
e.setCustomerId(tokenDto.getCustomerId());
@ -547,7 +562,13 @@ public class IcCommunitySelfOrganizationServiceImpl extends BaseServiceImpl<IcCo
e.setPid(agencyInfo.getPid());
e.setPids(agencyInfo.getPids());
e.setOrganizationCreatedTime(DateUtils.parse(l.getOrganizationCreatedTime(), DATE_PATTERN));
//赋值分类编码,excel输入的是分类名称,需要找到admin字典库中的key
for (String key : categoryMap.keySet()) {
if (StringUtils.isNotBlank(categoryMap.get(key)) && categoryMap.get(key).equals(e.getCategoryCode())) {
e.setCategoryCode(categoryMap.get(key));
break;
}
}
List<IcCommunitySelfOrganizationPersonnelEntity> persons = new ArrayList<>();
AtomicReference<Boolean> bl = new AtomicReference<>(false);
StringBuffer msg = new StringBuffer("");

1
epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcCommunitySelfOrganizationDao.xml

@ -46,6 +46,7 @@
<select id="selectCommunitySelfOrganizationList" resultMap="selectCommunitySelfOrganizationListMap" parameterType="com.epmet.dto.form.CommunitySelfOrganizationListFormDTO">
SELECT
so.ORGANIZATION_NAME AS organizationName,
so.CATEGORY_CODE AS categoryCode,
so.ORGANIZATION_PERSON_COUNT AS organizationPersonCount,
IFNULL(DATE_FORMAT(so.ORGANIZATION_CREATED_TIME,'%Y-%m-%d'),DATE_FORMAT(so.CREATED_TIME,'%Y-%m-%d')) AS organizationCreatedTime,
so.PRINCIPAL_NAME AS principalName,

BIN
epmet-module/epmet-heart/epmet-heart-server/src/main/resources/templates/self_org_import_template.xlsx

Binary file not shown.

50
epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/EventProcessAnalysisCommonFormDTO.java

@ -0,0 +1,50 @@
package com.epmet.dto.form;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Date;
/**
* 事件处理分析通用
*/
@Data
public class EventProcessAnalysisCommonFormDTO {
/**
* 处理状态比例查询
*/
public interface ProcessStatusRatioQuery {}
/**
* 要查询的组织ID
*/
@NotBlank(message = "组织ID为必填项", groups = { ProcessStatusRatioQuery.class })
private String orgId;
/**
* 组织类型grid,agency
*/
@NotBlank(message = "组织类型为必填项", groups = { ProcessStatusRatioQuery.class })
private String orgType;
/**
* 查询起始时间 yyyy-MM-dd
*/
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd")
@NotNull(message = "查询时间为必填项", groups = { ProcessStatusRatioQuery.class })
private Date queryStartTime;
/**
* 查询截止时间 yyyy-MM-dd
*/
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd")
@NotNull(message = "查询时间为必填项", groups = { ProcessStatusRatioQuery.class })
private Date queryEndTime;
}

10
epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/EventToProjectFormDTO.java

@ -94,4 +94,14 @@ public class EventToProjectFormDTO implements Serializable {
private String app;
private String client;
/**
* 协办单位ID
*/
private String assistanceUnitId;
/**
* 协办单位类型1社区自组织2联建单位
*/
private String assistanceUnitType;
}

47
epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ProcessAnalysisEventListFormDTO.java

@ -0,0 +1,47 @@
package com.epmet.dto.form;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Date;
@Data
public class ProcessAnalysisEventListFormDTO {
/**
* 组织id
*/
@NotBlank(message = "组织ID为必填项")
private String orgId;
/**
* 组织类型grid,agency
*/
@NotBlank(message = "组织类型为必填项")
private String orgType;
/**
* 查询起始时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd")
@NotNull(message = "查询时间为必填项")
private Date queryStartTime;
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd")
@NotNull(message = "查询时间为必填项")
private Date queryEndTime;
/**
* 处理状态processing, closed_case
*/
private String processStatus;
/**
* 事件分类code
*/
private String categoryCode;
private Integer pageNo;
private Integer pageSize;
}

12
epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ProjectApprovalFormDTO.java

@ -73,7 +73,17 @@ public class ProjectApprovalFormDTO implements Serializable {
/**
* 网格ID
*/
@NotBlank(message = "网格ID不能为空",groups = {AddGroup.class})
@NotBlank(message = "网格ID不能为空",groups = {AddGroup.class,ProjectApprovalFormDTO.ApprovalCategory.class})
private String gridId;
/**
* 协办单位ID
*/
private String assistanceUnitId;
/**
* 协办单位类型1社区自组织2联建单位
*/
private String assistanceUnitType;
}

10
epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ProjectClosedFromDTO.java

@ -55,4 +55,14 @@ public class ProjectClosedFromDTO implements Serializable {
* 内部备注对应文件集合
*/
private List<FileDTO> internalFile;
/**
* 协办单位ID
*/
private String assistanceUnitId;
/**
* 协办单位类型1社区自组织2联建单位
*/
private String assistanceUnitType;
}

4
epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ProjectManageListFormDTO.java

@ -40,4 +40,8 @@ public class ProjectManageListFormDTO extends PageFormDTO implements Serializabl
private String status;
private String userId;
private String customerId;
private String agencyId;
}

10
epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ProjectResponseFormDTO.java

@ -55,4 +55,14 @@ public class ProjectResponseFormDTO implements Serializable {
*/
private List<FileDTO> internalFile;
/**
* 协办单位ID
*/
private String assistanceUnitId;
/**
* 协办单位类型1社区自组织2联建单位
*/
private String assistanceUnitType;
}

23
epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/SatisfactionEvaluationListFormDTO.java

@ -0,0 +1,23 @@
package com.epmet.dto.form;
import com.epmet.commons.tools.dto.form.PageFormDTO;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* @Author zxc
* @DateTime 2022/5/18 09:57
* @DESC
*/
@Data
public class SatisfactionEvaluationListFormDTO extends PageFormDTO implements Serializable {
private static final long serialVersionUID = 1790517675681175478L;
public interface SatisfactionEvaluationListForm{}
@NotBlank(message = "projectId不能为空",groups = SatisfactionEvaluationListForm.class)
private String projectId;
}

10
epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/TransferFormDTO.java

@ -40,5 +40,15 @@ public class TransferFormDTO implements Serializable {
* 内部备注对应文件集合
*/
private List<FileDTO> internalFile;
/**
* 协办单位ID
*/
private String assistanceUnitId;
/**
* 协办单位类型1社区自组织2联建单位
*/
private String assistanceUnitType;
}

18
epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/IcEventResultDTO.java

@ -0,0 +1,18 @@
package com.epmet.dto.result;
import lombok.Data;
@Data
public class IcEventResultDTO {
private String eventId;
private String eventContent;
private String gridId;
private String gridName;
private String sourceType;
private String sourceTypeName;
private String processStatus;
private String processStatusName;
private String reportUserId;
private String reportUserName;
private String mobile;
}

2
epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ProcessListV2ResultDTO.java

@ -94,6 +94,8 @@ public class ProcessListV2ResultDTO implements Serializable {
this.departmentName = "";
this.publicReply = "";
this.internalRemark = "";
this.assistanceUnitName = "";
this.assistanceUnitId = "";
this.publicFile = new ArrayList<>();
this.internalFile = new ArrayList<>();
this.subProcess = new ArrayList<>();

11
epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ProcessStatusRatioResultDTO.java

@ -0,0 +1,11 @@
package com.epmet.dto.result;
import lombok.Data;
@Data
public class ProcessStatusRatioResultDTO {
private Long processingCount;
private Long closedCount;
private Double processingRatio;
private Double closedRatio;
}

4
epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ProjectManageListResultDTO.java

@ -1,6 +1,7 @@
package com.epmet.dto.result;
import com.epmet.commons.tools.constant.NumConstant;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;
import java.io.Serializable;
@ -65,7 +66,10 @@ public class ProjectManageListResultDTO implements Serializable {
*/
private List<String> departmentNameList;
@JsonIgnore
private Date updatedTime;
@JsonIgnore
private String isHandle;
public ProjectManageListResultDTO() {

35
epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/SatisfactionEvaluationListResultDTO.java

@ -0,0 +1,35 @@
package com.epmet.dto.result;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;
import java.io.Serializable;
/**
* @Author zxc
* @DateTime 2022/5/18 09:58
* @DESC
*/
@Data
public class SatisfactionEvaluationListResultDTO implements Serializable {
private static final long serialVersionUID = 4086193179665858119L;
/**
* 评价人
*/
private String evaluationUser;
@JsonIgnore
private String userId;
/**
* 评价时间
*/
private String time;
/**
* 评价内容
*/
private String content;
}

40
epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/enums/EcEventProcessStatusEnum.java

@ -0,0 +1,40 @@
package com.epmet.enums;
/**
* ic事件状态枚举
*/
public enum EcEventProcessStatusEnum {
PROCESSING("processing", "处理中"),
CLOSED_CASE("closed_case", "已完成");
private String processStatus;
private String processStatusName;
EcEventProcessStatusEnum(String processStatus, String processStatusName) {
this.processStatus = processStatus;
this.processStatusName = processStatusName;
}
/**
* 根据sourceType查询对应的枚举对象
* @param processStatus
* @return
*/
public static EcEventProcessStatusEnum getObjectBySourceType(String processStatus) {
for (EcEventProcessStatusEnum e : EcEventProcessStatusEnum.values()) {
if (e.getProcessStatus().equals(processStatus)) {
return e;
}
}
return null;
}
public String getProcessStatus() {
return processStatus;
}
public String getProcessStatusName() {
return processStatusName;
}
}

1
epmet-module/gov-project/gov-project-server/pom.xml

@ -141,7 +141,6 @@
<groupId>com.epmet</groupId>
<artifactId>epmet-admin-client</artifactId>
<version>2.0.0</version>
<scope>compile</scope>
</dependency>
</dependencies>

44
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/IcEventController.java

@ -11,12 +11,18 @@ 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.IcEventDTO;
import com.epmet.dto.form.EventProcessAnalysisCommonFormDTO;
import com.epmet.dto.form.IcEventListFormDTO;
import com.epmet.dto.form.ProcessAnalysisEventListFormDTO;
import com.epmet.dto.result.IcEventListResultDTO;
import com.epmet.dto.result.IcEventResultDTO;
import com.epmet.dto.result.ProcessStatusRatioResultDTO;
import com.epmet.service.IcEventService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.Date;
/**
* 事件管理表
@ -70,6 +76,44 @@ public class IcEventController {
return new Result();
}
/**
* 事件分类分析-处理状态比例查询
* @param formDTO
* @return
*/
@PostMapping("processAnalysis/processStatusRatio")
public Result<ProcessStatusRatioResultDTO> getProcessStatusRatio(@RequestBody EventProcessAnalysisCommonFormDTO formDTO) {
ValidatorUtils.validateEntity(formDTO, EventProcessAnalysisCommonFormDTO.ProcessStatusRatioQuery.class);
String orgId = formDTO.getOrgId();
String orgType = formDTO.getOrgType();
Date queryStartTime = formDTO.getQueryStartTime();
Date queryEndTime = formDTO.getQueryEndTime();
ProcessStatusRatioResultDTO r = icEventService.getProcessStatusRatio(orgId, orgType, queryStartTime, queryEndTime);
return new Result<ProcessStatusRatioResultDTO>().ok(r);
}
/**
* 事件分类分析-事件列表
* @param input
* @return
*/
@PostMapping("processAnalysis/eventList")
public Result<PageData<IcEventResultDTO>> listProcessAnalysisEvents(@RequestBody ProcessAnalysisEventListFormDTO input) {
ValidatorUtils.validateEntity(input);
String orgId = input.getOrgId();
String orgType = input.getOrgType();
String categoryCode = input.getCategoryCode();
Date queryStartTime = input.getQueryStartTime();
Date queryEndTime = input.getQueryEndTime();
Integer pageNo = input.getPageNo();
Integer pageSize = input.getPageSize();
String processStatus = input.getProcessStatus();
PageData<IcEventResultDTO> page = icEventService.listProcessAnalysisEvents(orgId, orgType, categoryCode, processStatus, queryStartTime, queryEndTime, pageNo, pageSize);
return new Result<PageData<IcEventResultDTO>>().ok(page);
}

15
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectController.java

@ -345,9 +345,22 @@ public class ProjectController {
* @date 2022/5/17 14:19
*/
@PostMapping("project-list")
public Result<PageData> projectList(@LoginUser TokenDto tokenDto,ProjectManageListFormDTO formDTO){
public Result<PageData> projectList(@LoginUser TokenDto tokenDto,@RequestBody ProjectManageListFormDTO formDTO){
ValidatorUtils.validateEntity(formDTO, ProjectManageListFormDTO.ProjectManageListForm.class);
formDTO.setUserId(tokenDto.getUserId());
formDTO.setCustomerId(tokenDto.getCustomerId());
return new Result<PageData>().ok(projectService.projectList(formDTO));
}
/**
* Desc: 满意度评价列表
* @param formDTO
* @author zxc
* @date 2022/5/18 10:03
*/
@PostMapping("satisfaction-evaluation-list")
public Result<PageData> satisfactionEvaluationList(@RequestBody SatisfactionEvaluationListFormDTO formDTO){
ValidatorUtils.validateEntity(formDTO, SatisfactionEvaluationListFormDTO.SatisfactionEvaluationListForm.class);
return new Result<PageData>().ok(projectService.satisfactionEvaluationList(formDTO));
}
}

42
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/IcEventDao.java

@ -3,8 +3,16 @@ package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.form.IcEventListFormDTO;
import com.epmet.dto.result.IcEventListResultDTO;
import com.epmet.dto.result.IcEventResultDTO;
import com.epmet.dto.result.ProcessStatusRatioResultDTO;
import com.epmet.entity.IcEventEntity;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.List;
@ -18,4 +26,38 @@ import java.util.List;
public interface IcEventDao extends BaseDao<IcEventEntity> {
List<IcEventListResultDTO> icEventList(IcEventListFormDTO formDTO);
/**
* 查询事件处理状态比例
* @param gridPids
* @param queryStartTime
* @param queryEndTime
* @return List[Map<状态key:事件数量>]
*/
@MapKey("status")
List<Map<String, Long>> getProcessStatusRatio(@Param("customerId") String customerId,
@Param("orgType") String orgType,
@Param("orgId") String orgId,
@Param("gridPids") String gridPids,
@Param("queryStartTime") Date queryStartTime,
@Param("queryEndTime") Date queryEndTime);
/**
* 事件处理分析-时间列表
* @param customerId
* @param gridPids
* @param categoryCode
* @param processStatus
* @param queryStartTime 包含
* @param queryEndTime 包含
* @return
*/
List<IcEventResultDTO> listProcessAnalysisEvents(@Param("customerId") String customerId,
@Param("orgType") String orgType,
@Param("orgId") String orgId,
@Param("gridPids") String gridPids,
@Param("categoryCode") String categoryCode,
@Param("processStatus") String processStatus,
@Param("queryStartTime") Date queryStartTime,
@Param("queryEndTime") Date queryEndTime);
}

13
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectSatisfactionDetailDao.java

@ -20,10 +20,7 @@ package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.form.ProjectEvaluationListFormDTO;
import com.epmet.dto.form.ProjectInitEvaluationFormDTO;
import com.epmet.dto.result.EvaluationListResultDTO;
import com.epmet.dto.result.ProjectEvaluateDetailResultDTO;
import com.epmet.dto.result.ProjectEvaluateInfoResultDTO;
import com.epmet.dto.result.ProjectEvaluationListResultDTO;
import com.epmet.dto.result.*;
import com.epmet.entity.ProjectSatisfactionDetailEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@ -69,4 +66,12 @@ public interface ProjectSatisfactionDetailDao extends BaseDao<ProjectSatisfactio
*/
List<ProjectEvaluateDetailResultDTO> selectProjectEvaluateDetail(@Param("projectIds")List<String> projectIds);
/**
* Desc: 满意度评价列表
* @param projectId
* @author zxc
* @date 2022/5/18 10:03
*/
List<SatisfactionEvaluationListResultDTO> satisfactionEvaluationList(@Param("projectId")String projectId);
}

2
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/ProjectEntity.java

@ -45,6 +45,8 @@ public class ProjectEntity extends BaseEpmetEntity {
*/
private String agencyId;
private String gridId;
/**
* 来源议题issue 项目立项:agency
*/

10
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/ProjectProcessEntity.java

@ -112,4 +112,14 @@ public class ProjectProcessEntity extends BaseEpmetEntity {
*/
private Integer isSend;
/**
* 协办单位ID
*/
private String assistanceUnitId;
/**
* 协办单位类型1社区自组织2联建单位
*/
private String assistanceUnitType;
}

8
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/IcEventService.java

@ -5,8 +5,11 @@ import com.epmet.commons.tools.page.PageData;
import com.epmet.dto.IcEventDTO;
import com.epmet.dto.form.IcEventListFormDTO;
import com.epmet.dto.result.IcEventListResultDTO;
import com.epmet.dto.result.IcEventResultDTO;
import com.epmet.dto.result.ProcessStatusRatioResultDTO;
import com.epmet.entity.IcEventEntity;
import java.util.Date;
import java.util.Map;
/**
@ -66,4 +69,9 @@ public interface IcEventService extends BaseService<IcEventEntity> {
* @date 2022-05-17
*/
void delete(String[] ids);
ProcessStatusRatioResultDTO getProcessStatusRatio(String orgId, String orgType, Date queryStartTime, Date queryEndTime);
PageData<IcEventResultDTO> listProcessAnalysisEvents(String orgId, String orgType, String categoryCode, String processStatus, Date queryStartTime,
Date queryEndTime, Integer pageNo, Integer pageSize);
}

25
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectService.java

@ -1,20 +1,3 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.service;
import com.epmet.commons.mybatis.service.BaseService;
@ -393,4 +376,12 @@ public interface ProjectService extends BaseService<ProjectEntity> {
*/
PageData projectList(ProjectManageListFormDTO formDTO);
/**
* Desc: 满意度评价列表
* @param formDTO
* @author zxc
* @date 2022/5/18 10:03
*/
PageData satisfactionEvaluationList(SatisfactionEvaluationListFormDTO formDTO);
}

140
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/IcEventServiceImpl.java

@ -2,19 +2,33 @@ package com.epmet.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.constant.AppClientConstant;
import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.EpmetException;
import com.epmet.commons.tools.feign.ResultDataResolver;
import com.epmet.commons.tools.dto.form.FileCommonDTO;
import com.epmet.commons.tools.enums.DictTypeEnum;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.redis.common.CustomerOrgRedis;
import com.epmet.commons.tools.redis.common.bean.GridInfoCache;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.EpmetRequestHolder;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dao.IcEventDao;
import com.epmet.dto.CustomerAgencyDTO;
import com.epmet.dto.IcEventDTO;
import com.epmet.dto.form.AgencyInfoFormDTO;
import com.epmet.dto.form.IcEventListFormDTO;
import com.epmet.dto.result.*;
import com.epmet.dto.result.AllGridsByUserIdResultDTO;
import com.epmet.dto.result.IcEventListResultDTO;
import com.epmet.dto.result.IcMoveInListResultDTO;
import com.epmet.entity.IcEventEntity;
import com.epmet.enums.EcEventProcessStatusEnum;
import com.epmet.feign.EpmetAdminOpenFeignClient;
import com.epmet.feign.GovOrgOpenFeignClient;
import com.epmet.feign.EpmetAdminOpenFeignClient;
import com.epmet.feign.GovOrgOpenFeignClient;
import com.epmet.service.IcEventService;
@ -27,6 +41,11 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.math.BigDecimal;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
@ -37,13 +56,14 @@ import java.util.stream.Collectors;
* @since v1.0.0 2022-05-17
*/
@Service
public class IcEventServiceImpl extends BaseServiceImpl<IcEventDao, IcEventEntity> implements IcEventService {
public class IcEventServiceImpl extends BaseServiceImpl<IcEventDao, IcEventEntity> implements IcEventService, ResultDataResolver {
@Autowired
private GovOrgOpenFeignClient govOrgOpenFeignClient;
@Autowired
private EpmetAdminOpenFeignClient adminOpenFeignClient;
@Override
public PageData<IcEventListResultDTO> list(IcEventListFormDTO formDTO) {
PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize(), formDTO.getIsPage());
@ -121,4 +141,120 @@ public class IcEventServiceImpl extends BaseServiceImpl<IcEventDao, IcEventEntit
baseDao.deleteBatchIds(Arrays.asList(ids));
}
/**
* 查询时间的grid_pids
* @param agencyId
* @return
*/
public String getEventGridPids(String agencyId) {
String gridPids;
String errorMsg = "查询组织信息失败";
CustomerAgencyDTO agencyInfo = getResultDataOrThrowsException(govOrgOpenFeignClient.getAgencyById(agencyId),
ServiceConstant.GOV_ORG_SERVER,
EpmetErrorCode.SERVER_ERROR.getCode(),
errorMsg,
errorMsg);
if (agencyInfo == null) {
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "组织信息未找到", "网格信息未找到");
}
String purePids = agencyInfo.getPids();
if ("0".equals(purePids) || StringUtils.isBlank(purePids)) {
gridPids = agencyInfo.getId();
} else {
gridPids = purePids.concat(":").concat(agencyInfo.getId());
}
return gridPids;
}
@Override
public ProcessStatusRatioResultDTO getProcessStatusRatio(String orgId, String orgType, Date queryStartTime, Date queryEndTime) {
AgencyInfoFormDTO form = new AgencyInfoFormDTO();
form.setOrgId(orgId);
form.setOrgType(orgType);
String gridPids = null;
if ("agency".equals(orgType)) {
gridPids = getEventGridPids(orgId);
}
List<Map<String, Long>> m = baseDao.getProcessStatusRatio(
EpmetRequestHolder.getHeader(AppClientConstant.CUSTOMER_ID), orgType, orgId, gridPids, queryStartTime, queryEndTime);
ProcessStatusRatioResultDTO r = new ProcessStatusRatioResultDTO();
BigDecimal processingCount = new BigDecimal(0);
BigDecimal closedCount = new BigDecimal(0);;
BigDecimal processingRatio = null;
BigDecimal closedRatio = null;
for (Map<String, Long> entry : m) {
if ("processing".equals(entry.get("status"))) {
processingCount = new BigDecimal(entry.get("eventCount"));
} else if ("closed_case".equals(entry.get("status"))) {
closedCount = new BigDecimal(entry.get("eventCount"));
}
}
// 根据个数,计算比例
BigDecimal total = processingCount.add(closedCount);
processingRatio = processingCount.divide(total, 2, BigDecimal.ROUND_HALF_UP);
closedRatio = new BigDecimal(1).subtract(processingRatio);
r.setProcessingCount(processingCount.longValue());
r.setClosedCount(closedCount.longValue());
r.setProcessingRatio(processingRatio.doubleValue());
r.setClosedRatio(closedRatio.doubleValue());
return r;
}
@Override
public PageData<IcEventResultDTO> listProcessAnalysisEvents(String orgId, String orgType, String categoryCode, String processStatus,
Date queryStartTime, Date queryEndTime, Integer pageNo,
Integer pageSize) {
// 1.分类字典
Map<String, String> eventSourceTypeDict = getResultDataOrThrowsException(adminOpenFeignClient.dictMap("ic_event_source_type"),
ServiceConstant.EPMET_ADMIN_SERVER,
EpmetErrorCode.SERVER_ERROR.getCode(),
"【IC事件分析】查询上报渠道字典失败",
"【IC事件分析】查询上报渠道字典失败");
String gridPids = null;
if ("agency".equals(orgType)) {
gridPids = getEventGridPids(orgId);
}
// 2.分页查询
PageHelper.startPage(pageNo, pageSize);
List<IcEventResultDTO> list = baseDao.listProcessAnalysisEvents(
EpmetRequestHolder.getHeader(AppClientConstant.CUSTOMER_ID), orgType, orgId, gridPids, categoryCode, processStatus, queryStartTime
,queryEndTime);
// 3.补充数据
for (IcEventResultDTO event : list) {
// 网格信息
GridInfoCache gridInfo = CustomerOrgRedis.getGridInfo(event.getGridId());
if (gridInfo != null) {
event.setGridName(gridInfo.getGridName());
} else {
logger.error("【IC事件分析】网格ID[{}]查询网格信息失败", event.getGridId());
}
// 上报渠道
event.setSourceTypeName(eventSourceTypeDict.get(event.getSourceType()));
// 状态
EcEventProcessStatusEnum sourceTypeEnum = EcEventProcessStatusEnum.getObjectBySourceType(event.getProcessStatus());
if (sourceTypeEnum != null) {
event.setProcessStatusName(sourceTypeEnum.getProcessStatusName());
}
}
PageInfo<IcEventResultDTO> pageInfo = new PageInfo<>(list);
return new PageData<>(list, pageInfo.getTotal());
}
}

2
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectProcessServiceImpl.java

@ -646,6 +646,8 @@ public class ProjectProcessServiceImpl extends BaseServiceImpl<ProjectProcessDao
processEntity.setDepartmentId(staffEntity.getDepartmentId());
processEntity.setGridId(staffEntity.getGridId());
processEntity.setOrgIdPath(staffEntity.getOrgIdPath());
processEntity.setAssistanceUnitType(formDTO.getAssistanceUnitType());
processEntity.setAssistanceUnitId(formDTO.getAssistanceUnitId());
projectProcessDao.insert(processEntity);
//2-1.项目附件表新增数据
if ((null != formDTO.getPublicFile() && formDTO.getPublicFile().size() > NumConstant.ZERO)

40
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java

@ -42,6 +42,7 @@ import com.epmet.commons.tools.utils.*;
import com.epmet.constant.*;
import com.epmet.dao.ProjectDao;
import com.epmet.dao.ProjectOrgRelationDao;
import com.epmet.dao.ProjectSatisfactionDetailDao;
import com.epmet.dao.ProjectSatisfactionStatisticsDao;
import com.epmet.dto.*;
import com.epmet.dto.form.*;
@ -96,8 +97,7 @@ import java.util.stream.Collectors;
@Slf4j
public class ProjectServiceImpl extends BaseServiceImpl<ProjectDao, ProjectEntity> implements ProjectService {
private Logger logger = LogManager.getLogger(ProjectServiceImpl.class);
@Autowired
private ProjectRedis projectRedis;
@Autowired
private CustomerProjectParameterService parameterService;
@Autowired
@ -150,6 +150,8 @@ public class ProjectServiceImpl extends BaseServiceImpl<ProjectDao, ProjectEntit
private LoginUserUtil loginUserUtil;
@Autowired
private BlockChainUploadService blockChainUploadService;
@Autowired
private ProjectSatisfactionDetailDao satisfactionDetailDao;
private final static String ONE_DAY = "<1";
@ -709,6 +711,8 @@ public class ProjectServiceImpl extends BaseServiceImpl<ProjectDao, ProjectEntit
ProjectDTO projectDto = ConvertUtils.sourceToTarget(projectEntity, ProjectDTO.class);
projectDto.setUpdatedTime(projectDto.getCreatedTime());
projectProcessEntity.setCostWorkdays(getDetentionDays(projectDto));
projectProcessEntity.setAssistanceUnitType(fromDTO.getAssistanceUnitType());
projectProcessEntity.setAssistanceUnitId(fromDTO.getAssistanceUnitId());
projectProcessService.insert(projectProcessEntity);
//保存附件
@ -2282,6 +2286,8 @@ public class ProjectServiceImpl extends BaseServiceImpl<ProjectDao, ProjectEntit
projectProcessEntity.setPublicReply(formDTO.getPublicReply());
projectProcessEntity.setInternalRemark(formDTO.getInternalRemark());
projectProcessEntity.setStaffId(formDTO.getUserId());
projectProcessEntity.setAssistanceUnitId(formDTO.getAssistanceUnitId());
projectProcessEntity.setAssistanceUnitType(formDTO.getAssistanceUnitType());
projectProcessService.insert(projectProcessEntity);
//项目附件表新增数据 sun 2020.12.22
@ -3179,6 +3185,11 @@ public class ProjectServiceImpl extends BaseServiceImpl<ProjectDao, ProjectEntit
*/
@Override
public PageData<ProjectManageListResultDTO> projectList(ProjectManageListFormDTO formDTO) {
CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(formDTO.getCustomerId(), formDTO.getUserId());
if (null == staffInfo){
throw new EpmetException("未查询到此工作人员信息"+formDTO.getUserId());
}
formDTO.setAgencyId(staffInfo.getAgencyId());
PageData<ProjectManageListResultDTO> result = new PageData<>(new ArrayList<>(),NumConstant.ZERO);
int pageIndex = (formDTO.getPageNo() - NumConstant.ONE) * formDTO.getPageSize();
formDTO.setPageNo(pageIndex);
@ -3221,7 +3232,30 @@ public class ProjectServiceImpl extends BaseServiceImpl<ProjectDao, ProjectEntit
return result;
}
/**
/**
* Desc: 满意度评价列表
* @param formDTO
* @author zxc
* @date 2022/5/18 10:03
*/
@Override
public PageData<SatisfactionEvaluationListResultDTO> satisfactionEvaluationList(SatisfactionEvaluationListFormDTO formDTO) {
PageData<SatisfactionEvaluationListResultDTO> data = new PageData<>(new ArrayList<>(),NumConstant.ZERO);
PageInfo<SatisfactionEvaluationListResultDTO> pageInfo = PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize(), formDTO.getIsPage()).doSelectPageInfo(() -> satisfactionDetailDao.satisfactionEvaluationList(formDTO.getProjectId()));
List<SatisfactionEvaluationListResultDTO> result = pageInfo.getList();
if (CollectionUtils.isNotEmpty(result)){
Result<List<UserBaseInfoResultDTO>> listResult = epmetUserOpenFeignClient.queryUserBaseInfo(result.stream().map(m -> m.getUserId()).distinct().collect(Collectors.toList()));
if (!listResult.success()){
throw new EpmetException("查询user信息失败...");
}
listResult.getData().forEach(u -> result.stream().filter(r -> r.getUserId().equals(u.getUserId())).forEach(r -> r.setEvaluationUser(u.getRealName())));
data.setList(result);
data.setTotal(Integer.valueOf(String.valueOf(pageInfo.getTotal())));
}
return data;
}
/**
* @Description 区间项目分类数量处理
* 查询的是时间段内的分类项目数查询的时间 是传入一个日期拼上时间在进行比较大小
* @param categories

8
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java

@ -408,6 +408,7 @@ public class ProjectTraceServiceImpl<ProjectTagService> implements ProjectTraceS
ProjectEntity projectEntity = new ProjectEntity();
projectEntity.setCustomerId(formDTO.getCustomerId());
projectEntity.setAgencyId(loginUser.getAgencyId());
projectEntity.setGridId(formDTO.getGridId());
if (ProjectConstant.WORK_EVENT.equals(formDTO.getType())) {
projectEntity.setOrigin(ProjectConstant.WORK_EVENT);
projectEntity.setOriginId(formDTO.getGridId());
@ -433,6 +434,8 @@ public class ProjectTraceServiceImpl<ProjectTagService> implements ProjectTraceS
processEntity.setOperationName(ProjectConstant.OPERATION_PROJECT_APPROVAL);
processEntity.setPublicReply(formDTO.getPublicReply());
processEntity.setInternalRemark(formDTO.getInternalRemark());
processEntity.setAssistanceUnitType(formDTO.getAssistanceUnitType());
processEntity.setAssistanceUnitId(formDTO.getAssistanceUnitId());
agencyDeptGrid.getAgencyList().forEach(agency -> {
if (loginUser.getAgencyId().equals(agency.getId())) {
processEntity.setDepartmentName(agency.getOrganizationName());
@ -701,6 +704,8 @@ public class ProjectTraceServiceImpl<ProjectTagService> implements ProjectTraceS
public EventToProjectResultDTO eventToProject(EventToProjectFormDTO formDTO) {
//事件已经立项,不能重复操作
ResiEventEntity resiEventEntity=resiEventService.getById(formDTO.getEventId());
//TODO 兼容新事件表
String gridId = "";
if(null==resiEventEntity||resiEventEntity.getShiftProject()){
throw new RenException(EpmetErrorCode.RESI_EVENT_SHIFT_PROJECT.getCode(),EpmetErrorCode.RESI_EVENT_SHIFT_PROJECT.getMsg());
}
@ -745,6 +750,7 @@ public class ProjectTraceServiceImpl<ProjectTagService> implements ProjectTraceS
projectEntity.setOriginId(formDTO.getEventId());
projectEntity.setTitle(formDTO.getTitle());
projectEntity.setBackGround(formDTO.getPublicReply());
projectEntity.setGridId(gridId);
projectEntity.setStatus(ProjectConstant.PENDING);
projectEntity.setOrgIdPath(loginUser.getOrgIdPath());
projectEntity.setLocateAddress(null == formDTO.getLocateAddress() ? "" : formDTO.getLocateAddress());
@ -761,6 +767,8 @@ public class ProjectTraceServiceImpl<ProjectTagService> implements ProjectTraceS
processEntity.setOperationName(ProjectConstant.OPERATION_PROJECT_APPROVAL);
processEntity.setPublicReply(formDTO.getPublicReply());
processEntity.setInternalRemark(formDTO.getInternalRemark());
processEntity.setAssistanceUnitId(formDTO.getAssistanceUnitId());
processEntity.setAssistanceUnitType(formDTO.getAssistanceUnitType());
agencyDeptGrid.getAgencyList().forEach(agency -> {
if (loginUser.getAgencyId().equals(agency.getId())) {
processEntity.setDepartmentName(agency.getOrganizationName());

46
epmet-module/gov-project/gov-project-server/src/main/resources/mapper/IcEventDao.xml

@ -24,6 +24,52 @@
<result column="duration" property="duration"/>
</collection>
</resultMap>
<select id="getProcessStatusRatio" resultType="java.util.Map">
select STATUS status, count(1) eventCount
from ic_event e
<where>
<if test="orgType == 'agency'">
and e.GRID_PIDS like CONCAT(#{gridPids},'%')
</if>
<if test="orgType == 'grid'">
and e.GRID_ID=#{orgId}
</if>
and CUSTOMER_ID = #{customerId}
and CREATED_TIME >= #{queryStartTime}
and CREATED_TIME <![CDATA[<=]]> #{queryEndTime}
</where>
group by STATUS
</select>
<select id="listProcessAnalysisEvents" resultType="com.epmet.dto.result.IcEventResultDTO">
select e.ID eventId,
e.GRID_ID gridId,
e.EVENT_CONTENT eventContent,
e.SOURCE_TYPE sourceType,
e.REPORT_USER_ID reportUserId,
e.NAME reportUserName,
e.MOBILE mobile,
e.STATUS processStatus
from ic_event e
inner join ic_event_category c on (e.ID = c.IC_EVENT_ID)
<where>
e.CUSTOMER_ID = #{customerId}
and e.CREATED_TIME >= #{queryStartTime}
and e.CREATED_TIME <![CDATA[<=]]> #{queryEndTime}
<if test="orgType == 'agency'">
and e.GRID_PIDS like CONCAT(#{gridPids},'%')
</if>
<if test="orgType == 'grid'">
and e.GRID_ID=#{orgId}
</if>
<if test="processStatus != null and processStatus != ''">
and e.STATUS = #{processStatus}
</if>
<if test="categoryCode != null and categoryCode != ''">
and c.CATEGORY_CODE = #{categoryCode}
</if>
</where>
</select>
<select id="icEventList" parameterType="map" resultMap="icEventMap">
SELECT

28
epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectDao.xml

@ -575,18 +575,34 @@
p.CREATED_TIME AS shiftProjectTime,
ps.IS_HANDLE,
ps.CREATED_TIME AS updatedTime,
t.* FROM
t.*
FROM
(SELECT
DISTINCT pp.PROJECT_ID,
pp.INTERNAL_REMARK,
pp.PUBLIC_REPLY AS projectScheme
DISTINCT pp.PROJECT_ID,
pp.INTERNAL_REMARK,
pp.PUBLIC_REPLY AS projectScheme
FROM project_process pp
WHERE DEL_FLAG = '0'
AND pp.STAFF_ID = #{userId}
AND pp.ORG_ID_PATH LIKE CONCAT('%',#{agencyId})
ORDER BY pp.CREATED_TIME DESC) t
INNER JOIN project p ON p.ID = t.PROJECT_ID AND p.DEL_FLAG = '0'
LEFT JOIN project_staff ps ON ps.PROJECT_ID = t.PROJECT_ID AND ps.DEL_FLAG = '0'
INNER JOIN project p ON p.ID = t.PROJECT_ID AND p.DEL_FLAG = '0'
LEFT JOIN project_staff ps ON ps.PROJECT_ID = t.PROJECT_ID AND ps.DEL_FLAG = '0'
WHERE 1=1
<if test='null != title and title != "" '>
AND p.TITLE LIKE CONCAT('',#{title},'')
</if>
<if test='null != startDate and startDate != "" '>
AND DATE_FORMAT(p.CREATED_TIME,'%Y%m%d') >= #{startDate}
</if>
<if test='null != endDate and endDate != "" '>
AND DATE_FORMAT(p.CREATED_TIME,'%Y%m%d') <![CDATA[ <= ]]> #{endDate}
</if>
<if test='null != status and status != "all" '>
AND p.`STATUS` = #{status}
</if>
GROUP BY t.PROJECT_ID
ORDER BY p.CREATED_TIME DESC
LIMIT #{pageNo}, #{pageSize}
</select>
</mapper>

12
epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectSatisfactionDetailDao.xml

@ -75,4 +75,16 @@
)
</select>
<!-- 满意度评价列表 -->
<select id="satisfactionEvaluationList" resultType="com.epmet.dto.result.SatisfactionEvaluationListResultDTO">
SELECT
created_by AS userId,
`COMMENT` AS content,
CREATED_TIME AS time
FROM project_satisfaction_detail
WHERE DEL_FLAG = '0'
AND PROJECT_ID = #{projectId}
ORDER BY CREATED_TIME DESC
</select>
</mapper>
Loading…
Cancel
Save