浏览代码

任务列表Bug修改 项目成本基线修改

yurk 2 年之前
父节点
当前提交
f93bcb86d0

+ 2 - 2
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ProjectController.java

@@ -81,8 +81,8 @@ public class ProjectController {
     public HttpRespMsg getProjectPage(@RequestParam Integer pageIndex, @RequestParam Integer pageSize, String keyword,
                                       @RequestParam(required = false, defaultValue = "1") Integer searchField,
                                       Integer projectId, //可以直接传projectId来进行匹配
-                                      Integer status, Integer category,Integer projectMainId,Integer deptId, String sortProp, Integer sortOrder) {
-        return projectService.getProjectPage(pageIndex, pageSize, keyword,searchField, status, category, projectId,projectMainId,deptId, sortProp, sortOrder, request);
+                                      Integer status, Integer category,Integer projectMainId,Integer deptId, String sortProp, Integer sortOrder,String inchagerId) {
+        return projectService.getProjectPage(pageIndex, pageSize, keyword,searchField, status, category, projectId,projectMainId,deptId, sortProp, sortOrder,inchagerId, request);
     }
 
     @RequestMapping("/saveBatchAccoDegrees")

+ 3 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/TaskController.java

@@ -186,6 +186,9 @@ public class TaskController {
                         .map(TaskExecutor::getExecutorId).collect(Collectors.toList());
             }
         }
+        System.out.println(task.getStartDate());
+        System.out.println(task.getEndDate());
+        System.out.println(task.getFinishDate());
         taskService.saveOrUpdate(task);
         if (task.getExecutorId() == null) {
             //清空执行人

+ 4 - 3
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/Task.java

@@ -1,5 +1,6 @@
 package com.management.platform.entity;
 
+import com.baomidou.mybatisplus.annotation.FieldFill;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
@@ -98,7 +99,7 @@ public class Task extends Model<Task> {
     /**
      * 截止时间
      */
-    @TableField("end_date")
+    @TableField(fill = FieldFill.UPDATE)
     @JsonFormat(pattern = "yyyy-MM-dd")
     @DateTimeFormat(pattern = "yyyy-MM-dd")
     private LocalDate endDate;
@@ -167,7 +168,7 @@ public class Task extends Model<Task> {
     /**
      * 完成日期
      */
-    @TableField("finish_date")
+    @TableField(fill = FieldFill.UPDATE)
     @JsonFormat(pattern = "yyyy-MM-dd")
     @DateTimeFormat(pattern = "yyyy-MM-dd")
     private LocalDate finishDate;
@@ -188,7 +189,7 @@ public class Task extends Model<Task> {
     /**
      * 开始日期
      */
-    @TableField("start_date")
+    @TableField(fill = FieldFill.UPDATE)
     @JsonFormat(pattern = "yyyy-MM-dd")
     @DateTimeFormat(pattern = "yyyy-MM-dd")
     private LocalDate startDate;

+ 1 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/ProjectService.java

@@ -21,7 +21,7 @@ public interface ProjectService extends IService<Project> {
     HttpRespMsg getProjectList(Integer forReport, HttpServletRequest request);
 
     HttpRespMsg getProjectPage(Integer pageIndex, Integer pageSize, String keyword, Integer searchField,
-                               Integer status, Integer category, Integer projectId,Integer projectMainId,Integer deptId, String sortProp, Integer sortOrder, HttpServletRequest request);
+                               Integer status, Integer category, Integer projectId,Integer projectMainId,Integer deptId, String sortProp, Integer sortOrder,String inchagerId, HttpServletRequest request);
 
     HttpRespMsg editProject(Integer id, String name, String code, String[] userIds, String inchargerId,
                             Integer isPublic,

+ 40 - 14
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectServiceImpl.java

@@ -155,6 +155,8 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
     SubUserCustomMapper subUserCustomMapper;
     @Resource
     OperationRecordService operationRecordService;
+    @Resource
+    ProjectBasecostService projectBasecostService;
 
 
     @Resource
@@ -195,7 +197,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
     //分页获取项目列表
     @Override
     public HttpRespMsg getProjectPage(Integer pageIndex, Integer pageSize, String keyword, Integer searchField,
-                                      Integer status, Integer category, Integer projectId,Integer projectMainId,Integer deptId,  String sortProp, Integer sortOrder, HttpServletRequest request) {
+                                      Integer status, Integer category, Integer projectId,Integer projectMainId,Integer deptId,  String sortProp, Integer sortOrder,String inchagerId, HttpServletRequest request) {
         HttpRespMsg httpRespMsg = new HttpRespMsg();
         try {
             //通过公司id获取该公司所有的项目列表
@@ -241,13 +243,11 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                     queryWrapper.like("project_name", keyword);
                 } else if (searchField == 2){
                     queryWrapper.like("project_code", keyword);
-                }else if(searchField == 3){
-                    List<User> userList = userMapper.selectList(new QueryWrapper<User>().eq("job_number", keyword));
-                    if(userList.size()>0){
-                        queryWrapper.eq("incharger_id",userList.get(0).getId());
-                    }else queryWrapper.eq("incharger_id",0);
                 }
             }
+            if(!StringUtils.isEmpty(inchagerId)){
+                queryWrapper.eq("incharger_id",inchagerId);
+            }
             if (status != null && status != 0) {
                 queryWrapper.eq("status", status);
             }
@@ -658,7 +658,11 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                     timer.setProjectName(name);
                     projectTimerMapper.update(timer, new QueryWrapper<ProjectTimer>().eq("project_id", id));
                     if (projectBaseCostData != null) {
-                        List<ProjectBasecost> costList = updateProjectBaseCostData(projectBaseCostData, p.getId());
+                        HttpRespMsg respMsg = updateProjectBaseCostData(projectBaseCostData, p.getId());
+                        List<ProjectBasecost> costList = (List<ProjectBasecost>) respMsg.data;
+                        if(costList==null){
+                            return respMsg;
+                        }
 
                         //如果不存在基线成本快照,则生成
                         List<EarningSnapshot> earningSnapshots = earningSnapshotMapper.selectList(new QueryWrapper<EarningSnapshot>().eq("project_id", p.getId()).orderByDesc("id").last("limit 1"));
@@ -871,17 +875,28 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
     }
 
     //更新项目的基线成本数据
-    private List<ProjectBasecost> updateProjectBaseCostData(String data, Integer projectId) {
+    private HttpRespMsg updateProjectBaseCostData(String data, Integer projectId) {
+        HttpRespMsg httpRespMsg=new HttpRespMsg();
         JSONArray array = JSONArray.parseArray(data);
-        projectBasecostMapper.delete(new QueryWrapper<ProjectBasecost>().eq("project_id", projectId));
+        List<ProjectCurrentcost> projectCurrentcostList = projectCurrentcostMapper.selectList(new QueryWrapper<ProjectCurrentcost>().eq("project_id", projectId));
         List<ProjectBasecost> costList = new ArrayList<>();
         for (int i=0;i<array.size(); i++) {
             ProjectBasecost projectBasecost = JSONObject.toJavaObject(array.getJSONObject(i), ProjectBasecost.class);
             projectBasecost.setProjectId(projectId);
-            projectBasecostMapper.insert(projectBasecost);
+            Optional<ProjectCurrentcost> first = projectCurrentcostList.stream().filter(pc -> pc.getBaseId().equals(projectBasecost.getBaseId())).findFirst();
+            if(first.isPresent()){
+                ProjectCurrentcost projectCurrentcost = first.get();
+                if(projectCurrentcost.getBaseAmount()>projectBasecost.getBaseAmount()){
+                    httpRespMsg.setError("成本基线"+projectBasecost.getBaseName()+"预算小于当前基线预算");
+                    return httpRespMsg;
+                }
+            }
             costList.add(projectBasecost);
         }
-        return costList;
+        projectBasecostMapper.delete(new QueryWrapper<ProjectBasecost>().eq("project_id", projectId));
+        projectBasecostService.saveBatch(costList);
+        httpRespMsg.data=costList;
+        return httpRespMsg;
     }
 
     private int getNotNullInt(Integer integer) {
@@ -1421,16 +1436,27 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
             return msg;
         }
         //计算项目总成本
-        projectBasecostMapper.delete(new QueryWrapper<ProjectBasecost>().eq("project_id", project.getId()));
         JSONArray array = JSONArray.parseArray(baseCostData);
         double totalBudget = 0;
+        List<ProjectCurrentcost> projectCurrentcostList = projectCurrentcostMapper.selectList(new QueryWrapper<ProjectCurrentcost>().eq("project_id", id));
+        List<ProjectBasecost> projectBasecostList=new ArrayList<>();
         for (int i=0;i<array.size(); i++) {
             JSONObject obj = array.getJSONObject(i);
             ProjectBasecost cost = JSONObject.toJavaObject(obj, ProjectBasecost.class);
             cost.setProjectId(project.getId());
-            projectBasecostMapper.insert(cost);
+            Optional<ProjectCurrentcost> first = projectCurrentcostList.stream().filter(pc -> pc.getBaseId().equals(cost.getBaseId())).findFirst();
+            if(first.isPresent()){
+                ProjectCurrentcost projectCurrentcost = first.get();
+                if(projectCurrentcost.getBaseAmount()>cost.getBaseAmount()){
+                    msg.setError("成本基线"+cost.getBaseName()+"预算小于当前基线预算");
+                    return msg;
+                }
+            }
+            projectBasecostList.add(cost);
             totalBudget += cost.getBaseAmount();
         }
+        projectBasecostMapper.delete(new QueryWrapper<ProjectBasecost>().eq("project_id", project.getId()));
+        projectBasecostService.saveBatch(projectBasecostList);
         project.setBudget(totalBudget);
         projectMapper.updateById(project);
         //增加基线快照
@@ -3533,7 +3559,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
             userId = user.getId();
         }
         List<HashMap<String, Object>> list = projectMapper.getExportData(user.getCompanyId(), userId);
-        HttpRespMsg projectPage = getProjectPage(null, null, null, null, null, null, null, null,null, null, null, request);
+        HttpRespMsg projectPage = getProjectPage(null, null, null, null, null, null, null, null,null, null, null,null, request);
         Map<String,Object> resultMap= (Map<String, Object>) projectPage.data;
         List<ProjectVO> projectVOList= (List<ProjectVO>) resultMap.get("records");
         List<String> nameList= (List<String>) resultMap.get("nameList");