Parcourir la source

优化采购审核功能

曾成 il y a 6 ans
Parent
commit
97a3587756

+ 6 - 0
Api/src/main/java/com/java110/api/bmo/auditApplyOrder/IApplyOrderBMO.java

@@ -0,0 +1,6 @@
+package com.java110.api.bmo.auditApplyOrder;
+
+import com.java110.api.bmo.IApiBaseBMO;
+
+public interface IApplyOrderBMO extends IApiBaseBMO {
+}

+ 9 - 0
Api/src/main/java/com/java110/api/bmo/auditApplyOrder/impl/ApplyOrderBMOImpl.java

@@ -0,0 +1,9 @@
+package com.java110.api.bmo.auditApplyOrder.impl;
+
+import com.java110.api.bmo.ApiBaseBMO;
+import com.java110.api.bmo.auditApplyOrder.IApplyOrderBMO;
+import org.springframework.stereotype.Service;
+
+@Service("applyOrderBMOImpl")
+public class ApplyOrderBMOImpl extends ApiBaseBMO implements IApplyOrderBMO {
+}

+ 126 - 0
Api/src/main/java/com/java110/api/listener/purchaseApply/AuditApplyOrderListener.java

@@ -0,0 +1,126 @@
+package com.java110.api.listener.purchaseApply;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.java110.api.bmo.auditApplyOrder.IApplyOrderBMO;
+import com.java110.api.listener.AbstractServiceApiListener;
+import com.java110.core.annotation.Java110Listener;
+import com.java110.core.context.DataFlowContext;
+import com.java110.core.smo.purchaseApply.IPurchaseApplyInnerServiceSMO;
+import com.java110.core.smo.purchaseApplyUser.IPurchaseApplyUserInnerServiceSMO;
+import com.java110.dto.complaint.ComplaintDto;
+import com.java110.dto.purchaseApply.PurchaseApplyDto;
+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.constant.ServiceCodePurchaseApplyConstant;
+import com.java110.utils.util.Assert;
+import com.java110.utils.util.BeanConvertUtil;
+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.List;
+
+
+/**
+ * 订单审核
+ */
+@Java110Listener("auditApplyOrderListener")
+public class AuditApplyOrderListener extends AbstractServiceApiListener {
+
+    @Autowired
+    private IApplyOrderBMO iApplyOrderBMOImpl;
+
+    @Autowired
+    private IPurchaseApplyUserInnerServiceSMO purchaseApplyUserInnerServiceSMOImpl;
+
+
+    @Autowired
+    private IPurchaseApplyInnerServiceSMO purchaseApplyInnerServiceSMOImpl;
+
+    @Override
+    public String getServiceCode() {
+        return ServiceCodePurchaseApplyConstant.AUDIT_PURCHASE_APPLY;
+    }
+
+    @Override
+    public HttpMethod getHttpMethod() {
+        return HttpMethod.POST;
+    }
+
+
+    @Override
+    public int getOrder() {
+        return DEFAULT_ORDER;
+    }
+
+
+    @Override
+    protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) {
+        Assert.hasKeyAndValue(reqJson, "applyOrderId", "订单号不能为空");
+        Assert.hasKeyAndValue(reqJson, "taskId", "必填,请填写任务ID");
+        Assert.hasKeyAndValue(reqJson, "state", "必填,请填写审核状态");
+        Assert.hasKeyAndValue(reqJson, "remark", "必填,请填写批注");
+    }
+
+    @Override
+    protected void doSoService(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson) {
+        PurchaseApplyDto purchaseApplyDto = new PurchaseApplyDto();
+        purchaseApplyDto.setTaskId(reqJson.getString("taskId"));
+        purchaseApplyDto.setApplyOrderId(reqJson.getString("applyOrderId"));
+        purchaseApplyDto.setStoreId(reqJson.getString("storeId"));
+        purchaseApplyDto.setAuditCode(reqJson.getString("state"));
+        purchaseApplyDto.setAuditMessage(reqJson.getString("remark"));
+        purchaseApplyDto.setCurrentUserId(reqJson.getString("userId"));
+
+        boolean isLastTask = purchaseApplyUserInnerServiceSMOImpl.completeTask(purchaseApplyDto);
+        ResponseEntity<String> responseEntity = new ResponseEntity<String>("成功", HttpStatus.OK);
+        if (isLastTask) {
+            context.getRequestCurrentHeaders().put(CommonConstant.HTTP_ORDER_TYPE_CD, "D");
+            JSONArray businesses = new JSONArray();
+            AppService service = event.getAppService();
+            businesses.add(updateComplaint(reqJson, context));
+            responseEntity = iApplyOrderBMOImpl.callService(context, service.getServiceCode(), businesses);
+        }
+        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.setCommunityId(paramInJson.getString("communityId"));
+        complaintDto.setComplaintId(paramInJson.getString("complaintId"));
+        PurchaseApplyDto purchaseApplyDto = new PurchaseApplyDto();
+        List<PurchaseApplyDto> purchaseApplyDtos = purchaseApplyInnerServiceSMOImpl.queryPurchaseApplys(purchaseApplyDto);
+
+        Assert.listOnlyOne(purchaseApplyDtos, "存在多条记录,或不存在数据" + complaintDto.getComplaintId());
+
+
+        JSONObject business = JSONObject.parseObject("{\"datas\":{}}");
+        business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_UPDATE_PURCHASE_APPLY);
+        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(purchaseApplyDtos.get(0)));
+        businessComplaint.put("state", "10002");
+        business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put("businessPurchaseApply", businessComplaint);
+        return business;
+    }
+
+
+}

+ 12 - 0
FrontService/src/main/java/com/java110/front/components/auditUser/MyAuditOrdersComponent.java

@@ -2,7 +2,9 @@ package com.java110.front.components.auditUser;
 
 
 import com.java110.core.context.IPageData;
+import com.java110.front.smo.auditUser.IAuditOrdersSMO;
 import com.java110.front.smo.auditUser.IListAuditOrdersSMO;
+import com.java110.front.smo.complaint.IAuditComplaintSMO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Component;
@@ -15,12 +17,17 @@ import org.springframework.stereotype.Component;
  * <p>
  * 2019-06-29
  */
+
+
 @Component("myAuditOrders")
 public class MyAuditOrdersComponent {
 
     @Autowired
     private IListAuditOrdersSMO listAuditOrdersSMOImpl;
 
+    @Autowired
+    private IAuditOrdersSMO auditAuditOrdersSMOImpl;
+
     /**
      * 查询审核人员列表
      *
@@ -31,6 +38,11 @@ public class MyAuditOrdersComponent {
         return listAuditOrdersSMOImpl.listAuditOrders(pd);
     }
 
+    public ResponseEntity<String> audit(IPageData pd) {
+        return auditAuditOrdersSMOImpl.auditOrder(pd);
+    }
+
+
     public IListAuditOrdersSMO getListAuditOrdersSMOImpl() {
         return listAuditOrdersSMOImpl;
     }

+ 10 - 0
FrontService/src/main/java/com/java110/front/smo/auditUser/IAuditOrdersSMO.java

@@ -0,0 +1,10 @@
+package com.java110.front.smo.auditUser;
+
+import com.java110.core.context.IPageData;
+import com.java110.utils.exception.SMOException;
+import org.springframework.http.ResponseEntity;
+
+public interface IAuditOrdersSMO {
+
+    ResponseEntity<String> auditOrder(IPageData pd) throws SMOException;
+}

+ 66 - 0
FrontService/src/main/java/com/java110/front/smo/auditUser/impl/AuditOrdersSMOImpl.java

@@ -0,0 +1,66 @@
+package com.java110.front.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.front.smo.auditUser.IAuditOrdersSMO;
+import com.java110.front.smo.auditUser.IDeleteAuditUserSMO;
+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 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;
+
+@Service("auditOrdersSMOImpl")
+public class AuditOrdersSMOImpl extends AbstractComponentSMO implements IAuditOrdersSMO {
+
+    @Autowired
+    private RestTemplate restTemplate;
+
+    public RestTemplate getRestTemplate() {
+        return restTemplate;
+    }
+
+    public void setRestTemplate(RestTemplate restTemplate) {
+        this.restTemplate = restTemplate;
+    }
+
+    @Override
+    public ResponseEntity<String> auditOrder(IPageData pd) throws SMOException {
+        return businessProcess(pd);
+    }
+
+    @Override
+    protected void validate(IPageData pd, JSONObject paramIn) {
+        Assert.hasKeyAndValue(paramIn, "taskId", "必填,请求报文中未包含任务ID");
+        Assert.hasKeyAndValue(paramIn, "state", "必填,请求报文中未包含状态");
+        Assert.hasKeyAndValue(paramIn, "remark", "必填,请求报文中未包含审核信息");
+        Assert.hasKeyAndValue(paramIn, "applyOrderId", "必填,请求报文中未包订单号");
+        super.checkUserHasPrivilege(pd, restTemplate, PrivilegeCodeConstant.AGENT_HAS_LIST_AUDIT_APPLY_ORDER);
+    }
+
+    @Override
+    protected ResponseEntity<String> doBusinessProcess(IPageData pd, JSONObject paramIn) throws Exception {
+        ComponentValidateResult result = super.validateStoreStaffCommunityRelationship(pd, restTemplate);
+
+        Map paramMap = BeanConvertUtil.beanCovertMap(result);
+        paramIn.putAll(paramMap);
+
+        String apiUrl = ServiceConstant.SERVICE_API_URL + "/api/purchaseApply.auditApplyOrder" ;
+
+
+        ResponseEntity<String> responseEntity = this.callCenterService(restTemplate, pd, paramIn.toJSONString(),
+                apiUrl,
+                HttpMethod.POST);
+
+        return responseEntity;
+    }
+}

+ 3 - 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";
 
     //设备信息
@@ -148,6 +149,8 @@ public final class PrivilegeCodeConstant {
 
     //采购申请
     public static final String AGENT_HAS_LIST_PURCHASE_APPLY = "500201906022";
+    //审核采购申请
+    public static final String AGENT_HAS_LIST_AUDIT_APPLY_ORDER = "502019110360380006";
 
 
 

+ 3 - 0
java110-utils/src/main/java/com/java110/utils/constant/ServiceCodePurchaseApplyConstant.java

@@ -27,5 +27,8 @@ public class ServiceCodePurchaseApplyConstant {
      */
     public static final String LIST_PURCHASE_APPLY = "purchaseApply.listPurchaseApplys";
 
+    //审核
+    public static final String AUDIT_PURCHASE_APPLY = "purchaseApply.auditApplyOrder";
+
 
 }