wuxw
2019-10-29 fa687220c6b69ed024473d69693d4475be08a64e
优化 审核单
5个文件已修改
9个文件已添加
593 ■■■■■ 已修改文件
Api/src/main/java/com/java110/api/listener/auditOrder/ListAuditOrdersListener.java 103 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CommonService/src/main/java/com/java110/common/smo/impl/ResourceEntryStoreInnerServiceSMOImpl.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebService/src/main/java/com/java110/web/components/auditUser/MyAuditOrdersComponent.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebService/src/main/java/com/java110/web/smo/auditUser/IListAuditOrdersSMO.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebService/src/main/java/com/java110/web/smo/auditUser/impl/ListAuditOrdersSMOImpl.java 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebService/src/main/resources/components/auditPackage/myAuditOrder/myAuditOrders.html 99 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebService/src/main/resources/components/auditPackage/myAuditOrder/myAuditOrders.js 79 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebService/src/main/resources/views/myAuditOrdersFlow.html 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-bean/src/main/java/com/java110/entity/audit/AuditUser.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-bean/src/main/java/com/java110/vo/api/resourceOrder/ApiResourceOrderDataVo.java 92 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-bean/src/main/java/com/java110/vo/api/resourceOrder/ApiResourceOrderVo.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-core/src/main/java/com/java110/core/smo/common/IResourceEntryStoreInnerServiceSMO.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-utils/src/main/java/com/java110/utils/constant/PrivilegeCodeConstant.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-utils/src/main/java/com/java110/utils/constant/ServiceCodeAuditUserConstant.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Api/src/main/java/com/java110/api/listener/auditOrder/ListAuditOrdersListener.java
New file
@@ -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);
    }
}
CommonService/src/main/java/com/java110/common/smo/impl/ResourceEntryStoreInnerServiceSMOImpl.java
@@ -5,6 +5,7 @@
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;
@@ -57,6 +58,19 @@
    }
    /**
     * 查询用户任务数
     *
     * @param user
     * @return
     */
    public long getUserTaskCount(@RequestBody AuditUser user) {
        TaskService taskService = processEngine.getTaskService();
        TaskQuery query = taskService.createTaskQuery();
        query.taskAssignee(user.getUserId());
        return query.count();
    }
    /**
     * 获取用户任务
     *
     * @param user 用户信息
@@ -66,7 +80,12 @@
        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<>();
WebService/src/main/java/com/java110/web/components/auditUser/MyAuditOrdersComponent.java
New file
@@ -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;
    }
}
WebService/src/main/java/com/java110/web/smo/auditUser/IListAuditOrdersSMO.java
New file
@@ -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);
}
WebService/src/main/java/com/java110/web/smo/auditUser/impl/ListAuditOrdersSMOImpl.java
New file
@@ -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;
    }
}
WebService/src/main/resources/components/auditPackage/myAuditOrder/myAuditOrders.html
New file
@@ -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>
WebService/src/main/resources/components/auditPackage/myAuditOrder/myAuditOrders.js
New file
@@ -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);
WebService/src/main/resources/views/myAuditOrdersFlow.html
New file
@@ -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>
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;
java110-bean/src/main/java/com/java110/vo/api/resourceOrder/ApiResourceOrderDataVo.java
New file
@@ -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;
    }
}
java110-bean/src/main/java/com/java110/vo/api/resourceOrder/ApiResourceOrderVo.java
New file
@@ -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;
    }
}
java110-core/src/main/java/com/java110/core/smo/common/IResourceEntryStoreInnerServiceSMO.java
@@ -26,6 +26,14 @@
    /**
     * 查询用户任务数
     * @param user
     * @return
     */
    @RequestMapping(value = "/getUserTaskCount", method = RequestMethod.POST)
    public long getUserTaskCount(@RequestBody AuditUser user);
    /**
     *  获取用户任务
     * @param user 用户信息
     */
java110-utils/src/main/java/com/java110/utils/constant/PrivilegeCodeConstant.java
@@ -113,9 +113,11 @@
    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 = "";
}
java110-utils/src/main/java/com/java110/utils/constant/ServiceCodeAuditUserConstant.java
@@ -28,4 +28,10 @@
    public static final String LIST_AUDITUSERS = "auditUser.listAuditUsers";
    /**
     * 查询 审核订单
     */
    public static final String LIST_AUDITORDERS = "auditUser.listAuditOrders";
}