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"; }