Pārlūkot izejas kodu

优化 审核单

wuxw 6 gadi atpakaļ
vecāks
revīzija
fa687220c6

+ 103 - 0
Api/src/main/java/com/java110/api/listener/auditOrder/ListAuditOrdersListener.java

@@ -0,0 +1,103 @@
+package com.java110.api.listener.auditOrder;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.api.listener.AbstractServiceApiListener;
+import com.java110.core.annotation.Java110Listener;
+import com.java110.core.context.DataFlowContext;
+import com.java110.core.smo.audit.IAuditUserInnerServiceSMO;
+import com.java110.core.smo.common.IResourceEntryStoreInnerServiceSMO;
+import com.java110.core.smo.resourceStore.IResourceStoreInnerServiceSMO;
+import com.java110.dto.auditUser.AuditUserDto;
+import com.java110.entity.audit.AuditUser;
+import com.java110.event.service.api.ServiceDataFlowEvent;
+import com.java110.utils.constant.ServiceCodeAuditUserConstant;
+import com.java110.utils.util.Assert;
+import com.java110.utils.util.BeanConvertUtil;
+import com.java110.vo.api.auditUser.ApiAuditUserDataVo;
+import com.java110.vo.api.auditUser.ApiAuditUserVo;
+import com.java110.vo.api.resourceOrder.ApiResourceOrderDataVo;
+import com.java110.vo.api.resourceOrder.ApiResourceOrderVo;
+import com.java110.vo.api.resourceStore.ApiResourceStoreDataVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+
+import java.util.ArrayList;
+import java.util.List;
+
+
+/**
+ * 查询审核订单侦听类
+ */
+@Java110Listener("listAuditOrdersListener")
+public class ListAuditOrdersListener extends AbstractServiceApiListener {
+
+    @Autowired
+    private IResourceEntryStoreInnerServiceSMO resourceEntryStoreInnerServiceSMOImpl;
+
+    @Override
+    public String getServiceCode() {
+        return ServiceCodeAuditUserConstant.LIST_AUDITORDERS;
+    }
+
+    @Override
+    public HttpMethod getHttpMethod() {
+        return HttpMethod.GET;
+    }
+
+
+    @Override
+    public int getOrder() {
+        return DEFAULT_ORDER;
+    }
+
+
+    public IResourceEntryStoreInnerServiceSMO getResourceEntryStoreInnerServiceSMOImpl() {
+        return resourceEntryStoreInnerServiceSMOImpl;
+    }
+
+    public void setResourceEntryStoreInnerServiceSMOImpl(IResourceEntryStoreInnerServiceSMO resourceEntryStoreInnerServiceSMOImpl) {
+        this.resourceEntryStoreInnerServiceSMOImpl = resourceEntryStoreInnerServiceSMOImpl;
+    }
+
+    @Override
+    protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) {
+        Assert.hasKeyAndValue(reqJson, "storeId", "必填,请填写商户ID");
+        Assert.hasKeyAndValue(reqJson, "userId", "必填,请填写用户ID");
+        Assert.hasKeyAndValue(reqJson, "row", "必填,请填写用户ID");
+        Assert.hasKeyAndValue(reqJson, "page", "必填,请填写用户ID");
+
+        super.validatePageInfo(reqJson);
+    }
+
+    @Override
+    protected void doSoService(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson) {
+
+        AuditUser auditUser = new AuditUser();
+        auditUser.setUserId(reqJson.getString("userId"));
+        auditUser.setPage(reqJson.getInteger("page"));
+        auditUser.setRow(reqJson.getInteger("row"));
+
+        long count = resourceEntryStoreInnerServiceSMOImpl.getUserTaskCount(auditUser);
+
+        List<ApiResourceOrderDataVo> auditOrders = null;
+
+        if (count > 0) {
+            auditOrders = BeanConvertUtil.covertBeanList(resourceEntryStoreInnerServiceSMOImpl.getUserTasks(auditUser), ApiResourceOrderDataVo.class);
+        } else {
+            auditOrders = new ArrayList<>();
+        }
+
+        ApiResourceOrderVo apiResourceOrderVo = new ApiResourceOrderVo();
+
+        apiResourceOrderVo.setTotal((int) count);
+        apiResourceOrderVo.setRecords((int) Math.ceil((double) count / (double) reqJson.getInteger("row")));
+        apiResourceOrderVo.setResourceOrders(auditOrders);
+
+        ResponseEntity<String> responseEntity = new ResponseEntity<String>(JSONObject.toJSONString(apiResourceOrderVo), HttpStatus.OK);
+
+        context.setResponseEntity(responseEntity);
+
+    }
+}

+ 20 - 1
CommonService/src/main/java/com/java110/common/smo/impl/ResourceEntryStoreInnerServiceSMOImpl.java

@@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.java110.core.base.smo.BaseServiceSMO;
 import com.java110.core.smo.common.IResourceEntryStoreInnerServiceSMO;
+import com.java110.dto.PageDto;
 import com.java110.dto.resourceStore.ResourceOrderDto;
 import com.java110.entity.audit.AuditUser;
 import org.activiti.engine.ProcessEngine;
@@ -56,6 +57,19 @@ public class ResourceEntryStoreInnerServiceSMOImpl extends BaseServiceSMO implem
         return resourceOrderDto;
     }
 
+    /**
+     * 查询用户任务数
+     *
+     * @param user
+     * @return
+     */
+    public long getUserTaskCount(@RequestBody AuditUser user) {
+        TaskService taskService = processEngine.getTaskService();
+        TaskQuery query = taskService.createTaskQuery();
+        query.taskAssignee(user.getUserId());
+        return query.count();
+    }
+
     /**
      * 获取用户任务
      *
@@ -66,7 +80,12 @@ public class ResourceEntryStoreInnerServiceSMOImpl extends BaseServiceSMO implem
         TaskQuery query = taskService.createTaskQuery();
         query.taskAssignee(user.getUserId());
         query.orderByTaskCreateTime().desc();
-        List<Task> list = query.list();
+        List<Task> list = null;
+        if (user.getPage() != PageDto.DEFAULT_PAGE) {
+            list = query.listPage(user.getPage(), user.getRow());
+        }else{
+            list = query.list();
+        }
 
         List<ResourceOrderDto> resourceOrderDtos = new ArrayList<>();
 

+ 41 - 0
WebService/src/main/java/com/java110/web/components/auditUser/MyAuditOrdersComponent.java

@@ -0,0 +1,41 @@
+package com.java110.web.components.auditUser;
+
+
+import com.java110.core.context.IPageData;
+import com.java110.web.smo.auditUser.IListAuditUsersSMO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Component;
+
+
+/**
+ * 我的审核单查询
+ * <p>
+ * add by wuxw
+ * <p>
+ * 2019-06-29
+ */
+@Component("myAuditOrders")
+public class MyAuditOrdersComponent {
+
+    @Autowired
+    private IListAuditUsersSMO listAuditUsersSMOImpl;
+
+    /**
+     * 查询审核人员列表
+     *
+     * @param pd 页面数据封装
+     * @return 返回 ResponseEntity 对象
+     */
+    public ResponseEntity<String> list(IPageData pd) {
+        return listAuditUsersSMOImpl.listAuditUsers(pd);
+    }
+
+    public IListAuditUsersSMO getListAuditUsersSMOImpl() {
+        return listAuditUsersSMOImpl;
+    }
+
+    public void setListAuditUsersSMOImpl(IListAuditUsersSMO listAuditUsersSMOImpl) {
+        this.listAuditUsersSMOImpl = listAuditUsersSMOImpl;
+    }
+}

+ 17 - 0
WebService/src/main/java/com/java110/web/smo/auditUser/IListAuditOrdersSMO.java

@@ -0,0 +1,17 @@
+package com.java110.web.smo.auditUser;
+
+import com.java110.core.context.IPageData;
+import org.springframework.http.ResponseEntity;
+
+/**
+ * 查询审核单
+ */
+public interface IListAuditOrdersSMO {
+
+    /**
+     * 查询审核订单
+     * @param pd
+     * @return
+     */
+    public ResponseEntity<String> listAuditOrders(IPageData pd);
+}

+ 64 - 0
WebService/src/main/java/com/java110/web/smo/auditUser/impl/ListAuditOrdersSMOImpl.java

@@ -0,0 +1,64 @@
+package com.java110.web.smo.auditUser.impl;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.core.context.IPageData;
+import com.java110.entity.component.ComponentValidateResult;
+import com.java110.utils.constant.PrivilegeCodeConstant;
+import com.java110.utils.constant.ServiceConstant;
+import com.java110.utils.exception.SMOException;
+import com.java110.web.core.AbstractComponentSMO;
+import com.java110.web.smo.auditUser.IListAuditOrdersSMO;
+import com.java110.web.smo.auditUser.IListAuditUsersSMO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Service;
+import org.springframework.web.client.RestTemplate;
+
+/**
+ * 查询auditUser服务类
+ */
+@Service("listAuditOrdersSMOImpl")
+public class ListAuditOrdersSMOImpl extends AbstractComponentSMO implements IListAuditOrdersSMO {
+
+    @Autowired
+    private RestTemplate restTemplate;
+
+    @Override
+    public ResponseEntity<String> listAuditOrders(IPageData pd) throws SMOException {
+        return businessProcess(pd);
+    }
+
+    @Override
+    protected void validate(IPageData pd, JSONObject paramIn) {
+
+        super.validatePageInfo(pd);
+
+        super.checkUserHasPrivilege(pd, restTemplate, PrivilegeCodeConstant.AGENT_HAS_LIST_AUDITORDER);
+    }
+
+    @Override
+    protected ResponseEntity<String> doBusinessProcess(IPageData pd, JSONObject paramIn) {
+
+        ComponentValidateResult result = super.validateStoreStaffCommunityRelationship(pd, restTemplate);
+        paramIn.put("storeId", result.getStoreId());
+        paramIn.put("userId", result.getUserId());
+
+        String apiUrl = ServiceConstant.SERVICE_API_URL + "/api/auditOrder.listAuditOrders" + mapToUrlParam(paramIn);
+
+
+        ResponseEntity<String> responseEntity = this.callCenterService(restTemplate, pd, "",
+                apiUrl,
+                HttpMethod.GET);
+
+        return responseEntity;
+    }
+
+    public RestTemplate getRestTemplate() {
+        return restTemplate;
+    }
+
+    public void setRestTemplate(RestTemplate restTemplate) {
+        this.restTemplate = restTemplate;
+    }
+}

+ 99 - 0
WebService/src/main/resources/components/auditPackage/myAuditOrder/myAuditOrders.html

@@ -0,0 +1,99 @@
+<div class="wrapper wrapper-content animated fadeInRight ecommerce">
+    <div class="row">
+        <div class="col-lg-12">
+            <div class="ibox ">
+                <div class="ibox-title">
+                    <h5>查询条件</h5>
+                    <div class="ibox-tools" style="top:10px;">
+
+                    </div>
+                </div>
+                <div class="ibox-content">
+                    <div class="row">
+                        <div class="col-sm-4">
+                            <div class="form-group">
+                                <input type="text" placeholder="请输入审核ID"
+                                       v-model="myAuditOrdersInfo.conditions.AuditOrdersId" class=" form-control">
+                            </div>
+                        </div>
+                        <div class="col-sm-4">
+                            <div class="form-group">
+                                <input type="text" placeholder="请输入审核人员"
+                                       v-model="myAuditOrdersInfo.conditions.userName" class=" form-control">
+                            </div>
+                        </div>
+                        <div class="col-sm-3">
+                            <select class="custom-select" v-model="AuditOrdersManageInfo.conditions.auditLink">
+                                <option selected value="">请选择审核环节</option>
+                                <option value="809001">部门主管</option>
+                                <option value="809002">财务主管</option>
+                                <option value="809003">采购人员</option>
+                            </select></div>
+                        <div class="col-sm-1">
+                            <button type="button" class="btn btn-primary btn-sm" v-on:click="_queryAuditOrdersMethod()">
+                                <i class="glyphicon glyphicon-search"></i> 查询
+                            </button>
+                        </div>
+                    </div>
+
+
+                </div>
+            </div>
+        </div>
+    </div>
+    <div class="row">
+        <div class="col-lg-12">
+            <div class="ibox">
+                <div class="ibox-title">
+                    <h5>审核单信息</h5>
+                    <div class="ibox-tools" style="top:10px;">
+
+                    </div>
+                </div>
+                <div class="ibox-content">
+
+                    <table class="footable table table-stripped toggle-arrow-tiny"
+                           data-page-size="15"
+                    >
+                        <thead>
+                        <tr>
+                            <th class="text-center">订单号</th>
+                            <th class="text-center">订单类型</th>
+                            <th class="text-center">订单状态</th>
+                            <th class="text-center">创建时间</th>
+                            <th class="text-center">操作</th>
+
+
+                        </tr>
+                        </thead>
+                        <tbody>
+                        <tr v-for="auditOrder in myAuditOrdersInfo.auditOrders">
+                            <td class="text-center">{{auditOrder.resOrderId}}</td>
+                            <td class="text-center">{{auditOrder.resOrderType}}</td>
+                            <td class="text-center">{{auditOrder.state}}</td>
+                            <td class="text-center">{{auditOrder.createTime}}</td>
+                            <td class="text-center">
+                                <div class="btn-group">
+                                    <button class="btn-white btn btn-xs"
+                                            v-on:click="_openAuditOrderModel(auditOrder)">审批
+                                    </button>
+                                </div>
+                            </td>
+
+                        </tr>
+                        </tbody>
+                        <tfoot>
+                        <tr>
+                            <td colspan="7">
+                                <ul class="pagination float-right"></ul>
+                            </td>
+                        </tr>
+                        </tfoot>
+                    </table>
+                    <!-- 分页 -->
+                    <vc:create name="pagination"></vc:create>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>

+ 79 - 0
WebService/src/main/resources/components/auditPackage/myAuditOrder/myAuditOrders.js

@@ -0,0 +1,79 @@
+/**
+ 入驻小区
+ **/
+(function (vc) {
+    var DEFAULT_PAGE = 1;
+    var DEFAULT_ROWS = 10;
+    vc.extends({
+        data: {
+            myAuditOrdersInfo: {
+                auditOrders: [],
+                total: 0,
+                records: 1,
+                moreCondition: false,
+                userName: '',
+                conditions: {
+                    AuditOrdersId: '',
+                    userName: '',
+                    auditLink: '',
+
+                }
+            }
+        },
+        _initMethod: function () {
+            vc.component._listAuditOrders(DEFAULT_PAGE, DEFAULT_ROWS);
+        },
+        _initEvent: function () {
+
+            vc.on('myAuditOrders', 'listAuditOrders', function (_param) {
+                vc.component._listAuditOrders(DEFAULT_PAGE, DEFAULT_ROWS);
+            });
+            vc.on('pagination', 'page_event', function (_currentPage) {
+                vc.component._listAuditOrders(_currentPage, DEFAULT_ROWS);
+            });
+        },
+        methods: {
+            _listAuditOrders: function (_page, _rows) {
+
+                vc.component.myAuditOrdersInfo.conditions.page = _page;
+                vc.component.myAuditOrdersInfo.conditions.row = _rows;
+                var param = {
+                    params: vc.component.myAuditOrdersInfo.conditions
+                };
+
+                //发送get请求
+                vc.http.get('myAuditOrders',
+                    'list',
+                    param,
+                    function (json, res) {
+                        var _myAuditOrdersInfo = JSON.parse(json);
+                        vc.component.myAuditOrdersInfo.total = _myAuditOrdersInfo.total;
+                        vc.component.myAuditOrdersInfo.records = _myAuditOrdersInfo.records;
+                        vc.component.myAuditOrdersInfo.AuditOrders = _myAuditOrdersInfo.AuditOrders;
+                        vc.emit('pagination', 'init', {
+                            total: vc.component.myAuditOrdersInfo.records,
+                            currentPage: _page
+                        });
+                    }, function (errInfo, error) {
+                        console.log('请求失败处理');
+                    }
+                );
+            },
+            _openAuditOrderModel: function () {
+                vc.jumpToPage("/flow/addAuditOrderstepFlow")
+            },
+            _queryAuditOrdersMethod: function () {
+                vc.component._listAuditOrders(DEFAULT_PAGE, DEFAULT_ROWS);
+            },
+            _moreCondition: function () {
+                if (vc.component.AuditOrdersManageInfo.moreCondition) {
+                    vc.component.AuditOrdersManageInfo.moreCondition = false;
+                } else {
+                    vc.component.AuditOrdersManageInfo.moreCondition = true;
+                }
+            }
+
+
+        }
+    });
+})(window.vc);

+ 36 - 0
WebService/src/main/resources/views/myAuditOrdersFlow.html

@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<html lang="en"
+      xmlns="http://www.w3.org/1999/xhtml"
+      xmlns:th="http://www.thymeleaf.org"
+      xmlns:vc="http://www.thymeleaf.org">
+<head>
+    <meta charset="UTF-8"/>
+    <title>我的审核单|java110</title>
+    <vc:create name="commonTop"></vc:create>
+</head>
+<body>
+<vc:create name="bodyTop"></vc:create>
+<div id="wrapper">
+    <vc:create name="menu"></vc:create>
+
+
+    <div id="page-wrapper" class="gray-bg dashbard-1">
+        <div class="row border-bottom">
+            <vc:create name="nav"></vc:create>
+        </div>
+        <div class="wrapper wrapper-content" style="padding-bottom: 0px;">
+            <vc:create name="breadcrumb"></vc:create>
+        </div>
+        <!-- id="component" -->
+        <div id="component" class="wrapper wrapper-content animated fadeInRight">
+            <vc:create name="myAuditOrders"></vc:create>
+        </div>
+
+        <vc:create name="copyright"></vc:create>
+
+    </div>
+</div>
+
+<vc:create name="commonBottom"></vc:create>
+</body>
+</html>

+ 3 - 1
java110-bean/src/main/java/com/java110/entity/audit/AuditUser.java

@@ -1,11 +1,13 @@
 package com.java110.entity.audit;
 
+import com.java110.dto.PageDto;
+
 import java.io.Serializable;
 
 /**
  * 审核用户
  */
-public class AuditUser implements Serializable {
+public class AuditUser extends PageDto implements Serializable {
 
     private String auditUserId;
 

+ 92 - 0
java110-bean/src/main/java/com/java110/vo/api/resourceOrder/ApiResourceOrderDataVo.java

@@ -0,0 +1,92 @@
+package com.java110.vo.api.resourceOrder;
+
+import java.io.Serializable;
+
+public class ApiResourceOrderDataVo implements Serializable {
+
+    //工作流实例ID
+    private String processInstanceId;
+
+    private String taskId;
+
+    //资源订单ID
+    private String resOrderId;
+
+    //商户ID
+    private String storeId;
+
+    // 资源类型 入库还是出库
+    private String resOrderType;
+
+    // 资源状态
+    private String state;
+
+    //
+    private String auditCode;
+
+    private String auditMessage;
+
+    public String getProcessInstanceId() {
+        return processInstanceId;
+    }
+
+    public void setProcessInstanceId(String processInstanceId) {
+        this.processInstanceId = processInstanceId;
+    }
+
+    public String getTaskId() {
+        return taskId;
+    }
+
+    public void setTaskId(String taskId) {
+        this.taskId = taskId;
+    }
+
+    public String getResOrderId() {
+        return resOrderId;
+    }
+
+    public void setResOrderId(String resOrderId) {
+        this.resOrderId = resOrderId;
+    }
+
+    public String getStoreId() {
+        return storeId;
+    }
+
+    public void setStoreId(String storeId) {
+        this.storeId = storeId;
+    }
+
+    public String getResOrderType() {
+        return resOrderType;
+    }
+
+    public void setResOrderType(String resOrderType) {
+        this.resOrderType = resOrderType;
+    }
+
+    public String getState() {
+        return state;
+    }
+
+    public void setState(String state) {
+        this.state = state;
+    }
+
+    public String getAuditCode() {
+        return auditCode;
+    }
+
+    public void setAuditCode(String auditCode) {
+        this.auditCode = auditCode;
+    }
+
+    public String getAuditMessage() {
+        return auditMessage;
+    }
+
+    public void setAuditMessage(String auditMessage) {
+        this.auditMessage = auditMessage;
+    }
+}

+ 19 - 0
java110-bean/src/main/java/com/java110/vo/api/resourceOrder/ApiResourceOrderVo.java

@@ -0,0 +1,19 @@
+package com.java110.vo.api.resourceOrder;
+
+import com.java110.vo.MorePageVo;
+
+import java.io.Serializable;
+import java.util.List;
+
+public class ApiResourceOrderVo extends MorePageVo implements Serializable {
+    List<ApiResourceOrderDataVo> resourceOrders;
+
+
+    public List<ApiResourceOrderDataVo> getResourceOrders() {
+        return resourceOrders;
+    }
+
+    public void setResourceOrders(List<ApiResourceOrderDataVo> resourceOrders) {
+        this.resourceOrders = resourceOrders;
+    }
+}

+ 8 - 0
java110-core/src/main/java/com/java110/core/smo/common/IResourceEntryStoreInnerServiceSMO.java

@@ -25,6 +25,14 @@ public interface IResourceEntryStoreInnerServiceSMO {
     public ResourceOrderDto startProcess(@RequestBody ResourceOrderDto resourceOrderDto);
 
 
+    /**
+     * 查询用户任务数
+     * @param user
+     * @return
+     */
+    @RequestMapping(value = "/getUserTaskCount", method = RequestMethod.POST)
+    public long getUserTaskCount(@RequestBody AuditUser user);
+
     /**
      *  获取用户任务
      * @param user 用户信息

+ 3 - 1
java110-utils/src/main/java/com/java110/utils/constant/PrivilegeCodeConstant.java

@@ -113,9 +113,11 @@ public final class PrivilegeCodeConstant {
     public static final String AGENT_HAS_LIST_RESOURCESTORE = "502019102151130004";
 
 
-    public static final String ITEMOUT="5020191023000001";
+    public static final String ITEMOUT = "5020191023000001";
 
     //審核人員 审核人员
     public static final String AGENT_HAS_LIST_AUDITUSER = "502019102639930001";
 
+    public static final String AGENT_HAS_LIST_AUDITORDER = "";
+
 }

+ 6 - 0
java110-utils/src/main/java/com/java110/utils/constant/ServiceCodeAuditUserConstant.java

@@ -28,4 +28,10 @@ public class ServiceCodeAuditUserConstant {
     public static final String LIST_AUDITUSERS = "auditUser.listAuditUsers";
 
 
+    /**
+     * 查询 审核订单
+     */
+    public static final String LIST_AUDITORDERS = "auditUser.listAuditOrders";
+
+
 }