wuxw
2019-11-03 56a98b6988d8f813f8cb19685551625b42f1fc59
加入 投诉处理页面
4个文件已修改
7个文件已添加
449 ■■■■■ 已修改文件
Api/src/main/java/com/java110/api/listener/auditOrder/ListAuditComplaintsListener.java 102 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CommonService/src/main/java/com/java110/common/smo/impl/ComplaintUserInnerServiceSMOImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CommonService/src/main/java/com/java110/common/smo/impl/ResourceEntryStoreInnerServiceSMOImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebService/src/main/java/com/java110/web/components/auditUser/MyAuditComplaintsComponent.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebService/src/main/java/com/java110/web/smo/auditUser/IListAuditComplaintsSMO.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebService/src/main/java/com/java110/web/smo/auditUser/impl/ListAuditComplaintsSMOImpl.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebService/src/main/resources/components/auditPackage/myAuditComplaint/myAuditComplaints.html 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebService/src/main/resources/components/auditPackage/myAuditComplaint/myAuditComplaints.js 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebService/src/main/resources/views/myAuditComplaintsFlow.html 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-bean/src/main/java/com/java110/vo/api/complaint/ApiComplaintDataVo.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-utils/src/main/java/com/java110/utils/constant/ServiceCodeAuditUserConstant.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Api/src/main/java/com/java110/api/listener/auditOrder/ListAuditComplaintsListener.java
New file
@@ -0,0 +1,102 @@
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.common.IResourceEntryStoreInnerServiceSMO;
import com.java110.core.smo.community.ICommunityInnerServiceSMO;
import com.java110.core.smo.complaint.IComplaintInnerServiceSMO;
import com.java110.core.smo.complaint.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 com.java110.vo.api.resourceOrder.ApiResourceOrderDataVo;
import com.java110.vo.api.resourceOrder.ApiResourceOrderVo;
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("listAuditComplaintsListener")
public class ListAuditComplaintsListener extends AbstractServiceApiListener {
    @Autowired
    private IComplaintUserInnerServiceSMO complaintUserInnerServiceSMOImpl;
    @Override
    public String getServiceCode() {
        return ServiceCodeAuditUserConstant.LIST_AUDIT_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, "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.setPage(reqJson.getInteger("page"));
        auditUser.setRow(reqJson.getInteger("row"));
        long count = complaintUserInnerServiceSMOImpl.getUserTaskCount(auditUser);
        List<ApiComplaintDataVo> auditComplaints = null;
        if (count > 0) {
            auditComplaints = BeanConvertUtil.covertBeanList(complaintUserInnerServiceSMOImpl.getUserTasks(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);
    }
}
CommonService/src/main/java/com/java110/common/smo/impl/ComplaintUserInnerServiceSMOImpl.java
@@ -63,7 +63,7 @@
     */
    public long getUserTaskCount(@RequestBody AuditUser user) {
        TaskService taskService = processEngine.getTaskService();
        TaskQuery query = taskService.createTaskQuery();
        TaskQuery query = taskService.createTaskQuery().processDefinitionKey("complaint");
        query.taskAssignee(user.getUserId());
        return query.count();
    }
@@ -75,7 +75,7 @@
     */
    public List<ComplaintDto> getUserTasks(@RequestBody AuditUser user) {
        TaskService taskService = processEngine.getTaskService();
        TaskQuery query = taskService.createTaskQuery();
        TaskQuery query = taskService.createTaskQuery().processDefinitionKey("complaint");;
        query.taskAssignee(user.getUserId());
        query.orderByTaskCreateTime().desc();
        List<Task> list = null;
CommonService/src/main/java/com/java110/common/smo/impl/ResourceEntryStoreInnerServiceSMOImpl.java
@@ -65,7 +65,7 @@
     */
    public long getUserTaskCount(@RequestBody AuditUser user) {
        TaskService taskService = processEngine.getTaskService();
        TaskQuery query = taskService.createTaskQuery();
        TaskQuery query = taskService.createTaskQuery().processDefinitionKey("resourceEntry");
        query.taskAssignee(user.getUserId());
        return query.count();
    }
@@ -77,7 +77,7 @@
     */
    public List<ResourceOrderDto> getUserTasks(@RequestBody AuditUser user) {
        TaskService taskService = processEngine.getTaskService();
        TaskQuery query = taskService.createTaskQuery();
        TaskQuery query = taskService.createTaskQuery().processDefinitionKey("resourceEntry");
        query.taskAssignee(user.getUserId());
        query.orderByTaskCreateTime().desc();
        List<Task> list = null;
WebService/src/main/java/com/java110/web/components/auditUser/MyAuditComplaintsComponent.java
New file
@@ -0,0 +1,42 @@
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.IListAuditOrdersSMO;
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("myAuditComplaints")
public class MyAuditComplaintsComponent {
    @Autowired
    private IListAuditComplaintsSMO listAuditComplaintsSMOImpl;
    /**
     * 查询审核人员列表
     *
     * @param pd 页面数据封装
     * @return 返回 ResponseEntity 对象
     */
    public ResponseEntity<String> list(IPageData pd) {
        return listAuditComplaintsSMOImpl.listAuditComplaints(pd);
    }
    public IListAuditComplaintsSMO getListAuditComplaintsSMOImpl() {
        return listAuditComplaintsSMOImpl;
    }
    public void setListAuditComplaintsSMOImpl(IListAuditComplaintsSMO listAuditComplaintsSMOImpl) {
        this.listAuditComplaintsSMOImpl = listAuditComplaintsSMOImpl;
    }
}
WebService/src/main/java/com/java110/web/smo/auditUser/IListAuditComplaintsSMO.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 IListAuditComplaintsSMO {
    /**
     * 查询审核订单
     * @param pd
     * @return
     */
    public ResponseEntity<String> listAuditComplaints(IPageData pd);
}
WebService/src/main/java/com/java110/web/smo/auditUser/impl/ListAuditComplaintsSMOImpl.java
New file
@@ -0,0 +1,63 @@
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.web.smo.auditUser.IListAuditComplaintsSMO;
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("listAuditComplaintsSMOImpl")
public class ListAuditComplaintsSMOImpl extends AbstractComponentSMO implements IListAuditComplaintsSMO {
    @Autowired
    private RestTemplate restTemplate;
    @Override
    public ResponseEntity<String> listAuditComplaints(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/auditUser.listAuditComplaints" + 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/myAuditComplaint/myAuditComplaints.html
New file
@@ -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 myAuditComplaintsInfo.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>
WebService/src/main/resources/components/auditPackage/myAuditComplaint/myAuditComplaints.js
New file
@@ -0,0 +1,75 @@
/**
 入驻小区
 **/
(function (vc) {
    var DEFAULT_PAGE = 1;
    var DEFAULT_ROWS = 10;
    vc.extends({
        data: {
            myAuditComplaintsInfo: {
                complaints: [],
                total: 0,
                records: 1,
                moreCondition: false,
                userName: '',
                conditions: {
                    AuditOrdersId: '',
                    userName: '',
                    auditLink: '',
                }
            }
        },
        _initMethod: function () {
            vc.component._listAuditOrders(DEFAULT_PAGE, DEFAULT_ROWS);
        },
        _initEvent: function () {
            vc.on('pagination', 'page_event', function (_currentPage) {
                vc.component._listAuditOrders(_currentPage, DEFAULT_ROWS);
            });
        },
        methods: {
            _listAuditOrders: function (_page, _rows) {
                vc.component.myAuditComplaintsInfo.conditions.page = _page;
                vc.component.myAuditComplaintsInfo.conditions.row = _rows;
                var param = {
                    params: vc.component.myAuditComplaintsInfo.conditions
                };
                //发送get请求
                vc.http.get('myAuditComplaints',
                    'list',
                    param,
                    function (json, res) {
                        var _myAuditComplaintsInfo = JSON.parse(json);
                        vc.component.myAuditComplaintsInfo.total = _myAuditComplaintsInfo.total;
                        vc.component.myAuditComplaintsInfo.records = _myAuditComplaintsInfo.records;
                        vc.component.myAuditComplaintsInfo.complaints = _myAuditComplaintsInfo.complaints;
                        vc.emit('pagination', 'init', {
                            total: vc.component.myAuditComplaintsInfo.records,
                            currentPage: _page
                        });
                    }, function (errInfo, error) {
                        console.log('请求失败处理');
                    }
                );
            },
            _openAuditComplaintModel: 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/myAuditComplaintsFlow.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="myAuditComplaints"></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/vo/api/complaint/ApiComplaintDataVo.java
@@ -5,6 +5,10 @@
public class ApiComplaintDataVo implements Serializable {
    //工作流实例ID
    private String processInstanceId;
    private String taskId;
    private String complaintId;
    private String storeId;
    private String typeCd;
@@ -19,6 +23,10 @@
    private String unitNum;
    private String floorNum;
    private String communityId;
    //
    private String auditCode;
    private String auditMessage;
    public String getComplaintId() {
@@ -132,4 +140,36 @@
    public void setTypeCdName(String typeCdName) {
        this.typeCdName = typeCdName;
    }
    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 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-utils/src/main/java/com/java110/utils/constant/ServiceCodeAuditUserConstant.java
@@ -33,5 +33,10 @@
     */
    public static final String LIST_AUDITORDERS = "auditUser.listAuditOrders";
    /**
     * 查询 审核投诉
     */
    public static final String LIST_AUDIT_COMPLAINTS = "auditUser.listAuditComplaints";
}