Browse Source

离职人员增加离职日期,日报模块显示部门人员列表时,不显示当天已经离职的。

seyason 3 years ago
parent
commit
4899f1c5f8

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

@@ -1,6 +1,7 @@
 package com.management.platform.controller;
 
 
+import com.management.platform.entity.User;
 import com.management.platform.service.UserService;
 import com.management.platform.util.HttpRespMsg;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -176,5 +177,12 @@ public class UserController {
 
     @RequestMapping("/changeSysManager")
     public HttpRespMsg changeSysManager(String toUserId, Integer myRoleId) {return userService.changeSysManager(toUserId, myRoleId, request); }
+
+    @RequestMapping("/deactiveUser")
+    public HttpRespMsg deactiveUser(User user) {
+        user.setIsActive(0);
+        userService.updateById(user);
+        return new HttpRespMsg();
+    }
 }
 

+ 14 - 2
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/User.java

@@ -2,13 +2,17 @@ package com.management.platform.entity;
 
 import java.math.BigDecimal;
 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 com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
+import org.springframework.format.annotation.DateTimeFormat;
 
 /**
  * <p>
@@ -16,7 +20,7 @@ import lombok.experimental.Accessors;
  * </p>
  *
  * @author Seyason
- * @since 2021-07-14
+ * @since 2021-08-26
  */
 @Data
 @EqualsAndHashCode(callSuper = false)
@@ -24,7 +28,6 @@ import lombok.experimental.Accessors;
 public class User extends Model<User> {
 
     private static final long serialVersionUID=1L;
-
     /**
      * 主键 雪花算法生成
      */
@@ -166,6 +169,15 @@ public class User extends Model<User> {
 
     @TableField(exist = false)
     private String departmentName;
+    /**
+     * 离职日期
+     */
+    @TableField("inactive_date")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    private LocalDate inactiveDate;
+
+
     @Override
     protected Serializable pkVal() {
         return this.id;

+ 3 - 4
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectServiceImpl.java

@@ -325,12 +325,11 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                             record.setCostData(projectBaseCostData);
                             record.setCostTotal(p.getBudget());
                             record.setProfit(p.getContractAmount() - p.getBudget());
-                            if (p.getContractAmount() == 0) {
-                                record.setProfitPercent(0.0);
-                            } else {
+                            if (p.getContractAmount() > 0) {
                                 record.setProfitPercent(100.0*(p.getContractAmount() - p.getBudget())/p.getContractAmount());
+                                earningSnapshotMapper.insert(record);
                             }
-                            earningSnapshotMapper.insert(record);
+
                         }
                     }
                 }

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

@@ -173,6 +173,8 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                         //担任项目经理,查找相关的人员的日报
                         List<Map<String, Object>> puserNames = reportMapper.getReportNameByDate(date, user.getCompanyId(), leaderId);
                         List<Map<String, Object>> inchargeReportList= reportMapper.getInchargeReportByDate(date, leaderId, null);
+                        //先清空,防止自己填写的日报出现两次
+                        nameList = new ArrayList<>();
                         for (Map<String, Object> map2 : puserNames) {
                             nameList.add(map2);
                             //再根据人分别获取当天的报告
@@ -589,8 +591,10 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
             unAssignedDept.setLabel("未分配");
             list.add(unAssignedDept);
         }
-        //获取公司全部人员
-        List<User> userList = userMapper.selectList(new QueryWrapper<User>().eq("company_id", companyId));
+        //获取公司全部人员; 按照人员状态,如果是已经离职的,当前日期在离职日期以后的,不需要显示该人员
+        QueryWrapper<User> queryWrapper = new QueryWrapper<User>().eq("company_id", companyId);
+        queryWrapper.and(wrapper->wrapper.eq("is_active", 1).or(wrapper2->wrapper2.eq("is_active", 0).gt("inactive_date", date)));
+        List<User> userList = userMapper.selectList(queryWrapper);
         List<HashMap> userMapList = new ArrayList<>();
         for (User u : userList) {
             HashMap<String, Object> user = new HashMap<String, Object>();

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

@@ -27,11 +27,12 @@
         <result column="dingding_userid" property="dingdingUserid" />
         <result column="dingding_unionid" property="dingdingUnionid" />
         <result column="corpwx_userid" property="corpwxUserid" />
+        <result column="inactive_date" property="inactiveDate" />
     </resultMap>
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        id, name, phone, password, portrait_url, create_time, role, company_id, department_id, department_cascade, cost, month_cost, salary_type, manage_dept_id, color, is_active, wx_openid, role_id, role_name, cost_apply_date, dingding_userid, dingding_unionid, corpwx_userid
+        id, name, phone, password, portrait_url, create_time, role, company_id, department_id, department_cascade, cost, month_cost, salary_type, manage_dept_id, color, is_active, wx_openid, role_id, role_name, cost_apply_date, dingding_userid, dingding_unionid, corpwx_userid, inactive_date
     </sql>
     <!--单独分页获取人员-->
     <select id="getUserByDepartment" resultType="java.util.Map">

+ 48 - 2
fhKeeper/formulahousekeeper/timesheet/src/views/team/index.vue

@@ -87,7 +87,7 @@
                         <el-button size="mini" type="default" v-if="scope.row.role != 1" @click="resetPwd(scope.row)">重置</el-button>
                         <el-button size="mini" type="primary" v-if="scope.row.role != 1" @click="openInsertDialog(scope.$index)">编辑</el-button>
                         <el-button size="mini" type="primary" v-if="scope.row.role == 1" @click="openInsertDialog1(scope.$index)">编辑</el-button>
-                        <el-button size="mini" type="default" v-if="scope.row.role != 1&& scope.row.isActive==1" @click="setActive(scope.row, 0)">停用</el-button>
+                        <el-button size="mini" type="default" v-if="scope.row.role != 1&& scope.row.isActive==1" @click="showDeactiveDialog(scope.row)">停用</el-button>
                         <el-button size="mini" type="success" v-if="scope.row.role != 1 && scope.row.isActive==0" @click="setActive(scope.row, 1)">启用</el-button>
                     </template>
                 </el-table-column>
@@ -276,7 +276,18 @@
             </span>
         </el-dialog>
 
-        
+        <!--停用时选择日期 -->
+        <el-dialog title="离职停用员工" :visible.sync="deactiveDialog" width="550px" >
+            <el-form  label-width="200px">
+                <el-form-item label="员工离职日期" >
+                    <el-date-picker type="date" v-model="deactiveDate" value-format="yyyy-MM-dd" format="yyyy-MM-dd" placeholder="请选择" />
+                </el-form-item>
+            </el-form>
+            <span slot="footer" class="dialog-footer">
+                <el-button type="default" @click="deactiveDialog = false">取消</el-button>
+                <el-button type="primary" @click="confirmDeactive">确定</el-button>
+            </span>
+        </el-dialog>
     </section>
 </template>
 
@@ -285,6 +296,9 @@
     export default {
         data() {
             return {
+                deactiveUser:null,
+                deactiveDate:null,
+                deactiveDialog:false,
                 toUserId:null,
                 myRoleId: 2,
                 allActiveUsers:[],
@@ -368,6 +382,37 @@
             };
         },
         methods: {
+            confirmDeactive() {
+                this.http.post('/user/deactiveUser', {
+                        id: this.deactiveUser.id,
+                        deactiveDate: this.deactiveDate
+                    },
+                    res => {
+                        if (res.code == "ok") {
+                            this.deactiveDialog = false;
+                            this.$message({
+                                message: '停用成功',
+                                type: "success"
+                            });
+                            this.getUsers();
+                        } else {
+                            this.$message({
+                            message: res.msg,
+                            type: "error"
+                            });
+                        }
+                    },
+                    error => {
+                        this.$message({
+                            message: error,
+                            type: "error"
+                        });
+                    });
+            },
+            showDeactiveDialog(item) {
+                this.deactiveDialog = true;
+                this.deactiveUser = item;
+            },
             restrictNumber(targetId) {
                 let inpu = document.getElementById(targetId);
                 inpu.value = inpu.value.replace(/[^\d.]/g, "");  //仅保留数字和"."
@@ -1091,6 +1136,7 @@
             };
         },
         mounted() {
+            this.deactiveDate = util.formatDate.format(new Date(), 'yyyy-MM-dd');
             this.getDepartment();
             this.getUser();
             this.getCompanyTimeSetting();