Browse Source

项目处理提交 init

dev
liuchuang 6 years ago
parent
commit
02011add7b
  1. 42
      esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/item/form/ItemHandleSubmitFormDTO.java
  2. 2
      esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/item/result/ItemHandleResultDTO.java
  3. 4
      esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/enums/ItemHandleCategoryEnum.java
  4. 13
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/controller/ItemController.java
  5. 4
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/dao/ItemDao.java
  6. 9
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/dao/ItemDeptDao.java
  7. 5
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/entity/ItemHandleProcessEntity.java
  8. 20
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/service/ItemDeptService.java
  9. 18
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/service/ItemService.java
  10. 24
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/service/impl/ItemDeptServiceImpl.java
  11. 93
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/service/impl/ItemServiceImpl.java
  12. 7
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/mapper/item/ItemDao.xml
  13. 3
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/mapper/item/ItemDeptDao.xml

42
esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/item/form/ItemHandleSubmitFormDTO.java

@ -0,0 +1,42 @@
package com.elink.esua.epdc.dto.item.form;
import com.elink.esua.epdc.dto.item.result.ItemCirculationDeptResultDTO;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* 项目处理提交Form DTO
* @Author LC
* @Date 2019/9/16 19:01
*/
@Data
public class ItemHandleSubmitFormDTO implements Serializable {
private static final long serialVersionUID = -5395350316792859552L;
/**
* 项目ID
*/
private String itemId;
/**
* 处理意见内部
*/
private String handleAdvice;
/**
* 处理意见外部
*/
private String outHandleAdvice;
/**
* 处理方式0 处理1 流转协助5 关闭10 结案
*/
private int handleCategory;
/**
* 流转协助部门
*/
private List<ItemCirculationDeptResultDTO> deptResultDTOS;
}

2
esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/item/result/ItemHandleResultDTO.java

@ -14,7 +14,7 @@ public class ItemHandleResultDTO implements Serializable {
private static final long serialVersionUID = 3063932519189475757L;
/**
* 处理结果 0流转协助1我来处理5关闭10结案
* 处理结果 0处理1流转协助5关闭10结案
*/
private int processResult;
/**

4
esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/enums/ItemHandleCategoryEnum.java

@ -12,8 +12,8 @@ import java.util.List;
*/
public enum ItemHandleCategoryEnum {
HANDLE_CIRCULATION_ASSISTANCE(0, "流转协助"),
HANDLE_I_HANDLE(1, "处理"),
HANDLE_CIRCULATION_ASSISTANCE(0, "处理"),
HANDLE_I_HANDLE(1, "流转协助"),
HANDLE_CLOSE(5, "关闭"),
HANDLE_CLOSING_CASE(10, "结案");

13
esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/controller/ItemController.java

@ -27,6 +27,7 @@ import com.elink.esua.epdc.commons.tools.validator.group.UpdateGroup;
import com.elink.esua.epdc.commons.tools.validator.group.DefaultGroup;
import com.elink.esua.epdc.dto.item.ItemDTO;
import com.elink.esua.epdc.dto.item.ItemPendingHandleDTO;
import com.elink.esua.epdc.dto.item.form.ItemHandleSubmitFormDTO;
import com.elink.esua.epdc.dto.item.result.ItemDetailForPCEndResultDTO;
import com.elink.esua.epdc.modules.item.excel.ItemExcel;
import com.elink.esua.epdc.modules.item.service.ItemService;
@ -107,4 +108,16 @@ public class ItemController {
ExcelUtils.exportExcelToTarget(response, null, list, ItemExcel.class);
}
/**
* 项目处理提交
* @Params: [dto]
* @Return: com.elink.esua.epdc.commons.tools.utils.Result
* @Author: liuchuang
* @Date: 2019/9/16 19:09
*/
@PostMapping("itemHandleSubmit")
public Result itemHandleSubmit(@RequestBody ItemHandleSubmitFormDTO dto) {
return itemService.modifyHandleResult(dto);
}
}

4
esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/dao/ItemDao.java

@ -96,11 +96,11 @@ public interface ItemDao extends BaseDao<ItemEntity> {
/**
* 项目处理进度
* @Params: [issueId, itemId]
* @Params: [issueId, itemId, outOrInside(0内部数据 1外部数据)]
* @Return: com.elink.esua.epdc.dto.item.result.ItemHandleProgressResultDTO
* @Author: liuchuang
* @Date: 2019/9/16 18:37
*/
List<ItemHandleProgressResultDTO> selectListOfItemHandleProgress(String issueId, String itemId);
List<ItemHandleProgressResultDTO> selectListOfItemHandleProgress(String issueId, String itemId, int outOrInside);
}

9
esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/dao/ItemDeptDao.java

@ -40,4 +40,13 @@ public interface ItemDeptDao extends BaseDao<ItemDeptEntity> {
* @Date: 2019/9/16 11:05
*/
List<ItemDeptDTO> getItemDept(String itemId, Long handerDeptId);
/**
* 删除已流转协助部门
* @Params: [createdDeptId]
* @Return: void
* @Author: liuchuang
* @Date: 2019/9/16 20:20
*/
void updateItemDepts(Long createdDeptId, String itemId);
}

5
esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/entity/ItemHandleProcessEntity.java

@ -51,6 +51,11 @@ public class ItemHandleProcessEntity extends BaseEpdcEntity {
*/
private String handleAdvice;
/**
* 处理意见外部
*/
private String outHandleAdvice;
/**
* 操作人部门ID
*/

20
esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/service/ItemDeptService.java

@ -19,6 +19,8 @@ package com.elink.esua.epdc.modules.item.service;
import com.elink.esua.epdc.commons.mybatis.service.BaseService;
import com.elink.esua.epdc.dto.item.ItemDeptDTO;
import com.elink.esua.epdc.dto.item.form.ItemHandleSubmitFormDTO;
import com.elink.esua.epdc.dto.item.result.ItemCirculationDeptResultDTO;
import com.elink.esua.epdc.modules.item.entity.ItemDeptEntity;
import java.util.List;
@ -49,4 +51,22 @@ public interface ItemDeptService extends BaseService<ItemDeptEntity> {
* @Date: 2019/9/16 11:03
*/
List<ItemDeptDTO> listOfItemDept(String itemId, Long createdDeptId);
/**
* 删除已流转协助部门
* @Params: [createdDeptId]
* @Return: void
* @Author: liuchuang
* @Date: 2019/9/16 20:08
*/
void modifyItemDepts(Long createdDeptId, String itemId);
/**
* 新增流转协助部门
* @Params: [createdDeptId, deptResultDTOS]
* @Return: void
* @Author: liuchuang
* @Date: 2019/9/16 20:08
*/
void saveItemDepts(Long createdDeptId, ItemHandleSubmitFormDTO formDTO);
}

18
esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/service/ItemService.java

@ -22,10 +22,7 @@ import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.item.ItemDTO;
import com.elink.esua.epdc.dto.item.ItemPendingHandleDTO;
import com.elink.esua.epdc.dto.item.form.ItemCategoryStatisticsFormDTO;
import com.elink.esua.epdc.dto.item.form.EvaluationFormDTO;
import com.elink.esua.epdc.dto.item.form.ItemDetailFormDTO;
import com.elink.esua.epdc.dto.item.form.ItemFormDTO;
import com.elink.esua.epdc.dto.item.form.*;
import com.elink.esua.epdc.dto.item.result.*;
import com.elink.esua.epdc.modules.item.entity.ItemEntity;
@ -159,10 +156,19 @@ public interface ItemService extends BaseService<ItemEntity> {
/**
* 项目处理进度
* @Params: [itemId]
* @Params: [itemId, outOrInside(0内部数据 1外部数据)]
* @Return: java.util.List<com.elink.esua.epdc.dto.item.result.ItemHandleProgressResultDTO>
* @Author: liuchuang
* @Date: 2019/9/16 17:48
*/
List<ItemHandleProgressResultDTO> listOfItemHandleProgress(String itemId);
List<ItemHandleProgressResultDTO> listOfItemHandleProgress(String itemId, int outOrInside);
/**
* 项目处理提交
* @Params: [dto]
* @Return: com.elink.esua.epdc.commons.tools.utils.Result
* @Author: liuchuang
* @Date: 2019/9/16 19:10
*/
Result modifyHandleResult(ItemHandleSubmitFormDTO dto);
}

24
esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/service/impl/ItemDeptServiceImpl.java

@ -19,12 +19,15 @@ package com.elink.esua.epdc.modules.item.service.impl;
import com.elink.esua.epdc.commons.mybatis.service.impl.BaseServiceImpl;
import com.elink.esua.epdc.dto.item.ItemDeptDTO;
import com.elink.esua.epdc.dto.item.form.ItemHandleSubmitFormDTO;
import com.elink.esua.epdc.dto.item.result.ItemCirculationDeptResultDTO;
import com.elink.esua.epdc.modules.item.dao.ItemDeptDao;
import com.elink.esua.epdc.modules.item.entity.ItemDeptEntity;
import com.elink.esua.epdc.modules.item.service.ItemDeptService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@ -49,4 +52,25 @@ public class ItemDeptServiceImpl extends BaseServiceImpl<ItemDeptDao, ItemDeptEn
return baseDao.getItemDept(itemId, createdDeptId);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void modifyItemDepts(Long createdDeptId, String itemId) {
baseDao.updateItemDepts(createdDeptId, itemId);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void saveItemDepts(Long createdDeptId, ItemHandleSubmitFormDTO formDTO) {
List<ItemDeptEntity> deptEntities = new ArrayList<>();
for (ItemCirculationDeptResultDTO dto:
formDTO.getDeptResultDTOS()) {
ItemDeptEntity entity = new ItemDeptEntity();
entity.setItemId(formDTO.getItemId());
entity.setDeptId(dto.getDeptId());
entity.setCreatedDeptId(createdDeptId);
deptEntities.add(entity);
}
this.insertBatch(deptEntities);
}
}

93
esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/service/impl/ItemServiceImpl.java

@ -30,22 +30,22 @@ import com.elink.esua.epdc.commons.tools.security.user.UserDetail;
import com.elink.esua.epdc.commons.tools.utils.ConvertUtils;
import com.elink.esua.epdc.commons.tools.utils.DateUtils;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.constant.EventIssueItemState;
import com.elink.esua.epdc.dto.CompleteDeptDTO;
import com.elink.esua.epdc.dto.SysDeptDTO;
import com.elink.esua.epdc.dto.item.ItemDTO;
import com.elink.esua.epdc.dto.item.ItemDeptDTO;
import com.elink.esua.epdc.dto.item.ItemPendingHandleDTO;
import com.elink.esua.epdc.dto.item.form.ItemCategoryStatisticsFormDTO;
import com.elink.esua.epdc.dto.item.form.EvaluationFormDTO;
import com.elink.esua.epdc.dto.item.form.ItemDetailFormDTO;
import com.elink.esua.epdc.dto.item.form.ItemFormDTO;
import com.elink.esua.epdc.dto.item.form.*;
import com.elink.esua.epdc.dto.item.result.*;
import com.elink.esua.epdc.enums.ItemHandleCategoryEnum;
import com.elink.esua.epdc.modules.events.service.EpdcEventsService;
import com.elink.esua.epdc.modules.feign.AdminFeignClient;
import com.elink.esua.epdc.modules.item.dao.ItemDao;
import com.elink.esua.epdc.modules.item.entity.ItemEntity;
import com.elink.esua.epdc.modules.item.entity.ItemHandleProcessEntity;
import com.elink.esua.epdc.modules.item.service.ItemDeptService;
import com.elink.esua.epdc.modules.item.service.ItemHandleProcessService;
import com.elink.esua.epdc.modules.item.service.ItemService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
@ -72,6 +72,9 @@ public class ItemServiceImpl extends BaseServiceImpl<ItemDao, ItemEntity> implem
@Autowired
private AdminFeignClient adminFeignClient;
@Autowired
private ItemHandleProcessService itemHandleProcessService;
@Override
public PageData<ItemDTO> page(Map<String, Object> params) {
IPage<ItemEntity> page = baseDao.selectPage(
@ -201,7 +204,7 @@ public class ItemServiceImpl extends BaseServiceImpl<ItemDao, ItemEntity> implem
resultDTO = this.getHandleCategoryAndCirculationDeptOfStreet(resultDTO, itemDeptDTOS);
}
// 获取项目处理进度
List<ItemHandleProgressResultDTO> dtoList = this.listOfItemHandleProgress(id);
List<ItemHandleProgressResultDTO> dtoList = this.listOfItemHandleProgress(id, 0);
resultDTO.setHandleProgressResultDTOS(dtoList);
return resultDTO;
@ -343,8 +346,84 @@ public class ItemServiceImpl extends BaseServiceImpl<ItemDao, ItemEntity> implem
}
@Override
public List<ItemHandleProgressResultDTO> listOfItemHandleProgress(String itemId) {
public List<ItemHandleProgressResultDTO> listOfItemHandleProgress(String itemId, int outOrInside) {
ItemEntity entity = this.selectById(itemId);
return baseDao.selectListOfItemHandleProgress(entity.getIssueId(), itemId);
return baseDao.selectListOfItemHandleProgress(entity.getIssueId(), itemId, outOrInside);
}
@Override
@Transactional(rollbackFor = Exception.class)
public Result modifyHandleResult(ItemHandleSubmitFormDTO dto) {
try {
ItemHandleProcessEntity handleProcessEntity = new ItemHandleProcessEntity();
if (ItemHandleCategoryEnum.HANDLE_CIRCULATION_ASSISTANCE.getValue() == dto.getHandleCategory()) {
// 项目流转校验
Result checkResult = this.checkItemCirculation(dto);
if (!checkResult.success()) {
return checkResult;
}
handleProcessEntity.setState(EventIssueItemState.ITEM_HANDLING);
// 删除已流转协助部门
itemDeptService.modifyItemDepts(SecurityUser.getDeptId(), dto.getItemId());
// 新增流转协助部门
itemDeptService.saveItemDepts(SecurityUser.getDeptId(), dto);
} else {
handleProcessEntity.setState(dto.getHandleCategory());
// 更新项目状态
if (ItemHandleCategoryEnum.HANDLE_CLOSE.getValue() == dto.getHandleCategory() ||
ItemHandleCategoryEnum.HANDLE_CLOSING_CASE.getValue() == dto.getHandleCategory()) {
ItemEntity itemEntity = new ItemEntity();
itemEntity.setId(dto.getItemId());
itemEntity.setItemState(dto.getHandleCategory());
this.insert(itemEntity);
}
}
// 记录处理记录
handleProcessEntity.setItemId(dto.getItemId());
handleProcessEntity.setHandleAdvice(dto.getHandleAdvice());
handleProcessEntity.setOutHandleAdvice(dto.getOutHandleAdvice());
handleProcessEntity.setHandlerDeptId(SecurityUser.getDeptId());
itemHandleProcessService.insert(handleProcessEntity);
} catch (Exception e) {
e.printStackTrace();
}
return new Result();
}
/**
* 项目流转校验
* @Params: [dto]
* @Return: com.elink.esua.epdc.commons.tools.utils.Result
* @Author: liuchuang
* @Date: 2019/9/16 19:42
*/
private Result checkItemCirculation(ItemHandleSubmitFormDTO dto) {
// 校验是否跨级流转
String typeKey = "";
for (ItemCirculationDeptResultDTO circulationDeptResultDTO:
dto.getDeptResultDTOS()) {
if (typeKey.equals(circulationDeptResultDTO.getTypeKey())) {
return new Result().error("不可跨部门流转协助,请重新选择流转协助部门");
}
typeKey = circulationDeptResultDTO.getTypeKey();
}
// 如果当前流转协助是网格发起,判断其街道党工委是否已将该项目流转协助
UserDetail user = SecurityUser.getUser();
if (OrganizationTypeConstant.ORG_TYPE_GRID_PARTY.equals(user.getTypeKey())) {
Result<CompleteDeptDTO> completeDept = adminFeignClient.getCompleteDept(SecurityUser.getDeptId());
if (!completeDept.success()) {
return new Result().error("获取机构信息失败,请稍后重试");
}
// 获取街道党工委已流转协助部门
List<ItemDeptDTO> itemDeptDTOS = itemDeptService.listOfItemDept(dto.getItemId(), completeDept.getData().getStreetId());
if (null != itemDeptDTOS && itemDeptDTOS.size() > 0) {
return new Result().error(completeDept.getData().getStreet()+"已将该项目流转协助到其他部门,不能重新流转协助");
}
}
return new Result();
}
}

7
esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/mapper/item/ItemDao.xml

@ -288,7 +288,12 @@
AND ISSUE_ID = #{issueId} UNION ALL
SELECT
CREATED_TIME AS createdTime,
HANDLE_ADVICE AS advice,
<if test="outOrInside == 0">
HANDLE_ADVICE AS advice,
</if>
<if test="outOrInside == 1">
OUT_HANDLE_ADVICE AS advice,
</if>
( CASE WHEN STATE = 0 THEN '处理中' WHEN STATE = 5 THEN '已关闭' WHEN STATE = 10 THEN '已结案' ELSE '' END ) AS stateName
FROM
epdc_item_handle_process

3
esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/mapper/item/ItemDeptDao.xml

@ -7,4 +7,7 @@
SELECT * FROM epdc_item_dept WHERE DEL_FLAG = '0' AND ITEM_ID = #{itemId} AND CREATED_DEPT_ID = #{createdDeptId} AND DEPT_ID != #{createdDeptId}
</select>
<update id="updateItemDepts">
UPDATE epdc_item_dept SET DEL_FLAG = '1' WHERE CREATED_DEPT_ID = #{createdDeptId} AND ITEM_ID = #{itemId}
</update>
</mapper>

Loading…
Cancel
Save