Selaa lähdekoodia

任务日报相关修改

seyason 3 vuotta sitten
vanhempi
commit
323bc0baa6
17 muutettua tiedostoa jossa 201 lisäystä ja 34 poistoa
  1. 6 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ReportController.java
  2. 8 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/TaskController.java
  3. 2 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/UserYearleaveSettingController.java
  4. 1 1
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/WeiXinCorpController.java
  5. 1 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/vo/UserDailyWorkItem.java
  6. 4 1
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/LeaveQuotaNumMapper.java
  7. 1 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/ProjectMapper.java
  8. 4 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/ReportMapper.java
  9. 2 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/ReportService.java
  10. 2 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/FinanceServiceImpl.java
  11. 36 7
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectServiceImpl.java
  12. 83 1
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ReportServiceImpl.java
  13. 2 2
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/UserServiceImpl.java
  14. 1 1
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/task/TimingTask.java
  15. 22 4
      fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/ProjectMapper.xml
  16. 25 16
      fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/ReportMapper.xml
  17. 1 1
      fhKeeper/formulahousekeeper/timesheet/src/views/project/gantt.vue

+ 6 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ReportController.java

@@ -1045,6 +1045,12 @@ public class ReportController {
     }
 
 
+    @RequestMapping("/denyHisReport")
+    public HttpRespMsg denyHisReport(@RequestParam String userId, @RequestParam String createDate,
+                                     String reason, HttpServletRequest request) {
+        return reportService.denyHisReport(userId, createDate, reason, request);
+    }
+
     @RequestMapping("/getMembList")
     public HttpRespMsg getMembList(@RequestParam(required=false) String date, Integer manageDeptId, HttpServletRequest request) {
         if (date == null) {

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

@@ -54,6 +54,8 @@ public class TaskController {
     @Resource
     private TaskService taskService;
     @Resource
+    private ReportMapper reportMapper;
+    @Resource
     private StagesService stagesService;
     @Resource
     private ProjectService projectService;
@@ -606,6 +608,7 @@ public class TaskController {
             msg.setError("该任务不存在,请刷新查看");
             return msg;
         }
+
         if (task.getParentTid() == null) {
             //删除的是第一级任务,需要调整顺序
             List<Task> afterList = taskService.list(new QueryWrapper<Task>().eq("stages_id", task.getStagesId()).isNull("parent_tid").gt("seq", task.getSeq()));
@@ -620,6 +623,10 @@ public class TaskController {
                 taskService.updateBatchById(finalList);
             }
         }
+        long cnt = reportMapper.selectCount(new QueryWrapper<Report>().eq("task_id", id));
+        if (cnt > 0) {
+            reportMapper.deleteReportTask(id);
+        }
         taskService.removeById(id);
         //删除任务日志
         taskLogService.remove(new QueryWrapper<TaskLog>().eq("task_id",  id));
@@ -627,6 +634,7 @@ public class TaskController {
         taskCommentService.remove(new QueryWrapper<TaskComment>().eq("task_id", id));
         deleteSubTask(task);
 
+
         //删除根任务,需要重新计算项目进度
         if (task.getParentTid() == null) {
             updateProjectProgress(task.getProjectId());

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

@@ -156,6 +156,8 @@ public class UserYearleaveSettingController {
             quotaNumQueryWrapper.in("user_dingding_id", userDDIds);
         }
         quotaNumQueryWrapper.orderByAsc("name").orderByAsc("start_time");
+        quotaNumQueryWrapper.select("company_id, user_dingding_id, NAME, leave_code, MIN(start_time) AS start_time, MAX(end_time) AS end_time, ROUND(SUM(quota_in_hours),1) AS quota_in_hours, ROUND(SUM(quota_in_days),1) AS quota_in_days, ROUND(SUM(used_in_hours),1) AS used_in_hours, ROUND(SUM(used_in_days),1) AS used_in_days, ROUND(SUM(left_in_hours),1) AS left_in_hours, ROUND(SUM(left_in_days),1) AS left_in_days ");
+        quotaNumQueryWrapper.groupBy("company_id, user_dingding_id");
         IPage<LeaveQuotaNum> leaveQuotaNumIPage = leaveQuotaNumMapper.selectPage(new Page<>(pageIndex, 50), quotaNumQueryWrapper);
         HttpRespMsg msg = new HttpRespMsg();
         msg.data = map;

+ 1 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/WeiXinCorpController.java

@@ -428,7 +428,7 @@ public class WeiXinCorpController {
                     } else {
                         //首先生成一个新公司,增加会员的试用一个月
                         company = new Company().setCompanyName(corpName)
-                                .setExpirationDate(LocalDateTime.now().plusMonths(1));
+                                .setExpirationDate(LocalDateTime.now().plusDays(15));
                         company.setPackageProject(1);
                         company.setPackageExpense(1);
                         companyMapper.insert(company);

+ 1 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/vo/UserDailyWorkItem.java

@@ -6,4 +6,5 @@ public class UserDailyWorkItem {
     public String department;
     public String name;
     private String inactiveDate;
+    public String cardTime;
 }

+ 4 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/LeaveQuotaNumMapper.java

@@ -1,8 +1,11 @@
 package com.management.platform.mapper;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.management.platform.entity.LeaveQuotaNum;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 
+import java.util.List;
+
 /**
  * <p>
  *  Mapper 接口
@@ -12,5 +15,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  * @since 2022-05-24
  */
 public interface LeaveQuotaNumMapper extends BaseMapper<LeaveQuotaNum> {
-
+    List<LeaveQuotaNum> getSumList(QueryWrapper ew);
 }

+ 1 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/ProjectMapper.java

@@ -33,6 +33,7 @@ public interface ProjectMapper extends BaseMapper<Project> {
     List<Map<String, Object>> getProjectCost(@Param("companyId")Integer companyId,@Param("startDate") String startDate, @Param("endDate") String endDate, @Param("projectId") Integer projectId, @Param("userId") String userId);
 
     List<Map<String, Object>> getProjectCusDataSumItem(@Param("companyId") Integer companyId, @Param("startDate") String startDate, @Param("endDate") String endDate, @Param("projectId") Integer projectId, @Param("userId") String userId);
+    List<Map<String, Object>> getProjectCusDataDetailItem(@Param("companyId") Integer companyId, @Param("startDate") String startDate, @Param("endDate") String endDate, @Param("projectId") Integer projectId, @Param("userId") String userId);
 
     @Update("update project set status = 1, finish_date = null where id = #{id}")
     void restartProject(Integer id);

+ 4 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/ReportMapper.java

@@ -3,6 +3,7 @@ package com.management.platform.mapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.management.platform.entity.Report;
 import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Update;
 
 import java.time.LocalDate;
 import java.util.HashMap;
@@ -123,4 +124,7 @@ public interface ReportMapper extends BaseMapper<Report> {
     List<Map<String, Object>> getProjectFillCost(Integer companyId, List<Integer> projectIds);
 
     List<Map<String, Object>> getOneProjectBaseCost(Integer projectId);
+
+    @Update("update report set task_id = null where task_id=#{taskId}")
+    void deleteReportTask(Integer taskId);
 }

+ 2 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/ReportService.java

@@ -84,4 +84,6 @@ public interface ReportService extends IService<Report> {
     HttpRespMsg exportNoReportUserList(HttpServletRequest request, String startDate, String endDate);
 
     HttpRespMsg approveAllImport(HttpServletRequest request);
+
+    HttpRespMsg denyHisReport(String userId, String createDate, String reason, HttpServletRequest request);
 }

+ 2 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/FinanceServiceImpl.java

@@ -443,6 +443,8 @@ public class FinanceServiceImpl extends ServiceImpl<FinanceMapper, Finance> impl
         HttpRespMsg httpRespMsg = new HttpRespMsg();
         try {
             Integer companyId = userMapper.selectById(request.getHeader("Token")).getCompanyId();
+            TimeType timeType = timeTypeMapper.selectById(companyId);
+            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));
             Map<String, Object> resultMap = new HashMap<>();

+ 36 - 7
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectServiceImpl.java

@@ -2037,12 +2037,16 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                     }
                     //检查项目是否存在
                     List<ProjectCategory> projectCategoryList = projectCategoryMapper.selectList(new QueryWrapper<ProjectCategory>().eq("company_id", user.getCompanyId()));
-                    Optional<ProjectCategory> category = projectCategoryList.stream().filter(pc -> pc.getName().equals(categoryCell.getStringCellValue())).findFirst();
-                    if(!category.isPresent()){
-                        throw  new Exception("项目分类["+categoryCell.getStringCellValue()+"]不存在");
+                    if (categoryCell != null) {
+                        Optional<ProjectCategory> category = projectCategoryList.stream().filter(pc -> pc.getName().equals(categoryCell.getStringCellValue())).findFirst();
+                        if(!category.isPresent()){
+                            throw  new Exception("项目分类["+categoryCell.getStringCellValue()+"]不存在");
+                        }
+                        project.setCategory(category.get().getId());
+                        project.setCategoryName(categoryCell.getStringCellValue());
                     }
-                    project.setCategory(category.get().getId());
-                    project.setCategoryName(categoryCell.getStringCellValue());
+
+
                     //检查编号是否已经存在
                     if (!StringUtils.isEmpty(code)) {
                         int cnt = projectMapper.selectCount(new QueryWrapper<Project>().eq("project_code", code).eq("company_id", user.getCompanyId()));
@@ -2294,6 +2298,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
             List<String> headList = new ArrayList<String>();
             headList.add("序号");
             headList.add("姓名");
+            headList.add("部门");
             headList.add("工作日期");
             headList.add("项目编号");
             headList.add("项目名称");
@@ -2302,17 +2307,39 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
             allList.add(headList);
             double totalCostTime = 0;
             int seq=1;
+            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+
+            //计算合计的费用
             List<Map<String, Object>> membList = projectMapper.getProjectCusDataSumItem(companyId, startDate, endDate, projectId, userId);
+            List<Map<String, Object>> membDetailList = projectMapper.getProjectCusDataDetailItem(companyId, startDate, endDate, projectId, userId);
             for (Map<String, Object> membMap : membList) {
                 List<String> membRowData = new ArrayList<String>();
                 membRowData.add(String.valueOf(seq));
                 membRowData.add((String)membMap.get("name"));
-                membRowData.add((String)membMap.get("projectCode"));
-                membRowData.add((String)membMap.get("projectName"));
+                membRowData.add((String)membMap.get("departmentName"));
+                membRowData.add("");
+                membRowData.add("");
+                membRowData.add("");
                 membRowData.add(((Double)membMap.get("cost")).toString());
                 allList.add(membRowData);
                 totalCostTime += (Double)membMap.get("cost");
                 seq++;
+
+                //取该人员的每一条记录
+                String itemUserId = (String)membMap.get("creatorId");
+                for (Map<String, Object> membItemMap : membDetailList) {
+                    if (membItemMap.get("creatorId").equals(itemUserId)) {
+                        List<String> membRowItemData = new ArrayList<String>();
+                        membRowItemData.add("");
+                        membRowItemData.add("");
+                        membRowItemData.add("");
+                        membRowItemData.add(sdf.format((java.sql.Date)membItemMap.get("createDate")));
+                        membRowItemData.add((String)membItemMap.get("projectCode"));
+                        membRowItemData.add((String)membItemMap.get("projectName"));
+                        membRowItemData.add(((Double)membItemMap.get("cost")).toString());
+                        allList.add(membRowItemData);
+                    }
+                }
             }
             //合计
             List<String> sumRow = new ArrayList<String>();
@@ -2320,6 +2347,8 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
             sumRow.add("");
             sumRow.add("");
             sumRow.add("");
+            sumRow.add("");
+            sumRow.add("");
             sumRow.add(""+new BigDecimal(totalCostTime).setScale(1, BigDecimal.ROUND_HALF_UP));
             allList.add(sumRow);
             //生成excel文件导出

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

@@ -3018,6 +3018,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
         }
 
         long cnt = localStart.until(localEnd, ChronoUnit.DAYS);
+        List<String> cpwxIds = new ArrayList<>();
         //按人员过滤
         for (User curUser: allRangeUserList){
                 for (int i=0;i<=cnt; i++) {
@@ -3042,6 +3043,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                     if (!list.stream().anyMatch(item->item.get("id").equals(curUser.getId())&&sdf.format((java.sql.Date)item.get("createDate")).equals(dateStr))) {
                         UserDailyWorkItem noRecord = new UserDailyWorkItem();
                         noRecord.userId = curUser.getId();
+                        cpwxIds.add(curUser.getCorpwxUserid());
                         List<Map> userCorpwxListOn = userCorpwxTimeMapList.stream().filter(mapList -> mapList.get("create_date").toString().equals(dateStr)
                                 && mapList.get("corpwx_userid").equals(curUser.getCorpwxUserid())).collect(Collectors.toList());
                         if(!userCorpwxListOn.isEmpty()){
@@ -3060,6 +3062,19 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                     }
                 }
         }
+        //考勤打卡时间
+        if (cpwxIds.size() > 0) {
+            List<UserCorpwxTime> cardTimeList = userCorpwxTimeMapper.selectList(new QueryWrapper<UserCorpwxTime>().in("corpwx_userid", cpwxIds).between("create_date", startDate, endDate));
+            for (UserDailyWorkItem item : noReportDataList) {
+                String corpwxUserid = allRangeUserList.stream().filter(all -> all.getId().equals(item.userId)).findFirst().get().getCorpwxUserid();
+                Optional<UserCorpwxTime> first = cardTimeList.stream().filter(card -> card.getCorpwxUserid().equals(corpwxUserid) && item.createDate.startsWith(dtf.format(card.getCreateDate()))).findFirst();
+                if (first.isPresent()) {
+                    UserCorpwxTime userCorpwxTime = first.get();
+                    item.cardTime = userCorpwxTime.getStartTime()+"~"+userCorpwxTime.getEndTime()+", "+userCorpwxTime.getWorkHours()+"h";
+                }
+            }
+        }
+
         //排序
         noReportDataList.sort(new Comparator<UserDailyWorkItem>() {
             @Override
@@ -3083,6 +3098,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                 }
             }
         });
+
         msg.data = noReportDataList;
         return msg;
     }
@@ -3090,6 +3106,8 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
     @Override
     public HttpRespMsg exportNoReportUserList(HttpServletRequest request, String startDate, String endDate) {
         HttpRespMsg msg = getNoReportUserList(request, startDate, endDate);
+        String token = request.getHeader("TOKEN");
+        TimeType timeType = timeTypeMapper.selectById(userMapper.selectById(token).getCompanyId());
         String[] weekDayCHN = {"周一","周二","周三","周四","周五","周六","周日"};
         List<UserDailyWorkItem> dailyWorkItems = (List<UserDailyWorkItem>) msg.data;
         List<List<String>> dataList = new ArrayList<>();
@@ -3097,6 +3115,10 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
         titleList.add("部门");
         titleList.add("姓名");
         titleList.add("未填日期");
+        if (timeType.getSyncCorpwxTime() == 1) {
+            //企业微信同步考勤打卡的,需要加上这一列
+            titleList.add("考勤打卡");
+        }
         dataList.add(titleList);
 
         for (int i=0;i<dailyWorkItems.size(); i++) {
@@ -3105,10 +3127,14 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
             line.add(dataItem.department);
             line.add(dataItem.name);
             line.add(dataItem.createDate);
+            if (timeType.getSyncCorpwxTime() == 1) {
+                line.add(dataItem.cardTime);
+            }
+
             dataList.add(line);
         }
         //生成excel文件导出
-        String fileName = "人员每日工时统计_"+startDate+"至"+endDate+"_"+System.currentTimeMillis();
+        String fileName = "未填人员统计_"+startDate+"至"+endDate+"_"+System.currentTimeMillis();
         String resp = ExcelUtil.exportGeneralExcelByTitleAndList(fileName , dataList, path);
         HttpRespMsg httpRespMsg = new HttpRespMsg();
         httpRespMsg.data = resp;
@@ -3131,4 +3157,60 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
         return new HttpRespMsg();
     }
 
+    @Override
+    public HttpRespMsg denyHisReport(String userId, String createDate, String reason, HttpServletRequest request) {
+        HttpRespMsg httpRespMsg = new HttpRespMsg();
+        try {
+            User user = userMapper.selectById(request.getHeader("Token"));
+            Company company = companyMapper.selectById(user.getCompanyId());
+            if (reason == null) {
+                reason = "-";
+            }
+            QueryWrapper<Report> eq = new QueryWrapper<Report>().eq("create_date", createDate).eq("creator_id", userId);
+            List<Report> list = reportMapper.selectList(eq);
+            Report oneReport = null;
+            if (list.size() == 0) {
+                httpRespMsg.setError("日报已不存在");
+                return httpRespMsg;
+            } else if (list.get(0).getState() != 1) {
+                //只有已通过的历史记录才能撤销
+                httpRespMsg.setError("只有已通过的才可撤回审核");
+                return httpRespMsg;
+            }
+            oneReport = list.get(0);
+            //直接进行项目经理审核驳回
+            reportMapper.update(new Report().setState(2)
+                            .setRejectReason(reason).setRejectUserid(user.getId()).setRejectUsername(user.getName()),
+                    eq);
+            List<Integer> collect = list.stream().map(Report::getProjectId).collect(Collectors.toList());
+            List<Project> projectList = projectMapper.selectList(new QueryWrapper<Project>().in("id", collect));
+            String pNames = projectList.stream().map(Project::getProjectName).collect(Collectors.joining(", ", "[", "]"));
+            String str = "您"+createDate+"填写的日报中"+pNames+"项目被["+user.getName()+"]驳回。原因:" + reason;;
+            String fillUserId = oneReport.getCreatorId();
+
+            informationMapper.insert(new Information().setType(0).setContent(createDate).setUserId(fillUserId).setMsg(str));
+
+            //发送企业微信通知消息
+            User reporter = userMapper.selectById(fillUserId);
+            String corpwxUserid = reporter.getCorpwxUserid();
+            //先判断钉钉
+            if (reporter.getDingdingUserid() != null) {
+                projectMapper.selectById(oneReport.getProjectId()).getProjectName();
+                companyDingdingService.sendRejectReportMsg(reporter.getCompanyId(), createDate, pNames, reason, user.getName(), reporter.getDingdingUserid());
+            }
+            if (corpwxUserid != null) {
+                WxCorpInfo info = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", company.getId()));
+                wxCorpInfoService.sendWXCorpMsg(info, corpwxUserid, str);
+            } else if (reporter.getWxOpenid() != null){
+                //发送个人微信通知
+                pushReject(str, reporter, user.getName(), reason);
+            }
+
+        } catch (NullPointerException e) {
+            httpRespMsg.setError("验证失败");
+            return httpRespMsg;
+        }
+        return httpRespMsg;
+    }
+
 }

+ 2 - 2
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/UserServiceImpl.java

@@ -518,9 +518,9 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
                 httpRespMsg.setError("该公司已注册,请联系管理员为您添加账号");
                 return httpRespMsg;
             }
-            //首先生成一个新公司,增加会员的试用一个月
+            //首先生成一个新公司,增加会员的15天试用期
             Company company = new Company().setCompanyName(companyName)
-                    .setExpirationDate(LocalDateTime.now().plusMonths(1));
+                    .setExpirationDate(LocalDateTime.now().plusDays(15));
             //设置版本
             if (type == 0) {//简易版
                 company.setPackageSimple(1);

+ 1 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/task/TimingTask.java

@@ -407,7 +407,7 @@ public class TimingTask {
                 .templateId(TEMPLATE_PROJECT_DEADLINE)//模版id
                 .build();
         //3,如果是正式版发送模版消息,这里需要配置你的信息
-        templateMessage.addData(new WxMpTemplateData("first", "项目还有"+days+"天到期", "#FF00FF"));
+        templateMessage.addData(new WxMpTemplateData("first", "项目"+days+"天到期", "#FF00FF"));
         templateMessage.addData(new WxMpTemplateData("keyword1", projectName, "#000000"));
         templateMessage.addData(new WxMpTemplateData("keyword2", endDate, "#000000"));
         templateMessage.addData(new WxMpTemplateData("remark", "如有您参与的任务,请按时完成,谢谢", "#000000"));

+ 22 - 4
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/ProjectMapper.xml

@@ -202,7 +202,7 @@
         FROM report AS a
         JOIN user AS b ON a.creator_id = b.id
         left join department on department.department_id = a.dept_id
-        WHERE a.company_id=#{companyId} and a.state = 1
+        WHERE a.company_id=#{companyId} and a.state = 1 and a.custom_data > 0
         <if test="projectId != null">
             and a.project_id = #{projectId}
         </if>
@@ -216,11 +216,30 @@
 
     <!-- 获取人员在日报填写的自定义数值 -->
     <select id="getProjectCusDataSumItem" resultType="java.util.Map">
-        SELECT b.id as creatorId,project.project_code as projectCode, project.project_name as projectName,
+        SELECT b.id as creatorId,
         b.name,department.department_name as departmentName, IFNULL(SUM(a.custom_data),0) AS cost
         FROM report AS a
         JOIN user AS b ON a.creator_id = b.id
         left join department on department.department_id = b.department_id
+        WHERE a.state = 1 and b.company_id = #{companyId} and a.custom_data > 0
+        <if test="startDate != null and endDate != null">
+            AND a.create_date between #{startDate} and #{endDate}
+        </if>
+        <if test="projectId != null">
+            AND a.project_id = #{projectId}
+        </if>
+        <if test="userId != null">
+            AND a.creator_id = #{userId}
+        </if>
+        group by b.id
+        ORDER BY b.id ASC
+    </select>
+    <select id="getProjectCusDataDetailItem" resultType="java.util.Map">
+        SELECT b.id as creatorId,project.project_code as projectCode, project.project_name as projectName,
+        b.name,department.department_name as departmentName, IFNULL(a.custom_data,0) AS cost, a.create_date as createDate
+        FROM report AS a
+        JOIN user AS b ON a.creator_id = b.id
+        left join department on department.department_id = b.department_id
         left join project on project.id = a.project_id
         WHERE a.state = 1 and b.company_id = #{companyId}
         <if test="startDate != null and endDate != null">
@@ -232,7 +251,6 @@
         <if test="userId != null">
             AND a.creator_id = #{userId}
         </if>
-        GROUP BY b.id
         ORDER BY b.id ASC
     </select>
 
@@ -275,10 +293,10 @@
         (SELECT IFNULL(SUM(amount),0) FROM expense_item , expense_sheet WHERE project_id = project.id AND  expense_sheet.id = expense_item.`expense_id` AND expense_sheet.type = 2 and expense_sheet.status = 0) AS fee_outsourcing
         FROM project WHERE project.`company_id` = #{companyId}
         and (project.status &lt;&gt; 3 or project.status is null)
+        order by project.is_public desc, project.id asc
         <if test="pageStart != null and pageSize != null">
             LIMIT #{pageStart},#{pageSize}
         </if>
-        order by project.is_public desc, id asc
     </select>
     <!--分页获取项目收支平衡 -->
     <select id="getProjectInAndOut" resultMap="BaseResultMap">

+ 25 - 16
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/ReportMapper.xml

@@ -69,7 +69,10 @@
         left join task_group on task_group.id = a.group_id
         left join user u on u.id = a.project_auditor_id
         left join department on department.department_id = c.department_id
-        WHERE a.state = 1
+        WHERE (a.state = 1
+        <if test="stateKey!=null and stateKey==1">
+            or a.state =0
+        </if>)
         <if test="startDate != null and startDate != ''">
             AND a.create_date between #{startDate} and #{endDate}
         </if>
@@ -82,9 +85,7 @@
         <if test="userId != null">
             AND a.creator_id = #{userId}
         </if>
-        <if test="stateKey!=null and stateKey==1">
-            or a.state =0
-        </if>
+
         ORDER BY a.creator_id, a.create_date desc
     </select>
 
@@ -117,12 +118,18 @@
     </select>
 
     <select id="getProjectMembReportByDate" resultType="java.util.Map">
-        SELECT a.id, c.name, b.project_name AS project, b.category_name as categoryName,a.working_time AS duration, a.content, a.create_time AS time, a.create_date as createDate,
+        SELECT a.id, c.name, b.project_name AS project, b.category_name as categoryName,a.working_time AS duration,
+        a.content, a.create_time AS time, a.create_date as createDate,
         a.state, a.time_type as timeType, a.cost, a.report_time_type as reportTimeType, a.start_time as startTime,
-        a.end_time as endTime, d.name as subProjectName,a.task_id as taskId, task.name as taskName, a.is_overtime as isOvertime,a.progress as progress,
+        a.end_time as endTime, d.name as subProjectName,a.task_id as taskId, task.name as taskName, a.is_overtime as
+        isOvertime,a.progress as progress,
         a.department_audit_state as departmentAuditState, a.pic_str as picStr, multi_worktime as multiWorktime
-        , reject_reason as rejectReason, reject_username as rejectUsername, reject_userid as rejectUserid, degree_id as degree_id,report_extra_degree.name as degreeName,task_group.name as groupName,a.group_id as groupId, a.custom_data as customData
-        ,u.name as projectAuditorName, a.project_auditor_id as projectAuditorId, department.department_name as departmentName, a.overtime_hours as overtimeHours, a.custom_text as customText, a.project_audit_time as projectAuditTime
+        , reject_reason as rejectReason, reject_username as rejectUsername, reject_userid as rejectUserid, degree_id as
+        degree_id,report_extra_degree.name as degreeName,task_group.name as groupName,a.group_id as groupId,
+        a.custom_data as customData
+        ,u.name as projectAuditorName, a.project_auditor_id as projectAuditorId, department.department_name as
+        departmentName, a.overtime_hours as overtimeHours, a.custom_text as customText, a.project_audit_time as
+        projectAuditTime
         FROM report AS a
         JOIN project AS b ON a.project_id=b.id
         LEFT JOIN user AS c ON a.creator_id=c.id
@@ -132,7 +139,11 @@
         left join task_group on task_group.id = a.group_id
         left join user u on u.id = a.project_auditor_id
         left join department on department.department_id = c.department_id
-        WHERE a.state = 1
+        WHERE
+        (a.state = 1
+        <if test="stateKey!=null and stateKey==1">
+            or a.state=0
+        </if>)
         <if test="startDate != null and startDate != ''">
             AND a.create_date between #{startDate} and #{endDate}
         </if>
@@ -145,9 +156,7 @@
         <if test="leaderId != null">
             AND b.incharger_id = #{leaderId}
         </if>
-        <if test="stateKey!=null and stateKey==1">
-            or a.state=0
-        </if>
+
         ORDER BY a.creator_id, a.create_date desc
     </select>
 
@@ -167,7 +176,10 @@
         left join task_group on task_group.id = a.group_id
         left join user u on u.id = a.project_auditor_id
         left join department on department.department_id = c.department_id
-        WHERE a.state = 1
+        WHERE (a.state = 1
+        <if test="stateKey!=null and stateKey==1">
+            or a.state=0
+        </if>)
         <if test="startDate != null and startDate != ''">
             AND a.create_date between #{startDate} and #{endDate}
         </if>
@@ -177,9 +189,6 @@
         <if test="projectId != null">
             AND a.project_id = #{projectId}
         </if>
-        <if test="stateKey!=null and stateKey==0">
-            AND a.state in (1,2,3)
-        </if>
         <if test="deptIds != null">
             AND c.department_id in
             <foreach collection="deptIds" item="deptId" separator="," close=")" open="(" index="index">

+ 1 - 1
fhKeeper/formulahousekeeper/timesheet/src/views/project/gantt.vue

@@ -90,7 +90,7 @@ export default {
       gantt.config.drag_move = false;
     gantt.config.xml_date = "%Y-%m-%d";
     gantt.config.columns=[
-        {name:"text",label:(this.stafforpro == "按人员查看" ? "员工名称" : "项目名称"), align: "left", tree:true},
+        {name:"text",label:(this.stafforpro == "按人员查看" ? "姓名" : "项目名称"), align: "left", tree:true},
         // {name:"time",label:"计划工时(h)", align: "center" }
         // {name:"start_date", label:"开始时间", width:'*' , align: "center" },
         // {name:"duration",   label:"工时(天)", width:'*' ,   align: "center" }