Browse Source

八爪鱼数据迁移report更新改成批量处理,效率更高

seyason 2 years ago
parent
commit
fa70435f26

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

@@ -0,0 +1,21 @@
+package com.management.platform.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author Seyason
+ * @since 2022-06-20
+ */
+@RestController
+@RequestMapping("/report")
+public class ReportController {
+
+}
+

+ 46 - 62
fhKeeper/formulahousekeeper/ops-platform/src/main/java/com/management/platform/entity/Report.java

@@ -1,22 +1,16 @@
 package com.management.platform.entity;
 
+import java.math.BigDecimal;
 import com.baomidou.mybatisplus.annotation.IdType;
-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.entity.vo.WorktimeItem;
+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 lombok.Data;
 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>
@@ -24,12 +18,13 @@ import java.util.List;
  * </p>
  *
  * @author Seyason
- * @since 2022-03-13
+ * @since 2022-06-20
  */
 @Data
 @EqualsAndHashCode(callSuper = false)
 @Accessors(chain = true)
 public class Report extends Model<Report> {
+
     private static final long serialVersionUID=1L;
 
     /**
@@ -54,8 +49,6 @@ public class Report extends Model<Report> {
      * 日期
      */
     @TableField("create_date")
-    @DateTimeFormat(pattern = "yyyy-MM-dd")
-    @JsonFormat(pattern = "yyyy-MM-dd")
     private LocalDate createDate;
 
     /**
@@ -65,13 +58,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;
@@ -136,54 +129,30 @@ public class Report extends Model<Report> {
     @TableField("progress")
     private Integer progress;
 
-
-    @TableField(exist = false)
-    private List<SubProject> subProjectList;
-    @TableField(exist = false)
-    private List<UserRecentTask> taskList;
-    @TableField(exist = false)
-    private List<ReportProfessionProgress> professionProgressList;
-    @TableField(exist = false)
-    private List<Stages> stages;
-
     /**
      * 部门审核状态: -1 专业未审核,0-部门未审核,1-已通过,2-未通过
      */
     @TableField("department_audit_state")
     private Integer departmentAuditState;
 
-
     /**
      * 阶段/岗位/工序
      */
     @TableField("stage")
     private String stage;
 
-
     /**
      * 图片的数组字符串
      */
     @TableField("pic_str")
     private String picStr;
 
-
-    @TableField(exist = false)
-    private String picAdd;
-
-    /**
-     * 传给客户端的图片数组
-     */
-    @TableField(exist = false)
-    private List<String> pics;
     /**
      * 是否是多个时间工作事项
      */
     @TableField("multi_worktime")
     private Integer multiWorktime;
 
-
-    @TableField(exist = false)
-    private List<WorktimeItem> worktimeList;
     /**
      * 驳回原因
      */
@@ -202,16 +171,12 @@ public class Report extends Model<Report> {
     @TableField("reject_userid")
     private String rejectUserid;
 
-
     /**
      * 选择的自定义维度
      */
     @TableField("degree_id")
     private Integer degreeId;
 
-
-    @TableField(exist = false)
-    private List<HashMap> degreeList;
     /**
      * 公司id
      */
@@ -230,13 +195,6 @@ public class Report extends Model<Report> {
     @TableField("audit_deptid")
     private Integer auditDeptid;
 
-
-    /**
-     * 工时日报所属部门id
-     */
-    @TableField("dept_id")
-    private Integer deptId;
-
     /**
      * 审核流程: 是否是部门审核
      */
@@ -254,24 +212,19 @@ public class Report extends Model<Report> {
      */
     @TableField("is_final_audit")
     private Integer isFinalAudit;
+
     /**
      * 审核流程:审核过程中,项目的审核状态; 0-待审核,1-审核通过
      */
     @TableField("project_audit_state")
     private Integer projectAuditState;
 
-
     /**
      * 任务分组id
      */
     @TableField("group_id")
     private Integer groupId;
 
-    @TableField(exist = false)
-    private String groupName;
-
-    @TableField(exist = false)
-    private List<TaskGroup> taskGroups;
     /**
      * 自定义的数值
      */
@@ -284,11 +237,42 @@ public class Report extends Model<Report> {
     @TableField("project_auditor_id")
     private String projectAuditorId;
 
-    @TableField(exist = false)
-    private List<ProjectAuditor> auditUserList;
+    /**
+     * 工时日报所属部门id
+     */
+    @TableField("dept_id")
+    private Integer deptId;
+
+    /**
+     * 加班时长
+     */
+    @TableField("overtime_hours")
+    private Double overtimeHours;
+
+    /**
+     * 加班薪资
+     */
+    @TableField("overtime_cost")
+    private BigDecimal overtimeCost;
+
+    /**
+     * 自定义文本信息内容
+     */
+    @TableField("custom_text")
+    private String customText;
+
+    /**
+     * 对应成本项的id
+     */
+    @TableField("basecost_id")
+    private Integer basecostId;
+
+    /**
+     * 项目日报审核时间
+     */
+    @TableField("project_audit_time")
+    private LocalDateTime projectAuditTime;
 
-    @TableField(exist = false)
-    private String projectAuditorName;
 
     @Override
     protected Serializable pkVal() {

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

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

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

@@ -1,6 +1,7 @@
 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.*;
@@ -8,6 +9,7 @@ import com.management.platform.service.*;
 import com.management.platform.util.HttpRespMsg;
 import com.mysql.cj.util.StringUtils;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
@@ -41,6 +43,8 @@ public class CompanyServiceImpl extends ServiceImpl<CompanyMapper, Company> impl
     @Resource
     ReportMapper reportMapper;
     @Resource
+    ReportService reportService;
+    @Resource
     CustomerInfoMapper customerInfoMapper;
     @Resource
     ParticipationMapper participationMapper;
@@ -133,6 +137,7 @@ public class CompanyServiceImpl extends ServiceImpl<CompanyMapper, Company> impl
     }
 
     @Override
+    @Transactional
     public HttpRespMsg dataMigration(HttpServletRequest request,Integer oldCompanyId, Integer targetCompanyId,String oldUserName,String targetUserName) {
         HttpRespMsg msg=new HttpRespMsg();
         User oldManager = userMapper.selectOne(new QueryWrapper<User>().eq("name", oldUserName).eq("company_id",oldCompanyId));
@@ -145,8 +150,12 @@ public class CompanyServiceImpl extends ServiceImpl<CompanyMapper, Company> impl
             msg.setError("管理员["+targetManager+"]不存在");
             return msg;
         }
-        if(!oldManager.getDingdingUserid().equals(targetManager.getDingdingUserid())){
-            msg.setError("校验失败,管理员匹配异常");
+        if(!oldManager.getRoleName().equals("超级管理员")){
+            msg.setError("原公司超级管理员不正确");
+            return msg;
+        }
+        if(!targetManager.getRoleName().equals("超级管理员")){
+            msg.setError("目标公司超级管理员不正确,当前角色是:"+targetManager.getRoleName());
             return msg;
         }
         List<User> oldUserList = userMapper.selectList(new QueryWrapper<User>().eq("company_id", oldCompanyId));
@@ -239,8 +248,10 @@ public class CompanyServiceImpl extends ServiceImpl<CompanyMapper, Company> impl
         List<Project> oldProjectList = projectMapper.selectList(new QueryWrapper<Project>().in("id", projectIds));
         //处理日报
         List<Report> reportList = reportMapper.selectList(new QueryWrapper<Report>().in("creator_id", ids));
+        List<Report> updateReportList = new ArrayList<>();
         for (Report report : reportList) {
             //项目关联
+
             Optional<Project> oldProject = oldProjectList.stream().filter(op -> op.getId().equals(report.getProjectId())).findFirst();
             Optional<Project> targetProject = projectList.stream().filter(pro -> pro.getProjectCode().equals(oldProject.get().getProjectCode())).findFirst();
             report.setProjectId(targetProject.get().getId());
@@ -264,7 +275,21 @@ public class CompanyServiceImpl extends ServiceImpl<CompanyMapper, Company> impl
                 report.setRejectUserid(rejectUser.get().getId());
             }
             report.setCompanyId(targetCompanyId);
-            reportMapper.updateById(report);
+//            reportMapper.updateById(report);
+            Report newReport = new Report();
+            newReport.setId(report.getId());
+            newReport.setCompanyId(targetCompanyId);
+            newReport.setProjectId(report.getProjectId());
+            newReport.setCreatorId(report.getCreatorId());
+            newReport.setDeptId(report.getDeptId());
+            newReport.setAuditDeptid(report.getAuditDeptid());
+            newReport.setAuditDeptManagerid(report.getAuditDeptManagerid());
+            newReport.setRejectUserid(report.getRejectUserid());
+            updateReportList.add(newReport);
+        }
+        //改成批量更新
+        if (updateReportList.size() > 0) {
+            reportService.updateBatchById(updateReportList);
         }
         return msg;
     }

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

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

File diff suppressed because it is too large
+ 7 - 477
fhKeeper/formulahousekeeper/ops-platform/src/main/resources/mapper/ReportMapper.xml