screen-api/src/main/java/com/moral/api/config/Interceptor/SyncConfiguration.java
New file @@ -0,0 +1,42 @@ package com.moral.api.config.Interceptor; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.scheduling.annotation.EnableAsync; import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import java.util.concurrent.ThreadPoolExecutor; @Configuration @EnableAsync public class SyncConfiguration { @Bean(name = "asyncPoolTaskExecutor") public ThreadPoolTaskExecutor executor() { ThreadPoolTaskExecutor taskExecutor = new ThreadPoolTaskExecutor(); //核心线程数 taskExecutor.setCorePoolSize(10); //线程池维护线程的最大数量,只有在缓冲队列满了之后才会申请超过核心线程数的线程 taskExecutor.setMaxPoolSize(20); //缓存队列 taskExecutor.setQueueCapacity(50); //许的空闲时间,当超过了核心线程出之外的线程在空闲时间到达之后会被销毁 taskExecutor.setKeepAliveSeconds(200); //异步方法内部线程名称 taskExecutor.setThreadNamePrefix("async-"); /** * 当线程池的任务缓存队列已满并且线程池中的线程数目达到maximumPoolSize,如果还有任务到来就会采取任务拒绝策略 * 通常有以下四种策略: * ThreadPoolExecutor.AbortPolicy:丢弃任务并抛出RejectedExecutionException异常。 * ThreadPoolExecutor.DiscardPolicy:也是丢弃任务,但是不抛出异常。 * ThreadPoolExecutor.DiscardOldestPolicy:丢弃队列最前面的任务,然后重新尝试执行任务(重复此过程) * ThreadPoolExecutor.CallerRunsPolicy:重试添加当前的任务,自动重复调用 execute() 方法,直到成功 */ taskExecutor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy()); taskExecutor.initialize(); return taskExecutor; } } screen-api/src/main/java/com/moral/api/mapper/ResponsibilityUnitMapper.java
@@ -22,4 +22,12 @@ * 查询字典id */ List<Integer> selectCodeList(@Param("code") String code,@Param("id") Integer id); /** * 查询字典类型名字 * @param code * @param id * @return */ String selectName(@Param("code") String code,@Param("id") Integer id); } screen-api/src/main/java/com/moral/api/pojo/ext/allocation/AllocationExt.java
@@ -1,5 +1,6 @@ package com.moral.api.pojo.ext.allocation; import com.baomidou.mybatisplus.annotation.TableField; import com.moral.api.entity.Allocation; import com.moral.api.pojo.vo.approvetable.ApproveTableListVo; import com.moral.api.pojo.vo.file.FileVo; @@ -34,4 +35,16 @@ @ApiModelProperty(value = "流程状态") private List<ApproveTableListVo> approveList; //主体单位名字 @TableField(exist = false) private String unitName; //上报单位名字 @TableField(exist = false) private String escalationUnitName; @TableField(exist = false) //污染类型名字 private String polluteTypeName; } screen-api/src/main/java/com/moral/api/pojo/ext/allocation/AllocationPageExt.java
@@ -1,6 +1,7 @@ package com.moral.api.pojo.ext.allocation; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.moral.api.entity.Allocation; import io.swagger.annotations.ApiModelProperty; @@ -27,4 +28,7 @@ @ApiModelProperty(value = "状态名字") private String stateName; //上报单位名字 private String escalationUnitName; } screen-api/src/main/java/com/moral/api/pojo/vo/allocation/AllocationVo.java
@@ -139,6 +139,13 @@ @TableField(exist = false) private String time; @TableField(exist = false) private String unitName; @TableField(exist = false) private String escalationUnitName; @TableField(exist = false) private String polluteTypeName; public static AllocationVo convert(AllocationExt allocationExt) { AllocationVo allocationVo = BeanConverts.convert(allocationExt, AllocationVo.class); screen-api/src/main/java/com/moral/api/pojo/vo/app/AppAllocationFindVo.java
@@ -74,6 +74,8 @@ @ApiModelProperty(value = "状态名字") private String stateName; //上报单位名字 private String escalationUnitName; public Integer getResidueDay() { int day=0; screen-api/src/main/java/com/moral/api/service/impl/AllocationServiceImpl.java
@@ -508,6 +508,9 @@ allocationExt.setFileChangeList(fileTableService.list(id,FileTableEnum.ALLOCATION_RECTIFICATION.value)); allocationExt.setFileApproveList(fileTableService.list(id,FileTableEnum.ALLOCATION_APPROVE.value)); allocationExt.setApproveList(approveTableService.listAll(id, FileTableEnum.ALLOCATION_FOUNDATION.value)); allocationExt.setUnitName(getUnitName(allocationExt.getUnitId()).getUnitName()); allocationExt.setEscalationUnitName(getUnitName(allocationExt.getEscalationUnitId()).getUnitName()); allocationExt.setPolluteTypeName(responsibilityUnitMapper.selectName(Constants.WU_RAN_LEI_XING,allocationExt.getPolluteType())); return allocationExt; } @@ -708,6 +711,8 @@ Page<AllocationPageExt> extAppPage = this.baseMapper.extAppPage(allocationPageCond.getPage().convertPage(),allocationPageCond); extAppPage.getRecords().forEach(it->{ Integer state = it.getState(); //获取上报单位名字 it.setEscalationUnitName(getUnitName(it.getEscalationUnitId()).getUnitName()); if (state.equals(AllocationApproveEnum.DRAFT.value)||state.equals(AllocationApproveEnum.UNDER_RECTIFICATION.value)){ if(integer==0||integer==1){ it.setStateName(AppAllocationStateEnum.TO_BE_PROCESSED.name); @@ -861,8 +866,13 @@ List<Integer> userList = responsibilityUnitMapper.selectCodeList(SysDictTypeEnum.SYS_JBD.getValue(),user.getUserId()); if(CollectionUtils.isNotEmpty(userList)){ //可以看,可以填 appAuthority.setCode(1); appAuthority.setName(AppAllocationStateEnum.COMPLETED.name); if (allocation.getState()>30){ appAuthority.setCode(2); appAuthority.setName(AppAllocationStateEnum.COMPLETED.name); }else { appAuthority.setCode(1); appAuthority.setName(AppAllocationStateEnum.COMPLETED.name); } return appAuthority; } if(Objects.nonNull(user.getUnitId())&&user.getUnitId()!=0){ @@ -877,7 +887,7 @@ appAuthority.setName(AppAllocationStateEnum.TO_BE_COMPLETED.name); return appAuthority; }else { appAuthority.setCode(1); appAuthority.setCode(2); appAuthority.setName(AppAllocationStateEnum.COMPLETED.name); return appAuthority; } @@ -891,7 +901,7 @@ appAuthority.setName(AppAllocationStateEnum.TO_BE_COMPLETED.name); return appAuthority; }else { appAuthority.setCode(1); appAuthority.setCode(2); appAuthority.setName(AppAllocationStateEnum.COMPLETED.name); return appAuthority; } @@ -943,4 +953,11 @@ } return f; } private ResponsibilityUnit getUnitName(Integer unitId){ ResponsibilityUnit responsibilityUnit = responsibilityUnitMapper.selectById(unitId); return responsibilityUnit; } } screen-api/src/main/java/com/moral/api/service/impl/UserServiceImpl.java
@@ -247,7 +247,7 @@ * @param appAllocationPushUserCond */ @Override @Async @Async("asyncPoolTaskExecutor") public void pushOneUser(Allocation appAllocationPushUserCond) { QxUser currentUser = UserHelper.getCurrentUser(); ResponsibilityUnit responsibilityUnit = responsibilityUnitMapper.selectById(appAllocationPushUserCond.getUnitId()); screen-api/src/main/resources/mapper/ResponsibilityUnitMapper.xml
@@ -42,4 +42,14 @@ select area_code from responsibility_unit t where unit_id = #{id} </select> <select id="selectName" resultType="java.lang.String"> select t1.dataValue from sys_dict_type t left join sys_dict_data t1 on t1.dict_type_id = t.id where t.is_delete = 0 and t.name = #{code} and t1.dataKey = #{id} and t1.is_delete = 0 </select> </mapper>