Commit bafc6208 authored by cq990612's avatar cq990612

优化代码结构

parent dee443dd
......@@ -28,7 +28,7 @@ public enum BASE_RESP_CODE_ENUM {
FILE_NOT_NULL("608", "上传文件不能为空"),
STATISTICS_RECORD_DATA_FAIL("609", "统计档案数据失败"),
EQUIPMENT_INFO_IS_NULL("610", "设备信息为空"),
QUERY_WORK_ORDER_DATA_IS_NULL("611", "获取工单数据为空"),
QUERY_DATA_IS_NULL("611", "获取数据为空"),
WORK_TIME_NOT_OVER_EIGHT("611", "每日累计工时不超过8小时"),
USER_ACCOUNT_ALREADY_EXIST("612", "用户账号已存在"),
USER_PHONE_ALREADY_EXIST("613", "该手机号已被注册"),
......@@ -67,6 +67,13 @@ public enum BASE_RESP_CODE_ENUM {
NO_WORK_ORDERS_HAVE_BEEN_REJECTED("645", "暂无驳回未提交工单"),
LEAVE_JOB_USER("646","账号状态异常,请联系管理员"),
ItemType_Does_NotMatch("647","工时类型和项目名称不匹配"),
PROJECT_NOT_USER("648", "该项目还没有参与人员"),
theNewContent_IsEqual_ToTheOriginal_Content("649","更新内容与旧内容一致,更新失败"),
REASON_CANNOT_BE_EMPTY("650", "更变原因不能为空"),
START_NOT_THAN_END_DATE("651", "开始时间不能大于结束时间"),
HOLIDAY_NOT_IS_NULL("652", "该节假日已经不存在,请刷新页面!"),
ORDINARY_MEMBERS_ARE_MANAGEMENT("653", "普通成员不能有管理角色,请取消普通成员选项"),
REPEAT_WITH_OLDTIME("654", "日期与旧时间冲突"),
;
......
package cn.wisenergy.mapper;
import cn.wisenergy.model.app.WorkDept;
import cn.wisenergy.model.dto.OrganizationStructureDto;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import java.util.List;
......@@ -17,4 +18,6 @@ import java.util.Map;
public interface WorkDeptMapper extends BaseMapper<WorkDept> {
List<WorkDept> getDeptByCondition(Map<String, Object> map);
List<OrganizationStructureDto> getAllDeptByAllCentre();
}
......@@ -2,6 +2,9 @@ package cn.wisenergy.mapper;
import cn.wisenergy.model.app.WorkProjectChange;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* <p>
......@@ -13,4 +16,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
*/
public interface WorkProjectChangeMapper extends BaseMapper<WorkProjectChange> {
int insertBatch(@Param("workProjectChanges") List<WorkProjectChange> workProjectChanges);
List<WorkProjectChange> getByProjectId(Integer projectId);
}
......@@ -2,6 +2,7 @@ package cn.wisenergy.mapper;
import cn.wisenergy.model.app.WorkProject;
import cn.wisenergy.model.dto.ManagerProjectsDto;
import cn.wisenergy.model.vo.ModifyProjectVo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
......@@ -25,8 +26,25 @@ public interface WorkProjectMapper extends BaseMapper<WorkProject> {
*/
List<WorkProject> getProjectsByCriteria(Map<String, Object> map);
/**
* 获取项目
* @param ids 项目id
* @param isConclusion 是否结项
* @return 项目实体类
*/
List<WorkProject> getProjectsByIds(@Param("ids") List<Integer> ids, @Param("isConclusion") Integer isConclusion);
/**
* 获取可以管理的项目/商机
* @param userId 拥挤id
* @param type 类型
* @param isConclusion 是否结项
* @param deptIds 所属部门
* @return
*/
List<ManagerProjectsDto> getManagerProjectsDto(@Param("userId") Integer userId, @Param("type") Integer type, @Param("isConclusion") Integer isConclusion,@Param("deptIds") List<Integer> deptIds);
int updateIsConclusionById(Integer id);
int updateProject(ModifyProjectVo modifyProjectVo);
}
......@@ -2,6 +2,7 @@ package cn.wisenergy.mapper;
import cn.wisenergy.model.app.WorkUser;
import cn.wisenergy.model.dto.StatisticsTableDto;
import cn.wisenergy.model.dto.UserRoleDto;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import java.util.List;
......@@ -35,4 +36,6 @@ public interface WorkUserMapper extends BaseMapper<WorkUser> {
*/
List<StatisticsTableDto> getStatisticsTableDtos(List<Integer> userIds);
List<UserRoleDto> getUserRoleDto();
}
package cn.wisenergy.mapper;
import cn.wisenergy.model.app.WorkUserProject;
import cn.wisenergy.model.dto.UserProjectDto;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* <p>
......@@ -13,4 +17,10 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
*/
public interface WorkUserProjectMapper extends BaseMapper<WorkUserProject> {
List<UserProjectDto> getUserByProjectId(Integer projectId);
int deleteByProjectId(Integer projectId);
int insertBatch(@Param("userIds") List<Integer> userIds,@Param("projectId") Integer projectId);
}
......@@ -2,6 +2,7 @@ package cn.wisenergy.mapper;
import cn.wisenergy.model.app.WorkUserRole;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
......@@ -9,4 +10,8 @@ import java.util.List;
public interface WorkUserRoleMapper extends BaseMapper<WorkUserRole> {
List<Integer> getRole(Integer userId);
int deleteByUserId(Integer userId);
int insertBatch(@Param("userId") Integer userId,@Param("roleIds") List<Integer> roleIds);
}
......@@ -13,6 +13,16 @@
<result column="modify_time" property="modifyTime" />
</resultMap>
<resultMap id="CentreDeptMap" type="cn.wisenergy.model.dto.OrganizationStructureDto">
<id column="centre_id" property="centreId" />
<result column="centre_name" property="centreName"/>
<collection property="deptUserDtos" ofType="cn.wisenergy.model.dto.DeptUserDto">
<id column="dept_id" property="deptId"/>
<result column="dept_name" property="deptName"/>
</collection>
</resultMap>
<sql id="table">
work_dept
</sql>
......@@ -48,4 +58,11 @@
</where>
</select>
<select id="getAllDeptByAllCentre" resultMap="CentreDeptMap">
select c.id as 'centre_id',c.centre_name as 'centre_name',d.id as 'dept_id',d.dept_name as 'dept_name'
from work_centre c LEFT JOIN work_dept d ON c.id = d.centre_id
ORDER BY c.id,d.id
</select>
</mapper>
......@@ -10,12 +10,31 @@
<result column="modify_after" property="modifyAfter" />
<result column="modify_before" property="modifyBefore" />
<result column="reason" property="reason" />
<result column="change_date" property="changeDate" />
<result column="modify_time" property="modifyTime" />
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
id, project_id, type, content, reason, change_date
id, project_id, `type`, modify_after,modify_before, reason, modify_time
</sql>
<sql id="not_id_Column_List">
project_id, `type`, modify_after,modify_before, reason, modify_time
</sql>
<insert id="insertBatch">
INSERT INTO work_project_change
(<include refid="not_id_Column_List"/> )
VALUES
<foreach collection ="workProjectChanges" item="workProjectChange" separator =",">
(#{workProjectChange.projectId}, #{workProjectChange.type},#{workProjectChange.modifyAfter},#{workProjectChange.modifyBefore},#{workProjectChange.reason},#{workProjectChange.modifyTime})
</foreach >
</insert>
<select id="getByProjectId" resultType="cn.wisenergy.model.app.WorkProjectChange">
SELECT <include refid="Base_Column_List"/>
FROM work_project_change
WHERE project_id = #{projectId}
</select>
</mapper>
......@@ -37,13 +37,46 @@
<if test="deptId != null">and dept_id = #{deptId}</if>
<if test="workTime != null">and work_time =#{workTime}</if>
<if test="costBudget != null">and cost_budget = #{costBudget}</if>
<if test="isConclusion != null">and is_onclusion =#{isConclusion}</if>
<if test="isConclusion != null">and is_conlusion =#{isConclusion}</if>
<if test="startTime != null">and start_time =#{startTime}</if>
<if test="endTime != null">and end_time =#{endTime}</if>
<if test="createTime != null">and create_time &gt;= #{createTime}</if>
<if test="modifyTime != null">and modify_time &gt;= modifyTime</if>
</sql>
<update id="updateIsConclusionById">
UPDATE
<include refid="table"/>
SET is_conclusion = 0
WHERE id = #{id}
</update>
<update id="updateProject">
UPDATE
<include refid="table"/>
<set>
<if test="null != startTime">
start_time = #{startTime},
</if>
<if test="null != endTime">
end_time = #{endTime},
</if>
<if test="null != workTime">
work_time = #{workTime},
</if>
<if test="null != costBudget">
cost_budget =#{costBudget}
</if>
</set>
<where>
<if test="null != projectId">
id = #{projectId}
</if>
</where>
</update>
<select id="getProjectsByCriteria" resultMap="BaseResultMap" parameterType="map">
select <include refid="Base_Column_List"/>
from <include refid="table"/>
......@@ -74,7 +107,7 @@
<select id="getManagerProjectsDto" resultType="cn.wisenergy.model.dto.ManagerProjectsDto">
select p.id,p.oa_project_id,p.project_name,p.type,p.create_time,p.is_conclusion,
GROUP_CONCAT(DISTINCT(u.name)) as 'Participants',p.cost_budget,p.work_time,p.start_time,p.end_time,
SUM(o.work_time)/8 as 'currentLaborCost',SUM(o.work_time) as 'totalCurrentWorkingHours',
ROUND(SUM(o.work_time)/8,2) as 'currentLaborCost',ROUND(SUM(o.work_time),2) as 'totalCurrentWorkingHours',
if(now() BETWEEN p.start_time and p.end_time,'否','是') as 'isItOverdue',
if(p.create_time = p.modify_time,'否','是') as 'isThereABudgetChange'
from work_project p LEFT JOIN work_time_order o on p.id = o.project_id
......
......@@ -21,6 +21,16 @@
<result column="modify_time" property="modifyTime" />
</resultMap>
<resultMap id="UserRoleMap" type="cn.wisenergy.model.dto.UserRoleDto">
<id column="id" property="id"/>
<result column="name" property="name"/>
<result column="status" property="status"/>
<collection property="workRoles" ofType="cn.wisenergy.model.app.WorkRole">
<id column="role_id" property="id"/>
<result column="role_name" property="name"/>
</collection>
</resultMap>
<sql id="table">
work_user
</sql>
......@@ -94,10 +104,20 @@
</foreach>
</select>
<update id="updateUserInfo" parameterType="cn.wisenergy.model.app.WorkUser">
update <include refid="table"/>
set <include refid="updateCondition"/>
where id = #{id}
</update>
<select id="getUserRoleDto" resultMap="UserRoleMap">
select u.id as 'id',u.name as 'name',u.status as 'status',r.id as 'role_id',r.name as 'role_name'
from work_user u LEFT JOIN work_user_role ur ON u.id = ur.user_id
LEFT JOIN work_role r on ur.role_id = r.id
</select>
</mapper>
......@@ -9,9 +9,33 @@
<result column="project_id" property="projectId" />
</resultMap>
<resultMap id="MinUserMap" type="cn.wisenergy.model.dto.UserProjectDto">
<id column="user_id" property="id"/>
<result column="name" property="name"/>
<result column="project_id" property="projectId"/>
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
id, user_id, project_id
</sql>
<insert id="insertBatch">
INSERT INTO work_user_project
(user_id,project_id)
VALUES
<foreach collection ="userIds" item="userId" separator =",">
( #{userId}, #{projectId})
</foreach >
</insert>
<delete id="deleteByProjectId">
DELETE
FROM work_user_project
WHERE project_id = #{projectId}
</delete>
<select id="getUserByProjectId" resultMap="MinUserMap" >
SELECT p.user_id,u.name,p.project_id
FROM work_user_project p JOIN work_user u ON p.user_id = u.id
WHERE project_id = #{projectId}
</select>
</mapper>
<?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="cn.wisenergy.mapper.WorkUserRoleMapper">
<insert id="insertBatch">
INSERT INTO work_user_role
(user_id,role_id)
VALUES
<foreach collection ="roleIds" item="roleId" separator =",">
( #{userId}, #{roleId})
</foreach >
</insert>
<delete id="deleteByUserId">
DELETE
FROM work_user_role
WHERE user_id = #{userId}
</delete>
<select id="getRole" resultType="java.lang.Integer">
......
......@@ -2,6 +2,7 @@ package cn.wisenergy.model.app;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......@@ -29,9 +30,11 @@ public class WorkHoliday implements Serializable {
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
@JsonFormat(shape=JsonFormat.Shape.STRING,pattern = "yyyy-MM-dd")
@ApiModelProperty(name = "dayStart",value = "开始日期")
private Date dayStart;
@JsonFormat(shape=JsonFormat.Shape.STRING,pattern = "yyyy-MM-dd")
@ApiModelProperty(name = "dayEnd",value = "结束日期")
private Date dayEnd;
......
......@@ -46,7 +46,7 @@ public class WorkProject implements Serializable {
private Integer deptId;
@ApiModelProperty(name = "workTime",value = "工时预算")
private Integer workTime;
private BigDecimal workTime;
@ApiModelProperty(name = "costBudget",value = "成本预算,以万为单位")
private BigDecimal costBudget;
......
......@@ -2,10 +2,12 @@ package cn.wisenergy.model.app;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.Date;
......@@ -20,6 +22,7 @@ import java.util.Date;
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors (chain = true)
@ApiModel(value="WorkProjectChange", description="项目更改类")
public class WorkProjectChange implements Serializable {
......@@ -44,10 +47,11 @@ public class WorkProjectChange implements Serializable {
@ApiModelProperty(name = "reason",value = "变更原因")
private String reason;
@ApiModelProperty(name = "changeDate",value = "变更日期")
@JsonFormat(shape=JsonFormat.Shape.STRING,pattern = "yyyy-MM-dd")
@ApiModelProperty(name = "modify_time",value = "变更日期")
private Date modifyTime;
private Date changeDate;
}
package cn.wisenergy.model.dto;
import cn.wisenergy.model.app.WorkRole;
import lombok.Data;
import java.util.List;
/**
* @Authotr:陈奇
* @QQ1799796883
*/
@Data
public class AllRoleAndUserRoleDto {
List<UserRoleDto> userRoleDtos;
List<WorkRole> workRoles;
}
package cn.wisenergy.model.dto;
import lombok.Data;
import java.util.List;
/**
* @Authotr:陈奇
* @QQ1799796883
*/
@Data
public class DeptUserDto {
private Integer deptId;
private String deptName;
private List<ResultUser> resultUsers;
}
package cn.wisenergy.model.dto;
import cn.wisenergy.model.app.WorkHoliday;
import cn.wisenergy.model.app.WorkSubmitAdopt;
import lombok.Data;
import lombok.experimental.Accessors;
import java.util.List;
/**
* @Authotr:陈奇
* @QQ1799796883
*/
@Data
@Accessors(chain = true)
public class HolidayAndAutoDto {
List<WorkHoliday> workHolidays;
WorkSubmitAdopt workSubmitAdopt;
}
package cn.wisenergy.model.dto;
import lombok.Data;
import java.util.List;
/**
* @Authotr:陈奇
* @QQ1799796883
*/
@Data
public class OrganizationStructureDto {
private Integer CentreId;
private String CentreName;
private List<DeptUserDto> deptUserDtos;
}
package cn.wisenergy.model.dto;
import lombok.Data;
/**
* @Authotr:陈奇
* @QQ1799796883
*/
@Data
public class UserProjectDto {
private Integer id;
private String name;
private Integer projectId;
}
package cn.wisenergy.model.dto;
import cn.wisenergy.model.app.WorkRole;
import lombok.Data;
import java.util.List;
/**
* @Authotr:陈奇
* @QQ1799796883
*/
@Data
public class UserRoleDto {
private Integer id;
private String name;
private Integer status;
private List<WorkRole> workRoles;
}
package cn.wisenergy.model.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
/**
* @Authotr:陈奇
* @QQ1799796883
*/
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="ModifyProjectVo", description="项目编辑VO")
public class ModifyProjectVo {
private Integer projectId;
private List<Integer> userIds;
@JsonFormat(shape=JsonFormat.Shape.STRING,pattern = "yyyy-MM-dd")
private Date startTime;
private String startTimeReason;
@JsonFormat(shape=JsonFormat.Shape.STRING,pattern = "yyyy-MM-dd")
private Date endTime;
private String endTimeReason;
private BigDecimal workTime;
private String workTimeReason;
private BigDecimal costBudget;
private String costBudgetReason;
}
package cn.wisenergy.service;
import cn.wisenergy.model.app.WorkDept;
import cn.wisenergy.model.dto.OrganizationStructureDto;
import java.util.List;
......@@ -22,4 +23,6 @@ public interface WorkDeptService {
* @return
*/
List<WorkDept> getDeptInfo(Integer deptId);
List<OrganizationStructureDto> getAllDeptByAllCentreId();
}
package cn.wisenergy.service;
import cn.wisenergy.model.app.WorkHoliday;
import cn.wisenergy.model.dto.HolidayAndAutoDto;
import java.util.Date;
/**
......@@ -11,4 +14,13 @@ import java.util.Date;
* @since 2021-01-19
*/
public interface WorkHolidayService {
Boolean isHoliday(Date date);}
Boolean isHoliday(Date date);
Boolean addHoliday(WorkHoliday workHoliday);
Boolean modifyHoliday(WorkHoliday workHoliday);
Boolean deleteHoliday(Integer id);
HolidayAndAutoDto getHolidayAll();
}
package cn.wisenergy.service;
import cn.wisenergy.model.app.WorkProjectChange;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
* <p>
......@@ -13,4 +14,17 @@ import com.baomidou.mybatisplus.extension.service.IService;
*/
public interface WorkProjectChangeService {
/**
* 批量插入
* @param workProjectChanges 集合
* @return 布尔值
*/
Boolean insertbatch(List<WorkProjectChange> workProjectChanges);
/**
* 根据项目id查看更变记录
* @param projectId 项目id
* @return 集合
*/
List<WorkProjectChange> getByProjectId(Integer projectId);
}
......@@ -3,6 +3,7 @@ package cn.wisenergy.service;
import cn.wisenergy.model.app.WorkProject;
import cn.wisenergy.model.dto.ProjectDto;
import cn.wisenergy.model.vo.GetManagerProjectsVo;
import cn.wisenergy.model.vo.ModifyProjectVo;
import com.github.pagehelper.PageInfo;
import java.util.List;
......@@ -56,4 +57,14 @@ public interface WorkProjectService {
* @return 分页
*/
PageInfo getManagerProjects(GetManagerProjectsVo gmpv);
/**
* 结束项目/商机
* @param userId 管理id
* @param projectId 项目/商机id
* @return 布尔值
*/
Boolean endProject(Integer userId,Integer projectId);
Boolean modifyProject(ModifyProjectVo modifyProjectVo);
}
......@@ -19,4 +19,6 @@ public interface WorkSubmitAdoptService {
* @return WorkSubmitAdopt
*/
WorkSubmitAdopt getById(Integer id);
Boolean modifyAuto(WorkSubmitAdopt workSubmitAdopt);
}
package cn.wisenergy.service;
import cn.wisenergy.model.app.WorkProject;
import cn.wisenergy.model.dto.UserProjectDto;
import java.util.List;
......@@ -22,4 +23,15 @@ public interface WorkUserProjectService {
List<Integer> getProjectIdByUserId(Integer userId);
List<WorkProject> getUserManageProject(Integer userId);
/**
* 根据项目id获取参与人数
* @param projectId 项目id
* @return dto
*/
List<UserProjectDto> getUserProjectByProjectId(Integer projectId);
Boolean deleteByProjectId(Integer projectId);
Boolean insertBatch(List<Integer> userIds, Integer projectId);
}
package cn.wisenergy.service;
import cn.wisenergy.model.app.WorkUser;
import cn.wisenergy.model.dto.AllRoleAndUserRoleDto;
import cn.wisenergy.model.dto.OrganizationStructureDto;
import cn.wisenergy.model.dto.ResultUser;
import java.util.List;
......@@ -46,4 +48,14 @@ public interface WorkUserService {
* @return 用户传输对象
*/
ResultUser changePassword(Integer userId, String oldPassword, String newPassword);
/**
* 获取组织架构
* @return
*/
List<OrganizationStructureDto> getOrganizationStructure();
AllRoleAndUserRoleDto getUserRoleDto();
Boolean modifyRole(Integer userId, List<Integer> roleIds);
}
......@@ -5,10 +5,12 @@ import cn.wisenergy.common.utils.exception.BASE_RESP_CODE_ENUM;
import cn.wisenergy.common.utils.exception.BaseCustomException;
import cn.wisenergy.mapper.WorkDeptMapper;
import cn.wisenergy.model.app.WorkDept;
import cn.wisenergy.model.dto.OrganizationStructureDto;
import cn.wisenergy.service.WorkDeptService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.HashMap;
import java.util.List;
......@@ -55,4 +57,14 @@ public class WorkDeptServiceImpl implements WorkDeptService {
}
return workDepts;
}
@Override
public List<OrganizationStructureDto> getAllDeptByAllCentreId() {
log.info("WorkDeptServiceImpl[]getAllDeptByAllCentreId[]");
List<OrganizationStructureDto> allDeptByAllCentre = workDeptMapper.getAllDeptByAllCentre();
if (CollectionUtils.isEmpty(allDeptByAllCentre)) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.DEPT_IS_NULL);
}
return allDeptByAllCentre;
}
}
package cn.wisenergy.service.impl;
import cn.wisenergy.common.utils.exception.BASE_RESP_CODE_ENUM;
import cn.wisenergy.common.utils.exception.BaseCustomException;
import cn.wisenergy.mapper.WorkHolidayMapper;
import cn.wisenergy.model.app.WorkHoliday;
import cn.wisenergy.model.app.WorkSubmitAdopt;
import cn.wisenergy.model.dto.HolidayAndAutoDto;
import cn.wisenergy.service.WorkHolidayService;
import cn.wisenergy.service.WorkSubmitAdoptService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.util.Calendar;
import java.util.Date;
......@@ -19,13 +28,21 @@ import java.util.List;
* @since 2021-01-19
*/
@Service
@Slf4j
public class WorkHolidayServiceImpl implements WorkHolidayService {
@Autowired
private WorkHolidayMapper workHolidayMapper;
@Autowired
private WorkSubmitAdoptService workSubmitAdoptService;
@Override
public Boolean isHoliday(Date date) {
log.info("WorkHolidayServiceImpl[]workHolidayMapper[]input.param.date:{}" + date);
if (null == date) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.INPUT_PARAM_IS_NULL);
}
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
List<WorkHoliday> workHolidays = workHolidayMapper.selectList(null);
......@@ -33,15 +50,99 @@ public class WorkHolidayServiceImpl implements WorkHolidayService {
if (!yearMonthBetween(date, holiday.getDayStart(), holiday.getDayEnd())) {
continue;
}
// 节假日
if (1 == holiday.getDayType()) {
return true;
}
// 工作日
if (0 == holiday.getDayType()) {
return false;
}
}
return calendar.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY ||
calendar.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY;
}
@Override
public Boolean addHoliday(WorkHoliday workHoliday) {
log.info("WorkHolidayServiceImpl[]addHoliday[]input.param.workHoliday:{}" + workHoliday);
verificationDate(workHoliday);
if (isItRedundant(workHoliday, null)) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.REPEAT_WITH_OLDTIME);
}
int insert = workHolidayMapper.insert(workHoliday);
return insert > 0;
}
@Transactional
@Override
public Boolean modifyHoliday(WorkHoliday workHoliday) {
log.info("WorkHolidayServiceImpl[]modifyHoliday[]input.param.workHoliday:{}" + workHoliday);
verificationDate(workHoliday);
if (null == workHoliday.getId()) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.INPUT_PARAM_IS_NULL);
}
WorkHoliday workHolidayById = workHolidayMapper.selectById(workHoliday);
if (null == workHolidayById) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.HOLIDAY_NOT_IS_NULL);
}
if (isItRedundant(workHoliday, workHolidayById.getId())) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.REPEAT_WITH_OLDTIME);
}
int i = workHolidayMapper.updateById(workHoliday);
return i > 0;
}
@Transactional
@Override
public Boolean deleteHoliday(Integer id) {
log.info("WorkHolidayServiceImpl[]deleteHoliday[]input.param.id:{}" + id);
if (null == id) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.INPUT_PARAM_IS_NULL);
}
WorkHoliday workHoliday = workHolidayMapper.selectById(id);
if (null == workHoliday) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.HOLIDAY_NOT_IS_NULL);
}
int i = workHolidayMapper.deleteById(id);
return i > 0;
}
@Override
public HolidayAndAutoDto getHolidayAll() {
log.info("WorkHolidayServiceImpl[]getHolidayAll[]");
HolidayAndAutoDto holidayAndAutoDto = new HolidayAndAutoDto();
List<WorkHoliday> workHolidays = workHolidayMapper.selectList(new QueryWrapper<>());
WorkSubmitAdopt submitAdopt = workSubmitAdoptService.getById(1);
holidayAndAutoDto.setWorkHolidays(workHolidays).setWorkSubmitAdopt(submitAdopt);
return holidayAndAutoDto;
}
private void verificationDate(WorkHoliday workHoliday) {
if (null == workHoliday) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.INPUT_PARAM_IS_NULL);
}
if (null == workHoliday.getDayStart()) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.INPUT_PARAM_IS_NULL);
}
if (null == workHoliday.getDayEnd()) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.INPUT_PARAM_IS_NULL);
}
if (null == workHoliday.getDayType()) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.INPUT_PARAM_IS_NULL);
}
if (null == workHoliday.getDes()) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.INPUT_PARAM_IS_NULL);
}
if (workHoliday.getDayStart().compareTo(workHoliday.getDayEnd()) > 0) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.START_NOT_THAN_END_DATE);
}
}
/* // 获取某时间段内的所有日期
public List<Date> findDates(Date dBegin, Date dEnd) {
List<Date> lDate = new ArrayList<>();
......@@ -61,13 +162,42 @@ public class WorkHolidayServiceImpl implements WorkHolidayService {
return lDate;
}
*/
/** 判断某个时间是否在时间段内*/
private static boolean yearMonthBetween(Date nowDate, Date startDate, Date endDate) {
/**
* 判断某个时间是否在时间段内
*/
private static boolean yearMonthBetween(Date nowDate, Date startDate, Date endDate) {
long nowTime = nowDate.getTime();
long startTime = startDate.getTime();
long endTime = endDate.getTime();
return nowTime >= startTime && nowTime <= endTime;
}
/**
* 判断某个时间段是否在另一个时间段
*/
private boolean isItRedundant(WorkHoliday workHoliday, Integer id) {
List<WorkHoliday> workHolidays = workHolidayMapper.selectList(new QueryWrapper<>());
if (CollectionUtils.isEmpty(workHolidays)) {
return false;
}
long d1 = workHoliday.getDayStart().getTime();
long d2 = workHoliday.getDayEnd().getTime();
long v = d2 - d1;
long start;
long end;
for (WorkHoliday workHoliday1 : workHolidays) {
if (workHoliday1.getId().equals(id)) {
continue;
}
start = workHoliday1.getDayStart().getTime();
end = workHoliday1.getDayEnd().getTime();
if ((d1-start>=0 && d2-end<=0) ||(d1-start<=0&&d2-end>=0) ||(d1-start<=0 && d2-start>=0)|| (d1-start>=0 &&d1-end<=0)) {
return true;
}
}
return false;
}
}
package cn.wisenergy.service.impl;
import cn.wisenergy.common.utils.exception.BASE_RESP_CODE_ENUM;
import cn.wisenergy.common.utils.exception.BaseCustomException;
import cn.wisenergy.mapper.WorkProjectChangeMapper;
import cn.wisenergy.model.app.WorkProjectChange;
import cn.wisenergy.service.WorkProjectChangeService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.List;
/**
* <p>
......@@ -12,6 +21,44 @@ import org.springframework.stereotype.Service;
* @since 2021-01-19
*/
@Service
@Slf4j
public class WorkProjectChangeServiceImpl implements WorkProjectChangeService {
@Autowired
private WorkProjectChangeMapper workProjectChangeMapper;
/**
* 批量插入
*
* @param workProjectChanges 集合
* @return 布尔值
*/
@Override
public Boolean insertbatch(List<WorkProjectChange> workProjectChanges) {
log.info("WorkProjectChangeServiceImpl[]insertbatch[]input.param.List<workProjectChanges>:{}"+workProjectChanges);
if (CollectionUtils.isEmpty(workProjectChanges)) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.INPUT_PARAM_IS_NULL);
}
int i = workProjectChangeMapper.insertBatch(workProjectChanges);
return i!=0;
}
/**
* 根据项目id查看更变记录
*
* @param projectId 项目id
* @return 集合
*/
@Override
public List<WorkProjectChange> getByProjectId(Integer projectId) {
log.info("WorkProjectChangeServiceImpl[]getByProjectId[]input.param。projectId:{}"+projectId);
if (null == projectId) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.INPUT_PARAM_IS_NULL);
}
List<WorkProjectChange> workProjectChanges = workProjectChangeMapper.getByProjectId(projectId);
if (CollectionUtils.isEmpty(workProjectChanges)) {
return null;
}
return workProjectChanges;
}
}
package cn.wisenergy.service.impl;
import cn.wisenergy.common.utils.DateUtil;
import cn.wisenergy.common.utils.exception.BASE_RESP_CODE_ENUM;
import cn.wisenergy.common.utils.exception.BaseCustomException;
import cn.wisenergy.mapper.WorkCentreMapper;
......@@ -8,10 +9,14 @@ import cn.wisenergy.mapper.WorkProjectMapper;
import cn.wisenergy.model.app.*;
import cn.wisenergy.model.dto.ManagerProjectsDto;
import cn.wisenergy.model.dto.ProjectDto;
import cn.wisenergy.model.dto.UserProjectDto;
import cn.wisenergy.model.enums.LevelRankEnum;
import cn.wisenergy.model.enums.ManagerEnum;
import cn.wisenergy.model.vo.GetManagerProjectsVo;
import cn.wisenergy.model.vo.ModifyProjectVo;
import cn.wisenergy.service.WorkProjectChangeService;
import cn.wisenergy.service.WorkProjectService;
import cn.wisenergy.service.WorkUserProjectService;
import cn.wisenergy.service.WorkUserService;
import cn.wisenergy.service.utils.UserRoleLevelUtils;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
......@@ -21,9 +26,11 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.stream.Collectors;
......@@ -52,6 +59,12 @@ public class WorkProjectServiceImpl implements WorkProjectService {
@Autowired
private WorkCentreMapper workCentreMapper;
@Autowired
private WorkUserProjectService workUserProjectService;
@Autowired
private WorkProjectChangeService workProjectChangeService;
/**
* 功能:根据项目id获取项目
*
......@@ -106,7 +119,9 @@ public class WorkProjectServiceImpl implements WorkProjectService {
return null;
}
/**WorkProject转ProjectDto*/
/**
* WorkProject转ProjectDto
*/
private List<ProjectDto> workProjectToDto(List<WorkProject> workProjects) {
List<ProjectDto> projectDtos = new ArrayList<>();
......@@ -167,6 +182,7 @@ public class WorkProjectServiceImpl implements WorkProjectService {
@Override
public PageInfo getManagerProjects(GetManagerProjectsVo gmpv) {
log.info("WorkProjectServiceImpl[]getManagerProjects[]input.param.GetManagerProjectsVo:{}" + gmpv);
if (null == gmpv) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.INPUT_PARAM_IS_NULL);
}
......@@ -237,6 +253,118 @@ public class WorkProjectServiceImpl implements WorkProjectService {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.LEAVE_JOB_USER);
}
/**
* 结束项目/商机
*
* @param userId 管理id
* @param projectId 项目/商机id
* @return 布尔值
*/
@Transactional
@Override
public Boolean endProject(Integer userId, Integer projectId) {
log.info("WorkProjectServiceImpl[]endProject[]input.param.userId:{},projectId:{}" + userId, projectId);
List<Integer> role = UserRoleLevelUtils.getRole(userId);
if (role.get(0).equals(ManagerEnum.NOT_MANAGER.getCode())) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.THE_USER_NOT_MANAGER_PLASE_MANAGER_LOGIN);
}
if (null == projectId) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.INPUT_PARAM_IS_NULL);
}
WorkProject workProject = workProjectMapper.selectById(projectId);
if (null == workProject) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.WORK_PROJECT_IS_NULL);
}
int i = workProjectMapper.updateIsConclusionById(projectId);
return i > 0;
}
@Transactional
@Override
public Boolean modifyProject(ModifyProjectVo modifyProjectVo) {
log.info("WorkProjectServiceImpl[]modifyProject[]input.param.ModifyProjectVo:{}" + modifyProjectVo);
// 1.验证项目信息
if (null == modifyProjectVo) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.INPUT_PARAM_IS_NULL);
}
// 查询原项目
WorkProject workProject = workProjectMapper.selectById(modifyProjectVo.getProjectId());
if (null == workProject) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.WORK_PROJECT_IS_NULL);
}
// 查询当前项目的人员
List<UserProjectDto> users = workUserProjectService.getUserProjectByProjectId(modifyProjectVo.getProjectId());
List<Integer> userIds = new ArrayList<>();
for (UserProjectDto user : users) {
userIds.add(user.getId());
}
// 验证项目
verificationItem(modifyProjectVo, workProject, userIds);
// 2.更新表数据
// 更新workProject数据
if (null != modifyProjectVo.getStartTimeReason() ||
null != modifyProjectVo.getEndTimeReason() ||
null != modifyProjectVo.getWorkTimeReason() ||
null != modifyProjectVo.getCostBudgetReason()) {
int i = workProjectMapper.updateProject(modifyProjectVo);
if (i == 0) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.UPDATE_DATA_FAIL);
}
// 向workProjectChange插入内容
List<WorkProjectChange> workProjectChanges = new ArrayList<>();
WorkProjectChange workProjectChange = new WorkProjectChange();
workProjectChange.setProjectId(modifyProjectVo.getProjectId());
workProjectChange.setModifyTime(new Date());
if (null != modifyProjectVo.getStartTimeReason()) {
workProjectChange.setType(3);
workProjectChange.setModifyBefore(DateUtil.convertDateToStr(modifyProjectVo.getStartTime(),"yyyy-MM-dd"));
workProjectChange.setModifyAfter(DateUtil.convertDateToStr(modifyProjectVo.getStartTime(),"yyyy-MM-dd"));
workProjectChange.setReason(modifyProjectVo.getStartTimeReason());
workProjectChanges.add(workProjectChange);
}
if (null != modifyProjectVo.getEndTime()) {
workProjectChange.setType(4);
workProjectChange.setModifyBefore(DateUtil.convertDateToStr(modifyProjectVo.getEndTime(),"yyyy-MM-dd"));
workProjectChange.setModifyAfter(modifyProjectVo.getEndTime().toString());
workProjectChange.setReason(modifyProjectVo.getEndTimeReason());
workProjectChanges.add(workProjectChange);
}
if (null != modifyProjectVo.getWorkTime()) {
workProjectChange.setType(2);
workProjectChange.setModifyBefore(workProject.getWorkTime().toString());
workProjectChange.setModifyAfter(modifyProjectVo.getWorkTime().toString());
workProjectChange.setReason(modifyProjectVo.getWorkTimeReason());
workProjectChanges.add(workProjectChange);
}
if (null != modifyProjectVo.getCostBudget()) {
workProjectChange.setType(1);
workProjectChange.setModifyBefore(workProject.getCostBudget().toString());
workProjectChange.setModifyAfter(modifyProjectVo.getCostBudget().toString());
workProjectChange.setReason(modifyProjectVo.getCostBudgetReason());
workProjectChanges.add(workProjectChange);
}
workProjectChangeService.insertbatch(workProjectChanges);
}
// 更新workUserProject数据
if (!userIds.containsAll(modifyProjectVo.getUserIds()) || !modifyProjectVo.getUserIds().containsAll(userIds)) {
System.out.println("玛纳卡吧");
// 先删除,后插入
if (!workUserProjectService.deleteByProjectId(modifyProjectVo.getProjectId())) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.DELETE_OLD_WORK_ORDER_FAIL);
}
if (!workUserProjectService.insertBatch(modifyProjectVo.getUserIds(), modifyProjectVo.getProjectId())) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.INSERT_DATA_IS_FAIL);
}
}
return true;
}
private PageInfo returnPageInfo(List<ManagerProjectsDto> managerProjectsDto) {
if (CollectionUtils.isEmpty(managerProjectsDto)) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.WORK_PROJECT_IS_NULL);
......@@ -245,4 +373,54 @@ public class WorkProjectServiceImpl implements WorkProjectService {
pageInfo.setList(managerProjectsDto);
return pageInfo;
}
/**
* 判断更变内容是否等于原内容
*/
private void verificationItem(ModifyProjectVo modifyProjectVo, WorkProject workProject, List<Integer> userIds) {
if (null != modifyProjectVo.getStartTime()) {
if (null == modifyProjectVo.getStartTimeReason()) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.REASON_CANNOT_BE_EMPTY);
}
if (workProject.getStartTime().compareTo(modifyProjectVo.getStartTime()) == 0) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.theNewContent_IsEqual_ToTheOriginal_Content);
}
}
if (null != modifyProjectVo.getEndTime()) {
if (null == modifyProjectVo.getEndTimeReason()) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.REASON_CANNOT_BE_EMPTY);
}
if (workProject.getEndTime().compareTo(modifyProjectVo.getEndTime()) == 0) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.theNewContent_IsEqual_ToTheOriginal_Content);
}
}
if (null != modifyProjectVo.getCostBudget()) {
if (null == modifyProjectVo.getCostBudget()) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.REASON_CANNOT_BE_EMPTY);
}
if (workProject.getCostBudget().equals(modifyProjectVo.getCostBudget())) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.theNewContent_IsEqual_ToTheOriginal_Content);
}
}
if (null != modifyProjectVo.getWorkTime()) {
if (null == modifyProjectVo.getWorkTime()) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.REASON_CANNOT_BE_EMPTY);
}
if (workProject.getWorkTime().equals(modifyProjectVo.getWorkTime())) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.theNewContent_IsEqual_ToTheOriginal_Content);
}
}
if (null != modifyProjectVo.getStartTime() && null != modifyProjectVo.getEndTime() && null != modifyProjectVo.getCostBudget() && null != modifyProjectVo.getWorkTime()) {
if (workProject.getStartTime().compareTo(modifyProjectVo.getStartTime()) == 0 && workProject.getEndTime().compareTo(modifyProjectVo.getEndTime()) == 0 && workProject.getCostBudget().equals(modifyProjectVo.getCostBudget()) &&
workProject.getWorkTime().equals(modifyProjectVo.getWorkTime())
&& userIds.containsAll(modifyProjectVo.getUserIds()) &&
modifyProjectVo.getUserIds().containsAll(userIds)) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.theNewContent_IsEqual_ToTheOriginal_Content);
}
}
}
}
......@@ -8,6 +8,7 @@ import cn.wisenergy.service.WorkSubmitAdoptService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
/**
* <p>
......@@ -23,6 +24,7 @@ public class WorkSubmitAdoptServiceImpl implements WorkSubmitAdoptService {
@Autowired
private WorkSubmitAdoptMapper workSubmitAdoptMapper;
/**
* 功能: 获取自动审批和默认填报限制
*
......@@ -41,4 +43,23 @@ public class WorkSubmitAdoptServiceImpl implements WorkSubmitAdoptService {
}
return workSubmitAdopt;
}
@Transactional
@Override
public Boolean modifyAuto(WorkSubmitAdopt workSubmitAdopt) {
log.info("WorkSubmitAdoptServiceImpl[]getById[]input.param.workSubmitAdopt:" + workSubmitAdopt);
if (null == workSubmitAdopt || null == workSubmitAdopt.getSubmitTime() || null == workSubmitAdopt.getAutoExamine() || null == workSubmitAdopt.getId()) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.INPUT_PARAM_IS_NULL);
}
WorkSubmitAdopt workSubmitAdopt1 = workSubmitAdoptMapper.selectById(workSubmitAdopt.getId());
if (null == workSubmitAdopt1) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.QUERY_DATA_IS_NULL);
}
workSubmitAdopt.setAutoAdopt(1);
workSubmitAdopt.setId(1);
int i = workSubmitAdoptMapper.updateById(workSubmitAdopt);
return i > 0;
}
}
......@@ -7,6 +7,7 @@ import cn.wisenergy.mapper.WorkUserProjectMapper;
import cn.wisenergy.model.app.WorkProject;
import cn.wisenergy.model.app.WorkUser;
import cn.wisenergy.model.app.WorkUserProject;
import cn.wisenergy.model.dto.UserProjectDto;
import cn.wisenergy.model.enums.ManagerEnum;
import cn.wisenergy.service.WorkUserProjectService;
import cn.wisenergy.service.WorkUserService;
......@@ -92,4 +93,43 @@ public class WorkUserProjectServiceImpl implements WorkUserProjectService {
//查询
return workProjectMapper.selectList(wrapper);
}
/**
* 根据项目id获取参与人数
*
* @param projectId 项目id
* @return dto
*/
@Override
public List<UserProjectDto> getUserProjectByProjectId(Integer projectId) {
log.info("WorkUserProjectServiceImpl[]getUserProjectByProjectId[]input.param.projectId:{}" + projectId);
if (null == projectId) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.INPUT_PARAM_IS_NULL);
}
List<UserProjectDto> userByProjectId = workUserProjectMapper.getUserByProjectId(projectId);
if (CollectionUtils.isEmpty(userByProjectId)) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.PROJECT_NOT_USER);
}
return userByProjectId;
}
@Override
public Boolean deleteByProjectId(Integer projectId) {
log.info("WorkUserProjectServiceImpl[]deleteByProjectId[]input.param.projectId:{}" + projectId);
if (null == projectId) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.INPUT_PARAM_IS_NULL);
}
int i = workUserProjectMapper.deleteByProjectId(projectId);
return i != 0;
}
@Override
public Boolean insertBatch(List<Integer> userIds, Integer projectId) {
log.info("WorkUserProjectServiceImpl[]deleteByProjectId[]input.param.userIds:{}projectId:{}" + userIds,projectId);
if (CollectionUtils.isEmpty(userIds) || null == projectId) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.INPUT_PARAM_IS_NULL);
}
int i = workUserProjectMapper.insertBatch(userIds, projectId);
return i != 0;
}
}
......@@ -4,21 +4,28 @@ package cn.wisenergy.service.impl;
import cn.wisenergy.common.utils.Md5Util;
import cn.wisenergy.common.utils.exception.BASE_RESP_CODE_ENUM;
import cn.wisenergy.common.utils.exception.BaseCustomException;
import cn.wisenergy.mapper.WorkRoleMapper;
import cn.wisenergy.mapper.WorkUserMapper;
import cn.wisenergy.mapper.WorkUserRoleMapper;
import cn.wisenergy.model.app.WorkRole;
import cn.wisenergy.model.app.WorkSubmitAdopt;
import cn.wisenergy.model.app.WorkUser;
import cn.wisenergy.model.dto.ResultUser;
import cn.wisenergy.model.dto.*;
import cn.wisenergy.model.enums.ManagerEnum;
import cn.wisenergy.service.WorkDeptService;
import cn.wisenergy.service.WorkSubmitAdoptService;
import cn.wisenergy.service.WorkUserService;
import cn.wisenergy.service.utils.UserRoleLevelUtils;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.beanutils.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
......@@ -39,6 +46,15 @@ public class WorkUserServiceImpl implements WorkUserService {
@Autowired
private WorkSubmitAdoptService workSubmitAdoptService;
@Autowired
private WorkDeptService workDeptService;
@Autowired
private WorkRoleMapper workRoleMapper;
@Autowired
private WorkUserRoleMapper workUserRoleMapper;
private static final String LOGIN_SOURCE = "PC";
// 用户在职状态码
......@@ -99,6 +115,83 @@ public class WorkUserServiceImpl implements WorkUserService {
return getResultUser(user);
}
@Override
public List<OrganizationStructureDto> getOrganizationStructure() {
log.info("WorkUserServiceImpl[]getOrganizationStructure[]");
List<OrganizationStructureDto> allDeptByAllCentreId = workDeptService.getAllDeptByAllCentreId();
QueryWrapper<WorkUser> wrapper = new QueryWrapper<>();
wrapper.eq("status", 1);
List<WorkUser> workUsers = workUserMapper.selectList(wrapper);
if (CollectionUtils.isEmpty(workUsers)) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.DEPT_NOT_HAVE_USER);
}
ResultUser resultUser ;
for (OrganizationStructureDto organizationStructureDto : allDeptByAllCentreId) {
List<DeptUserDto> deptUserDtos = organizationStructureDto.getDeptUserDtos();
for (DeptUserDto deptUserDto : deptUserDtos) {
List<ResultUser> ResultUsers = new ArrayList<>();
for (WorkUser workUser : workUsers) {
if (workUser.getDeptId().equals(deptUserDto.getDeptId())) {
resultUser = getResultUser(workUser);
ResultUsers.add(resultUser);
}
}
deptUserDto.setResultUsers(ResultUsers);
}
}
return allDeptByAllCentreId;
}
@Override
public AllRoleAndUserRoleDto getUserRoleDto() {
log.info("WorkUserServiceImpl[]getUserRoleDto[]");
List<UserRoleDto> userRoleDtos = workUserMapper.getUserRoleDto();
if (CollectionUtils.isEmpty(userRoleDtos)) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.QUERY_DATA_IS_NULL);
}
List<WorkRole> workRoles = new ArrayList<>();
WorkRole workRole = workRoleMapper.selectById(0);
workRoles.add(workRole);
for (UserRoleDto userRoleDto : userRoleDtos) {
if (CollectionUtils.isEmpty(userRoleDto.getWorkRoles())) {
userRoleDto.setWorkRoles(workRoles);
}
}
List<WorkRole> allWorkRole = UserRoleLevelUtils.getAllWorkRole();
if (CollectionUtils.isEmpty(allWorkRole)) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.QUERY_DATA_IS_NULL);
}
AllRoleAndUserRoleDto allRoleAndUserRoleDto = new AllRoleAndUserRoleDto();
allRoleAndUserRoleDto.setUserRoleDtos(userRoleDtos);
allRoleAndUserRoleDto.setWorkRoles(allWorkRole);
return allRoleAndUserRoleDto;
}
@Transactional
@Override
public Boolean modifyRole(Integer userId, List<Integer> roleIds) {
log.info("WorkUserServiceImpl[]modifyRole[].input.param.userId:{},roleIds:{}" + userId,roleIds);
WorkUser workUser = workUserMapper.selectById(userId);
if (null == workUser) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.QUERY_DATA_IS_NULL);
}
workUserRoleMapper.deleteByUserId(userId);
if (1 == roleIds.size() && 0 == roleIds.get(0)) {
return true;
}
if (roleIds.size() > 1) {
for (Integer roleId : roleIds) {
if (roleId == 0) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.ORDINARY_MEMBERS_ARE_MANAGEMENT);
}
}
}
workUserRoleMapper.insertBatch(userId, roleIds);
return true;
}
@Override
public ResultUser login(String loginName, String password, String source) {
log.info("WorkUserServiceImpl[]login[].input.param" + loginName + password + source);
......
......@@ -88,11 +88,11 @@ public class UserRoleLevelUtils {
return levelIds;
}
public static List<WorkLevel> getlevelByIds(List<Integer> ids) {
if (CollectionUtils.isEmpty(ids)) {
public static List<WorkLevel> getlevelByIds(List<Integer> levelIds) {
if (CollectionUtils.isEmpty(levelIds)) {
return null;
}
List<WorkLevel> workLevels =utils. workLevelMapper.selectBatchIds(ids);
List<WorkLevel> workLevels =utils. workLevelMapper.selectBatchIds(levelIds);
if (CollectionUtils.isEmpty(workLevels)) {
return null;
}
......
package cn.wisenergy.web.admin.controller.app;
import cn.wisenergy.common.utils.exception.BASE_RESP_CODE_ENUM;
import cn.wisenergy.common.utils.exception.BaseCustomException;
import cn.wisenergy.common.utils.exception.Result;
import cn.wisenergy.model.app.WorkHoliday;
import cn.wisenergy.model.app.WorkSubmitAdopt;
import cn.wisenergy.model.dto.AllRoleAndUserRoleDto;
import cn.wisenergy.model.dto.HolidayAndAutoDto;
import cn.wisenergy.service.WorkHolidayService;
import cn.wisenergy.service.WorkSubmitAdoptService;
import cn.wisenergy.service.WorkUserService;
import cn.wisenergy.web.admin.controller.common.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.beanutils.ConvertUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
* @author 玛卡巴卡
*/
@RestController
@RequestMapping(value = "/systemManager")
@Slf4j
@Api(tags = "系统管理")
public class SystemController extends BaseController {
@Autowired
private WorkHolidayService workHolidayService;
@Autowired
private WorkSubmitAdoptService workSubmitAdoptService;
@Autowired
private WorkUserService workUserService;
@ApiOperation(value = "添加工作日历", notes = "添加工作日历", httpMethod = "POST")
@ApiImplicitParam(name = "workHoliday", value = "节假日实体类",dataType = "WorkHoliday",required = true)
@PostMapping("/addHoliday")
public Result<Boolean> addHoliday(@RequestBody WorkHoliday workHoliday) {
log.info("SystemController[]addHoliday[]input.param.workHoliday:{}" + workHoliday);
Boolean aBoolean = workHolidayService.addHoliday(workHoliday);
return getResult(aBoolean);
}
@ApiOperation(value = "编辑工作日历", notes = "编辑工作日历", httpMethod = "PUT")
@ApiImplicitParam(name = "workHoliday", value = "节假日实体类",dataType = "WorkHoliday",required = true)
@PutMapping("/modifyHoliday")
public Result<Boolean> modifyHoliday(@RequestBody WorkHoliday workHoliday) {
log.info("SystemController[]modifyHoliday[]input.param.workHoliday:{}" + workHoliday);
Boolean aBoolean = workHolidayService.modifyHoliday(workHoliday);
return getResult(aBoolean);
}
@ApiOperation(value = "删除工作日历", notes = "删除工作日历", httpMethod = "DELETE")
@ApiImplicitParam(name = "id", value = "节假日id",dataType = "int",required = true)
@DeleteMapping("/deleteHoliday")
public Result<Boolean> deleteHoliday(Integer id) {
log.info("SystemController[]deleteHoliday[]input.param.id:{}" + id);
Boolean aBoolean = workHolidayService.deleteHoliday(id);
return getResult(aBoolean);
}
@ApiOperation(value = "获取工作日历和审批时限", notes = "获取工作日历和审批时限", httpMethod = "GET")
@GetMapping("/getHolidayAndAuto")
public Result<HolidayAndAutoDto> getHolidayAndAuto() {
log.info("SystemController[]getHolidayAndAuto[]" );
HolidayAndAutoDto holidayAll = workHolidayService.getHolidayAll();
return getResult(holidayAll);
}
@ApiOperation(value = "修改审批时限", notes = "修改审批时限", httpMethod = "PUT")
@ApiImplicitParam(name = "workSubmitAdopt",value = "审批时限",required = true)
@PutMapping("/modifyAuto")
public Result<Boolean> modifyAuto(@RequestBody WorkSubmitAdopt workSubmitAdopt) {
log.info("SystemController[]modifyAuto[]input.param.workSubmitAdopt:{}" + workSubmitAdopt);
Boolean aBoolean = workSubmitAdoptService.modifyAuto(workSubmitAdopt);
return getResult(aBoolean);
}
@ApiOperation(value = "获取账号列表", notes = "获取账号列表", httpMethod = "GET")
@GetMapping("/getAllRole")
public Result<AllRoleAndUserRoleDto> getAllRole() {
log.info("SystemController[]getAllRole[]");
AllRoleAndUserRoleDto allRoleAndUserRoleDto = workUserService.getUserRoleDto();
return getResult(allRoleAndUserRoleDto);
}
@ApiOperation(value = "设置角色", notes = "设置角色", httpMethod = "POST")
@ApiImplicitParams({
@ApiImplicitParam(name = "userId",value = "用户id",dataType = "int",required = true),
@ApiImplicitParam(name = "roleIds", value = "角色ids", dataType = "String", required = true)
})
@PostMapping("/modifyRole")
public Result<Boolean> modifyRole(Integer userId,String roleIds) {
log.info("SystemController[]modifyRole[]input.param.userId:{},roleIds:{}" + userId, roleIds);
if (null == userId || StringUtils.isBlank(roleIds)) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.INPUT_PARAM_IS_NULL);
}
String[] split = roleIds.split("\\,");
Integer[] newIds = (Integer[]) ConvertUtils.convert(split, Integer.class);
List<Integer> lists = new ArrayList<>(Arrays.asList(newIds));
Boolean aBoolean = workUserService.modifyRole(userId, lists);
return getResult(aBoolean);
}
}
package cn.wisenergy.web.admin.controller.app;
import cn.wisenergy.common.utils.exception.Result;
import cn.wisenergy.model.app.WorkProjectChange;
import cn.wisenergy.model.dto.ManagerProjectsDto;
import cn.wisenergy.model.vo.GetManagerProjectsVo;
import cn.wisenergy.model.vo.ModifyProjectVo;
import cn.wisenergy.service.WorkProjectChangeService;
import cn.wisenergy.service.WorkProjectService;
import cn.wisenergy.web.admin.controller.common.BaseController;
import com.github.pagehelper.PageInfo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* @description:
......@@ -30,6 +33,9 @@ public class WorkProjectController extends BaseController {
@Autowired
private WorkProjectService workProjectService;
@Autowired
private WorkProjectChangeService workProjectChangeService;
@ApiOperation(value = "项目/商机基础信息", notes = "项目/商机基础信息", httpMethod = "POST")
@ApiImplicitParam(name = "gmpv",value = "获取管理的项目/商机",dataType = "GetManagerProjectsVo")
@PostMapping(value = "/getProject")
......@@ -39,6 +45,35 @@ public class WorkProjectController extends BaseController {
return getResult(managerProjeets);
}
@ApiOperation(value = "结束项目/商机", notes = "结束项目/商机", httpMethod = "PUT")
@ApiImplicitParams({
@ApiImplicitParam(name = "userId",value = "管理员id",dataType = "int"),
@ApiImplicitParam(name = "projectId",value = "项目id",dataType = "int")
})
@PutMapping(value = "/endProject")
public Result<Boolean> endProject(Integer userId,Integer projectId) {
log.info("WorkProjectController[]endProject[]input.param.userId:{},projectId:{}" + userId,projectId);
Boolean aBoolean = workProjectService.endProject(userId,projectId);
return getResult(aBoolean);
}
@ApiOperation(value = "编辑项目/商机", notes = "编辑项目/商机", httpMethod = "POST")
@ApiImplicitParam(name = "modifyProjectVo", value = "编辑内容", dataType = "ModifyProjectVo", required = true)
@PostMapping(value = "/modifyProject")
public Result<Boolean> modifyProject(@RequestBody ModifyProjectVo modifyProjectVo) {
log.info("WorkProjectController[]endProject[]input.param.modifyProjectVo:{}" + modifyProjectVo);
Boolean aBoolean = workProjectService.modifyProject(modifyProjectVo);
return getResult(aBoolean);
}
@ApiOperation(value = "查看项目/商机详情", notes = "查看项目/商机详情", httpMethod = "GET")
@ApiImplicitParam(name = "projectId", value = "项目id", dataType = "int", required = true)
@GetMapping(value = "/getProjectInfo")
public Result<WorkProjectChange> getProjectInfo(Integer projectId) {
log.info("WorkProjectController[]getProjectInfo[]input.param.projectId:{}" + projectId);
List<WorkProjectChange> workProjectChanges = workProjectChangeService.getByProjectId(projectId);
return getResult(workProjectChanges);
}
}
package cn.wisenergy.web.admin.controller.app;
import cn.wisenergy.common.utils.exception.*;
import cn.wisenergy.model.dto.OrganizationStructureDto;
import cn.wisenergy.model.dto.ResultUser;
import cn.wisenergy.service.WorkUserService;
import cn.wisenergy.web.admin.controller.common.BaseController;
......@@ -15,6 +16,8 @@ import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* @description:
* @author: nh
......@@ -72,4 +75,12 @@ public class WorkUserController extends BaseController {
return getResult(resultUser);
}
@ApiOperation(value = "组织架构", notes = "组织架构", httpMethod = "GET")
@GetMapping(value = "/getOrganizationStructureDto")
public Result<List<OrganizationStructureDto>> getOrganizationStructureDto(){
List<OrganizationStructureDto> organizationStructure = workUserService.getOrganizationStructure();
return getResult(organizationStructure);
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment