Browse Source

增加乐团巡查相关基类

周箭河 4 years ago
parent
commit
26670885c6

+ 11 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/InspectionItemDao.java

@@ -2,7 +2,17 @@ package com.ym.mec.biz.dal.dao;
 
 import com.ym.mec.biz.dal.entity.InspectionItem;
 import com.ym.mec.common.dal.BaseDAO;
+import org.apache.ibatis.annotations.Param;
 
-public interface InspectionItemDao extends BaseDAO<Long,InspectionItem> {
+import java.util.List;
 
+public interface InspectionItemDao extends BaseDAO<Long, InspectionItem> {
+
+    /**
+     * 获取任务项数目及总次数
+     *
+     * @param inspectionIds
+     * @return
+     */
+    List<InspectionItem> getItemCountAndTimes(@Param("inspectionIds") List<Long> inspectionIds);
 }

+ 44 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/Inspection.java

@@ -54,6 +54,18 @@ public class Inspection {
     @ApiModelProperty(value = "修改时间")
     private Date updateTime;
 
+    @ApiModelProperty(value = "分部名称")
+    private String organName;
+
+    @ApiModelProperty(value = "主管名字")
+    private String userName;
+
+    @ApiModelProperty(value = "任务事项数量")
+    private Integer itemNum;
+
+    @ApiModelProperty(value = "任务总次数")
+    private Integer times;
+
     public Long getId() {
         return id;
     }
@@ -117,4 +129,36 @@ public class Inspection {
     public void setUpdateTime(Date updateTime) {
         this.updateTime = updateTime;
     }
+
+    public String getOrganName() {
+        return organName;
+    }
+
+    public void setOrganName(String organName) {
+        this.organName = organName;
+    }
+
+    public String getUserName() {
+        return userName;
+    }
+
+    public void setUserName(String userName) {
+        this.userName = userName;
+    }
+
+    public Integer getItemNum() {
+        return itemNum;
+    }
+
+    public void setItemNum(Integer itemNum) {
+        this.itemNum = itemNum;
+    }
+
+    public Integer getTimes() {
+        return times;
+    }
+
+    public void setTimes(Integer times) {
+        this.times = times;
+    }
 }

+ 73 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/InspectionQueryInfo.java

@@ -0,0 +1,73 @@
+package com.ym.mec.biz.dal.page;
+
+import com.ym.mec.common.page.QueryInfo;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.Date;
+
+public class InspectionQueryInfo extends QueryInfo {
+
+    @ApiModelProperty(value = "分部ids",required = false)
+    private String organId;
+
+    @ApiModelProperty(value = "乐团主管id",required = false)
+    private Integer userId;
+
+    @ApiModelProperty(value = "月份",required = false)
+    private Date month;
+
+    @ApiModelProperty(value = "添加人",required = false)
+    private Integer operation;
+
+    private Date startTime;
+
+    private Date endTime;
+
+	public String getOrganId() {
+		return organId;
+	}
+
+	public void setOrganId(String organId) {
+		this.organId = organId;
+	}
+
+    public Integer getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Integer userId) {
+        this.userId = userId;
+    }
+
+    public Date getMonth() {
+        return month;
+    }
+
+    public void setMonth(Date month) {
+        this.month = month;
+    }
+
+    public Integer getOperation() {
+        return operation;
+    }
+
+    public void setOperation(Integer operation) {
+        this.operation = operation;
+    }
+
+    public Date getStartTime() {
+        return startTime;
+    }
+
+    public void setStartTime(Date startTime) {
+        this.startTime = startTime;
+    }
+
+    public Date getEndTime() {
+        return endTime;
+    }
+
+    public void setEndTime(Date endTime) {
+        this.endTime = endTime;
+    }
+}

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/InspectionService.java

@@ -1,10 +1,20 @@
 package com.ym.mec.biz.service;
 
 import com.ym.mec.biz.dal.entity.Inspection;
+import com.ym.mec.biz.dal.entity.School;
+import com.ym.mec.biz.dal.page.InspectionQueryInfo;
+import com.ym.mec.biz.dal.page.SchoolQueryInfo;
+import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.BaseService;
 
 public interface InspectionService extends BaseService<Long, Inspection> {
 
+    /**
+     * 获取巡查任务列表
+     * @param queryInfo
+     * @return
+     */
+    PageInfo<Inspection> getPageList(InspectionQueryInfo queryInfo);
 }
 
 

+ 32 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/InspectionServiceImpl.java

@@ -1,24 +1,55 @@
 package com.ym.mec.biz.service.impl;
 
+import com.ym.mec.biz.dal.dao.InspectionItemDao;
+import com.ym.mec.biz.dal.entity.InspectionItem;
+import com.ym.mec.biz.dal.page.InspectionQueryInfo;
 import com.ym.mec.common.dal.BaseDAO;
+import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
+import com.ym.mec.util.date.DateUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.ym.mec.biz.dal.entity.Inspection;
 import com.ym.mec.biz.dal.dao.InspectionDao;
 import com.ym.mec.biz.service.InspectionService;
 
+import java.util.List;
+import java.util.stream.Collectors;
+
 @Service
-public class InspectionServiceImpl extends BaseServiceImpl<Long,Inspection> implements InspectionService {
+public class InspectionServiceImpl extends BaseServiceImpl<Long, Inspection> implements InspectionService {
 
     @Autowired
     private InspectionDao inspectionDao;
+    @Autowired
+    private InspectionItemDao inspectionItemDao;
 
     @Override
     public BaseDAO<Long, Inspection> getDAO() {
         return inspectionDao;
     }
 
+    @Override
+    public PageInfo<Inspection> getPageList(InspectionQueryInfo queryInfo) {
+        if (queryInfo.getMonth() != null) {
+            queryInfo.setStartTime(DateUtil.getFirstDayOfMonth(queryInfo.getMonth()));
+            queryInfo.setEndTime(DateUtil.getLastTimeWithDay(DateUtil.getLastDayOfMonth(queryInfo.getMonth())));
+        }
+        PageInfo<Inspection> pageInfo = this.queryPage(queryInfo);
+        if (pageInfo.getTotal() > 0) {
+            List<Inspection> rows = pageInfo.getRows();
+            List<Long> inspectionIds = rows.stream().map(Inspection::getId).collect(Collectors.toList());
+            List<InspectionItem> itemCountAndTimes = inspectionItemDao.getItemCountAndTimes(inspectionIds);
+            for (Inspection row : rows) {
+                for (InspectionItem itemCountAndTime : itemCountAndTimes) {
+                    if (!row.getId().equals(itemCountAndTime.getInspectionId())) continue;
+                    row.setItemNum(itemCountAndTime.getPlannedTimes());
+                    row.setTimes(itemCountAndTime.getTimes());
+                }
+            }
+        }
+        return pageInfo;
+    }
 }
 
 

+ 90 - 80
mec-biz/src/main/resources/config/mybatis/InspectionItemMapper.xml

@@ -1,84 +1,94 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.ym.mec.biz.dal.dao.InspectionItemDao">
-  <resultMap id="InspectionItem" type="com.ym.mec.biz.dal.entity.InspectionItem">
-    <!--@mbg.generated-->
-    <!--@Table inspection_item-->
-    <id column="id_" property="id" />
-    <result column="inspection_id_" property="inspectionId" />
-    <result column="organ_id_" property="organId" />
-    <result column="user_id_" property="userId" />
-    <result column="item_" property="item" />
-    <result column="times_" property="times" />
-    <result column="planned_times_" property="plannedTimes" />
-    <result column="submitted_times" property="submittedTimes" />
-    <result column="memo_" property="memo" />
-    <result column="operation_" property="operation" />
-    <result column="create_time_" property="createTime" />
-    <result column="update_time_" property="updateTime" />
-  </resultMap>
-  <sql id="Base_Column_List">
-    <!--@mbg.generated-->
-    id_, inspection_id_, organ_id_, user_id_, item_, times_, planned_times_, submitted_times, 
-    memo_, operation_, create_time_, update_time_
-  </sql>
-  <select id="get" parameterType="java.lang.Long" resultMap="InspectionItem">
-    <!--@mbg.generated-->
-    select 
-    <include refid="Base_Column_List" />
-    from inspection_item
-    where id_ = #{id}
-  </select>
-  <delete id="delete" parameterType="java.lang.Long">
-    <!--@mbg.generated-->
-    delete from inspection_item
-    where id_ = #{id}
-  </delete>
-  <insert id="insert" keyColumn="id_" keyProperty="id" parameterType="com.ym.mec.biz.dal.entity.InspectionItem" useGeneratedKeys="true">
-    <!--@mbg.generated-->
-    insert into inspection_item (inspection_id_, organ_id_, user_id_, item_, times_, planned_times_, 
-      submitted_times, memo_, operation_, create_time_, update_time_)
-    values (#{inspectionId}, #{organId}, #{userId}, #{item}, #{times}, #{plannedTimes}, 
-      #{submittedTimes}, #{memo}, #{operation}, #{createTime}, #{updateTime})
-  </insert>
-  <update id="update" parameterType="com.ym.mec.biz.dal.entity.InspectionItem">
-    <!--@mbg.generated-->
-    update inspection_item
-    <set>
-      <if test="inspectionId != null">
-        inspection_id_ = #{inspectionId},
-      </if>
-      <if test="organId != null">
-        organ_id_ = #{organId},
-      </if>
-      <if test="userId != null">
-        user_id_ = #{userId},
-      </if>
-      <if test="item != null">
-        item_ = #{item},
-      </if>
-      <if test="times != null">
-        times_ = #{times},
-      </if>
-      <if test="plannedTimes != null">
-        planned_times_ = #{plannedTimes},
-      </if>
-      <if test="submittedTimes != null">
-        submitted_times = #{submittedTimes},
-      </if>
-      <if test="memo != null">
-        memo_ = #{memo},
-      </if>
-      <if test="operation != null">
-        operation_ = #{operation},
-      </if>
-      <if test="createTime != null">
-        create_time_ = #{createTime},
-      </if>
-      <if test="updateTime != null">
-        update_time_ = #{updateTime},
-      </if>
-    </set>
-    where id_ = #{id}
-  </update>
+    <resultMap id="InspectionItem" type="com.ym.mec.biz.dal.entity.InspectionItem">
+        <!--@mbg.generated-->
+        <!--@Table inspection_item-->
+        <id column="id_" property="id"/>
+        <result column="inspection_id_" property="inspectionId"/>
+        <result column="organ_id_" property="organId"/>
+        <result column="user_id_" property="userId"/>
+        <result column="item_" property="item"/>
+        <result column="times_" property="times"/>
+        <result column="planned_times_" property="plannedTimes"/>
+        <result column="submitted_times" property="submittedTimes"/>
+        <result column="memo_" property="memo"/>
+        <result column="operation_" property="operation"/>
+        <result column="create_time_" property="createTime"/>
+        <result column="update_time_" property="updateTime"/>
+    </resultMap>
+    <sql id="Base_Column_List">
+        <!--@mbg.generated-->
+        id_, inspection_id_, organ_id_, user_id_, item_, times_, planned_times_, submitted_times,
+        memo_, operation_, create_time_, update_time_
+    </sql>
+    <select id="get" parameterType="java.lang.Long" resultMap="InspectionItem">
+        <!--@mbg.generated-->
+        select
+        <include refid="Base_Column_List"/>
+        from inspection_item
+        where id_ = #{id}
+    </select>
+    <delete id="delete" parameterType="java.lang.Long">
+        <!--@mbg.generated-->
+        delete from inspection_item
+        where id_ = #{id}
+    </delete>
+    <insert id="insert" keyColumn="id_" keyProperty="id" parameterType="com.ym.mec.biz.dal.entity.InspectionItem"
+            useGeneratedKeys="true">
+        <!--@mbg.generated-->
+        insert into inspection_item (inspection_id_, organ_id_, user_id_, item_, times_, planned_times_,
+        submitted_times, memo_, operation_, create_time_, update_time_)
+        values (#{inspectionId}, #{organId}, #{userId}, #{item}, #{times}, #{plannedTimes},
+        #{submittedTimes}, #{memo}, #{operation}, #{createTime}, #{updateTime})
+    </insert>
+    <update id="update" parameterType="com.ym.mec.biz.dal.entity.InspectionItem">
+        <!--@mbg.generated-->
+        update inspection_item
+        <set>
+            <if test="inspectionId != null">
+                inspection_id_ = #{inspectionId},
+            </if>
+            <if test="organId != null">
+                organ_id_ = #{organId},
+            </if>
+            <if test="userId != null">
+                user_id_ = #{userId},
+            </if>
+            <if test="item != null">
+                item_ = #{item},
+            </if>
+            <if test="times != null">
+                times_ = #{times},
+            </if>
+            <if test="plannedTimes != null">
+                planned_times_ = #{plannedTimes},
+            </if>
+            <if test="submittedTimes != null">
+                submitted_times = #{submittedTimes},
+            </if>
+            <if test="memo != null">
+                memo_ = #{memo},
+            </if>
+            <if test="operation != null">
+                operation_ = #{operation},
+            </if>
+            <if test="createTime != null">
+                create_time_ = #{createTime},
+            </if>
+            <if test="updateTime != null">
+                update_time_ = #{updateTime},
+            </if>
+        </set>
+        where id_ = #{id}
+    </update>
+    <!-- 获取任务项数目及总次数 -->
+    <select id="getItemCountAndTimes" resultMap="InspectionItem">
+        SELECT inspection_id_ ,IFNULL(COUNT(*),0) planned_times_,SUM(times_) times_ FROM inspection_item
+        WHERE inspection_id_ IN
+        <foreach collection="inspectionIds" item="inspectionId" open="(" close=")" separator=",">
+            #{inspectionId}
+        </foreach>
+        GROUP BY inspection_id_
+    </select>
 </mapper>

+ 98 - 71
mec-biz/src/main/resources/config/mybatis/InspectionMapper.xml

@@ -1,77 +1,104 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.ym.mec.biz.dal.dao.InspectionDao">
-  <resultMap id="Inspection" type="com.ym.mec.biz.dal.entity.Inspection">
-    <!--@mbg.generated-->
-    <!--@Table inspection-->
-    <id column="id_" property="id" />
-    <result column="organ_id_" property="organId" />
-    <result column="user_id_" property="userId" />
-    <result column="month_" property="month" />
-    <result column="memo_" property="memo" />
-    <result column="operation_" property="operation" />
-    <result column="create_time_" property="createTime" />
-    <result column="update_time_" property="updateTime" />
-  </resultMap>
-  <sql id="Base_Column_List">
-    <!--@mbg.generated-->
-    id_, organ_id_, user_id_, month_, memo_, operation_, create_time_, update_time_
-  </sql>
-  <select id="get" parameterType="java.lang.Long" resultMap="Inspection">
-    <!--@mbg.generated-->
-    select 
-    <include refid="Base_Column_List" />
-    from inspection
-    where id_ = #{id}
-  </select>
-  <delete id="delete" parameterType="java.lang.Long">
-    <!--@mbg.generated-->
-    delete from inspection
-    where id_ = #{id}
-  </delete>
-  <insert id="insert" keyColumn="id_" keyProperty="id" parameterType="com.ym.mec.biz.dal.entity.Inspection" useGeneratedKeys="true">
-    <!--@mbg.generated-->
-    insert into inspection (organ_id_, user_id_, month_, memo_, operation_, create_time_, update_time_
-      )
-    values (#{organId}, #{userId}, #{month}, #{memo}, #{operation}, #{createTime}, #{updateTime}
-      )
-  </insert>
-  <update id="update" parameterType="com.ym.mec.biz.dal.entity.Inspection">
-    <!--@mbg.generated-->
-    update inspection
-    <set>
-      <if test="organId != null">
-        organ_id_ = #{organId},
-      </if>
-      <if test="userId != null">
-        user_id_ = #{userId},
-      </if>
-      <if test="month != null">
-        month_ = #{month},
-      </if>
-      <if test="memo != null">
-        memo_ = #{memo},
-      </if>
-      <if test="operation != null">
-        operation_ = #{operation},
-      </if>
-      <if test="createTime != null">
-        create_time_ = #{createTime},
-      </if>
-      <if test="updateTime != null">
-        update_time_ = #{updateTime},
-      </if>
-    </set>
-    where id_ = #{id}
-  </update>
+    <resultMap id="Inspection" type="com.ym.mec.biz.dal.entity.Inspection">
+        <!--@mbg.generated-->
+        <!--@Table inspection-->
+        <id column="id_" property="id"/>
+        <result column="organ_id_" property="organId"/>
+        <result column="user_id_" property="userId"/>
+        <result column="month_" property="month"/>
+        <result column="memo_" property="memo"/>
+        <result column="operation_" property="operation"/>
+        <result column="create_time_" property="createTime"/>
+        <result column="update_time_" property="updateTime"/>
+    </resultMap>
+    <sql id="Base_Column_List">
+        <!--@mbg.generated-->
+        id_, organ_id_, user_id_, month_, memo_, operation_, create_time_, update_time_
+    </sql>
+    <select id="get" parameterType="java.lang.Long" resultMap="Inspection">
+        <!--@mbg.generated-->
+        select
+        <include refid="Base_Column_List"/>
+        from inspection
+        where id_ = #{id}
+    </select>
+    <delete id="delete" parameterType="java.lang.Long">
+        <!--@mbg.generated-->
+        delete from inspection
+        where id_ = #{id}
+    </delete>
+    <insert id="insert" keyColumn="id_" keyProperty="id" parameterType="com.ym.mec.biz.dal.entity.Inspection"
+            useGeneratedKeys="true">
+        <!--@mbg.generated-->
+        insert into inspection (organ_id_, user_id_, month_, memo_, operation_, create_time_, update_time_
+        )
+        values (#{organId}, #{userId}, #{month}, #{memo}, #{operation}, #{createTime}, #{updateTime}
+        )
+    </insert>
+    <update id="update" parameterType="com.ym.mec.biz.dal.entity.Inspection">
+        <!--@mbg.generated-->
+        update inspection
+        <set>
+            <if test="organId != null">
+                organ_id_ = #{organId},
+            </if>
+            <if test="userId != null">
+                user_id_ = #{userId},
+            </if>
+            <if test="month != null">
+                month_ = #{month},
+            </if>
+            <if test="memo != null">
+                memo_ = #{memo},
+            </if>
+            <if test="operation != null">
+                operation_ = #{operation},
+            </if>
+            <if test="createTime != null">
+                create_time_ = #{createTime},
+            </if>
+            <if test="updateTime != null">
+                update_time_ = #{updateTime},
+            </if>
+        </set>
+        where id_ = #{id}
+    </update>
 
-  <!-- 分页查询 -->
-  <select id="queryPage" resultMap="Inspection" parameterType="map">
-    SELECT * FROM inspection ORDER BY id_ <include refid="global.limit"/>
-  </select>
+    <!-- 分页查询 -->
+    <select id="queryPage" resultMap="Inspection" parameterType="map">
+        SELECT i.*,o.name_ organName,su.real_name_ userName FROM inspection i
+        LEFT JOIN organization o ON O.id_=I.organ_id_
+        LEFT JOIN sys_user su ON su.id_ = i.user_id_
+        <include refid="queryPageSql"/>
+        ORDER BY i.id_
+        <include refid="global.limit"/>
+    </select>
 
-  <!-- 查询当前表的总记录数 -->
-  <select id="queryCount" resultType="int">
-    SELECT COUNT(*) FROM inspection
-  </select>
+    <!-- 查询当前表的总记录数 -->
+    <select id="queryCount" resultType="int">
+        SELECT COUNT(*) FROM inspection i
+        <include refid="queryPageSql"/>
+    </select>
+
+    <sql id="queryPageSql">
+        <where>
+            <if test="organId != null">
+                AND FIND_IN_SET(i.organ_id_,#{organId})
+            </if>
+            <if test="userId != null">
+                AND i.user_id_ = #{userId}
+            </if>
+            <if test="operation != null">
+                AND i.operation_ = #{operation}
+            </if>
+            <if test="startTime != null">
+                AND i.month_ >= #{startTime}
+            </if>
+            <if test="endTime != null">
+                <![CDATA[AND i.month_ <= #{endTime}]]>
+            </if>
+        </where>
+    </sql>
 </mapper>

+ 60 - 0
mec-web/src/main/java/com/ym/mec/web/controller/InspectionController.java

@@ -0,0 +1,60 @@
+package com.ym.mec.web.controller;
+
+import com.ym.mec.auth.api.client.SysUserFeignService;
+import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.biz.dal.dao.EmployeeDao;
+import com.ym.mec.biz.dal.entity.Employee;
+import com.ym.mec.biz.dal.entity.Inspection;
+import com.ym.mec.biz.dal.page.InspectionQueryInfo;
+import com.ym.mec.biz.service.InspectionService;
+import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.common.entity.HttpResponseResult;
+import com.ym.mec.common.page.PageInfo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import java.util.Arrays;
+import java.util.List;
+
+@Api(tags = "巡查任务")
+@RequestMapping("inspection")
+@RestController
+public class InspectionController extends BaseController {
+    @Autowired
+    private InspectionService inspectionService;
+    @Autowired
+    private EmployeeDao employeeDao;
+    @Resource
+    private SysUserFeignService sysUserFeignService;
+
+    @ApiOperation(value = "巡查任务列表")
+    @GetMapping("/queryPage")
+    @PreAuthorize("@pcs.hasPermissions('inspection/queryPage')")
+    public HttpResponseResult<PageInfo<Inspection>> queryPage(InspectionQueryInfo queryInfo) {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null) {
+            return failed("用户信息获取失败");
+        }
+        if (!sysUser.getIsSuperAdmin()) {
+            Employee employee = employeeDao.get(sysUser.getId());
+            if (StringUtils.isEmpty(queryInfo.getOrganId())) {
+                queryInfo.setOrganId(employee.getOrganIdList());
+            } else if (StringUtils.isEmpty(employee.getOrganIdList())) {
+                return failed("用户所在分部异常");
+            } else {
+                List<String> list = Arrays.asList(employee.getOrganIdList().split(","));
+                if (!list.containsAll(Arrays.asList(queryInfo.getOrganId().split(",")))) {
+                    return failed("非法请求");
+                }
+            }
+        }
+        return succeed(inspectionService.queryPage(queryInfo));
+    }
+}