@ -4,6 +4,7 @@ import cn.afterturn.easypoi.excel.ExcelImportUtil;
import cn.afterturn.easypoi.excel.entity.ImportParams ;
import cn.afterturn.easypoi.excel.entity.result.ExcelImportResult ;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper ;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper ;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper ;
import com.baomidou.mybatisplus.core.metadata.IPage ;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page ;
@ -43,6 +44,7 @@ import java.io.InputStream;
import java.lang.reflect.Method ;
import java.math.BigDecimal ;
import java.math.RoundingMode ;
import java.time.LocalDateTime ;
import java.util.* ;
import java.util.stream.Collectors ;
import java.util.stream.DoubleStream ;
@ -97,6 +99,8 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM
@Autowired
HuzhouPlaninfoMapper planinfoMapper ;
@Autowired
private SysUserService userService ;
@Override
@ -511,6 +515,49 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM
@Override
public Object queryProjectInfoById ( String id ) {
// LambdaQueryWrapper<HuzhouPlaninfo> wrapper = new LambdaQueryWrapper<>();
// wrapper.eq(HuzhouPlaninfo::getProjectId,id);
// wrapper.eq(HuzhouPlaninfo::getTaskName,"造价评估报告确认");
// List<HuzhouPlaninfo> list = planinfoService.list(wrapper);
// if(list.size()==0){
// throw new EasyException("未找到造价评估报告确认阶段");
// }
// HuzhouPlaninfo planinfo1 = list.get(0);
// HuzhouProjectinfo huzhouProjectinfo = projectinfoMapper.selectById(id);
// String superLeader = "";
// //如果项目信息为空说明是子项目
// if(huzhouProjectinfo==null){
// HuzhouSubProjectinfo byId1 = subProjectinfoService.getById(id);
// superLeader = byId1.getSuperLeader();
// }else {
// superLeader=huzhouProjectinfo.getSuperLeader();
// }
// SysDict dict = sysDictService.getDictByCode("superLeader", superLeader);
// String dictName = dict.getName();
// //上级指导室中文名称查询角色有哪些人
// List<HashMap<String, String>> userDictByRoles = userService.getUserDictByRoles(dictName);
// ArrayList<String> strings = new ArrayList<>();
// if(userDictByRoles==null||userDictByRoles.size()==0){
// String error = "任务牵头处室"+dictName+"负责人未找到";
// throw new EasyException(error);
// }
// for (HashMap<String, String> map:userDictByRoles
// ) {
// String userid = map.get("value");
// strings.add(userid);
// }
// //启动流程
// WorkFlow workFlow1 = workflowService.createFlow("costEvalReportConfirm",planinfo1.getId());
// String processInstanceId = workFlow1.getProcessInstanceId();
// runtimeService.setVariable(processInstanceId, "startP", planinfo1.getCreateUser());//设置第四个人变量信息
// runtimeService.setVariable(processInstanceId, "taskLeadingDepartment", strings.get(0));//设置第四个人变量信息
// //修改可研技术审查报告确认节点id
// HuzhouPlaninfo huzhouPlaninfo1 = new HuzhouPlaninfo();
// huzhouPlaninfo1.setId(planinfo1.getId());
// huzhouPlaninfo1.setIsfinish("1");
// huzhouPlaninfo1.setActualStartTime(new Date());
// huzhouPlaninfo1.setActualEndTime(new Date());
// planinfoService.updateById(huzhouPlaninfo1);
HuzhouProjectinfo projectinfo = getById ( id ) ;
//projectinfo为空说明是子项目
if ( null = = projectinfo ) {
@ -1153,7 +1200,7 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM
public CountBoardOV showCountBoard ( ) {
HuzhouProjectinfo projectInfo = new HuzhouProjectinfo ( ) ;
//只要入库项目
// projectInfo.setStage("0");
ProjectInfoAuthSelect projectInfoAuthSelect = CommonUtils . setGetProjectInfoAuth ( projectInfo ) ;
List < HuzhouProjectinfoOV > projectinfoOVList = projectinfoMapper . getProjectAndChildInfoPageList ( projectInfoAuthSelect ) ;
List < HuzhouProjectinfoOV > rkList = projectinfoOVList . stream ( ) . filter ( x - > Objects . equals ( x . getType ( ) , "1" ) ) . collect ( Collectors . toList ( ) ) ;
@ -1166,10 +1213,10 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM
int ptNum = 0 ;
int rkNum = 0 ;
if ( numByType . get ( "1" ) ! = null ) {
pt Num= numByType . get ( "1" ) . getNum ( ) ;
rk Num= numByType . get ( "1" ) . getNum ( ) ;
}
if ( numByType . get ( "2" ) ! = null ) {
rk Num= numByType . get ( "2" ) . getNum ( ) ;
pt Num= numByType . get ( "2" ) . getNum ( ) ;
}
CountBoardOV result = CountBoardOV . builder ( ) . total ( String . valueOf ( total ) ) . ptNum ( String . valueOf ( ptNum ) ) . rkNum ( String . valueOf ( rkNum ) ) . build ( ) ;
//项目总进度
@ -1268,7 +1315,7 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM
int countryNum = 0 ;
HuzhouProjectinfo projectInfo = new HuzhouProjectinfo ( ) ;
ProjectInfoAuthSelect projectInfoAuthSelect = CommonUtils . setGetProjectInfoAuth ( projectInfo ) ;
List < HuzhouProjectinfoOV > projectinfoOVList = projectinfoMapper . getProjectAndChildInfoPageList ( projectInfoAuthSelect ) . stream ( ) . filter ( x - > ! x . getStage ( ) . equals ( "-1" ) ) . collect ( Collectors . toList ( ) ) ;
List < HuzhouProjectinfoOV > projectinfoOVList = projectinfoMapper . getProjectAndChildInfoPageList ( projectInfoAuthSelect ) ;
if ( projectinfoOVList . size ( ) > 0 ) {
total = projectinfoOVList . size ( ) ;
cityNum = projectinfoOVList . stream ( ) . filter ( x - > x . getAdminDivision ( ) . equals ( "市本级" ) ) . collect ( Collectors . toList ( ) ) . size ( ) ;
@ -1295,6 +1342,7 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM
HuzhouProjectinfo projectInfo = new HuzhouProjectinfo ( ) ;
//入库项目:1,配套项目:2
projectInfo . setType ( type ) ;
projectInfo . setStage ( "0" ) ;
ProjectInfoAuthSelect projectInfoAuthSelect = CommonUtils . setGetProjectInfoAuth ( projectInfo ) ;
List < HuzhouProjectinfoOV > projectinfoOVList = projectinfoMapper . getProjectAndChildInfoPageList ( projectInfoAuthSelect ) . stream ( ) . filter ( x - > ! x . getStage ( ) . equals ( "-1" ) ) . collect ( Collectors . toList ( ) ) ;
if ( projectinfoOVList . size ( ) > 0 ) {
@ -1519,6 +1567,7 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM
stageMap . put ( "5" , "项目验收阶段" ) ; //验收
//只要入库项目
projectInfo . setType ( "1" ) ;
projectInfo . setStage ( "0" ) ;
projectInfo . setDutyWorkplace ( projectInfo . getDutyWorkplace ( ) ) ;
ProjectInfoAuthSelect projectInfoAuthSelect = CommonUtils . setGetProjectInfoAuth ( projectInfo ) ;
Page page = new Page ( 1 , 10000 ) ;
@ -1857,6 +1906,7 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM
stageMap . put ( "5" , 0 ) ; //验收
//只要入库项目
projectInfo . setType ( "1" ) ;
projectInfo . setStage ( "0" ) ;
ProjectInfoAuthSelect projectInfoAuthSelect = CommonUtils . setGetProjectInfoAuth ( projectInfo ) ;
Page page = new Page ( 1 , 10000 ) ;
List < HuzhouProjectinfoOV > projectAndChildInfoList = projectinfoMapper . getProjectAndChildInfoPageList ( page , projectInfoAuthSelect ) . getRecords ( ) ;
@ -1910,6 +1960,7 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM
valueMap . put ( "4" , "" ) ; //绩效
valueMap . put ( "5" , "" ) ; //验收
projectInfo . setDutyWorkplace ( projectInfo . getDutyWorkplace ( ) ) ;
projectInfo . setType ( "1" ) ;
ProjectInfoAuthSelect projectInfoAuthSelect = CommonUtils . setGetProjectInfoAuth ( projectInfo ) ;
Page page = new Page ( 1 , 10000 ) ;
Page < HuzhouProjectinfoOV > projectAndChildInfoPageList = projectinfoMapper . getProjectAndChildInfoPageList ( page , projectInfoAuthSelect ) ;
@ -2143,7 +2194,20 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM
countStageByRefromOV . setReviewNum ( String . valueOf ( reviewNum ) ) ;
countStageByRefromOV . setVerifyNum ( String . valueOf ( verifyNum ) ) ;
countStageByRefromOV . setApprovalNum ( String . valueOf ( approvalNum ) ) ;
//查询已关闭的数量
LambdaQueryWrapper < HuzhouProjectinfo > query = new LambdaQueryWrapper < > ( ) ;
query . eq ( HuzhouProjectinfo : : getReformName , value . get ( 0 ) . getReformName ( ) ) ;
query . eq ( HuzhouProjectinfo : : getSuperLeader , value . get ( 0 ) . getSuperLeader ( ) ) ;
// query.ne(HuzhouProjectinfo::getType, "1").or().eq(HuzhouProjectinfo::getStage, -1);
query . and ( ( wrapper ) - > {
wrapper . ne ( HuzhouProjectinfo : : getType , "1" )
. or ( ) . eq ( HuzhouProjectinfo : : getStage , "-1" ) ;
} ) ;
// query.ge(HuzhouProjectinfo::getCreateDate, LocalDateTime.of(2024, 10, 1, 0, 0));
int size = projectinfoMapper . selectList ( query ) . size ( ) ;
countStageByRefromOV . setCloseNum ( Integer . toString ( size ) ) ;
re . add ( countStageByRefromOV ) ;
}
//手动分页
int fromIndex = ( pageNo - 1 ) * pageSize ;
@ -2217,4 +2281,51 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM
}
}
@Override
public HashMap < String , Object > getUrtTaskStatusNum ( HuzhouProjectinfoOV projectinfo ) {
//只要入库项目
projectinfo . setType ( "1" ) ;
projectinfo . setStage ( "0" ) ;
Page page = new Page ( 1 , 10000 ) ;
ProjectInfoAuthSelect projectInfoAuthSelect = CommonUtils . setGetProjectInfoAuth ( projectinfo ) ;
Page < HuzhouProjectinfoOV > projectAndChildInfoPage = projectinfoMapper . getProjectAndChildInfoPageList ( page , projectInfoAuthSelect ) ;
List < HuzhouProjectinfoOV > projectAndChildInfoPageList = projectAndChildInfoPage . getRecords ( ) ;
HashMap < String , Object > stringObjectHashMap = new HashMap < > ( ) ;
stringObjectHashMap . put ( "totalNum" , projectAndChildInfoPage . getTotal ( ) ) ;
LambdaQueryWrapper < HuzhouPlaninfo > huzhouPlaninfoQueryWrapper = new LambdaQueryWrapper < > ( ) ;
huzhouPlaninfoQueryWrapper . eq ( HuzhouPlaninfo : : getTaskName , "联合技术审查" ) ;
huzhouPlaninfoQueryWrapper . in ( HuzhouPlaninfo : : getProjectId , projectAndChildInfoPageList . stream ( ) . map ( x - > x . getId ( ) ) . collect ( Collectors . toList ( ) ) ) ;
List < HuzhouPlaninfo > huzhouPlaninfoList = planinfoMapper . selectList ( huzhouPlaninfoQueryWrapper ) ;
//获取未完成,已完成,审批中的数量
long unfinishedNum = huzhouPlaninfoList . stream ( ) . filter ( x - > x . getIsfinish ( ) . equals ( "0" ) ) . collect ( Collectors . toList ( ) ) . size ( ) ;
long finishedNum = huzhouPlaninfoList . stream ( ) . filter ( x - > x . getIsfinish ( ) . equals ( "2" ) ) . collect ( Collectors . toList ( ) ) . size ( ) ;
long approvalNum = huzhouPlaninfoList . stream ( ) . filter ( x - > x . getIsfinish ( ) . equals ( "1" ) ) . collect ( Collectors . toList ( ) ) . size ( ) ;
unfinishedNum = projectAndChildInfoPage . getTotal ( ) - finishedNum - approvalNum ; //部分项目未开始项目计划
stringObjectHashMap . put ( "unfinishedNum" , unfinishedNum ) ;
stringObjectHashMap . put ( "finishedNum" , finishedNum ) ;
stringObjectHashMap . put ( "approvalNum" , approvalNum ) ;
return stringObjectHashMap ;
}
@Override
public CountNumberOV countStopNumber ( ) {
int total = 0 ;
int cityNum = 0 ;
int countryNum = 0 ;
HuzhouProjectinfo projectInfo = new HuzhouProjectinfo ( ) ;
projectInfo . setStage ( "-1" ) ;
ProjectInfoAuthSelect projectInfoAuthSelect = CommonUtils . setGetProjectInfoAuth ( projectInfo ) ;
List < HuzhouProjectinfoOV > projectinfoOVList = projectinfoMapper . getProjectAndChildInfoPageList ( projectInfoAuthSelect ) ;
if ( projectinfoOVList . size ( ) > 0 ) {
total = projectinfoOVList . stream ( ) . filter ( x - > x . getStage ( ) . equals ( "-1" ) ) . collect ( Collectors . toList ( ) ) . size ( ) ;
}
CountNumberOV result = new CountNumberOV ( ) ;
result . setTotal ( total ) ;
result . setCityNum ( cityNum ) ;
result . setCountyNum ( countryNum ) ;
return result ;
}
}