wuxw
2025-03-30 becc16e36e8fdad39eb32661acb73375c6cbdfb4
service-oa/src/main/java/com/java110/oa/cmd/work/FinishWorkTaskCmd.java
@@ -1,5 +1,6 @@
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.context.CmdContextUtils;
@@ -8,18 +9,18 @@
import com.java110.core.event.cmd.CmdEvent;
import com.java110.core.factory.GenerateCodeFactory;
import com.java110.dto.user.UserDto;
import com.java110.dto.workEvent.WorkEventDto;
import com.java110.dto.workPool.WorkPoolDto;
import com.java110.dto.workPoolFile.WorkPoolFileDto;
import com.java110.dto.workTask.WorkTaskDto;
import com.java110.dto.workTaskItem.WorkTaskItemDto;
import com.java110.dto.work.WorkEventDto;
import com.java110.dto.work.WorkPoolDto;
import com.java110.dto.work.WorkPoolFileDto;
import com.java110.dto.work.WorkTaskDto;
import com.java110.dto.work.WorkTaskItemDto;
import com.java110.intf.oa.*;
import com.java110.intf.user.IUserV1InnerServiceSMO;
import com.java110.po.workEvent.WorkEventPo;
import com.java110.po.workPool.WorkEventPo;
import com.java110.po.workPool.WorkPoolPo;
import com.java110.po.workPoolFile.WorkPoolFilePo;
import com.java110.po.workTask.WorkTaskPo;
import com.java110.po.workTaskItem.WorkTaskItemPo;
import com.java110.po.workPool.WorkPoolFilePo;
import com.java110.po.workPool.WorkTaskPo;
import com.java110.po.workPool.WorkTaskItemPo;
import com.java110.utils.exception.CmdException;
import com.java110.utils.util.Assert;
import com.java110.utils.util.DateUtil;
@@ -86,33 +87,43 @@
        workTaskDto.setStoreId(storeId);
        List<WorkTaskDto> workTaskDtos = workTaskV1InnerServiceSMOImpl.queryWorkTasks(workTaskDto);
        WorkTaskItemDto workTaskItemDto = new WorkTaskItemDto();
        workTaskItemDto.setItemId(reqJson.getString("itemId"));
        workTaskItemDto.setCommunityId(workTaskDto.getCommunityId());
        List<WorkTaskItemDto> workTaskItemDtos = workTaskItemV1InnerServiceSMOImpl.queryWorkTaskItems(workTaskItemDto);
        if (ListUtil.isNull(workTaskItemDtos)) {
            throw new CmdException("任务明细不存在");
        }
        //todo 转单
        if ("T".equals(reqJson.getString("auditCode"))) {
            doTransfor(reqJson, workTaskDtos.get(0));
        } else if ("C".equals(reqJson.getString("auditCode"))) {
            doFinish(reqJson, workTaskDtos.get(0));
            doFinish(reqJson, workTaskDtos.get(0), workTaskItemDtos.get(0));
        }
        if (!reqJson.containsKey("pathUrl")) {
        JSONArray pathUrls = reqJson.getJSONArray("pathUrls");
        if (ListUtil.isNull(pathUrls)) {
            return;
        }
        String pathUrl = reqJson.getString("pathUrl");
        if (StringUtil.isEmpty(pathUrl)) {
            return;
        }
        for (int urlIndex = 0; urlIndex < pathUrls.size(); urlIndex++) {
            WorkPoolFilePo workPoolFilePo = new WorkPoolFilePo();
            workPoolFilePo.setCommunityId(workTaskDtos.get(0).getCommunityId());
            workPoolFilePo.setFileType(WorkPoolFileDto.FILE_TYPE_END);
            workPoolFilePo.setFileId(GenerateCodeFactory.getGeneratorId("11"));
            workPoolFilePo.setWorkId(workTaskDtos.get(0).getWorkId());
            workPoolFilePo.setTaskId(workTaskDtos.get(0).getTaskId());
            workPoolFilePo.setPathUrl(pathUrls.getString(urlIndex));
            workPoolFilePo.setStoreId(workTaskDtos.get(0).getStoreId());
            workPoolFilePo.setItemId(reqJson.getString("itemId"));
        WorkPoolFilePo workPoolFilePo = new WorkPoolFilePo();
        workPoolFilePo.setCommunityId(workTaskDtos.get(0).getCommunityId());
        workPoolFilePo.setFileType(WorkPoolFileDto.FILE_TYPE_END);
        workPoolFilePo.setFileId(GenerateCodeFactory.getGeneratorId("11"));
        workPoolFilePo.setWorkId(workTaskDtos.get(0).getWorkId());
        workPoolFilePo.setTaskId(workTaskDtos.get(0).getTaskId());
        workPoolFilePo.setPathUrl(reqJson.getString("pathUrl"));
        workPoolFilePo.setStoreId(workTaskDtos.get(0).getStoreId());
        workPoolFilePo.setItemId(reqJson.getString("itemId"));
        workPoolFileV1InnerServiceSMOImpl.saveWorkPoolFile(workPoolFilePo);
            workPoolFilePo.setContentId(workTaskItemDtos.get(0).getContentId());
            workPoolFileV1InnerServiceSMOImpl.saveWorkPoolFile(workPoolFilePo);
        }
    }
@@ -122,7 +133,7 @@
     * @param reqJson
     * @param workTaskDto
     */
    private void doFinish(JSONObject reqJson, WorkTaskDto workTaskDto) {
    private void doFinish(JSONObject reqJson, WorkTaskDto workTaskDto, WorkTaskItemDto orgWorkTaskItemDto) {
        Date endTime = DateUtil.getDateFromStringA(workTaskDto.getEndTime());
@@ -175,10 +186,7 @@
            preStaffName = workEventDtos.get(0).getStaffName();
        }
        WorkTaskItemDto workTaskItemDto = new WorkTaskItemDto();
        workTaskItemDto.setItemId(reqJson.getString("itemId"));
        workTaskItemDto.setCommunityId(workTaskDto.getCommunityId());
        List<WorkTaskItemDto> workTaskItemDtos = workTaskItemV1InnerServiceSMOImpl.queryWorkTaskItems(workTaskItemDto);
        //todo 保存事件
        WorkEventPo workEventPo = new WorkEventPo();
@@ -193,14 +201,13 @@
        workEventPo.setStoreId(workTaskDto.getStoreId());
        workEventPo.setTaskId(workTaskDto.getTaskId());
        workEventPo.setItemId(reqJson.getString("itemId"));
        workEventPo.setContentId("-1");
        if (!ListUtil.isNull(workTaskItemDtos)) {
            workEventPo.setContentId(workTaskItemDtos.get(0).getContentId());
        }
        workEventPo.setContentId(orgWorkTaskItemDto.getContentId());
        workEventPo.setEventType(WorkEventDto.EVENT_TYPE_COMPLETE);
        workEventV1InnerServiceSMOImpl.saveWorkEvent(workEventPo);
        // todo 查询 任务明细是否处理完成
        workTaskItemDto = new WorkTaskItemDto();
        WorkTaskItemDto workTaskItemDto = new WorkTaskItemDto();
        workTaskItemDto.setTaskId(workTaskDto.getTaskId());
        workTaskItemDto.setCommunityId(workTaskDto.getCommunityId());
        workTaskItemDto.setState(WorkTaskDto.STATE_WAIT);
@@ -278,6 +285,7 @@
        workEventPo.setTaskId(workTaskDto.getTaskId());
        workEventPo.setItemId("-1");
        workEventPo.setContentId("-1");
        workEventPo.setEventType(WorkEventDto.EVENT_TYPE_TRANSFOR);
        workEventV1InnerServiceSMOImpl.saveWorkEvent(workEventPo);
    }
}