Explorar el Código

加入工作单功能

wuxw hace 2 años
padre
commit
c43ee76a7b

+ 6 - 0
java110-bean/src/main/java/com/java110/dto/workCopy/WorkCopyDto.java

@@ -15,6 +15,12 @@ import java.util.Date;
  **/
 public class WorkCopyDto extends PageDto implements Serializable {
 
+
+    public static final String STATE_WAIT = "W"; //  W 待处理 D 处理中 C处理完成
+    public static final String STATE_DOING = "D"; //  W 待处理 D 处理中 C处理完成
+    public static final String STATE_COMPLETE = "W"; //  W 待处理 D 处理中 C处理完成
+
+
     private String copyId;
     private String staffName;
     private String state;

+ 2 - 0
java110-bean/src/main/java/com/java110/dto/workCycle/WorkCycleDto.java

@@ -15,6 +15,8 @@ import java.util.Date;
  **/
 public class WorkCycleDto extends PageDto implements Serializable {
 
+    public static final String PERIOD_MONTH_DAY = "2020022"; // 月天
+    public static final String PERIOD_MONTH_WORKDAY = "2020023"; // 按周
     private String workCycle;
     private String period;
     private String beforeTime;

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

@@ -15,6 +15,12 @@ import java.util.Date;
  **/
 public class WorkPoolDto extends PageDto implements Serializable {
 
+    public static final String WORK_CYCLE_ONE = "1001"; // 一次性工单
+    public static final String WORK_CYCLE_CYCLE = "2002"; // 周期性工单
+    public static final String STATE_WAIT = "W"; //  W 待处理 D 处理中 C处理完成
+    public static final String STATE_DOING = "D"; //  W 待处理 D 处理中 C处理完成
+    public static final String STATE_COMPLETE = "W"; //  W 待处理 D 处理中 C处理完成
+
     private String workCycle;
     private String createUserId;
     private String createUserName;

+ 46 - 13
java110-bean/src/main/java/com/java110/dto/workPoolFile/WorkPoolFileDto.java

@@ -1,6 +1,7 @@
 package com.java110.dto.workPoolFile;
 
 import com.java110.dto.PageDto;
+
 import java.io.Serializable;
 import java.util.Date;
 
@@ -14,11 +15,18 @@ import java.util.Date;
  **/
 public class WorkPoolFileDto extends PageDto implements Serializable {
 
+    public static final String FILE_TYPE_START = "S"; //文件类型,S 工作单附件,J 任务图片 E 任务附件
+    public static final String FILE_TYPE_JPG = "J"; //文件类型,S 工作单附件,J 任务图片 E 任务附件
+    public static final String FILE_TYPE_END = "E"; //文件类型,S 工作单附件,J 任务图片 E 任务附件
+
     private String pathUrl;
-private String communityId;
-private String storeId;
-private String workId;
-private String fileId;
+    private String communityId;
+    private String storeId;
+    private String workId;
+    private String fileId;
+    private String taskId;
+    private String fileType;
+
 
 
     private Date createTime;
@@ -29,31 +37,40 @@ private String fileId;
     public String getPathUrl() {
         return pathUrl;
     }
-public void setPathUrl(String pathUrl) {
+
+    public void setPathUrl(String pathUrl) {
         this.pathUrl = pathUrl;
     }
-public String getCommunityId() {
+
+    public String getCommunityId() {
         return communityId;
     }
-public void setCommunityId(String communityId) {
+
+    public void setCommunityId(String communityId) {
         this.communityId = communityId;
     }
-public String getStoreId() {
+
+    public String getStoreId() {
         return storeId;
     }
-public void setStoreId(String storeId) {
+
+    public void setStoreId(String storeId) {
         this.storeId = storeId;
     }
-public String getWorkId() {
+
+    public String getWorkId() {
         return workId;
     }
-public void setWorkId(String workId) {
+
+    public void setWorkId(String workId) {
         this.workId = workId;
     }
-public String getFileId() {
+
+    public String getFileId() {
         return fileId;
     }
-public void setFileId(String fileId) {
+
+    public void setFileId(String fileId) {
         this.fileId = fileId;
     }
 
@@ -73,4 +90,20 @@ public void setFileId(String fileId) {
     public void setStatusCd(String statusCd) {
         this.statusCd = statusCd;
     }
+
+    public String getTaskId() {
+        return taskId;
+    }
+
+    public void setTaskId(String taskId) {
+        this.taskId = taskId;
+    }
+
+    public String getFileType() {
+        return fileType;
+    }
+
+    public void setFileType(String fileType) {
+        this.fileType = fileType;
+    }
 }

+ 65 - 39
java110-bean/src/main/java/com/java110/po/workPool/WorkPoolPo.java

@@ -17,6 +17,7 @@ package com.java110.po.workPool;
 
 import java.io.Serializable;
 import java.util.Date;
+
 /**
  * 类表述: Po 数据模型实体对象 基本保持与数据库模型一直 用于 增加修改删除 等时的数据载体
  * add by 吴学文 at 2023-12-25 15:31:02 mail: 928255095@qq.com
@@ -28,97 +29,122 @@ import java.util.Date;
 public class WorkPoolPo implements Serializable {
 
     private String workCycle;
-private String createUserId;
-private String createUserName;
-private String statusCd = "0";
-private String storeId;
-private String workName;
-private String workId;
-private String wtId;
-private String createUserTel;
-private String startTime;
-private String endTime;
-private String state;
-private String communityId;
-public String getWorkCycle() {
+    private String createUserId;
+    private String createUserName;
+    private String statusCd = "0";
+    private String storeId;
+    private String workName;
+    private String workId;
+    private String wtId;
+    private String createUserTel;
+    private String startTime;
+    private String endTime;
+    private String state;
+    private String communityId;
+
+    public String getWorkCycle() {
         return workCycle;
     }
-public void setWorkCycle(String workCycle) {
+
+    public void setWorkCycle(String workCycle) {
         this.workCycle = workCycle;
     }
-public String getCreateUserId() {
+
+    public String getCreateUserId() {
         return createUserId;
     }
-public void setCreateUserId(String createUserId) {
+
+    public void setCreateUserId(String createUserId) {
         this.createUserId = createUserId;
     }
-public String getCreateUserName() {
+
+    public String getCreateUserName() {
         return createUserName;
     }
-public void setCreateUserName(String createUserName) {
+
+    public void setCreateUserName(String createUserName) {
         this.createUserName = createUserName;
     }
-public String getStatusCd() {
+
+    public String getStatusCd() {
         return statusCd;
     }
-public void setStatusCd(String statusCd) {
+
+    public void setStatusCd(String statusCd) {
         this.statusCd = statusCd;
     }
-public String getStoreId() {
+
+    public String getStoreId() {
         return storeId;
     }
-public void setStoreId(String storeId) {
+
+    public void setStoreId(String storeId) {
         this.storeId = storeId;
     }
-public String getWorkName() {
+
+    public String getWorkName() {
         return workName;
     }
-public void setWorkName(String workName) {
+
+    public void setWorkName(String workName) {
         this.workName = workName;
     }
-public String getWorkId() {
+
+    public String getWorkId() {
         return workId;
     }
-public void setWorkId(String workId) {
+
+    public void setWorkId(String workId) {
         this.workId = workId;
     }
-public String getWtId() {
+
+    public String getWtId() {
         return wtId;
     }
-public void setWtId(String wtId) {
+
+    public void setWtId(String wtId) {
         this.wtId = wtId;
     }
-public String getCreateUserTel() {
+
+    public String getCreateUserTel() {
         return createUserTel;
     }
-public void setCreateUserTel(String createUserTel) {
+
+    public void setCreateUserTel(String createUserTel) {
         this.createUserTel = createUserTel;
     }
-public String getStartTime() {
+
+    public String getStartTime() {
         return startTime;
     }
-public void setStartTime(String startTime) {
+
+    public void setStartTime(String startTime) {
         this.startTime = startTime;
     }
-public String getEndTime() {
+
+    public String getEndTime() {
         return endTime;
     }
-public void setEndTime(String endTime) {
+
+    public void setEndTime(String endTime) {
         this.endTime = endTime;
     }
-public String getState() {
+
+    public String getState() {
         return state;
     }
-public void setState(String state) {
+
+    public void setState(String state) {
         this.state = state;
     }
-public String getCommunityId() {
+
+    public String getCommunityId() {
         return communityId;
     }
-public void setCommunityId(String communityId) {
+
+    public void setCommunityId(String communityId) {
         this.communityId = communityId;
     }
 
 
-
 }

+ 47 - 17
java110-bean/src/main/java/com/java110/po/workPoolFile/WorkPoolFilePo.java

@@ -17,6 +17,7 @@ package com.java110.po.workPoolFile;
 
 import java.io.Serializable;
 import java.util.Date;
+
 /**
  * 类表述: Po 数据模型实体对象 基本保持与数据库模型一直 用于 增加修改删除 等时的数据载体
  * add by 吴学文 at 2023-12-25 15:57:07 mail: 928255095@qq.com
@@ -28,48 +29,77 @@ import java.util.Date;
 public class WorkPoolFilePo implements Serializable {
 
     private String pathUrl;
-private String statusCd = "0";
-private String communityId;
-private String storeId;
-private String workId;
-private String fileId;
-public String getPathUrl() {
+    private String statusCd = "0";
+    private String communityId;
+    private String storeId;
+    private String workId;
+    private String fileId;
+
+    private String taskId;
+    private String fileType;
+
+
+    public String getPathUrl() {
         return pathUrl;
     }
-public void setPathUrl(String pathUrl) {
+
+    public void setPathUrl(String pathUrl) {
         this.pathUrl = pathUrl;
     }
-public String getStatusCd() {
+
+    public String getStatusCd() {
         return statusCd;
     }
-public void setStatusCd(String statusCd) {
+
+    public void setStatusCd(String statusCd) {
         this.statusCd = statusCd;
     }
-public String getCommunityId() {
+
+    public String getCommunityId() {
         return communityId;
     }
-public void setCommunityId(String communityId) {
+
+    public void setCommunityId(String communityId) {
         this.communityId = communityId;
     }
-public String getStoreId() {
+
+    public String getStoreId() {
         return storeId;
     }
-public void setStoreId(String storeId) {
+
+    public void setStoreId(String storeId) {
         this.storeId = storeId;
     }
-public String getWorkId() {
+
+    public String getWorkId() {
         return workId;
     }
-public void setWorkId(String workId) {
+
+    public void setWorkId(String workId) {
         this.workId = workId;
     }
-public String getFileId() {
+
+    public String getFileId() {
         return fileId;
     }
-public void setFileId(String fileId) {
+
+    public void setFileId(String fileId) {
         this.fileId = fileId;
     }
 
+    public String getTaskId() {
+        return taskId;
+    }
 
+    public void setTaskId(String taskId) {
+        this.taskId = taskId;
+    }
 
+    public String getFileType() {
+        return fileType;
+    }
+
+    public void setFileType(String fileType) {
+        this.fileType = fileType;
+    }
 }

+ 50 - 30
java110-bean/src/main/java/com/java110/po/workTask/WorkTaskPo.java

@@ -17,6 +17,7 @@ package com.java110.po.workTask;
 
 import java.io.Serializable;
 import java.util.Date;
+
 /**
  * 类表述: Po 数据模型实体对象 基本保持与数据库模型一直 用于 增加修改删除 等时的数据载体
  * add by 吴学文 at 2023-12-25 16:12:15 mail: 928255095@qq.com
@@ -28,76 +29,95 @@ import java.util.Date;
 public class WorkTaskPo implements Serializable {
 
     private String staffName;
-private String startTime;
-private String statusCd = "0";
-private String state;
-private String endTime;
-private String communityId;
-private String storeId;
-private String taskId;
-private String workId;
-private String staffId;
-public String getStaffName() {
+    private String startTime;
+    private String statusCd = "0";
+    private String state;
+    private String endTime;
+    private String communityId;
+    private String storeId;
+    private String taskId;
+    private String workId;
+    private String staffId;
+
+    public String getStaffName() {
         return staffName;
     }
-public void setStaffName(String staffName) {
+
+    public void setStaffName(String staffName) {
         this.staffName = staffName;
     }
-public String getStartTime() {
+
+    public String getStartTime() {
         return startTime;
     }
-public void setStartTime(String startTime) {
+
+    public void setStartTime(String startTime) {
         this.startTime = startTime;
     }
-public String getStatusCd() {
+
+    public String getStatusCd() {
         return statusCd;
     }
-public void setStatusCd(String statusCd) {
+
+    public void setStatusCd(String statusCd) {
         this.statusCd = statusCd;
     }
-public String getState() {
+
+    public String getState() {
         return state;
     }
-public void setState(String state) {
+
+    public void setState(String state) {
         this.state = state;
     }
-public String getEndTime() {
+
+    public String getEndTime() {
         return endTime;
     }
-public void setEndTime(String endTime) {
+
+    public void setEndTime(String endTime) {
         this.endTime = endTime;
     }
-public String getCommunityId() {
+
+    public String getCommunityId() {
         return communityId;
     }
-public void setCommunityId(String communityId) {
+
+    public void setCommunityId(String communityId) {
         this.communityId = communityId;
     }
-public String getStoreId() {
+
+    public String getStoreId() {
         return storeId;
     }
-public void setStoreId(String storeId) {
+
+    public void setStoreId(String storeId) {
         this.storeId = storeId;
     }
-public String getTaskId() {
+
+    public String getTaskId() {
         return taskId;
     }
-public void setTaskId(String taskId) {
+
+    public void setTaskId(String taskId) {
         this.taskId = taskId;
     }
-public String getWorkId() {
+
+    public String getWorkId() {
         return workId;
     }
-public void setWorkId(String workId) {
+
+    public void setWorkId(String workId) {
         this.workId = workId;
     }
-public String getStaffId() {
+
+    public String getStaffId() {
         return staffId;
     }
-public void setStaffId(String staffId) {
+
+    public void setStaffId(String staffId) {
         this.staffId = staffId;
     }
 
 
-
 }

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

@@ -8,9 +8,9 @@
     <!-- 保存工作单文件信息 add by wuxw 2018-07-03 -->
     <insert id="saveWorkPoolFileInfo" parameterType="Map">
         insert into work_pool_file(
-        path_url,community_id,store_id,work_id,file_id
+        path_url,community_id,store_id,work_id,file_id,task_id,file_type
         ) values (
-        #{pathUrl},#{communityId},#{storeId},#{workId},#{fileId}
+        #{pathUrl},#{communityId},#{storeId},#{workId},#{fileId},#{taskId},#{fileType}
         )
     </insert>
 
@@ -18,7 +18,8 @@
     <!-- 查询工作单文件信息 add by wuxw 2018-07-03 -->
     <select id="getWorkPoolFileInfo" parameterType="Map" resultType="Map">
         select t.path_url,t.path_url pathUrl,t.status_cd,t.status_cd statusCd,t.community_id,t.community_id
-        communityId,t.store_id,t.store_id storeId,t.work_id,t.work_id workId,t.file_id,t.file_id fileId
+        communityId,t.store_id,t.store_id storeId,t.work_id,t.work_id workId,t.file_id,t.file_id fileId,t.task_id taskId,
+        t.file_type fileType
         from work_pool_file t
         where 1 =1
         <if test="pathUrl !=null and pathUrl != ''">
@@ -39,6 +40,12 @@
         <if test="fileId !=null and fileId != ''">
             and t.file_id= #{fileId}
         </if>
+        <if test="taskId !=null and taskId != ''">
+            and t.task_id= #{taskId}
+        </if>
+        <if test="fileType !=null and fileType != ''">
+            and t.file_type= #{fileType}
+        </if>
         order by t.create_time desc
         <if test="page != -1 and page != null ">
             limit #{page}, #{row}
@@ -60,6 +67,7 @@
         <if test="workId !=null and workId != ''">
             , t.work_id= #{workId}
         </if>
+
         where 1=1
         <if test="fileId !=null and fileId != ''">
             and t.file_id= #{fileId}
@@ -70,6 +78,12 @@
         <if test="storeId !=null and storeId != ''">
             and t.store_id= #{storeId}
         </if>
+        <if test="taskId !=null and taskId != ''">
+            and t.task_id= #{taskId}
+        </if>
+        <if test="fileType !=null and fileType != ''">
+            and t.file_type= #{fileType}
+        </if>
 
     </update>
 
@@ -96,6 +110,12 @@
         <if test="fileId !=null and fileId != ''">
             and t.file_id= #{fileId}
         </if>
+        <if test="taskId !=null and taskId != ''">
+            and t.task_id= #{taskId}
+        </if>
+        <if test="fileType !=null and fileType != ''">
+            and t.file_type= #{fileType}
+        </if>
 
 
     </select>

+ 246 - 4
service-oa/src/main/java/com/java110/oa/cmd/work/SaveWorkPoolCmd.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;
@@ -23,16 +24,30 @@ import com.java110.core.context.ICmdDataFlowContext;
 import com.java110.core.event.cmd.Cmd;
 import com.java110.core.event.cmd.CmdEvent;
 import com.java110.core.factory.GenerateCodeFactory;
-import com.java110.intf.oa.IWorkPoolV1InnerServiceSMO;
+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;
+
 /**
  * 类表述:保存
  * 服务编码:workPool.saveWorkPool
@@ -53,6 +68,36 @@ public class SaveWorkPoolCmd extends Cmd {
     @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;
+
+    /**
+     * {"workName":"关于扫雪任务","workTypes":[],"wtId":"102023122586210045",
+     * "workCycle":"1001","startTime":"2023-12-26 14:20:17","endTime":"2023-12-27 14:20:17",
+     * "staffs":[{"staffId":"302023071089700002","staffName":"ddysdd"}],"copyStaffs":[],"copyName":"",
+     * "pathUrl":"","content":"","period":"",
+     * "months":[],"days":[],"workdays":[],
+     * "hours":"24","context":"<p>请大家初雪工作,积极完成</p>"}
+     *
+     * @param event              事件对象
+     * @param cmdDataFlowContext 请求报文数据
+     * @param reqJson
+     */
     @Override
     public void validate(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) {
         Assert.hasKeyAndValue(reqJson, "communityId", "请求报文中未包含communityId");
@@ -62,21 +107,218 @@ public class SaveWorkPoolCmd extends Cmd {
         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);
         workPoolPo.setWorkId(GenerateCodeFactory.getGeneratorId(CODE_PREFIX_ID));
+        workPoolPo.setCreateUserId(userDtos.get(0).getUserId());
+        workPoolPo.setCreateUserName(userDtos.get(0).getName());
+        workPoolPo.setCreateUserTel(userDtos.get(0).getTel());
+        workPoolPo.setState(WorkPoolDto.STATE_WAIT);
         int flag = workPoolV1InnerServiceSMOImpl.saveWorkPool(workPoolPo);
 
         if (flag < 1) {
             throw new CmdException("保存数据失败");
         }
 
+        //todo 保存 工作单内容
+        saveContent(workPoolPo, reqJson, userDtos.get(0));
+
+        //todo 保存 抄送人
+        saveCopyStaff(workPoolPo, reqJson, userDtos.get(0));
+
+        //todo 保存周期
+        saveWorkCycle(workPoolPo, reqJson, userDtos.get(0));
+
+
+        // todo 保存 工单任务
+        saveWorkTask(workPoolPo, reqJson, userDtos.get(0));
+
+
         cmdDataFlowContext.setResponseEntity(ResultVo.success());
     }
+
+    private void saveWorkTask(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"));
+        }
+
+
+        for (int staffIndex = 0; staffIndex < staffs.size(); staffIndex++) {
+            WorkTaskPo 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 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 saveWorkCycle(WorkPoolPo workPoolPo, JSONObject reqJson, UserDto userDto) {
+
+        JSONArray staffs = reqJson.getJSONArray("staffs");
+        for (int staffIndex = 0; staffIndex < staffs.size(); staffIndex++) {
+            WorkCyclePo workCyclePo = new WorkCyclePo();
+            workCyclePo.setWorkCycle(workPoolPo.getWorkCycle());
+            workCyclePo.setWorkId(workPoolPo.getWorkId());
+            workCyclePo.setCommunityId(workPoolPo.getCommunityId());
+            workCyclePo.setStoreId(workCyclePo.getStoreId());
+            workCyclePo.setBeforeTime("30");
+            workCyclePo.setCycleId(GenerateCodeFactory.getGeneratorId(CODE_PREFIX_ID));
+            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 saveCopyStaff(WorkPoolPo workPoolPo, JSONObject reqJson, UserDto userDto) {
+
+        if (!reqJson.containsKey("copyStaffs")) {
+            return;
+        }
+
+        JSONArray copyStaffs = reqJson.getJSONArray("copyStaffs");
+        if (ListUtil.isNull(copyStaffs)) {
+            return;
+        }
+        WorkCopyPo workCopyPo = null;
+        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 saveContent(WorkPoolPo workPoolPo, JSONObject reqJson, UserDto userDto) {
+
+        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);
+    }
 }

+ 8 - 10
service-oa/src/main/java/com/java110/oa/cmd/workCycle/SaveWorkCycleCmd.java

@@ -56,23 +56,21 @@ public class SaveWorkCycleCmd extends Cmd {
     @Override
     public void validate(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) {
         Assert.hasKeyAndValue(reqJson, "workId", "请求报文中未包含workId");
-Assert.hasKeyAndValue(reqJson, "communityId", "请求报文中未包含communityId");
-Assert.hasKeyAndValue(reqJson, "staffId", "请求报文中未包含staffId");
-Assert.hasKeyAndValue(reqJson, "staffName", "请求报文中未包含staffName");
-Assert.hasKeyAndValue(reqJson, "workCycle", "请求报文中未包含workCycle");
-Assert.hasKeyAndValue(reqJson, "cycleStartTime", "请求报文中未包含cycleStartTime");
-Assert.hasKeyAndValue(reqJson, "cycleEndTime", "请求报文中未包含cycleEndTime");
-Assert.hasKeyAndValue(reqJson, "beforeTime", "请求报文中未包含beforeTime");
-Assert.hasKeyAndValue(reqJson, "period", "请求报文中未包含period");
+        Assert.hasKeyAndValue(reqJson, "communityId", "请求报文中未包含communityId");
+        Assert.hasKeyAndValue(reqJson, "staffId", "请求报文中未包含staffId");
+        Assert.hasKeyAndValue(reqJson, "staffName", "请求报文中未包含staffName");
+        Assert.hasKeyAndValue(reqJson, "workCycle", "请求报文中未包含workCycle");
+        Assert.hasKeyAndValue(reqJson, "beforeTime", "请求报文中未包含beforeTime");
+        Assert.hasKeyAndValue(reqJson, "period", "请求报文中未包含period");
         String storeId = CmdContextUtils.getStoreId(cmdDataFlowContext);
-        reqJson.put("storeId",storeId);
+        reqJson.put("storeId", storeId);
     }
 
     @Override
     @Java110Transactional
     public void doCmd(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) throws CmdException {
 
-       WorkCyclePo workCyclePo = BeanConvertUtil.covertBean(reqJson, WorkCyclePo.class);
+        WorkCyclePo workCyclePo = BeanConvertUtil.covertBean(reqJson, WorkCyclePo.class);
         workCyclePo.setCycleId(GenerateCodeFactory.getGeneratorId(CODE_PREFIX_ID));
         int flag = workCycleV1InnerServiceSMOImpl.saveWorkCycle(workCyclePo);