Browse Source

项目结案、需求完成修改事件数据

dev
sunyuchao 3 years ago
parent
commit
09d680ec71
  1. 9
      epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcUserDemandRecDTO.java
  2. 8
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/IcUserDemandRecEntity.java
  3. 29
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcUserDemandRecServiceImpl.java
  4. 25
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ColseProjectOrDemandFormDTO.java
  5. 94
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/IcDemandFormDTO.java
  6. 2
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ProjectClosedFromDTO.java
  7. 9
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/GovProjectOpenFeignClient.java
  8. 5
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/fallback/GovProjectOpenFeignClientFallback.java
  9. 13
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/IcEventController.java
  10. 6
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/IcEventService.java
  11. 37
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/IcEventServiceImpl.java
  12. 14
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java
  13. 1
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java

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

@ -150,6 +150,15 @@ public class IcUserDemandRecDTO implements Serializable {
*/ */
private Integer awardPoint; private Integer awardPoint;
/**
* 来源[需求录入:demand 事件管理:ic_event]
*/
private String origin;
/**
* 来源Id[目前只有来源事件管理的有值]
*/
private String originId;
/** /**
* 删除标识0.未删除 1.已删除 * 删除标识0.未删除 1.已删除
*/ */

8
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/IcUserDemandRecEntity.java

@ -171,4 +171,12 @@ public class IcUserDemandRecEntity extends BaseEpmetEntity {
* 需求人是ic的居民时,记录下住的房屋id * 需求人是ic的居民时,记录下住的房屋id
*/ */
private String demandUserHouseId; private String demandUserHouseId;
/**
* 来源[需求录入:demand 事件管理:ic_event]
*/
private String origin;
/**
* 来源Id[目前只有来源事件管理的有值]
*/
private String originId;
} }

29
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcUserDemandRecServiceImpl.java

@ -36,6 +36,7 @@ import com.epmet.commons.tools.scan.param.TextScanParamDTO;
import com.epmet.commons.tools.scan.param.TextTaskDTO; import com.epmet.commons.tools.scan.param.TextTaskDTO;
import com.epmet.commons.tools.scan.result.SyncScanResult; import com.epmet.commons.tools.scan.result.SyncScanResult;
import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.DateUtils;
import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.utils.ScanContentUtils; import com.epmet.commons.tools.utils.ScanContentUtils;
import com.epmet.constant.ReadFlagConstant; import com.epmet.constant.ReadFlagConstant;
@ -51,10 +52,7 @@ import com.epmet.dto.form.demand.*;
import com.epmet.dto.result.*; import com.epmet.dto.result.*;
import com.epmet.dto.result.demand.*; import com.epmet.dto.result.demand.*;
import com.epmet.entity.*; import com.epmet.entity.*;
import com.epmet.feign.EpmetAdminOpenFeignClient; import com.epmet.feign.*;
import com.epmet.feign.EpmetMessageOpenFeignClient;
import com.epmet.feign.EpmetUserOpenFeignClient;
import com.epmet.feign.GovOrgOpenFeignClient;
import com.epmet.service.*; import com.epmet.service.*;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
@ -108,6 +106,8 @@ public class IcUserDemandRecServiceImpl extends BaseServiceImpl<IcUserDemandRecD
private String scanApiUrl; private String scanApiUrl;
@Value("${openapi.scan.method.textSyncScan}") @Value("${openapi.scan.method.textSyncScan}")
private String textSyncScanMethod; private String textSyncScanMethod;
@Autowired
private GovProjectOpenFeignClient govProjectOpenFeignClient;
@Override @Override
@ -516,6 +516,27 @@ public class IcUserDemandRecServiceImpl extends BaseServiceImpl<IcUserDemandRecD
// 5、如果是居民端用户提出的需求,发消息:您提出的需求已完成,请进行服务评价。 // 5、如果是居民端用户提出的需求,发消息:您提出的需求已完成,请进行服务评价。
sendDemandUserFinished(entity); sendDemandUserFinished(entity);
//2022-5-19 sun 需求完成时 来源事件管理的需求需要去修改事件数据 start
if ("ic_event".equals(entity.getOrigin())) {
Result<Map<String, String>> serviceTypeRes=adminOpenFeignClient.dictMap(DictTypeEnum.USER_DEMAND_SERVICE_TYPE.getCode());
Map<String,String> serviceTypeMap=serviceTypeRes.success()&& MapUtils.isNotEmpty(serviceTypeRes.getData())?serviceTypeRes.getData():new HashMap<>();
//服务方类型:志愿者:volunteer;社会组织:social_org;社区自组织:community_org;区域党建单位:party_unit;
String str = serviceTypeMap.containsKey(serviceEntity.getServiceType())?serviceEntity.getServerName().concat("(").concat(serviceTypeMap.get(serviceEntity.getServiceType())).concat(")"):StrConstant.EPMETY_STR;
ColseProjectOrDemandFormDTO dto = new ColseProjectOrDemandFormDTO();
dto.setCustomerId(formDTO.getCustomerId());
dto.setUserId(formDTO.getUserId());
dto.setIcEventId(entity.getOriginId());
dto.setType("demand");
dto.setServiceParty(str);
dto.setActualServiceTime(DateUtils.format(formDTO.getServiceStartTime(), DateUtils.DATE_TIME_PATTERN)+"至"+DateUtils.format(formDTO.getServiceEndTime(), DateUtils.DATE_TIME_PATTERN));
Result result = govProjectOpenFeignClient.closeProjectOrDemand(dto);
if (!result.success()) {
throw new RenException("需求完成,修改事件管理数据失败...");
}
}
//2022-5-19 sun end
return finishResultDTO; return finishResultDTO;
} }

25
epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ColseProjectOrDemandFormDTO.java

@ -0,0 +1,25 @@
package com.epmet.dto.form;
import lombok.Data;
import java.io.Serializable;
/**
* 需求完成/项目结案时 修改事件数据
*/
@Data
public class ColseProjectOrDemandFormDTO implements Serializable {
private static final long serialVersionUID = -590440160577071133L;
//事件管理Id
private String icEventId;
//类型 需求:demand 项目:project
private String type;
//服务方【事件被转需求,需求在办结时的服务方名称】
private String serviceParty;
//实际服务时间【事件被转需求,需求在办结时填写的实际服务时间 xx至xx】
private String actualServiceTime;
private String customerId;
private String userId;
}

94
epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/IcDemandFormDTO.java

@ -16,100 +16,122 @@ import java.util.Date;
*/ */
@Data @Data
public class IcDemandFormDTO implements Serializable { public class IcDemandFormDTO implements Serializable {
private static final long serialVersionUID = -2931148629441558468L;
public interface Add extends CustomerClientShowGroup { private static final long serialVersionUID = 1589287946950749226L;
}
public interface AddInternalGroup { public interface AddUserInternalGroup {
} }
public interface Update extends CustomerClientShowGroup { public interface AddUserShowGroup extends CustomerClientShowGroup {
} }
public interface UpdateInternalGroup { public interface UpdateInternalGroup {
} }
@NotBlank(message = "事件id不能为空",groups = AddInternalGroup.class) @NotBlank(message = "事件id不能为空",groups = AddUserInternalGroup.class)
private String icEventId; private String icEventId;
@NotBlank(message = "需求id不能为空",groups = UpdateInternalGroup.class) @NotBlank(message = "需求id不能为空",groups = UpdateInternalGroup.class)
private String demandRecId; private String demandRecId;
@NotBlank(message = "customerId不能为空", groups = {AddInternalGroup.class, UpdateInternalGroup.class})
private String customerId; private String customerId;
private String currentUserId;
/** /**
* 网格id * 网格id
*/ */
@NotBlank(message = "所属网格不能为空",groups = {AddInternalGroup.class}) @NotBlank(message = "所属网格不能为空",groups = AddUserShowGroup.class)
private String gridId; private String gridId;
/** /**
* 需求内容1000字 * 组织id
*/ */
@NotBlank(message = "需求内容不能为空", groups = {Add.class, Update.class}) private String agencyId;
@Length(max = 1000, message = "需求内容至多输入1000字", groups = {Add.class, Update.class})
private String content; /**
* 网格的所有上级id
*/
private String gridPids;
/** /**
* 二级需求分类编码 * 二级需求分类编码
*/ */
@NotBlank(message = "需求类别不能为空",groups = Add.class) @NotBlank(message = "需求类别不能为空",groups = AddUserShowGroup.class)
private String categoryCode; private String categoryCode;
/** /**
* 父级需求分类编码 * 父级需求分类编码
*/ */
@NotBlank(message = "父级分类不能为空",groups = Add.class) @NotBlank(message = "需求类别不能为空",groups = AddUserShowGroup.class)
private String parentCode; private String parentCode;
/**
* 需求内容1000字
*/
@NotBlank(message = "需求内容不能为空",groups = AddUserShowGroup.class)
@Length(max = 1000,message = "需求内容至多输入1000字",groups = AddUserShowGroup.class)
private String content;
/** /**
* 希望服务时间 * 社区帮办community楼长帮办building_caption;党员帮办party;自身上报self_help
*/ */
@NotNull(message = "服务时间不能为空",groups = {Add.class, Update.class}) @NotBlank(message = "上报类型不能为空",groups = AddUserShowGroup.class)
private String reportType;
/**
* 上报人姓名
*/
@NotBlank(message = "上报人不能为空",groups = AddUserShowGroup.class)
private String reportUserName;
/**
* 上报人联系方式自身上报时存储注册居民的手机号
*/
@NotBlank(message = "上报人联系方式不能为空",groups = AddUserShowGroup.class)
private String reportUserMobile;
/**
* 上报时间
*/
@NotNull(message = "上报时间不能为空",groups = AddUserShowGroup.class)
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date wantServiceTime; private Date reportTime;
/** /**
* 需求人user.id或者ic_resi_user.id * 需求人user.id或者ic_resi_user.id
*/ */
@NotBlank(message = "需求人不能为空",groups ={AddInternalGroup.class, UpdateInternalGroup.class}) @NotNull(message = "需求人不能为空",groups = AddUserShowGroup.class)
private String demandUserId; private String demandUserId;
/** /**
* 需求人联系姓名 * 需求人姓名
*/ */
@NotBlank(message = "联系人不能为空",groups = {Add.class, Update.class}) @NotNull(message = "需求人不能为空",groups = AddUserShowGroup.class)
private String demandUserName; private String demandUserName;
/** /**
* 需求人联系电话 * 需求人联系电话
*/ */
@NotBlank(message = "联系电话不能为空",groups = {Add.class, Update.class}) @NotNull(message = "需求人不能为空",groups = AddUserShowGroup.class)
private String demandUserMobile; private String demandUserMobile;
/** /**
* 服务地点工作端指派默认居民居住房屋地址居民端地图选择 * 希望服务时间
*/
@NotBlank(message = "服务地点不能为空",groups = {Add.class, Update.class})
private String serviceLocation;
/**
* 门牌号详细地址
*/ */
@Length(max = 200, message = "门牌号至多输入200字", groups = {Add.class, Update.class}) @NotNull(message = "服务时间不能为空",groups = AddUserShowGroup.class)
private String locationDetail; @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date wantServiceTime;
/** /**
* 经度,需求人是ic的居民时取所住楼栋的中心点位 * 来源[需求录入:demand 事件管理:ic_event]
*/ */
private String longitude; private String origin;
/** /**
* 纬度,需求人是ic的居民时取所住楼栋的中心点位 * 来源Id[目前只有来源事件管理的有值]
*/ */
private String latitude; private String originId;
} }

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

@ -65,4 +65,6 @@ public class ProjectClosedFromDTO implements Serializable {
* 协办单位类型1社区自组织2联建单位 * 协办单位类型1社区自组织2联建单位
*/ */
private String assistanceUnitType; private String assistanceUnitType;
private String customerId;
} }

9
epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/GovProjectOpenFeignClient.java

@ -167,4 +167,13 @@ public interface GovProjectOpenFeignClient {
*/ */
@PostMapping("gov/project/icEvent/auto-evaluation") @PostMapping("gov/project/icEvent/auto-evaluation")
Result autoEvaluation(@RequestBody AutoEvaluationFormDTO formDTO); Result autoEvaluation(@RequestBody AutoEvaluationFormDTO formDTO);
/**
* Desc: 需求完成/项目结案时 修改事件数据
* @author sun
*/
@PostMapping("gov/project/icEvent/closeprojectordemand")
Result closeProjectOrDemand(@RequestBody ColseProjectOrDemandFormDTO formDTO);
} }

5
epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/fallback/GovProjectOpenFeignClientFallback.java

@ -164,4 +164,9 @@ public class GovProjectOpenFeignClientFallback implements GovProjectOpenFeignCli
public Result autoEvaluation(AutoEvaluationFormDTO formDTO) { public Result autoEvaluation(AutoEvaluationFormDTO formDTO) {
return ModuleUtils.feignConError(ServiceConstant.GOV_PROJECT_SERVER, "autoEvaluation",formDTO); return ModuleUtils.feignConError(ServiceConstant.GOV_PROJECT_SERVER, "autoEvaluation",formDTO);
} }
@Override
public Result closeProjectOrDemand(ColseProjectOrDemandFormDTO formDTO) {
return ModuleUtils.feignConError(ServiceConstant.GOV_PROJECT_SERVER, "closeProjectOrDemand",formDTO);
}
} }

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

@ -200,7 +200,7 @@ public class IcEventController {
public Result icEventToDemand(@LoginUser TokenDto tokenDto, @RequestBody IcDemandFormDTO formDTO){ public Result icEventToDemand(@LoginUser TokenDto tokenDto, @RequestBody IcDemandFormDTO formDTO){
formDTO.setCustomerId(tokenDto.getCustomerId()); formDTO.setCustomerId(tokenDto.getCustomerId());
formDTO.setDemandUserId(tokenDto.getUserId()); formDTO.setDemandUserId(tokenDto.getUserId());
ValidatorUtils.validateEntity(formDTO, IcDemandFormDTO.Add.class,IcDemandFormDTO.AddInternalGroup.class); ValidatorUtils.validateEntity(formDTO, IcDemandFormDTO.AddUserShowGroup.class, IcDemandFormDTO.AddUserInternalGroup.class);
icEventService.icEventToDemand(formDTO); icEventService.icEventToDemand(formDTO);
return new Result(); return new Result();
} }
@ -257,6 +257,7 @@ public class IcEventController {
List<IcEventAnalysisOrgResDTO> list = icEventService.analysisOrgTotal(formDTO); List<IcEventAnalysisOrgResDTO> list = icEventService.analysisOrgTotal(formDTO);
return new Result<List<IcEventAnalysisOrgResDTO>>().ok(list); return new Result<List<IcEventAnalysisOrgResDTO>>().ok(list);
} }
/** /**
* @Author sun * @Author sun
* @Description 事件管理-处理进展 * @Description 事件管理-处理进展
@ -279,4 +280,14 @@ public class IcEventController {
return new Result(); return new Result();
} }
/**
* @Author sun
* @Description 需求完成/项目结案时 修改事件数据
**/
@PostMapping("closeprojectordemand")
public Result closeProjectOrDemand(@RequestBody ColseProjectOrDemandFormDTO formDTO) {
icEventService.closeProjectOrDemand(formDTO);
return new Result();
}
} }

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

@ -171,4 +171,10 @@ public interface IcEventService extends BaseService<IcEventEntity> {
* @return * @return
*/ */
List<IcEventAnalysisOrgResDTO> analysisOrgTotal(IcEventCategoryAnalysisFormDTO formDTO); List<IcEventAnalysisOrgResDTO> analysisOrgTotal(IcEventCategoryAnalysisFormDTO formDTO);
/**
* @Author sun
* @Description 需求完成/项目结案时 修改事件数据
**/
void closeProjectOrDemand(ColseProjectOrDemandFormDTO formDTO);
} }

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

@ -715,6 +715,8 @@ public class IcEventServiceImpl extends BaseServiceImpl<IcEventDao, IcEventEntit
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "当前事件不允许转需求"); throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "当前事件不允许转需求");
} }
//2.调用转需求接口 //2.调用转需求接口
formDTO.setOrigin("ic_event");
formDTO.setOriginId(formDTO.getIcEventId());
Result<DemandRecId> recIdResult = epmetHeartOpenFeignClient.icEventToDemand(formDTO); Result<DemandRecId> recIdResult = epmetHeartOpenFeignClient.icEventToDemand(formDTO);
if (!recIdResult.success() || recIdResult.getData() == null) { if (!recIdResult.success() || recIdResult.getData() == null) {
throw new RenException(recIdResult.getCode(), recIdResult.getMsg()); throw new RenException(recIdResult.getCode(), recIdResult.getMsg());
@ -954,5 +956,40 @@ public class IcEventServiceImpl extends BaseServiceImpl<IcEventDao, IcEventEntit
return resultList; return resultList;
} }
/**
* @Author sun
* @Description 需求完成/项目结案时 修改事件数据
**/
@Override
public void closeProjectOrDemand(ColseProjectOrDemandFormDTO formDTO) {
//1.查询事件数据
IcEventEntity entity = baseDao.selectById(formDTO.getIcEventId());
if (null == entity || "closed_case".equals(entity.getStatus())) {
logger.error(String.format("事件不存在或已办结不允许修改,事件Id->%s", formDTO.getIcEventId()));
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "事件不存在或已办结不允许修改");
}
//2.修改事件数据
entity.setStatus("closed_case");
entity.setCloseCaseTime(new Date());
entity.setLatestOperatedTime(new Date());
baseDao.updateById(entity);
//3.判断新增操作记录
if ("demand".equals(formDTO.getType())) {
IcEventOperationLogEntity logEntity = new IcEventOperationLogEntity();
logEntity.setIcEventId(formDTO.getIcEventId());
logEntity.setCustomerId(formDTO.getCustomerId());
logEntity.setUserId(formDTO.getUserId());
logEntity.setUserIdentity("staff");
logEntity.setActionCode("close_demand");
logEntity.setActionDesc("close_demand");
logEntity.setOperateTime(new Date());
logEntity.setServiceParty(formDTO.getServiceParty());
logEntity.setActualServiceTime(formDTO.getActualServiceTime());
icEventOperationLogService.insert(logEntity);
}
}
} }

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

@ -152,6 +152,8 @@ public class ProjectServiceImpl extends BaseServiceImpl<ProjectDao, ProjectEntit
private BlockChainUploadService blockChainUploadService; private BlockChainUploadService blockChainUploadService;
@Autowired @Autowired
private ProjectSatisfactionDetailDao satisfactionDetailDao; private ProjectSatisfactionDetailDao satisfactionDetailDao;
@Autowired
private IcEventService icEventService;
private final static String ONE_DAY = "<1"; private final static String ONE_DAY = "<1";
@ -851,6 +853,18 @@ public class ProjectServiceImpl extends BaseServiceImpl<ProjectDao, ProjectEntit
String errorMsg = ExceptionUtils.getThrowableErrorStackTrace(e); String errorMsg = ExceptionUtils.getThrowableErrorStackTrace(e);
log.error("【项目流转】上链失败,错误信息:{}", errorMsg); log.error("【项目流转】上链失败,错误信息:{}", errorMsg);
} }
//2022-5-19 sun 需求完成时 来源事件管理的需求需要去修改事件数据 start
if ("ic_event".equals(projectEntity.getOrigin())) {
ColseProjectOrDemandFormDTO dto = new ColseProjectOrDemandFormDTO();
dto.setCustomerId(fromDTO.getCustomerId());
dto.setUserId(fromDTO.getUserId());
dto.setIcEventId(projectEntity.getOriginId());
dto.setType("project");
icEventService.closeProjectOrDemand(dto);
}
//2022-5-19 sun end
} }
@Override @Override

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

@ -158,6 +158,7 @@ public class ProjectTraceServiceImpl<ProjectTagService> implements ProjectTraceS
@Override @Override
public void closedV2(TokenDto tokenDto, ProjectClosedFromDTO fromDTO) { public void closedV2(TokenDto tokenDto, ProjectClosedFromDTO fromDTO) {
fromDTO.setUserId(tokenDto.getUserId()); fromDTO.setUserId(tokenDto.getUserId());
fromDTO.setCustomerId(tokenDto.getCustomerId());
projectService.closedV2(fromDTO); projectService.closedV2(fromDTO);
} }

Loading…
Cancel
Save