Sfoglia il codice sorgente

优化办工作单

wuxw 2 anni fa
parent
commit
bcc6572cfe

+ 10 - 0
java110-bean/src/main/java/com/java110/dto/workPool/WorkPoolDto.java

@@ -57,6 +57,8 @@ public class WorkPoolDto extends PageDto implements Serializable {
 
     private String pathUrl;
 
+    private String taskId;
+
 
     public String getWorkCycle() {
         return workCycle;
@@ -234,4 +236,12 @@ public class WorkPoolDto extends PageDto implements Serializable {
     public void setPathUrl(String pathUrl) {
         this.pathUrl = pathUrl;
     }
+
+    public String getTaskId() {
+        return taskId;
+    }
+
+    public void setTaskId(String taskId) {
+        this.taskId = taskId;
+    }
 }

+ 104 - 0
java110-db/src/main/resources/mapper/oa/WorkPoolV1ServiceDaoImplMapper.xml

@@ -181,4 +181,108 @@
 
     </select>
 
+    <select id="queryTaskWorkPoolsCount" parameterType="Map" resultType="Map">
+        select count(1) count
+        from work_pool t
+        left join work_type wt on t.wt_id = wt.wt_id
+        left join work_task wtk on t.work_id = wtk.work_id and wtk.status_cd = '0'
+        left join t_dict td on wtk.state = td.status_cd and td.table_name = 'work_pool' and td.table_columns = 'state'
+        where 1 =1
+        <if test="workCycle !=null and workCycle != ''">
+            and t.work_cycle= #{workCycle}
+        </if>
+        <if test="staffId !=null and staffId != ''">
+            and wtk.staff_id= #{staffId}
+        </if>
+        <if test="staffName !=null and staffName != ''">
+            and wtk.staff_name = #{staffName}
+        </if>
+        <if test="statusCd !=null and statusCd != ''">
+            and t.status_cd= #{statusCd}
+        </if>
+        <if test="storeId !=null and storeId != ''">
+            and t.store_id= #{storeId}
+        </if>
+        <if test="workName !=null and workName != ''">
+            and t.work_name= #{workName}
+        </if>
+        <if test="workId !=null and workId != ''">
+            and t.work_id= #{workId}
+        </if>
+        <if test="wtId !=null and wtId != ''">
+            and t.wt_id= #{wtId}
+        </if>
+
+        <if test="queryStartTime !=null and queryStartTime !=''">
+            and wtk.create_time &gt;= #{queryStartTime}
+        </if>
+        <if test="queryEndTime !=null and queryEndTime !=''">
+            and wtk.create_time &lt;= #{queryEndTime}
+        </if>
+        <if test="state !=null and state != ''">
+            and wtk.state= #{state}
+        </if>
+        <if test="communityId !=null and communityId != ''">
+            and t.community_id= #{communityId}
+        </if>
+
+
+    </select>
+
+    <select id="queryTaskWorkPools" parameterType="Map" resultType="Map">
+        select t.work_cycle,t.work_cycle workCycle,t.create_user_id
+        createUserId,t.create_user_name,t.create_user_name createUserName,t.status_cd,t.status_cd
+        statusCd,t.store_id storeId,t.work_name workName,t.work_id
+        workId,t.wt_id wtId,t.create_user_tel createUserTel,wtk.start_time
+        startTime,wtk.end_time endTime,wtk.state,t.community_id communityId,t.create_time createTime,
+        td.`name` stateName,wt.type_name typeName,wtk.staff_name curStaffName,t.task_id taskId
+        from work_pool t
+        left join work_type wt on t.wt_id = wt.wt_id
+        left join work_task wtk on t.work_id = wtk.work_id and wtk.status_cd = '0'
+        left join t_dict td on wtk.state = td.status_cd and td.table_name = 'work_pool' and td.table_columns = 'state'
+        where 1 =1
+        <if test="workCycle !=null and workCycle != ''">
+            and t.work_cycle= #{workCycle}
+        </if>
+        <if test="staffId !=null and staffId != ''">
+            and wtk.staff_id= #{staffId}
+        </if>
+        <if test="staffName !=null and staffName != ''">
+            and wtk.staff_name = #{staffName}
+        </if>
+        <if test="statusCd !=null and statusCd != ''">
+            and t.status_cd= #{statusCd}
+        </if>
+        <if test="storeId !=null and storeId != ''">
+            and t.store_id= #{storeId}
+        </if>
+        <if test="workName !=null and workName != ''">
+            and t.work_name= #{workName}
+        </if>
+        <if test="workId !=null and workId != ''">
+            and t.work_id= #{workId}
+        </if>
+        <if test="wtId !=null and wtId != ''">
+            and t.wt_id= #{wtId}
+        </if>
+
+        <if test="queryStartTime !=null and queryStartTime !=''">
+            and wtk.create_time &gt;= #{queryStartTime}
+        </if>
+        <if test="queryEndTime !=null and queryEndTime !=''">
+            and wtk.create_time &lt;= #{queryEndTime}
+        </if>
+        <if test="state !=null and state != ''">
+            and wtk.state= #{state}
+        </if>
+        <if test="communityId !=null and communityId != ''">
+            and t.community_id= #{communityId}
+        </if>
+        order by wtk.create_time desc
+        <if test="page != -1 and page != null ">
+            limit #{page}, #{row}
+        </if>
+
+    </select>
+
 </mapper>

+ 6 - 0
java110-interface/src/main/java/com/java110/intf/oa/IWorkPoolV1InnerServiceSMO.java

@@ -65,4 +65,10 @@ public interface IWorkPoolV1InnerServiceSMO {
      */
     @RequestMapping(value = "/queryWorkPoolsCount", method = RequestMethod.POST)
     int queryWorkPoolsCount(@RequestBody WorkPoolDto workPoolDto);
+
+    @RequestMapping(value = "/queryTaskWorkPoolsCount", method = RequestMethod.POST)
+    int queryTaskWorkPoolsCount(@RequestBody WorkPoolDto workPoolDto);
+
+    @RequestMapping(value = "/queryTaskWorkPools", method = RequestMethod.POST)
+    List<WorkPoolDto> queryTaskWorkPools(@RequestBody WorkPoolDto workPoolDto);
 }

+ 116 - 0
service-oa/src/main/java/com/java110/oa/cmd/work/QueryTaskWorkCmd.java

@@ -0,0 +1,116 @@
+package com.java110.oa.cmd.work;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.core.annotation.Java110Cmd;
+import com.java110.core.context.CmdContextUtils;
+import com.java110.core.context.ICmdDataFlowContext;
+import com.java110.core.event.cmd.Cmd;
+import com.java110.core.event.cmd.CmdEvent;
+import com.java110.dto.workCopy.WorkCopyDto;
+import com.java110.dto.workPool.WorkPoolDto;
+import com.java110.dto.workTask.WorkTaskDto;
+import com.java110.intf.oa.*;
+import com.java110.utils.exception.CmdException;
+import com.java110.utils.util.BeanConvertUtil;
+import com.java110.utils.util.ListUtil;
+import com.java110.vo.ResultVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+
+import java.text.ParseException;
+import java.util.ArrayList;
+import java.util.List;
+
+@Java110Cmd(serviceCode = "work.queryTaskWork")
+public class QueryTaskWorkCmd extends Cmd {
+
+    @Autowired
+    private IWorkPoolV1InnerServiceSMO workPoolV1InnerServiceSMOImpl;
+
+    @Autowired
+    private IWorkTaskV1InnerServiceSMO workTaskV1InnerServiceSMOImpl;
+
+    @Autowired
+    private IWorkCopyV1InnerServiceSMO workCopyV1InnerServiceSMOImpl;
+
+    @Autowired
+    private IWorkPoolFileV1InnerServiceSMO workPoolFileV1InnerServiceSMOImpl;
+
+    @Autowired
+    private IWorkPoolContentV1InnerServiceSMO workPoolContentV1InnerServiceSMOImpl;
+
+
+    @Override
+    public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
+        super.validatePageInfo(reqJson);
+        String storeId = CmdContextUtils.getStoreId(context);
+        reqJson.put("storeId", storeId);
+    }
+
+    @Override
+    public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
+        WorkPoolDto workPoolDto = BeanConvertUtil.covertBean(reqJson, WorkPoolDto.class);
+
+        String userId = CmdContextUtils.getUserId(context);
+        workPoolDto.setCreateUserId(userId);
+
+        int count = workPoolV1InnerServiceSMOImpl.queryTaskWorkPoolsCount(workPoolDto);
+
+        List<WorkPoolDto> workPoolDtos = null;
+
+        if (count > 0) {
+            workPoolDtos = workPoolV1InnerServiceSMOImpl.queryTaskWorkPools(workPoolDto);
+        } else {
+            workPoolDtos = new ArrayList<>();
+        }
+
+        //todo 查询 处理人 和抄送人
+        queryCopy(workPoolDtos);
+
+
+        ResultVo resultVo = new ResultVo((int) Math.ceil((double) count / (double) reqJson.getInteger("row")), count, workPoolDtos);
+
+        ResponseEntity<String> responseEntity = new ResponseEntity<String>(resultVo.toString(), HttpStatus.OK);
+
+        context.setResponseEntity(responseEntity);
+    }
+
+    private void queryCopy(List<WorkPoolDto> workPoolDtos) {
+
+        if (ListUtil.isNull(workPoolDtos)) {
+            return;
+        }
+        List<String> workIds = new ArrayList<>();
+        for (WorkPoolDto workPoolDto : workPoolDtos) {
+            workIds.add(workPoolDto.getWorkId());
+        }
+
+        WorkCopyDto workCopyDto = new WorkCopyDto();
+        workCopyDto.setWorkIds(workIds.toArray(new String[workIds.size()]));
+        List<WorkCopyDto> workCopyDtos = workCopyV1InnerServiceSMOImpl.queryWorkCopys(workCopyDto);
+
+        String curCopyName = "";
+        for (WorkPoolDto workPoolDto : workPoolDtos) {
+            curCopyName = "";
+            for (WorkCopyDto tmpWorkCopyDto : workCopyDtos) {
+                if (!WorkTaskDto.STATE_DOING.equals(tmpWorkCopyDto.getState())) {
+                    continue;
+                }
+
+                if (!workPoolDto.getWorkId().equals(tmpWorkCopyDto.getWorkId())) {
+                    continue;
+                }
+
+                if (curCopyName.split(",").length > 2) {
+                    continue;
+                }
+
+                curCopyName += (tmpWorkCopyDto.getStaffName() + ",");
+            }
+
+            workPoolDto.setCurCopyName(curCopyName);
+        }
+
+    }
+}

+ 4 - 0
service-oa/src/main/java/com/java110/oa/dao/IWorkPoolV1ServiceDao.java

@@ -16,6 +16,7 @@
 package com.java110.oa.dao;
 
 
+import com.java110.dto.workPool.WorkPoolDto;
 import com.java110.utils.exception.DAOException;
 
 
@@ -70,4 +71,7 @@ public interface IWorkPoolV1ServiceDao {
      */
     int queryWorkPoolsCount(Map info);
 
+    int queryTaskWorkPoolsCount(Map info);
+
+    List<Map> queryTaskWorkPools(Map info);
 }

+ 21 - 0
service-oa/src/main/java/com/java110/oa/dao/impl/WorkPoolV1ServiceDaoImpl.java

@@ -108,5 +108,26 @@ public class WorkPoolV1ServiceDaoImpl extends BaseServiceDao implements IWorkPoo
         return Integer.parseInt(infos.get(0).get("count").toString());
     }
 
+    @Override
+    public int queryTaskWorkPoolsCount(Map info) {
+        logger.debug("查询 queryTaskWorkPoolsCount 入参 info : {}",info);
+
+        List<Map> infos = sqlSessionTemplate.selectList("workPoolV1ServiceDaoImpl.queryTaskWorkPoolsCount", info);
+        if (infos.size() < 1) {
+            return 0;
+        }
+
+        return Integer.parseInt(infos.get(0).get("count").toString());
+    }
+
+    @Override
+    public List<Map> queryTaskWorkPools(Map info) {
+        logger.debug("查询 queryTaskWorkPools 入参 info : {}",info);
+
+        List<Map> infos = sqlSessionTemplate.selectList("workPoolV1ServiceDaoImpl.queryTaskWorkPools",info);
+
+        return infos;
+    }
+
 
 }

+ 22 - 0
service-oa/src/main/java/com/java110/oa/smo/impl/WorkPoolV1InnerServiceSMOImpl.java

@@ -86,4 +86,26 @@ public class WorkPoolV1InnerServiceSMOImpl extends BaseServiceSMO implements IWo
     public int queryWorkPoolsCount(@RequestBody WorkPoolDto workPoolDto) {
         return workPoolV1ServiceDaoImpl.queryWorkPoolsCount(BeanConvertUtil.beanCovertMap(workPoolDto));    }
 
+    @Override
+    public int queryTaskWorkPoolsCount(@RequestBody WorkPoolDto workPoolDto) {
+        return workPoolV1ServiceDaoImpl.queryTaskWorkPoolsCount(BeanConvertUtil.beanCovertMap(workPoolDto));    }
+
+
+    @Override
+    public List<WorkPoolDto> queryTaskWorkPools(@RequestBody WorkPoolDto workPoolDto) {
+        //校验是否传了 分页信息
+
+        int page = workPoolDto.getPage();
+
+        if (page != PageDto.DEFAULT_PAGE) {
+            workPoolDto.setPage((page - 1) * workPoolDto.getRow());
+        }
+
+        List<WorkPoolDto> workPools = BeanConvertUtil.covertBeanList(
+                workPoolV1ServiceDaoImpl.queryTaskWorkPools(BeanConvertUtil.beanCovertMap(workPoolDto)),
+                WorkPoolDto.class);
+
+        return workPools;
+    }
+
 }