Browse Source

项目进度详情开发

anderx 1 year ago
parent
commit
98798a94d6

+ 42 - 10
src/main/java/com/goafanti/common/utils/excel/NewExcelUtil.java

@@ -1962,10 +1962,17 @@ public class NewExcelUtil<T> {
 				if (o.getBeforeLastRdBudget()!=null){
 					cell.setCellValue(o.getBeforeLastRdBudget().stripTrailingZeros().toPlainString());
 				}else cell.setCellValue("");
-
 			}
-			else if(i==8)cell.setCellValue(o.getLastSalesAmount().stripTrailingZeros().toPlainString());
-			else if(i==9)cell.setCellValue(o.getLastRdBudget().stripTrailingZeros().toPlainString());
+			else if(i==8){
+				if(o.getLastSalesAmount()!=null){
+					cell.setCellValue(o.getLastSalesAmount().stripTrailingZeros().toPlainString());
+				}else cell.setCellValue("");
+			}
+			else if(i==9){
+				if(o.getLastRdBudget()!=null){
+					cell.setCellValue(o.getLastRdBudget().stripTrailingZeros().toPlainString());
+				}else cell.setCellValue("");
+			}
 			else if(i==10){
 				switch (o.getCloseMeetingStatus())
 					{
@@ -1978,11 +1985,18 @@ public class NewExcelUtil<T> {
 						case 3: cell.setCellValue("合同无此项"); break;
 
 					}
-
 			}else if(i==11){
 				cell.setCellValue(o.getProjectApprovalNumber());
-			}else if(i==12)cell.setCellValue(o.getRdBudget().stripTrailingZeros().toPlainString());
-			else if(i==13)cell.setCellValue(o.getRdSalesAmount().stripTrailingZeros().toPlainString());
+			}else if(i==12){
+				if (o.getRdBudget() !=null){
+					cell.setCellValue(o.getRdBudget().stripTrailingZeros().toPlainString());
+				}else cell.setCellValue("");
+			}
+			else if(i==13){
+				if (o.getRdSalesAmount() !=null){
+					cell.setCellValue(o.getRdSalesAmount().stripTrailingZeros().toPlainString());
+				}else cell.setCellValue("");
+			}
 			else if(i==14)cell.setCellValue(o.getRdBudgetRate());
 			else if(i==15)cell.setCellValue(o.getThreeYearsRdBudgetRate());
 			else if(i==16){
@@ -1998,8 +2012,16 @@ public class NewExcelUtil<T> {
 				}
 			}
 			else if(i==17)cell.setCellValue(o.getActualRdNumber());
-			else if(i==18)cell.setCellValue(o.getActualRdAmount().stripTrailingZeros().toPlainString());
-			else if(i==19)cell.setCellValue(o.getActualSalesAmount().stripTrailingZeros().toPlainString());
+			else if(i==18){
+				if (o.getActualRdAmount() !=null){
+					cell.setCellValue(o.getActualRdAmount().stripTrailingZeros().toPlainString());
+				}else cell.setCellValue("");
+			}
+			else if(i==19){
+				if (o.getActualSalesAmount() !=null){
+					cell.setCellValue(o.getActualSalesAmount().stripTrailingZeros().toPlainString());
+				}else cell.setCellValue("");
+			}
 			else if(i==20)cell.setCellValue(o.getActualRdRate());
 			else if(i==21)cell.setCellValue(o.getThreeYearsActualRdRate());
 			else if(i==22) {
@@ -2050,7 +2072,11 @@ public class NewExcelUtil<T> {
 					case 3: cell.setCellValue("合同无此项"); break;
 				}
 			}
-			else if(i==26)cell.setCellValue(o.getReportRdAmount().stripTrailingZeros().toPlainString());
+			else if(i==26){
+				if (o.getReportRdAmount() !=null){
+					cell.setCellValue(o.getReportRdAmount().stripTrailingZeros().toPlainString());
+				}else cell.setCellValue("");
+			}
 			else if(i==27){
 				switch (o.getRdReservesStatus())
 				{
@@ -2087,7 +2113,11 @@ public class NewExcelUtil<T> {
 					case 3: cell.setCellValue("合同无此项"); break;
 				}
 			}
-			else if(i==30){cell.setCellValue(o.getRdAnnouncementAmount().stripTrailingZeros().toPlainString());}
+			else if(i==30){
+				if (o.getRdAnnouncementAmount() !=null){
+					cell.setCellValue(o.getRdAnnouncementAmount().stripTrailingZeros().toPlainString());
+				}else cell.setCellValue("");
+			}
 			else if(i==31){
 				switch (o.getAdDeliverStatus())
 				{
@@ -2225,6 +2255,8 @@ public class NewExcelUtil<T> {
 			}
 			else if(i==52){
 				cell.setCellValue(DateUtils.formatDateYYYYMMddHHmm(o.getUpdateTime()));
+			}else {
+				cell.setCellValue("");
 			}
 		}
 

+ 8 - 3
src/main/java/com/goafanti/techproject/controller/TaskDetailsController.java

@@ -1,9 +1,9 @@
 package com.goafanti.techproject.controller;
 
 import com.goafanti.common.bo.Result;
+import com.goafanti.common.constant.ErrorConstants;
 import com.goafanti.common.controller.BaseController;
 import com.goafanti.common.model.TaskDetails;
-import com.goafanti.techproject.bo.TaskDetailsBo;
 import com.goafanti.techproject.service.TaskDetailsService;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -35,8 +35,13 @@ public class TaskDetailsController extends BaseController {
      * @return 新增结果
      */
     @PostMapping("/add")
-    public Result<TaskDetailsBo> add(TaskDetails taskDetails) {
-        return new Result<>().data(this.taskDetailsService.insert(taskDetails));
+    public Result<TaskDetails> add(TaskDetails taskDetails) {
+        Result<TaskDetails> res = new Result<>();
+        if (taskDetailsService.checkTid(taskDetails)){
+            res.getError().add(buildError("项目进度与年份", ErrorConstants.PARAM_BEING_ERROR));
+            return res;
+        }
+        return res.data(this.taskDetailsService.insert(taskDetails));
     }
 
 

+ 2 - 0
src/main/java/com/goafanti/techproject/service/TaskDetailsService.java

@@ -55,4 +55,6 @@ public interface TaskDetailsService {
     TaskDetailsBo getByTid(Integer id);
 
     Object export(Integer id);
+
+    boolean checkTid(TaskDetails taskDetails);
 }

+ 13 - 1
src/main/java/com/goafanti/techproject/service/impl/TaskDetailsServiceImpl.java

@@ -213,7 +213,12 @@ public class TaskDetailsServiceImpl extends BaseMybatisDao<TaskDetailsMapper> im
                 taskDetails.setThreeYearsActualRdRate(res2.doubleValue());
             }
         }
-
+        //计算立项资料占比
+        if (taskDetails.getProjectApprovalWriteNumber()!=null){
+            BigDecimal projectApprovalWriteNumber = BigDecimal.valueOf(taskDetails.getProjectApprovalWriteNumber());
+            BigDecimal res = projectApprovalWriteNumber.divide(new BigDecimal(taskDetails.getProjectApprovalNumber()), 4, RoundingMode.HALF_UP).multiply(new BigDecimal(100));
+            taskDetails.setProjectApprovalWriteRate(res.doubleValue());
+        }
     }
 
     private BigDecimal getBigDecimal(BigDecimal rdSalesAmount, BigDecimal rdBudget, List<TaskAnnualReport> taskAnnualReports) {
@@ -236,6 +241,7 @@ public class TaskDetailsServiceImpl extends BaseMybatisDao<TaskDetailsMapper> im
     public TaskDetails update(TaskDetails taskDetails) {
         taskDetails.setUpdateTime(new Date());
         this.taskDetailsMapper.update(taskDetails);
+        countTaskDetails(taskDetails);
         TaskDetails res = this.queryById(taskDetails.getId());
         addTaskDetailsLog(res);
         return res;
@@ -270,4 +276,10 @@ public class TaskDetailsServiceImpl extends BaseMybatisDao<TaskDetailsMapper> im
         res.setServiceProject(sb.toString());
         return excel.exportTaskDetailsExcel(res,"项目进度表",uploadPath);
     }
+
+    @Override
+    public boolean checkTid(TaskDetails taskDetails) {
+        TaskDetails res = taskDetailsMapper.selectByTid(taskDetails.getTid());
+        return res != null;
+    }
 }