Selaa lähdekoodia

添加奖金不分摊相关

zhouyy 6 kuukautta sitten
vanhempi
commit
e5bdea5c6f

+ 37 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/BonusExcludeProjectController.java

@@ -0,0 +1,37 @@
+package com.management.platform.controller;
+
+import com.management.platform.entity.bo.AddOrUpdateBonusExcludeProjectBO;
+import com.management.platform.service.BonusExcludeProjectService;
+import com.management.platform.util.HttpRespMsg;
+import com.management.platform.util.MessageUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+
+@RestController
+@RequestMapping("/bonusExcludeProject")
+public class BonusExcludeProjectController {
+
+    @Resource
+    private BonusExcludeProjectService bonusExcludeProjectService;
+
+
+    @PostMapping("/addOrUpdateProjects")
+    public HttpRespMsg addOrUpdateProjects(AddOrUpdateBonusExcludeProjectBO bo, HttpServletRequest request) {
+        return bonusExcludeProjectService.addOrUpdateProjects(bo,request);
+    }
+
+    @GetMapping("/getProjects")
+    public HttpRespMsg getProjects(HttpServletRequest request){
+        HttpRespMsg msg = new HttpRespMsg();
+        try {
+            msg = bonusExcludeProjectService.getProjects(request);
+        } catch (Exception e) {e.printStackTrace();
+            msg.setError(MessageUtils.message("other.error"));
+            return msg;
+        }
+        return msg;
+    }
+
+}

+ 51 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/BonusExcludeProject.java

@@ -0,0 +1,51 @@
+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.extension.activerecord.Model;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class BonusExcludeProject extends Model<BonusExcludeProject> {
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**项目id*/
+    @TableField("project_id")
+    private Integer projectId;
+
+    /**
+     * 公司表外键
+     */
+    @TableField("company_id")
+    private Integer companyId;
+
+    /**
+     * 创建人id
+     */
+    @TableField("create_by")
+    private String createBy;
+
+
+    /**
+     * 创建日期
+     */
+    @TableField("create_time")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date createTime;
+}

+ 12 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/bo/AddOrUpdateBonusExcludeProjectBO.java

@@ -0,0 +1,12 @@
+package com.management.platform.entity.bo;
+
+import lombok.Data;
+
+@Data
+public class AddOrUpdateBonusExcludeProjectBO {
+//    @NotEmpty(message = "项目不能为空")
+    private String[] projects;
+
+    /**0非全部 1是全部*/
+    private int isAll;
+}

+ 11 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/BonusExcludeProjectMapper.java

@@ -0,0 +1,11 @@
+package com.management.platform.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.management.platform.entity.BonusExcludeProject;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+public interface BonusExcludeProjectMapper extends BaseMapper<BonusExcludeProject> {
+    void bacthInsert(@Param("projects") List<BonusExcludeProject> projects);
+}

+ 14 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/BonusExcludeProjectService.java

@@ -0,0 +1,14 @@
+package com.management.platform.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.management.platform.entity.BonusExcludeProject;
+import com.management.platform.entity.bo.AddOrUpdateBonusExcludeProjectBO;
+import com.management.platform.util.HttpRespMsg;
+
+import javax.servlet.http.HttpServletRequest;
+
+public interface BonusExcludeProjectService extends IService<BonusExcludeProject> {
+    HttpRespMsg addOrUpdateProjects(AddOrUpdateBonusExcludeProjectBO bo, HttpServletRequest request);
+
+    HttpRespMsg getProjects(HttpServletRequest request);
+}

+ 97 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/BonusExcludeProjectServiceImpl.java

@@ -0,0 +1,97 @@
+package com.management.platform.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.management.platform.entity.BonusExcludeProject;
+import com.management.platform.entity.Project;
+import com.management.platform.entity.User;
+import com.management.platform.entity.bo.AddOrUpdateBonusExcludeProjectBO;
+import com.management.platform.mapper.BonusExcludeProjectMapper;
+import com.management.platform.mapper.ProjectMapper;
+import com.management.platform.mapper.UserMapper;
+import com.management.platform.service.BonusExcludeProjectService;
+import com.management.platform.util.HttpRespMsg;
+import org.apache.commons.collections.CollectionUtils;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+@Service
+public class BonusExcludeProjectServiceImpl extends ServiceImpl<BonusExcludeProjectMapper, BonusExcludeProject> implements BonusExcludeProjectService {
+
+    @Resource
+    private BonusExcludeProjectMapper bonusExcludeProjectMapper;
+
+    @Resource
+    private UserMapper userMapper;
+
+    @Resource
+    private ProjectMapper projectMapper;
+
+    @Override
+    public HttpRespMsg addOrUpdateProjects(AddOrUpdateBonusExcludeProjectBO addBO, HttpServletRequest request) {
+        HttpRespMsg httpRespMsg = new HttpRespMsg();
+        User user = userMapper.selectById(request.getHeader("TOKEN"));
+        if(null ==user){
+            httpRespMsg.setError("登录凭证有误,请联系管理员");
+            return httpRespMsg;
+        }
+        List<BonusExcludeProject> resList = new ArrayList<BonusExcludeProject>();
+        if(1==addBO.getIsAll()){
+            List<Project> allProjects = projectMapper.selectList(new QueryWrapper<Project>().eq("company_id", user.getCompanyId()));
+            List<BonusExcludeProject> collect = allProjects.stream().map(t -> {
+                BonusExcludeProject project = new BonusExcludeProject();
+                project.setProjectId(t.getId());
+                project.setCreateBy(user.getId());
+                return project;
+            }).collect(Collectors.toList());
+            resList = collect;
+        }else {
+            for (int i = 0; i < addBO.getProjects().length; i++) {
+                BonusExcludeProject project = new BonusExcludeProject();
+                project.setProjectId(Integer.parseInt(addBO.getProjects()[i]));
+                project.setCreateBy(user.getId());
+                resList.add(project);
+            }
+        }
+        bonusExcludeProjectMapper.delete(new LambdaQueryWrapper<BonusExcludeProject>()
+                .eq(BonusExcludeProject::getCompanyId,user.getCompanyId()));
+        if(CollectionUtils.isNotEmpty(resList)){
+            bonusExcludeProjectMapper.bacthInsert(resList);
+        }
+
+        return httpRespMsg;
+    }
+
+    @Override
+    public HttpRespMsg getProjects(HttpServletRequest request) {
+        HttpRespMsg httpRespMsg = new HttpRespMsg();
+        Map<String,Object> map = new HashMap<>();
+        User user = userMapper.selectById(request.getHeader("TOKEN"));
+        if(null ==user){
+            httpRespMsg.setError("登录凭证有误,请联系管理员");
+            return httpRespMsg;
+        }
+        Integer projectCount = projectMapper.selectCount(new LambdaQueryWrapper<Project>()
+                .eq(Project::getCompanyId, user.getCompanyId()));
+
+        List<BonusExcludeProject> resList = bonusExcludeProjectMapper
+                .selectList(new LambdaQueryWrapper<BonusExcludeProject>()
+                        .eq(BonusExcludeProject::getCompanyId,user.getCompanyId()));
+        if(projectCount == resList.size()){
+            map.put("isAll",1);
+        }else{
+            map.put("isAll",0);
+        }
+        map.put("projectList",resList);
+        httpRespMsg.setData(map);
+        return httpRespMsg;
+    }
+}

+ 13 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/BonusExcludeProjectMapper.xml

@@ -0,0 +1,13 @@
+<?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.BonusExcludeProjectMapper">
+
+    <insert id="bacthInsert">
+        insert into bonus_exclude_project (project_id, company_id, create_by)
+        values
+        <foreach collection="projects" item="project" separator=",">
+            (#{project.projectId},#{project.companyId},#{project.createBy})
+        </foreach>
+    </insert>
+</mapper>