Sfoglia il codice sorgente

加入历史审核单

wuxw 6 anni fa
parent
commit
7d0f7a98d9

+ 100 - 0
Api/src/main/java/com/java110/api/listener/auditOrder/ListAuditHistoryComplaintsListener.java

@@ -0,0 +1,100 @@
+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.complaintUser.IComplaintUserInnerServiceSMO;
+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.complaint.ApiComplaintDataVo;
+import com.java110.vo.api.complaint.ApiComplaintVo;
+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("listAuditHistoryComplaintsListener")
+public class ListAuditHistoryComplaintsListener extends AbstractServiceApiListener {
+
+    @Autowired
+    private IComplaintUserInnerServiceSMO complaintUserInnerServiceSMOImpl;
+
+    @Override
+    public String getServiceCode() {
+        return ServiceCodeAuditUserConstant.LIST_AUDIT_HISTORY_COMPLAINTS;
+    }
+
+    @Override
+    public HttpMethod getHttpMethod() {
+        return HttpMethod.GET;
+    }
+
+
+    @Override
+    public int getOrder() {
+        return DEFAULT_ORDER;
+    }
+
+
+    public IComplaintUserInnerServiceSMO getComplaintUserInnerServiceSMOImpl() {
+        return complaintUserInnerServiceSMOImpl;
+    }
+
+    public void setComplaintUserInnerServiceSMOImpl(IComplaintUserInnerServiceSMO complaintUserInnerServiceSMOImpl) {
+        this.complaintUserInnerServiceSMOImpl = complaintUserInnerServiceSMOImpl;
+    }
+
+    @Override
+    protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) {
+        Assert.hasKeyAndValue(reqJson, "storeId", "必填,请填写商户ID");
+        Assert.hasKeyAndValue(reqJson, "userId", "必填,请填写用户ID");
+        Assert.hasKeyAndValue(reqJson, "communityId", "必填,请填写小区ID");
+        Assert.hasKeyAndValue(reqJson, "row", "必填,请填写每页显示数");
+        Assert.hasKeyAndValue(reqJson, "page", "必填,请填写页数");
+
+        super.validatePageInfo(reqJson);
+    }
+
+    @Override
+    protected void doSoService(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson) {
+
+        AuditUser auditUser = new AuditUser();
+        auditUser.setUserId(reqJson.getString("userId"));
+        auditUser.setStoreId(reqJson.getString("storeId"));
+        auditUser.setCommunityId(reqJson.getString("communityId"));
+        auditUser.setPage(reqJson.getInteger("page"));
+        auditUser.setRow(reqJson.getInteger("row"));
+
+        long count = complaintUserInnerServiceSMOImpl.getUserHistoryTaskCount(auditUser);
+
+        List<ApiComplaintDataVo> auditComplaints = null;
+
+        if (count > 0) {
+            auditComplaints = BeanConvertUtil.covertBeanList(complaintUserInnerServiceSMOImpl.getUserHistoryTasks(auditUser), ApiComplaintDataVo.class);
+        } else {
+            auditComplaints = new ArrayList<>();
+        }
+
+        ApiComplaintVo apiComplaintVo = new ApiComplaintVo();
+
+        apiComplaintVo.setTotal((int) count);
+        apiComplaintVo.setRecords((int) Math.ceil((double) count / (double) reqJson.getInteger("row")));
+        apiComplaintVo.setComplaints(auditComplaints);
+
+        ResponseEntity<String> responseEntity = new ResponseEntity<String>(JSONObject.toJSONString(apiComplaintVo), HttpStatus.OK);
+
+        context.setResponseEntity(responseEntity);
+
+    }
+}

+ 28 - 7
CommonService/src/main/java/com/java110/common/smo/impl/ComplaintUserInnerServiceSMOImpl.java

@@ -10,10 +10,15 @@ import com.java110.dto.auditMessage.AuditMessageDto;
 import com.java110.dto.complaint.ComplaintDto;
 import com.java110.entity.audit.AuditUser;
 import com.java110.utils.util.Assert;
+import org.activiti.engine.HistoryService;
 import org.activiti.engine.ProcessEngine;
 import org.activiti.engine.RuntimeService;
 import org.activiti.engine.TaskService;
+import org.activiti.engine.history.HistoricActivityInstance;
+import org.activiti.engine.history.HistoricProcessInstance;
+import org.activiti.engine.history.HistoricTaskInstance;
 import org.activiti.engine.impl.identity.Authentication;
+import org.activiti.engine.query.Query;
 import org.activiti.engine.runtime.ProcessInstance;
 import org.activiti.engine.task.Comment;
 import org.activiti.engine.task.Task;
@@ -147,18 +152,34 @@ public class ComplaintUserInnerServiceSMOImpl extends BaseServiceSMO implements
         return tmpComplaintDtos;
     }
 
+
+    /**
+     * 查询用户任务数
+     *
+     * @param user
+     * @return
+     */
+    public long getUserHistoryTaskCount(@RequestBody AuditUser user) {
+        HistoryService historyService = processEngine.getHistoryService();
+        Query query = historyService.createHistoricTaskInstanceQuery()
+                .processDefinitionKey("complaint")
+                .taskAssignee(user.getUserId());
+        return query.count();
+    }
     /**
      * 获取用户审批的任务
      *
      * @param user 用户信息
      */
     public List<ComplaintDto> getUserHistoryTasks(@RequestBody AuditUser user) {
-        TaskService taskService = processEngine.getTaskService();
-        TaskQuery query = taskService.createTaskQuery().processDefinitionKey("complaint");
-        ;
-        query.taskAssignee(user.getUserId());
-        query.orderByTaskCreateTime().desc();
-        List<Task> list = null;
+        HistoryService historyService = processEngine.getHistoryService();
+        Query query = historyService.createHistoricTaskInstanceQuery()
+                                                .processDefinitionKey("complaint")
+                                                .taskAssignee(user.getUserId())
+                                                .orderByHistoricTaskInstanceStartTime()
+                                                .desc();
+
+        List<HistoricTaskInstance> list = null;
         if (user.getPage() != PageDto.DEFAULT_PAGE) {
             list = query.listPage(user.getPage(), user.getRow());
         } else {
@@ -166,7 +187,7 @@ public class ComplaintUserInnerServiceSMOImpl extends BaseServiceSMO implements
         }
 
         List<String> complaintIds = new ArrayList<>();
-        for (Task task : list) {
+        for (HistoricTaskInstance task : list) {
             String processInstanceId = task.getProcessInstanceId();
             //3.使用流程实例,查询
             ProcessInstance pi = runtimeService.createProcessInstanceQuery().processInstanceId(processInstanceId).singleResult();

+ 46 - 0
WebService/src/main/java/com/java110/web/components/auditUser/MyAuditHistoryComplaintsComponent.java

@@ -0,0 +1,46 @@
+package com.java110.web.components.auditUser;
+
+
+import com.java110.core.context.IPageData;
+import com.java110.web.smo.auditUser.IListAuditComplaintsSMO;
+import com.java110.web.smo.auditUser.IListAuditHistoryComplaintsSMO;
+import com.java110.web.smo.complaint.IAuditComplaintSMO;
+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("myAuditHistoryComplaints")
+public class MyAuditHistoryComplaintsComponent {
+
+    @Autowired
+    private IListAuditHistoryComplaintsSMO listAuditHistoryComplaintsSMOImpl;
+
+
+
+    /**
+     * 查询审核人员列表
+     *
+     * @param pd 页面数据封装
+     * @return 返回 ResponseEntity 对象
+     */
+    public ResponseEntity<String> list(IPageData pd) {
+        return listAuditHistoryComplaintsSMOImpl.listAuditHistoryComplaints(pd);
+    }
+
+    public IListAuditHistoryComplaintsSMO getListAuditHistoryComplaintsSMOImpl() {
+        return listAuditHistoryComplaintsSMOImpl;
+    }
+
+    public void setListAuditHistoryComplaintsSMOImpl(IListAuditHistoryComplaintsSMO listAuditHistoryComplaintsSMOImpl) {
+        this.listAuditHistoryComplaintsSMOImpl = listAuditHistoryComplaintsSMOImpl;
+    }
+
+}

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

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

+ 67 - 0
WebService/src/main/java/com/java110/web/smo/auditUser/impl/ListAuditHistoryComplaintsSMOImpl.java

@@ -0,0 +1,67 @@
+package com.java110.web.smo.auditUser.impl;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.core.component.AbstractComponentSMO;
+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.utils.util.Assert;
+import com.java110.web.smo.auditUser.IListAuditHistoryComplaintsSMO;
+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("listAuditHistoryComplaintsSMOImpl")
+public class ListAuditHistoryComplaintsSMOImpl extends AbstractComponentSMO implements IListAuditHistoryComplaintsSMO {
+
+    @Autowired
+    private RestTemplate restTemplate;
+
+    @Override
+    public ResponseEntity<String> listAuditHistoryComplaints(IPageData pd) throws SMOException {
+        return businessProcess(pd);
+    }
+
+    @Override
+    protected void validate(IPageData pd, JSONObject paramIn) {
+
+        super.validatePageInfo(pd);
+
+        Assert.hasKeyAndValue(paramIn, "communityId", "必填,请填写小区信息");
+
+
+        super.checkUserHasPrivilege(pd, restTemplate, PrivilegeCodeConstant.AGENT_HAS_LIST_AUDIT_HISTORY_COMPLAINT);
+    }
+
+    @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/auditUser.listAuditHistoryComplaints" + 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;
+    }
+}

+ 61 - 0
WebService/src/main/resources/components/auditPackage/myAuditHistoryComplaint/myAuditHistoryComplaints.html

@@ -0,0 +1,61 @@
+<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">
+
+                    <table class="footable table table-stripped toggle-arrow-tiny"
+                           data-page-size="15"
+                    >
+                        <thead>
+                        <tr>
+                            <th class="text-center">投诉ID</th>
+                            <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>
+                           <!-- <th class="text-center">操作</th>-->
+                        </tr>
+                        </thead>
+                        <tbody>
+                        <tr v-for="complaint in myAuditHistoryComplaintsInfo.complaints">
+                            <td class="text-center">{{complaint.complaintId}}</td>
+                            <td class="text-center">{{complaint.typeCdName}}</td>
+                            <td class="text-center">
+                                {{complaint.floorNum}}号楼{{complaint.unitNum}}单元{{complaint.roomNum}}室
+                            </td>
+                            <td class="text-center">{{complaint.complaintName}}</td>
+                            <td class="text-center">{{complaint.tel}}</td>
+                            <td class="text-center">{{complaint.stateName}}</td>
+                            <!--<td class="text-center">
+                                <div class="btn-group">
+                                    <button class="btn-white btn btn-xs"
+                                            v-on:click="_openAuditComplaintModel(complaint)">审核
+                                    </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>

+ 78 - 0
WebService/src/main/resources/components/auditPackage/myAuditHistoryComplaint/myAuditHistoryComplaints.js

@@ -0,0 +1,78 @@
+/**
+ 入驻小区
+ **/
+(function (vc) {
+    var DEFAULT_PAGE = 1;
+    var DEFAULT_ROWS = 10;
+    vc.extends({
+        data: {
+            myAuditHistoryComplaintsInfo: {
+                complaints: [],
+                total: 0,
+                records: 1,
+                moreCondition: false,
+                currentTaskId: '',
+                currentComplaintId: '',
+                userName: '',
+                conditions: {
+                    AuditOrdersId: '',
+                    userName: '',
+                    auditLink: '',
+
+                }
+            }
+        },
+        _initMethod: function () {
+            vc.component._listAuditOrders(DEFAULT_PAGE, DEFAULT_ROWS);
+        },
+        _initEvent: function () {
+            vc.on('myAuditComplaints', 'auditMessage', function (_auditInfo) {
+                vc.component._auditComplaintInfo(_auditInfo);
+            });
+            vc.on('pagination', 'page_event', function (_currentPage) {
+                vc.component._listAuditOrders(_currentPage, DEFAULT_ROWS);
+            });
+        },
+        methods: {
+            _listAuditOrders: function (_page, _rows) {
+
+                vc.component.myAuditHistoryComplaintsInfo.conditions.page = _page;
+                vc.component.myAuditHistoryComplaintsInfo.conditions.row = _rows;
+                vc.component.myAuditHistoryComplaintsInfo.conditions.communityId = vc.getCurrentCommunity().communityId;
+                var param = {
+                    params: vc.component.myAuditHistoryComplaintsInfo.conditions
+                };
+
+                //发送get请求
+                vc.http.get('myAuditHistoryComplaints',
+                    'list',
+                    param,
+                    function (json, res) {
+                        var _myAuditHistoryComplaintsInfo = JSON.parse(json);
+                        vc.component.myAuditHistoryComplaintsInfo.total = _myAuditHistoryComplaintsInfo.total;
+                        vc.component.myAuditHistoryComplaintsInfo.records = _myAuditHistoryComplaintsInfo.records;
+                        vc.component.myAuditHistoryComplaintsInfo.complaints = _myAuditHistoryComplaintsInfo.complaints;
+                        vc.emit('pagination', 'init', {
+                            total: vc.component.myAuditHistoryComplaintsInfo.records,
+                            currentPage: _page
+                        });
+                    }, function (errInfo, error) {
+                        console.log('请求失败处理');
+                    }
+                );
+            },
+            _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/myAuditHistoryComplaintsFlow.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="myAuditHistoryComplaints"></vc:create>
+        </div>
+
+        <vc:create name="copyright"></vc:create>
+
+    </div>
+</div>
+
+<vc:create name="commonBottom"></vc:create>
+</body>
+</html>

+ 16 - 0
java110-core/src/main/java/com/java110/core/smo/complaintUser/IComplaintUserInnerServiceSMO.java

@@ -40,6 +40,22 @@ public interface IComplaintUserInnerServiceSMO {
     @RequestMapping(value = "/getUserTasks", method = RequestMethod.POST)
     public List<ComplaintDto> getUserTasks(@RequestBody AuditUser user);
 
+    /**
+     * 查询用户处理任务数
+     *
+     * @param user
+     * @return
+     */
+    @RequestMapping(value = "/getUserHistoryTaskCount", method = RequestMethod.POST)
+    public long getUserHistoryTaskCount(@RequestBody AuditUser user);
+    /**
+     * 获取用户处理审批的任务
+     *
+     * @param user 用户信息
+     */
+    @RequestMapping(value = "/getUserHistoryTasks", method = RequestMethod.POST)
+    public List<ComplaintDto> getUserHistoryTasks(@RequestBody AuditUser user);
+
 
     /**
      * 处理任务

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

@@ -132,6 +132,7 @@ public final class PrivilegeCodeConstant {
 
     //审核工单
     public static final String AGENT_HAS_LIST_AUDIT_COMPLAINT = "502019110360380006";
+    public static final String AGENT_HAS_LIST_AUDIT_HISTORY_COMPLAINT = "502019110534240006";
 
 
 

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

@@ -38,5 +38,10 @@ public class ServiceCodeAuditUserConstant {
      */
     public static final String LIST_AUDIT_COMPLAINTS = "auditUser.listAuditComplaints";
 
+    /**
+     * 查询 历史审核投诉
+     */
+    public static final String LIST_AUDIT_HISTORY_COMPLAINTS = "auditUser.listAuditHistoryComplaints";
+
 
 }