wuxw
2023-12-26 c43ee76a7bb8279c854bc27886666a72a7808151
加入工作单功能
10个文件已修改
615 ■■■■ 已修改文件
java110-bean/src/main/java/com/java110/dto/workCopy/WorkCopyDto.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-bean/src/main/java/com/java110/dto/workCycle/WorkCycleDto.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-bean/src/main/java/com/java110/dto/workPool/WorkPoolDto.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-bean/src/main/java/com/java110/dto/workPoolFile/WorkPoolFileDto.java 59 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-bean/src/main/java/com/java110/po/workPool/WorkPoolPo.java 104 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-bean/src/main/java/com/java110/po/workPoolFile/WorkPoolFilePo.java 64 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-bean/src/main/java/com/java110/po/workTask/WorkTaskPo.java 80 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-db/src/main/resources/mapper/oa/WorkPoolFileV1ServiceDaoImplMapper.xml 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-oa/src/main/java/com/java110/oa/cmd/work/SaveWorkPoolCmd.java 250 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-oa/src/main/java/com/java110/oa/cmd/workCycle/SaveWorkCycleCmd.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-bean/src/main/java/com/java110/dto/workCopy/WorkCopyDto.java
@@ -15,6 +15,12 @@
 **/
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;
java110-bean/src/main/java/com/java110/dto/workCycle/WorkCycleDto.java
@@ -15,6 +15,8 @@
 **/
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;
java110-bean/src/main/java/com/java110/dto/workPool/WorkPoolDto.java
@@ -15,6 +15,12 @@
 **/
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;
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 @@
 **/
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 @@
    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 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;
    }
}
java110-bean/src/main/java/com/java110/po/workPool/WorkPoolPo.java
@@ -17,6 +17,7 @@
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 @@
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;
    }
}
java110-bean/src/main/java/com/java110/po/workPoolFile/WorkPoolFilePo.java
@@ -17,6 +17,7 @@
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 @@
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;
    }
}
java110-bean/src/main/java/com/java110/po/workTask/WorkTaskPo.java
@@ -17,6 +17,7 @@
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 @@
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;
    }
}
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 != ''">
@@ -38,6 +39,12 @@
        </if>
        <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 ">
@@ -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}
@@ -69,6 +77,12 @@
        </if>
        <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>
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,15 +24,29 @@
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;
/**
 * 类表述:保存
@@ -53,6 +68,36 @@
    @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 @@
        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);
    }
}
service-oa/src/main/java/com/java110/oa/cmd/workCycle/SaveWorkCycleCmd.java
@@ -56,23 +56,21 @@
    @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);