wuxw
2024-10-31 9c013c105b46ea0e8cbfbe6e7d32e7bddbdcc1c4
service-oa/src/main/java/com/java110/oa/cmd/work/SaveWorkPoolCmd.java
@@ -28,6 +28,7 @@
import com.java110.dto.workCopy.WorkCopyDto;
import com.java110.dto.workCycle.WorkCycleDto;
import com.java110.dto.workPool.WorkPoolDto;
import com.java110.dto.workPoolContent.WorkPoolContentDto;
import com.java110.dto.workPoolFile.WorkPoolFileDto;
import com.java110.dto.workTask.WorkTaskDto;
import com.java110.intf.oa.*;
@@ -38,6 +39,7 @@
import com.java110.po.workPoolContent.WorkPoolContentPo;
import com.java110.po.workPoolFile.WorkPoolFilePo;
import com.java110.po.workTask.WorkTaskPo;
import com.java110.po.workTaskItem.WorkTaskItemPo;
import com.java110.utils.exception.CmdException;
import com.java110.utils.util.*;
import com.java110.vo.ResultVo;
@@ -86,6 +88,9 @@
    @Autowired
    private IUserV1InnerServiceSMO userV1InnerServiceSMOImpl;
    @Autowired
    private IWorkTaskItemV1InnerServiceSMO workTaskItemV1InnerServiceSMOImpl;
    /**
     * {"workName":"关于扫雪任务","workTypes":[],"wtId":"102023122586210045",
     * "workCycle":"1001","startTime":"2023-12-26 14:20:17","endTime":"2023-12-27 14:20:17",
@@ -108,14 +113,22 @@
        Assert.hasKeyAndValue(reqJson, "endTime", "请求报文中未包含endTime");
        String storeId = CmdContextUtils.getStoreId(cmdDataFlowContext);
        reqJson.put("storeId", storeId);
        if (!reqJson.containsKey("staffs")) {
            throw new CmdException("未包含处理人");
        }
        JSONArray staffs = reqJson.getJSONArray("staffs");
        if (staffs == null || staffs.isEmpty()) {
        if (ListUtil.isNull(staffs)) {
            throw new CmdException("未包含处理人");
        }
        if (!reqJson.containsKey("contents")) {
            throw new CmdException("未包含工作单内容");
        }
        JSONArray contents = reqJson.getJSONArray("contents");
        if (ListUtil.isNull(contents)) {
            throw new CmdException("内容为空");
        }
        if (WorkPoolDto.WORK_CYCLE_ONE.equals(reqJson.getString("workCycle"))) {
@@ -123,37 +136,29 @@
        }
        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());
@@ -161,25 +166,17 @@
        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());
    }
@@ -187,17 +184,17 @@
        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"));
        }
        JSONArray contents = reqJson.getJSONArray("contents");
        for (int staffIndex = 0; staffIndex < staffs.size(); staffIndex++) {
            WorkTaskPo workTaskPo = new WorkTaskPo();
            workTaskPo.setWorkId(workPoolPo.getWorkId());
            workTaskPo.setState(WorkTaskDto.STATE_DOING);
            workTaskPo.setState(WorkTaskDto.STATE_WAIT);
            workTaskPo.setTaskId(GenerateCodeFactory.getGeneratorId("11"));
            workTaskPo.setStoreId(workPoolPo.getStoreId());
            workTaskPo.setCommunityId(workPoolPo.getCommunityId());
@@ -205,16 +202,30 @@
            workTaskPo.setEndTime(endTime);
            workTaskPo.setStaffId(staffs.getJSONObject(staffIndex).getString("staffId"));
            workTaskPo.setStaffName(staffs.getJSONObject(staffIndex).getString("staffName"));
            workTaskPo.setOrgStaffId(staffs.getJSONObject(staffIndex).getString("staffId"));
            workTaskPo.setOrgStaffName(staffs.getJSONObject(staffIndex).getString("staffName"));
            int flag = workTaskV1InnerServiceSMOImpl.saveWorkTask(workTaskPo);
            if (flag < 1) {
                throw new CmdException("保存数据失败");
            }
            if(StringUtil.isEmpty(reqJson.getString("pathUrl"))){
                continue;
            JSONObject content = null;
            for (int cIndex = 0; cIndex < contents.size(); cIndex++) {
                content = contents.getJSONObject(cIndex);
                WorkTaskItemPo workTaskItemPo = new WorkTaskItemPo();
                workTaskItemPo.setDeductionMoney("0");
                workTaskItemPo.setContentId(content.getString("contentId"));
                workTaskItemPo.setStoreId(workPoolPo.getStoreId());
                workTaskItemPo.setWorkId(workPoolPo.getWorkId());
                workTaskItemPo.setItemId(GenerateCodeFactory.getGeneratorId("11"));
                workTaskItemPo.setState(WorkTaskDto.STATE_WAIT);
                workTaskItemPo.setCommunityId(workPoolPo.getCommunityId());
                workTaskItemPo.setTaskId(workTaskPo.getTaskId());
                workTaskItemV1InnerServiceSMOImpl.saveWorkTaskItem(workTaskItemPo);
            }
            if (StringUtil.isEmpty(reqJson.getString("pathUrl"))) {
                continue;
            }
            WorkPoolFilePo workPoolFilePo = new WorkPoolFilePo();
            workPoolFilePo.setCommunityId(workPoolPo.getCommunityId());
            workPoolFilePo.setFileType(WorkPoolFileDto.FILE_TYPE_START);
@@ -228,14 +239,13 @@
    }
    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.setStoreId(workPoolPo.getStoreId());
            workCyclePo.setBeforeTime("30");
            workCyclePo.setCycleId(GenerateCodeFactory.getGeneratorId(CODE_PREFIX_ID));
            workCyclePo.setPeriod(reqJson.getString("period"));
@@ -270,7 +280,6 @@
                throw new CmdException("保存数据失败");
            }
        }
    }
    /**
@@ -281,11 +290,9 @@
     * @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;
@@ -313,12 +320,18 @@
     */
    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);
        JSONArray contents = reqJson.getJSONArray("contents");
        JSONObject content = null;
        for (int cIndex = 0; cIndex < contents.size(); cIndex++) {
            content = contents.getJSONObject(cIndex);
            WorkPoolContentPo workPoolContentPo = new WorkPoolContentPo();
            workPoolContentPo.setContentId(GenerateCodeFactory.getGeneratorId("11"));
            workPoolContentPo.setContent(content.getString("content"));
            workPoolContentPo.setWorkId(workPoolPo.getWorkId());
            workPoolContentPo.setCommunityId(reqJson.getString("communityId"));
            workPoolContentPo.setStoreId(reqJson.getString("storeId"));
            content.put("contentId", workPoolContentPo.getContentId());
            workPoolContentV1InnerServiceSMOImpl.saveWorkPoolContent(workPoolContentPo);
        }
    }
}