Kaynağa Gözat

Merge branch 'master' of http://47.100.37.243:10080/wutt/manHourHousekeeper

cs 2 yıl önce
ebeveyn
işleme
4724bcb29b

+ 19 - 21
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/TaskController.java

@@ -149,6 +149,7 @@ public class TaskController {
             task.setParentTname(taskService.getById(task.getParentTid()).getName());
         }
         boolean isNew = false;
+        boolean needRecalculateProgress = false;
         List<String> msgRecepientList = new ArrayList<>();
         List<Task> needReOrderList = new ArrayList<>();
         //新建的任务需要计算排序
@@ -175,6 +176,9 @@ public class TaskController {
             if (task.getExecutorId() != null) {
                 msgRecepientList = task.getExecutorList().stream().filter(exe->!StringUtils.isEmpty(exe.getExecutorId())).map(TaskExecutor::getExecutorId).collect(Collectors.toList());
             }
+            if (task.getTaskType() == 1) {
+                needRecalculateProgress = true;
+            }
         } else {
             //更新的情况,需要对比是否修改了任务标题,更新子任务的parentTname
             Task oldTask = taskService.getById(task.getId());
@@ -206,6 +210,9 @@ public class TaskController {
             if(task.getFinishDate()==null){
                 taskMapper.updateFinishDate(task.getId());
             }
+            if ((oldTask.getTaskType() == 1 && task.getTaskType() != 1) || (oldTask.getTaskType() != 1 && task.getTaskType() == 1)) {
+                needRecalculateProgress = true;
+            }
         }
         System.out.println(task.getStartDate());
         System.out.println(task.getEndDate());
@@ -237,8 +244,8 @@ public class TaskController {
         comment.setContent(user.getName()+(isNew?MessageUtils.message("entry.create"):MessageUtils.message("entry.editedTask"))+MessageUtils.message("entry.task"));
         taskCommentMapper.insert(comment);
 
-        //新增任务,需要重新计算项目进度
-        if (isNew) {
+        //需要重新计算项目进度
+        if (needRecalculateProgress) {
             updateProjectProgress(task.getProjectId());
         }
         if (msgRecepientList.size() > 0) {
@@ -281,10 +288,8 @@ public class TaskController {
     }
 
     private void updateProjectProgress(Integer projectId) {
-        //更新项目完成度
-        //只有第一级任务才更新项目进度, 非已撤销状态的
-        List<Task> all = taskMapper.simpleList(new QueryWrapper<Task>().eq("project_id", projectId).isNull("parent_tid").ne("task_status", 2).eq("task_type",1));
-
+        //只有里程碑才更新项目进度, 非已撤销状态的
+        List<Task> all = taskMapper.simpleList(new QueryWrapper<Task>().eq("project_id", projectId).ne("task_status", 2).eq("task_type",1));
         if (all.size() > 0) {
             long running = all.stream().filter(a -> a.getTaskStatus() == 1).count();
             int progress = ((int) running) * 100 / all.size();
@@ -366,23 +371,16 @@ public class TaskController {
             taskService.notifyMileStoneFinish(user.getCompanyId(), finishedMileStoneList);
         }
 
-        //更新项目完成度
-        Task item = taskService.getById(task.getId());
-        if (item.getParentTid() == null) {
-            //只有第一级任务才更新项目进度, 非已撤销状态的
-            long allProjectTaskCount =  taskService.count(new QueryWrapper<Task>().eq("project_id", item.getProjectId()).isNull("parent_tid").ne("task_status", 2).eq("task_type",1));
-            long finishTaskCount = taskService.count(new QueryWrapper<Task>().eq("project_id", item.getProjectId()).isNull("parent_tid").eq("task_status", 1).eq("task_type",1));
-            if (allProjectTaskCount > 0) {
-                int progress = ((int) finishTaskCount) * 100 / (int)allProjectTaskCount;
-                Project project = new Project();
-                project.setId(item.getProjectId());
-                project.setProgress(progress);
-                projectService.updateById(project);
-            }
+        //如果是里程碑,需要更新项目完成度
+        task = taskMapper.selectById(task.getId());
+        if (task.getTaskType() == 1) {
+            Integer projectId = task.getProjectId();
+            updateProjectProgress(projectId);
         }
         return msg;
     }
 
+
     @RequestMapping("/changeOrder")
     public HttpRespMsg changeOrder(Integer id, Integer oldIndex, Integer newIndex, Integer oldStagesId, Integer newStagesId) {
         HttpRespMsg msg = new HttpRespMsg();
@@ -727,8 +725,8 @@ public class TaskController {
         deleteSubTask(task);
 
 
-        //删除根任务,需要重新计算项目进度
-        if (task.getParentTid() == null) {
+        //删除里程碑,需要重新计算项目进度
+        if (task.getTaskType() == 1) {
             updateProjectProgress(task.getProjectId());
         }
         return new HttpRespMsg();

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

@@ -16,6 +16,7 @@ import com.management.platform.util.MessageUtils;
 import com.management.platform.util.WorkDayCalculateUtils;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.format.annotation.DateTimeFormat;
+import org.springframework.util.StringUtils;
 import org.springframework.web.bind.annotation.RequestMapping;
 
 import org.springframework.web.bind.annotation.RestController;
@@ -309,9 +310,15 @@ public class UserCorpwxTimeController {
     }
 
     @RequestMapping("/getPunchRecordBySelf")
-    public HttpRespMsg getUserPunchRecord(String date){
+    public HttpRespMsg getUserPunchRecord(String date, String userId){
         HttpRespMsg msg=new HttpRespMsg();
-        User user = userMapper.selectById(request.getHeader("token"));
+        User user = null;
+        if (StringUtils.isEmpty(userId)) {
+            user = userMapper.selectById(request.getHeader("token"));
+        } else {
+            user = userMapper.selectById(userId);
+        }
+
         Map<String,Object> resultMap =new HashMap<>();
         List<UserCorpwxTime> oldCorpwxTimes = userCorpwxTimeMapper.selectList(new QueryWrapper<UserCorpwxTime>()
                 .eq("corpwx_userid", user.getCorpwxUserid()).eq("create_date", date));

+ 27 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/FinanceServiceImpl.java

@@ -79,6 +79,8 @@ public class FinanceServiceImpl extends ServiceImpl<FinanceMapper, Finance> impl
     WxCorpInfoMapper wxCorpInfoMapper;
     @Resource
     ExcelExportService excelExportService;
+    @Resource
+    UserCustomMapper userCustomMapper;
 
     @Resource
     private ProjectMapper projectMapper;
@@ -471,6 +473,7 @@ public class FinanceServiceImpl extends ServiceImpl<FinanceMapper, Finance> impl
             boolean isSecret = timeType.getIsSecretSalary()==1?true:false;
             final List<FinanceTblcuscol> cusColList = financeTblcuscolMapper.selectList(new QueryWrapper<FinanceTblcuscol>().eq("company_id", companyId));
             List<Project> allProjects = projectMapper.selectList(new QueryWrapper<Project>().eq("company_id", companyId));
+            List<UserCustom> userCustoms = userCustomMapper.selectList(new QueryWrapper<UserCustom>().eq("company_id", companyId));
             Map<String, Object> resultMap = new HashMap<>();
             double totalCostTime = 0;
             BigDecimal totalMoneyCost = BigDecimal.valueOf(0);
@@ -495,13 +498,15 @@ public class FinanceServiceImpl extends ServiceImpl<FinanceMapper, Finance> impl
                 headList.add(MessageUtils.message("entry.projectName"));
                 //headList.add("人员");
                 headList.add(MessageUtils.message("entry.personnel"));
+                for (UserCustom userCustom : userCustoms) {
+                    headList.add(userCustom.getName());
+                }
                 //headList.add("工时(h)");
                 headList.add(MessageUtils.message("entry.workHours")+"(h)");
             } else {
                 //headList.add("项目分类");
                 headList.add(MessageUtils.message("entry.projectType"));
             }
-
             FinanceFixedcolname fixedItem = financeFixedcolnameService.getFixed(companyId);
             headList.add(fixedItem.getMonthCost()+"(元)");
             headList.add(fixedItem.getBonus()+"(元)");
@@ -847,6 +852,7 @@ public class FinanceServiceImpl extends ServiceImpl<FinanceMapper, Finance> impl
                     rowData.add(p.projectCode);
                     rowData.add(p.project);
                     rowData.add("");
+                    userCustoms.forEach(userCustom -> {rowData.add("");});
                     rowData.add(p.workingTime+"");
                     rowData.add(p.salary.toPlainString());
                     rowData.add(p.bonus.toPlainString());
@@ -903,6 +909,25 @@ public class FinanceServiceImpl extends ServiceImpl<FinanceMapper, Finance> impl
                             }else {
                                 membRowData.add(us.getName());
                             }
+                            for (int i = 0; i < userCustoms.size(); i++) {
+                                switch (i){
+                                    case 0:
+                                        membRowData.add(us.getPlate1()==null?"":us.getPlate1());
+                                        break;
+                                    case 1:
+                                        membRowData.add(us.getPlate2()==null?"":us.getPlate2());
+                                        break;
+                                    case 2:
+                                        membRowData.add(us.getPlate3()==null?"":us.getPlate3());
+                                        break;
+                                    case 3:
+                                        membRowData.add(us.getPlate4()==null?"":us.getPlate4());
+                                        break;
+                                    case 4:
+                                        membRowData.add(us.getPlate5()==null?"":us.getPlate5());
+                                        break;
+                                }
+                            }
                             membRowData.add(workingTime+"");
                             membRowData.add(salary.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString());
                             membRowData.add(bonus.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString());
@@ -1076,6 +1101,7 @@ public class FinanceServiceImpl extends ServiceImpl<FinanceMapper, Finance> impl
             if (groupByCategory == 0) {
                 sumRow.add("");
                 sumRow.add("");
+                userCustoms.forEach(userCustom ->{sumRow.add("");});
                 sumRow.add(""+totalCostTime);
             }
             sumRow.add(totalSalary.toString());

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

@@ -1141,7 +1141,7 @@ public class WxCorpInfoServiceImpl extends ServiceImpl<WxCorpInfoMapper, WxCorpI
                     if (item != null) {
                         ct.setId(item.getId());
                         //已存在记录,但是如果老记录有工作时长,新记录无工作时长,也没有请假外出和打卡时长,说明新的记录是没有取到考勤的。 老记录是通过当天打卡数据获取到的,包含外出的时间
-                        if (item.getWorkHours() > 0 && ct.getWorkHours() == 0 && ct.getCardTime() == 0 && ct.getAskLeaveTime() == 0 && ct.getOutdoorTime() == 0) {
+                        if (item.getWorkHours() > 0 && ct.getWorkHours() == 0 && ct.getCardTime() >= 1.0 && ct.getAskLeaveTime() == 0 && ct.getOutdoorTime() == 0) {
                             //不处理
                         } else {
                             userCorpwxTimeMapper.updateById(ct);