package cn.gistack.sm.sjztmd.service.impl;
|
|
import cn.gistack.common.config.MyThreadPoolConfig;
|
import cn.gistack.sm.feedback.service.IFeedbackService;
|
import cn.gistack.sm.intelligentCall.vo.CallTaskStatistic;
|
import cn.gistack.sm.sjztmd.entity.TbAttResBase;
|
import cn.gistack.sm.sjztmd.mapper.TbAttResBaseMapper;
|
import cn.gistack.sm.sjztmd.service.ITbAttResBaseService;
|
import cn.gistack.system.user.feign.IUserClient;
|
import com.baomidou.dynamic.datasource.annotation.DS;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import org.springblade.core.secure.utils.AuthUtil;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
import java.text.SimpleDateFormat;
|
import java.util.*;
|
import java.util.concurrent.CompletableFuture;
|
import java.util.concurrent.ExecutionException;
|
import java.util.concurrent.ThreadPoolExecutor;
|
|
/**
|
* @ClassName AttResBaseServiceImpl
|
* @Description TODO
|
* @author zhongrj
|
* @date 2023/8/14
|
* @Version 1.0
|
*/
|
@Service
|
@DS("zt")
|
public class TbAttResBaseServiceImpl extends ServiceImpl<TbAttResBaseMapper, TbAttResBase> implements ITbAttResBaseService {
|
|
@Autowired
|
private IUserClient userClient;
|
|
@Autowired
|
private MyThreadPoolConfig myThreadPoolConfig;
|
|
/**
|
* 查询水库填报详情信息
|
* @param guid
|
* @return
|
*/
|
@Override
|
public TbAttResBase getDetailByGuid(String guid) {
|
return baseMapper.getDetailByGuid(guid);
|
}
|
|
/**
|
* 编辑
|
* @param tbAttResBase
|
* @return
|
*/
|
@Override
|
public boolean updateByGuid(TbAttResBase tbAttResBase) {
|
// 查询是否存在
|
TbAttResBase detail = baseMapper.getDetailByGuid(tbAttResBase.getGuid());
|
// 更新审核日志
|
setUpdateLog(detail,tbAttResBase);
|
// 修改
|
int i = addOrUpdateByGuid(tbAttResBase);
|
if (i>0){
|
return true;
|
}
|
return false;
|
}
|
|
/**
|
* 审核
|
* @param tbAttResBase
|
* @return
|
*/
|
@Override
|
public boolean auditByGuid(TbAttResBase tbAttResBase) {
|
// 查询是否存在
|
TbAttResBase detail = baseMapper.getDetailByGuid(tbAttResBase.getGuid());
|
// 更新操作日志
|
setUpdateLog(detail,tbAttResBase);
|
// 更新审核日志
|
setUpdateCheckLog(detail,tbAttResBase);
|
if (null!=detail){
|
tbAttResBase.setGuid(detail.getGuid());
|
}
|
// 驳回情况下将状态修改回0即已填写未提交状态
|
if (tbAttResBase.getCheckState()==3){
|
tbAttResBase.setCheckState(0);
|
}
|
// 更新数据
|
int i = baseMapper.updateById(tbAttResBase);
|
if (i>0){
|
return true;
|
}
|
return false;
|
}
|
|
/**
|
* 更新
|
* @param tbAttResBase
|
* @return
|
*/
|
private int addOrUpdateByGuid(TbAttResBase tbAttResBase){
|
int i = 0;
|
if (null!=tbAttResBase.getGuid()){
|
// 更新
|
i = baseMapper.updateById(tbAttResBase);
|
}else {
|
tbAttResBase.setCreateTime(new Date());
|
i = baseMapper.insert(tbAttResBase);
|
}
|
// 返回
|
return i;
|
}
|
|
/**
|
* @param oldAbAttResBase
|
* @param newTbAttResBase
|
* 更新审核记录
|
*/
|
private void setUpdateCheckLog(TbAttResBase oldAbAttResBase,TbAttResBase newTbAttResBase) {
|
String fillName = "";
|
if (newTbAttResBase.getCheckState()==2){
|
fillName = "审核";
|
}
|
if (newTbAttResBase.getCheckState()==3){
|
fillName = "退回" + (null==newTbAttResBase.getCheckLog()?"":":" + newTbAttResBase.getCheckLog());
|
}
|
|
// 拼接
|
String time = new SimpleDateFormat("yyyy-MM-dd HH:mm").format(new Date());
|
String userName = AuthUtil.getUser().getUserName();
|
String phone = userClient.userInfoById(AuthUtil.getUserId()).getData().getPhone();
|
StringBuilder builder = new StringBuilder();
|
builder.append(time)
|
.append(",")
|
.append(fillName)
|
.append(",")
|
.append(userName)
|
.append(",")
|
.append(phone)
|
.append(";");
|
// 判断是否存在
|
if (null==oldAbAttResBase){
|
// 填报
|
newTbAttResBase.setCheckLog(builder.toString());
|
}else {
|
StringBuilder stringBuilder = new StringBuilder(null==oldAbAttResBase.getCheckLog()?"":oldAbAttResBase.getCheckLog());
|
stringBuilder.append(builder);
|
// 填报
|
newTbAttResBase.setCheckLog(stringBuilder.toString());
|
}
|
}
|
|
/**
|
* @param oldAbAttResBase
|
* @param newTbAttResBase
|
* 更新操作记录
|
*/
|
private void setUpdateLog(TbAttResBase oldAbAttResBase,TbAttResBase newTbAttResBase) {
|
String fillName = "";
|
if (newTbAttResBase.getCheckState()==0){
|
fillName = "编辑";
|
}
|
if (newTbAttResBase.getCheckState()==1){
|
fillName = "提交";
|
}
|
if (newTbAttResBase.getCheckState()==2){
|
fillName = "审核";
|
}
|
if (newTbAttResBase.getCheckState()==3){
|
fillName = "退回" + (null==newTbAttResBase.getCheckLog()?"":":" + newTbAttResBase.getCheckLog());
|
}
|
// 管理员编辑
|
if (newTbAttResBase.getCheckState()==4){
|
fillName = "编辑";
|
newTbAttResBase.setCheckState(oldAbAttResBase.getCheckState());
|
}
|
|
// 拼接
|
String time = new SimpleDateFormat("yyyy-MM-dd HH:mm").format(new Date());
|
String userName = AuthUtil.getUser().getUserName();
|
String phone = userClient.userInfoById(AuthUtil.getUserId()).getData().getPhone();
|
StringBuilder builder = new StringBuilder();
|
builder.append(time)
|
.append(",")
|
.append(fillName)
|
.append(",")
|
.append(userName)
|
.append(",")
|
.append(phone)
|
.append(";");
|
// 判断是否存在
|
if (null==oldAbAttResBase){
|
// 填报
|
newTbAttResBase.setLog(builder.toString());
|
}else {
|
StringBuilder stringBuilder = new StringBuilder(null==oldAbAttResBase.getLog()?"":oldAbAttResBase.getLog());
|
stringBuilder.append(builder);
|
// 填报
|
newTbAttResBase.setLog(stringBuilder.toString());
|
}
|
}
|
|
/**
|
* 查询所有水库填报的状态信息
|
* @param resGuid
|
* @return
|
*/
|
@Override
|
public List<Map<String, Object>> getAllWaterFillInfoByResGuid(String resGuid) {
|
List<Map<String, Object>> list = new ArrayList<>();
|
ThreadPoolExecutor executor = myThreadPoolConfig.threadPoolExecutor();
|
// 查询水库基础填报数据
|
CompletableFuture<List<Map<String,Object>>> tbAttResBaseInfo = getTbAttResBaseInfo("tb_att_res_base",resGuid, executor);
|
// 查询水库其他填报数据
|
CompletableFuture<List<Map<String,Object>>> tbAttResBuildInfo = getTbInfo("tb_att_res_build_info",resGuid,executor);
|
CompletableFuture<List<Map<String,Object>>> tbAttResEngBene = getTbInfo("tb_att_res_eng_bene",resGuid,executor);
|
CompletableFuture<List<Map<String,Object>>> tbAttResInfomationProject = getTbInfo("tb_att_res_infomation_project",resGuid,executor);
|
CompletableFuture<List<Map<String,Object>>> tbAttResMgrSysB = getTbInfo("tb_att_res_mgr_sys_b",resGuid,executor);
|
CompletableFuture<List<Map<String,Object>>> tbAttResPowerStation = getTbInfo("tb_att_res_power_station",resGuid,executor);
|
CompletableFuture<List<Map<String,Object>>> tbAttResProjectUtilize = getTbInfo("tb_att_res_project_utilize",resGuid,executor);
|
CompletableFuture<List<Map<String,Object>>> tbAttResRsbNorspi = getTbInfo("tb_att_res_rsb_norspi",resGuid,executor);
|
CompletableFuture<List<Map<String,Object>>> tbAttResRsbSpillway = getTbInfo("tb_att_res_rsb_spillway",resGuid,executor);
|
CompletableFuture<List<Map<String,Object>>> tbAttResRsbVerspi = getTbInfo("tb_att_res_rsb_verspi",resGuid,executor);
|
CompletableFuture<List<Map<String,Object>>> tbAttResSafetyMonitor = getTbInfo("tb_att_res_safety_monitor",resGuid,executor);
|
CompletableFuture<List<Map<String,Object>>> tbAttResStagChar = getTbInfo("tb_att_res_stag_char",resGuid,executor);
|
CompletableFuture<List<Map<String,Object>>> tbAttResWaterBlock = getTbInfo("tb_att_res_water_block",resGuid,executor);
|
CompletableFuture<List<Map<String,Object>>> tbAttResWaterDelivery = getTbInfo("tb_att_res_water_delivery",resGuid,executor);
|
//等待所有任务执行完成
|
try {
|
CompletableFuture.allOf(
|
tbAttResBaseInfo,
|
tbAttResBuildInfo,
|
tbAttResEngBene,
|
tbAttResInfomationProject,
|
tbAttResMgrSysB,
|
tbAttResPowerStation,
|
tbAttResProjectUtilize,
|
tbAttResRsbNorspi,
|
tbAttResRsbSpillway,
|
tbAttResRsbVerspi,
|
tbAttResSafetyMonitor,
|
tbAttResStagChar,
|
tbAttResWaterBlock,
|
tbAttResWaterDelivery).get();
|
// 数据处理
|
list.addAll(tbAttResBaseInfo.get());
|
list.addAll(tbAttResBuildInfo.get());
|
list.addAll(tbAttResEngBene.get());
|
list.addAll(tbAttResInfomationProject.get());
|
list.addAll(tbAttResMgrSysB.get());
|
list.addAll(tbAttResPowerStation.get());
|
list.addAll(tbAttResProjectUtilize.get());
|
list.addAll(tbAttResRsbNorspi.get());
|
list.addAll(tbAttResRsbSpillway.get());
|
list.addAll(tbAttResRsbVerspi.get());
|
list.addAll(tbAttResSafetyMonitor.get());
|
list.addAll(tbAttResStagChar.get());
|
list.addAll(tbAttResWaterBlock.get());
|
list.addAll(tbAttResWaterDelivery.get());
|
} catch (InterruptedException e) {
|
e.printStackTrace();
|
} catch (ExecutionException e) {
|
e.printStackTrace();
|
}
|
// 返回
|
return list;
|
}
|
|
/**
|
* 查询水库基础填报数据
|
* @param tableName
|
* @param resGuid
|
* @param executor
|
* @return
|
*/
|
private CompletableFuture<List<Map<String,Object>>> getTbAttResBaseInfo(String tableName,String resGuid,ThreadPoolExecutor executor){
|
return CompletableFuture.supplyAsync(()->{
|
// 查询所有水库填报的状态信息
|
return baseMapper.getTbAttResBaseInfo(resGuid,tableName);
|
},executor);
|
}
|
|
/**
|
* 查询水库其他填报数据
|
* @param tableName
|
* @param resGuid
|
* @param executor
|
* @return
|
*/
|
private CompletableFuture<List<Map<String,Object>>> getTbInfo(String tableName,String resGuid,ThreadPoolExecutor executor){
|
return CompletableFuture.supplyAsync(()->{
|
// 查询所有水库填报的状态信息
|
List<Map<String, Object>> tbInfo = baseMapper.getTbInfo(resGuid,"\'"+tableName+"'" ,"\""+tableName+"\"");
|
if (tbInfo.size()==0){
|
Map<String, Object> map = new HashMap<>(2);
|
map.put("NAME",tableName);
|
map.put("VALUE",-1);
|
tbInfo.add(map);
|
}
|
return tbInfo;
|
},executor);
|
}
|
}
|