瀏覽代碼

新增或编辑项目,(1)判断项目开始时间不能在结束时间之前。(2)根据项目开始和结束时间设置项目状态

wanghaicheng 5 年之前
父節點
當前提交
836e1c9939

+ 5 - 2
lift-business-service/src/main/java/cn/com/ty/lift/business/project/controller/ProjectController.java

@@ -155,6 +155,9 @@ public class ProjectController {
     public RestResponse add(@Val @RequestBody ProjectRequest request) {
         Validator.valid(request.getProject(), "mtCompanyId", "ppCompanyId", "ppContactId", "projectName",
                 "address", "num", "startDate", "endDate", "regionId", "projectUsage");
+        if (request.getProject().getEndDate().isBefore(request.getProject().getStartDate())) {
+            return RestResponse.fail("项目结束时间不能在开始时间之前");
+        }
         return projectService.add(request);
     }
 
@@ -178,8 +181,8 @@ public class ProjectController {
      */
     @PostMapping("remove")
     @Validation(fields = {"id"})
-    public RestResponse remove(@Val @RequestBody ProjectRequest request){
-        return projectService.remove(request.getId(),request.getMtCompanyId());
+    public RestResponse remove(@Val @RequestBody ProjectRequest request) {
+        return projectService.remove(request.getId(), request.getMtCompanyId());
     }
 
     /**

+ 25 - 5
lift-business-service/src/main/java/cn/com/ty/lift/business/project/service/ProjectService.java

@@ -15,7 +15,6 @@ import cn.com.ty.lift.business.project.dao.entity.model.response.ProjectUserResp
 import cn.com.ty.lift.business.project.dao.mapper.ProjectMapper;
 import cn.com.ty.lift.business.push.service.PushUserService;
 import cn.com.ty.lift.common.base.ExportRequest;
-import cn.com.ty.lift.common.constants.CommonEnum;
 import cn.com.ty.lift.common.constants.CommonEnum.ProjectStatus;
 import cn.com.ty.lift.common.constants.WebSocketConstants;
 import cn.com.ty.lift.common.model.PushMessage;
@@ -48,6 +47,7 @@ import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
+import java.time.temporal.ChronoUnit;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -325,13 +325,32 @@ public class ProjectService extends ServiceImpl<ProjectMapper, Project> {
         //按当前日期时间戳自动生成项目编号
         String projectCode = DateUtils.generateCode();
         project.setProjectCode("XM" + projectCode);
+        this.setProjectStatus(project);
+        return save(project);
+    }
+
+    /**
+     * 根据项目开始结束时间,设置项目状态
+     *
+     * @param project 项目信息
+     */
+    private void setProjectStatus(Project project) {
         LocalDate now = LocalDate.now();
         LocalDate startDate = project.getStartDate();
         LocalDate endDate = project.getEndDate();
-        if (startDate.isEqual(now) || startDate.isBefore(now) && endDate.isAfter(now)) {
+        LocalDate tomorrow = now.plus(1, ChronoUnit.DAYS);
+        //如果项目开始时间在今天之后,项目状态设置成未开始
+        if (startDate.isAfter(now)) {
+            project.setProjectStatus("1");
+        }
+        //如果项目开始时间在明天之前,项目状态设置成服务中
+        if (startDate.isBefore(tomorrow)) {
             project.setProjectStatus("2");
         }
-        return save(project);
+        //如果项目结束时间在今天之前,项目状态设置成逾期
+        if (endDate.isAfter(now)) {
+            project.setProjectStatus("3");
+        }
     }
 
     /**
@@ -430,6 +449,7 @@ public class ProjectService extends ServiceImpl<ProjectMapper, Project> {
         Optional<Project> oldProject = getOne(project.getId());
         if (!oldProject.isPresent())
             return RestResponse.fail(MessageUtils.get("msg.project.not.exist"));
+        this.setProjectStatus(project);
         boolean result = updateById(project);
         if (!result)
             return RestResponse.fail(MessageUtils.get("msg.modify.fail"));
@@ -451,7 +471,7 @@ public class ProjectService extends ServiceImpl<ProjectMapper, Project> {
         return baseMapper.exportList(ids);
     }
 
-    public List<Map<String,String>> exportLiftList(List<String> ids){
+    public List<Map<String, String>> exportLiftList(List<String> ids) {
         return baseMapper.exportLiftList(ids);
     }
 
@@ -465,7 +485,7 @@ public class ProjectService extends ServiceImpl<ProjectMapper, Project> {
         List<String> ids = request.getIds();
         List<Map<String, String>> projectList = exportList(ids);
         List<Map<String, String>> liftList = exportLiftList(ids);
-        ExcelWriter writer = new ExcelWriter(true,"项目");
+        ExcelWriter writer = new ExcelWriter(true, "项目");
         //设置列别名
         projectHeadsMap.forEach(writer::addHeaderAlias);
         response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8");