Browse Source

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

ggooalice 2 years ago
parent
commit
be07177103
19 changed files with 349 additions and 64 deletions
  1. 5 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ProjectController.java
  2. 4 1
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/OperationRecord.java
  3. 25 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/Project.java
  4. 7 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/ProjectSeparate.java
  5. 2 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/ProjectService.java
  6. 67 14
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectServiceImpl.java
  7. 4 1
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/task/TimingTask.java
  8. 2 1
      fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/OperationRecordMapper.xml
  9. 73 0
      fhKeeper/formulahousekeeper/ops-platform/src/main/java/com/management/platform/controller/OperationRecordController.java
  10. 24 36
      fhKeeper/formulahousekeeper/user/src/main/java/com/hssx/user/entity/SysRole.java
  11. 27 5
      fhKeeper/formulahousekeeper/ops-platform/src/main/java/com/management/platform/entity/TimeType.java
  12. 17 0
      fhKeeper/formulahousekeeper/ops-platform/src/main/java/com/management/platform/mapper/OperationRecordMapper.java
  13. 16 0
      fhKeeper/formulahousekeeper/ops-platform/src/main/java/com/management/platform/service/OperationRecordService.java
  14. 24 3
      fhKeeper/formulahousekeeper/ops-platform/src/main/java/com/management/platform/service/impl/CompanyServiceImpl.java
  15. 20 0
      fhKeeper/formulahousekeeper/ops-platform/src/main/java/com/management/platform/service/impl/OperationRecordServiceImpl.java
  16. 21 0
      fhKeeper/formulahousekeeper/ops-platform/src/main/resources/mapper/OperationRecordMapper.xml
  17. 4 1
      fhKeeper/formulahousekeeper/ops-platform/src/main/resources/mapper/TimeTypeMapper.xml
  18. 3 2
      fhKeeper/formulahousekeeper/timesheet/src/views/expense/expense.vue
  19. 4 0
      fhKeeper/formulahousekeeper/timesheet/src/views/project/projectInside.vue

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

@@ -933,5 +933,10 @@ public class ProjectController {
     public HttpRespMsg importPersonnelWithGroup(MultipartFile file,HttpServletRequest request){
         return projectService.importPersonnelWithGroup(file,request);
     }
+
+    @RequestMapping("/batchExchangeIncharger")
+    public HttpRespMsg batchExchangeIncharger(String projectIds,String inchargerId,HttpServletRequest request){
+        return projectService.batchExchangeIncharger(projectIds,inchargerId,request);
+    }
 }
 

+ 4 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/OperationRecord.java

@@ -17,7 +17,7 @@ import java.time.LocalDateTime;
  * </p>
  *
  * @author Seyason
- * @since 2022-08-18
+ * @since 2022-08-19
  */
 @Data
 @EqualsAndHashCode(callSuper = false)
@@ -35,6 +35,9 @@ public class OperationRecord extends Model<OperationRecord> {
     @TableField("module_name")
     private String moduleName;
 
+    @TableField("project_name")
+    private String projectName;
+
     @TableField("operator_name")
     private String operatorName;
 

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

@@ -60,6 +60,7 @@ public class Project extends Model<Project> {
     /**
      * 负责人id
      */
+    @PropertyMsg("负责人")
     @TableField("incharger_id")
     private String inchargerId;
 
@@ -85,6 +86,7 @@ public class Project extends Model<Project> {
     /**
      * 项目进度
      */
+    @PropertyMsg("项目进度")
     @TableField("progress")
     private Integer progress;
 
@@ -98,6 +100,7 @@ public class Project extends Model<Project> {
     /**
      * 0-全部,1-进行中,2-已完成,3-已撤销 4-暂停
      */
+    @PropertyMsg("项目状态")
     @TableField("status")
     private Integer status;
 
@@ -105,6 +108,7 @@ public class Project extends Model<Project> {
     /**
      * 实际完成日期
      */
+    @PropertyMsg("实际完成日期")
     @TableField("finish_date")
     @JsonFormat(pattern = "yyyy-MM-dd")
     @DateTimeFormat(pattern = "yyyy-MM-dd")
@@ -134,66 +138,77 @@ public class Project extends Model<Project> {
     /**
      * 项目金额:单位元
      */
+    @PropertyMsg("项目金额")
     @TableField("contract_amount")
     private Double contractAmount;
 
     /**
      * 基线总成本:单位元
      */
+    @PropertyMsg("基线总成本")
     @TableField("budget")
     private Double budget;
 
     /**
      * 人员成本:单位元
      */
+    @PropertyMsg("人员成本")
     @TableField("base_man")
     private Integer baseMan;
 
     /**
      * 外包费用
      */
+    @PropertyMsg("外包费用")
     @TableField("base_outsourcing")
     private Integer baseOutsourcing;
 
     /**
      * 风险预留资金1
      */
+    @PropertyMsg("风险预留资金")
     @TableField("base_risk1")
     private Integer baseRisk1;
 
     /**
      * 风险预留资金1
      */
+    @PropertyMsg("风险预留资金")
     @TableField("base_risk2")
     private Integer baseRisk2;
 
     /**
      * 基线费用
      */
+    @PropertyMsg("基线费用")
     @TableField("base_fee")
     private Integer baseFee;
 
     /**
      * 一般费用
      */
+    @PropertyMsg("一般费用")
     @TableField("fee_normal")
     private Double feeNormal;
 
     /**
      * 差旅费
      */
+    @PropertyMsg("差旅费")
     @TableField("fee_travel")
     private Double feeTravel;
 
     /**
      * 外包费用
      */
+    @PropertyMsg("外包费用")
     @TableField("fee_outsourcing")
     private Double feeOutsourcing;
 
     /**
      * 人工成本
      */
+    @PropertyMsg("人工成本")
     @TableField("fee_man")
     private Double feeMan;
 
@@ -212,12 +227,14 @@ public class Project extends Model<Project> {
     /**
      * 客户名称
      */
+    @PropertyMsg("客户")
     @TableField("customer_name")
     private String customerName;
 
     /**
      * 是否是公共项目 0-否  1-是
      */
+    @PropertyMsg("是否为公共项目")
     @TableField("is_public")
     private Integer isPublic;
 
@@ -231,6 +248,7 @@ public class Project extends Model<Project> {
     /**
      * 关联的自定义维度名称
      */
+    @PropertyMsg("自定义维度")
     @TableField("associate_degree_names")
     private String associateDegreeNames;
     /**
@@ -253,6 +271,7 @@ public class Project extends Model<Project> {
     /**
      * 分类名称
      */
+    @PropertyMsg("分类")
     @TableField("category_name")
     private String categoryName;
 
@@ -260,12 +279,14 @@ public class Project extends Model<Project> {
     /**
      * 项目描述
      */
+    @PropertyMsg("项目描述")
     @TableField("project_desc")
     private String projectDesc;
 
     /**
      * 主项目id
      */
+    @PropertyMsg("主项目")
     @TableField("project_main_id")
     private Integer projectMainId;
 
@@ -279,6 +300,7 @@ public class Project extends Model<Project> {
     /**
      * 供应商名称
      */
+    @PropertyMsg("供应商")
     @TableField("provider_names")
     private String providerNames;
 
@@ -291,18 +313,21 @@ public class Project extends Model<Project> {
     /**
      * 当前任务阶段名称
      */
+    @PropertyMsg("当前阶段")
     @TableField("current_stage_name")
     private String currentStageName;
 
     /**
      * 项目产值
      */
+    @PropertyMsg("项目产值")
     @TableField("output_value")
     private Double outputValue;
 
     /**
      * 部门Id
      */
+    @PropertyMsg("所属部门")
     @TableField("dept_id")
     private Integer deptId;
 

+ 7 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/ProjectSeparate.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.management.platform.config.PropertyMsg;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
@@ -36,12 +37,14 @@ public class ProjectSeparate extends Model<ProjectSeparate> {
     /**
      * 合同编号
      */
+    @PropertyMsg("合同编号")
     @TableField("contract_code")
     private String contractCode;
 
     /**
      * 质保开始时间
      */
+    @PropertyMsg("质保开始日期")
     @TableField("warranty_start_date")
     @JsonFormat(pattern = "yyyy-MM-dd")
     @DateTimeFormat(pattern = "yyyy-MM-dd")
@@ -51,6 +54,7 @@ public class ProjectSeparate extends Model<ProjectSeparate> {
      * 质保截止时间
 
      */
+    @PropertyMsg("质保截止日期")
     @TableField("warranty_end_date")
     @JsonFormat(pattern = "yyyy-MM-dd")
     @DateTimeFormat(pattern = "yyyy-MM-dd")
@@ -59,18 +63,21 @@ public class ProjectSeparate extends Model<ProjectSeparate> {
     /**
      * 自主项目类别
      */
+    @PropertyMsg("自主项目类别")
     @TableField("project_category_sub")
     private String projectCategorySub;
 
     /**
      * 所属大区
      */
+    @PropertyMsg("所属大区")
     @TableField("region")
     private String region;
 
     /**
      * 所属BU
      */
+    @PropertyMsg("所属BU")
     @TableField("bu")
     private String bu;
 

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

@@ -181,4 +181,6 @@ public interface ProjectService extends IService<Project> {
     HttpRespMsg exportTimeCostByUserCustom(String startDate, String endDate, String subCustomName, Integer customId, HttpServletRequest request, String fieldName);
 
     HttpRespMsg importPersonnelWithGroup(MultipartFile file, HttpServletRequest request);
+
+    HttpRespMsg batchExchangeIncharger(String projectIds, String inchargerId, HttpServletRequest request);
 }

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

@@ -518,6 +518,14 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                         projectSeparate.setId(id);
                         projectSeparateMapper.insert(projectSeparate);
                     }
+                    OperationRecord operationRecord=new OperationRecord();
+                    operationRecord.setProjectName(project.getProjectName());
+                    operationRecord.setOperationTime(LocalDateTime.now());
+                    operationRecord.setOperatorName(user.getName());
+                    operationRecord.setModuleName("项目管理");
+                    operationRecord.setContent("创建了项目");
+                    operationRecord.setCompanyId(user.getCompanyId());
+                    operationRecordService.save(operationRecord);
                 }
             }
         } else {
@@ -572,6 +580,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                         p.setCategoryName(projectCategory.getName());
                     }
                 }
+                ProjectSeparate oldSeparate = projectSeparateMapper.selectById(id);
                 if(companyId==936){
                     //编辑之前的项目是否存在子表数据
                     ProjectSeparate separate = projectSeparateMapper.selectById(id);
@@ -670,20 +679,29 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                     fp.setProjectCode(p.getProjectCode());
                     financeProjectsMapper.update(fp, new QueryWrapper<FinanceProjects>().eq("project_id", p.getId()));
                 }
-            }
-            Project newProject = projectMapper.selectById(id);
-            String path = Project.class.getClassLoader().getResource("/").getPath();
-            BeanChangeUtil<Project> beanChangeUtil=new BeanChangeUtil();
-            String content = beanChangeUtil.contrastObj(oldProject, newProject);
-            OperationRecord operationRecord =new OperationRecord();
-            operationRecord.setOperatorName(user.getName());
-            operationRecord.setOperationTime(LocalDateTime.now());
-            operationRecord.setCompanyId(companyId);
-            operationRecord.setContent(content);
-            operationRecord.setModuleName("项目管理");
-            if(!StringUtils.isEmpty(content.trim())){
-                System.out.println(operationRecord);
-                operationRecordService.save(operationRecord);
+                Project newProject = projectMapper.selectById(id);
+                String path = Project.class.getClassLoader().getResource("/").getPath();
+                BeanChangeUtil<Project> beanChangeUtil=new BeanChangeUtil();
+                String content = beanChangeUtil.contrastObj(oldProject, newProject);
+                OperationRecord operationRecord =new OperationRecord();
+                operationRecord.setOperatorName(user.getName());
+                operationRecord.setOperationTime(LocalDateTime.now());
+                operationRecord.setCompanyId(companyId);
+                if(companyId==936){
+                    projectSeparate.setId(id);
+                    if(oldSeparate!=null){
+                        if(!onlyChangeParticipate){
+                            String s = beanChangeUtil.contrastObj(oldSeparate, projectSeparate);
+                            content+="\n"+s;
+                        }
+                    }
+                }
+                operationRecord.setContent(content);
+                operationRecord.setModuleName("项目管理");
+                operationRecord.setProjectName(newProject.getProjectName());
+                if(!StringUtils.isEmpty(content.trim())){
+                    operationRecordService.save(operationRecord);
+                }
             }
         }
         if (httpRespMsg.code.equals("ok")) {
@@ -2854,6 +2872,13 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                     String collect = existCodeList.stream().collect(Collectors.joining(","));
                     msg.data += "自动跳过"+existCodeList.size()+"条已存在项目编码:"+collect;
                 }
+                OperationRecord operationRecord=new OperationRecord();
+                operationRecord.setCompanyId(user.getCompanyId());
+                operationRecord.setModuleName("项目管理");
+                operationRecord.setOperatorName(user.getName());
+                operationRecord.setOperationTime(LocalDateTime.now());
+                operationRecord.setContent("导入了"+importCount+"条项目数据");
+                operationRecordService.save(operationRecord);
             }else if(fileName.endsWith(".xls")){
                 //然后解析表格
                 HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(file));
@@ -3319,6 +3344,13 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                     String collect = existCodeList.stream().collect(Collectors.joining(","));
                     msg.data += "自动跳过"+existCodeList.size()+"条已存在项目编码:"+collect;
                 }
+                OperationRecord operationRecord=new OperationRecord();
+                operationRecord.setCompanyId(user.getCompanyId());
+                operationRecord.setModuleName("项目管理");
+                operationRecord.setOperatorName(user.getName());
+                operationRecord.setOperationTime(LocalDateTime.now());
+                operationRecord.setContent("导入了"+importCount+"条项目数据");
+                operationRecordService.save(operationRecord);
             }
         } catch (IOException e) {
             e.printStackTrace();
@@ -5595,6 +5627,27 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
             return msg;
     }
 
+    @Override
+    public HttpRespMsg batchExchangeIncharger(String projectIds, String inchargerId, HttpServletRequest request) {
+        HttpRespMsg httpRespMsg=new HttpRespMsg();
+        User user = userMapper.selectById(request.getHeader("token"));
+        String[] split = projectIds.split(",");
+        List<String> stringlist = Arrays.asList(split);
+        List<Integer> list=new ArrayList<>();
+        for (String s : stringlist) {
+            list.add(Integer.valueOf(s));
+        }
+        List<Project> projectList = projectMapper.selectList(new QueryWrapper<Project>().in("id", list));
+        for (Project project : projectList) {
+            project.setInchargerId(inchargerId);
+            if(projectMapper.updateById(project)<=0){
+                httpRespMsg.setError("操作失败");
+                return httpRespMsg;
+            }
+        }
+        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());

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

@@ -266,6 +266,7 @@ public class TimingTask {
     //每半个小时推送一次token到每个公司
     @Scheduled(fixedRate = 1800 * 1000)
     public void  pushToken(){
+        if(isDev) return;
         int passwordLength = 30;
         LocalDateTime localDateTime=LocalDateTime.now();
         List<ThirdPartyInterface> thirdPartyInterfaceList = thirdPartyInterfaceMapper.selectList(null);
@@ -286,7 +287,9 @@ public class TimingTask {
                 thirdPartyInterface.setExpireTime(localDateTime.plusDays(1));
             }
         }
-        thirdPartyInterfaceService.updateBatchById(thirdPartyInterfaceList);
+        if(thirdPartyInterfaceList.size()>0&&!thirdPartyInterfaceList.isEmpty()){
+            thirdPartyInterfaceService.updateBatchById(thirdPartyInterfaceList);
+        }
     }
 
     public static void main(String[] args) {

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

@@ -7,6 +7,7 @@
         <id column="id" property="id" />
         <result column="company_id" property="companyId" />
         <result column="module_name" property="moduleName" />
+        <result column="project_name" property="projectName" />
         <result column="operator_name" property="operatorName" />
         <result column="operation_time" property="operationTime" />
         <result column="content" property="content" />
@@ -14,7 +15,7 @@
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        id, company_id, module_name, operator_name, operation_time, content
+        id, company_id, module_name, project_name, operator_name, operation_time, content
     </sql>
 
 </mapper>

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

@@ -0,0 +1,73 @@
+package com.management.platform.controller;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.management.platform.entity.Company;
+import com.management.platform.entity.OperationRecord;
+import com.management.platform.mapper.CompanyMapper;
+import com.management.platform.mapper.OperationRecordMapper;
+import com.management.platform.service.OperationRecordService;
+import com.management.platform.util.HttpRespMsg;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.LocalTime;
+import java.time.format.DateTimeFormatter;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Optional;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author Seyason
+ * @since 2022-08-18
+ */
+@RestController
+@RequestMapping("/operation-record")
+public class OperationRecordController {
+    @Resource
+    private OperationRecordService operationRecordService;
+    @Resource
+    private OperationRecordMapper operationRecordMapper;
+    @Resource
+    private CompanyMapper companyMapper;
+
+    @RequestMapping("/getList")
+    public HttpRespMsg getList(Integer companyId,String startDate,String endDate,Integer pageIndex ,Integer pageSize){
+        HttpRespMsg httpRespMsg=new HttpRespMsg();
+        List<Company> companyList = companyMapper.selectList(null);
+        QueryWrapper<OperationRecord> queryWrapper=new QueryWrapper<>();
+        if(companyId!=null){
+            queryWrapper.eq("company_id",companyId);
+        }
+        if(startDate!=null && endDate!=null){
+            LocalDateTime start = LocalDate.parse(startDate, DateTimeFormatter.ofPattern("yyyy-MM-dd")).atTime(LocalTime.now());
+            LocalDateTime end = LocalDate.parse(endDate, DateTimeFormatter.ofPattern("yyyy-MM-dd")).atTime(LocalTime.now());
+            queryWrapper.ge("operation_time",start);
+            queryWrapper.le("operation_time",end);
+        }
+        IPage<OperationRecord> operationRecordIPage = operationRecordMapper.selectPage(new Page<>(pageIndex, pageSize), queryWrapper);
+        List<OperationRecord> list = operationRecordIPage.getRecords();
+        for (OperationRecord operationRecord : list) {
+            Optional<Company> first = companyList.stream().filter(cl -> cl.getId().equals(operationRecord.getCompanyId())).findFirst();
+            if(first.isPresent()){
+                operationRecord.setCompanyName(first.get().getCompanyName());
+            }
+        }
+        long total=operationRecordIPage.getTotal();
+        HashMap map=new HashMap();
+        map.put("record",list);
+        map.put("total",total);
+        httpRespMsg.data=map;
+        return httpRespMsg;
+    }
+}
+

+ 24 - 36
fhKeeper/formulahousekeeper/user/src/main/java/com/hssx/user/entity/SysRole.java

@@ -1,66 +1,54 @@
-package com.hssx.user.entity;
+package com.management.platform.entity;
 
-import com.baomidou.mybatisplus.annotation.TableName;
 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.time.LocalDateTime;
+
 /**
  * <p>
- * 角色表(职务)
+ * 
  * </p>
  *
- * @author QuYueTing
- * @since 2022-03-31
+ * @author Seyason
+ * @since 2022-08-19
  */
 @Data
 @EqualsAndHashCode(callSuper = false)
 @Accessors(chain = true)
-@TableName("sys_role")
-public class SysRole extends Model<SysRole> {
+public class OperationRecord extends Model<OperationRecord> {
 
     private static final long serialVersionUID=1L;
 
-    /**
-     * 主键ID
-     */
     @TableId(value = "id", type = IdType.AUTO)
     private Integer id;
 
-    /**
-     * 公司id
-     */
     @TableField("company_id")
     private Integer companyId;
 
-    /**
-     * 角色名称
-     */
-    @TableField("rolename")
-    private String rolename;
+    @TableField("module_name")
+    private String moduleName;
+
+    @TableField("project_name")
+    private String projectName;
+
+    @TableField("operator_name")
+    private String operatorName;
 
-    /**
-     * 角色描述
-     */
-    @TableField("role_describe")
-    private String roleDescribe;
+    @TableField("operation_time")
+    private LocalDateTime operationTime;
 
-    /**
-     * 父级角色
-     */
-    @TableField("parent_role")
-    private Integer parentRole;
+    @TableField("content")
+    private String content;
 
-    /**
-     * 是否是新增员工时的默认的角色
-     */
-    @TableField("is_default")
-    private Integer isDefault;
+    @TableField(exist = false)
+    private String companyName;
 
 
     @Override

+ 27 - 5
fhKeeper/formulahousekeeper/ops-platform/src/main/java/com/management/platform/entity/TimeType.java

@@ -1,21 +1,23 @@
 package com.management.platform.entity;
 
-import java.math.BigDecimal;
-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.math.BigDecimal;
+import java.util.List;
+
 /**
  * <p>
  * 
  * </p>
  *
  * @author Seyason
- * @since 2022-08-08
+ * @since 2022-08-17
  */
 @Data
 @EqualsAndHashCode(callSuper = false)
@@ -324,6 +326,26 @@ public class TimeType extends Model<TimeType> {
     @TableField("chose_from_album")
     private Integer choseFromAlbum;
 
+    /**
+     * 项目相关部门 0-未开启 1-开启
+     */
+    @TableField("project_with_dept")
+    private Integer projectWithDept;
+
+    /**
+     * 财务核算成本导入是否含工号:0-不含,1-含
+     */
+    @TableField("finance_jobnum_enabled")
+    private Integer financeJobnumEnabled;
+
+    /**
+     * 日报审核通过消息推送 0-未开启 1-开启
+     */
+    @TableField("report_approve_msgpush")
+    private Integer reportApproveMsgpush;
+
+    @TableField(exist = false)
+    private List<User> userList;
 
     @Override
     protected Serializable pkVal() {

+ 17 - 0
fhKeeper/formulahousekeeper/ops-platform/src/main/java/com/management/platform/mapper/OperationRecordMapper.java

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

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

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

+ 24 - 3
fhKeeper/formulahousekeeper/ops-platform/src/main/java/com/management/platform/service/impl/CompanyServiceImpl.java

@@ -1,14 +1,14 @@
 package com.management.platform.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.extension.api.R;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.management.platform.entity.*;
 import com.management.platform.mapper.*;
-import com.management.platform.service.*;
+import com.management.platform.service.CompanyService;
+import com.management.platform.service.ReportService;
+import com.management.platform.service.UserService;
 import com.management.platform.util.HttpRespMsg;
 import com.mysql.cj.util.StringUtils;
-import org.apache.commons.beanutils.BeanUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -377,6 +377,27 @@ public class CompanyServiceImpl extends ServiceImpl<CompanyMapper, Company> impl
                 str += "标志为CRO企业,";
             }
         }
+        if (timeType.getProjectWithDept() != null && old.getProjectWithDept().intValue() != timeType.getProjectWithDept().intValue()) {
+            if (timeType.getProjectWithDept() == 0) {
+                str += "关闭了项目所属部门功能,";
+            } else if (timeType.getProjectWithDept() == 1) {
+                str += "启动了项目所属部门功能,";
+            }
+        }
+        if (timeType.getFinanceJobnumEnabled() != null && old.getFinanceJobnumEnabled().intValue() != timeType.getFinanceJobnumEnabled().intValue()) {
+            if (timeType.getFinanceJobnumEnabled() == 0) {
+                str += "关闭了财务导入薪资支持工号功能,";
+            } else if (timeType.getFinanceJobnumEnabled() == 1) {
+                str += "开启了财务导入薪资支持工号功能,";
+            }
+        }
+        if (timeType.getReportApproveMsgpush() != null && old.getReportApproveMsgpush().intValue() != timeType.getReportApproveMsgpush().intValue()) {
+            if (timeType.getReportApproveMsgpush() == 0) {
+                str += "关闭了日报审核通过推送消息功能,";
+            } else if (timeType.getReportApproveMsgpush() == 1) {
+                str += "启动了日报审核通过推送消息功能,";
+            }
+        }
         saveLog(str);
         return new HttpRespMsg();
     }

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

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

+ 21 - 0
fhKeeper/formulahousekeeper/ops-platform/src/main/resources/mapper/OperationRecordMapper.xml

@@ -0,0 +1,21 @@
+<?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.OperationRecordMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.management.platform.entity.OperationRecord">
+        <id column="id" property="id" />
+        <result column="company_id" property="companyId" />
+        <result column="module_name" property="moduleName" />
+        <result column="project_name" property="projectName" />
+        <result column="operator_name" property="operatorName" />
+        <result column="operation_time" property="operationTime" />
+        <result column="content" property="content" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, company_id, module_name, project_name, operator_name, operation_time, content
+    </sql>
+
+</mapper>

File diff suppressed because it is too large
+ 4 - 1
fhKeeper/formulahousekeeper/ops-platform/src/main/resources/mapper/TimeTypeMapper.xml


+ 3 - 2
fhKeeper/formulahousekeeper/timesheet/src/views/expense/expense.vue

@@ -191,7 +191,7 @@
     </div>
   </div>
   <!-- 下面部分 -->
-  <div class="xiamian" ref="xiaomian" style="width: 85%;float:right;background: #fff;position: relative;">
+  <div class="xiamian" ref="xiaomian" :style="'width: '+ (xiamianWidth - 400) +'px;float:right;background: #fff;position: relative;'">
       <div v-if="displayTable">
         <div style="padding-left:10px;padding-right:10px;">
           <div>
@@ -268,7 +268,7 @@
                   <span style="font-size:12px;">{{scope.row.denyReason}}</span>
                 </template>
               </el-table-column>
-              <el-table-column label="操作" :width="isAuditList?220:160">
+              <el-table-column fixed="right" label="操作" :width="isAuditList?220:160">
                   <template slot-scope="scope" >
                       <div v-if="!isAuditList">
                       <el-button icon="el-icon-view"  circle size="mini"  @click.stop.native="downloadByA(scope.row)" ></el-button>
@@ -538,6 +538,7 @@ export default {
 
       fileList: [],
       muHeight: document.documentElement.clientHeight || document.body.clientHeight,
+      xiamianWidth: document.documentElement.clientWidth || document.body.clientWidth,
       imgs: [],
       addFormRules: {
         ownerId: [{ required: true, message: "请选择报销人", trigger: "blur" }],

+ 4 - 0
fhKeeper/formulahousekeeper/timesheet/src/views/project/projectInside.vue

@@ -116,6 +116,7 @@
                             <i class="el-icon-arrow-left" ref="box"></i>
                         </div>
                     </div>
+                    
                     <!-- 增加侧边栏的点击效果 -->
                     
                     <el-main style="background:#f7f7f7;padding:0px;">
@@ -1386,6 +1387,7 @@ import delete$ from 'dingtalk-jsapi/api/biz/cspace/delete';
                 if(this.addForm.taskType == 1){
                     this.timelabel = true
                     if(!this.addForm.executorListFront[0].executorId) {
+                        console.log(this.currentProject)
                         this.addForm.executorListFront[0].executorId = this.currentProject.inchargerId
                     }
                 }else{
@@ -2714,6 +2716,7 @@ import delete$ from 'dingtalk-jsapi/api/biz/cspace/delete';
                 path = path.substring(0,path.lastIndexOf('/'))+'/'+this.curProjectId;
                 this.$router.push(path);
                 this.getTaskGroups();
+                this.getDetail()
                 this.$refs.fileCenter.refreshPage();
                 this.$refs.projectInfo.refreshPage();
                 this.$refs.summary.refreshPage();
@@ -2987,6 +2990,7 @@ import delete$ from 'dingtalk-jsapi/api/biz/cspace/delete';
                 },
                 res => {
                     if (res.code == "ok") {
+                        console.log('触发更新试一下')
                         this.currentProject = res.data;
                         this.getjurisdictionIds(this.currentProject)
                         this.joinMembList = this.currentProject.participationList;