Просмотр исходного кода

完成采购发货单同步iBOSS功能

sh4wmoo 3 лет назад
Родитель
Сommit
44a7465833

+ 14 - 0
src/main/java/com/dk/mnls_mp/controller/mnls/IBOSSOrderController.java

@@ -2,6 +2,7 @@ package com.dk.mnls_mp.controller.mnls;
 
 
 import com.dk.mnls_mp.infrastructure.base.UserRightCheck;
+import com.dk.mnls_mp.model.command.DeliveryOrderCreateCommand;
 import com.dk.mnls_mp.model.command.PurchaseOrderCreateCommand;
 import com.dk.mnls_mp.service.mnls.SyncIBOSSOrderService;
 import com.dongke.base.exceptionHandler.ResponseResultVO;
@@ -41,4 +42,17 @@ public class IBOSSOrderController {
     public ResponseResultVO createPurchaseOrder(@Valid @RequestBody PurchaseOrderCreateCommand command) {
         return SyncIBOSSOrderService.createPurchaseOrder(command);
     }
+
+    /**
+     * @desc   : 新建采购发货单
+     * @author : 张潇木
+     * @date   : 2022/10/9 14:23
+     */
+    @ApiOperation(value = "新建采购发货单", notes = "新建采购发货单")
+    @PostMapping({"/create_delivery_order"})
+    @UserRightCheck(code = "009003")
+    public ResponseResultVO createDeliveryOrder(@Valid @RequestBody DeliveryOrderCreateCommand command) {
+        return SyncIBOSSOrderService.createDeliveryOrder(command);
+    }
+
 }

+ 4 - 0
src/main/java/com/dk/mnls_mp/infrastructure/config/Config.java

@@ -38,6 +38,8 @@ public class Config {
     private String syncGoodsCode;
     @Value("${iBOSS.function-name.create-purchase-order}")
     private String createPurchaseOrder;
+    @Value("${iBOSS.function-name.create-delivery-order}")
+    private String createDeliveryOrder;
 
     public String getUploadUrl() {
         return uploadUrl;
@@ -52,5 +54,7 @@ public class Config {
     public String getIBOSSWebserviceInterfacePostfix() {return IBOSSWebserviceInterfacePostfix; }
     public String getSyncGoodsCodeUrl() {return syncGoodsCode; }
     public String getCreatePurchaseOrderUrl() {return createPurchaseOrder; }
+    public String getCreateDeliveryOrderUrl() {return createDeliveryOrder; }
+
 
 }

+ 1 - 1
src/main/java/com/dk/mnls_mp/model/command/PurchaseOrderCreateCommand.java

@@ -51,6 +51,6 @@ public class PurchaseOrderCreateCommand {
      * 订单明细
      */
     @NotNull(message = "订单明细不能为空")
-    private List<PurchaseOrderCreateDetailCommand> orderDetail;
+    private List<PurchaseOrderDetailCreateCommand> orderDetail;
 
 }

+ 1 - 1
src/main/java/com/dk/mnls_mp/model/command/PurchaseOrderCreateDetailCommand.java → src/main/java/com/dk/mnls_mp/model/command/PurchaseOrderDetailCreateCommand.java

@@ -11,7 +11,7 @@ import java.math.BigDecimal;
  * @date   : 2022/10/10 10:23
  */
 @Data
-public class PurchaseOrderCreateDetailCommand {
+public class PurchaseOrderDetailCreateCommand {
 
     /**
      * 美云商品主表ID

+ 50 - 0
src/main/java/com/dk/mnls_mp/service/mnls/SyncIBOSSOrderService.java

@@ -7,6 +7,7 @@ import com.dk.mnls_mp.infrastructure.util.HttpHelper;
 import com.dk.mnls_mp.infrastructure.util.XmlUtil;
 import com.dk.mnls_mp.mapper.basic.CustomerMapper;
 import com.dk.mnls_mp.mapper.basic.WCFinfoMapper;
+import com.dk.mnls_mp.model.command.DeliveryOrderCreateCommand;
 import com.dk.mnls_mp.model.command.PurchaseOrderCreateCommand;
 import com.dk.mnls_mp.model.dto.IBOSSDTO;
 import com.dk.mnls_mp.model.pojo.basic.Customer;
@@ -88,4 +89,53 @@ public class SyncIBOSSOrderService {
 			return ResponseResultUtil.error(666,"新建采购订单异常,单号=>"+command.getOrderNo());
 		}
 	}
+
+	/**
+	 * @desc   : 创建采购发货单
+	 * @author : 张潇木
+	 * @date   : 2022/10/12 10:34
+	 */
+	public ResponseResultVO createDeliveryOrder(DeliveryOrderCreateCommand command) {
+		//根据经销商编码查询经销商信息
+		Customer customer = customerMapper.selectByCode(command.getDealerCode());
+		if(customer!=null){
+			//调用iBOSS接口参数accountCode/userCode 赋值
+			command.setAccountCode(customer.getDongkeaccountcode()).setUserCode(customer.getUniqueCode());
+		}else{
+			return ResponseResultUtil.error(ResponseCodeEnum.CUSTOMER_CODE_NOT_EXIST.getCode(),ResponseCodeEnum.CUSTOMER_CODE_NOT_EXIST.getMessage());
+		}
+		try {
+			//查询客户webservice信息
+			WCFinfo wcFinfo = wcFinfoMapper.selectById(customer.getWcfid());
+			if (wcFinfo == null) {
+				throw new BaseBusinessException(666,"没有找到此客户的webService信息,客户信息=>"+customer);
+			}
+			//拼接url 区别于恒洁中台 直接调用iBOSS的webservice接口
+			String url = "http://"+wcFinfo.getWcfip() + ":" + wcFinfo.getWcfport() + config.getIBOSSWebserviceInterfacePostfix() +config.getCreateDeliveryOrderUrl();
+
+			log.info("=*=*=*=*=*=*=*=*=" + "参数:" + JSON.toJSONString(command) + "=*=*=*=*=*=*=*=*=");
+			//调用接口
+			ResponseResultVO resultVO = HttpHelper.callIBOSSWebservice(url, command,null);
+
+			//成功后插入数据
+			if (ResponseCodeEnum.SUCCESS.getCode()==resultVO.getCode()) {
+				//XML转map
+				Map<String, Object> resJson = XmlUtil.xmlToJson(resultVO.getData().toString());
+				//map转DTO
+				IBOSSDTO IBOSSDTO = JSON.parseObject(resJson.get("string").toString(), IBOSSDTO.class);
+				if(0==IBOSSDTO.getStatus()){
+					log.info("新建采购发货单成功,单号=>{}",command.getOrderNo());
+					return ResponseResultUtil.success(200,"新建采购发货单成功,单号=>"+command.getOrderNo());
+				}else{
+					log.info("新建采购发货单失败,iBOSS接口状态码不等于0,单号=>{},接口返回值=>{}",command.getOrderNo(),IBOSSDTO);
+					return ResponseResultUtil.error(666,"新建采购发货单失败,iBOSS接口状态码不等于0,单号=>"+command.getOrderNo());
+				}
+			}
+			log.info("新建采购发货单失败,http状态码不等于200,单号=>{},接口返回值=>{}",command.getOrderNo(),resultVO);
+			return ResponseResultUtil.error(666,"新建采购发货单失败,http状态码不等于200,单号=>"+command.getOrderNo());
+		} catch (Exception e) {
+			log.error("新建采购发货单异常,单号=>{},异常信息=>{}"+command.getOrderNo(), e);
+			return ResponseResultUtil.error(666,"新建采购发货单异常,单号=>"+command.getOrderNo());
+		}
+	}
 }

+ 2 - 1
src/main/resources/application.yml

@@ -50,4 +50,5 @@ iBOSS:
   webservice-interface-postfix: /WebService/DKIWebServiceInterfaceDocking.asmx/
   function-name:
     sync-goods-code: DK_SaveGoods_Code_MP
-    create-purchase-order: DK_SaveProcurementOrder_MP
+    create-purchase-order: DK_SaveProcurementOrder_MP
+    create-delivery-order: DK_SaveProcurementDelivery_MP