wuxw лет назад: 2
Родитель
Сommit
7411ef8110

+ 4 - 3
java110-db/src/main/resources/mapper/oa/WorkCycleV1ServiceDaoImplMapper.xml

@@ -96,9 +96,7 @@
         <if test="hours !=null and hours != ''">
             , t.hours= #{hours}
         </if>
-        <if test="workId !=null and workId != ''">
-            , t.work_id= #{workId}
-        </if>
+
         <if test="staffName !=null and staffName != ''">
             , t.staff_name= #{staffName}
         </if>
@@ -121,6 +119,9 @@
         <if test="storeId !=null and storeId != ''">
             and t.store_id= #{storeId}
         </if>
+        <if test="workId !=null and workId != ''">
+            and t.work_id= #{workId}
+        </if>
 
     </update>
 

+ 4 - 3
java110-db/src/main/resources/mapper/oa/WorkPoolFileV1ServiceDaoImplMapper.xml

@@ -64,9 +64,7 @@
             , t.path_url= #{pathUrl}
         </if>
 
-        <if test="workId !=null and workId != ''">
-            , t.work_id= #{workId}
-        </if>
+
 
         where 1=1
         <if test="fileId !=null and fileId != ''">
@@ -84,6 +82,9 @@
         <if test="fileType !=null and fileType != ''">
             and t.file_type= #{fileType}
         </if>
+        <if test="workId !=null and workId != ''">
+            and t.work_id= #{workId}
+        </if>
 
     </update>
 

+ 3 - 3
java110-interface/src/main/java/com/java110/intf/oa/IWorkCycleV1InnerServiceSMO.java

@@ -39,13 +39,13 @@ public interface IWorkCycleV1InnerServiceSMO {
 
 
     @RequestMapping(value = "/saveWorkCycle", method = RequestMethod.POST)
-    public int saveWorkCycle(@RequestBody  WorkCyclePo workCyclePo);
+     int saveWorkCycle(@RequestBody  WorkCyclePo workCyclePo);
 
     @RequestMapping(value = "/updateWorkCycle", method = RequestMethod.POST)
-    public int updateWorkCycle(@RequestBody  WorkCyclePo workCyclePo);
+     int updateWorkCycle(@RequestBody  WorkCyclePo workCyclePo);
 
     @RequestMapping(value = "/deleteWorkCycle", method = RequestMethod.POST)
-    public int deleteWorkCycle(@RequestBody  WorkCyclePo workCyclePo);
+     int deleteWorkCycle(@RequestBody  WorkCyclePo workCyclePo);
 
     /**
      * <p>查询小区楼信息</p>

+ 3 - 3
java110-interface/src/main/java/com/java110/intf/oa/IWorkPoolContentV1InnerServiceSMO.java

@@ -39,13 +39,13 @@ public interface IWorkPoolContentV1InnerServiceSMO {
 
 
     @RequestMapping(value = "/saveWorkPoolContent", method = RequestMethod.POST)
-    public int saveWorkPoolContent(@RequestBody  WorkPoolContentPo workPoolContentPo);
+     int saveWorkPoolContent(@RequestBody  WorkPoolContentPo workPoolContentPo);
 
     @RequestMapping(value = "/updateWorkPoolContent", method = RequestMethod.POST)
-    public int updateWorkPoolContent(@RequestBody  WorkPoolContentPo workPoolContentPo);
+     int updateWorkPoolContent(@RequestBody  WorkPoolContentPo workPoolContentPo);
 
     @RequestMapping(value = "/deleteWorkPoolContent", method = RequestMethod.POST)
-    public int deleteWorkPoolContent(@RequestBody  WorkPoolContentPo workPoolContentPo);
+     int deleteWorkPoolContent(@RequestBody  WorkPoolContentPo workPoolContentPo);
 
     /**
      * <p>查询小区楼信息</p>

+ 3 - 3
java110-interface/src/main/java/com/java110/intf/oa/IWorkPoolFileV1InnerServiceSMO.java

@@ -39,13 +39,13 @@ public interface IWorkPoolFileV1InnerServiceSMO {
 
 
     @RequestMapping(value = "/saveWorkPoolFile", method = RequestMethod.POST)
-    public int saveWorkPoolFile(@RequestBody  WorkPoolFilePo workPoolFilePo);
+     int saveWorkPoolFile(@RequestBody  WorkPoolFilePo workPoolFilePo);
 
     @RequestMapping(value = "/updateWorkPoolFile", method = RequestMethod.POST)
-    public int updateWorkPoolFile(@RequestBody  WorkPoolFilePo workPoolFilePo);
+     int updateWorkPoolFile(@RequestBody  WorkPoolFilePo workPoolFilePo);
 
     @RequestMapping(value = "/deleteWorkPoolFile", method = RequestMethod.POST)
-    public int deleteWorkPoolFile(@RequestBody  WorkPoolFilePo workPoolFilePo);
+     int deleteWorkPoolFile(@RequestBody  WorkPoolFilePo workPoolFilePo);
 
     /**
      * <p>查询小区楼信息</p>

+ 34 - 0
service-oa/src/main/java/com/java110/oa/cmd/work/ListWorkPoolCmd.java

@@ -21,9 +21,12 @@ 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.workPoolContent.WorkPoolContentDto;
+import com.java110.intf.oa.IWorkPoolContentV1InnerServiceSMO;
 import com.java110.intf.oa.IWorkPoolV1InnerServiceSMO;
 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 com.java110.dto.workPool.WorkPoolDto;
@@ -52,6 +55,9 @@ public class ListWorkPoolCmd extends Cmd {
     @Autowired
     private IWorkPoolV1InnerServiceSMO workPoolV1InnerServiceSMOImpl;
 
+    @Autowired
+    private IWorkPoolContentV1InnerServiceSMO workPoolContentV1InnerServiceSMOImpl;
+
     @Override
     public void validate(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) {
         super.validatePageInfo(reqJson);
@@ -74,10 +80,38 @@ public class ListWorkPoolCmd extends Cmd {
                workPoolDtos = new ArrayList<>();
            }
 
+        queryContent(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);
 
            cmdDataFlowContext.setResponseEntity(responseEntity);
     }
+
+    /**
+     * 查询内容
+     *
+     * @param workPoolDtos
+     */
+    private void queryContent(List<WorkPoolDto> workPoolDtos) {
+        if (ListUtil.isNull(workPoolDtos)) {
+            return;
+        }
+
+        if (workPoolDtos.size() != 1) {
+            return;
+        }
+
+        WorkPoolContentDto workPoolContentDto = new WorkPoolContentDto();
+        workPoolContentDto.setWorkId(workPoolDtos.get(0).getWorkId());
+
+        List<WorkPoolContentDto> workPoolContentDtos = workPoolContentV1InnerServiceSMOImpl.queryWorkPoolContents(workPoolContentDto);
+
+        if (ListUtil.isNull(workPoolContentDtos)) {
+            return;
+        }
+
+        workPoolDtos.get(0).setContent(workPoolContentDtos.get(0).getContent());
+    }
 }

+ 262 - 5
service-oa/src/main/java/com/java110/oa/cmd/work/UpdateWorkPoolCmd.java

@@ -15,6 +15,7 @@
  */
 package com.java110.oa.cmd.work;
 
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.java110.core.annotation.Java110Cmd;
 import com.java110.core.annotation.Java110Transactional;
@@ -22,16 +23,31 @@ 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.intf.oa.IWorkPoolV1InnerServiceSMO;
+import com.java110.core.factory.GenerateCodeFactory;
+import com.java110.dto.user.UserDto;
+import com.java110.dto.workCopy.WorkCopyDto;
+import com.java110.dto.workCycle.WorkCycleDto;
+import com.java110.dto.workPool.WorkPoolDto;
+import com.java110.dto.workPoolFile.WorkPoolFileDto;
+import com.java110.dto.workTask.WorkTaskDto;
+import com.java110.intf.oa.*;
+import com.java110.intf.user.IUserV1InnerServiceSMO;
+import com.java110.po.workCopy.WorkCopyPo;
+import com.java110.po.workCycle.WorkCyclePo;
 import com.java110.po.workPool.WorkPoolPo;
+import com.java110.po.workPoolContent.WorkPoolContentPo;
+import com.java110.po.workPoolFile.WorkPoolFilePo;
+import com.java110.po.workTask.WorkTaskPo;
 import com.java110.utils.exception.CmdException;
-import com.java110.utils.util.Assert;
-import com.java110.utils.util.BeanConvertUtil;
+import com.java110.utils.util.*;
 import com.java110.vo.ResultVo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import java.util.Date;
+import java.util.List;
+
 
 /**
  * 类表述:更新
@@ -48,21 +64,81 @@ public class UpdateWorkPoolCmd extends Cmd {
 
     private static Logger logger = LoggerFactory.getLogger(UpdateWorkPoolCmd.class);
 
-
     @Autowired
     private IWorkPoolV1InnerServiceSMO workPoolV1InnerServiceSMOImpl;
 
+    @Autowired
+    private IWorkPoolContentV1InnerServiceSMO workPoolContentV1InnerServiceSMOImpl;
+
+    @Autowired
+    private IWorkPoolFileV1InnerServiceSMO workPoolFileV1InnerServiceSMOImpl;
+
+    @Autowired
+    private IWorkCycleV1InnerServiceSMO workCycleV1InnerServiceSMOImpl;
+
+    @Autowired
+    private IWorkTaskV1InnerServiceSMO workTaskV1InnerServiceSMOImpl;
+
+    @Autowired
+    private IWorkCopyV1InnerServiceSMO workCopyV1InnerServiceSMOImpl;
+
+    @Autowired
+    private IUserV1InnerServiceSMO userV1InnerServiceSMOImpl;
+
     @Override
     public void validate(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) {
         Assert.hasKeyAndValue(reqJson, "workId", "workId不能为空");
+        Assert.hasKeyAndValue(reqJson, "wtId", "请求报文中未包含wtId");
+        Assert.hasKeyAndValue(reqJson, "workName", "请求报文中未包含workName");
+        Assert.hasKeyAndValue(reqJson, "workCycle", "请求报文中未包含workCycle");
+        Assert.hasKeyAndValue(reqJson, "startTime", "请求报文中未包含startTime");
+        Assert.hasKeyAndValue(reqJson, "endTime", "请求报文中未包含endTime");
         String storeId = CmdContextUtils.getStoreId(cmdDataFlowContext);
-        reqJson.put("storeId",storeId);
+        reqJson.put("storeId", storeId);
+
+        if (!reqJson.containsKey("staffs")) {
+            throw new CmdException("未包含处理人");
+        }
+
+        JSONArray staffs = reqJson.getJSONArray("staffs");
+        if (staffs == null || staffs.isEmpty()) {
+            throw new CmdException("未包含处理人");
+        }
+
+        if (WorkPoolDto.WORK_CYCLE_ONE.equals(reqJson.getString("workCycle"))) {
+            return;
+        }
+        Assert.hasKeyAndValue(reqJson, "period", "周期性工单未包含周期");
+        Assert.hasKeyAndValue(reqJson, "hours", "周期性工单未包含完成小时");
+
+        if (WorkCycleDto.PERIOD_MONTH_DAY.equals(reqJson.getString("period"))) {
+            JSONArray months = reqJson.getJSONArray("months");
+            JSONArray days = reqJson.getJSONArray("days");
+
+            if (ListUtil.isNull(months) || ListUtil.isNull(days)) {
+                throw new CmdException("未包含月/天");
+            }
+        }
+
+        if (WorkCycleDto.PERIOD_MONTH_WORKDAY.equals(reqJson.getString("period"))) {
+            JSONArray workdays = reqJson.getJSONArray("workdays");
+            if (ListUtil.isNull(workdays)) {
+                throw new CmdException("未包含按周");
+            }
+        }
     }
 
     @Override
     @Java110Transactional
     public void doCmd(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) throws CmdException {
 
+        String userId = CmdContextUtils.getUserId(cmdDataFlowContext);
+        UserDto userDto = new UserDto();
+        userDto.setUserId(userId);
+        List<UserDto> userDtos = userV1InnerServiceSMOImpl.queryUsers(userDto);
+
+        Assert.listOnlyOne(userDtos, "用户未登录");
+
         WorkPoolPo workPoolPo = BeanConvertUtil.covertBean(reqJson, WorkPoolPo.class);
         int flag = workPoolV1InnerServiceSMOImpl.updateWorkPool(workPoolPo);
 
@@ -70,6 +146,187 @@ public class UpdateWorkPoolCmd extends Cmd {
             throw new CmdException("更新数据失败");
         }
 
+        //todo 保存 工作单内容
+        updateContent(workPoolPo, reqJson, userDtos.get(0));
+
+        //todo 保存 抄送人
+        updateCopyStaff(workPoolPo, reqJson, userDtos.get(0));
+
+        //todo 保存周期
+        updateWorkCycle(workPoolPo, reqJson, userDtos.get(0));
+
+
+        // todo 保存 工单任务
+        updateWorkTask(workPoolPo, reqJson, userDtos.get(0));
+
+
         cmdDataFlowContext.setResponseEntity(ResultVo.success());
     }
+
+    private void updateWorkTask(WorkPoolPo workPoolPo, JSONObject reqJson, UserDto userDto) {
+        JSONArray staffs = reqJson.getJSONArray("staffs");
+        String startTime = reqJson.getString("startTime");
+        String endTime = reqJson.getString("endTime");
+
+        if (WorkPoolDto.WORK_CYCLE_CYCLE.equals(workPoolPo.getWorkCycle())) {
+            Date sTime = DateUtil.getDateFromStringA(startTime);
+            endTime = DateUtil.getAddHoursStringA(sTime, reqJson.getIntValue("hours"));
+        }
+
+        WorkTaskPo workTaskPo = new WorkTaskPo();
+        workTaskPo.setWorkId(workPoolPo.getWorkId());
+        workTaskPo.setStoreId(workPoolPo.getStoreId());
+        workTaskV1InnerServiceSMOImpl.deleteWorkTask(workTaskPo);
+
+        WorkPoolFilePo workPoolFilePo = new WorkPoolFilePo();
+        workPoolFilePo.setWorkId(workPoolPo.getWorkId());
+        workPoolFilePo.setStoreId(workPoolPo.getStoreId());
+        workPoolFileV1InnerServiceSMOImpl.deleteWorkPoolFile(workPoolFilePo);
+
+        for (int staffIndex = 0; staffIndex < staffs.size(); staffIndex++) {
+             workTaskPo = new WorkTaskPo();
+            workTaskPo.setWorkId(workPoolPo.getWorkId());
+            workTaskPo.setState(WorkTaskDto.STATE_DOING);
+            workTaskPo.setTaskId(GenerateCodeFactory.getGeneratorId("11"));
+            workTaskPo.setStoreId(workPoolPo.getStoreId());
+            workTaskPo.setCommunityId(workPoolPo.getCommunityId());
+            workTaskPo.setStartTime(startTime);
+            workTaskPo.setEndTime(endTime);
+            workTaskPo.setStaffId(staffs.getJSONObject(staffIndex).getString("staffId"));
+            workTaskPo.setStaffName(staffs.getJSONObject(staffIndex).getString("staffName"));
+            int flag = workTaskV1InnerServiceSMOImpl.saveWorkTask(workTaskPo);
+
+            if (flag < 1) {
+                throw new CmdException("保存数据失败");
+            }
+
+            if (StringUtil.isEmpty(reqJson.getString("pathUrl"))) {
+                continue;
+            }
+
+            workPoolFilePo = new WorkPoolFilePo();
+            workPoolFilePo.setCommunityId(workPoolPo.getCommunityId());
+            workPoolFilePo.setFileType(WorkPoolFileDto.FILE_TYPE_START);
+            workPoolFilePo.setFileId(GenerateCodeFactory.getGeneratorId("11"));
+            workPoolFilePo.setWorkId(workPoolPo.getWorkId());
+            workPoolFilePo.setTaskId(workTaskPo.getTaskId());
+            workPoolFilePo.setPathUrl(reqJson.getString("pathUrl"));
+            workPoolFilePo.setStoreId(workPoolPo.getStoreId());
+            workPoolFileV1InnerServiceSMOImpl.saveWorkPoolFile(workPoolFilePo);
+        }
+    }
+
+    private void updateWorkCycle(WorkPoolPo workPoolPo, JSONObject reqJson, UserDto userDto) {
+        WorkCyclePo workCyclePo = new WorkCyclePo();
+        workCyclePo.setWorkId(workPoolPo.getWorkId());
+        workCyclePo.setCommunityId(workPoolPo.getCommunityId());
+        workCyclePo.setStoreId(workPoolPo.getStoreId());
+        workCycleV1InnerServiceSMOImpl.deleteWorkCycle(workCyclePo);
+
+        JSONArray staffs = reqJson.getJSONArray("staffs");
+        for (int staffIndex = 0; staffIndex < staffs.size(); staffIndex++) {
+            workCyclePo = new WorkCyclePo();
+            workCyclePo.setWorkCycle(workPoolPo.getWorkCycle());
+            workCyclePo.setWorkId(workPoolPo.getWorkId());
+            workCyclePo.setCommunityId(workPoolPo.getCommunityId());
+            workCyclePo.setStoreId(workPoolPo.getStoreId());
+            workCyclePo.setBeforeTime("30");
+            workCyclePo.setCycleId(GenerateCodeFactory.getGeneratorId("11"));
+            workCyclePo.setPeriod(reqJson.getString("period"));
+            workCyclePo.setHours(reqJson.getString("hours"));
+            if (WorkCycleDto.PERIOD_MONTH_DAY.equals(reqJson.getString("period"))) {
+                JSONArray months = reqJson.getJSONArray("months");
+                JSONArray days = reqJson.getJSONArray("days");
+                String monthStr = "";
+                for (int monthIndex = 0; monthIndex < months.size(); monthIndex++) {
+                    monthStr += (months.getString(monthIndex) + ",");
+                }
+                String dayStr = "";
+                for (int dayIndex = 0; dayIndex < days.size(); dayIndex++) {
+                    dayStr += (days.getString(dayIndex) + ",");
+                }
+                workCyclePo.setPeriodMonth(monthStr);
+                workCyclePo.setPeriodDay(dayStr);
+            }
+            if (WorkCycleDto.PERIOD_MONTH_WORKDAY.equals(reqJson.getString("period"))) {
+                JSONArray workdays = reqJson.getJSONArray("workdays");
+                String workdaysStr = "";
+                for (int workdaysIndex = 0; workdaysIndex < workdays.size(); workdaysIndex++) {
+                    workdaysStr += (workdays.getString(workdaysIndex) + ",");
+                }
+                workCyclePo.setPeriodWorkday(workdaysStr);
+            }
+            workCyclePo.setStaffId(staffs.getJSONObject(staffIndex).getString("staffId"));
+            workCyclePo.setStaffName(staffs.getJSONObject(staffIndex).getString("staffName"));
+            int flag = workCycleV1InnerServiceSMOImpl.saveWorkCycle(workCyclePo);
+
+            if (flag < 1) {
+                throw new CmdException("保存数据失败");
+            }
+        }
+
+    }
+
+    /**
+     * 保存抄送人
+     *
+     * @param workPoolPo
+     * @param reqJson
+     * @param userDto
+     */
+    private void updateCopyStaff(WorkPoolPo workPoolPo, JSONObject reqJson, UserDto userDto) {
+
+        if (!reqJson.containsKey("copyStaffs")) {
+            return;
+        }
+
+        JSONArray copyStaffs = reqJson.getJSONArray("copyStaffs");
+        if (ListUtil.isNull(copyStaffs)) {
+            return;
+        }
+
+        WorkCopyPo workCopyPo = null;
+        workCopyPo = new WorkCopyPo();
+        workCopyPo.setStoreId(reqJson.getString("storeId"));
+        workCopyPo.setWorkId(workPoolPo.getWorkId());
+
+        workCopyV1InnerServiceSMOImpl.deleteWorkCopy(workCopyPo);
+
+        for (int copyIndex = 0; copyIndex < copyStaffs.size(); copyIndex++) {
+            workCopyPo = new WorkCopyPo();
+            workCopyPo.setCopyId(GenerateCodeFactory.getGeneratorId("11"));
+            workCopyPo.setStaffId(copyStaffs.getJSONObject(copyIndex).getString("staffId"));
+            workCopyPo.setStaffName(copyStaffs.getJSONObject(copyIndex).getString("staffName"));
+            workCopyPo.setStoreId(reqJson.getString("storeId"));
+            workCopyPo.setWorkId(workPoolPo.getWorkId());
+            workCopyPo.setCommunityId(reqJson.getString("communityId"));
+            workCopyPo.setState(WorkCopyDto.STATE_DOING);
+            workCopyV1InnerServiceSMOImpl.saveWorkCopy(workCopyPo);
+        }
+    }
+
+    /**
+     * 修改内容
+     *
+     * @param workPoolPo
+     * @param reqJson
+     * @param userDto
+     */
+    private void updateContent(WorkPoolPo workPoolPo, JSONObject reqJson, UserDto userDto) {
+
+        WorkPoolContentPo workPoolContentPo = null;
+
+        workPoolContentPo = new WorkPoolContentPo();
+        workPoolContentPo.setWorkId(workPoolPo.getWorkId());
+        workPoolContentPo.setStoreId(workPoolPo.getStoreId());
+        workPoolContentV1InnerServiceSMOImpl.deleteWorkPoolContent(workPoolContentPo);
+
+        workPoolContentPo = new WorkPoolContentPo();
+        workPoolContentPo.setContentId(GenerateCodeFactory.getGeneratorId("11"));
+        workPoolContentPo.setContent(reqJson.getString("content"));
+        workPoolContentPo.setWorkId(workPoolPo.getWorkId());
+        workPoolContentPo.setCommunityId(reqJson.getString("communityId"));
+        workPoolContentPo.setStoreId(reqJson.getString("storeId"));
+        workPoolContentV1InnerServiceSMOImpl.saveWorkPoolContent(workPoolContentPo);
+    }
 }