java110 4 роки тому
батько
коміт
59f36e2501

+ 10 - 2
java110-bean/src/main/java/com/java110/vo/ResultVo.java

@@ -51,7 +51,7 @@ public class ResultVo implements Serializable {
     private int records;
 
     // 总记录数
-    private int total;
+    private long total;
 
     //状态
     private int code;
@@ -90,6 +90,14 @@ public class ResultVo implements Serializable {
         this.data = data;
     }
 
+    public ResultVo(int records, long total, Object data) {
+        this.code = CODE_OK;
+        this.msg = MSG_OK;
+        this.records = records;
+        this.total = total;
+        this.data = data;
+    }
+
     public ResultVo(int records, int total, Object data, Object sumTotal) {
         this.code = CODE_OK;
         this.msg = MSG_OK;
@@ -147,7 +155,7 @@ public class ResultVo implements Serializable {
         this.records = records;
     }
 
-    public int getTotal() {
+    public long getTotal() {
         return total;
     }
 

+ 6 - 0
java110-db/src/main/resources/mapper/oa/OaWorkflowFormServiceDaoImplMapper.xml

@@ -154,6 +154,12 @@
         <if test="id !=null and id != ''">
             and t.id = #{id}
         </if>
+        <if test="ids != null">
+            and t.id in
+            <foreach collection="ids" item="item" open="(" close=")" separator=",">
+                #{item}
+            </foreach>
+        </if>
         <if test="createUserName !=null and createUserName != ''">
             and t.create_user_name = #{createUserName}
         </if>

+ 1 - 0
java110-interface/src/main/java/com/java110/intf/oa/IOaWorkflowFormInnerServiceSMO.java

@@ -80,5 +80,6 @@ public interface IOaWorkflowFormInnerServiceSMO {
      * 保存表单数据
      * @param reqJson
      */
+    @RequestMapping(value = "/saveOaWorkflowFormData", method = RequestMethod.POST)
     int saveOaWorkflowFormData(@RequestBody JSONObject reqJson);
 }

+ 8 - 8
service-common/src/main/java/com/java110/common/smo/impl/OaWorkflowUserInnerServiceSMOImpl.java

@@ -10,7 +10,6 @@ import com.java110.dto.workflow.WorkflowDto;
 import com.java110.entity.audit.AuditUser;
 import com.java110.intf.common.IOaWorkflowUserInnerServiceSMO;
 import com.java110.intf.common.IWorkflowInnerServiceSMO;
-import com.java110.intf.store.IComplaintInnerServiceSMO;
 import com.java110.intf.user.IUserInnerServiceSMO;
 import com.java110.utils.util.Assert;
 import com.java110.utils.util.StringUtil;
@@ -140,6 +139,7 @@ public class OaWorkflowUserInnerServiceSMOImpl extends BaseServiceSMO implements
             //4.使用流程实例对象获取BusinessKey
             String business_key = pi.getBusinessKey();
             taskBusinessKeyMap.put(business_key, task.getId());
+            taskBusinessKeyMap.put("id", business_key);
             tasks.add(taskBusinessKeyMap);
         }
         return tasks;
@@ -268,9 +268,9 @@ public class OaWorkflowUserInnerServiceSMOImpl extends BaseServiceSMO implements
         List<Task> tasks = taskService.createTaskQuery().processInstanceBusinessKey(reqJson.getString("id")).list();
 
         if (tasks == null || tasks.size() == 0) {
-            reqJson.put("currentUserId","");
-            reqJson.put("currentUserName","");
-            reqJson.put("currentUserTel","");
+            reqJson.put("currentUserId", "");
+            reqJson.put("currentUserName", "");
+            reqJson.put("currentUserTel", "");
             return reqJson;
         }
         String userIds = "";
@@ -293,10 +293,10 @@ public class OaWorkflowUserInnerServiceSMOImpl extends BaseServiceSMO implements
         userTels = userTels.endsWith("/") ? userTels.substring(0, userTels.length() - 1) : userTels;
         taskIds = taskIds.endsWith("/") ? taskIds.substring(0, taskIds.length() - 1) : taskIds;
 
-        reqJson.put("currentUserId",userIds);
-        reqJson.put("currentUserName",userNames);
-        reqJson.put("currentUserTel",userTels);
-        reqJson.put("taskId",taskIds);
+        reqJson.put("currentUserId", userIds);
+        reqJson.put("currentUserName", userNames);
+        reqJson.put("currentUserTel", userTels);
+        reqJson.put("taskId", taskIds);
         return reqJson;
 
     }

+ 60 - 3
service-oa/src/main/java/com/java110/oa/api/OaWorkflowApi.java

@@ -21,7 +21,6 @@ import com.java110.po.oaWorkflowForm.OaWorkflowFormPo;
 import com.java110.po.oaWorkflowXml.OaWorkflowXmlPo;
 import com.java110.utils.util.Assert;
 import com.java110.utils.util.BeanConvertUtil;
-import com.mysql.cj.x.protobuf.MysqlxDatatypes;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.ResponseEntity;
 import org.springframework.web.bind.annotation.*;
@@ -364,9 +363,67 @@ public class OaWorkflowApi {
             columns.add(key);
             values.add(reqJson.getString(key));
         }
-        reqJson.put("columns",columns.toArray(new String[columns.size()]));
-        reqJson.put("values",columns.toArray(new String[values.size()]));
+        reqJson.put("columns", columns.toArray(new String[columns.size()]));
+        reqJson.put("values", columns.toArray(new String[values.size()]));
         reqJson.put("storeId", storeId);
         return getOaWorkflowFormBMOImpl.saveOaWorkflowFormData(reqJson);
     }
+
+    /**
+     * 查询待办
+     *
+     * @param storeId 小区ID
+     * @return
+     * @serviceCode /oaWorkflow/queryOaWorkflowUserTaskFormData
+     * @path /app/oaWorkflow/queryOaWorkflowUserTaskFormData
+     */
+    @RequestMapping(value = "/queryOaWorkflowUserTaskFormData", method = RequestMethod.GET)
+    public ResponseEntity<String> queryOaWorkflowUserTaskFormData(@RequestHeader(value = "store-id") String storeId,
+                                                                  @RequestHeader(value = "user-id") String userId,
+                                                                  @RequestParam(value = "flowId", required = false) String flowId,
+                                                                  @RequestParam(value = "startTime", required = false) String startTime,
+                                                                  @RequestParam(value = "endTime", required = false) String endTime,
+                                                                  @RequestParam(value = "createUserName", required = false) String createUserName,
+                                                                  @RequestParam(value = "page") int page,
+                                                                  @RequestParam(value = "row") int row) {
+        JSONObject paramIn = new JSONObject();
+        paramIn.put("page", page);
+        paramIn.put("row", row);
+        paramIn.put("createUserName", createUserName);
+        paramIn.put("endTime", endTime);
+        paramIn.put("startTime", startTime);
+        paramIn.put("flowId", flowId);
+        paramIn.put("storeId", storeId);
+        paramIn.put("userId", userId);
+        return getOaWorkflowFormBMOImpl.queryOaWorkflowUserTaskFormData(paramIn);
+    }
+
+    /**
+     * 查询已办
+     *
+     * @param storeId 小区ID
+     * @return
+     * @serviceCode /oaWorkflow/queryOaWorkflowUserHisTaskFormData
+     * @path /app/oaWorkflow/queryOaWorkflowUserHisTaskFormData
+     */
+    @RequestMapping(value = "/queryOaWorkflowUserHisTaskFormData", method = RequestMethod.GET)
+    public ResponseEntity<String> queryOaWorkflowUserHisTaskFormData(@RequestHeader(value = "store-id") String storeId,
+                                                                  @RequestHeader(value = "user-id") String userId,
+                                                                  @RequestParam(value = "flowId", required = false) String flowId,
+                                                                  @RequestParam(value = "startTime", required = false) String startTime,
+                                                                  @RequestParam(value = "endTime", required = false) String endTime,
+                                                                  @RequestParam(value = "createUserName", required = false) String createUserName,
+                                                                  @RequestParam(value = "page") int page,
+                                                                  @RequestParam(value = "row") int row) {
+        JSONObject paramIn = new JSONObject();
+        paramIn.put("page", page);
+        paramIn.put("row", row);
+        paramIn.put("createUserName", createUserName);
+        paramIn.put("endTime", endTime);
+        paramIn.put("startTime", startTime);
+        paramIn.put("flowId", flowId);
+        paramIn.put("storeId", storeId);
+        paramIn.put("userId", userId);
+        return getOaWorkflowFormBMOImpl.queryOaWorkflowUserHisTaskFormData(paramIn);
+    }
 }

+ 19 - 1
service-oa/src/main/java/com/java110/oa/bmo/oaWorkflowForm/IGetOaWorkflowFormBMO.java

@@ -1,4 +1,5 @@
 package com.java110.oa.bmo.oaWorkflowForm;
+
 import com.alibaba.fastjson.JSONObject;
 import com.java110.dto.oaWorkflowForm.OaWorkflowFormDto;
 import org.springframework.http.ResponseEntity;
@@ -11,7 +12,8 @@ public interface IGetOaWorkflowFormBMO {
     /**
      * 查询OA表单
      * add by wuxw
-     * @param  oaWorkflowFormDto
+     *
+     * @param oaWorkflowFormDto
      * @return
      */
     ResponseEntity<String> get(OaWorkflowFormDto oaWorkflowFormDto);
@@ -21,8 +23,24 @@ public interface IGetOaWorkflowFormBMO {
 
     /**
      * 保存表单数据
+     *
      * @param reqJson
      * @return
      */
     ResponseEntity<String> saveOaWorkflowFormData(JSONObject reqJson);
+
+    /**
+     * 查询工作流待办
+     *
+     * @param paramIn
+     * @return
+     */
+    ResponseEntity<String> queryOaWorkflowUserTaskFormData(JSONObject paramIn);
+
+    /**
+     * 查询工作流程已办
+     * @param paramIn
+     * @return
+     */
+    ResponseEntity<String> queryOaWorkflowUserHisTaskFormData(JSONObject paramIn);
 }

+ 110 - 0
service-oa/src/main/java/com/java110/oa/bmo/oaWorkflowForm/impl/GetOaWorkflowFormBMOImpl.java

@@ -5,6 +5,7 @@ import com.java110.core.factory.GenerateCodeFactory;
 import com.java110.dto.oaWorkflow.OaWorkflowDto;
 import com.java110.dto.oaWorkflowForm.OaWorkflowFormDto;
 import com.java110.dto.user.UserDto;
+import com.java110.entity.audit.AuditUser;
 import com.java110.intf.common.IOaWorkflowUserInnerServiceSMO;
 import com.java110.intf.oa.IOaWorkflowFormInnerServiceSMO;
 import com.java110.intf.oa.IOaWorkflowInnerServiceSMO;
@@ -19,6 +20,7 @@ import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Service;
 
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -160,4 +162,112 @@ public class GetOaWorkflowFormBMOImpl implements IGetOaWorkflowFormBMO {
         return ResultVo.success();
     }
 
+    /**
+     * 查询工作流待办
+     *
+     * @param paramIn
+     * @return
+     */
+    @Override
+    public ResponseEntity<String> queryOaWorkflowUserTaskFormData(JSONObject paramIn) {
+
+        OaWorkflowDto oaWorkflowDto = new OaWorkflowDto();
+        oaWorkflowDto.setStoreId(paramIn.getString("storeId"));
+        oaWorkflowDto.setFlowId(paramIn.getString("flowId"));
+        List<OaWorkflowDto> oaWorkflowDtos = oaWorkflowInnerServiceSMOImpl.queryOaWorkflows(oaWorkflowDto);
+        Assert.listOnlyOne(oaWorkflowDtos, "流程不存在");
+
+        AuditUser auditUser = new AuditUser();
+        auditUser.setProcessDefinitionKey(oaWorkflowDtos.get(0).getProcessDefinitionKey());
+        auditUser.setUserId(paramIn.getString("userId"));
+        auditUser.setStoreId(paramIn.getString("storeId"));
+        auditUser.setPage(paramIn.getInteger("page"));
+        auditUser.setRow(paramIn.getInteger("row"));
+
+        long count = oaWorkflowUserInnerServiceSMOImpl.getUserTaskCount(auditUser);
+
+        List<JSONObject> datas = null;
+
+        if (count > 0) {
+            datas = oaWorkflowUserInnerServiceSMOImpl.getUserTasks(auditUser);
+            //刷新 表单数据
+            freshFormData(datas, paramIn);
+        } else {
+            datas = new ArrayList<>();
+        }
+
+        ResultVo resultVo = new ResultVo((int) Math.ceil((double) count / (double) paramIn.getInteger("row")), count, datas);
+
+        ResponseEntity<String> responseEntity = new ResponseEntity<String>(resultVo.toString(), HttpStatus.OK);
+        return responseEntity;
+    }
+
+    /**
+     * 查询工作流待办
+     *
+     * @param paramIn
+     * @return
+     */
+    @Override
+    public ResponseEntity<String> queryOaWorkflowUserHisTaskFormData(JSONObject paramIn) {
+
+        OaWorkflowDto oaWorkflowDto = new OaWorkflowDto();
+        oaWorkflowDto.setStoreId(paramIn.getString("storeId"));
+        oaWorkflowDto.setFlowId(paramIn.getString("flowId"));
+        List<OaWorkflowDto> oaWorkflowDtos = oaWorkflowInnerServiceSMOImpl.queryOaWorkflows(oaWorkflowDto);
+        Assert.listOnlyOne(oaWorkflowDtos, "流程不存在");
+
+        AuditUser auditUser = new AuditUser();
+        auditUser.setProcessDefinitionKey(oaWorkflowDtos.get(0).getProcessDefinitionKey());
+        auditUser.setUserId(paramIn.getString("userId"));
+        auditUser.setStoreId(paramIn.getString("storeId"));
+        auditUser.setPage(paramIn.getInteger("page"));
+        auditUser.setRow(paramIn.getInteger("row"));
+
+        long count = oaWorkflowUserInnerServiceSMOImpl.getUserHistoryTaskCount(auditUser);
+
+        List<JSONObject> datas = null;
+
+        if (count > 0) {
+            datas = oaWorkflowUserInnerServiceSMOImpl.getUserHistoryTasks(auditUser);
+            //刷新 表单数据
+            freshFormData(datas, paramIn);
+        } else {
+            datas = new ArrayList<>();
+        }
+
+        ResultVo resultVo = new ResultVo((int) Math.ceil((double) count / (double) paramIn.getInteger("row")), count, datas);
+
+        ResponseEntity<String> responseEntity = new ResponseEntity<String>(resultVo.toString(), HttpStatus.OK);
+        return responseEntity;
+    }
+
+    /**
+     * 刷入表单数据
+     *
+     * @param datas
+     */
+    private void freshFormData(List<JSONObject> datas, JSONObject paramIn) {
+        List<String> ids = new ArrayList<>();
+        for (JSONObject data : datas) {
+            ids.add(data.getString("id"));
+        }
+        if (ids.size() < 1) {
+            return;
+        }
+
+        Map paramMap = new HashMap();
+        paramMap.put("storeId", paramIn.getString("storeId"));
+        paramMap.put("ids", ids.toArray(new String[ids.size()]));
+        List<Map> formDatas = oaWorkflowFormInnerServiceSMOImpl.queryOaWorkflowFormDatas(paramMap);
+
+        for (JSONObject data : datas) {
+            for (Map form : formDatas) {
+                if (data.getString("id").equals(form.get("id"))) {
+                    data.putAll(form);
+                }
+            }
+        }
+    }
+
 }