Commit d514fced authored by nie'hong's avatar nie'hong

完善工时统计

parent f18cc781
...@@ -541,4 +541,30 @@ public class StringUtil { ...@@ -541,4 +541,30 @@ public class StringUtil {
return sb2.toString(); return sb2.toString();
} }
} }
/**
* 去除字符串前后两端的空白字符
*/
public static String replaceBlank(String str){
char[] chars = str.toCharArray();
int i = 0;
int j = 0;
for (int i1 = 0; i1 < chars.length; i1++) {
if (chars[i1] != '\n' && chars[i1] != '\r') {
i = i1;
break;
}
}
for (int i1 = chars.length - 1; i1 >= 0; i1--) {
if (chars[i1] != '\n' && chars[i1] != '\r') {
j = i1;
break;
}
}
return str.substring(i, j);
}
} }
...@@ -90,11 +90,12 @@ public enum BASE_RESP_CODE_ENUM { ...@@ -90,11 +90,12 @@ public enum BASE_RESP_CODE_ENUM {
PLEASESELECTADEPARTMENT("672","请选择一个部门"), PLEASESELECTADEPARTMENT("672","请选择一个部门"),
WECHAT_NOT_BIND("673","微信未绑定"), WECHAT_NOT_BIND("673","微信未绑定"),
DATE_HANDLE_ERROR("674", "数据处理出错"), DATE_HANDLE_ERROR("674", "数据处理出错"),
WORK_DAY_IS_REPEAT("675", "所选日期段内已有填报,请重新选择"), WORK_DAY_IS_REPEAT("675", "所选日期段内已有填报工时,请重新选择"),
LONG_LEAVE_TYPE_ERROR("676","填报长假/长休类型错误,只能填报请假和调休"), LONG_LEAVE_TYPE_ERROR("676","填报长假/长休类型错误,只能填报请假和调休"),
LONG_LEAVE_DATE_NOT_ONLY_HOLIDAY("677", "长请假/调休不能只包含节假日"), LONG_LEAVE_DATE_NOT_ONLY_HOLIDAY("677", "长请假/调休不能只包含节假日"),
LONG_LEAVE_DATE_ERROR("678", "长请假/调休所选择时间超出规定填报时间"), LONG_LEAVE_DATE_ERROR("678", "长请假/调休所选择时间超出规定填报时间"),
NEW_PROJECT_OA_PROJECT_ID_OR_NAME_ERROR("679","新建项目/商机对应编号在OA中未找到") NEW_PROJECT_OA_PROJECT_ID_OR_NAME_ERROR("679","新建项目/商机对应编号在OA中未找到"),
CREATE_PROJECT_MANAGER_NOT_FOUND("680", "项目/商机负责人在工时系统中未找到")
; ;
......
...@@ -139,17 +139,6 @@ ...@@ -139,17 +139,6 @@
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.9.8" level="project" /> <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.9.8" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.9.8" level="project" /> <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.9.8" level="project" />
<orderEntry type="library" name="Maven: joda-time:joda-time:2.10.2" level="project" /> <orderEntry type="library" name="Maven: joda-time:joda-time:2.10.2" level="project" />
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-core:1.4.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-lang:1.4.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-cache:1.4.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-crypto-hash:1.4.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-crypto-core:1.4.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-crypto-cipher:1.4.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-config-core:1.4.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-config-ogdl:1.4.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-event:1.4.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-spring:1.4.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-web:1.4.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.poi:poi:3.9" level="project" /> <orderEntry type="library" name="Maven: org.apache.poi:poi:3.9" level="project" />
<orderEntry type="library" name="Maven: org.apache.poi:poi-ooxml:3.9" level="project" /> <orderEntry type="library" name="Maven: org.apache.poi:poi-ooxml:3.9" level="project" />
<orderEntry type="library" name="Maven: dom4j:dom4j:1.6.1" level="project" /> <orderEntry type="library" name="Maven: dom4j:dom4j:1.6.1" level="project" />
......
...@@ -37,4 +37,11 @@ public interface WorkDeptMapper extends BaseMapper<WorkDept> { ...@@ -37,4 +37,11 @@ public interface WorkDeptMapper extends BaseMapper<WorkDept> {
* @return * @return
*/ */
WorkDept getOaDeptNoByUserId(Integer userId); WorkDept getOaDeptNoByUserId(Integer userId);
/**
* 获取所有部门信息
* @return
*/
List<WorkDept> getAllDept();
} }
...@@ -71,13 +71,12 @@ public interface WorkProjectMapper extends BaseMapper<WorkProject> { ...@@ -71,13 +71,12 @@ public interface WorkProjectMapper extends BaseMapper<WorkProject> {
/** /**
* 获取项目/商机集合 * 获取项目/商机集合
* @param deptId
* @param typeId * @param typeId
* @param projectNameOrNo 项目的oa编号或名称模糊查询 * @param projectNameOrNo 项目的oa编号或名称模糊查询
* @return * @return
*/ */
List<WorkProject> getListByDeptAndType(@Param("deptId") Integer deptId, @Param("typeId") Integer typeId, @Param("projectNameOrNo") String projectNameOrNo); List<String> getListByDeptAndType( @Param("typeId") Integer typeId, @Param("projectNameOrNo") String projectNameOrNo);
WorkProject getByProjectNameOrOaId(@Param("projectName") String projectName, @Param("oaId") String oaId); WorkProject getByProjectOaId( @Param("oaId") String oaId);
} }
package cn.wisenergy.oaMapper; package cn.wisenergy.oaMapper;
import cn.wisenergy.oaModel.OaProject; import cn.wisenergy.oaModel.OaProject;
import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -13,9 +12,9 @@ import java.util.Map; ...@@ -13,9 +12,9 @@ import java.util.Map;
**/ **/
public interface ProjectAndBoMapper { public interface ProjectAndBoMapper {
List<OaProject> getListOaProjectByDept(@Param("oaDeptNo") String oaDeptNo,@Param("projectNameOrNo") String projectNameOrNo, @Param("oaProjectIds") List<String> oaProjectIds); List<OaProject> getListOaProjectByDept(Map<String, Object> map);
List<OaProject> getListOaBoByDept(@Param("oaDeptNo") String oaDeptNo ,@Param("projectNameOrNo") String projectNameOrNo, @Param("oaProjectIds") List<String> oaProjectIds); List<OaProject> getListOaBoByDept(Map<String, Object> map);
OaProject getProjectByNameAndNo(Map<String, Object> map); OaProject getProjectByNameAndNo(Map<String, Object> map);
......
...@@ -122,4 +122,11 @@ ORDER BY d.sort,p.id ...@@ -122,4 +122,11 @@ ORDER BY d.sort,p.id
where ud.user_id = #{userId} where ud.user_id = #{userId}
</select> </select>
<select id="getAllDept" resultType="cn.wisenergy.model.app.WorkDept">
select
<include refid="cols_all"/>
from
<include refid="table"/>
</select>
</mapper> </mapper>
...@@ -212,7 +212,7 @@ ...@@ -212,7 +212,7 @@
</where> </where>
GROUP BY p.id GROUP BY p.id
ORDER BY p.is_conclusion DESC, p.create_time DESC ORDER BY p.is_conclusion DESC, p.conclusion_time DESC, p.create_time DESC
</select> </select>
...@@ -295,7 +295,7 @@ ...@@ -295,7 +295,7 @@
select p.type,t.name 'type_name',p.id 'project_id',p.project_name,up.user_id,u.name 'user_name',u.dept_id,d.dept_name,d1.id,d1.dept_name select p.type,t.name 'type_name',p.id 'project_id',p.project_name,up.user_id,u.name 'user_name',u.dept_id,d.dept_name,d1.id,d1.dept_name
from work_project p LEFT JOIN work_user_project up on p.id = up.project_id from work_project p LEFT JOIN work_user_project up on p.id = up.project_id
LEFT JOIN work_user u ON up.user_id = u.id LEFT JOIN work_user u ON up.user_id = u.id
LEFT JOIN (select id,dept_name,sort FROM work_dept)d1 ON d1.id = p.dept_id LEFT JOIN work_dept d1 ON d1.id = p.dept_id
LEFT JOIN work_dept d ON d.id = u.dept_id LEFT JOIN work_dept d ON d.id = u.dept_id
LEFT JOIN work_type t ON p.type = t.id LEFT JOIN work_type t ON p.type = t.id
<where> <where>
...@@ -304,29 +304,22 @@ ...@@ -304,29 +304,22 @@
AND p.manager_id = #{userId} AND p.manager_id = #{userId}
</if> </if>
</where> </where>
ORDER BY t.sort,d1.sort,p.id ORDER BY t.sort,d.sort,p.id
</select> </select>
<select id="getListByOaIds" resultType="cn.wisenergy.model.app.WorkProject">
select <include refid="Base_Column_List"/>
from <include refid="table"/>
where oa_project_id in
<foreach collection="oaProjectIds" item="oaProjectId" open="(" close=")" separator=",">
#{oaProjectId}
</foreach>
</select>
<select id="getListByDeptAndType" resultType="cn.wisenergy.model.app.WorkProject"> <select id="getListByDeptAndType" resultType="string">
select <include refid="Base_Column_List"/> select distinct oa_project_id
from <include refid="table"/> from <include refid="table"/>
where dept_id = #{deptId} AND type = #{typeId} AND (oa_project_id like CONCAT("%" ,#{projectNameOrNo},"%") OR project_name like CONCAT("%" ,#{projectNameOrNo},"%")) <where>
type = #{typeId} AND (oa_project_id like CONCAT("%" ,#{projectNameOrNo},"%") OR project_name like CONCAT("%" ,#{projectNameOrNo},"%"))
</where>
</select> </select>
<select id="getByProjectNameOrOaId" resultType="cn.wisenergy.model.app.WorkProject"> <select id="getByProjectOaId" resultType="cn.wisenergy.model.app.WorkProject">
select <include refid="Base_Column_List"/> select <include refid="Base_Column_List"/>
from <include refid="table"/> from <include refid="table"/>
where project_name = #{projectName} OR oa_project_id = #{oaId} where oa_project_id = #{oaId}
</select> </select>
......
...@@ -30,6 +30,7 @@ ...@@ -30,6 +30,7 @@
<resultMap id="projectStatisticsByMonth" type="cn.wisenergy.model.dto.ProjectStatisticsByMonth"> <resultMap id="projectStatisticsByMonth" type="cn.wisenergy.model.dto.ProjectStatisticsByMonth">
<result property="projectId" column="project_id"/> <result property="projectId" column="project_id"/>
<result property="oaProjectId" column="oa_project_id"/>
<result property="projectName" column="project_name"/> <result property="projectName" column="project_name"/>
<result property="deptName" column="dept_name"/> <result property="deptName" column="dept_name"/>
<result property="userName" column="user_name"/> <result property="userName" column="user_name"/>
...@@ -114,7 +115,10 @@ ...@@ -114,7 +115,10 @@
<select id="selectListByMonth" resultMap="projectStatisticsByMonth"> <select id="selectListByMonth" resultMap="projectStatisticsByMonth">
select <if test="projectId == null and projectIds == null">'合计' AS project_name,</if> <if test="projectId != null"> project_name, dept_name,</if> <if test=" projectIds != null"> project_id,project_name, dept_name,</if> group_CONCAT(DISTINCT YEAR (statistics_start),'年',MONTH (statistics_start),'月') AS `date`,year(statistics_start) AS year, sum(total_time) AS total_time, sum(cost) AS cost select <if test="projectId == null and projectIds == null">'合计' AS project_name,</if>
<if test="projectId != null"> project_name, dept_name,</if>
<if test=" projectIds != null"> project_id,if(oa_project_id is null,'',oa_project_id) AS oa_project_id,project_name, dept_name,</if>
group_CONCAT(DISTINCT YEAR (statistics_start),'年',MONTH (statistics_start),'月') AS `date`,year(statistics_start) AS year, sum(total_time) AS total_time, sum(cost) AS cost
from work_project_time_cost ptc join work_project p on ptc.project_id = p.id join work_dept d on p.dept_id = d.id from work_project_time_cost ptc join work_project p on ptc.project_id = p.id join work_dept d on p.dept_id = d.id
<where> <where>
<if test="projectId != null "> <if test="projectId != null ">
...@@ -142,7 +146,7 @@ ...@@ -142,7 +146,7 @@
</select> </select>
<select id="selectListStatistics" resultMap="projectStatisticsByMonth"> <select id="selectListStatistics" resultMap="projectStatisticsByMonth">
select ptc.project_id AS project_id, project_name, select ptc.project_id AS project_id,if(oa_project_id is null,'',oa_project_id) AS oa_project_id, project_name,
group_CONCAT(DISTINCT YEAR (statistics_start),'年',MONTH (statistics_start),'月') AS date,year(statistics_start) AS year, group_CONCAT(DISTINCT YEAR (statistics_start),'年',MONTH (statistics_start),'月') AS date,year(statistics_start) AS year,
sum(total_time) AS total_time, sum(cost) AS cost <if test="projectId != null || (projectIds != null and !isAll)"> ,d.dept_name AS dept_name</if> <if test="projectIds != null and isAll">,d.dept_name AS dept_name,u.name AS user_name </if> sum(total_time) AS total_time, sum(cost) AS cost <if test="projectId != null || (projectIds != null and !isAll)"> ,d.dept_name AS dept_name</if> <if test="projectIds != null and isAll">,d.dept_name AS dept_name,u.name AS user_name </if>
from work_project_time_cost ptc join work_project p on ptc.project_id = p.id join work_dept d on ptc.dept_id = d.id join work_user u on ptc.user_id = u.id from work_project_time_cost ptc join work_project p on ptc.project_id = p.id join work_dept d on ptc.dept_id = d.id join work_user u on ptc.user_id = u.id
......
...@@ -28,56 +28,80 @@ ...@@ -28,56 +28,80 @@
</resultMap> </resultMap>
<sql id="values_project"> <sql id="values_project">
project_no, project_name ,pm_no ,bo_no ,bo_name ,manager_name, project_no, project_name ,pm_no ,bo_no ,
project_depart_no ,project_depart_name ,cost,start_date ,end_date project_depart_no ,cost,start_date ,end_date
</sql> </sql>
<sql id="values_bo"> <sql id="values_bo">
bo, bo_name,pm_no,manager_name,project_depart_no,project_depart_name bo, bo_name,pm_no,manager_name,project_depart_no,project_depart_nam
</sql> </sql>
<select id="getListOaProjectByDept" resultMap="Project_Map"> <select id="getListOaProjectByDept" resultMap="Project_Map">
select p.project_no, p.project_name, p.pm_no, p.project_depart_no, p.cost, p.start_date, p.end_date, b.bo_no, b.bo_name select p.project_no, p.project_name, p.pm_no, p.project_depart_no, p.cost, p.start_date, p.end_date, b.bo_no, b.bo_name
from v_project_base p left join v_bo_base b on p.bo_no = b.bo_no from v_project_base p left join v_bo_base b on p.bo_no = b.bo_no
where p.project_depart_no = #{oaDeptNo} <where>
<if test="oaDeptNo != null">
p.project_depart_no = #{oaDeptNo}
</if>
AND (p.project_no like CONCAT("%" ,#{projectNameOrNo},"%") OR p.project_name like CONCAT("%" ,#{projectNameOrNo},"%")) AND (p.project_no like CONCAT("%" ,#{projectNameOrNo},"%") OR p.project_name like CONCAT("%" ,#{projectNameOrNo},"%"))
<if test="oaProjectIds.size != 0"> <if test="oaProjectIds != null">
AND p.project_no not in AND p.project_no not in
<foreach collection="oaProjectIds" item="oaProject" open="(" close=")" separator=","> <foreach collection="oaProjectIds" item="oaProject" open="(" close=")" separator=",">
#{oaProject} #{oaProject}
</foreach> </foreach>
</if> </if>
</where>
</select> </select>
<select id="getListOaBoByDept" resultMap="Bo_Map"> <select id="getListOaBoByDept" resultMap="Bo_Map">
select b.bo_no AS project_no, b.bo_name AS project_name, b.pm_no, b.pm_name, b.project_depart_no, b.project_depart_name select b.bo_no AS project_no, b.bo_name AS project_name, b.pm_no, b.pm_name, b.project_depart_no, b.project_depart_name
from v_project_base p right join v_bo_base b on p.bo_no = b.bo_no from v_bo_base b
where (b.project_depart_no = #{oaDeptNo} OR p.project_depart_no = #{oaDeptNo}) <where>
<if test="oaDeptNo != null">
(pm_no IN (
SELECT
m. CODE
FROM
v_org_member m
JOIN v_org_unit u ON u.ID = m.ORG_DEPARTMENT_ID
WHERE
u. CODE = #{oaDeptNo}
)
OR
EXISTS (SELECT
p.bo_no
FROM
v_project_base p
left JOIN v_org_member m ON p.pm_no = m.`CODE`
left JOIN v_org_unit u ON m.ORG_DEPARTMENT_ID = u.ID
WHERE
u. CODE = #{oaDeptNo}
))
</if>
AND (b.bo_no like CONCAT("%" ,#{projectNameOrNo},"%") OR b.bo_name like CONCAT("%" ,#{projectNameOrNo},"%")) AND (b.bo_no like CONCAT("%" ,#{projectNameOrNo},"%") OR b.bo_name like CONCAT("%" ,#{projectNameOrNo},"%"))
<if test="oaProjectIds.size != 0"> <if test="oaProjectIds != null">
AND b.bo_no not in AND b.bo_no not in
<foreach collection="oaProjectIds" item="oaProject" open="(" close=")" separator=","> <foreach collection="oaProjectIds" item="oaProject" open="(" close=")" separator=",">
#{oaProject} #{oaProject}
</foreach> </foreach>
</if> </if>
</where>
</select> </select>
<select id="getProjectByNameAndNo" resultMap="Project_Map"> <select id="getProjectByNameAndNo" resultMap="Project_Map">
select <include refid="values_project"/> select <include refid="values_project"/>
from v_project_base from v_project_base
where project_no = #{projectNo} AND project_name = #{projectName} where project_no = #{projectNo} AND TRIM(project_name) = #{projectName} AND pm_no = #{managerNo}
<!--<if test="boNo != null ">--> <if test="boNo != null ">
<!--AND bo_no = #{boNo} --> AND bo_no = #{boNo}
<!--</if>--> </if>
</select> </select>
<select id="getBoByNameAndNo" resultMap="Bo_Map"> <select id="getBoByNameAndNo" resultMap="Bo_Map">
select bo_no AS project_no, bo_name AS project_name,pm_no,manager_name,project_depart_no,project_depart_name select bo_no AS project_no, bo_name AS project_name,pm_no,project_depart_no,project_depart_name
from v_bo_base from v_bo_base
where bo_no = #{projectNo} AND bo_name = #{projectName} where bo_no = #{projectNo} AND TRIM(bo_name) = #{projectName} AND pm_no = #{managerNo}
</select> </select>
......
...@@ -29,6 +29,7 @@ ...@@ -29,6 +29,7 @@
<orderEntry type="module" module-name="wisenergy-common" /> <orderEntry type="module" module-name="wisenergy-common" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:2.1.5.RELEASE" level="project" /> <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:2.1.5.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:2.1.5.RELEASE" level="project" /> <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:2.1.5.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:2.1.5.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-logging:2.1.5.RELEASE" level="project" /> <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-logging:2.1.5.RELEASE" level="project" />
<orderEntry type="library" name="Maven: ch.qos.logback:logback-classic:1.2.3" level="project" /> <orderEntry type="library" name="Maven: ch.qos.logback:logback-classic:1.2.3" level="project" />
<orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.2.3" level="project" /> <orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.2.3" level="project" />
...@@ -91,11 +92,21 @@ ...@@ -91,11 +92,21 @@
<orderEntry type="library" name="Maven: org.springframework:spring-test:5.1.7.RELEASE" level="project" /> <orderEntry type="library" name="Maven: org.springframework:spring-test:5.1.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.xmlunit:xmlunit-core:2.6.2" level="project" /> <orderEntry type="library" name="Maven: org.xmlunit:xmlunit-core:2.6.2" level="project" />
<orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-starter:2.1.2" level="project" /> <orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-starter:2.1.2" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:2.1.5.RELEASE" level="project" />
<orderEntry type="library" name="Maven: com.zaxxer:HikariCP:3.2.0" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-jdbc:5.1.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-autoconfigure:2.1.2" level="project" /> <orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-autoconfigure:2.1.2" level="project" />
<orderEntry type="library" name="Maven: org.mybatis:mybatis:3.5.4" level="project" /> <orderEntry type="library" name="Maven: org.mybatis:mybatis:3.5.4" level="project" />
<orderEntry type="library" name="Maven: org.mybatis:mybatis-spring:2.0.4" level="project" />
<orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper-spring-boot-starter:1.2.10" level="project" /> <orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper-spring-boot-starter:1.2.10" level="project" />
<orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper-spring-boot-autoconfigure:1.2.10" level="project" /> <orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper-spring-boot-autoconfigure:1.2.10" level="project" />
<orderEntry type="library" name="Maven: mysql:mysql-connector-java:8.0.16" level="project" /> <orderEntry type="library" name="Maven: mysql:mysql-connector-java:8.0.16" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-boot-starter:3.1.2" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus:3.1.2" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-extension:3.1.2" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-core:3.1.2" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-annotation:3.1.2" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.1.5.RELEASE" level="project" />
<orderEntry type="library" name="Maven: com.alibaba:druid-spring-boot-starter:1.1.22" level="project" /> <orderEntry type="library" name="Maven: com.alibaba:druid-spring-boot-starter:1.1.22" level="project" />
<orderEntry type="library" name="Maven: com.alibaba:druid:1.1.22" level="project" /> <orderEntry type="library" name="Maven: com.alibaba:druid:1.1.22" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-data-redis:2.1.5.RELEASE" level="project" /> <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-data-redis:2.1.5.RELEASE" level="project" />
...@@ -133,30 +144,7 @@ ...@@ -133,30 +144,7 @@
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.9.8" level="project" /> <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.9.8" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.9.8" level="project" /> <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.9.8" level="project" />
<orderEntry type="library" name="Maven: joda-time:joda-time:2.10.2" level="project" /> <orderEntry type="library" name="Maven: joda-time:joda-time:2.10.2" level="project" />
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-core:1.4.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-lang:1.4.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-cache:1.4.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-crypto-hash:1.4.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-crypto-core:1.4.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-crypto-cipher:1.4.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-config-core:1.4.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-config-ogdl:1.4.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-event:1.4.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-spring:1.4.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-web:1.4.0" level="project" />
<orderEntry type="library" name="Maven: cn.hutool:hutool-all:4.6.7" level="project" /> <orderEntry type="library" name="Maven: cn.hutool:hutool-all:4.6.7" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-generator:3.4.1" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-annotation:3.4.0" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-extension:3.4.0" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-core:3.4.0" level="project" />
<orderEntry type="library" name="Maven: org.mybatis:mybatis-spring:2.0.5" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-boot-starter:3.4.0" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus:3.4.0" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.1.5.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:2.1.5.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:2.1.5.RELEASE" level="project" />
<orderEntry type="library" name="Maven: com.zaxxer:HikariCP:3.2.0" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-jdbc:5.1.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.apache.velocity:velocity-engine-core:2.0" level="project" /> <orderEntry type="library" name="Maven: org.apache.velocity:velocity-engine-core:2.0" level="project" />
<orderEntry type="library" name="Maven: com.github.jsqlparser:jsqlparser:1.4" level="project" /> <orderEntry type="library" name="Maven: com.github.jsqlparser:jsqlparser:1.4" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.8.1" level="project" /> <orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.8.1" level="project" />
......
...@@ -21,6 +21,9 @@ public class ProjectStatisticsByMonth implements Serializable { ...@@ -21,6 +21,9 @@ public class ProjectStatisticsByMonth implements Serializable {
@ApiModelProperty(name = "projectId",value = "项目主键") @ApiModelProperty(name = "projectId",value = "项目主键")
private Integer projectId; private Integer projectId;
@ApiModelProperty(name = "oaProjectId", value = "项目在oa中的编号")
private String oaProjectId;
@ApiModelProperty(name = "projectName", value = "项目名称") @ApiModelProperty(name = "projectName", value = "项目名称")
private String projectName; private String projectName;
......
...@@ -5,8 +5,8 @@ package cn.wisenergy.model.enums; ...@@ -5,8 +5,8 @@ package cn.wisenergy.model.enums;
* @QQ1799796883 * @QQ1799796883
*/ */
public enum LevelEnum { public enum LevelEnum {
EXAMINE("工时审"), EXAMINE("工时审"),
USER_STATISTICS("人员统计报表"), USER_STATISTICS("人员工时统计"),
PROJECT_STATISTICS("项目统计报表"), PROJECT_STATISTICS("项目统计报表"),
PROJECT_MANAGER( "项目/商机管理"), PROJECT_MANAGER( "项目/商机管理"),
TIMEEXPORT("工时导出"), TIMEEXPORT("工时导出"),
......
...@@ -9,6 +9,7 @@ public enum LevelRankEnum { ...@@ -9,6 +9,7 @@ public enum LevelRankEnum {
PROJECT_LEVEL(1,"项目级"), PROJECT_LEVEL(1,"项目级"),
DEPARTMENT_LEVEL(2,"部门级"), DEPARTMENT_LEVEL(2,"部门级"),
CENTRAL_LEVEL(3, "中心级"), CENTRAL_LEVEL(3, "中心级"),
SYSTEM_MANAGER(4,"中心级")
; ;
private Integer rank; private Integer rank;
......
...@@ -22,6 +22,7 @@ ...@@ -22,6 +22,7 @@
<orderEntry type="module" module-name="wisenergy-common" /> <orderEntry type="module" module-name="wisenergy-common" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:2.1.5.RELEASE" level="project" /> <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:2.1.5.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:2.1.5.RELEASE" level="project" /> <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:2.1.5.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:2.1.5.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-logging:2.1.5.RELEASE" level="project" /> <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-logging:2.1.5.RELEASE" level="project" />
<orderEntry type="library" name="Maven: ch.qos.logback:logback-classic:1.2.3" level="project" /> <orderEntry type="library" name="Maven: ch.qos.logback:logback-classic:1.2.3" level="project" />
<orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.2.3" level="project" /> <orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.2.3" level="project" />
...@@ -84,11 +85,21 @@ ...@@ -84,11 +85,21 @@
<orderEntry type="library" name="Maven: org.springframework:spring-test:5.1.7.RELEASE" level="project" /> <orderEntry type="library" name="Maven: org.springframework:spring-test:5.1.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.xmlunit:xmlunit-core:2.6.2" level="project" /> <orderEntry type="library" name="Maven: org.xmlunit:xmlunit-core:2.6.2" level="project" />
<orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-starter:2.1.2" level="project" /> <orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-starter:2.1.2" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:2.1.5.RELEASE" level="project" />
<orderEntry type="library" name="Maven: com.zaxxer:HikariCP:3.2.0" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-jdbc:5.1.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-autoconfigure:2.1.2" level="project" /> <orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-autoconfigure:2.1.2" level="project" />
<orderEntry type="library" name="Maven: org.mybatis:mybatis:3.5.4" level="project" /> <orderEntry type="library" name="Maven: org.mybatis:mybatis:3.5.4" level="project" />
<orderEntry type="library" name="Maven: org.mybatis:mybatis-spring:2.0.4" level="project" />
<orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper-spring-boot-starter:1.2.10" level="project" /> <orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper-spring-boot-starter:1.2.10" level="project" />
<orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper-spring-boot-autoconfigure:1.2.10" level="project" /> <orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper-spring-boot-autoconfigure:1.2.10" level="project" />
<orderEntry type="library" name="Maven: mysql:mysql-connector-java:8.0.16" level="project" /> <orderEntry type="library" name="Maven: mysql:mysql-connector-java:8.0.16" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-boot-starter:3.1.2" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus:3.1.2" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-extension:3.1.2" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-core:3.1.2" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-annotation:3.1.2" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.1.5.RELEASE" level="project" />
<orderEntry type="library" name="Maven: com.alibaba:druid-spring-boot-starter:1.1.22" level="project" /> <orderEntry type="library" name="Maven: com.alibaba:druid-spring-boot-starter:1.1.22" level="project" />
<orderEntry type="library" name="Maven: com.alibaba:druid:1.1.22" level="project" /> <orderEntry type="library" name="Maven: com.alibaba:druid:1.1.22" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-data-redis:2.1.5.RELEASE" level="project" /> <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-data-redis:2.1.5.RELEASE" level="project" />
...@@ -126,17 +137,6 @@ ...@@ -126,17 +137,6 @@
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.9.8" level="project" /> <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.9.8" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.9.8" level="project" /> <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.9.8" level="project" />
<orderEntry type="library" name="Maven: joda-time:joda-time:2.10.2" level="project" /> <orderEntry type="library" name="Maven: joda-time:joda-time:2.10.2" level="project" />
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-core:1.4.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-lang:1.4.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-cache:1.4.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-crypto-hash:1.4.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-crypto-core:1.4.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-crypto-cipher:1.4.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-config-core:1.4.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-config-ogdl:1.4.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-event:1.4.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-spring:1.4.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-web:1.4.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.poi:poi:3.9" level="project" /> <orderEntry type="library" name="Maven: org.apache.poi:poi:3.9" level="project" />
<orderEntry type="library" name="Maven: org.apache.poi:poi-ooxml:3.9" level="project" /> <orderEntry type="library" name="Maven: org.apache.poi:poi-ooxml:3.9" level="project" />
<orderEntry type="library" name="Maven: dom4j:dom4j:1.6.1" level="project" /> <orderEntry type="library" name="Maven: dom4j:dom4j:1.6.1" level="project" />
...@@ -145,18 +145,6 @@ ...@@ -145,18 +145,6 @@
<orderEntry type="library" name="Maven: org.apache.xmlbeans:xmlbeans:2.3.0" level="project" /> <orderEntry type="library" name="Maven: org.apache.xmlbeans:xmlbeans:2.3.0" level="project" />
<orderEntry type="library" name="Maven: stax:stax-api:1.0.1" level="project" /> <orderEntry type="library" name="Maven: stax:stax-api:1.0.1" level="project" />
<orderEntry type="library" name="Maven: cn.hutool:hutool-all:4.6.7" level="project" /> <orderEntry type="library" name="Maven: cn.hutool:hutool-all:4.6.7" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-generator:3.4.1" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-annotation:3.4.0" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-extension:3.4.0" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-core:3.4.0" level="project" />
<orderEntry type="library" name="Maven: org.mybatis:mybatis-spring:2.0.5" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-boot-starter:3.4.0" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus:3.4.0" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.1.5.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:2.1.5.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:2.1.5.RELEASE" level="project" />
<orderEntry type="library" name="Maven: com.zaxxer:HikariCP:3.2.0" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-jdbc:5.1.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.apache.velocity:velocity-engine-core:2.0" level="project" /> <orderEntry type="library" name="Maven: org.apache.velocity:velocity-engine-core:2.0" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.26" level="project" /> <orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.26" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.8.1" level="project" /> <orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.8.1" level="project" />
......
...@@ -15,6 +15,6 @@ public interface OaProjectService { ...@@ -15,6 +15,6 @@ public interface OaProjectService {
*/ */
List<OaProject> getListOaProject(String oaDeptNo, Integer typeId, String projectNameOrNo, List<String> oaProjectIds); List<OaProject> getListOaProject(String oaDeptNo, Integer typeId, String projectNameOrNo, List<String> oaProjectIds);
OaProject getOaProjectByNoAndName(CreateProjectVo createProjectVo); OaProject getOaProjectByNoAndName(CreateProjectVo createProjectVo, String oaUserId);
} }
...@@ -10,6 +10,7 @@ import lombok.extern.slf4j.Slf4j; ...@@ -10,6 +10,7 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
...@@ -27,34 +28,45 @@ public class OaProjectServiceImpl implements OaProjectService { ...@@ -27,34 +28,45 @@ public class OaProjectServiceImpl implements OaProjectService {
private ProjectAndBoMapper projectAndBoMapper; private ProjectAndBoMapper projectAndBoMapper;
@Override @Override
public List<OaProject> getListOaProject(String oaDeptNo, Integer typeId, String projectNameOrNo,List<String> oaProjectIds) { public List<OaProject> getListOaProject(String oaDeptNo, Integer typeId, String projectNameOrNo, List<String> oaProjectIds) {
log.info("OaProjectServiceImpl[]getListOaProject[]input.param{}oaDeptNo, typeId, projectNameOrNo, oaProjectIds =>" + oaDeptNo +"," + typeId + "," + projectNameOrNo + "," +oaProjectIds); log.info("OaProjectServiceImpl[]getListOaProject[]input.param{}oaDeptNo, typeId, projectNameOrNo, oaProjectIds =>" + oaDeptNo +"," + typeId + "," + projectNameOrNo + "," +oaProjectIds);
if (StringUtils.isEmpty(oaDeptNo) || typeId == null) { if (typeId == null) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.INPUT_PARAM_IS_NULL); throw new BaseCustomException(BASE_RESP_CODE_ENUM.INPUT_PARAM_IS_NULL);
} }
Map<String, Object> map = new HashMap<>();
if (StringUtils.isNotEmpty(oaDeptNo)) {
map.put("oaDeptNo", oaDeptNo);
}
map.put("projectNameOrNo", projectNameOrNo);
if (!CollectionUtils.isEmpty(oaProjectIds)) {
map.put("oaProjectIds", oaProjectIds);
}
List<OaProject> listOaProject = null; List<OaProject> listOaProject = null;
if (typeId.equals(1)) { if (typeId.equals(1)) {
listOaProject = projectAndBoMapper.getListOaProjectByDept(oaDeptNo, projectNameOrNo,oaProjectIds); listOaProject = projectAndBoMapper.getListOaProjectByDept(map);
} }
if (typeId.equals(2)) { if (typeId.equals(2)) {
listOaProject = projectAndBoMapper.getListOaBoByDept(oaDeptNo, projectNameOrNo,oaProjectIds); listOaProject = projectAndBoMapper.getListOaBoByDept(map);
} }
return listOaProject; return listOaProject;
} }
@Override @Override
public OaProject getOaProjectByNoAndName(CreateProjectVo createProjectVo) { public OaProject getOaProjectByNoAndName(CreateProjectVo createProjectVo, String managerNo) {
log.info("OaProjectServiceImpl[]getOaProjectByNoAndName[]input.param{}createProjectVo =>" + createProjectVo); log.info("OaProjectServiceImpl[]getOaProjectByNoAndName[]input.param{}createProjectVo,managerNo =>" + createProjectVo + "," + managerNo);
Map<String, Object> map = new HashMap<>(); Map<String, Object> map = new HashMap<>();
// 项目/商机编号 // 项目/商机编号
map.put("projectNo", createProjectVo.getOaProjectId()); map.put("projectNo", createProjectVo.getOaProjectId());
// 项目/商机名称 // 项目/商机名称
map.put("projectName", createProjectVo.getProjectName()); map.put("projectName", createProjectVo.getProjectName());
// 负责人编号
map.put("managerNo", managerNo);
// 项目对应的商机不为空 // 项目对应的商机不为空
if (createProjectVo.getBusinessId() != null) { if (StringUtils.isNotBlank(createProjectVo.getBusinessId())) {
map.put("boNo", createProjectVo.getBusinessId()); map.put("boNo", createProjectVo.getBusinessId());
map.put("boName", createProjectVo.getBusinessName());
} }
OaProject oaProject; OaProject oaProject;
......
...@@ -144,8 +144,8 @@ public class WorkDeptServiceImpl implements WorkDeptService { ...@@ -144,8 +144,8 @@ public class WorkDeptServiceImpl implements WorkDeptService {
Set<WorkDept> depts = new LinkedHashSet<>(); Set<WorkDept> depts = new LinkedHashSet<>();
for (UserRoleLevelDto userRoleLevelDto : roleUserLevel) { for (UserRoleLevelDto userRoleLevelDto : roleUserLevel) {
if (userRoleLevelDto.getLevelName().equals(LevelEnum.PROJECT_MANAGER.getLevelName())) { if (userRoleLevelDto.getLevelName().equals(LevelEnum.PROJECT_MANAGER.getLevelName())) {
// 中心级 // 中心级或系统管理
if (LevelRankEnum.CENTRAL_LEVEL.getRank().equals(userRoleLevelDto.getRank())) { if (LevelRankEnum.CENTRAL_LEVEL.getRank().equals(userRoleLevelDto.getRank()) ||LevelRankEnum.SYSTEM_MANAGER.getRank().equals(userRoleLevelDto.getRank())) {
List<WorkDept> deptByCentreManager = workCentreService.getDeptByCentreManager(user); List<WorkDept> deptByCentreManager = workCentreService.getDeptByCentreManager(user);
if (!CollectionUtils.isEmpty(deptByCentreManager)) { if (!CollectionUtils.isEmpty(deptByCentreManager)) {
depts.addAll(deptByCentreManager); depts.addAll(deptByCentreManager);
......
...@@ -563,7 +563,7 @@ public class WorkProjectServiceImpl implements WorkProjectService { ...@@ -563,7 +563,7 @@ public class WorkProjectServiceImpl implements WorkProjectService {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.INPUT_PARAM_IS_NULL); throw new BaseCustomException(BASE_RESP_CODE_ENUM.INPUT_PARAM_IS_NULL);
} }
if (null == createProjectVo.getManagerId() || null == createProjectVo.getStartTime() || null == createProjectVo.getEndTime() || StringUtils.isBlank(createProjectVo.getOaProjectId()) || null == createProjectVo.getWorkTime() || null == createProjectVo.getCostBudget() || null == createProjectVo.getDeptId() || if (null == createProjectVo.getManagerId() || null == createProjectVo.getStartTime() || null == createProjectVo.getEndTime() || StringUtils.isBlank(createProjectVo.getOaProjectId()) || null == createProjectVo.getWorkTime() || null == createProjectVo.getCostBudget() || null == createProjectVo.getDeptId() ||
StringUtils.isBlank(createProjectVo.getProjectName()) || null == createProjectVo.getDeptId()) { StringUtils.isBlank(createProjectVo.getProjectName()) || null == createProjectVo.getDeptId() || CollectionUtils.isEmpty(createProjectVo.getUserIds())) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.INPUT_PARAM_IS_NULL); throw new BaseCustomException(BASE_RESP_CODE_ENUM.INPUT_PARAM_IS_NULL);
} }
if (createProjectVo.getStartTime().compareTo(createProjectVo.getEndTime()) > 0) { if (createProjectVo.getStartTime().compareTo(createProjectVo.getEndTime()) > 0) {
...@@ -572,34 +572,32 @@ public class WorkProjectServiceImpl implements WorkProjectService { ...@@ -572,34 +572,32 @@ public class WorkProjectServiceImpl implements WorkProjectService {
if (BigDecimal.ZERO.compareTo(createProjectVo.getWorkTime()) > 0 || BigDecimal.ZERO.compareTo(createProjectVo.getCostBudget()) > 0) { if (BigDecimal.ZERO.compareTo(createProjectVo.getWorkTime()) > 0 || BigDecimal.ZERO.compareTo(createProjectVo.getCostBudget()) > 0) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.BUDGET_CANNOT_BELESSTHAN_ZERO); throw new BaseCustomException(BASE_RESP_CODE_ENUM.BUDGET_CANNOT_BELESSTHAN_ZERO);
} }
// 判断oa编号、项目名称是否重复
WorkProject byProjectNameOrOaId = workProjectMapper.getByProjectNameOrOaId(createProjectVo.getProjectName(), createProjectVo.getOaProjectId()); // 项目/商机管理部门级、系统管理权限能够新建项目/商机
if (byProjectNameOrOaId != null) { List<Integer> rankByUserAndLevelName = UserRoleLevelUtils.getRankByUserAndLevelName(createProjectVo.getCreatorId(), LevelEnum.PROJECT_MANAGER.getLevelName());
if (createProjectVo.getProjectName().equals(byProjectNameOrOaId.getProjectName())) { if (!rankByUserAndLevelName.contains(LevelRankEnum.DEPARTMENT_LEVEL.getRank()) && !rankByUserAndLevelName.contains(LevelRankEnum.SYSTEM_MANAGER.getRank())) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.DUPLICATEPROJECTNAME); throw new BaseCustomException(BASE_RESP_CODE_ENUM.NO_AUTHORITY);
} }
if (createProjectVo.getOaProjectId().equals(byProjectNameOrOaId.getOaProjectId())) {
// 判断oa编号是否重复
WorkProject byProjectNameOrOaId = workProjectMapper.getByProjectOaId(createProjectVo.getOaProjectId());
if (byProjectNameOrOaId != null) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.ITEMOADUPLICATE); throw new BaseCustomException(BASE_RESP_CODE_ENUM.ITEMOADUPLICATE);
} }
// 项目/商机负责人在工时系统中未找到
WorkUser manager = workUserMapper.getUserById(createProjectVo.getManagerId());
if (manager == null) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.CREATE_PROJECT_MANAGER_NOT_FOUND);
} }
// List<WorkProject> workProjects = workProjectMapper.selectList(new QueryWrapper<>());
// if (CollectionUtils.isEmpty(workProjects)) {
// throw new BaseCustomException(BASE_RESP_CODE_ENUM.WORK_PROJECT_IS_NULL);
// }
// for (WorkProject workProject : workProjects) {
// if (createProjectVo.getProjectName().equals(workProject.getProjectName())) {
// throw new BaseCustomException(BASE_RESP_CODE_ENUM.DUPLICATEPROJECTNAME);
// }
// if (createProjectVo.getOaProjectId().equals(workProject.getOaProjectId())) {
// throw new BaseCustomException(BASE_RESP_CODE_ENUM.ITEMOADUPLICATE);
// }
// }
// 对项目名称做去空格
createProjectVo.setProjectName(createProjectVo.getProjectName().trim());
// 在oa数据库中查找对应信息 // 在oa数据库中查找对应信息
// OaProject oaProject = oaProjectService.getOaProjectByNoAndName(createProjectVo); OaProject oaProject = oaProjectService.getOaProjectByNoAndName(createProjectVo, manager.getOaUserId());
// if (oaProject == null) { if (oaProject == null) {
// throw new BaseCustomException(BASE_RESP_CODE_ENUM.NEW_PROJECT_OA_PROJECT_ID_OR_NAME_ERROR); throw new BaseCustomException(BASE_RESP_CODE_ENUM.NEW_PROJECT_OA_PROJECT_ID_OR_NAME_ERROR);
// } }
// 插入项目信息 // 插入项目信息
Date date = new Date(); Date date = new Date();
...@@ -614,9 +612,8 @@ public class WorkProjectServiceImpl implements WorkProjectService { ...@@ -614,9 +612,8 @@ public class WorkProjectServiceImpl implements WorkProjectService {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.INSERT_DATA_IS_FAIL); throw new BaseCustomException(BASE_RESP_CODE_ENUM.INSERT_DATA_IS_FAIL);
} }
// 插入参与人员信息 // 插入参与人员信息
if (!CollectionUtils.isEmpty(createProjectVo.getUserIds())) {
workUserProjectService.insertBatch(createProjectVo.getUserIds(), workProject.getId()); workUserProjectService.insertBatch(createProjectVo.getUserIds(), workProject.getId());
}
// 插入更变日志 // 插入更变日志
WorkProjectChange workProjectChange = new WorkProjectChange(); WorkProjectChange workProjectChange = new WorkProjectChange();
workProjectChange.setProjectId(workProject.getId()); workProjectChange.setProjectId(workProject.getId());
...@@ -787,32 +784,39 @@ public class WorkProjectServiceImpl implements WorkProjectService { ...@@ -787,32 +784,39 @@ public class WorkProjectServiceImpl implements WorkProjectService {
if (userId == null || typeId == null || StringUtils.isEmpty(projectNameOrNo)) { if (userId == null || typeId == null || StringUtils.isEmpty(projectNameOrNo)) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.INPUT_PARAM_IS_NULL); throw new BaseCustomException(BASE_RESP_CODE_ENUM.INPUT_PARAM_IS_NULL);
} }
// 项目/商机管理部门级权限能够新建项目/商机 // 项目/商机管理部门级、系统管理权限能够查看oa项目/商机信息
// List<Integer> rankByUserAndLevelName = UserRoleLevelUtils.getRankByUserAndLevelName(userId, LevelEnum.PROJECT_MANAGER.getLevelName()); List<Integer> rankByUserAndLevelName = UserRoleLevelUtils.getRankByUserAndLevelName(userId, LevelEnum.PROJECT_MANAGER.getLevelName());
// if (!rankByUserAndLevelName.contains(LevelRankEnum.DEPARTMENT_LEVEL.getRank())) { if (!rankByUserAndLevelName.contains(LevelRankEnum.DEPARTMENT_LEVEL.getRank()) && !rankByUserAndLevelName.contains(LevelRankEnum.SYSTEM_MANAGER.getRank())) {
// throw new BaseCustomException(BASE_RESP_CODE_ENUM.NO_AUTHORITY); throw new BaseCustomException(BASE_RESP_CODE_ENUM.NO_AUTHORITY);
// } }
// 根据用户id查询所对应oa部门编号 // 根据用户id查询所对应oa部门编号
WorkDept oaDept = workDeptMapper.getOaDeptNoByUserId(userId); WorkDept dept = new WorkDept();
if (rankByUserAndLevelName.contains(LevelRankEnum.DEPARTMENT_LEVEL.getRank())) {
dept = workDeptMapper.getOaDeptNoByUserId(userId);
}
// 查询工时系统中的该部门下的项目/商机 // 查询工时系统中的该部门下的项目/商机
List<WorkProject> projectList = workProjectMapper.getListByDeptAndType(oaDept.getId(),typeId, projectNameOrNo); List<String> oaProjectIds = workProjectMapper.getListByDeptAndType(typeId, projectNameOrNo);
List<String> oaProjectIds = projectList.stream().map(WorkProject::getOaProjectId).collect(Collectors.toList()); // 移除集合中的null元素
oaProjectIds.remove(null);
// 从oa中根据部门的oa编号查询项目/商机, // 从oa中根据部门的oa编号查询项目/商机,
// typeId 为1 查询项目,为2查询商机 // typeId 为1 查询项目,为2查询商机
if (currentPage != null && pageSize != null) { if (currentPage != null && pageSize != null) {
PageHelper.startPage(currentPage, pageSize); PageHelper.startPage(currentPage, pageSize);
} }
List<OaProject> listOaProject = oaProjectService.getListOaProject(oaDept.getOaDeptId(), typeId, projectNameOrNo,oaProjectIds); List<OaProject> listOaProject = oaProjectService.getListOaProject(dept.getOaDeptId(), typeId, projectNameOrNo,oaProjectIds);
// 分页信息对象
PageInfo<OaProject> pageInfo = new PageInfo<>(listOaProject); PageInfo<OaProject> pageInfo = new PageInfo<>(listOaProject);
// 查询信息为空,直接返回
if (CollectionUtils.isEmpty(listOaProject)) { if (CollectionUtils.isEmpty(listOaProject)) {
return null; return null;
} }
// 查询项目经理在工时系统中对应的id // 查询项目经理在工时系统中对应的id
List<String> managerIds = listOaProject.stream().map(OaProject::getManagerNo).collect(Collectors.toList()); List<String> managerIds = listOaProject.stream().map(OaProject::getManagerNo).collect(Collectors.toList());
List<WorkUser> workUsers = null; List<WorkUser> workUsers = null;
...@@ -820,13 +824,23 @@ public class WorkProjectServiceImpl implements WorkProjectService { ...@@ -820,13 +824,23 @@ public class WorkProjectServiceImpl implements WorkProjectService {
workUsers = workUserMapper.getUserByIds(managerIds); workUsers = workUserMapper.getUserByIds(managerIds);
} }
// 所有部门信息
List<WorkDept> deptList = workDeptMapper.getAllDept();
// 将查询结果中的oa编号更换为工时系统中的编号 // 将查询结果中的oa编号更换为工时系统中的编号
for (int i = 0; i < listOaProject.size(); i++) { for (int i = 0; i < listOaProject.size(); i++) {
OaProject oaProject = listOaProject.get(i); OaProject oaProject = listOaProject.get(i);
// 将部门oa编号替换为工时系统中的部门id // 将部门oa编号替换为工时系统中的部门id
oaProject.setDeptNo(oaDept.getId().toString()); for (WorkDept workDept : deptList) {
oaProject.setDeptName(oaDept.getDeptName()); if (StringUtils.isNotBlank(workDept.getOaDeptId()) && workDept.getOaDeptId().equals(oaProject.getDeptNo())) {
oaProject.setDeptNo(workDept.getId().toString());
oaProject.setDeptName(workDept.getDeptName());
}
}
// 是否在工时系统中存在负责人
boolean isExist = false;
// 将项目/商机负责人oa编号替换为工时系统中的用户id // 将项目/商机负责人oa编号替换为工时系统中的用户id
if (StringUtils.isNotBlank(oaProject.getManagerNo())) { if (StringUtils.isNotBlank(oaProject.getManagerNo())) {
assert workUsers != null; assert workUsers != null;
...@@ -834,6 +848,12 @@ public class WorkProjectServiceImpl implements WorkProjectService { ...@@ -834,6 +848,12 @@ public class WorkProjectServiceImpl implements WorkProjectService {
if (workUser.getOaUserId().equals(oaProject.getManagerNo())) { if (workUser.getOaUserId().equals(oaProject.getManagerNo())) {
oaProject.setManagerNo(workUser.getId().toString()); oaProject.setManagerNo(workUser.getId().toString());
oaProject.setManagerName(workUser.getName()); oaProject.setManagerName(workUser.getName());
isExist = true;
break;
}
// 负责人在工时系统中不存在
if (isExist) {
oaProject.setManagerNo(null);
} }
} }
} }
......
...@@ -1339,6 +1339,7 @@ public class WorkTimeOrderServiceImpl implements WorkTimeOrderService { ...@@ -1339,6 +1339,7 @@ public class WorkTimeOrderServiceImpl implements WorkTimeOrderService {
int week = DateUtil.getWeek(datesBetweenTwoDate.get(j)); int week = DateUtil.getWeek(datesBetweenTwoDate.get(j));
if (week == 7 || week == 1) { if (week == 7 || week == 1) {
datesBetweenTwoDate.remove(j); datesBetweenTwoDate.remove(j);
j--;
} }
} }
...@@ -1355,6 +1356,7 @@ public class WorkTimeOrderServiceImpl implements WorkTimeOrderService { ...@@ -1355,6 +1356,7 @@ public class WorkTimeOrderServiceImpl implements WorkTimeOrderService {
} }
} }
} }
// 所填报日期中没有工作日 // 所填报日期中没有工作日
if (datesBetweenTwoDate.size() == 0) { if (datesBetweenTwoDate.size() == 0) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.LONG_LEAVE_DATE_NOT_ONLY_HOLIDAY); throw new BaseCustomException(BASE_RESP_CODE_ENUM.LONG_LEAVE_DATE_NOT_ONLY_HOLIDAY);
......
...@@ -73,6 +73,8 @@ public class WorkUserServiceImpl implements WorkUserService { ...@@ -73,6 +73,8 @@ public class WorkUserServiceImpl implements WorkUserService {
@Autowired @Autowired
private RedisTemplate redisTemplate; private RedisTemplate redisTemplate;
private static final String LOGIN_SOURCE = "PC"; private static final String LOGIN_SOURCE = "PC";
// 用户在职状态码 // 用户在职状态码
...@@ -244,6 +246,9 @@ public class WorkUserServiceImpl implements WorkUserService { ...@@ -244,6 +246,9 @@ public class WorkUserServiceImpl implements WorkUserService {
if (null == workUser) { if (null == workUser) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.QUERY_DATA_IS_NULL); throw new BaseCustomException(BASE_RESP_CODE_ENUM.QUERY_DATA_IS_NULL);
} }
// 踢出该用户前一个登录
kickoutSessionControlFilter.cleanUserLogin( userId);
// 清空该用在redis中的认证信息 // 清空该用在redis中的认证信息
WorkUser user = workUserMapper.getUserById(userId); WorkUser user = workUserMapper.getUserById(userId);
redisTemplate.delete("AuthenticationRedisCache" + user.getName()); redisTemplate.delete("AuthenticationRedisCache" + user.getName());
...@@ -329,6 +334,9 @@ public class WorkUserServiceImpl implements WorkUserService { ...@@ -329,6 +334,9 @@ public class WorkUserServiceImpl implements WorkUserService {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.QUERY_USER_INFO_FAIL); throw new BaseCustomException(BASE_RESP_CODE_ENUM.QUERY_USER_INFO_FAIL);
} }
// 将该用户之前登录踢出
kickoutSessionControlFilter.cleanUserLogin( userId);
// 清空该用在redis中的认证信息 // 清空该用在redis中的认证信息
redisTemplate.delete("AuthenticationRedisCache" + user.getName()); redisTemplate.delete("AuthenticationRedisCache" + user.getName());
......
...@@ -44,7 +44,6 @@ ...@@ -44,7 +44,6 @@
<orderEntry type="library" name="Maven: org.springframework:spring-web:5.1.7.RELEASE" level="project" /> <orderEntry type="library" name="Maven: org.springframework:spring-web:5.1.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-beans:5.1.7.RELEASE" level="project" /> <orderEntry type="library" name="Maven: org.springframework:spring-beans:5.1.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-webmvc:5.1.7.RELEASE" level="project" /> <orderEntry type="library" name="Maven: org.springframework:spring-webmvc:5.1.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-context:5.1.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-expression:5.1.7.RELEASE" level="project" /> <orderEntry type="library" name="Maven: org.springframework:spring-expression:5.1.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: net.sf.json-lib:json-lib:jdk15:2.4" level="project" /> <orderEntry type="library" name="Maven: net.sf.json-lib:json-lib:jdk15:2.4" level="project" />
<orderEntry type="library" name="Maven: commons-beanutils:commons-beanutils:1.8.0" level="project" /> <orderEntry type="library" name="Maven: commons-beanutils:commons-beanutils:1.8.0" level="project" />
...@@ -84,11 +83,20 @@ ...@@ -84,11 +83,20 @@
<orderEntry type="library" name="Maven: org.springframework:spring-test:5.1.7.RELEASE" level="project" /> <orderEntry type="library" name="Maven: org.springframework:spring-test:5.1.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.xmlunit:xmlunit-core:2.6.2" level="project" /> <orderEntry type="library" name="Maven: org.xmlunit:xmlunit-core:2.6.2" level="project" />
<orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-starter:2.1.2" level="project" /> <orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-starter:2.1.2" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:2.1.5.RELEASE" level="project" />
<orderEntry type="library" name="Maven: com.zaxxer:HikariCP:3.2.0" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-jdbc:5.1.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-autoconfigure:2.1.2" level="project" /> <orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-autoconfigure:2.1.2" level="project" />
<orderEntry type="library" name="Maven: org.mybatis:mybatis:3.5.4" level="project" /> <orderEntry type="library" name="Maven: org.mybatis:mybatis:3.5.4" level="project" />
<orderEntry type="library" name="Maven: org.mybatis:mybatis-spring:2.0.4" level="project" />
<orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper-spring-boot-starter:1.2.10" level="project" /> <orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper-spring-boot-starter:1.2.10" level="project" />
<orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper-spring-boot-autoconfigure:1.2.10" level="project" /> <orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper-spring-boot-autoconfigure:1.2.10" level="project" />
<orderEntry type="library" name="Maven: mysql:mysql-connector-java:8.0.16" level="project" /> <orderEntry type="library" name="Maven: mysql:mysql-connector-java:8.0.16" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-boot-starter:3.1.2" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus:3.1.2" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-extension:3.1.2" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-core:3.1.2" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-annotation:3.1.2" level="project" />
<orderEntry type="library" name="Maven: com.alibaba:druid-spring-boot-starter:1.1.22" level="project" /> <orderEntry type="library" name="Maven: com.alibaba:druid-spring-boot-starter:1.1.22" level="project" />
<orderEntry type="library" name="Maven: com.alibaba:druid:1.1.22" level="project" /> <orderEntry type="library" name="Maven: com.alibaba:druid:1.1.22" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-data-redis:2.1.5.RELEASE" level="project" /> <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-data-redis:2.1.5.RELEASE" level="project" />
...@@ -126,32 +134,25 @@ ...@@ -126,32 +134,25 @@
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.9.8" level="project" /> <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.9.8" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.9.8" level="project" /> <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.9.8" level="project" />
<orderEntry type="library" name="Maven: joda-time:joda-time:2.10.2" level="project" /> <orderEntry type="library" name="Maven: joda-time:joda-time:2.10.2" level="project" />
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-core:1.4.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-lang:1.4.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-cache:1.4.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-crypto-hash:1.4.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-crypto-core:1.4.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-crypto-cipher:1.4.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-config-core:1.4.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-config-ogdl:1.4.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-event:1.4.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-spring:1.4.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-web:1.4.0" level="project" />
<orderEntry type="library" name="Maven: cn.hutool:hutool-all:4.6.7" level="project" /> <orderEntry type="library" name="Maven: cn.hutool:hutool-all:4.6.7" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-generator:3.4.1" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-annotation:3.4.0" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-extension:3.4.0" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-core:3.4.0" level="project" />
<orderEntry type="library" name="Maven: org.mybatis:mybatis-spring:2.0.5" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-boot-starter:3.4.0" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus:3.4.0" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.1.5.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:2.1.5.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:2.1.5.RELEASE" level="project" />
<orderEntry type="library" name="Maven: com.zaxxer:HikariCP:3.2.0" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-jdbc:5.1.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.apache.velocity:velocity-engine-core:2.0" level="project" /> <orderEntry type="library" name="Maven: org.apache.velocity:velocity-engine-core:2.0" level="project" />
<orderEntry type="library" name="Maven: com.github.jsqlparser:jsqlparser:1.4" level="project" /> <orderEntry type="library" name="Maven: com.github.jsqlparser:jsqlparser:1.4" level="project" />
<orderEntry type="module" module-name="wisenergy-shiro" />
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-spring-boot-starter:1.4.1" level="project" />
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-spring:1.4.1" level="project" />
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-core:1.4.1" level="project" />
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-lang:1.4.1" level="project" />
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-cache:1.4.1" level="project" />
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-crypto-hash:1.4.1" level="project" />
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-crypto-core:1.4.1" level="project" />
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-crypto-cipher:1.4.1" level="project" />
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-config-core:1.4.1" level="project" />
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-config-ogdl:1.4.1" level="project" />
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-event:1.4.1" level="project" />
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-web:1.4.1" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.1.5.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:2.1.5.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-context:5.1.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: com.hikvision.ga:artemis-http-client:1.1.3" level="project" /> <orderEntry type="library" name="Maven: com.hikvision.ga:artemis-http-client:1.1.3" level="project" />
<orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.2.3" level="project" /> <orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.2.3" level="project" />
<orderEntry type="library" name="Maven: ch.qos.logback:logback-classic:1.2.3" level="project" /> <orderEntry type="library" name="Maven: ch.qos.logback:logback-classic:1.2.3" level="project" />
......
...@@ -74,7 +74,7 @@ public class ShiroConfig { ...@@ -74,7 +74,7 @@ public class ShiroConfig {
map.put("/swagger-resources/**","anon"); map.put("/swagger-resources/**","anon");
map.put("/v2/**","anon"); map.put("/v2/**","anon");
map.put("/static/**", "anon"); map.put("/static/**", "anon");
// map.put("/**", "kickout"); map.put("/**", "kickout");
map.put("/wxLogout", "wxLogout"); map.put("/wxLogout", "wxLogout");
shiroFilterFactoryBean.setFilterChainDefinitionMap(map); shiroFilterFactoryBean.setFilterChainDefinitionMap(map);
......
...@@ -12,6 +12,7 @@ import org.apache.shiro.authc.SimpleAuthenticationInfo; ...@@ -12,6 +12,7 @@ import org.apache.shiro.authc.SimpleAuthenticationInfo;
import org.apache.shiro.cache.Cache; import org.apache.shiro.cache.Cache;
import org.apache.shiro.cache.CacheManager; import org.apache.shiro.cache.CacheManager;
import org.apache.shiro.session.Session; import org.apache.shiro.session.Session;
import org.apache.shiro.session.SessionException;
import org.apache.shiro.session.mgt.DefaultSessionKey; import org.apache.shiro.session.mgt.DefaultSessionKey;
import org.apache.shiro.session.mgt.SessionManager; import org.apache.shiro.session.mgt.SessionManager;
import org.apache.shiro.subject.Subject; import org.apache.shiro.subject.Subject;
...@@ -162,6 +163,23 @@ public class KickoutSessionControlFilter extends AccessControlFilter { ...@@ -162,6 +163,23 @@ public class KickoutSessionControlFilter extends AccessControlFilter {
redisTemplate.opsForValue().set(getRedisKickoutKey(userId), deque, EXPIRE_TIME, TimeUnit.SECONDS); redisTemplate.opsForValue().set(getRedisKickoutKey(userId), deque, EXPIRE_TIME, TimeUnit.SECONDS);
} }
// 将userId对应用户的所有登录session标记为踢出
public void cleanUserLogin(Integer userId){
Deque<Serializable> deque = (Deque<Serializable>) redisTemplate.opsForValue().get(getRedisKickoutKey(userId));
if (deque != null && deque.size() != 0) {
for (Serializable serializable : deque) {
try {
Session session = sessionManager.getSession(new DefaultSessionKey(serializable));
if (session != null) {
session.setAttribute("kickout", true);
}
} catch (SessionException e) {
e.printStackTrace();
}
}
}
}
// 请求是为小程序或请求接口为登录接口、小程序退出接口 // 请求是为小程序或请求接口为登录接口、小程序退出接口
public boolean isMiniProgram(HttpServletRequest request) { public boolean isMiniProgram(HttpServletRequest request) {
boolean isMini = null != request.getHeader("identity") && request.getHeader("identity").equals("miniprogram"); boolean isMini = null != request.getHeader("identity") && request.getHeader("identity").equals("miniprogram");
......
...@@ -62,8 +62,7 @@ public class Trigger implements SchedulingConfigurer { ...@@ -62,8 +62,7 @@ public class Trigger implements SchedulingConfigurer {
} }
, triggerContext -> { , triggerContext -> {
// Integer autoAdopt = workSubmitAdoptService.getById(1).getAutoAdopt(); Integer autoAdopt = workSubmitAdoptService.getById(1).getAutoAdopt();
Integer autoAdopt =1;
String time = "0 0 0 */" + autoAdopt + " * ?"; String time = "0 0 0 */" + autoAdopt + " * ?";
//返回执行的周期 //返回执行的周期
return new CronTrigger(time).nextExecutionTime(triggerContext); return new CronTrigger(time).nextExecutionTime(triggerContext);
......
//package cn.wisenergy.web.config.hanlder;
//
//import cn.wisenergy.common.utils.RedisUtil;
//import cn.wisenergy.common.utils.exception.BASE_RESP_CODE_ENUM;
//import cn.wisenergy.common.utils.exception.BaseCustomException;
//import org.apache.commons.lang.StringUtils;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.stereotype.Component;
//
//import javax.servlet.*;
//import javax.servlet.http.HttpServletRequest;
//import javax.servlet.http.HttpSession;
//import java.io.IOException;
//import java.util.Arrays;
//import java.util.List;
//
///**
// * @description:
// * @author: nh
// * @create: 2021-04-01 10:44
// **/
//@Component
//public class LoginFilter implements Filter {
//
// @Autowired
// private RedisUtil redisUtil;
//
// private static final int SESSION_EXPIRE = 30 * 60;
//
// private final static List<String> URI_LIST = Arrays.asList("/login","/webjars","/swagger-resources",
// "/null","/v2","/swagger-ui.html","/work/collect","/work/order/addOrder","/work/order/examine","/work/order/getDeptNotOrderInfo",
// "/work/order/getExamineApplets","/work/order/getProject","/work/order/noSubmit","/work/order/query","/work/order/reject",
// "/changePassword","/getUserInfo","/statistics/getCurrentMonthWorkTimeCollect","/statistics/getMonthlyWorkingHours");
//
// @Override
// public void init(FilterConfig filterConfig) throws ServletException {
//
// }
//
// @Override
// public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
// HttpServletRequest httpServletRequest = (HttpServletRequest) request;
// HttpSession session = httpServletRequest.getSession(false);
//
// // 请求接口不为指定接口再过滤
// String requestURI = ((HttpServletRequest) request).getRequestURI();
// System.out.println("requestURI = " + requestURI);
// for (String s : URI_LIST) {
// if (requestURI.startsWith(s)) {
// chain.doFilter(request,response);
// return;
// }
// }
//
// // 请求没有携带session
// if (session == null) {
// System.out.println("session Is Null");
// throw new BaseCustomException(BASE_RESP_CODE_ENUM.PLEASE_RE_LOGIN);
// }
// System.out.println("session.getId() = " + session.getId());
// // 获取redis中存储的登录时存放的session
// String sessionCache = redisUtil.get(session.getId());
// // session为空,session与登录时的session不一致提示重新登录,不为空则进行下一个过滤
// if (StringUtils.isBlank(sessionCache)) {
// throw new BaseCustomException(BASE_RESP_CODE_ENUM.PLEASE_RE_LOGIN);
// } else if (!sessionCache.equals(session)) {
// throw new BaseCustomException(BASE_RESP_CODE_ENUM.PLEASE_RE_LOGIN);
// } else {
// redisUtil.set(session.getId(), session.toString(), SESSION_EXPIRE);
// chain.doFilter(request, response);
// }
//
// }
//
// @Override
// public void destroy() {
//
// }
//}
...@@ -89,7 +89,7 @@ spring: ...@@ -89,7 +89,7 @@ spring:
redis: redis:
database: 0 database: 1
host: 192.168.110.84 host: 192.168.110.84
port: 6379 port: 6379
password: # 密码(默认为空) password: # 密码(默认为空)
...@@ -112,9 +112,10 @@ jwt: ...@@ -112,9 +112,10 @@ jwt:
expire: 14400 expire: 14400
logging: logging:
config: classpath:logback-spring.xml config: classpath:logback-spring.xml
mybatis-plus:
mapper-locations: classpath*:mapper/*.xml #mybatis-plus:
mybatis: # mapper-locations: classpath*:mapper/*.xml
mapper-locations: classpath*:mapper/*.xml #mybatis:
# mapper-locations: classpath*:mapper/*.xml
#redis #redis
\ No newline at end of file
...@@ -69,3 +69,4 @@ camera: ...@@ -69,3 +69,4 @@ camera:
logging: logging:
level: level:
cn.wisenergy.mapper : debug cn.wisenergy.mapper : debug
cn.wisenergy.oaMapper : debug
...@@ -44,11 +44,10 @@ ...@@ -44,11 +44,10 @@
<orderEntry type="library" name="Maven: javax.validation:validation-api:2.0.1.Final" level="project" /> <orderEntry type="library" name="Maven: javax.validation:validation-api:2.0.1.Final" level="project" />
<orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging:3.3.2.Final" level="project" /> <orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging:3.3.2.Final" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-web:5.1.7.RELEASE" level="project" /> <orderEntry type="library" name="Maven: org.springframework:spring-web:5.1.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-beans:5.1.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-webmvc:5.1.7.RELEASE" level="project" /> <orderEntry type="library" name="Maven: org.springframework:spring-webmvc:5.1.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-context:5.1.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-expression:5.1.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: net.sf.json-lib:json-lib:jdk15:2.4" level="project" /> <orderEntry type="library" name="Maven: net.sf.json-lib:json-lib:jdk15:2.4" level="project" />
<orderEntry type="library" name="Maven: commons-beanutils:commons-beanutils:1.8.0" level="project" />
<orderEntry type="library" name="Maven: commons-collections:commons-collections:3.2.1" level="project" />
<orderEntry type="library" name="Maven: net.sf.ezmorph:ezmorph:1.0.6" level="project" /> <orderEntry type="library" name="Maven: net.sf.ezmorph:ezmorph:1.0.6" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-undertow:2.1.5.RELEASE" level="project" /> <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-undertow:2.1.5.RELEASE" level="project" />
<orderEntry type="library" name="Maven: io.undertow:undertow-core:2.0.20.Final" level="project" /> <orderEntry type="library" name="Maven: io.undertow:undertow-core:2.0.20.Final" level="project" />
...@@ -79,16 +78,23 @@ ...@@ -79,16 +78,23 @@
<orderEntry type="library" name="Maven: org.hamcrest:hamcrest-library:1.3" level="project" /> <orderEntry type="library" name="Maven: org.hamcrest:hamcrest-library:1.3" level="project" />
<orderEntry type="library" name="Maven: org.skyscreamer:jsonassert:1.5.0" level="project" /> <orderEntry type="library" name="Maven: org.skyscreamer:jsonassert:1.5.0" level="project" />
<orderEntry type="library" name="Maven: com.vaadin.external.google:android-json:0.0.20131108.vaadin1" level="project" /> <orderEntry type="library" name="Maven: com.vaadin.external.google:android-json:0.0.20131108.vaadin1" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-core:5.1.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-jcl:5.1.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-test:5.1.7.RELEASE" level="project" /> <orderEntry type="library" name="Maven: org.springframework:spring-test:5.1.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.xmlunit:xmlunit-core:2.6.2" level="project" /> <orderEntry type="library" name="Maven: org.xmlunit:xmlunit-core:2.6.2" level="project" />
<orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-starter:2.1.2" level="project" /> <orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-starter:2.1.2" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:2.1.5.RELEASE" level="project" />
<orderEntry type="library" name="Maven: com.zaxxer:HikariCP:3.2.0" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-jdbc:5.1.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-autoconfigure:2.1.2" level="project" /> <orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-autoconfigure:2.1.2" level="project" />
<orderEntry type="library" name="Maven: org.mybatis:mybatis:3.5.4" level="project" /> <orderEntry type="library" name="Maven: org.mybatis:mybatis:3.5.4" level="project" />
<orderEntry type="library" name="Maven: org.mybatis:mybatis-spring:2.0.4" level="project" />
<orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper-spring-boot-starter:1.2.10" level="project" /> <orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper-spring-boot-starter:1.2.10" level="project" />
<orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper-spring-boot-autoconfigure:1.2.10" level="project" /> <orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper-spring-boot-autoconfigure:1.2.10" level="project" />
<orderEntry type="library" name="Maven: mysql:mysql-connector-java:8.0.16" level="project" /> <orderEntry type="library" name="Maven: mysql:mysql-connector-java:8.0.16" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-boot-starter:3.1.2" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus:3.1.2" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-extension:3.1.2" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-core:3.1.2" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-annotation:3.1.2" level="project" />
<orderEntry type="library" name="Maven: com.alibaba:druid-spring-boot-starter:1.1.22" level="project" /> <orderEntry type="library" name="Maven: com.alibaba:druid-spring-boot-starter:1.1.22" level="project" />
<orderEntry type="library" name="Maven: com.alibaba:druid:1.1.22" level="project" /> <orderEntry type="library" name="Maven: com.alibaba:druid:1.1.22" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-data-redis:2.1.5.RELEASE" level="project" /> <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-data-redis:2.1.5.RELEASE" level="project" />
...@@ -127,35 +133,30 @@ ...@@ -127,35 +133,30 @@
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.9.8" level="project" /> <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.9.8" level="project" />
<orderEntry type="library" name="Maven: joda-time:joda-time:2.10.2" level="project" /> <orderEntry type="library" name="Maven: joda-time:joda-time:2.10.2" level="project" />
<orderEntry type="library" name="Maven: cn.hutool:hutool-all:4.6.7" level="project" /> <orderEntry type="library" name="Maven: cn.hutool:hutool-all:4.6.7" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-generator:3.4.1" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-annotation:3.4.0" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-extension:3.4.0" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-core:3.4.0" level="project" />
<orderEntry type="library" name="Maven: org.mybatis:mybatis-spring:2.0.5" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-boot-starter:3.4.0" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus:3.4.0" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.1.5.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:2.1.5.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:2.1.5.RELEASE" level="project" />
<orderEntry type="library" name="Maven: com.zaxxer:HikariCP:3.2.0" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-jdbc:5.1.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.apache.velocity:velocity-engine-core:2.0" level="project" /> <orderEntry type="library" name="Maven: org.apache.velocity:velocity-engine-core:2.0" level="project" />
<orderEntry type="library" name="Maven: com.hikvision.ga:artemis-http-client:1.1.3" level="project" /> <orderEntry type="library" name="Maven: com.hikvision.ga:artemis-http-client:1.1.3" level="project" />
<orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.2.3" level="project" /> <orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.2.3" level="project" />
<orderEntry type="library" name="Maven: ch.qos.logback:logback-classic:1.2.3" level="project" /> <orderEntry type="library" name="Maven: ch.qos.logback:logback-classic:1.2.3" level="project" />
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-spring:1.4.0" level="project" /> <orderEntry type="module" module-name="wisenergy-shiro" />
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-core:1.4.0" level="project" /> <orderEntry type="library" name="Maven: org.apache.shiro:shiro-spring-boot-starter:1.4.1" level="project" />
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-lang:1.4.0" level="project" /> <orderEntry type="library" name="Maven: org.apache.shiro:shiro-spring:1.4.1" level="project" />
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-cache:1.4.0" level="project" /> <orderEntry type="library" name="Maven: org.apache.shiro:shiro-core:1.4.1" level="project" />
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-crypto-hash:1.4.0" level="project" /> <orderEntry type="library" name="Maven: org.apache.shiro:shiro-lang:1.4.1" level="project" />
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-crypto-core:1.4.0" level="project" /> <orderEntry type="library" name="Maven: org.apache.shiro:shiro-cache:1.4.1" level="project" />
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-crypto-cipher:1.4.0" level="project" /> <orderEntry type="library" name="Maven: org.apache.shiro:shiro-crypto-hash:1.4.1" level="project" />
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-config-core:1.4.0" level="project" /> <orderEntry type="library" name="Maven: org.apache.shiro:shiro-crypto-core:1.4.1" level="project" />
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-config-ogdl:1.4.0" level="project" /> <orderEntry type="library" name="Maven: org.apache.shiro:shiro-crypto-cipher:1.4.1" level="project" />
<orderEntry type="library" name="Maven: commons-beanutils:commons-beanutils:1.9.3" level="project" /> <orderEntry type="library" name="Maven: org.apache.shiro:shiro-config-core:1.4.1" level="project" />
<orderEntry type="library" name="Maven: commons-collections:commons-collections:3.2.2" level="project" /> <orderEntry type="library" name="Maven: org.apache.shiro:shiro-config-ogdl:1.4.1" level="project" />
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-event:1.4.0" level="project" /> <orderEntry type="library" name="Maven: org.apache.shiro:shiro-event:1.4.1" level="project" />
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-web:1.4.0" level="project" /> <orderEntry type="library" name="Maven: org.apache.shiro:shiro-web:1.4.1" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.1.5.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:2.1.5.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-core:5.1.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-jcl:5.1.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-context:5.1.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-beans:5.1.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-expression:5.1.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.8.1" level="project" /> <orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.8.1" level="project" />
<orderEntry type="library" name="Maven: commons-lang:commons-lang:2.6" level="project" /> <orderEntry type="library" name="Maven: commons-lang:commons-lang:2.6" level="project" />
<orderEntry type="library" name="Maven: commons-pool:commons-pool:1.6" level="project" /> <orderEntry type="library" name="Maven: commons-pool:commons-pool:1.6" level="project" />
......
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