|
@@ -0,0 +1,856 @@
|
|
|
|
+package com.jeeplus.modules.sg.budgetSpectaculars.service;
|
|
|
|
+
|
|
|
|
+import com.google.common.collect.Lists;
|
|
|
|
+import com.jeeplus.common.utils.StringUtils;
|
|
|
|
+import com.jeeplus.core.persistence.Page;
|
|
|
|
+import com.jeeplus.core.service.CrudService;
|
|
|
|
+import com.jeeplus.modules.sg.budgetSpectaculars.entity.PostEvaluationInfo;
|
|
|
|
+import com.jeeplus.modules.sg.budgetSpectaculars.entity.ProjectCourseControlInfo;
|
|
|
|
+import com.jeeplus.modules.sg.budgetSpectaculars.entity.ProjectScheduleStatInfo;
|
|
|
|
+import com.jeeplus.modules.sg.budgetSpectaculars.entity.ProjectWarnExamineInfo;
|
|
|
|
+import com.jeeplus.modules.sg.budgetSpectaculars.mapper.ProjectScheduleStatMapper;
|
|
|
|
+import com.jeeplus.modules.sg.budgetSpectaculars.mapper.ProjectWarnExamineMapper;
|
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
|
+
|
|
|
|
+import java.text.ParseException;
|
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
|
+import java.util.Date;
|
|
|
|
+import java.util.List;
|
|
|
|
+
|
|
|
|
+/**
|
|
|
|
+ * 项目预警检查Service
|
|
|
|
+ * @author: 徐滕
|
|
|
|
+ * @create: 2021-11-26 09:21
|
|
|
|
+ **/
|
|
|
|
+@Service
|
|
|
|
+@Transactional(readOnly = true)
|
|
|
|
+public class ProjectWarnExamineService extends CrudService<ProjectWarnExamineMapper, ProjectWarnExamineInfo> {
|
|
|
|
+
|
|
|
|
+ @Autowired
|
|
|
|
+ private ProjectWarnExamineMapper mapper;
|
|
|
|
+
|
|
|
|
+ public Page<ProjectWarnExamineInfo> findPage(Page<ProjectWarnExamineInfo> page, ProjectWarnExamineInfo entity) {
|
|
|
|
+ Page<ProjectWarnExamineInfo> page1 = super.findPage(page, entity);
|
|
|
|
+ List<ProjectWarnExamineInfo> list = page1.getList();
|
|
|
|
+ List<ProjectWarnExamineInfo> warnExamineInfoList = Lists.newArrayList();
|
|
|
|
+ List<String> scheduleList = Lists.newArrayList();
|
|
|
|
+ scheduleList.add("进行中");
|
|
|
|
+ scheduleList.add("已完成");
|
|
|
|
+ scheduleList.add("小计");
|
|
|
|
+ for (ProjectWarnExamineInfo info: list) {
|
|
|
|
+ List<ProjectWarnExamineInfo> listBySecondLevelUnitAndProjectType = mapper.getListBySecondLevelUnitAndProjectType(info);
|
|
|
|
+ List<ProjectWarnExamineInfo> projectWarnExamineInfos = disposeData(scheduleList, info, listBySecondLevelUnitAndProjectType);
|
|
|
|
+ warnExamineInfoList.addAll(projectWarnExamineInfos);
|
|
|
|
+ }
|
|
|
|
+ page1.setList(warnExamineInfoList);
|
|
|
|
+ return page1;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 数据处理
|
|
|
|
+ * @param list
|
|
|
|
+ */
|
|
|
|
+ public List<ProjectWarnExamineInfo> disposeData(List<String> scheduleList,ProjectWarnExamineInfo scheduleStatInfo,List<ProjectWarnExamineInfo> list){
|
|
|
|
+ List<ProjectWarnExamineInfo> infoList = Lists.newArrayList();
|
|
|
|
+ ProjectWarnExamineInfo courseInfo = new ProjectWarnExamineInfo();
|
|
|
|
+ ProjectWarnExamineInfo evaluationInfo = new ProjectWarnExamineInfo();
|
|
|
|
+ for (String schedule: scheduleList) {
|
|
|
|
+ if("进行中".equals(schedule)){
|
|
|
|
+ //处理过程贯通数据信息
|
|
|
|
+ disposeProjectCourseBasics(list);
|
|
|
|
+ //获取数据情况
|
|
|
|
+ ProjectWarnExamineInfo projectWarnExamineInfo = disposeProjectList(list);
|
|
|
|
+ projectWarnExamineInfo.setSecondLevelUnit(scheduleStatInfo.getSecondLevelUnit());
|
|
|
|
+ projectWarnExamineInfo.setProjectType(scheduleStatInfo.getProjectType());
|
|
|
|
+ projectWarnExamineInfo.setSchedule(schedule);
|
|
|
|
+ infoList.add(projectWarnExamineInfo);
|
|
|
|
+ courseInfo = projectWarnExamineInfo;
|
|
|
|
+ }else if("已完成".equals(schedule)){
|
|
|
|
+ disposeProjectEvaluationBasics(list);
|
|
|
|
+ //获取数据情况
|
|
|
|
+ ProjectWarnExamineInfo projectWarnExamineInfo = disposeProjectList(list);
|
|
|
|
+ projectWarnExamineInfo.setSecondLevelUnit(scheduleStatInfo.getSecondLevelUnit());
|
|
|
|
+ projectWarnExamineInfo.setProjectType(scheduleStatInfo.getProjectType());
|
|
|
|
+ projectWarnExamineInfo.setSchedule(schedule);
|
|
|
|
+ infoList.add(projectWarnExamineInfo);
|
|
|
|
+ evaluationInfo = projectWarnExamineInfo;
|
|
|
|
+ }else if("小计".equals(schedule)){
|
|
|
|
+ ProjectWarnExamineInfo projectWarnExamineInfo = disposeProjectAllList(courseInfo, evaluationInfo);
|
|
|
|
+ projectWarnExamineInfo.setSecondLevelUnit(scheduleStatInfo.getSecondLevelUnit());
|
|
|
|
+ projectWarnExamineInfo.setProjectType(scheduleStatInfo.getProjectType());
|
|
|
|
+ projectWarnExamineInfo.setSchedule(schedule);
|
|
|
|
+ infoList.add(projectWarnExamineInfo);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return infoList;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 过程管控数据处理
|
|
|
|
+ * @param projectCourseControlList
|
|
|
|
+ */
|
|
|
|
+ private void disposeProjectCourseBasics(List<ProjectWarnExamineInfo> projectCourseControlList){
|
|
|
|
+ for (ProjectWarnExamineInfo info: projectCourseControlList) {
|
|
|
|
+ //处理计划开工日期准确性 |计划开工日期- 首次领料日期| 两个日期均有为绿灯 0-15天(含15天)灰色 15-30天(含30天)黄灯 30天以上红灯(字体颜色)
|
|
|
|
+ Integer absoluteDifferenceValue = dateDifferenceValue(info.getPlanStartUpDate(), info.getFirstAcquisitionTime());
|
|
|
|
+ if(StringUtils.isNotBlank(info.getPlanStartUpDate()) && StringUtils.isNotBlank(info.getFirstAcquisitionTime())){
|
|
|
|
+ absoluteDifferenceValue = absoluteValue(absoluteDifferenceValue);
|
|
|
|
+ info.setPlanStartWorkingTimeAccuracy(absoluteDifferenceValue.toString());
|
|
|
|
+ if (0 <= absoluteDifferenceValue && absoluteDifferenceValue<= 15) {
|
|
|
|
+ info.setPlanStartWorkingTimeAccuracyFlag(0);
|
|
|
|
+ }else if (15 < absoluteDifferenceValue && absoluteDifferenceValue<= 30) {
|
|
|
|
+ info.setPlanStartWorkingTimeAccuracyFlag(2);
|
|
|
|
+ }else if (30 < absoluteDifferenceValue) {
|
|
|
|
+ info.setPlanStartWorkingTimeAccuracyFlag(3);
|
|
|
|
+ }
|
|
|
|
+ }else{
|
|
|
|
+ if(null == absoluteDifferenceValue){
|
|
|
|
+ info.setPlanStartWorkingTimeAccuracy("");
|
|
|
|
+ info.setPlanStartWorkingTimeAccuracyFlag(2);
|
|
|
|
+ }else{
|
|
|
|
+ absoluteDifferenceValue = absoluteValue(absoluteDifferenceValue);
|
|
|
|
+ if (0 <= absoluteDifferenceValue && absoluteDifferenceValue<= 15) {
|
|
|
|
+ info.setPlanStartWorkingTimeAccuracy(absoluteDifferenceValue.toString());
|
|
|
|
+ info.setPlanStartWorkingTimeAccuracyFlag(0);
|
|
|
|
+ }else if (15 < absoluteDifferenceValue && absoluteDifferenceValue<= 30) {
|
|
|
|
+ info.setPlanStartWorkingTimeAccuracy(absoluteDifferenceValue.toString());
|
|
|
|
+ info.setPlanStartWorkingTimeAccuracyFlag(2);
|
|
|
|
+ }else if (30 < absoluteDifferenceValue) {
|
|
|
|
+ info.setPlanStartWorkingTimeAccuracy(absoluteDifferenceValue.toString());
|
|
|
|
+ info.setPlanStartWorkingTimeAccuracyFlag(3);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ //处理 结算送审日期及时性 结算送审日期-实际竣工日期 两个日期均有为绿灯 0-15天(含15天)灰色 15-30天(含30天)黄灯 30天以上红灯 小于0天,显示“逻辑错误”
|
|
|
|
+ Integer differenceValue = dateDifferenceValue(info.getCalculationForReviewTime(), info.getPracticalcompletionDate());
|
|
|
|
+ if(StringUtils.isNotBlank(info.getCalculationForReviewTime()) && StringUtils.isNotBlank(info.getPracticalcompletionDate())){
|
|
|
|
+ info.setCalculateAuditDateTimely(differenceValue.toString());
|
|
|
|
+ if (0 <= differenceValue && differenceValue<= 15) {
|
|
|
|
+ info.setCalculateAuditDateTimelyFlag(0);
|
|
|
|
+ }else if (15 < differenceValue && differenceValue<= 30) {
|
|
|
|
+ info.setCalculateAuditDateTimelyFlag(2);
|
|
|
|
+ }else if (30 < differenceValue) {
|
|
|
|
+ info.setCalculateAuditDateTimelyFlag(3);
|
|
|
|
+ } else if (differenceValue < 0) {
|
|
|
|
+ info.setCalculateAuditDateTimely("逻辑错误");
|
|
|
|
+ info.setCalculateAuditDateTimelyFlag(4);
|
|
|
|
+ }
|
|
|
|
+ }else{
|
|
|
|
+ if(null == differenceValue){
|
|
|
|
+ info.setCalculateAuditDateTimely("");
|
|
|
|
+ info.setCalculateAuditDateTimelyFlag(2);
|
|
|
|
+ }else {
|
|
|
|
+ if (0 <= differenceValue && differenceValue <= 15) {
|
|
|
|
+ info.setCalculateAuditDateTimely(differenceValue.toString());
|
|
|
|
+ info.setCalculateAuditDateTimelyFlag(0);
|
|
|
|
+ } else if (15 < differenceValue && differenceValue <= 30) {
|
|
|
|
+ info.setCalculateAuditDateTimely(differenceValue.toString());
|
|
|
|
+ info.setCalculateAuditDateTimelyFlag(2);
|
|
|
|
+ } else if (30 < differenceValue) {
|
|
|
|
+ info.setCalculateAuditDateTimely(differenceValue.toString());
|
|
|
|
+ info.setCalculateAuditDateTimelyFlag(3);
|
|
|
|
+ } else if (differenceValue < 0) {
|
|
|
|
+ info.setCalculateAuditDateTimely("逻辑错误");
|
|
|
|
+ info.setCalculateAuditDateTimelyFlag(4);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ //处理 结算审定日期及时性 结算审定日期-结算送审日期 两个日期均有为绿灯 0-15天(含15天)灰色 15-30天(含30天)黄灯 30天以上红灯 小于0天,显示“逻辑错误”
|
|
|
|
+ differenceValue = dateDifferenceValue(info.getCalculationExamineTime(), info.getCalculationForReviewTime());
|
|
|
|
+ if(StringUtils.isNotBlank(info.getCalculationExamineTime()) && StringUtils.isNotBlank(info.getCalculationForReviewTime())){
|
|
|
|
+ info.setCalculateExamineDateTimely(differenceValue.toString());
|
|
|
|
+ if (0 <= differenceValue && differenceValue<= 15) {
|
|
|
|
+ info.setCalculateExamineDateTimelyFlag(0);
|
|
|
|
+ }else if (15 < differenceValue && differenceValue<= 30) {
|
|
|
|
+ info.setCalculateExamineDateTimelyFlag(2);
|
|
|
|
+ }else if (30 < differenceValue) {
|
|
|
|
+ info.setCalculateExamineDateTimelyFlag(3);
|
|
|
|
+ } else if (differenceValue < 0) {
|
|
|
|
+ info.setCalculateExamineDateTimely("逻辑错误");
|
|
|
|
+ info.setCalculateExamineDateTimelyFlag(4);
|
|
|
|
+ }
|
|
|
|
+ }else{
|
|
|
|
+ if(null == differenceValue){
|
|
|
|
+ info.setCalculateExamineDateTimely("");
|
|
|
|
+ info.setCalculateExamineDateTimelyFlag(2);
|
|
|
|
+ }else {
|
|
|
|
+ if (0 <= differenceValue && differenceValue <= 15) {
|
|
|
|
+ info.setCalculateExamineDateTimely(differenceValue.toString());
|
|
|
|
+ info.setCalculateExamineDateTimelyFlag(0);
|
|
|
|
+ } else if (15 < differenceValue && differenceValue <= 30) {
|
|
|
|
+ info.setCalculateExamineDateTimely(differenceValue.toString());
|
|
|
|
+ info.setCalculateExamineDateTimelyFlag(2);
|
|
|
|
+ } else if (30 < differenceValue) {
|
|
|
|
+ info.setCalculateExamineDateTimely(differenceValue.toString());
|
|
|
|
+ info.setCalculateExamineDateTimelyFlag(3);
|
|
|
|
+ } else if (differenceValue < 0) {
|
|
|
|
+ info.setCalculateExamineDateTimely("逻辑错误");
|
|
|
|
+ info.setCalculateExamineDateTimelyFlag(4);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ //处理 施工费入账日期及时性 施工费入账日期-结算审定日期 两个日期均有为绿灯 0-3天(含3天)灰色 3-6天(含6天)黄灯 6天以上红灯 小于0天,显示“逻辑错误”
|
|
|
|
+ differenceValue = dateDifferenceValue(info.getFirstConstructionFeeRecordedTime(), info.getCalculationExamineTime());
|
|
|
|
+ if(StringUtils.isNotBlank(info.getFirstConstructionFeeRecordedTime()) && StringUtils.isNotBlank(info.getCalculationExamineTime())){
|
|
|
|
+ info.setConstructionFeeRecordedTimely(differenceValue.toString());
|
|
|
|
+ if (0 <= differenceValue && differenceValue<= 3) {
|
|
|
|
+ info.setConstructionFeeRecordedTimelyFlag(0);
|
|
|
|
+ }else if (3 < differenceValue && differenceValue<= 6) {
|
|
|
|
+ info.setConstructionFeeRecordedTimelyFlag(2);
|
|
|
|
+ }else if (6 < differenceValue) {
|
|
|
|
+ info.setConstructionFeeRecordedTimelyFlag(3);
|
|
|
|
+ } else if (differenceValue < 0) {
|
|
|
|
+ info.setConstructionFeeRecordedTimely("逻辑错误");
|
|
|
|
+ info.setConstructionFeeRecordedTimelyFlag(4);
|
|
|
|
+ }
|
|
|
|
+ }else{
|
|
|
|
+ if(null == differenceValue){
|
|
|
|
+ info.setConstructionFeeRecordedTimely("");
|
|
|
|
+ info.setConstructionFeeRecordedTimelyFlag(2);
|
|
|
|
+ }else {
|
|
|
|
+ if (0 <= differenceValue && differenceValue <= 3) {
|
|
|
|
+ info.setConstructionFeeRecordedTimely(differenceValue.toString());
|
|
|
|
+ info.setConstructionFeeRecordedTimelyFlag(0);
|
|
|
|
+ } else if (3 < differenceValue && differenceValue <= 6) {
|
|
|
|
+ info.setConstructionFeeRecordedTimely(differenceValue.toString());
|
|
|
|
+ info.setConstructionFeeRecordedTimelyFlag(2);
|
|
|
|
+ } else if (6 < differenceValue) {
|
|
|
|
+ info.setConstructionFeeRecordedTimely(differenceValue.toString());
|
|
|
|
+ info.setConstructionFeeRecordedTimelyFlag(3);
|
|
|
|
+ } else if (differenceValue < 0) {
|
|
|
|
+ info.setConstructionFeeRecordedTimely("逻辑错误");
|
|
|
|
+ info.setConstructionFeeRecordedTimelyFlag(4);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ //处理 核对甲供材是否一致 甲供材系统中是否一致列 一致绿灯 不一致红灯
|
|
|
|
+ if("是".equals(info.getIfGetRejectedMaterialFinish())){
|
|
|
|
+ info.setIfCoincideCheckWhichMaterial(info.getIfGetRejectedMaterialFinish());
|
|
|
|
+ info.setIfCoincideCheckWhichMaterialFlag(0);
|
|
|
|
+ }else{
|
|
|
|
+ info.setIfCoincideCheckWhichMaterial(info.getIfGetRejectedMaterialFinish());
|
|
|
|
+ info.setIfCoincideCheckWhichMaterialFlag(4);
|
|
|
|
+ }
|
|
|
|
+ //处理 提报竣工决算日期及时性 提报竣工决算日期-施工费入账日期 两个日期均有为绿灯 0-2天(含2天)灰色 3-4天(含4天)黄灯 5天以上红灯 小于0天,显示“逻辑错误”
|
|
|
|
+ differenceValue = dateDifferenceValue(info.getCompletedActualBudgetTime(), info.getFirstConstructionFeeRecordedTime());
|
|
|
|
+ if(StringUtils.isNotBlank(info.getCompletedActualBudgetTime()) && StringUtils.isNotBlank(info.getFirstConstructionFeeRecordedTime())){
|
|
|
|
+ info.setCompletionSettlementDateTimely(differenceValue.toString());
|
|
|
|
+ if (0 <= differenceValue && differenceValue<= 2) {
|
|
|
|
+ info.setCompletionSettlementDateTimelyFlag(0);
|
|
|
|
+ }else if (2 < differenceValue && differenceValue<= 4) {
|
|
|
|
+ info.setCompletionSettlementDateTimelyFlag(2);
|
|
|
|
+ }else if (4 < differenceValue) {
|
|
|
|
+ info.setCompletionSettlementDateTimelyFlag(3);
|
|
|
|
+ } else if (differenceValue < 0) {
|
|
|
|
+ info.setCompletionSettlementDateTimely("逻辑错误");
|
|
|
|
+ info.setCompletionSettlementDateTimelyFlag(4);
|
|
|
|
+ }
|
|
|
|
+ }else{
|
|
|
|
+ if(null == differenceValue){
|
|
|
|
+ info.setCompletionSettlementDateTimely("");
|
|
|
|
+ info.setCompletionSettlementDateTimelyFlag(2);
|
|
|
|
+ }else {
|
|
|
|
+ if (0 <= differenceValue && differenceValue <= 2) {
|
|
|
|
+ info.setCompletionSettlementDateTimely(differenceValue.toString());
|
|
|
|
+ info.setCompletionSettlementDateTimelyFlag(0);
|
|
|
|
+ } else if (2 < differenceValue && differenceValue <= 4) {
|
|
|
|
+ info.setCompletionSettlementDateTimely(differenceValue.toString());
|
|
|
|
+ info.setCompletionSettlementDateTimelyFlag(2);
|
|
|
|
+ } else if (4 < differenceValue) {
|
|
|
|
+ info.setCompletionSettlementDateTimely(differenceValue.toString());
|
|
|
|
+ info.setCompletionSettlementDateTimelyFlag(3);
|
|
|
|
+ } else if (differenceValue < 0) {
|
|
|
|
+ info.setCompletionSettlementDateTimely("逻辑错误");
|
|
|
|
+ info.setCompletionSettlementDateTimelyFlag(4);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ //处理 决算送审日期及时性 决算送审日期-提报竣工决算日期 两个日期均有为绿灯 0-3天(含3天)灰色 4-5天(含5天)黄灯 5天以上红灯 小于0天,显示“逻辑错误”
|
|
|
|
+ differenceValue = dateDifferenceValue(info.getActualBudgetSubmittalsTime(), info.getCompletedActualBudgetTime());
|
|
|
|
+ if(StringUtils.isNotBlank(info.getActualBudgetSubmittalsTime()) && StringUtils.isNotBlank(info.getCompletedActualBudgetTime())){
|
|
|
|
+ info.setFinalAuditDateTimely(differenceValue.toString());
|
|
|
|
+ if (0 <= differenceValue && differenceValue<= 3) {
|
|
|
|
+ info.setFinalAuditDateTimelyFlag(0);
|
|
|
|
+ }else if (3 < differenceValue && differenceValue<= 5) {
|
|
|
|
+ info.setFinalAuditDateTimelyFlag(2);
|
|
|
|
+ }else if (5 < differenceValue) {
|
|
|
|
+ info.setFinalAuditDateTimelyFlag(3);
|
|
|
|
+ } else if (differenceValue < 0) {
|
|
|
|
+ info.setFinalAuditDateTimely("逻辑错误");
|
|
|
|
+ info.setFinalAuditDateTimelyFlag(4);
|
|
|
|
+ }
|
|
|
|
+ }else{
|
|
|
|
+ if(null == differenceValue){
|
|
|
|
+ info.setFinalAuditDateTimely("");
|
|
|
|
+ info.setFinalAuditDateTimelyFlag(2);
|
|
|
|
+ }else {
|
|
|
|
+ if (0 <= differenceValue && differenceValue <= 3) {
|
|
|
|
+ info.setFinalAuditDateTimely(differenceValue.toString());
|
|
|
|
+ info.setFinalAuditDateTimelyFlag(0);
|
|
|
|
+ } else if (3 < differenceValue && differenceValue <= 5) {
|
|
|
|
+ info.setFinalAuditDateTimely(differenceValue.toString());
|
|
|
|
+ info.setFinalAuditDateTimelyFlag(2);
|
|
|
|
+ } else if (5 < differenceValue) {
|
|
|
|
+ info.setFinalAuditDateTimely(differenceValue.toString());
|
|
|
|
+ info.setFinalAuditDateTimelyFlag(3);
|
|
|
|
+ } else if (differenceValue < 0) {
|
|
|
|
+ info.setFinalAuditDateTimely("逻辑错误");
|
|
|
|
+ info.setFinalAuditDateTimelyFlag(4);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ //处理 出具决算审计报告及时性 决算审计报告出具日期-决算送审日期 两个日期均有为绿灯 0-7天(含7天)灰色 8-15天(含15天)黄灯 15天以上 小于0天,显示“逻辑错误”
|
|
|
|
+ differenceValue = dateDifferenceValue(info.getActualBudgetSubmittalsTime(), info.getCompletedActualBudgetTime());
|
|
|
|
+ if(StringUtils.isNotBlank(info.getActualBudgetSubmittalsTime()) && StringUtils.isNotBlank(info.getCompletedActualBudgetTime())){
|
|
|
|
+ info.setFinalAccountsAuditReportTimely(differenceValue.toString());
|
|
|
|
+ if (0 <= differenceValue && differenceValue<= 7) {
|
|
|
|
+ info.setFinalAccountsAuditReportTimelyFlag(0);
|
|
|
|
+ }else if (7 < differenceValue && differenceValue<= 15) {
|
|
|
|
+ info.setFinalAccountsAuditReportTimelyFlag(2);
|
|
|
|
+ }else if (15 < differenceValue) {
|
|
|
|
+ info.setFinalAccountsAuditReportTimelyFlag(3);
|
|
|
|
+ } else if (differenceValue < 0) {
|
|
|
|
+ info.setFinalAccountsAuditReportTimely("逻辑错误");
|
|
|
|
+ info.setFinalAccountsAuditReportTimelyFlag(4);
|
|
|
|
+ }
|
|
|
|
+ }else{
|
|
|
|
+ if(null == differenceValue){
|
|
|
|
+ info.setFinalAccountsAuditReportTimely("");
|
|
|
|
+ info.setFinalAccountsAuditReportTimelyFlag(2);
|
|
|
|
+ }else {
|
|
|
|
+ if (0 <= differenceValue && differenceValue <= 7) {
|
|
|
|
+ info.setFinalAccountsAuditReportTimely(differenceValue.toString());
|
|
|
|
+ info.setFinalAccountsAuditReportTimelyFlag(0);
|
|
|
|
+ } else if (7 < differenceValue && differenceValue <= 15) {
|
|
|
|
+ info.setFinalAccountsAuditReportTimely(differenceValue.toString());
|
|
|
|
+ info.setFinalAccountsAuditReportTimelyFlag(2);
|
|
|
|
+ } else if (15 < differenceValue) {
|
|
|
|
+ info.setFinalAccountsAuditReportTimely(differenceValue.toString());
|
|
|
|
+ info.setFinalAccountsAuditReportTimelyFlag(3);
|
|
|
|
+ } else if (differenceValue < 0) {
|
|
|
|
+ info.setFinalAccountsAuditReportTimely("逻辑错误");
|
|
|
|
+ info.setFinalAccountsAuditReportTimelyFlag(4);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ *
|
|
|
|
+ * 0:绿色;2:黄色;3、4:红色
|
|
|
|
+ * @param projectCourseControlList
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ private ProjectWarnExamineInfo disposeProjectList(List<ProjectWarnExamineInfo> projectCourseControlList){
|
|
|
|
+ ProjectWarnExamineInfo warnExamineInfo = new ProjectWarnExamineInfo();
|
|
|
|
+ for (ProjectWarnExamineInfo info: projectCourseControlList) {
|
|
|
|
+ //计划开工日期准确性
|
|
|
|
+ if(null != info.getPlanStartWorkingTimeAccuracyFlag()){
|
|
|
|
+ switch (info.getPlanStartWorkingTimeAccuracyFlag()){
|
|
|
|
+ case 0:
|
|
|
|
+ if(null == warnExamineInfo.getPlanStartUpGreenCount()){
|
|
|
|
+ warnExamineInfo.setPlanStartUpGreenCount(1);
|
|
|
|
+ }else{
|
|
|
|
+ warnExamineInfo.setPlanStartUpGreenCount(warnExamineInfo.getPlanStartUpGreenCount() + 1);
|
|
|
|
+ }
|
|
|
|
+ break;
|
|
|
|
+ case 2:
|
|
|
|
+ if(null == warnExamineInfo.getPlanStartUpYellowCount()){
|
|
|
|
+ warnExamineInfo.setPlanStartUpYellowCount(1);
|
|
|
|
+ }else{
|
|
|
|
+ warnExamineInfo.setPlanStartUpYellowCount(warnExamineInfo.getPlanStartUpYellowCount() + 1);
|
|
|
|
+ }
|
|
|
|
+ break;
|
|
|
|
+ case 3:
|
|
|
|
+ if(null == warnExamineInfo.getPlanStartUpRedCount()){
|
|
|
|
+ warnExamineInfo.setPlanStartUpRedCount(1);
|
|
|
|
+ }else{
|
|
|
|
+ warnExamineInfo.setPlanStartUpRedCount(warnExamineInfo.getPlanStartUpRedCount() + 1);
|
|
|
|
+ }
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //送审结算日期及时性
|
|
|
|
+ if(null != info.getCalculateAuditDateTimelyFlag()){
|
|
|
|
+ switch (info.getCalculateAuditDateTimelyFlag()){
|
|
|
|
+ case 0:
|
|
|
|
+ if(null == warnExamineInfo.getCalculationForReviewGreenCount()){
|
|
|
|
+ warnExamineInfo.setCalculationForReviewGreenCount(1);
|
|
|
|
+ }else{
|
|
|
|
+ warnExamineInfo.setCalculationForReviewGreenCount(warnExamineInfo.getCalculationForReviewGreenCount() + 1);
|
|
|
|
+ }
|
|
|
|
+ break;
|
|
|
|
+ case 2:
|
|
|
|
+ if(null == warnExamineInfo.getCalculationForReviewYellowCount()){
|
|
|
|
+ warnExamineInfo.setCalculationForReviewYellowCount(1);
|
|
|
|
+ }else{
|
|
|
|
+ warnExamineInfo.setCalculationForReviewYellowCount(warnExamineInfo.getCalculationForReviewYellowCount() + 1);
|
|
|
|
+ }
|
|
|
|
+ break;
|
|
|
|
+ case 3:
|
|
|
|
+ if(null == warnExamineInfo.getCalculationForReviewRedCount()){
|
|
|
|
+ warnExamineInfo.setCalculationForReviewRedCount(1);
|
|
|
|
+ }else{
|
|
|
|
+ warnExamineInfo.setCalculationForReviewRedCount(warnExamineInfo.getCalculationForReviewRedCount() + 1);
|
|
|
|
+ }
|
|
|
|
+ break;
|
|
|
|
+ case 4:
|
|
|
|
+ if(null == warnExamineInfo.getCalculationForReviewErrorCount()){
|
|
|
|
+ warnExamineInfo.setCalculationForReviewErrorCount(1);
|
|
|
|
+ }else{
|
|
|
|
+ warnExamineInfo.setCalculationForReviewErrorCount(warnExamineInfo.getCalculationForReviewErrorCount() + 1);
|
|
|
|
+ }
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //结算审定日期及时性
|
|
|
|
+ if(null != info.getCalculateExamineDateTimelyFlag()){
|
|
|
|
+ switch (info.getCalculateExamineDateTimelyFlag()){
|
|
|
|
+ case 0:
|
|
|
|
+ if(null == warnExamineInfo.getCalculationExamineGreenCount()){
|
|
|
|
+ warnExamineInfo.setCalculationExamineGreenCount(1);
|
|
|
|
+ }else{
|
|
|
|
+ warnExamineInfo.setCalculationExamineGreenCount(warnExamineInfo.getCalculationExamineGreenCount() + 1);
|
|
|
|
+ }
|
|
|
|
+ break;
|
|
|
|
+ case 2:
|
|
|
|
+ if(null == warnExamineInfo.getCalculationExamineYellowCount()){
|
|
|
|
+ warnExamineInfo.setCalculationExamineYellowCount(1);
|
|
|
|
+ }else{
|
|
|
|
+ warnExamineInfo.setCalculationExamineYellowCount(warnExamineInfo.getCalculationExamineYellowCount() + 1);
|
|
|
|
+ }
|
|
|
|
+ break;
|
|
|
|
+ case 3:
|
|
|
|
+ if(null == warnExamineInfo.getCalculationExamineRedCount()){
|
|
|
|
+ warnExamineInfo.setCalculationExamineRedCount(1);
|
|
|
|
+ }else{
|
|
|
|
+ warnExamineInfo.setCalculationExamineRedCount(warnExamineInfo.getCalculationExamineRedCount() + 1);
|
|
|
|
+ }
|
|
|
|
+ break;
|
|
|
|
+ case 4:
|
|
|
|
+ if(null == warnExamineInfo.getCalculationExamineErrorCount()){
|
|
|
|
+ warnExamineInfo.setCalculationExamineErrorCount(1);
|
|
|
|
+ }else{
|
|
|
|
+ warnExamineInfo.setCalculationExamineErrorCount(warnExamineInfo.getCalculationExamineErrorCount() + 1);
|
|
|
|
+ }
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //施工费入账日期及时性
|
|
|
|
+ if(null != info.getConstructionFeeRecordedTimelyFlag()){
|
|
|
|
+ switch (info.getConstructionFeeRecordedTimelyFlag()){
|
|
|
|
+ case 0:
|
|
|
|
+ if(null == warnExamineInfo.getConstructionFeeRecordedGreenCount()){
|
|
|
|
+ warnExamineInfo.setConstructionFeeRecordedGreenCount(1);
|
|
|
|
+ }else{
|
|
|
|
+ warnExamineInfo.setConstructionFeeRecordedGreenCount(warnExamineInfo.getConstructionFeeRecordedGreenCount() + 1);
|
|
|
|
+ }
|
|
|
|
+ break;
|
|
|
|
+ case 2:
|
|
|
|
+ if(null == warnExamineInfo.getConstructionFeeRecordedYellowCount()){
|
|
|
|
+ warnExamineInfo.setConstructionFeeRecordedYellowCount(1);
|
|
|
|
+ }else{
|
|
|
|
+ warnExamineInfo.setConstructionFeeRecordedYellowCount(warnExamineInfo.getConstructionFeeRecordedYellowCount() + 1);
|
|
|
|
+ }
|
|
|
|
+ break;
|
|
|
|
+ case 3:
|
|
|
|
+ if(null == warnExamineInfo.getConstructionFeeRecordedRedCount()){
|
|
|
|
+ warnExamineInfo.setConstructionFeeRecordedRedCount(1);
|
|
|
|
+ }else{
|
|
|
|
+ warnExamineInfo.setConstructionFeeRecordedRedCount(warnExamineInfo.getConstructionFeeRecordedRedCount() + 1);
|
|
|
|
+ }
|
|
|
|
+ break;
|
|
|
|
+ case 4:
|
|
|
|
+ if(null == warnExamineInfo.getConstructionFeeRecordedErrorCount()){
|
|
|
|
+ warnExamineInfo.setConstructionFeeRecordedErrorCount(1);
|
|
|
|
+ }else{
|
|
|
|
+ warnExamineInfo.setConstructionFeeRecordedErrorCount(warnExamineInfo.getConstructionFeeRecordedErrorCount() + 1);
|
|
|
|
+ }
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //核对甲供材是否一致
|
|
|
|
+ if(null != info.getIfCoincideCheckWhichMaterialFlag()){
|
|
|
|
+ switch (info.getIfCoincideCheckWhichMaterialFlag()){
|
|
|
|
+ case 0:
|
|
|
|
+ if(null == warnExamineInfo.getWhichMaterialStoresReturnedGreenCount()){
|
|
|
|
+ warnExamineInfo.setWhichMaterialStoresReturnedGreenCount(1);
|
|
|
|
+ }else{
|
|
|
|
+ warnExamineInfo.setWhichMaterialStoresReturnedGreenCount(warnExamineInfo.getWhichMaterialStoresReturnedGreenCount() + 1);
|
|
|
|
+ }
|
|
|
|
+ break;
|
|
|
|
+ case 2:
|
|
|
|
+ if(null == warnExamineInfo.getWhichMaterialStoresReturnedYellowCount()){
|
|
|
|
+ warnExamineInfo.setWhichMaterialStoresReturnedYellowCount(1);
|
|
|
|
+ }else{
|
|
|
|
+ warnExamineInfo.setWhichMaterialStoresReturnedYellowCount(warnExamineInfo.getWhichMaterialStoresReturnedYellowCount() + 1);
|
|
|
|
+ }
|
|
|
|
+ break;
|
|
|
|
+ case 3:
|
|
|
|
+ if(null == warnExamineInfo.getWhichMaterialStoresReturnedRedCount()){
|
|
|
|
+ warnExamineInfo.setWhichMaterialStoresReturnedRedCount(1);
|
|
|
|
+ }else{
|
|
|
|
+ warnExamineInfo.setWhichMaterialStoresReturnedRedCount(warnExamineInfo.getWhichMaterialStoresReturnedRedCount() + 1);
|
|
|
|
+ }
|
|
|
|
+ break;
|
|
|
|
+ case 4:
|
|
|
|
+ if(null == warnExamineInfo.getWhichMaterialStoresReturnedErrorCount()){
|
|
|
|
+ warnExamineInfo.setWhichMaterialStoresReturnedErrorCount(1);
|
|
|
|
+ }else{
|
|
|
|
+ warnExamineInfo.setWhichMaterialStoresReturnedErrorCount(warnExamineInfo.getWhichMaterialStoresReturnedErrorCount() + 1);
|
|
|
|
+ }
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //提报竣工决算日期及时性
|
|
|
|
+ if(null != info.getCompletionSettlementDateTimelyFlag()){
|
|
|
|
+ switch (info.getCompletionSettlementDateTimelyFlag()){
|
|
|
|
+ case 0:
|
|
|
|
+ if(null == warnExamineInfo.getCompletedActualBudgetGreenCount()){
|
|
|
|
+ warnExamineInfo.setCompletedActualBudgetGreenCount(1);
|
|
|
|
+ }else{
|
|
|
|
+ warnExamineInfo.setCompletedActualBudgetGreenCount(warnExamineInfo.getCompletedActualBudgetGreenCount() + 1);
|
|
|
|
+ }
|
|
|
|
+ break;
|
|
|
|
+ case 2:
|
|
|
|
+ if(null == warnExamineInfo.getCompletedActualBudgetYellowCount()){
|
|
|
|
+ warnExamineInfo.setCompletedActualBudgetYellowCount(1);
|
|
|
|
+ }else{
|
|
|
|
+ warnExamineInfo.setCompletedActualBudgetYellowCount(warnExamineInfo.getCompletedActualBudgetYellowCount() + 1);
|
|
|
|
+ }
|
|
|
|
+ break;
|
|
|
|
+ case 3:
|
|
|
|
+ if(null == warnExamineInfo.getCompletedActualBudgetRedCount()){
|
|
|
|
+ warnExamineInfo.setCompletedActualBudgetRedCount(1);
|
|
|
|
+ }else{
|
|
|
|
+ warnExamineInfo.setCompletedActualBudgetRedCount(warnExamineInfo.getCompletedActualBudgetRedCount() + 1);
|
|
|
|
+ }
|
|
|
|
+ break;
|
|
|
|
+ case 4:
|
|
|
|
+ if(null == warnExamineInfo.getCompletedActualBudgetErrorCount()){
|
|
|
|
+ warnExamineInfo.setCompletedActualBudgetErrorCount(1);
|
|
|
|
+ }else{
|
|
|
|
+ warnExamineInfo.setCompletedActualBudgetErrorCount(warnExamineInfo.getCompletedActualBudgetErrorCount() + 1);
|
|
|
|
+ }
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //决算送审日期及时性
|
|
|
|
+ if(null != info.getFinalAuditDateTimelyFlag()){
|
|
|
|
+ switch (info.getFinalAuditDateTimelyFlag()){
|
|
|
|
+ case 0:
|
|
|
|
+ if(null == warnExamineInfo.getActualBudgetSubmittalsGreenCount()){
|
|
|
|
+ warnExamineInfo.setActualBudgetSubmittalsGreenCount(1);
|
|
|
|
+ }else{
|
|
|
|
+ warnExamineInfo.setActualBudgetSubmittalsGreenCount(warnExamineInfo.getActualBudgetSubmittalsGreenCount() + 1);
|
|
|
|
+ }
|
|
|
|
+ break;
|
|
|
|
+ case 2:
|
|
|
|
+ if(null == warnExamineInfo.getActualBudgetSubmittalsYellowCount()){
|
|
|
|
+ warnExamineInfo.setActualBudgetSubmittalsYellowCount(1);
|
|
|
|
+ }else{
|
|
|
|
+ warnExamineInfo.setActualBudgetSubmittalsYellowCount(warnExamineInfo.getActualBudgetSubmittalsYellowCount() + 1);
|
|
|
|
+ }
|
|
|
|
+ break;
|
|
|
|
+ case 3:
|
|
|
|
+ if(null == warnExamineInfo.getActualBudgetSubmittalsRedCount()){
|
|
|
|
+ warnExamineInfo.setActualBudgetSubmittalsRedCount(1);
|
|
|
|
+ }else{
|
|
|
|
+ warnExamineInfo.setActualBudgetSubmittalsRedCount(warnExamineInfo.getActualBudgetSubmittalsRedCount() + 1);
|
|
|
|
+ }
|
|
|
|
+ break;
|
|
|
|
+ case 4:
|
|
|
|
+ if(null == warnExamineInfo.getActualBudgetSubmittalsErrorCount()){
|
|
|
|
+ warnExamineInfo.setActualBudgetSubmittalsErrorCount(1);
|
|
|
|
+ }else{
|
|
|
|
+ warnExamineInfo.setActualBudgetSubmittalsErrorCount(warnExamineInfo.getActualBudgetSubmittalsErrorCount() + 1);
|
|
|
|
+ }
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //出具决算审计报告及时性
|
|
|
|
+ if(null != info.getFinalAccountsAuditReportTimelyFlag()){
|
|
|
|
+ switch (info.getFinalAccountsAuditReportTimelyFlag()){
|
|
|
|
+ case 0:
|
|
|
|
+ if(null == warnExamineInfo.getActualBudgetauditReportGreenCount()){
|
|
|
|
+ warnExamineInfo.setActualBudgetauditReportGreenCount(1);
|
|
|
|
+ }else{
|
|
|
|
+ warnExamineInfo.setActualBudgetauditReportGreenCount(warnExamineInfo.getActualBudgetauditReportGreenCount() + 1);
|
|
|
|
+ }
|
|
|
|
+ break;
|
|
|
|
+ case 2:
|
|
|
|
+ if(null == warnExamineInfo.getActualBudgetauditReportYellowCount()){
|
|
|
|
+ warnExamineInfo.setActualBudgetauditReportYellowCount(1);
|
|
|
|
+ }else{
|
|
|
|
+ warnExamineInfo.setActualBudgetauditReportYellowCount(warnExamineInfo.getActualBudgetauditReportYellowCount() + 1);
|
|
|
|
+ }
|
|
|
|
+ break;
|
|
|
|
+ case 3:
|
|
|
|
+ if(null == warnExamineInfo.getActualBudgetauditReportRedCount()){
|
|
|
|
+ warnExamineInfo.setActualBudgetauditReportRedCount(1);
|
|
|
|
+ }else{
|
|
|
|
+ warnExamineInfo.setActualBudgetauditReportRedCount(warnExamineInfo.getActualBudgetauditReportRedCount() + 1);
|
|
|
|
+ }
|
|
|
|
+ break;
|
|
|
|
+ case 4:
|
|
|
|
+ if(null == warnExamineInfo.getActualBudgetauditReportErrorCount()){
|
|
|
|
+ warnExamineInfo.setActualBudgetauditReportErrorCount(1);
|
|
|
|
+ }else{
|
|
|
|
+ warnExamineInfo.setActualBudgetauditReportErrorCount(warnExamineInfo.getActualBudgetauditReportErrorCount() + 1);
|
|
|
|
+ }
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return warnExamineInfo;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ *
|
|
|
|
+ * @param courseInfo
|
|
|
|
+ * @param evaluationInfo
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ private ProjectWarnExamineInfo disposeProjectAllList(ProjectWarnExamineInfo courseInfo,ProjectWarnExamineInfo evaluationInfo){
|
|
|
|
+ ProjectWarnExamineInfo warnExamineInfo = new ProjectWarnExamineInfo();
|
|
|
|
+ //计划开工日期准确性
|
|
|
|
+ warnExamineInfo.setPlanStartUpGreenCount(courseInfo.getPlanStartUpGreenCount() + evaluationInfo.getPlanStartUpGreenCount());
|
|
|
|
+ warnExamineInfo.setPlanStartUpYellowCount(courseInfo.getPlanStartUpYellowCount() + evaluationInfo.getPlanStartUpYellowCount());
|
|
|
|
+ warnExamineInfo.setPlanStartUpRedCount(courseInfo.getPlanStartUpRedCount() + evaluationInfo.getPlanStartUpRedCount());
|
|
|
|
+ //送审结算日期及时性
|
|
|
|
+ warnExamineInfo.setCalculationForReviewGreenCount(courseInfo.getCalculationForReviewGreenCount() + evaluationInfo.getCalculationForReviewGreenCount());
|
|
|
|
+ warnExamineInfo.setCalculationForReviewYellowCount(courseInfo.getCalculationForReviewYellowCount() + evaluationInfo.getCalculationForReviewGreenCount());
|
|
|
|
+ warnExamineInfo.setCalculationForReviewRedCount(courseInfo.getCalculationForReviewRedCount() + evaluationInfo.getCalculationForReviewGreenCount());
|
|
|
|
+ warnExamineInfo.setCalculationForReviewErrorCount(courseInfo.getCalculationForReviewErrorCount() + evaluationInfo.getCalculationForReviewGreenCount());
|
|
|
|
+ //结算审定日期及时性
|
|
|
|
+ warnExamineInfo.setCalculationExamineGreenCount(courseInfo.getCalculationExamineGreenCount() + evaluationInfo.getCalculationExamineGreenCount());
|
|
|
|
+ warnExamineInfo.setCalculationExamineYellowCount(courseInfo.getCalculationExamineYellowCount() + evaluationInfo.getCalculationExamineYellowCount());
|
|
|
|
+ warnExamineInfo.setCalculationExamineRedCount(courseInfo.getCalculationExamineRedCount() + evaluationInfo.getCalculationExamineRedCount());
|
|
|
|
+ warnExamineInfo.setCalculationExamineErrorCount(courseInfo.getCalculationExamineErrorCount() + evaluationInfo.getCalculationExamineErrorCount());
|
|
|
|
+ //施工费入账日期及时性
|
|
|
|
+ warnExamineInfo.setConstructionFeeRecordedGreenCount(courseInfo.getConstructionFeeRecordedGreenCount() + evaluationInfo.getConstructionFeeRecordedGreenCount());
|
|
|
|
+ warnExamineInfo.setConstructionFeeRecordedYellowCount(courseInfo.getConstructionFeeRecordedYellowCount() + evaluationInfo.getConstructionFeeRecordedYellowCount());
|
|
|
|
+ warnExamineInfo.setConstructionFeeRecordedRedCount(courseInfo.getConstructionFeeRecordedRedCount() + evaluationInfo.getConstructionFeeRecordedRedCount());
|
|
|
|
+ warnExamineInfo.setConstructionFeeRecordedErrorCount(courseInfo.getConstructionFeeRecordedErrorCount() + evaluationInfo.getConstructionFeeRecordedErrorCount());
|
|
|
|
+ //核对甲供材是否一致
|
|
|
|
+ warnExamineInfo.setWhichMaterialStoresReturnedGreenCount(courseInfo.getWhichMaterialStoresReturnedGreenCount() + evaluationInfo.getWhichMaterialStoresReturnedGreenCount());
|
|
|
|
+ warnExamineInfo.setWhichMaterialStoresReturnedYellowCount(courseInfo.getWhichMaterialStoresReturnedYellowCount() + evaluationInfo.getWhichMaterialStoresReturnedYellowCount());
|
|
|
|
+ warnExamineInfo.setWhichMaterialStoresReturnedRedCount(courseInfo.getWhichMaterialStoresReturnedRedCount() + evaluationInfo.getWhichMaterialStoresReturnedRedCount());
|
|
|
|
+ warnExamineInfo.setWhichMaterialStoresReturnedErrorCount(courseInfo.getWhichMaterialStoresReturnedErrorCount() + evaluationInfo.getWhichMaterialStoresReturnedErrorCount());
|
|
|
|
+ //提报竣工决算日期及时性
|
|
|
|
+ warnExamineInfo.setCompletedActualBudgetGreenCount(courseInfo.getCompletedActualBudgetGreenCount() + evaluationInfo.getCompletedActualBudgetGreenCount());
|
|
|
|
+ warnExamineInfo.setCompletedActualBudgetYellowCount(courseInfo.getCompletedActualBudgetYellowCount() + evaluationInfo.getCompletedActualBudgetYellowCount());
|
|
|
|
+ warnExamineInfo.setCompletedActualBudgetRedCount(courseInfo.getCompletedActualBudgetRedCount() + evaluationInfo.getCompletedActualBudgetRedCount());
|
|
|
|
+ warnExamineInfo.setCompletedActualBudgetErrorCount(courseInfo.getCompletedActualBudgetErrorCount() + evaluationInfo.getCompletedActualBudgetErrorCount());
|
|
|
|
+ //决算送审日期及时性
|
|
|
|
+ warnExamineInfo.setActualBudgetSubmittalsGreenCount(courseInfo.getActualBudgetSubmittalsGreenCount() + evaluationInfo.getActualBudgetSubmittalsGreenCount());
|
|
|
|
+ warnExamineInfo.setActualBudgetSubmittalsYellowCount(courseInfo.getActualBudgetSubmittalsYellowCount() + evaluationInfo.getActualBudgetSubmittalsYellowCount());
|
|
|
|
+ warnExamineInfo.setActualBudgetSubmittalsRedCount(courseInfo.getActualBudgetSubmittalsRedCount() + evaluationInfo.getActualBudgetSubmittalsRedCount());
|
|
|
|
+ warnExamineInfo.setActualBudgetSubmittalsErrorCount(courseInfo.getActualBudgetSubmittalsErrorCount() + evaluationInfo.getActualBudgetSubmittalsErrorCount());
|
|
|
|
+ //出具决算审计报告及时性
|
|
|
|
+ warnExamineInfo.setActualBudgetauditReportGreenCount(courseInfo.getActualBudgetauditReportGreenCount() + evaluationInfo.getActualBudgetauditReportGreenCount());
|
|
|
|
+ warnExamineInfo.setActualBudgetauditReportYellowCount(courseInfo.getActualBudgetauditReportYellowCount() + evaluationInfo.getActualBudgetauditReportYellowCount());
|
|
|
|
+ warnExamineInfo.setActualBudgetauditReportRedCount(courseInfo.getActualBudgetauditReportRedCount() + evaluationInfo.getActualBudgetauditReportRedCount());
|
|
|
|
+ warnExamineInfo.setActualBudgetauditReportErrorCount(courseInfo.getActualBudgetauditReportErrorCount() + evaluationInfo.getActualBudgetauditReportErrorCount());
|
|
|
|
+
|
|
|
|
+ return warnExamineInfo;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 后评价显示数据处理
|
|
|
|
+ * @param projectCourseControlList
|
|
|
|
+ */
|
|
|
|
+ private void disposeProjectEvaluationBasics(List<ProjectWarnExamineInfo> projectCourseControlList){
|
|
|
|
+ for (ProjectWarnExamineInfo info: projectCourseControlList) {
|
|
|
|
+ //处理计划开工日期准确性 |计划开工日期- 首次领料日期| 0-30天(含30天)绿灯 30天以上红灯(前后数据均不能为空)
|
|
|
|
+ if(StringUtils.isNotBlank(info.getPlanStartUpDate()) && StringUtils.isNotBlank(info.getFirstAcquisitionTime())){
|
|
|
|
+ Integer differenceValue = dateDifferenceValue(info.getPlanStartUpDate(), info.getFirstAcquisitionTime());
|
|
|
|
+ differenceValue = absoluteValue(differenceValue);
|
|
|
|
+ if (0 <= differenceValue && differenceValue<= 15) {
|
|
|
|
+ info.setPlanStartWorkingTimeAccuracy(differenceValue.toString());
|
|
|
|
+ info.setPlanStartWorkingTimeAccuracyFlag(0);
|
|
|
|
+ }else if (15 < differenceValue && differenceValue<= 30) {
|
|
|
|
+ info.setPlanStartWorkingTimeAccuracy(differenceValue.toString());
|
|
|
|
+ info.setPlanStartWorkingTimeAccuracyFlag(2);
|
|
|
|
+ }else if(differenceValue > 30){
|
|
|
|
+ info.setPlanStartWorkingTimeAccuracy(differenceValue.toString());
|
|
|
|
+ info.setPlanStartWorkingTimeAccuracyFlag(4);
|
|
|
|
+ }if(differenceValue<0){
|
|
|
|
+ info.setPlanStartWorkingTimeAccuracy("逻辑错误");
|
|
|
|
+ info.setPlanStartWorkingTimeAccuracyFlag(4);
|
|
|
|
+ }
|
|
|
|
+ }else{
|
|
|
|
+ info.setPlanStartWorkingTimeAccuracy("");
|
|
|
|
+ info.setPlanStartWorkingTimeAccuracyFlag(null);
|
|
|
|
+ }
|
|
|
|
+ //处理 结算送审日期及时性 结算送审日期-实际竣工日期 0-30天(含30天)绿灯 30天以上红灯 小于0天,显示“逻辑错误”
|
|
|
|
+ if(StringUtils.isNotBlank(info.getCalculationForReviewTime()) && StringUtils.isNotBlank(info.getPracticalcompletionDate())){
|
|
|
|
+ Integer differenceValue = dateDifferenceValue(info.getCalculationForReviewTime(), info.getPracticalcompletionDate());
|
|
|
|
+ if (0 <= differenceValue && differenceValue<= 30) {
|
|
|
|
+ info.setCalculateAuditDateTimely(differenceValue.toString());
|
|
|
|
+ info.setCalculateAuditDateTimelyFlag(0);
|
|
|
|
+ }else if (30 < differenceValue) {
|
|
|
|
+ info.setCalculateAuditDateTimely(differenceValue.toString());
|
|
|
|
+ info.setCalculateAuditDateTimelyFlag(4);
|
|
|
|
+ }else if(differenceValue<0){
|
|
|
|
+ info.setCalculateAuditDateTimely("逻辑错误");
|
|
|
|
+ info.setCalculateAuditDateTimelyFlag(4);
|
|
|
|
+ }
|
|
|
|
+ }else{
|
|
|
|
+ info.setCalculateAuditDateTimely("");
|
|
|
|
+ info.setCalculateAuditDateTimelyFlag(null);
|
|
|
|
+ }
|
|
|
|
+ //处理 结算审定日期及时性 结算审定日期-结算送审日期 0-30天(含30天)绿灯 30天以上红灯 小于0天,显示“逻辑错误”
|
|
|
|
+ if(StringUtils.isNotBlank(info.getCalculationExamineTime()) && StringUtils.isNotBlank(info.getCalculationForReviewTime())){
|
|
|
|
+ Integer differenceValue = dateDifferenceValue(info.getCalculationExamineTime(), info.getCalculationForReviewTime());
|
|
|
|
+ if (0 <= differenceValue && differenceValue<= 30) {
|
|
|
|
+ info.setCalculateExamineDateTimely(differenceValue.toString());
|
|
|
|
+ info.setCalculateExamineDateTimelyFlag(0);
|
|
|
|
+ }else if (30 < differenceValue) {
|
|
|
|
+ info.setCalculateExamineDateTimely(differenceValue.toString());
|
|
|
|
+ info.setCalculateExamineDateTimelyFlag(4);
|
|
|
|
+ }else if(differenceValue<0){
|
|
|
|
+ info.setCalculateExamineDateTimely("逻辑错误");
|
|
|
|
+ info.setCalculateExamineDateTimelyFlag(4);
|
|
|
|
+ }
|
|
|
|
+ }else{
|
|
|
|
+ info.setCalculateExamineDateTimely("");
|
|
|
|
+ info.setCalculateExamineDateTimelyFlag(null);
|
|
|
|
+ }
|
|
|
|
+ //处理 施工费入账日期及时性 施工费入账日期-结算审定日期 0-6天(含6天)绿灯 6天以上红灯 小于0天,显示“逻辑错误”
|
|
|
|
+ if(StringUtils.isNotBlank(info.getFirstConstructionFeeRecordedTime()) && StringUtils.isNotBlank(info.getCalculationExamineTime())){
|
|
|
|
+ Integer differenceValue = dateDifferenceValue(info.getFirstConstructionFeeRecordedTime(), info.getCalculationExamineTime());
|
|
|
|
+
|
|
|
|
+ if (0 <= differenceValue && differenceValue<= 6) {
|
|
|
|
+ info.setConstructionFeeRecordedTimely(differenceValue.toString());
|
|
|
|
+ info.setConstructionFeeRecordedTimelyFlag(0);
|
|
|
|
+ }else if (6 < differenceValue) {
|
|
|
|
+ info.setConstructionFeeRecordedTimely(differenceValue.toString());
|
|
|
|
+ info.setConstructionFeeRecordedTimelyFlag(4);
|
|
|
|
+ }else if(differenceValue<0){
|
|
|
|
+ info.setConstructionFeeRecordedTimely("逻辑错误");
|
|
|
|
+ info.setConstructionFeeRecordedTimelyFlag(4);
|
|
|
|
+ }
|
|
|
|
+ }else{
|
|
|
|
+ info.setConstructionFeeRecordedTimely("");
|
|
|
|
+ info.setConstructionFeeRecordedTimelyFlag(null);
|
|
|
|
+ }
|
|
|
|
+ //处理 核对甲供材是否一致 甲供材系统中是否一致列 一致绿灯 不一致红灯
|
|
|
|
+ if("是".equals(info.getIfGetRejectedMaterialFinish())){
|
|
|
|
+ info.setIfCoincideCheckWhichMaterial(info.getIfGetRejectedMaterialFinish());
|
|
|
|
+ info.setIfCoincideCheckWhichMaterialFlag(0);
|
|
|
|
+ }else{
|
|
|
|
+ info.setIfCoincideCheckWhichMaterial(info.getIfGetRejectedMaterialFinish());
|
|
|
|
+ info.setIfCoincideCheckWhichMaterialFlag(4);
|
|
|
|
+ }
|
|
|
|
+ //处理 提报竣工决算日期及时性 提报竣工决算日期-施工费入账日期 0-5天(含5天)绿灯 5天以上红灯 小于0天,显示“逻辑错误”
|
|
|
|
+ if(StringUtils.isNotBlank(info.getCompletedActualBudgetTime()) && StringUtils.isNotBlank(info.getFirstConstructionFeeRecordedTime())){
|
|
|
|
+ Integer differenceValue = dateDifferenceValue(info.getCompletedActualBudgetTime(), info.getFirstConstructionFeeRecordedTime());
|
|
|
|
+
|
|
|
|
+ if (0 <= differenceValue && differenceValue<= 5) {
|
|
|
|
+ info.setCompletionSettlementDateTimely(differenceValue.toString());
|
|
|
|
+ info.setCompletionSettlementDateTimelyFlag(0);
|
|
|
|
+ }else if (5 < differenceValue) {
|
|
|
|
+ info.setCompletionSettlementDateTimely(differenceValue.toString());
|
|
|
|
+ info.setCompletionSettlementDateTimelyFlag(4);
|
|
|
|
+ }else if(differenceValue<0){
|
|
|
|
+ info.setCompletionSettlementDateTimely("逻辑错误");
|
|
|
|
+ info.setCompletionSettlementDateTimelyFlag(4);
|
|
|
|
+ }
|
|
|
|
+ }else{
|
|
|
|
+ info.setCompletionSettlementDateTimely("");
|
|
|
|
+ info.setCompletionSettlementDateTimelyFlag(null);
|
|
|
|
+ }
|
|
|
|
+ //处理 决算送审日期及时性 决算送审日期-提报竣工决算日期 0-5天(含5天)绿灯 5天以上红灯 小于0天,显示“逻辑错误”
|
|
|
|
+ if(StringUtils.isNotBlank(info.getActualBudgetSubmittalsTime()) && StringUtils.isNotBlank(info.getCompletedActualBudgetTime())){
|
|
|
|
+ Integer differenceValue = dateDifferenceValue(info.getActualBudgetSubmittalsTime(), info.getCompletedActualBudgetTime());
|
|
|
|
+
|
|
|
|
+ if (0 <= differenceValue && differenceValue<= 5) {
|
|
|
|
+ info.setFinalAuditDateTimely(differenceValue.toString());
|
|
|
|
+ info.setFinalAuditDateTimelyFlag(0);
|
|
|
|
+ }else if (5 < differenceValue) {
|
|
|
|
+ info.setFinalAuditDateTimely(differenceValue.toString());
|
|
|
|
+ info.setFinalAuditDateTimelyFlag(4);
|
|
|
|
+ }else if(differenceValue<0){
|
|
|
|
+ info.setFinalAuditDateTimely("逻辑错误");
|
|
|
|
+ info.setFinalAuditDateTimelyFlag(4);
|
|
|
|
+ }
|
|
|
|
+ }else{
|
|
|
|
+ info.setFinalAuditDateTimely("");
|
|
|
|
+ info.setFinalAuditDateTimelyFlag(null);
|
|
|
|
+ }
|
|
|
|
+ //处理 出具决算审计报告及时性 决算审计报告出具日期-决算送审日期 0-15天(含15天)绿灯 15天以上红灯 小于0天,显示“逻辑错误”
|
|
|
|
+ if(StringUtils.isNotBlank(info.getActualBudgetSubmittalsTime()) && StringUtils.isNotBlank(info.getCompletedActualBudgetTime())){
|
|
|
|
+ Integer differenceValue = dateDifferenceValue(info.getActualBudgetSubmittalsTime(), info.getCompletedActualBudgetTime());
|
|
|
|
+
|
|
|
|
+ if (0 <= differenceValue && differenceValue<= 15) {
|
|
|
|
+ info.setFinalAccountsAuditReportTimely(differenceValue.toString());
|
|
|
|
+ info.setFinalAccountsAuditReportTimelyFlag(0);
|
|
|
|
+ }else if (15 < differenceValue) {
|
|
|
|
+ info.setFinalAccountsAuditReportTimely(differenceValue.toString());
|
|
|
|
+ info.setFinalAccountsAuditReportTimelyFlag(4);
|
|
|
|
+ }else if(differenceValue<0){
|
|
|
|
+ info.setFinalAccountsAuditReportTimely("逻辑错误");
|
|
|
|
+ info.setFinalAccountsAuditReportTimelyFlag(4);
|
|
|
|
+ }
|
|
|
|
+ }else{
|
|
|
|
+ info.setFinalAccountsAuditReportTimely("");
|
|
|
|
+ info.setFinalAccountsAuditReportTimelyFlag(null);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 绝对值处理
|
|
|
|
+ * @param a
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ public static int absoluteValue(Integer a) {
|
|
|
|
+ return (a < 0) ? -a : a;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private Integer dateDifferenceValue(String dataOne,String dateTwo){
|
|
|
|
+ Integer betweenDaysValue = null;
|
|
|
|
+ SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");//注意月份是MM
|
|
|
|
+ try {
|
|
|
|
+ if(StringUtils.isBlank(dataOne) && StringUtils.isBlank(dateTwo)){//如果两个时间均为空 则不进行计算,前端页面展示为空
|
|
|
|
+ return betweenDaysValue;
|
|
|
|
+ }else{
|
|
|
|
+
|
|
|
|
+ Date date1 = null;
|
|
|
|
+ if(StringUtils.isNotBlank(dataOne)){
|
|
|
|
+ date1 = simpleDateFormat.parse(dataOne);
|
|
|
|
+ }else{
|
|
|
|
+ date1 = new Date();
|
|
|
|
+ }
|
|
|
|
+ Date date2 = null;
|
|
|
|
+ if(StringUtils.isNotBlank(dateTwo)){
|
|
|
|
+ date2 = simpleDateFormat.parse(dateTwo);
|
|
|
|
+ }else{
|
|
|
|
+ date2 = new Date();
|
|
|
|
+ }
|
|
|
|
+ Long betweenDays = (date1.getTime() - date2.getTime()) / (1000L*3600L*24L);
|
|
|
|
+ betweenDaysValue = betweenDays.intValue();
|
|
|
|
+ }
|
|
|
|
+ } catch (ParseException e) {
|
|
|
|
+ e.printStackTrace();
|
|
|
|
+ }
|
|
|
|
+ return betweenDaysValue;
|
|
|
|
+ }
|
|
|
|
+}
|