瀏覽代碼

人员如果有自定义配置的列表数据
组织架构的人员导出功能增加专业证书一列
timeType修改

yurk 2 年之前
父節點
當前提交
0c60f5f7d2
共有 43 個文件被更改,包括 1049 次插入141 次删除
  1. 78 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/CompanyReportController.java
  2. 23 1
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ProjectController.java
  3. 4 4
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ReportController.java
  4. 36 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ReportFormController.java
  5. 15 3
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/TaskController.java
  6. 31 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/UserCustomController.java
  7. 43 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/CompanyReport.java
  8. 8 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/Project.java
  9. 19 12
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/Report.java
  10. 11 19
      src/main/java/com/management/platform/entity/ExpenseType.java
  11. 7 1
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/SysFunction.java
  12. 19 1
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/TimeType.java
  13. 8 3
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/UserCustom.java
  14. 16 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/CompanyReportMapper.java
  15. 2 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/ProjectMapper.java
  16. 16 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/ReportFormMapper.java
  17. 1 1
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/TaskMapper.java
  18. 16 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/CompanyReportService.java
  19. 9 1
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/ProjectService.java
  20. 3 3
      src/main/java/com/management/platform/service/ExpenseTypeService.java
  21. 2 2
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/ReportService.java
  22. 20 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/CompanyReportServiceImpl.java
  23. 278 44
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectServiceImpl.java
  24. 20 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ReportFormServiceImpl.java
  25. 44 9
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ReportServiceImpl.java
  26. 4 6
      src/main/resources/mapper/ExpenseTypeMapper.xml
  27. 27 1
      fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/ProjectMapper.xml
  28. 16 0
      fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/ReportFormMapper.xml
  29. 7 6
      fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/ReportMapper.xml
  30. 2 1
      fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/SysFunctionMapper.xml
  31. 8 0
      fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/TaskMapper.xml
  32. 4 1
      fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/TimeTypeMapper.xml
  33. 73 0
      fhKeeper/formulahousekeeper/ops-platform/src/main/java/com/management/platform/controller/CompanyReportController.java
  34. 44 0
      fhKeeper/formulahousekeeper/ops-platform/src/main/java/com/management/platform/entity/CompanyReport.java
  35. 11 19
      fhKeeper/formulahousekeeper/user/src/main/java/com/hssx/user/entity/UserPermission.java
  36. 16 0
      fhKeeper/formulahousekeeper/ops-platform/src/main/java/com/management/platform/mapper/CompanyReportMapper.java
  37. 3 3
      src/main/java/com/management/platform/mapper/ExpenseTypeMapper.java
  38. 17 0
      fhKeeper/formulahousekeeper/ops-platform/src/main/java/com/management/platform/service/CompanyReportService.java
  39. 16 0
      fhKeeper/formulahousekeeper/ops-platform/src/main/java/com/management/platform/service/ReportFormService.java
  40. 20 0
      fhKeeper/formulahousekeeper/ops-platform/src/main/java/com/management/platform/service/impl/CompanyReportServiceImpl.java
  41. 20 0
      fhKeeper/formulahousekeeper/ops-platform/src/main/java/com/management/platform/service/impl/ReportFormServiceImpl.java
  42. 16 0
      fhKeeper/formulahousekeeper/ops-platform/src/main/resources/mapper/CompanyReportMapper.xml
  43. 16 0
      fhKeeper/formulahousekeeper/ops-platform/src/main/resources/mapper/ReportFormMapper.xml

+ 78 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/CompanyReportController.java

@@ -0,0 +1,78 @@
+package com.management.platform.controller;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.management.platform.entity.CompanyReport;
+import com.management.platform.entity.ReportForm;
+import com.management.platform.service.CompanyReportService;
+import com.management.platform.service.ReportFormService;
+import com.management.platform.util.HttpRespMsg;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.StringUtils;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author Seyason
+ * @since 2022-08-03
+ */
+@RestController
+@RequestMapping("/company-report")
+public class CompanyReportController {
+    @Autowired
+    private CompanyReportService companyReportService;
+    @Resource
+    private ReportFormService reportFormService;
+
+
+    @RequestMapping("/list")
+    public HttpRespMsg list(Integer companyId){
+        HttpRespMsg httpRespMsg=new HttpRespMsg();
+        List<CompanyReport> companyReportList = companyReportService.list(new QueryWrapper<CompanyReport>().eq("company_id", companyId));
+        List<ReportForm> reportFormList = reportFormService.list();
+        for (ReportForm reportForm : reportFormList) {
+            boolean b = companyReportList.stream().anyMatch(cr -> cr.getReportFormId().equals(reportForm.getId()));
+            if(b){
+                reportForm.setOwned(1);
+            }
+        }
+        httpRespMsg.data=reportFormList;
+        return httpRespMsg;
+    }
+
+    @RequestMapping("/update")
+    public HttpRespMsg update(Integer companyId,String formIds){
+        HttpRespMsg httpRespMsg=new HttpRespMsg();
+        if(companyReportService.remove(new QueryWrapper<CompanyReport>().eq("company_id", companyId))){
+            httpRespMsg.setError("更新失败");
+            return httpRespMsg;
+        }
+        List<CompanyReport> updateList=new ArrayList<>();
+        if(formIds!=null&&!StringUtils.isEmpty(formIds)){
+            String[] split = formIds.split(",");
+            List<String> list = Arrays.asList(split);
+            for (String s : list) {
+                CompanyReport companyReport=new CompanyReport();
+                companyReport.setCompanyId(companyId);
+                companyReport.setReportFormId(Integer.parseInt(s));
+                updateList.add(companyReport);
+            }
+            if(!companyReportService.saveBatch(updateList)){
+                httpRespMsg.setError("更新失败");
+            }
+        }
+        return httpRespMsg;
+    }
+
+}
+

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

@@ -126,12 +126,13 @@ public class ProjectController {
                                    String providerIds,
                                    String providerNames,
                                    ProjectSeparate projectSeparate,
+                                   Double outputValue,
                                    @RequestParam(defaultValue = "false") boolean onlyChangeParticipate
                                    ) {
         return projectService.editProject(id, name, code, userId, inchargerId, isPublic, planStartDate, planEndDate, level, contractAmount,
                 projectBaseCostData,
                  budget,customerId,chosenLeaders, associateDegrees, associateDegreeNames,
-                taskGpIncharge,auditUserIds, category, projectDesc,projectMainId, providerIds, providerNames, request,projectSeparate,onlyChangeParticipate);
+                taskGpIncharge,auditUserIds, category, projectDesc,projectMainId, providerIds, providerNames, request,projectSeparate,outputValue,onlyChangeParticipate);
     }
 
     @RequestMapping("/adjustBase")
@@ -595,6 +596,9 @@ public class ProjectController {
         if(company.getId()==936){
             heads.add("合同编号");
         }
+        if(company.getId()==428){
+            heads.add("项目分组");
+        }
         if(timeType.getMainProjectState()!=1){
             heads.add("项目分类");
         }
@@ -906,5 +910,23 @@ public class ProjectController {
     public HttpRespMsg exportGroupWithProjectTimeCost(String startDate,String endDate,Integer pageIndex,Integer pageSize,Integer groupId,Integer projectId){
         return projectService.exportGroupWithProjectTimeCost(startDate,endDate,pageIndex,pageSize,groupId,projectId,request);
     }
+    @RequestMapping("/getProjectBaseCost")
+    public HttpRespMsg getProjectBaseCost(Integer projectId,HttpServletRequest request,Integer pageIndex,Integer pageSize){
+        return projectService.getProjectBaseCost(projectId,request,pageIndex,pageSize);
+    }
+
+    @RequestMapping("/exportProjectBaseCost")
+    public HttpRespMsg exportProjectBaseCost(HttpServletRequest request){
+        return projectService.exportProjectBaseCost(request);
+    }
+
+    @RequestMapping("/getTimeCostByUserCustom")
+    public HttpRespMsg getTimeCostByUserCustom(String startDate,String endDate,String subCustomName,Integer customId,HttpServletRequest request,String fieldName){
+        return  projectService.getTimeCostByUserCustom(startDate,endDate,subCustomName,customId,request,fieldName);
+    }
+    @RequestMapping("/exportTimeCostByUserCustom")
+    public HttpRespMsg exportTimeCostByUserCustom(String startDate,String endDate,String subCustomName,Integer customId,HttpServletRequest request,String fieldName){
+        return projectService.exportTimeCostByUserCustom(startDate,endDate,subCustomName,customId,request,fieldName);
+    }
 }
 

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

@@ -1067,8 +1067,8 @@ public class ReportController {
      * reportIds 报告id
      */
     @RequestMapping("/approve")
-    public HttpRespMsg approveReport(@RequestParam String reportIds, Integer isDepartment, HttpServletRequest request) {
-        return reportService.approveReport(reportIds,isDepartment, request);
+    public HttpRespMsg approveReport(@RequestParam String reportIds, Integer isDepartment, HttpServletRequest request,String evaluate) {
+        return reportService.approveReport(reportIds,isDepartment, request,evaluate);
     }
 
 
@@ -1115,8 +1115,8 @@ public class ReportController {
     }
 
     @RequestMapping("/batchApproveReport")
-    public HttpRespMsg batchApproveReport(@RequestParam String ids, Integer isDepartment, HttpServletRequest request) {
-        return reportService.batchApproveReport(ids, isDepartment, request);
+    public HttpRespMsg batchApproveReport(@RequestParam String ids, Integer isDepartment, HttpServletRequest request,String evaluate) {
+        return reportService.batchApproveReport(ids, isDepartment, request,evaluate);
     }
 
     @RequestMapping("/batchDenyReport")

+ 36 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ReportFormController.java

@@ -0,0 +1,36 @@
+package com.management.platform.controller;
+
+
+import com.management.platform.entity.ReportForm;
+import com.management.platform.service.ReportFormService;
+import com.management.platform.util.HttpRespMsg;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author Seyason
+ * @since 2022-08-03
+ */
+@RestController
+@RequestMapping("/report-form")
+public class ReportFormController {
+    @Autowired
+    private ReportFormService reportFormService;
+
+    @RequestMapping("/list")
+    public HttpRespMsg list(){
+        HttpRespMsg httpRespMsg=new HttpRespMsg();
+        List<ReportForm> list = reportFormService.list();
+        httpRespMsg.data=list;
+        return httpRespMsg;
+    }
+}
+

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

@@ -71,6 +71,8 @@ public class TaskController {
     private CompanyDingdingService companyDingdingService;
     @Resource
     private WxCorpInfoService wxCorpInfoService;
+    @Resource
+    private ProjectSeparateMapper projectSeparateMapper;
 
     @RequestMapping("/save")
     @Transactional
@@ -703,7 +705,7 @@ public class TaskController {
      * @return
      */
     @RequestMapping("/listByPage")
-    public HttpRespMsg listByPage(Integer status, Integer viewId, Integer pageIndex, Integer pageSize,Integer type,Integer dateType,String startDate,String endDate) {
+    public HttpRespMsg listByPage(Integer status, Integer viewId, Integer pageIndex, Integer pageSize,Integer type,Integer dateType,String startDate,String endDate,String groupName) {
         HttpRespMsg msg = new HttpRespMsg();
         String userId = request.getHeader("Token");
         User user = userMapper.selectById(userId);
@@ -739,8 +741,7 @@ public class TaskController {
 //            //已超期的任务,未完成的任务
 //            queryWrapper.lt("end_date", LocalDate.now()).eq("task_status", 0);
 //        }
-        List<Task> list = taskMapper.getTaskWithProjectName(queryWrapper, (pageIndex-1)*pageSize, pageSize);
-
+        List<Task> list = taskMapper.getTaskWithProjectName(queryWrapper, (pageIndex-1)*pageSize, pageSize,companyId,groupName);
         int total = taskMapper.selectCount(queryWrapper);;
         Map<String, Object> map = new HashMap<>();
         map.put("records", list);
@@ -748,5 +749,16 @@ public class TaskController {
         msg.data = map;
         return msg;
     }
+    @RequestMapping("/getGroupNameList")
+    public HttpRespMsg getGroupNameList(HttpServletRequest request){
+        HttpRespMsg httpRespMsg=new HttpRespMsg();
+        Integer companyId = userMapper.selectById(request.getHeader("token")).getCompanyId();
+        List<Project> projectList = projectService.list(new QueryWrapper<Project>().eq("company_id", companyId));
+        List<Integer> collect = projectList.stream().distinct().map(Project::getId).collect(Collectors.toList());
+        List<ProjectSeparate> projectSeparateList = projectSeparateMapper.selectList(new QueryWrapper<ProjectSeparate>().in("id", collect));
+        List<String> nameList = projectSeparateList.stream().distinct().map(ProjectSeparate::getProjectCategorySub).collect(Collectors.toList());
+        httpRespMsg.data=nameList;
+        return httpRespMsg;
+    }
 }
 

+ 31 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/UserCustomController.java

@@ -3,10 +3,12 @@ package com.management.platform.controller;
 
 import com.alibaba.fastjson.JSONArray;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.management.platform.entity.SubUserCustom;
 import com.management.platform.entity.User;
 import com.management.platform.entity.UserCustom;
 import com.management.platform.mapper.UserCustomMapper;
 import com.management.platform.mapper.UserMapper;
+import com.management.platform.service.SubUserCustomService;
 import com.management.platform.service.UserCustomService;
 import com.management.platform.util.HttpRespMsg;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -15,7 +17,10 @@ import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
+import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -33,6 +38,8 @@ public class UserCustomController {
     @Resource
     private UserCustomMapper userCustomMapper;
     @Resource
+    private SubUserCustomService subUserCustomService;
+    @Resource
     private UserMapper userMapper;
     @RequestMapping("/addOrMod")
     public HttpRespMsg addOrMod(String json, HttpServletRequest request){
@@ -92,5 +99,29 @@ public class UserCustomController {
         userCustomService.removeById(id);
         return new HttpRespMsg();
     }
+    @RequestMapping("/getUserCustomTitle")
+    public HttpRespMsg getUserCustomTitle(HttpServletRequest request){
+        HttpRespMsg httpRespMsg=new HttpRespMsg();
+        User user = userMapper.selectById(request.getHeader("token"));
+        List<UserCustom> userCustomList = userCustomMapper.selectList(new QueryWrapper<UserCustom>().eq("company_id", user.getCompanyId()).eq("type", 0));
+        List<UserCustom> customList = userCustomMapper.selectList(new QueryWrapper<UserCustom>().eq("company_id", user.getCompanyId()));
+        List<SubUserCustom> subUserCustomList =subUserCustomService.list();
+        List<String> fieldList=new ArrayList<>();
+        for (int i = 0; i < customList.size(); i++) {
+            UserCustom userCustom = customList.get(i);
+            if(userCustom.getType()==0){
+                fieldList.add("plate"+(i+1));
+            }
+        }
+        for (UserCustom userCustom : userCustomList) {
+            List<SubUserCustom> collect = subUserCustomList.stream().filter(sub -> sub.getUserCustomId().equals(userCustom.getId())).collect(Collectors.toList());
+            userCustom.setSubUserCustomList(collect);
+        }
+        HashMap map=new HashMap();
+        map.put("result",userCustomList);
+        map.put("field",fieldList);
+        httpRespMsg.data=map;
+        return httpRespMsg;
+    }
 }
 

+ 43 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/CompanyReport.java

@@ -0,0 +1,43 @@
+package com.management.platform.entity;
+
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.baomidou.mybatisplus.annotation.TableField;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Seyason
+ * @since 2022-08-03
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class CompanyReport extends Model<CompanyReport> {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 公司id
+     */
+    @TableField("company_id")
+    private Integer companyId;
+
+    /**
+     * 报表id
+     */
+    @TableField("report_form_id")
+    private Integer reportFormId;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return null;
+    }
+
+}

+ 8 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/Project.java

@@ -288,9 +288,17 @@ public class Project extends Model<Project> {
     @TableField("current_stage_name")
     private String currentStageName;
 
+    /**
+     * 项目产值
+     */
+    @TableField("output_value")
+    private Double outputValue;
+
     @TableField(exist = false)
     ProjectSeparate projectSeparate;
 
+    @TableField(exist = false)
+    List<ProjectBasecost> projectBasecostList;
 
     @Override
     protected Serializable pkVal() {

+ 19 - 12
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/Report.java

@@ -1,16 +1,9 @@
 package com.management.platform.entity;
 
-import java.math.BigDecimal;
 import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.extension.activerecord.Model;
-import java.time.LocalDate;
-import com.baomidou.mybatisplus.annotation.TableId;
-import java.time.LocalDateTime;
 import com.baomidou.mybatisplus.annotation.TableField;
-import java.io.Serializable;
-import java.util.HashMap;
-import java.util.List;
-
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.management.platform.entity.vo.WorktimeItem;
 import lombok.Data;
@@ -18,13 +11,20 @@ import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
 import org.springframework.format.annotation.DateTimeFormat;
 
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.util.HashMap;
+import java.util.List;
+
 /**
  * <p>
  * 
  * </p>
  *
  * @author Seyason
- * @since 2022-07-24
+ * @since 2022-08-04
  */
 @Data
 @EqualsAndHashCode(callSuper = false)
@@ -66,13 +66,13 @@ public class Report extends Model<Report> {
     private Double workingTime;
 
     /**
-     * 报告内容
+     * 报告内容; 根据multi_worktime的取值,形式有差别
      */
     @TableField("content")
     private String content;
 
     /**
-     * 审查状态 0-未审核 1-已通过 2-未通过
+     * 审查状态 0-未审核 1-已通过 2-未通过, -1-导入待审核, 3草稿
      */
     @TableField("state")
     private Integer state;
@@ -250,6 +250,7 @@ public class Report extends Model<Report> {
      */
     @TableField("is_final_audit")
     private Integer isFinalAudit;
+
     /**
      * 审核流程:审核过程中,项目的审核状态; 0-待审核,1-审核通过
      */
@@ -338,6 +339,12 @@ public class Report extends Model<Report> {
     @TableField("group_audit_state")
     private Integer groupAuditState;
 
+    /**
+     * 评价
+     */
+    @TableField("evaluate")
+    private String evaluate;
+
 
     @Override
     protected Serializable pkVal() {

+ 11 - 19
src/main/java/com/management/platform/entity/ExpenseType.java

@@ -1,26 +1,27 @@
 package com.management.platform.entity;
 
 import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.extension.activerecord.Model;
-import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableField;
-import java.io.Serializable;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
 
+import java.io.Serializable;
+
 /**
  * <p>
  * 
  * </p>
  *
  * @author Seyason
- * @since 2022-07-28
+ * @since 2022-08-03
  */
 @Data
 @EqualsAndHashCode(callSuper = false)
 @Accessors(chain = true)
-public class ExpenseType extends Model<ExpenseType> {
+public class ReportForm extends Model<ReportForm> {
 
     private static final long serialVersionUID=1L;
 
@@ -28,22 +29,13 @@ public class ExpenseType extends Model<ExpenseType> {
     private Integer id;
 
     /**
-     * 主类型: 0-一般费用,1-差旅费用,2-外包费用
-     */
-    @TableField("main_type")
-    private Integer mainType;
-
-    /**
-     * 费用类型名称
+     * 报表名称
      */
-    @TableField("type_name")
-    private String typeName;
+    @TableField("report_form_name")
+    private String reportFormName;
 
-    /**
-     * 公司id
-     */
-    @TableField("company_id")
-    private Integer companyId;
+    @TableField(exist = false)
+    private Integer owned;
 
 
     @Override

+ 7 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/SysFunction.java

@@ -16,7 +16,7 @@ import java.io.Serializable;
  * </p>
  *
  * @author Seyason
- * @since 2022-06-30
+ * @since 2022-08-04
  */
 @Data
 @EqualsAndHashCode(callSuper = false)
@@ -136,6 +136,12 @@ public class SysFunction extends Model<SysFunction> {
     @TableField("remarks")
     private String remarks;
 
+    /**
+     * 权限所属报表
+     */
+    @TableField("report_form_id")
+    private Integer reportFormId;
+
     @TableField(exist = false)
     private boolean checked;
     @Override

+ 19 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/TimeType.java

@@ -17,7 +17,7 @@ import java.util.List;
  * </p>
  *
  * @author Seyason
- * @since 2022-08-03
+ * @since 2022-08-05
  */
 @Data
 @EqualsAndHashCode(callSuper = false)
@@ -296,6 +296,24 @@ public class TimeType extends Model<TimeType> {
     @TableField("project_level_state")
     private Integer projectLevelState;
 
+    /**
+     * 0-未开启 1-开启
+     */
+    @TableField("need_evaluate")
+    private Integer needEvaluate;
+
+    /**
+     * 0-未开启 1-开启
+     */
+    @TableField("output_value_status")
+    private Integer outputValueStatus;
+
+    /**
+     * 0-未开启 1-开启
+     */
+    @TableField("user_custom_static")
+    private Integer userCustomStatic;
+
     @TableField(exist = false)
     private List<User> userList;
 

+ 8 - 3
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/UserCustom.java

@@ -1,14 +1,16 @@
 package com.management.platform.entity;
 
 import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.extension.activerecord.Model;
-import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableField;
-import java.io.Serializable;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
 
+import java.io.Serializable;
+import java.util.List;
+
 /**
  * <p>
  * 
@@ -39,6 +41,9 @@ public class UserCustom extends Model<UserCustom> {
     @TableField("type")
     private Integer type;
 
+    @TableField(exist = false)
+    private List<SubUserCustom> subUserCustomList;
+
 
     @Override
     protected Serializable pkVal() {

+ 16 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/CompanyReportMapper.java

@@ -0,0 +1,16 @@
+package com.management.platform.mapper;
+
+import com.management.platform.entity.CompanyReport;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author Seyason
+ * @since 2022-08-03
+ */
+public interface CompanyReportMapper extends BaseMapper<CompanyReport> {
+
+}

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

@@ -119,4 +119,6 @@ public interface ProjectMapper extends BaseMapper<Project> {
     List<Map<String, Object>> selectWithGroupProject(Integer companyId, String startDate, String endDate,  Integer startIndex, Integer endIndex, Integer projectId, List<Integer> inchagerIds, Integer groupId);
 
     long selectCountWithGroupProject(Integer companyId, String startDate, String endDate, Integer startIndex, Integer endIndex, Integer projectId, List<Integer> inchagerIds, Integer groupId);
+
+    List<Map<String, Object>> getCostByUserCustom(String startDate, String endDate, Integer companyId, List<Integer> deptIds, Integer customId, String subCustomName,String fieldName);
 }

+ 16 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/ReportFormMapper.java

@@ -0,0 +1,16 @@
+package com.management.platform.mapper;
+
+import com.management.platform.entity.ReportForm;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author Seyason
+ * @since 2022-08-03
+ */
+public interface ReportFormMapper extends BaseMapper<ReportForm> {
+
+}

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

@@ -35,7 +35,7 @@ public interface TaskMapper extends BaseMapper<Task> {
 
     Integer getProjectTaskCount(Integer companyId, Integer projectId,Integer taskType,List<Integer> inchagerIds);
 
-    List getTaskWithProjectName(@Param(Constants.WRAPPER) Wrapper wrapper, Integer pageStart, Integer pageSize);
+    List getTaskWithProjectName(@Param(Constants.WRAPPER) Wrapper wrapper, Integer pageStart, Integer pageSize,Integer companyId,String groupName);
 
     List recentSimpleList(Integer projectId, String userId);
 

+ 16 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/CompanyReportService.java

@@ -0,0 +1,16 @@
+package com.management.platform.service;
+
+import com.management.platform.entity.CompanyReport;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author Seyason
+ * @since 2022-08-03
+ */
+public interface CompanyReportService extends IService<CompanyReport> {
+
+}

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

@@ -43,7 +43,7 @@ public interface ProjectService extends IService<Project> {
                             String providerIds,
                             String providerNames,
                             HttpServletRequest request,
-                            ProjectSeparate projectSeparate,boolean onlyChangeParticipate);
+                            ProjectSeparate projectSeparate,Double outputValue,boolean onlyChangeParticipate);
 
     HttpRespMsg deleteProject(Integer id, Integer force);
 
@@ -170,4 +170,12 @@ public interface ProjectService extends IService<Project> {
     HttpRespMsg getTimeCostByGroupProject(String startDate, String endDate, Integer pageIndex, Integer pageSize, Integer groupId, Integer projectId, HttpServletRequest request);
 
     HttpRespMsg exportGroupWithProjectTimeCost(String startDate, String endDate, Integer pageIndex, Integer pageSize, Integer groupId, Integer projectId, HttpServletRequest request);
+
+    HttpRespMsg getProjectBaseCost(Integer projectId, HttpServletRequest request, Integer pageIndex, Integer pageSize);
+
+    HttpRespMsg exportProjectBaseCost(HttpServletRequest request);
+
+    HttpRespMsg getTimeCostByUserCustom(String startDate, String endDate, String subCustomName, Integer customId,HttpServletRequest request,String fieldName);
+
+    HttpRespMsg exportTimeCostByUserCustom(String startDate, String endDate, String subCustomName, Integer customId, HttpServletRequest request, String fieldName);
 }

+ 3 - 3
src/main/java/com/management/platform/service/ExpenseTypeService.java

@@ -1,6 +1,6 @@
 package com.management.platform.service;
 
-import com.management.platform.entity.ExpenseType;
+import com.management.platform.entity.ReportForm;
 import com.baomidou.mybatisplus.extension.service.IService;
 
 /**
@@ -9,8 +9,8 @@ import com.baomidou.mybatisplus.extension.service.IService;
  * </p>
  *
  * @author Seyason
- * @since 2022-07-28
+ * @since 2022-08-03
  */
-public interface ExpenseTypeService extends IService<ExpenseType> {
+public interface ReportFormService extends IService<ReportForm> {
 
 }

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

@@ -41,13 +41,13 @@ public interface ReportService extends IService<Report> {
                                String userId,
                                HttpServletRequest request);
 
-    HttpRespMsg approveReport(String reportIds, Integer isDepartment, HttpServletRequest request);
+    HttpRespMsg approveReport(String reportIds, Integer isDepartment, HttpServletRequest request,String evaluate);
 
     HttpRespMsg denyReport(String date, String reportIds, String reason, Integer isDepartment, HttpServletRequest request);
 
     HttpRespMsg getMembList(String date, HttpServletRequest request);
 
-    HttpRespMsg batchApproveReport(String ids, Integer isDepartment, HttpServletRequest request);
+    HttpRespMsg batchApproveReport(String ids, Integer isDepartment, HttpServletRequest request,String evaluate);
     HttpRespMsg batchDenyReport(String ids, Integer isDepartment, String reason, HttpServletRequest request);
 
     HttpRespMsg cancelReport(String userId, String reportIds, HttpServletRequest request);

+ 20 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/CompanyReportServiceImpl.java

@@ -0,0 +1,20 @@
+package com.management.platform.service.impl;
+
+import com.management.platform.entity.CompanyReport;
+import com.management.platform.mapper.CompanyReportMapper;
+import com.management.platform.service.CompanyReportService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author Seyason
+ * @since 2022-08-03
+ */
+@Service
+public class CompanyReportServiceImpl extends ServiceImpl<CompanyReportMapper, CompanyReport> implements CompanyReportService {
+
+}

+ 278 - 44
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectServiceImpl.java

@@ -148,6 +148,11 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
     ProjectSeparateMapper projectSeparateMapper;
     @Resource
     ProjectStageMapper projectStageMapper;
+    @Resource
+    UserCustomMapper userCustomMapper;
+    @Resource
+    SubUserCustomMapper subUserCustomMapper;
+
 
     @Resource
     private HttpServletResponse response;
@@ -258,7 +263,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
             TimeType timeType = timeTypeMapper.selectById(companyId);
             List<Integer> projectIds = projectList.stream().distinct().map(pl -> pl.getId()).collect(Collectors.toList());
             List<ProjectSeparate> projectSeparateList=new ArrayList<>();
-            if(companyId==936){
+            if(companyId==936||companyId==428){
                 if (projectIds.size() > 0) {
                     projectSeparateList = projectSeparateMapper.selectList(new QueryWrapper<ProjectSeparate>().in("id", projectIds));
                 }
@@ -319,7 +324,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                     }
                     projectVO.setProviderInfoList(mapList);
                 }
-                if(companyId==936){
+                if(companyId==936||companyId==428){
                         Optional<ProjectSeparate> first1 = projectSeparateList.stream().filter(ps -> ps.getId().equals(project.getId())).findFirst();
                         if(first1.isPresent()){
                             projectVO.setProjectSeparate(first1.get());
@@ -365,11 +370,11 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                                    String providerIds,
                                    String providerNames,
                                    HttpServletRequest request,
-                                   ProjectSeparate projectSeparate,boolean onlyChangeParticipate) {
+                                   ProjectSeparate projectSeparate,Double outputValue,boolean onlyChangeParticipate) {
         HttpRespMsg httpRespMsg = new HttpRespMsg();
         User user = userMapper.selectById(request.getHeader("Token"));
         Integer companyId = user.getCompanyId();
-
+        TimeType timeType = timeTypeMapper.selectById(user.getCompanyId());
         boolean isNew = true;
         //检查负责人要在参与人中
         if (inchargerId != null) {
@@ -423,6 +428,9 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                             .setTaskGpIncharge(taskGpIncharge)
                             .setProviderIds(providerIds)
                             .setProviderNames(providerNames);
+                    if(timeType.getOutputValueStatus()==1){
+                        project.setOutputValue(outputValue==null?0.00:outputValue);
+                    }
                     ProjectMain projectMain = projectMainMapper.selectById(projectMainId);
                     if(projectMain!=null){
                         project.setCategory(projectMain.getCategoryId());
@@ -471,7 +479,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                         }
                     }
                     id = project.getId();
-                    if(companyId==936){
+                    if(companyId==936||companyId==428){
                         projectSeparate.setId(id);
                         projectSeparateMapper.insert(projectSeparate);
                     }
@@ -502,6 +510,9 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                         .setTaskGpIncharge(taskGpIncharge)
                         .setProviderIds(providerIds)
                         .setProviderNames(providerNames);
+                if(timeType.getOutputValueStatus()==1){
+                    p.setOutputValue(outputValue==null?0.00:outputValue);
+                }
                 if (category != null) {
                     ProjectCategory projectCategory = projectCategoryMapper.selectById(category);
                     if (projectCategory != null) {
@@ -509,7 +520,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                         p.setCategoryName(projectCategory.getName());
                     }
                 }
-                if(companyId==936){
+                if(companyId==936||companyId==428){
                     //编辑之前的项目是否存在子表数据
                     ProjectSeparate separate = projectSeparateMapper.selectById(id);
                     projectSeparate.setId(id);
@@ -1179,7 +1190,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         List<ProjectAuditor> auditorList = projectAuditorMapper.selectList(new QueryWrapper<ProjectAuditor>().eq("project_id", id));
         project.setAuditorList(auditorList);
         project.setAuditUserIds(auditorList.stream().map(ProjectAuditor::getAuditorId).collect(Collectors.toList()));
-        if(project.getCompanyId()==936){
+        if(project.getCompanyId()==936||project.getCompanyId()==428){
             ProjectSeparate projectSeparate = projectSeparateMapper.selectById(id);
             project.setProjectSeparate(projectSeparate);
         }
@@ -2772,20 +2783,25 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                     int i=0;
                     int k=0;
                     int c=0;
+                    int d=0;
                     if(timeType.getMainProjectState()==1){
                         mainNameCell = row.getCell(0);
-                        codeCell = row.getCell(1);
+                        if(company.getId()==428){
+                            projectCategorySubCell=row.getCell(1);
+                            d++;
+                        }
+                        codeCell = row.getCell(1+d);
                         if(company.getId()==936){
-                            contractCell=row.getCell(2);
+                            contractCell=row.getCell(2+d);
                             c++;
                         }
-                        isPublicCell = row.getCell(2+c);
-                        nameCell = row.getCell(3+c);
-                        participatorCell = row.getCell(4+c);
-                        inchargerCell = row.getCell(5+c);
-                        levelCell = row.getCell(6+c);
+                        isPublicCell = row.getCell(2+c+d);
+                        nameCell = row.getCell(3+c+d);
+                        participatorCell = row.getCell(4+c+d);
+                        inchargerCell = row.getCell(5+c+d);
+                        levelCell = row.getCell(6+c+d);
                         if(company.getPackageCustomer()==1){
-                            customerCell=row.getCell(7+c);
+                            customerCell=row.getCell(7+c+d);
                             i++;
                         }
                         if(company.getPackageProvider()==1){
@@ -2795,17 +2811,17 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                                 }
                             }
                         }
-                        startDateCell = row.getCell(7+i+k+c);
-                        endDateCell = row.getCell(8+i+k+c);
-                        amountCell = row.getCell(9+i+k+c);
+                        startDateCell = row.getCell(7+i+k+c+d);
+                        endDateCell = row.getCell(8+i+k+c+d);
+                        amountCell = row.getCell(9+i+k+c+d);
                         if(company.getId()==936){
-                            warrantyEndDateCell=row.getCell(10+i+k+c);
-                            warrantyStartDateCell=row.getCell(11+i+k+c);
-                            projectCategorySubCell=row.getCell(12+i+k+c);
-                            regionCell=row.getCell(13+i+k+c);
-                            buCell=row.getCell(14+i+k+c);
-                            stateCell=row.getCell(15+i+k+c);
-                            stageCell=row.getCell(16+i+k+c);
+                            warrantyEndDateCell=row.getCell(10+i+k+c+d);
+                            warrantyStartDateCell=row.getCell(11+i+k+c+d);
+                            projectCategorySubCell=row.getCell(12+i+k+c+d);
+                            regionCell=row.getCell(13+i+k+c+d);
+                            buCell=row.getCell(14+i+k+c+d);
+                            stateCell=row.getCell(15+i+k+c+d);
+                            stageCell=row.getCell(16+i+k+c+d);
                         }
                     }else {
                         codeCell = row.getCell(0);
@@ -2813,15 +2829,19 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                             contractCell=row.getCell(1);
                             c++;
                         }
-                        categoryCell = row.getCell(1+c);
-                        isPublicCell = row.getCell(2+c);
-                        nameCell = row.getCell(3+c);
-                        subNameCell = row.getCell(4+c);
-                        participatorCell = row.getCell(5+c);
-                        inchargerCell = row.getCell(6+c);
-                        levelCell = row.getCell(7+c);
+                        if(company.getId()==428){
+                            projectCategorySubCell=row.getCell(1+c);
+                            d++;
+                        }
+                        categoryCell = row.getCell(1+c+d);
+                        isPublicCell = row.getCell(2+c+d);
+                        nameCell = row.getCell(3+c+d);
+                        subNameCell = row.getCell(4+c+d);
+                        participatorCell = row.getCell(5+c+d);
+                        inchargerCell = row.getCell(6+c+d);
+                        levelCell = row.getCell(7+c+d);
                         if(company.getPackageCustomer()==1){
-                            customerCell=row.getCell(8+c);
+                            customerCell=row.getCell(8+c+d);
                             i++;
                         }
                         if(company.getPackageProvider()==1){
@@ -2831,17 +2851,17 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                                 }
                             }
                         }
-                        startDateCell = row.getCell(8+i+k+c);
-                        endDateCell = row.getCell(9+i+k+c);
-                        amountCell = row.getCell(10+i+k+c);
+                        startDateCell = row.getCell(8+i+k+c+d);
+                        endDateCell = row.getCell(9+i+k+c+d);
+                        amountCell = row.getCell(10+i+k+c+d);
                         if(company.getId()==936){
-                            warrantyEndDateCell=row.getCell(11+i+k+c);
-                            warrantyStartDateCell=row.getCell(12+i+k+c);
-                            projectCategorySubCell=row.getCell(13+i+k+c);
-                            regionCell=row.getCell(14+i+k+c);
-                            buCell=row.getCell(15+i+k+c);
-                            stateCell=row.getCell(16+i+k+c);
-                            stageCell=row.getCell(17+i+k+c);
+                            warrantyEndDateCell=row.getCell(11+i+k+c+d);
+                            warrantyStartDateCell=row.getCell(12+i+k+c+d);
+                            projectCategorySubCell=row.getCell(13+i+k+c+d);
+                            regionCell=row.getCell(14+i+k+c+d);
+                            buCell=row.getCell(15+i+k+c+d);
+                            stateCell=row.getCell(16+i+k+c+d);
+                            stageCell=row.getCell(17+i+k+c+d);
                         }
                     }
                     if (codeCell != null)codeCell.setCellType(CellType.STRING);
@@ -3094,7 +3114,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                     if(company.getId()==936){
                         ProjectSeparate projectSeparate=new ProjectSeparate();
                         projectSeparate.setId(id);
-                        if (warrantyStartDateCell !=null && !StringUtils.isEmpty(warrantyStartDateCell.getDateCellValue())) {
+                        if (warrantyStartDateCell !=null&& warrantyStartDateCell.getCellTypeEnum() == CellType.NUMERIC  && !StringUtils.isEmpty(warrantyStartDateCell.getDateCellValue())) {
                             projectSeparate.setWarrantyStartDate(LocalDate.parse(sdf.format(warrantyStartDateCell.getDateCellValue()), DateTimeFormatter.ofPattern("yyyy-MM-dd")));
                         }
                         if (warrantyEndDateCell !=null && warrantyEndDateCell.getCellTypeEnum() == CellType.NUMERIC && !StringUtils.isEmpty(warrantyEndDateCell.getDateCellValue())) {
@@ -3115,6 +3135,14 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                         }
                         projectSeparateMapper.insert(projectSeparate);
                     }
+                    if(company.getId()==428){
+                        ProjectSeparate projectSeparate=new ProjectSeparate();
+                        projectSeparate.setId(id);
+                        if (projectCategorySubCell != null && !StringUtils.isEmpty(projectCategorySubCell.getStringCellValue())) {
+                            projectSeparate.setProjectCategorySub(projectCategorySubCell.getStringCellValue());
+                        }
+                        projectSeparateMapper.insert(projectSeparate);
+                    }
                     importCount++;
                     //参与人
                     if(inchargerCell!=null){
@@ -3290,6 +3318,9 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
             headList.add("项目状态");
             headList.add("项目阶段");
         }
+        if(company.getId()==428){
+            headList.add("项目分组");
+        }
         List<List<String>> allList = new ArrayList<List<String>>();
         allList.add(headList);
         String[] levelArray = new String[]{"正常","紧急","重要","重要且紧急","低风险","中风险","高风险"};
@@ -3390,6 +3421,15 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                 }
                 rowData.add(projectVO.getCurrentStageName()==null?"":projectVO.getCurrentStageName());
             }
+            if(company.getId()==428){
+                Optional<ProjectSeparate> first = projectSeparateList.stream().filter(ps -> ps.getId().equals(projectVO.getId())).findFirst();
+                if(first.isPresent()){
+                    ProjectSeparate projectSeparate = first.get();
+                    rowData.add(projectSeparate.getProjectCategorySub()==null?"":projectSeparate.getProjectCategorySub());
+                }else {
+                    rowData.add("");
+                }
+            }
             allList.add(rowData);
         }
 
@@ -5024,6 +5064,200 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         return httpRespMsg;
     }
 
+    @Override
+    public HttpRespMsg getProjectBaseCost(Integer projectId, HttpServletRequest request, Integer pageIndex, Integer pageSize) {
+        HttpRespMsg httpRespMsg=new HttpRespMsg();
+        User user = userMapper.selectById(request.getHeader("Token"));
+        Integer companyId = user.getCompanyId();
+        List<Project> projectList = projectMapper.selectList(new QueryWrapper<Project>().eq("company_id", companyId));
+        List<SysRichFunction> functionAllList = sysFunctionMapper.getRoleFunctions(user.getRoleId(), "全部项目成本基线表");
+        List<SysRichFunction> functionInchargeList = sysFunctionMapper.getRoleFunctions(user.getRoleId(), "负责项目成本基线表");
+        //判断查看权限
+        List<Integer> inchagerIds=null;
+        if(functionAllList.size()==0){
+            inchagerIds=new ArrayList<>();
+            if(functionInchargeList.size()>0){
+                List<Project> list = projectList.stream().filter(pl ->(pl.getInchargerId()==null?0:pl.getInchargerId()).equals(user.getId())).collect(Collectors.toList());
+                if(list!=null){
+                    List<Integer> collect = list.stream().map(li -> li.getId()).collect(Collectors.toList());
+                    inchagerIds.addAll(collect);
+                }
+            }else {
+                inchagerIds.add(-1);
+            }
+        }
+        QueryWrapper<Project> queryWrapper=new QueryWrapper<>();
+        if(projectId!=null){
+            queryWrapper.eq("id",projectId);
+        }
+        if(inchagerIds!=null){
+            queryWrapper.in("id",inchagerIds);
+        }
+        IPage<Project> projectIPage;
+        if(pageIndex!=null && pageSize!=null){
+            projectIPage= projectMapper.selectPage(new Page<>(pageIndex, pageSize),
+                    queryWrapper.eq("company_id",user.getCompanyId()));
+        }else {
+            projectIPage= projectMapper.selectPage(new Page<>(-1,-1),
+                    queryWrapper.eq("company_id",user.getCompanyId()));
+        }
+        List<Project> targetProjectList = projectIPage.getRecords();
+        List<Integer> collect = targetProjectList.stream().distinct().map(Project::getId).collect(Collectors.toList());
+        List<ProjectBasecost> projectBasecostList=new ArrayList<>();
+        if(collect!=null&&collect.size()>0){
+            projectBasecostList = projectBasecostMapper.selectList(new QueryWrapper<ProjectBasecost>().in("project_id", collect));
+        }
+        List<ProjectBasecostSetting> settingList = projectBasecostSettingMapper.selectList(new QueryWrapper<ProjectBasecostSetting>().eq("company_id", user.getCompanyId()));
+        List<String> titleList = settingList.stream().distinct().map(ProjectBasecostSetting::getName).collect(Collectors.toList());
+        for (Project project : targetProjectList) {
+            List<ProjectBasecost> basecostList = projectBasecostList.stream().filter(pb -> pb.getProjectId().equals(project.getId())).collect(Collectors.toList());
+            if(basecostList!=null){
+                project.setProjectBasecostList(basecostList);
+            }
+        }
+        HashMap map=new HashMap();
+        map.put("total",projectIPage.getTotal());
+        map.put("title",titleList);
+        map.put("result",targetProjectList);
+        httpRespMsg.data=map;
+        return httpRespMsg;
+    }
+
+    @Override
+    public HttpRespMsg exportProjectBaseCost(HttpServletRequest request) {
+        HttpRespMsg httpRespMsg=new HttpRespMsg();
+        HttpRespMsg projectBaseCost = getProjectBaseCost(null, request, null, null);
+        HashMap map= (HashMap) projectBaseCost.data;
+        List<Project> resultProjectList= (List<Project>) map.get("result");
+        List<List<String>> dataList=new ArrayList<>();
+        List<String> titleList= (List<String>) map.get("title");
+        List<String> firstTitle=new ArrayList<>();
+        firstTitle.add("项目编号");
+        firstTitle.add("项目名称");
+        firstTitle.addAll(titleList);
+        dataList.add(firstTitle);
+        for (Project project : resultProjectList) {
+            List<String> item=new ArrayList<>();
+            item.add(project.getProjectCode());
+            item.add(project.getProjectName());
+            for (String s : titleList) {
+                List<ProjectBasecost> projectBasecostList = project.getProjectBasecostList();
+                if(projectBasecostList!=null){
+                    Optional<ProjectBasecost> first = projectBasecostList.stream().filter(pb -> pb.getBaseName().equals(s)).findFirst();
+                    if(first.isPresent()){
+                        ProjectBasecost projectBasecost = first.get();
+                        item.add(String.valueOf(projectBasecost.getBaseAmount()));
+                    }else item.add("");
+                }
+            }
+            dataList.add(item);
+        }
+        //生成excel文件导出
+        String fileName = "项目成本基线表_"+System.currentTimeMillis();
+        String resp = ExcelUtil.exportGeneralExcelByTitleAndList(fileName , dataList, path);
+        httpRespMsg.data = resp;
+        return httpRespMsg;
+    }
+
+    @Override
+    public HttpRespMsg getTimeCostByUserCustom(String startDate, String endDate, String subCustomName, Integer customId,HttpServletRequest request,String fieldName) {
+        HttpRespMsg httpRespMsg=new HttpRespMsg();
+        User targetUser = userMapper.selectById(request.getHeader("Token"));
+        Integer companyId =targetUser.getCompanyId();
+        Map<String, Object> resultMap = new HashMap<>();
+        //当前用户管理部门
+        List<Integer> deptIds=null;
+        List<Department> allDepartmentList=departmentMapper.selectList(new QueryWrapper<Department>().eq("company_id",companyId));
+        List<Department> departmentList = departmentMapper.selectList(new QueryWrapper<Department>().eq("manager_id", targetUser.getId()).eq("company_id", companyId));
+        List<DepartmentOtherManager> departmentOtherManagerList = departmentOtherManagerMapper.selectList(new QueryWrapper<DepartmentOtherManager>().eq("other_manager_id", targetUser.getId()));
+        List<SysRichFunction> functionAllList = sysFunctionMapper.getRoleFunctions(targetUser.getRoleId(), "查看全公司");
+        List<SysRichFunction> functionDpartList = sysFunctionMapper.getRoleFunctions(targetUser.getRoleId(), "查看负责部门");
+        List<SysRichFunction> functionTimeList = sysFunctionMapper.getRoleFunctions(targetUser.getRoleId(), "查看工时统计");
+        List<SysRichFunction> functionCostList = sysFunctionMapper.getRoleFunctions(targetUser.getRoleId(), "查看成本统计");
+        //判断查看权限
+        if(functionAllList.size()==0){
+            deptIds=new ArrayList<>();
+            deptIds.add(-1);
+            if(functionDpartList.size()>0){
+                if(functionTimeList.size()>0||functionCostList.size()>0){
+                    List<Integer> collect = departmentList.stream().distinct().map(dm -> dm.getDepartmentId()).collect(Collectors.toList());
+                    List<Integer> otherCollect = departmentOtherManagerList.stream().distinct().map(dom -> dom.getDepartmentId()).collect(Collectors.toList());
+                    collect.addAll(otherCollect);
+                    for (Integer integer : collect) {
+                        List<Integer> branchDepartment = getBranchDepartment(integer, allDepartmentList);
+                        deptIds.addAll(branchDepartment);
+                    }
+                }
+            }
+        }
+        List<Map<String, Object>> list= projectMapper.getCostByUserCustom(startDate, endDate,companyId,deptIds,customId,subCustomName,fieldName);
+        BigDecimal totalCostMoney = new BigDecimal(0);
+        Map<String, Object> finalMap = new HashMap<>();
+        for (Map<String, Object> map : list) {
+            totalCostMoney=totalCostMoney.add((BigDecimal) map.get("costMoney"));
+        }
+        finalMap.put("totalCostMoney", totalCostMoney);
+        finalMap.put("list", list);
+        if(functionCostList.size()==0){
+            finalMap.put("totalCostMoney",null);
+            list.forEach(li->{
+                List<Map<String,Object>> mapList= (List<Map<String, Object>>) li.get("name");
+                mapList.forEach(ml->{
+                    ml.put("costMoney",null);
+                });
+            });
+        }
+        if(functionTimeList.size()==0){
+            list.forEach(li->{
+                List<Map<String,Object>> mapList= (List<Map<String, Object>>) li.get("name");
+                mapList.forEach(ml->{
+                    ml.put("cost",null);
+                });
+            });
+        }
+        httpRespMsg.data = finalMap;
+        return httpRespMsg;
+    }
+
+    @Override
+    public HttpRespMsg exportTimeCostByUserCustom(String startDate, String endDate, String subCustomName, Integer customId, HttpServletRequest request, String fieldName) {
+        HttpRespMsg httpRespMsg=new HttpRespMsg();
+        User targetUser = userMapper.selectById(request.getHeader("token"));
+        List<SysRichFunction> functionTimeList = sysFunctionMapper.getRoleFunctions(targetUser.getRoleId(), "查看工时统计");
+        List<SysRichFunction> functionCostList = sysFunctionMapper.getRoleFunctions(targetUser.getRoleId(), "查看成本统计");
+        HttpRespMsg msg = getTimeCostByUserCustom(startDate, endDate, null, customId, request, fieldName);
+        HashMap map= (HashMap) msg.data;
+        UserCustom userCustom = userCustomMapper.selectById(customId);
+        List<Map<String,Object>> resultList= (List<Map<String, Object>>) map.get("list");
+        List<List<String>> dataList=new ArrayList<>();
+        List<String> titleList=new ArrayList<>();
+        titleList.add(userCustom.getName());
+        if(functionTimeList.size()>0){
+            titleList.add("工时");
+        }
+        if(functionCostList.size()>0){
+            titleList.add("成本");
+        }
+        dataList.add(titleList);
+        for (Map<String, Object> stringObjectMap : resultList) {
+            List<String> item=new ArrayList<>();
+            item.add(String.valueOf(stringObjectMap.get("name")));
+            if(functionTimeList.size()>0){
+                item.add(String.valueOf(stringObjectMap.get("cost"))==null?"":String.valueOf(stringObjectMap.get("cost")));
+            }
+            if(functionCostList.size()>0){
+                item.add(String.valueOf(stringObjectMap.get("costMoney"))==null?"":String.valueOf(stringObjectMap.get("costMoney")));
+            }
+            dataList.add(item);
+        }
+        //生成excel文件导出
+        String fileName = userCustom.getName()+"工时成本统计_"+System.currentTimeMillis();
+        String resp = ExcelUtil.exportGeneralExcelByTitleAndList(fileName , dataList, path);
+        httpRespMsg.data = resp;
+
+        return httpRespMsg;
+    }
+
 
     private List<Department> getSubDepts(Department dp, List<Department> list) {
         List<Department> collect = list.stream().filter(l -> dp.getDepartmentId().equals(l.getSuperiorId())).collect(Collectors.toList());

+ 20 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ReportFormServiceImpl.java

@@ -0,0 +1,20 @@
+package com.management.platform.service.impl;
+
+import com.management.platform.entity.ReportForm;
+import com.management.platform.mapper.ReportFormMapper;
+import com.management.platform.service.ReportFormService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author Seyason
+ * @since 2022-08-03
+ */
+@Service
+public class ReportFormServiceImpl extends ServiceImpl<ReportFormMapper, ReportForm> implements ReportFormService {
+
+}

+ 44 - 9
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ReportServiceImpl.java

@@ -1128,11 +1128,12 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
 
     //审核通过某天某人的某报告
     @Override
-    public HttpRespMsg approveReport(String reportIds, Integer isDepartment, HttpServletRequest request) {
+    public HttpRespMsg approveReport(String reportIds, Integer isDepartment, HttpServletRequest request,String evaluate) {
         HttpRespMsg httpRespMsg = new HttpRespMsg();
         String token = request.getHeader("Token");
         User user = userMapper.selectById(token);
         Company company = companyMapper.selectById(user.getCompanyId());
+        TimeType timeType = timeTypeMapper.selectById(company.getId());
         final List<Integer> ids = ListUtil.convertIntegerIdsArrayToList(reportIds);
         if (company.getPackageEngineering() == 1) {
             //检查是否有专业进度待审核
@@ -1148,6 +1149,9 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                     if (report.getDepartmentAuditState() == 0){
                         report = new Report();
                         report.setDepartmentAuditState(1);
+                        if(timeType.getNeedEvaluate()==1){
+                            report.setEvaluate(evaluate);
+                        }
                         reportMapper.update(report, new QueryWrapper<Report>().in("id", ids));
                     }
                 }
@@ -1173,11 +1177,17 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                         if (count == 0) {
                             Report report = new Report();
                             report.setDepartmentAuditState(0);
+                            if(timeType.getNeedEvaluate()==1){
+                                report.setEvaluate(evaluate);
+                            }
                             reportMapper.update(report, new QueryWrapper<Report>().in("id", ids));
                         }
                     }
                 } else {
                     Report report = reportMapper.selectById(ids.get(0));
+                    if(timeType.getNeedEvaluate()==1){
+                        report.setEvaluate(evaluate);
+                    }
                     //部门待审核,部门审核通过
                     if (report.getDepartmentAuditState() == 0) {
                         report = new Report();
@@ -1206,7 +1216,6 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
             }
         } else {
             //先按照大的审核模式进行分类
-            TimeType timeType = timeTypeMapper.selectById(company.getId());
             Report oneReport = reportMapper.selectById(ids.get(0));
             int oldState = oneReport.getState();
             String creatorId = oneReport.getCreatorId();
@@ -1223,6 +1232,9 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                     return httpRespMsg;
                 }
                 for (Report r : reportList) {
+                    if(timeType.getNeedEvaluate()==1){
+                        r.setEvaluate(evaluate);
+                    }
                     if (r.getGroupAuditState() == 0) {
                         r.setGroupAuditState(1);
                         r.setProjectAuditTime(LocalDateTime.now());
@@ -1245,7 +1257,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                                 .orderByAsc("seq"));
                 if (settings.size() == 0) {
                     //直接进行项目经理审核
-                    reportMapper.update(new Report().setState(1).setProjectAuditState(1).setProjectAuditTime(LocalDateTime.now()),
+                    reportMapper.update(new Report().setState(1).setProjectAuditState(1).setProjectAuditTime(LocalDateTime.now()).setEvaluate(timeType.getNeedEvaluate()==1?evaluate:null),
                             new QueryWrapper<Report>().in("id", ids));
                 } else {
                     //按流程走
@@ -1256,17 +1268,20 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                         //最终审核了,审核通过
                         if (item.getIsDeptAudit() == 1) {
                             //如果最终是部门审核,直接通过
-                            reportMapper.update(new Report().setState(1).setProjectAuditTime(LocalDateTime.now()),
+                            reportMapper.update(new Report().setState(1).setProjectAuditTime(LocalDateTime.now()).setEvaluate(timeType.getNeedEvaluate()==1?evaluate:null),
                                     new QueryWrapper<Report>().in("id", ids));
                         } else {
                             //如果最终是项目审核,流程中的项目审核字段也要更新: state为最终审核状态,projectAuditState为阶段性的项目审核状态
-                            reportMapper.update(new Report().setState(1).setProjectAuditState(1).setProjectAuditTime(LocalDateTime.now()),
+                            reportMapper.update(new Report().setState(1).setProjectAuditState(1).setProjectAuditTime(LocalDateTime.now()).setEvaluate(timeType.getNeedEvaluate()==1?evaluate:null),
                                     new QueryWrapper<Report>().in("id", ids));
                         }
                     } else {
                         if (item.getIsDeptAudit() == 1) {
                             //当前是部门审核,获取审核部门id
                             Report upR = new Report();
+                            if(timeType.getNeedEvaluate()==1){
+                                upR.setEvaluate(evaluate);
+                            }
                             Integer auditDeptid = item.getAuditDeptid();
                             for (int m=0;m<settings.size(); m++) {
                                 if (auditDeptid.equals(settings.get(m).getAuditDeptId()) && m < settings.size() -1) {
@@ -1287,7 +1302,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                                     new QueryWrapper<Report>().in("id", ids));
                         } else {
                             //当前的先审核通过
-                            reportMapper.update(new Report().setProjectAuditState(1),
+                            reportMapper.update(new Report().setProjectAuditState(1).setEvaluate(timeType.getNeedEvaluate()==1?evaluate:null),
                                     new QueryWrapper<Report>().in("id", ids));
                             //项目审核的情况下,需要判断是否该员工当天所有项目是否都是项目经理审核通过了
                             List<Report> sameUserSameDayOtherReports = reportMapper.selectList(new QueryWrapper<Report>()
@@ -1298,6 +1313,9 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                             if (pendingNum == 0) {
                                 //没有其他待审核的项目了,流程往下走
                                 Report upR = new Report();
+                                if(timeType.getNeedEvaluate()==1){
+                                    upR.setEvaluate(evaluate);
+                                }
                                 for (int m=0;m<settings.size(); m++) {
                                     if (settings.get(m).getIsDeptAudit()== 0) {//找到项目审核的那个节点
                                         AuditWorkflowTimeSetting nextNode = settings.get(m + 1);
@@ -1771,10 +1789,11 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
     }
 
     @Override
-    public HttpRespMsg batchApproveReport(String reportIds, Integer isDepartment, HttpServletRequest request) {
+    public HttpRespMsg batchApproveReport(String reportIds, Integer isDepartment, HttpServletRequest request,String evaluate) {
         String token = request.getHeader("Token");
         User user = userMapper.selectById(token);
         Company company = companyMapper.selectById(user.getCompanyId());
+        TimeType timeType = timeTypeMapper.selectById(company.getId());
         HttpRespMsg httpRespMsg = new HttpRespMsg();
         final List<Integer> ids = ListUtil.convertIntegerIdsArrayToList(reportIds);
         if (company.getPackageEngineering() == 1) {
@@ -1790,6 +1809,9 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                     if (report.getDepartmentAuditState() == 0) {
                         report = new Report();
                         report.setDepartmentAuditState(1);
+                        if(timeType.getNeedEvaluate()==1){
+                            report.setEvaluate(evaluate);
+                        }
                         reportMapper.update(report, new QueryWrapper<Report>().in("id", ids));
                     }
                 }
@@ -1814,6 +1836,9 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                         if (count == 0) {
                             Report report = new Report();
                             report.setDepartmentAuditState(0);
+                            if(timeType.getNeedEvaluate()==1){
+                                report.setEvaluate(evaluate);
+                            }
                             reportMapper.update(report, new QueryWrapper<Report>().in("id", ids));
                         }
                     }
@@ -1823,6 +1848,9 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                     if (report.getDepartmentAuditState() == 0) {
                         report = new Report();
                         report.setDepartmentAuditState(1);
+                        if(timeType.getNeedEvaluate()==1){
+                            report.setEvaluate(evaluate);
+                        }
                         reportMapper.update(report, new QueryWrapper<Report>().in("id", ids));
                     } else {
                         //直接进行项目经理审核
@@ -1835,10 +1863,11 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
             }
 
         } else {
-            TimeType timeType = timeTypeMapper.selectById(company.getId());
             LocalDateTime now = LocalDateTime.now();
-
             Report oneReport = reportMapper.selectById(ids.get(0));
+            if(timeType.getNeedEvaluate()==1){
+                oneReport.setEvaluate(evaluate);
+            }
             int oldState = oneReport.getState();
             List<User> allUsers = null;
             List<Report> allReports = null;
@@ -1856,6 +1885,9 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                     return httpRespMsg;
                 }
                 for (Report r : reportList) {
+                    if(timeType.getNeedEvaluate()==1){
+                        r.setEvaluate(evaluate);
+                    }
                     if (r.getGroupAuditState() == 0) {
                         r.setGroupAuditState(1);
                         r.setProjectAuditTime(LocalDateTime.now());
@@ -1892,6 +1924,9 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                         User auditTargetUser = allUsers.stream().filter(a->a.getId().equals(creatorId)).findFirst().get();
                         List<AuditWorkflowTimeSetting> deptSettings = settings.stream().filter(s->s.getDeptId().equals(auditTargetUser.getDepartmentId())).collect(Collectors.toList());
                         Report curReport = new Report().setId(rid);
+                        if(timeType.getNeedEvaluate()==1){
+                            curReport.setEvaluate(evaluate);
+                        }
                         if (deptSettings.size() == 0) {
                             //直接进行项目经理审核
                             curReport.setState(1).setProjectAuditTime(now);

+ 4 - 6
src/main/resources/mapper/ExpenseTypeMapper.xml

@@ -1,18 +1,16 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.management.platform.mapper.ExpenseTypeMapper">
+<mapper namespace="com.management.platform.mapper.CompanyReportMapper">
 
     <!-- 通用查询映射结果 -->
-    <resultMap id="BaseResultMap" type="com.management.platform.entity.ExpenseType">
-        <id column="id" property="id" />
-        <result column="main_type" property="mainType" />
-        <result column="type_name" property="typeName" />
+    <resultMap id="BaseResultMap" type="com.management.platform.entity.CompanyReport">
         <result column="company_id" property="companyId" />
+        <result column="report_form_id" property="reportFormId" />
     </resultMap>
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        id, main_type, type_name, company_id
+        company_id, report_form_id
     </sql>
 
 </mapper>

文件差異過大導致無法顯示
+ 27 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/ProjectMapper.xml


+ 16 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/ReportFormMapper.xml

@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.management.platform.mapper.ReportFormMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.management.platform.entity.ReportForm">
+        <id column="id" property="id" />
+        <result column="report_form_name" property="reportFormName" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, report_form_name
+    </sql>
+
+</mapper>

文件差異過大導致無法顯示
+ 7 - 6
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/ReportMapper.xml


+ 2 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/SysFunctionMapper.xml

@@ -23,6 +23,7 @@
         <result column="sync_corpwx_time" property="syncCorpwxTime" />
         <result column="finance_audit" property="financeAudit" />
         <result column="remarks" property="remarks" />
+        <result column="report_form_id" property="reportFormId" />
     </resultMap>
     <resultMap id="BaseResultMap1" type="com.management.platform.entity.vo.SysRichFunction">
         <id column="id" property="id" />
@@ -35,7 +36,7 @@
     </resultMap>
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        id, name, icon, code, module_id, seq, use_state, package_time, package_project, package_oa, package_expense, package_customer, package_engineering, package_contract, package_etimecard, package_finance, sync_corpwx_time, finance_audit, remarks
+        id, name, icon, code, module_id, seq, use_state, package_time, package_project, package_oa, package_expense, package_customer, package_engineering, package_contract, package_etimecard, package_finance, sync_corpwx_time, finance_audit, remarks, report_form_id
     </sql>
     <select id="getRoleFunctions" resultMap="BaseResultMap1" >
         select sys_function.id, sys_function.name, sys_function.icon, sys_function.code, sys_function.module_id, sys_function.seq, sys_module.name as module_name

+ 8 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/TaskMapper.xml

@@ -199,7 +199,15 @@
     <select id="getTaskWithProjectName" resultMap="RichResultMap">
         SELECT task.*, project.`project_name`, stages.stages_name FROM task LEFT JOIN project ON project.id = task.`project_id`
         left join stages on stages.id = task.stages_id
+        <if test="companyId==428">
+            left join project_separate ps on ps.id=task.project_id
+        </if>
         ${ew.customSqlSegment}
+        <if test="companyId==428">
+            <if test="groupName!=null and groupName!=''">
+                and ps.project_category_sub=#{groupName}
+            </if>
+        </if>
         ORDER BY task.indate desc
         <if test="pageStart != null and pageSize != null">
             limit #{pageStart}, #{pageSize}

文件差異過大導致無法顯示
+ 4 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/TimeTypeMapper.xml


+ 73 - 0
fhKeeper/formulahousekeeper/ops-platform/src/main/java/com/management/platform/controller/CompanyReportController.java

@@ -0,0 +1,73 @@
+package com.management.platform.controller;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.management.platform.entity.CompanyReport;
+import com.management.platform.entity.ReportForm;
+import com.management.platform.service.CompanyReportService;
+import com.management.platform.service.ReportFormService;
+import com.management.platform.util.HttpRespMsg;
+import org.springframework.util.StringUtils;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author Seyason
+ * @since 2022-08-03
+ */
+@RestController
+@RequestMapping("/company-report")
+public class CompanyReportController {
+    @Resource
+    private CompanyReportService companyReportService;
+    @Resource
+    private ReportFormService reportFormService;
+
+
+    @RequestMapping("/list")
+    public HttpRespMsg list(Integer companyId){
+        HttpRespMsg httpRespMsg=new HttpRespMsg();
+        List<CompanyReport> companyReportList = companyReportService.list(new QueryWrapper<CompanyReport>().eq("company_id", companyId));
+        List<ReportForm> reportFormList = reportFormService.list();
+        for (ReportForm reportForm : reportFormList) {
+            boolean b = companyReportList.stream().anyMatch(cr -> cr.getReportFormId().equals(reportForm.getId()));
+            if(b){
+                reportForm.setOwned(1);
+            }
+        }
+        httpRespMsg.data=reportFormList;
+        return httpRespMsg;
+    }
+
+    @RequestMapping("/update")
+    public HttpRespMsg update(Integer companyId,String formIds){
+        HttpRespMsg httpRespMsg=new HttpRespMsg();
+        companyReportService.remove(new QueryWrapper<CompanyReport>().eq("company_id", companyId));
+        List<CompanyReport> updateList=new ArrayList<>();
+        if(formIds!=null&&!StringUtils.isEmpty(formIds)){
+            String[] split = formIds.split(",");
+            List<String> list = Arrays.asList(split);
+            for (String s : list) {
+                CompanyReport companyReport=new CompanyReport();
+                companyReport.setCompanyId(companyId);
+                companyReport.setReportFormId(Integer.parseInt(s));
+                updateList.add(companyReport);
+            }
+            if(!companyReportService.saveBatch(updateList)){
+                httpRespMsg.setError("更新失败");
+            }
+        }
+        return httpRespMsg;
+    }
+
+}
+

+ 44 - 0
fhKeeper/formulahousekeeper/ops-platform/src/main/java/com/management/platform/entity/CompanyReport.java

@@ -0,0 +1,44 @@
+package com.management.platform.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Seyason
+ * @since 2022-08-03
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class CompanyReport extends Model<CompanyReport> {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 公司id
+     */
+    @TableField("company_id")
+    private Integer companyId;
+
+    /**
+     * 报表id
+     */
+    @TableField("report_form_id")
+    private Integer reportFormId;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return null;
+    }
+
+}

+ 11 - 19
fhKeeper/formulahousekeeper/user/src/main/java/com/hssx/user/entity/UserPermission.java

@@ -1,9 +1,8 @@
-package com.hssx.user.entity;
+package com.management.platform.entity;
 
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -13,37 +12,30 @@ import java.io.Serializable;
 
 /**
  * <p>
- *
+ * 
  * </p>
  *
- * @author Reiskuchen
- * @since 2019-11-04
+ * @author Seyason
+ * @since 2022-08-03
  */
 @Data
 @EqualsAndHashCode(callSuper = false)
 @Accessors(chain = true)
-@TableName("user_permission")
-public class UserPermission extends Model<UserPermission> {
+public class ReportForm extends Model<ReportForm> {
 
-    private static final long serialVersionUID = 1L;
+    private static final long serialVersionUID=1L;
 
-    /**
-     * 角色权限关联表主键
-     */
     @TableId(value = "id", type = IdType.AUTO)
     private Integer id;
 
     /**
-     * 用户id
+     * 报表名称
      */
-    @TableField("user_id")
-    private Integer userId;
+    @TableField("report_form_name")
+    private String reportFormName;
 
-    /**
-     * 权限id
-     */
-    @TableField("permission_id")
-    private Integer permissionId;
+    @TableField(exist = false)
+    private Integer owned;
 
 
     @Override

+ 16 - 0
fhKeeper/formulahousekeeper/ops-platform/src/main/java/com/management/platform/mapper/CompanyReportMapper.java

@@ -0,0 +1,16 @@
+package com.management.platform.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.management.platform.entity.CompanyReport;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author Seyason
+ * @since 2022-08-03
+ */
+public interface CompanyReportMapper extends BaseMapper<CompanyReport> {
+
+}

+ 3 - 3
src/main/java/com/management/platform/mapper/ExpenseTypeMapper.java

@@ -1,7 +1,7 @@
 package com.management.platform.mapper;
 
-import com.management.platform.entity.ExpenseType;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.management.platform.entity.ReportForm;
 
 /**
  * <p>
@@ -9,8 +9,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  * </p>
  *
  * @author Seyason
- * @since 2022-07-28
+ * @since 2022-08-03
  */
-public interface ExpenseTypeMapper extends BaseMapper<ExpenseType> {
+public interface ReportFormMapper extends BaseMapper<ReportForm> {
 
 }

+ 17 - 0
fhKeeper/formulahousekeeper/ops-platform/src/main/java/com/management/platform/service/CompanyReportService.java

@@ -0,0 +1,17 @@
+package com.management.platform.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.management.platform.entity.CompanyReport;
+
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author Seyason
+ * @since 2022-08-03
+ */
+public interface CompanyReportService extends IService<CompanyReport> {
+
+}

+ 16 - 0
fhKeeper/formulahousekeeper/ops-platform/src/main/java/com/management/platform/service/ReportFormService.java

@@ -0,0 +1,16 @@
+package com.management.platform.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.management.platform.entity.ReportForm;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author Seyason
+ * @since 2022-08-03
+ */
+public interface ReportFormService extends IService<ReportForm> {
+
+}

+ 20 - 0
fhKeeper/formulahousekeeper/ops-platform/src/main/java/com/management/platform/service/impl/CompanyReportServiceImpl.java

@@ -0,0 +1,20 @@
+package com.management.platform.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.management.platform.entity.CompanyReport;
+import com.management.platform.mapper.CompanyReportMapper;
+import com.management.platform.service.CompanyReportService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author Seyason
+ * @since 2022-08-03
+ */
+@Service
+public class CompanyReportServiceImpl extends ServiceImpl<CompanyReportMapper, CompanyReport> implements CompanyReportService {
+
+}

+ 20 - 0
fhKeeper/formulahousekeeper/ops-platform/src/main/java/com/management/platform/service/impl/ReportFormServiceImpl.java

@@ -0,0 +1,20 @@
+package com.management.platform.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.management.platform.entity.ReportForm;
+import com.management.platform.mapper.ReportFormMapper;
+import com.management.platform.service.ReportFormService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author Seyason
+ * @since 2022-08-03
+ */
+@Service
+public class ReportFormServiceImpl extends ServiceImpl<ReportFormMapper, ReportForm> implements ReportFormService {
+
+}

+ 16 - 0
fhKeeper/formulahousekeeper/ops-platform/src/main/resources/mapper/CompanyReportMapper.xml

@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.management.platform.mapper.CompanyReportMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.management.platform.entity.CompanyReport">
+        <result column="company_id" property="companyId" />
+        <result column="report_form_id" property="reportFormId" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        company_id, report_form_id
+    </sql>
+
+</mapper>

+ 16 - 0
fhKeeper/formulahousekeeper/ops-platform/src/main/resources/mapper/ReportFormMapper.xml

@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.management.platform.mapper.ReportFormMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.management.platform.entity.ReportForm">
+        <id column="id" property="id" />
+        <result column="report_form_name" property="reportFormName" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, report_form_name
+    </sql>
+
+</mapper>