wuxw лет назад: 6
Родитель
Сommit
4390211417

+ 145 - 0
Api/src/main/java/com/java110/api/listener/complaint/AuditComplaintListener.java

@@ -0,0 +1,145 @@
+package com.java110.api.listener.complaint;
+
+import com.alibaba.fastjson.JSONArray;
+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.complaint.IComplaintInnerServiceSMO;
+import com.java110.core.smo.complaintUser.IComplaintUserInnerServiceSMO;
+import com.java110.dto.complaint.ComplaintDto;
+import com.java110.entity.center.AppService;
+import com.java110.event.service.api.ServiceDataFlowEvent;
+import com.java110.utils.constant.BusinessTypeConstant;
+import com.java110.utils.constant.CommonConstant;
+import com.java110.utils.constant.ServiceCodeComplaintConstant;
+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.HttpHeaders;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+
+import java.util.ArrayList;
+import java.util.List;
+
+
+/**
+ * 查询小区侦听类
+ */
+@Java110Listener("auditComplaintListener")
+public class AuditComplaintListener extends AbstractServiceApiListener {
+
+    @Autowired
+    private IComplaintUserInnerServiceSMO complaintUserInnerServiceSMOImpl;
+
+
+    @Autowired
+    private IComplaintInnerServiceSMO complaintInnerServiceSMOImpl;
+
+    @Override
+    public String getServiceCode() {
+        return ServiceCodeComplaintConstant.AUDIT_COMPLAINT;
+    }
+
+    @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, "complaintId", "投诉ID不能为空");
+        Assert.hasKeyAndValue(reqJson, "storeId", "必填,请填写商户ID");
+        Assert.hasKeyAndValue(reqJson, "communityId", "必填,请填写小区信息");
+        Assert.hasKeyAndValue(reqJson, "taskId", "必填,请填写任务ID");
+        Assert.hasKeyAndValue(reqJson, "state", "必填,请填写审核状态");
+        Assert.hasKeyAndValue(reqJson, "remark", "必填,请填写批注");
+        Assert.hasKeyAndValue(reqJson, "userId", "必填,请填写用户信息");
+        super.validatePageInfo(reqJson);
+    }
+
+    @Override
+    protected void doSoService(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson) {
+
+        ComplaintDto complaintDto = new ComplaintDto();
+        complaintDto.setTaskId(reqJson.getString("taskId"));
+        complaintDto.setCommunityId(reqJson.getString("communityId"));
+        complaintDto.setAuditCode(reqJson.getString("state"));
+        complaintDto.setAuditMessage(reqJson.getString("remark"));
+        complaintDto.setCurrentUserId(reqJson.getString("userId"));
+
+        boolean isLastTask = complaintUserInnerServiceSMOImpl.completeTask(complaintDto);
+        ResponseEntity<String> responseEntity = new ResponseEntity<String>("成功", HttpStatus.OK);
+        if (isLastTask) {
+            HttpHeaders header = new HttpHeaders();
+            context.getRequestCurrentHeaders().put(CommonConstant.HTTP_ORDER_TYPE_CD, "D");
+            JSONArray businesses = new JSONArray();
+            AppService service = event.getAppService();
+            //添加单元信息
+            businesses.add(updateComplaint(reqJson, context));
+            JSONObject paramInObj = super.restToCenterProtocol(businesses, context.getRequestCurrentHeaders());
+            //将 rest header 信息传递到下层服务中去
+            super.freshHttpHeader(header, context.getRequestCurrentHeaders());
+            responseEntity = this.callService(context, service.getServiceCode(), paramInObj);
+        }
+        context.setResponseEntity(responseEntity);
+
+    }
+
+
+    /**
+     * 添加投诉建议信息
+     *
+     * @param paramInJson     接口调用放传入入参
+     * @param dataFlowContext 数据上下文
+     * @return 订单服务能够接受的报文
+     */
+    private JSONObject updateComplaint(JSONObject paramInJson, DataFlowContext dataFlowContext) {
+
+        ComplaintDto complaintDto = new ComplaintDto();
+        complaintDto.setStoreId(paramInJson.getString("storeId"));
+        complaintDto.setComplaintId(paramInJson.getString("complaintId"));
+        List<ComplaintDto> complaintDtos = complaintInnerServiceSMOImpl.queryComplaints(complaintDto);
+
+        Assert.listOnlyOne(complaintDtos, "存在多条记录,或不存在数据" + complaintDto.getComplaintId());
+
+
+        JSONObject business = JSONObject.parseObject("{\"datas\":{}}");
+        business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_UPDATE_COMPLAINT);
+        business.put(CommonConstant.HTTP_SEQ, DEFAULT_SEQ);
+        business.put(CommonConstant.HTTP_INVOKE_MODEL, CommonConstant.HTTP_INVOKE_MODEL_S);
+        JSONObject businessComplaint = new JSONObject();
+        businessComplaint.putAll(BeanConvertUtil.beanCovertMap(complaintDtos.get(0)));
+        businessComplaint.put("state", "10002");
+        //计算 应收金额
+        business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put("businessComplaint", businessComplaint);
+        return business;
+    }
+
+    public IComplaintInnerServiceSMO getComplaintInnerServiceSMOImpl() {
+        return complaintInnerServiceSMOImpl;
+    }
+
+    public void setComplaintInnerServiceSMOImpl(IComplaintInnerServiceSMO complaintInnerServiceSMOImpl) {
+        this.complaintInnerServiceSMOImpl = complaintInnerServiceSMOImpl;
+    }
+}

+ 6 - 0
CommonService/src/main/java/com/java110/common/smo/impl/ComplaintUserInnerServiceSMOImpl.java

@@ -119,6 +119,7 @@ public class ComplaintUserInnerServiceSMOImpl extends BaseServiceSMO implements
         }
 
         List<String> complaintIds = new ArrayList<>();
+        Map<String,String> taskBusinessKeyMap = new HashMap<>();
         for (Task task : list) {
             String processInstanceId = task.getProcessInstanceId();
             //3.使用流程实例,查询
@@ -126,6 +127,7 @@ public class ComplaintUserInnerServiceSMOImpl extends BaseServiceSMO implements
             //4.使用流程实例对象获取BusinessKey
             String business_key = pi.getBusinessKey();
             complaintIds.add(business_key);
+            taskBusinessKeyMap.put(business_key,task.getId());
         }
 
         //查询 投诉信息
@@ -134,6 +136,10 @@ public class ComplaintUserInnerServiceSMOImpl extends BaseServiceSMO implements
         complaintDto.setCommunityId(user.getCommunityId());
         complaintDto.setComplaintIds(complaintIds.toArray(new String[complaintIds.size()]));
         List<ComplaintDto> tmpComplaintDtos = complaintInnerServiceSMOImpl.queryComplaints(complaintDto);
+
+        for(ComplaintDto tmpComplaintDto : tmpComplaintDtos){
+            tmpComplaintDto.setTaskId(taskBusinessKeyMap.get(tmpComplaintDto.getComplaintId()));
+        }
         return tmpComplaintDtos;
     }
 

+ 10 - 0
WebService/src/main/java/com/java110/web/components/auditUser/MyAuditComplaintsComponent.java

@@ -32,6 +32,16 @@ public class MyAuditComplaintsComponent {
         return listAuditComplaintsSMOImpl.listAuditComplaints(pd);
     }
 
+    /**
+     * 审核任务
+     *
+     * @param pd 页面数据封装
+     * @return 返回 ResponseEntity 对象
+     */
+    public ResponseEntity<String> audit(IPageData pd) {
+        return listAuditComplaintsSMOImpl.listAuditComplaints(pd);
+    }
+
     public IListAuditComplaintsSMO getListAuditComplaintsSMOImpl() {
         return listAuditComplaintsSMOImpl;
     }

+ 22 - 0
WebService/src/main/java/com/java110/web/smo/complaint/IAuditComplaintSMO.java

@@ -0,0 +1,22 @@
+package com.java110.web.smo.complaint;
+
+import com.java110.core.context.IPageData;
+import com.java110.utils.exception.SMOException;
+import org.springframework.http.ResponseEntity;
+
+/**
+ * 投诉建议管理服务接口类
+ * <p>
+ * add by wuxw 2019-06-29
+ */
+public interface IAuditComplaintSMO {
+
+    /**
+     * 审核投诉建议信息
+     *
+     * @param pd 页面数据封装
+     * @return ResponseEntity 对象数据
+     * @throws SMOException 业务代码层
+     */
+    ResponseEntity<String> auditComplaint(IPageData pd) throws SMOException;
+}

+ 74 - 0
WebService/src/main/java/com/java110/web/smo/complaint/impl/AuditComplaintSMOImpl.java

@@ -0,0 +1,74 @@
+package com.java110.web.smo.complaint.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.utils.util.BeanConvertUtil;
+import com.java110.web.smo.complaint.IAuditComplaintSMO;
+import com.java110.web.smo.complaint.IListComplaintsSMO;
+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;
+
+import java.util.Map;
+
+/**
+ * 查询complaint服务类
+ */
+@Service("listComplaintsSMOImpl")
+public class AuditComplaintSMOImpl extends AbstractComponentSMO implements IAuditComplaintSMO {
+
+    @Autowired
+    private RestTemplate restTemplate;
+
+    @Override
+    public ResponseEntity<String> auditComplaint(IPageData pd) throws SMOException {
+        return businessProcess(pd);
+    }
+
+    @Override
+    protected void validate(IPageData pd, JSONObject paramIn) {
+        Assert.hasKeyAndValue(paramIn, "communityId", "必填,请求报文中未包含小区信息");
+        Assert.hasKeyAndValue(paramIn, "complaintId", "投诉ID不能为空");
+        Assert.hasKeyAndValue(paramIn, "taskId", "必填,请求报文中未包含任务ID");
+        Assert.hasKeyAndValue(paramIn, "state", "必填,请求报文中未包含状态");
+        Assert.hasKeyAndValue(paramIn, "remark", "必填,请求报文中未包含审核信息");
+
+
+        super.validatePageInfo(pd);
+
+        super.checkUserHasPrivilege(pd, restTemplate, PrivilegeCodeConstant.AGENT_HAS_LIST_COMPLAINT);
+    }
+
+    @Override
+    protected ResponseEntity<String> doBusinessProcess(IPageData pd, JSONObject paramIn) {
+        ComponentValidateResult result = super.validateStoreStaffCommunityRelationship(pd, restTemplate);
+
+        Map paramMap = BeanConvertUtil.beanCovertMap(result);
+        paramIn.putAll(paramMap);
+
+        String apiUrl = ServiceConstant.SERVICE_API_URL + "/api/complaint.auditComplaint" ;
+
+
+        ResponseEntity<String> responseEntity = this.callCenterService(restTemplate, pd, paramIn.toJSONString(),
+                apiUrl,
+                HttpMethod.POST);
+
+        return responseEntity;
+    }
+
+    public RestTemplate getRestTemplate() {
+        return restTemplate;
+    }
+
+    public void setRestTemplate(RestTemplate restTemplate) {
+        this.restTemplate = restTemplate;
+    }
+}

+ 7 - 1
WebService/src/main/resources/components/auditPackage/myAuditComplaint/myAuditComplaints.html

@@ -37,7 +37,7 @@
                             <td class="text-center">
                                 <div class="btn-group">
                                     <button class="btn-white btn btn-xs"
-                                            v-on:click="_openAuditComplaintModel(complaint)">审
+                                            v-on:click="_openAuditComplaintModel(complaint)">审
                                     </button>
                                 </div>
                             </td>
@@ -58,4 +58,10 @@
             </div>
         </div>
     </div>
+    <vc:create name="audit"
+               callBackListener="myAuditComplaints"
+               callBackFunction="auditMessage"
+               >
+
+    </vc:create>
 </div>

+ 29 - 1
WebService/src/main/resources/components/auditPackage/myAuditComplaint/myAuditComplaints.js

@@ -11,6 +11,8 @@
                 total: 0,
                 records: 1,
                 moreCondition: false,
+                currentTaskId: '',
+                currentComplaintId: '',
                 userName: '',
                 conditions: {
                     AuditOrdersId: '',
@@ -24,6 +26,9 @@
             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);
             });
@@ -56,12 +61,35 @@
                     }
                 );
             },
-            _openAuditComplaintModel: function () {
+            _openAuditComplaintModel: function (_complaintInfo) {
                 //vc.jumpToPage("/flow/addAuditOrderstepFlow")
+                vc.component.myAuditComplaintsInfo.currentTaskId = _complaintInfo.taskId;
+                vc.component.myAuditComplaintsInfo.currentComplaintId = _complaintInfo.complaintId;
+                vc.emit('audit', 'openAuditModal', {});
             },
             _queryAuditOrdersMethod: function () {
                 vc.component._listAuditOrders(DEFAULT_PAGE, DEFAULT_ROWS);
             },
+            _auditComplaintInfo: function (_auditInfo) {
+                _auditInfo.communityId = vc.getCurrentCommunity().communityId;
+                _auditInfo.taskId = vc.component.myAuditComplaintsInfo.currentTaskId;
+                _auditInfo.complaintId = vc.component.myAuditComplaintsInfo.currentComplaintId;
+                //发送get请求
+                vc.http.post('myAuditComplaints',
+                    'audit',
+                    JSON.stringify(_auditInfo),
+                    {
+                        emulateJSON: true
+                    },
+                    function (json, res) {
+                        vc.message("处理成功");
+                        vc.component._listAuditOrders(DEFAULT_PAGE, DEFAULT_ROWS);
+                    }, function (errInfo, error) {
+                        console.log('请求失败处理');
+                        vc.message("处理失败:" + errInfo);
+                    }
+                );
+            },
             _moreCondition: function () {
                 if (vc.component.AuditOrdersManageInfo.moreCondition) {
                     vc.component.AuditOrdersManageInfo.moreCondition = false;

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

@@ -26,6 +26,7 @@ public class ServiceCodeComplaintConstant {
      * 查询 投诉建议
      */
     public static final String LIST_COMPLAINTS = "complaint.listComplaints";
+    public static final String AUDIT_COMPLAINT = "complaint.auditComplaint";
 
 
 }