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;
/**
* 来源[需求录入:demand 事件管理:ic_event]
*/
private String origin;
/**
* 来源Id[目前只有来源事件管理的有值]
*/
private String originId;
/**
* 删除标识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
*/
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.result.SyncScanResult;
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.ScanContentUtils;
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.demand.*;
import com.epmet.entity.*;
import com.epmet.feign.EpmetAdminOpenFeignClient;
import com.epmet.feign.EpmetMessageOpenFeignClient;
import com.epmet.feign.EpmetUserOpenFeignClient;
import com.epmet.feign.GovOrgOpenFeignClient;
import com.epmet.feign.*;
import com.epmet.service.*;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
@ -108,6 +106,8 @@ public class IcUserDemandRecServiceImpl extends BaseServiceImpl<IcUserDemandRecD
private String scanApiUrl;
@Value("${openapi.scan.method.textSyncScan}")
private String textSyncScanMethod;
@Autowired
private GovProjectOpenFeignClient govProjectOpenFeignClient;
@Override
@ -516,6 +516,27 @@ public class IcUserDemandRecServiceImpl extends BaseServiceImpl<IcUserDemandRecD
// 5、如果是居民端用户提出的需求,发消息:您提出的需求已完成,请进行服务评价。
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;
}

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
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 {
}
@NotBlank(message = "事件id不能为空",groups = AddInternalGroup.class)
@NotBlank(message = "事件id不能为空",groups = AddUserInternalGroup.class)
private String icEventId;
@NotBlank(message = "需求id不能为空",groups = UpdateInternalGroup.class)
private String demandRecId;
@NotBlank(message = "customerId不能为空", groups = {AddInternalGroup.class, UpdateInternalGroup.class})
private String customerId;
private String currentUserId;
/**
* 网格id
*/
@NotBlank(message = "所属网格不能为空",groups = {AddInternalGroup.class})
@NotBlank(message = "所属网格不能为空",groups = AddUserShowGroup.class)
private String gridId;
/**
* 需求内容1000字
* 组织id
*/
@NotBlank(message = "需求内容不能为空", groups = {Add.class, Update.class})
@Length(max = 1000, message = "需求内容至多输入1000字", groups = {Add.class, Update.class})
private String content;
private String agencyId;
/**
* 网格的所有上级id
*/
private String gridPids;
/**
* 二级需求分类编码
*/
@NotBlank(message = "需求类别不能为空",groups = Add.class)
@NotBlank(message = "需求类别不能为空",groups = AddUserShowGroup.class)
private String categoryCode;
/**
* 父级需求分类编码
*/
@NotBlank(message = "父级分类不能为空",groups = Add.class)
@NotBlank(message = "需求类别不能为空",groups = AddUserShowGroup.class)
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")
private Date wantServiceTime;
private Date reportTime;
/**
* 需求人user.id或者ic_resi_user.id
*/
@NotBlank(message = "需求人不能为空",groups ={AddInternalGroup.class, UpdateInternalGroup.class})
@NotNull(message = "需求人不能为空",groups = AddUserShowGroup.class)
private String demandUserId;
/**
* 需求人联系姓名
* 需求人姓名
*/
@NotBlank(message = "联系人不能为空",groups = {Add.class, Update.class})
@NotNull(message = "需求人不能为空",groups = AddUserShowGroup.class)
private String demandUserName;
/**
* 需求人联系电话
*/
@NotBlank(message = "联系电话不能为空",groups = {Add.class, Update.class})
@NotNull(message = "需求人不能为空",groups = AddUserShowGroup.class)
private String demandUserMobile;
/**
* 服务地点工作端指派默认居民居住房屋地址居民端地图选择
*/
@NotBlank(message = "服务地点不能为空",groups = {Add.class, Update.class})
private String serviceLocation;
/**
* 门牌号详细地址
* 希望服务时间
*/
@Length(max = 200, message = "门牌号至多输入200字", groups = {Add.class, Update.class})
private String locationDetail;
@NotNull(message = "服务时间不能为空",groups = AddUserShowGroup.class)
@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联建单位
*/
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")
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) {
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){
formDTO.setCustomerId(tokenDto.getCustomerId());
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);
return new Result();
}
@ -257,6 +257,7 @@ public class IcEventController {
List<IcEventAnalysisOrgResDTO> list = icEventService.analysisOrgTotal(formDTO);
return new Result<List<IcEventAnalysisOrgResDTO>>().ok(list);
}
/**
* @Author sun
* @Description 事件管理-处理进展
@ -279,4 +280,14 @@ public class IcEventController {
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
*/
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(), "当前事件不允许转需求");
}
//2.调用转需求接口
formDTO.setOrigin("ic_event");
formDTO.setOriginId(formDTO.getIcEventId());
Result<DemandRecId> recIdResult = epmetHeartOpenFeignClient.icEventToDemand(formDTO);
if (!recIdResult.success() || recIdResult.getData() == null) {
throw new RenException(recIdResult.getCode(), recIdResult.getMsg());
@ -954,5 +956,40 @@ public class IcEventServiceImpl extends BaseServiceImpl<IcEventDao, IcEventEntit
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;
@Autowired
private ProjectSatisfactionDetailDao satisfactionDetailDao;
@Autowired
private IcEventService icEventService;
private final static String ONE_DAY = "<1";
@ -851,6 +853,18 @@ public class ProjectServiceImpl extends BaseServiceImpl<ProjectDao, ProjectEntit
String errorMsg = ExceptionUtils.getThrowableErrorStackTrace(e);
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

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
public void closedV2(TokenDto tokenDto, ProjectClosedFromDTO fromDTO) {
fromDTO.setUserId(tokenDto.getUserId());
fromDTO.setCustomerId(tokenDto.getCustomerId());
projectService.closedV2(fromDTO);
}

Loading…
Cancel
Save