瀏覽代碼

add 乐团巡查任务事项日程管理

周箭河 4 年之前
父節點
當前提交
637c37f2b4

+ 20 - 12
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupDao.java

@@ -262,66 +262,74 @@ public interface MusicGroupDao extends BaseDAO<String, MusicGroup> {
     List<MusicGroup> getTeacherMusicGroup(@Param("teacherId") Integer teacherId);
 
     /**
+     * @param userId:
+     * @return java.util.List<com.ym.mec.biz.dal.dto.MusicCardDto>
      * @describe 获取学员所在乐团名称
      * @apiNote 时光荏苒,认真工作的时间总是过得很快,而我、享受这一刻!
      * @author zouxuan
      * @date 2020/9/7
      * @time 14:16
-     * @param userId:
-     * @return java.util.List<com.ym.mec.biz.dal.dto.MusicCardDto>
      */
     List<MusicCardDto> queryUserMusicInfos(Integer userId);
 
     /**
+     * @param organId:
+     * @return java.util.List<com.ym.mec.biz.dal.dto.MusicCardDto>
      * @describe 获取分部下乐团名称列表
      * @apiNote 时光荏苒,认真工作的时间总是过得很快,而我、享受这一刻!
      * @author zouxuan
      * @date 2020/9/7
      * @time 14:31
-     * @param organId:
-     * @return java.util.List<com.ym.mec.biz.dal.dto.MusicCardDto>
      */
     List<MusicCardDto> queryOrganMusicInfos(@Param("organId") Integer organId);
 
     /**
+     * @param userId:
+     * @return java.lang.Integer
      * @describe 获取学员第一个教务老师
      * @apiNote 时光荏苒,认真工作的时间总是过得很快,而我、享受这一刻!
      * @author zouxuan
      * @date 2020/9/24
      * @time 10:27
-     * @param userId:
-     * @return java.lang.Integer
      */
     Integer getFirstEduTeacherId(@Param("userId") Integer userId);
 
     /**
+     * @param studentId:
+     * @return com.ym.mec.biz.dal.entity.MusicGroup
      * @describe 获取学员关联的乐团
      * @apiNote 时光荏苒,认真工作的时间总是过得很快,而我、享受这一刻!
      * @author zouxuan
      * @date 2020/9/28
      * @time 13:47
-     * @param studentId:
-     * @return com.ym.mec.biz.dal.entity.MusicGroup
      */
     MusicGroup getStuMusic(Integer studentId);
 
     /**
+     * @param studentId:
+     * @param educationalTeacherId:
+     * @return com.ym.mec.biz.dal.entity.MusicGroup
      * @describe 获取学员和乐团关联的乐团
      * @apiNote 时光荏苒,认真工作的时间总是过得很快,而我、享受这一刻!
      * @author zouxuan
      * @date 2020/9/28
      * @time 13:54
-     * @param studentId:
-     * @param educationalTeacherId:
-     * @return com.ym.mec.biz.dal.entity.MusicGroup
      */
     MusicGroup getStuEduMusic(@Param("studentId") Integer studentId, @Param("educationalTeacherId") Integer educationalTeacherId);
 
     /**
      * 根据班级编号获取乐团信息
-     * @author zouxuan
+     *
      * @param classGroupId
      * @return
+     * @author zouxuan
      */
     MusicGroup findByClassGroupId(Integer classGroupId);
+
+    /**
+     * 获取乐团的教学点
+     * @param id
+     * @return
+     */
+    School getMusicGroupSchool(@Param("id") String id);
 }

+ 25 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/InspectionItemPlan.java

@@ -2,6 +2,8 @@ package com.ym.mec.biz.dal.entity;
 
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.constraints.Positive;
 import java.util.Date;
 
 @ApiModel(value = "com-ym-mec-biz-dal-entity-InspectionItemPlan")
@@ -22,6 +24,7 @@ public class InspectionItemPlan {
      * 巡查任务id
      */
     @ApiModelProperty(value = "巡查任务id")
+    @Positive(message = "巡查任务id必须大于0")
     private Long itemId;
 
     /**
@@ -96,6 +99,12 @@ public class InspectionItemPlan {
     @ApiModelProperty(value = "修改时间")
     private Date updateTime;
 
+    @ApiModelProperty(value = "合作单位")
+    private String cooperationName;
+
+    @ApiModelProperty(value = "乐团名称")
+    private String musicGroupName;
+
     public Long getId() {
         return id;
     }
@@ -215,4 +224,20 @@ public class InspectionItemPlan {
     public void setUpdateTime(Date updateTime) {
         this.updateTime = updateTime;
     }
+
+    public String getMusicGroupName() {
+        return musicGroupName;
+    }
+
+    public void setMusicGroupName(String musicGroupName) {
+        this.musicGroupName = musicGroupName;
+    }
+
+    public String getCooperationName() {
+        return cooperationName;
+    }
+
+    public void setCooperationName(String cooperationName) {
+        this.cooperationName = cooperationName;
+    }
 }

+ 51 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/InspectionItemPlanQueryInfo.java

@@ -0,0 +1,51 @@
+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 InspectionItemPlanQueryInfo extends QueryInfo {
+
+    @ApiModelProperty(value = "itemId",required = false)
+    private Long itemId;
+
+    @ApiModelProperty(value = "乐团主管id",required = false)
+    private Integer userId;
+
+    private Date startTime;
+
+    private Date endTime;
+
+    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;
+    }
+
+    public Long getItemId() {
+        return itemId;
+    }
+
+    public void setItemId(Long itemId) {
+        this.itemId = itemId;
+    }
+
+    public Integer getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Integer userId) {
+        this.userId = userId;
+    }
+}

+ 12 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/InspectionItemPlanService.java

@@ -4,7 +4,19 @@ import com.ym.mec.biz.dal.entity.InspectionItemPlan;
 import com.ym.mec.common.service.BaseService;
 
 public interface InspectionItemPlanService extends BaseService<Long, InspectionItemPlan> {
+    /**
+     * 添加日程
+     * @param inspectionItemPlan
+     * @return
+     */
+    InspectionItemPlan add(InspectionItemPlan inspectionItemPlan);
 
+    /**
+     * 修改日程
+     * @param inspectionItemPlan
+     * @return
+     */
+    InspectionItemPlan updatePlan(InspectionItemPlan inspectionItemPlan);
 }
 
 

+ 92 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/InspectionItemPlanServiceImpl.java

@@ -1,18 +1,35 @@
 package com.ym.mec.biz.service.impl;
 
+import com.ym.mec.biz.dal.dao.InspectionDao;
+import com.ym.mec.biz.dal.dao.InspectionItemDao;
+import com.ym.mec.biz.dal.dao.MusicGroupDao;
+import com.ym.mec.biz.dal.entity.Inspection;
+import com.ym.mec.biz.dal.entity.InspectionItem;
+import com.ym.mec.biz.dal.entity.School;
 import com.ym.mec.common.dal.BaseDAO;
+import com.ym.mec.common.exception.BizException;
 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.dao.InspectionItemPlanDao;
 import com.ym.mec.biz.dal.entity.InspectionItemPlan;
 import com.ym.mec.biz.service.InspectionItemPlanService;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Date;
 
 @Service
-public class InspectionItemPlanServiceImpl extends BaseServiceImpl<Long,InspectionItemPlan> implements InspectionItemPlanService {
+public class InspectionItemPlanServiceImpl extends BaseServiceImpl<Long, InspectionItemPlan> implements InspectionItemPlanService {
 
     @Autowired
     private InspectionItemPlanDao inspectionItemPlanDao;
+    @Autowired
+    private InspectionItemDao inspectionItemDao;
+    @Autowired
+    private InspectionDao inspectionDao;
+    @Autowired
+    private MusicGroupDao musicGroupDao;
 
     @Override
     public BaseDAO<Long, InspectionItemPlan> getDAO() {
@@ -20,7 +37,81 @@ public class InspectionItemPlanServiceImpl extends BaseServiceImpl<Long,Inspecti
     }
 
 
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public InspectionItemPlan add(InspectionItemPlan inspectionItemPlan) {
+        InspectionItem inspectionItem = inspectionItemDao.get(inspectionItemPlan.getItemId());
+        if (inspectionItem == null) {
+            throw new BizException("任务项不存在");
+        }
+        if (!inspectionItem.getUserId().equals(inspectionItemPlan.getUserId())) {
+            throw new BizException("请勿非法操作他人日程");
+        }
+        Date nowDate = new Date();
+        Inspection inspection = inspectionDao.get(inspectionItem.getInspectionId());
+        if (inspection.getMonth().after(inspectionItemPlan.getPlanStart())) {
+            throw new BizException("日程时间不能早于工作周期开始时间");
+        }
+        if (nowDate.after(inspectionItemPlan.getPlanStart())) {
+            throw new BizException("日程时间不能早于当前时间");
+        }
+        Date itemEndTime = DateUtil.getLastTimeWithDay(DateUtil.getLastDayOfMonth(inspection.getMonth()));
+        if (itemEndTime.before(inspectionItemPlan.getPlanEnd())) {
+            throw new BizException("日程时间不能晚于工作周期结束时间");
+        }
+        //获取乐团教学点的GPS信息
+        School school = musicGroupDao.getMusicGroupSchool(inspectionItemPlan.getMusicGroupId());
+
+        inspectionItemPlan.setInspectionId(inspectionItem.getInspectionId());
+        inspectionItemPlan.setSchoolGps(school.getLongitudeLatitude());
+        inspectionItemPlan.setSubmitedGps("");
+        inspectionItemPlan.setMemo("");
+        inspectionItemPlan.setStatus(0);
+        inspectionItemPlan.setCreateTime(nowDate);
+        inspectionItemPlan.setUpdateTime(nowDate);
+        inspectionItemPlanDao.insert(inspectionItemPlan);
+        inspectionItem.setPlannedTimes(inspectionItem.getPlannedTimes() + 1);
+        inspectionItemDao.update(inspectionItem);
+        return inspectionItemPlan;
+    }
 
+    @Override
+    public InspectionItemPlan updatePlan(InspectionItemPlan inspectionItemPlan) {
+        InspectionItemPlan oldPlan = inspectionItemPlanDao.get(inspectionItemPlan.getId());
+        if (oldPlan.getStatus() > 0) {
+            throw new BizException("日程已完成,不能修改");
+        }
+        InspectionItem inspectionItem = inspectionItemDao.get(inspectionItemPlan.getItemId());
+        if (inspectionItem == null) {
+            throw new BizException("任务项不存在");
+        }
+        if (!inspectionItem.getUserId().equals(inspectionItemPlan.getUserId())) {
+            throw new BizException("请勿非法操作他人日程");
+        }
+        Date nowDate = new Date();
+        Inspection inspection = inspectionDao.get(inspectionItem.getInspectionId());
+        if (inspection.getMonth().after(inspectionItemPlan.getPlanStart())) {
+            throw new BizException("日程时间不能早于工作周期开始时间");
+        }
+        if (nowDate.after(inspectionItemPlan.getPlanStart())) {
+            throw new BizException("日程时间不能早于当前时间");
+        }
+        Date itemEndTime = DateUtil.getLastTimeWithDay(DateUtil.getLastDayOfMonth(inspection.getMonth()));
+        if (itemEndTime.before(inspectionItemPlan.getPlanEnd())) {
+            throw new BizException("日程时间不能晚于工作周期结束时间");
+        }
+        //获取乐团教学点的GPS信息
+        School school = musicGroupDao.getMusicGroupSchool(inspectionItemPlan.getMusicGroupId());
+
+        inspectionItemPlan.setInspectionId(inspectionItem.getInspectionId());
+        inspectionItemPlan.setSchoolGps(school.getLongitudeLatitude());
+        inspectionItemPlan.setSubmitedGps("");
+        inspectionItemPlan.setMemo("");
+        inspectionItemPlan.setStatus(0);
+        inspectionItemPlan.setUpdateTime(nowDate);
+        inspectionItemPlanDao.update(inspectionItemPlan);
+        return inspectionItemPlan;
+    }
 }
 
 

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

@@ -149,7 +149,7 @@
     <select id="queryPage" resultMap="InspectionItem" parameterType="map">
         SELECT ii.*,i.month_ month,o.name_ organName,su.real_name_ userName FROM inspection_item ii
         LEFT JOIN inspection i ON i.id_ = ii.inspection_id_
-        LEFT JOIN organization o ON O.id_=ii.organ_id_
+        LEFT JOIN organization o ON o.id_=ii.organ_id_
         LEFT JOIN sys_user su ON su.id_ = ii.user_id_
         <include refid="queryPageSql"/>
         ORDER BY ii.id_

+ 35 - 0
mec-biz/src/main/resources/config/mybatis/InspectionItemPlanMapper.xml

@@ -19,6 +19,8 @@
     <result column="status_" property="status" />
     <result column="create_time_" property="createTime" />
     <result column="update_time_" property="updateTime" />
+    <result column="cooperationName" property="cooperationName" />
+    <result column="musicGroupName" property="musicGroupName" />
   </resultMap>
   <sql id="Base_Column_List">
     <!--@mbg.generated-->
@@ -96,4 +98,37 @@
     </set>
     where id_ = #{id}
   </update>
+
+  <!-- 分页查询 -->
+  <select id="queryPage" resultMap="InspectionItemPlan" parameterType="map">
+    SELECT iip.*,co.name_ cooperationName,mg.name_ musicGroupName FROM inspection_item_plan iip
+    LEFT JOIN cooperation_organ co ON co.id_=iip.cooperation_organ_id_
+    LEFT JOIN music_group mg ON mg.id_ = iip.music_group_id_
+    <include refid="queryPageSql"/>
+    ORDER BY iip.plan_start_ ASC
+    <include refid="global.limit"/>
+  </select>
+
+  <!-- 查询当前表的总记录数 -->
+  <select id="queryCount" resultType="int">
+    SELECT COUNT(*) FROM inspection_item_plan iip
+    <include refid="queryPageSql"/>
+  </select>
+
+  <sql id="queryPageSql">
+    <where>
+      <if test="itemId != null">
+        AND iip.item_id_ = #{itemId}
+      </if>
+      <if test="userId != null">
+        AND iip.user_id_ = #{userId}
+      </if>
+      <if test="startTime != null">
+        AND iip.plan_start_ >= #{startTime}
+      </if>
+      <if test="endTime != null">
+        <![CDATA[AND iip.plan_start_ <= #{endTime}]]>
+      </if>
+    </where>
+  </sql>
 </mapper>

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

@@ -72,7 +72,7 @@
     <!-- 分页查询 -->
     <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 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_

+ 5 - 0
mec-biz/src/main/resources/config/mybatis/MusicGroupMapper.xml

@@ -630,4 +630,9 @@
 		LEFT JOIN class_group cg ON cg.music_group_id_ = mg.id_
 		WHERE cg.id_ = #{classGroupId} LIMIT 1
     </select>
+    <select id="getMusicGroupSchool" resultMap="com.ym.mec.biz.dal.dao.SchoolDao.School">
+        SELECT s.* FROM music_group mg
+        LEFT JOIN school s ON s.id_=mg.school_id_
+        WHERE mg.id_ = #{id}
+    </select>
 </mapper>

+ 67 - 0
mec-web/src/main/java/com/ym/mec/web/controller/InspectionItemPlanController.java

@@ -0,0 +1,67 @@
+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.entity.Inspection;
+import com.ym.mec.biz.dal.entity.InspectionItemPlan;
+import com.ym.mec.biz.dal.page.InspectionItemPlanQueryInfo;
+import com.ym.mec.biz.service.InspectionItemPlanService;
+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.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.Date;
+import java.util.List;
+
+@Api(tags = "巡查事项日程")
+@RequestMapping("inspectionItemPlan")
+@RestController
+public class InspectionItemPlanController extends BaseController {
+    @Autowired
+    private InspectionItemPlanService inspectionItemPlanService;
+    @Resource
+    private SysUserFeignService sysUserFeignService;
+
+    @ApiOperation(value = "添加巡查任务事项日程")
+    @PostMapping("/add")
+    @PreAuthorize("@pcs.hasPermissions('inspectionItemPlan/add')")
+    public HttpResponseResult<InspectionItemPlan> add(InspectionItemPlan inspectionItemPlan) {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null) {
+            return failed("用户信息获取失败");
+        }
+        inspectionItemPlan.setUserId(sysUser.getId());
+        return succeed(inspectionItemPlanService.add(inspectionItemPlan));
+    }
+
+    @ApiOperation(value = "修改巡查任务事项日程")
+    @PostMapping("/update")
+    @PreAuthorize("@pcs.hasPermissions('inspectionItemPlan/update')")
+    public HttpResponseResult<InspectionItemPlan> update(InspectionItemPlan inspectionItemPlan) {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null) {
+            return failed("用户信息获取失败");
+        }
+        inspectionItemPlan.setUserId(sysUser.getId());
+        inspectionItemPlanService.updatePlan(inspectionItemPlan);
+        return succeed(inspectionItemPlan);
+    }
+
+    @ApiOperation(value = "巡查任务事项日程列表")
+    @GetMapping("/queryPage")
+    @PreAuthorize("@pcs.hasPermissions('inspectionItemPlan/queryPage')")
+    public HttpResponseResult<PageInfo<InspectionItemPlan>> queryPage(InspectionItemPlanQueryInfo queryInfo) {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null) {
+            return failed("用户信息获取失败");
+        }
+        queryInfo.setUserId(sysUser.getId());
+        return succeed(inspectionItemPlanService.queryPage(queryInfo));
+    }
+}