@ -5,53 +5,53 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper ;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page ;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl ;
import com.easy.admin.auth.model.SysRole ;
import com.easy.admin.auth.model.SysUser ;
import com.easy.admin.common.util.CommonUtils ;
import com.easy.admin.modules.huzhou.dao.HuzhouPerformancescoreMapper ;
import com.easy.admin.modules.huzhou.dao.HuzhouPlaninfoMapper ;
import com.easy.admin.modules.huzhou.dao.HuzhouProjectassessmentMapper ;
import com.easy.admin.modules.huzhou.entity.HuzhouPerformancescore ;
import com.easy.admin.modules.huzhou.entity.HuzhouPlaninfo ;
import com.easy.admin.modules.huzhou.entity.HuzhouProjectassessment ;
import com.easy.admin.modules.huzhou.entity.HuzhouProjectinfo ;
import com.easy.admin.modules.huzhou.entity.HuzhouUploadfileinfo ;
import com.easy.admin.modules.huzhou.service.IHuzhouProjectassessmentService ;
import com.easy.admin.modules.huzhou.vo.HuzhouProjectassessmentOV ;
import com.easy.admin.modules.huzhou.vo.ProjectInfoAuthSelect ;
import com.easy.admin.util.ShiroUtil ;
import org.springframework.beans.BeanUtils ;
import org.springframework.beans.factory.annotation.Autowired ;
import org.springframework.beans.factory.annotation.Value ;
import org.springframework.stereotype.Service ;
import org.springframework.util.FileCopyUtils ;
import org.springframework.util.StringUtils ;
import org.springframework.web.multipart.MultipartFile ;
import java.io.File ;
import java.io.IOException ;
import java.text.SimpleDateFormat ;
import java.u til. Date ;
import java.util.HashMap ;
import java.util.Lis t ;
import java.util.Map ;
import java.time.Loca lDate ;
import java.time.ZoneId ;
import java.time.temporal.ChronoUni t ;
import java.util.* ;
@Service
public class HuzhouProjectassessmentService extends ServiceImpl < HuzhouProjectassessmentMapper , HuzhouProjectassessment > implements IHuzhouProjectassessmentService {
@Autowired
private HuzhouProjectassessmentMapper projectassessmentMapper ;
@Autowired
private HuzhouPerformancescoreMapper performancescoreMapper ;
@Autowired
private HuzhouPlaninfoMapper huzhouPlaninfoMapper ;
@Value ( value = "${jeecg.path.upload}" )
private String uploadpath ;
@Override
public Page < HuzhouProjectassessmentOV > getProjectassessmentPageList ( Page page , HuzhouProjectinfo projectinfo ) {
SysUser currentUser = ShiroUtil . getCurrentUser ( ) ;
List < SysRole > roleList = currentUser . getRoleList ( ) ;
String roles = "" ;
for ( SysRole role : roleList
) {
roles = role . getCode ( ) + "," + roles ;
}
if ( roles . contains ( "manageOrg" ) | | roles . contains ( "sys:admin" ) ) {
ProjectInfoAuthSelect projectInfoAuthSelect = CommonUtils . setGetProjectInfoAuth ( projectinfo ) ;
} else if ( roles . contains ( "supervisor" ) ) {
projectinfo . setSupervisorContactor ( currentUser . getId ( ) ) ;
} else {
projectinfo . setProjectContacts ( currentUser . getId ( ) ) ;
}
Page < HuzhouProjectassessmentOV > projectassessmentPageList = projectassessmentMapper . getProjectassessmentPageList ( page , projectinfo ) ;
Page < HuzhouProjectassessmentOV > projectassessmentPageList = projectassessmentMapper . getProjectassessmentPageList ( page , projectInfoAuthSelect ) ;
List < HuzhouProjectassessmentOV > records = projectassessmentPageList . getRecords ( ) ;
records . forEach ( item - > {
if ( item . getTotalPscores ( ) = = null ) {
@ -67,21 +67,8 @@ public class HuzhouProjectassessmentService extends ServiceImpl<HuzhouProjectass
return projectassessmentPageList ;
}
public Page < HuzhouProjectinfo > getProjectassessmentProjectPageList ( Page page , HuzhouProjectinfo projectinfo ) {
SysUser currentUser = ShiroUtil . getCurrentUser ( ) ;
List < SysRole > roleList = currentUser . getRoleList ( ) ;
String roles = "" ;
for ( SysRole role : roleList
) {
roles = role . getCode ( ) + "," + roles ;
}
if ( roles . contains ( "manageOrg" ) | | roles . contains ( "sys:admin" ) ) {
} else if ( roles . contains ( "supervisor" ) ) {
projectinfo . setSupervisorContactor ( currentUser . getId ( ) ) ;
} else {
projectinfo . setProjectContacts ( currentUser . getId ( ) ) ;
}
return projectassessmentMapper . getProjectassessmentProjectPageList ( page , projectinfo ) ;
ProjectInfoAuthSelect projectInfoAuthSelect = CommonUtils . setGetProjectInfoAuth ( projectinfo ) ;
return projectassessmentMapper . getProjectassessmentProjectPageList ( page , projectInfoAuthSelect ) ;
}
@Override
@ -114,7 +101,10 @@ public class HuzhouProjectassessmentService extends ServiceImpl<HuzhouProjectass
}
SimpleDateFormat dateFormat = new SimpleDateFormat ( "yyyyMMdd" ) ;
String currentDay = dateFormat . format ( new Date ( ) ) ;
File filePath = new File ( uploadpath + File . separator + currentDay + File . separator ) ;
SysUser currentUser = ShiroUtil . getCurrentUser ( ) ;
String nickname = currentUser . getNickname ( ) ;
File filePath = new File ( uploadpath + File . separator + "ProjectassessmentFile" + File . separator + nickname + File . separator + currentDay + File . separator ) ;
//文件夹不存在则创建
if ( ! filePath . exists ( ) ) {
// 创建文件根目录
@ -139,4 +129,212 @@ public class HuzhouProjectassessmentService extends ServiceImpl<HuzhouProjectass
updateById ( huzhouProjectassessment ) ;
}
@Override
public List < HuzhouProjectassessment > getProjectassessmentIncludeSys ( String type , String projectId ) {
LambdaQueryWrapper < HuzhouPerformancescore > queryWrapper = new LambdaQueryWrapper < > ( ) ;
queryWrapper . eq ( HuzhouPerformancescore : : getType , type ) ;
List < HuzhouPerformancescore > huzhouPerformancescoreList = performancescoreMapper . selectList ( queryWrapper ) ;
List < HuzhouProjectassessment > huzhouProjectassessmentList = new ArrayList < > ( ) ;
for ( HuzhouPerformancescore score : huzhouPerformancescoreList
) {
HuzhouProjectassessment huzhouProjectassessment = new HuzhouProjectassessment ( ) ;
BeanUtils . copyProperties ( score , huzhouProjectassessment ) ;
String isobjectivescore = score . getIsobjectivescore ( ) ;
if ( isobjectivescore ! = null ) {
if ( "1" . equals ( isobjectivescore ) ) {
//可研技术审查报告 在计划中有几稿,初稿算一搞,二稿,算驳回一次,终稿算驳回两次
LambdaQueryWrapper < HuzhouPlaninfo > wrapper = new LambdaQueryWrapper < > ( ) ;
wrapper . eq ( HuzhouPlaninfo : : getProjectId , projectId ) ; //项目计划
wrapper . like ( HuzhouPlaninfo : : getTaskName , "可研技术审查报告" ) ; //阶段名称模糊查询
wrapper . eq ( HuzhouPlaninfo : : getIsfinish , "2" ) ; //已完成
Long selectCount = huzhouPlaninfoMapper . selectCount ( wrapper ) ;
if ( selectCount = = 1 ) {
//只有初稿满分
huzhouProjectassessment . setSysscores ( "2" ) ;
} else if ( selectCount < = 3 ) {
//驳回两次及其以内
huzhouProjectassessment . setSysscores ( "1" ) ;
} else {
huzhouProjectassessment . setSysscores ( "0" ) ;
}
} else if ( "2" . equals ( isobjectivescore ) ) {
LambdaQueryWrapper < HuzhouPlaninfo > wrapper = new LambdaQueryWrapper < > ( ) ;
wrapper . eq ( HuzhouPlaninfo : : getProjectId , projectId ) ; //项目计划
wrapper . likeRight ( HuzhouPlaninfo : : getTaskLevel , "2." ) ; //第二阶段-项目采购阶段的所有子阶段
List < HuzhouPlaninfo > huzhouPlaninfoList = huzhouPlaninfoMapper . selectList ( wrapper ) ;
String fenshu = "" ;
ArrayList < Long > longArrayList = new ArrayList < > ( ) ;
for ( HuzhouPlaninfo planinfo : huzhouPlaninfoList
) {
if ( planinfo . getIsfinish ( ) . equals ( "2" ) ) {
/ * *
* 待优化工作日的判断
* /
//计划结束日期
Date scheduledEndTime = planinfo . getScheduledEndTime ( ) ;
LocalDate scheduledEndDate = scheduledEndTime . toInstant ( ) . atZone ( ZoneId . systemDefault ( ) ) . toLocalDate ( ) ;
//实际完成日期
Date actualEndTime = planinfo . getActualEndTime ( ) ;
LocalDate actualEndTimeDate = actualEndTime . toInstant ( ) . atZone ( ZoneId . systemDefault ( ) ) . toLocalDate ( ) ;
//后面减前面
long daysUntilactualEnd = ChronoUnit . DAYS . between ( scheduledEndDate , actualEndTimeDate ) ;
longArrayList . add ( daysUntilactualEnd ) ;
} else {
//说明有未完成的内容
fenshu = "0" ;
break ;
}
}
if ( "0" . equals ( fenshu ) ) {
huzhouProjectassessment . setSysscores ( "0" ) ;
} else {
//取最大值
Long max = Collections . max ( longArrayList ) ;
if ( max < = 0 ) {
huzhouProjectassessment . setSysscores ( "3" ) ;
} else if ( max < = 5 ) {
huzhouProjectassessment . setSysscores ( "2" ) ;
} else if ( max < = 10 ) {
huzhouProjectassessment . setSysscores ( "1" ) ;
} else {
huzhouProjectassessment . setSysscores ( "0" ) ;
}
}
} else if ( "3" . equals ( isobjectivescore ) ) {
LambdaQueryWrapper < HuzhouPlaninfo > wrapper = new LambdaQueryWrapper < > ( ) ;
wrapper . eq ( HuzhouPlaninfo : : getProjectId , projectId ) ; //项目计划
wrapper . eq ( HuzhouPlaninfo : : getTaskName , "首付支付" ) ; //首付支付为项目建设阶段开始的第一个阶段
List < HuzhouPlaninfo > huzhouPlaninfoList = huzhouPlaninfoMapper . selectList ( wrapper ) ;
if ( huzhouPlaninfoList . size ( ) = = 0 | | ! huzhouPlaninfoList . get ( 0 ) . getIsfinish ( ) . equals ( "2" ) ) {
huzhouProjectassessment . setSysscores ( "0" ) ; //没有这个阶段或者这个阶段没完成不得分
} else {
HuzhouPlaninfo planinfo = huzhouPlaninfoList . get ( 0 ) ;
Date scheduledEndTime = planinfo . getScheduledEndTime ( ) ;
LocalDate scheduledEndDate = scheduledEndTime . toInstant ( ) . atZone ( ZoneId . systemDefault ( ) ) . toLocalDate ( ) ;
//实际完成日期
Date actualEndTime = planinfo . getActualEndTime ( ) ;
LocalDate actualEndTimeDate = actualEndTime . toInstant ( ) . atZone ( ZoneId . systemDefault ( ) ) . toLocalDate ( ) ;
//后面减前面
long months = ChronoUnit . MONTHS . between ( scheduledEndDate , actualEndTimeDate ) ;
if ( months < = 1 ) {
huzhouProjectassessment . setSysscores ( "3" ) ; //
} else if ( months < = 2 ) { //两个月多计算结果也是2
huzhouProjectassessment . setSysscores ( "2" ) ; //
} else {
huzhouProjectassessment . setSysscores ( "0" ) ; //
}
}
} else if ( "4" . equals ( isobjectivescore ) ) {
LambdaQueryWrapper < HuzhouPlaninfo > wrapper = new LambdaQueryWrapper < > ( ) ;
wrapper . eq ( HuzhouPlaninfo : : getProjectId , projectId ) ; //项目计划
wrapper . in ( HuzhouPlaninfo : : getTaskLevel , "1" , "2" , "3" ) ; //第二阶段-项目采购阶段的所有子阶段
List < HuzhouPlaninfo > huzhouPlaninfoList = huzhouPlaninfoMapper . selectList ( wrapper ) ;
String fenshu = "" ;
ArrayList < Long > longArrayList = new ArrayList < > ( ) ;
for ( HuzhouPlaninfo planinfo : huzhouPlaninfoList
) {
if ( planinfo . getIsfinish ( ) . equals ( "2" ) ) {
/ * *
* 待优化工作日的判断
* /
//计划结束日期
Date scheduledEndTime = planinfo . getScheduledEndTime ( ) ;
LocalDate scheduledEndDate = scheduledEndTime . toInstant ( ) . atZone ( ZoneId . systemDefault ( ) ) . toLocalDate ( ) ;
//实际完成日期
Date actualEndTime = planinfo . getActualEndTime ( ) ;
LocalDate actualEndTimeDate = actualEndTime . toInstant ( ) . atZone ( ZoneId . systemDefault ( ) ) . toLocalDate ( ) ;
//后面减前面
long daysUntilactualEnd = ChronoUnit . MONTHS . between ( scheduledEndDate , actualEndTimeDate ) ;
longArrayList . add ( daysUntilactualEnd ) ;
} else {
//说明有未完成的内容
fenshu = "0" ;
break ;
}
}
if ( "0" . equals ( fenshu ) ) {
huzhouProjectassessment . setSysscores ( "0" ) ;
} else {
//取最大值
Long max = Collections . max ( longArrayList ) ;
if ( max < = 0 ) {
huzhouProjectassessment . setSysscores ( "3" ) ;
} else if ( max < = 2 ) {
huzhouProjectassessment . setSysscores ( "2" ) ;
} else {
huzhouProjectassessment . setSysscores ( "0" ) ;
}
}
} else if ( "5" . equals ( isobjectivescore ) ) {
huzhouProjectassessment . setSysscores ( "2" ) ; //前端在合同创建的时候强控了,默认满分
} else if ( "6" . equals ( isobjectivescore ) ) {
LambdaQueryWrapper < HuzhouPlaninfo > wrapper = new LambdaQueryWrapper < > ( ) ;
wrapper . eq ( HuzhouPlaninfo : : getProjectId , projectId ) ; //项目计划
wrapper . eq ( HuzhouPlaninfo : : getIsfinish , "2" ) ;
List < HuzhouPlaninfo > huzhouPlaninfoList = huzhouPlaninfoMapper . selectList ( wrapper ) ;
String fenshu = "" ;
ArrayList < Long > longArrayList = new ArrayList < > ( ) ;
for ( HuzhouPlaninfo planinfo : huzhouPlaninfoList
) {
/ * *
* 待优化工作日的判断
* /
//计划结束日期
Date scheduledEndTime = planinfo . getScheduledEndTime ( ) ;
LocalDate scheduledEndDate = scheduledEndTime . toInstant ( ) . atZone ( ZoneId . systemDefault ( ) ) . toLocalDate ( ) ;
//实际完成日期
Date actualEndTime = planinfo . getActualEndTime ( ) ;
LocalDate actualEndTimeDate = actualEndTime . toInstant ( ) . atZone ( ZoneId . systemDefault ( ) ) . toLocalDate ( ) ;
//后面减前面
long daysUntilactualEnd = ChronoUnit . DAYS . between ( scheduledEndDate , actualEndTimeDate ) ;
longArrayList . add ( daysUntilactualEnd ) ;
}
//取最大值
Long max = Collections . max ( longArrayList ) ;
if ( max < = 0 ) {
huzhouProjectassessment . setSysscores ( "3" ) ;
} else if ( max < = 15 ) {
huzhouProjectassessment . setSysscores ( "1.5" ) ;
} else {
huzhouProjectassessment . setSysscores ( "0" ) ;
}
} else if ( "7" . equals ( isobjectivescore ) ) {
LambdaQueryWrapper < HuzhouPlaninfo > wrapper = new LambdaQueryWrapper < > ( ) ;
wrapper . eq ( HuzhouPlaninfo : : getProjectId , projectId ) ; //项目计划
wrapper . eq ( HuzhouPlaninfo : : getTaskName , "终验阶段" ) ; //首付支付为项目建设阶段开始的第一个阶段
List < HuzhouPlaninfo > huzhouPlaninfoList = huzhouPlaninfoMapper . selectList ( wrapper ) ;
if ( huzhouPlaninfoList . size ( ) = = 0 | | ! huzhouPlaninfoList . get ( 0 ) . getIsfinish ( ) . equals ( "2" ) ) {
huzhouProjectassessment . setSysscores ( "0" ) ; //没有这个阶段或者这个阶段没完成不得分
} else {
HuzhouPlaninfo planinfo = huzhouPlaninfoList . get ( 0 ) ;
Date scheduledEndTime = planinfo . getScheduledEndTime ( ) ;
LocalDate scheduledEndDate = scheduledEndTime . toInstant ( ) . atZone ( ZoneId . systemDefault ( ) ) . toLocalDate ( ) ;
//实际完成日期
Date actualEndTime = planinfo . getActualEndTime ( ) ;
LocalDate actualEndTimeDate = actualEndTime . toInstant ( ) . atZone ( ZoneId . systemDefault ( ) ) . toLocalDate ( ) ;
//后面减前面
long months = ChronoUnit . DAYS . between ( scheduledEndDate , actualEndTimeDate ) ;
if ( months < = 0 ) {
huzhouProjectassessment . setSysscores ( "3" ) ; //
} else if ( months < = 15 ) { //两个月多计算结果也是2
huzhouProjectassessment . setSysscores ( "1.5" ) ; //
} else {
huzhouProjectassessment . setSysscores ( "0" ) ; //
}
}
}
huzhouProjectassessmentList . add ( huzhouProjectassessment ) ;
} else {
huzhouProjectassessmentList . add ( huzhouProjectassessment ) ;
}
}
return huzhouProjectassessmentList ;
}
}