From 9b2838fd5b53ae5ef4aa7e082e2718cc0ccc4466 Mon Sep 17 00:00:00 2001
From: zyx <zyx123456>
Date: 星期五, 25 八月 2023 09:30:01 +0800
Subject: [PATCH] U8接口相关功能

---
 src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java |  168 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 164 insertions(+), 4 deletions(-)

diff --git a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
index 6a7aeae..3307d90 100644
--- a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -13,18 +13,18 @@
 import com.zy.asrs.mapper.ReportQueryMapper;
 import com.zy.asrs.mapper.TagMapper;
 import com.zy.asrs.service.*;
-import com.zy.asrs.task.core.ReturnT;
-import com.zy.asrs.task.handler.WorkLogHandler;
 import com.zy.asrs.utils.MatUtils;
 import com.zy.common.model.DetlDto;
-import com.zy.common.utils.ListUtils;
 import com.zy.common.utils.NodeUtils;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
 
 /**
  * Created by vincent on 2022/4/9
@@ -613,4 +613,164 @@
         return viewWorkInBeans;
     }
 
+    @Transactional
+    public boolean syncMat(MatInfoParam param) {
+        if(!Cools.isEmpty(matService.selectByMatnr(param.getCinvcode()))){
+            callApiLogSave(param, "/open/asrs/mat/v1", "鎺ユ敹ERP涓嬪彂鍟嗗搧淇℃伅澶辫触锛侊紒锛佸晢鍝佸凡瀛樺湪锛侊紒锛�", false);
+            param.setType(false);
+            param.setMemo("鍟嗗搧宸插瓨鍦紒");
+            return false;
+        }
+        Date now = new Date();
+        Mat mat = new Mat();
+        //鐗╂枡鍙�
+        mat.setMatnr(param.getCinvcode());
+        //鐗╂枡鍚嶇О
+        mat.setMaktx(param.getCinvname());
+        //瑙勬牸鍨嬪彿
+        mat.setSpecs(param.getCInvStd());
+        //瀛樿揣鍒嗙被缂栫爜
+        mat.setBrand(param.getCinvccode());
+        //瀛樿揣鍒嗙被鍚嶇О
+        mat.setColor(param.getCInvCName());
+        //璁¢噺鍗曚綅
+        mat.setUnit(param.getCComUnitName());
+        //杩涢」绋�
+        mat.setPrice(param.getIImpTaxRate());
+        //閿�椤圭◣
+        mat.setUnits(param.getITaxRate());
+        //鍚敤鏃ユ湡
+        mat.setDsDate(param.getDSDate());
+        //寤烘。浜�
+        mat.setSupp(param.getCCreatePerson());
+        //寤烘。鏃ユ湡
+        mat.setDInvCreateDatetime(param.getDInvCreateDatetime());
+        //閫氱敤鍨嬪彿
+        mat.setModel(param.getCinvdefine4());
+
+        mat.setCreateTime(now);
+        mat.setUpdateTime(now);
+
+        if (matService.insert(mat)) {
+            callApiLogSave(param, "/open/asrs/mat/v1", "鎺ユ敹ERP涓嬪彂鍟嗗搧淇℃伅鎴愬姛锛佹坊鍔犲晢鍝佷俊鎭垚鍔燂紒", true);
+            param.setType(true);
+        } else {
+            callApiLogSave(param, "/open/asrs/mat/v1", "娣诲姞ERP涓嬪彂鍟嗗搧淇℃伅澶辫触锛侊紒锛佺姸鎬佸紓甯革紒锛侊紒", false);
+            param.setType(false);
+            param.setMemo("娣诲姞ERP涓嬪彂鍟嗗搧淇℃伅澶辫触锛�");
+        }
+
+        matService.insert(mat);
+
+        return true;
+    }
+
+    @Transactional
+    public boolean syncOrder(Map<String, Object> param) {
+        if(Cools.isEmpty(param) || Cools.isEmpty(param.get("orderDetails"))){
+            throw new CoolException("鍗曟嵁鍙傛暟涓虹┖鎴栬�呭崟鎹鎯呬负绌猴紝鏃犳硶鐢熸垚鍗曟嵁淇℃伅");
+        }
+
+        if(!Cools.isEmpty(orderService.selectByNo(param.get("id").toString()))){
+            throw new CoolException("璇ュ崟鎹凡瀛樺湪锛屾棤娉曠敓鎴愬崟鎹俊鎭�");
+        }
+        Order order = orderMapping(param);
+        orderService.insert(order);
+        List<Map<String, Object>> orderDetails = (List<Map<String, Object>>) param.get("orderDetails");
+        orderDetails.forEach(odParam -> {
+            OrderDetl od = orderDetlMapping(order.getOrderNo(),odParam);
+            orderDetlService.insert(od);
+        });
+
+        return true;
+    }
+
+    @Transactional
+    public boolean orderDelete(String orderNo) {
+        Order order = orderService.selectByNo(orderNo);
+        if(Cools.isEmpty(order)){
+            throw new CoolException("鍗曟嵁涓嶅瓨鍦紝鏃犳硶鍒犻櫎鍗曟嵁");
+        }
+
+        if(order.getSettle() != 1){
+            return false;
+        }
+
+        orderService.deleteById(order);
+        orderDetlService.delete(new EntityWrapper<OrderDetl>().eq("order_no",orderNo));
+
+        return true;
+    }
+
+    private Order orderMapping(Map<String, Object> param){
+        Date now = new Date();
+        Order order = new Order();
+        //uuid
+        order.setUuid(String.valueOf(snowflakeIdWorker.nextId()));
+        //鏍哥畻涓讳綋
+        order.setItemName(param.get("account").toString());
+        //鍗曟嵁鍞竴琛ㄧず
+        order.setOrderNo(param.get("id").toString());
+        //涓氬姟绫诲瀷
+        order.setDefNumber(param.get("cBusType").toString());
+        //鍗曟嵁绫诲瀷
+        DocType docType = docTypeService.selectOrAdd(param.get("cVouchType").toString(), Boolean.TRUE);
+        order.setDocType(docType.getDocId());
+        //鍗曟嵁鏃ユ湡
+        order.setOrderTime(param.get("dDate").toString());
+        //渚涘簲鍟�/瀹㈡埛缂栫爜
+        order.setCstmrName(param.get("ks").toString());
+        //浠撳簱
+        order.setTel(param.get("cWhName").toString());
+        //鍑哄叆搴撶被鍒�
+        order.setOperMemb(param.get("cRdName").toString());
+        //閮ㄩ棬
+        order.setSalesman(param.get("cDepCode").toString());
+        //澶囨敞
+        order.setMemo(param.get("cMemo").toString());
+        //鍒跺崟浜�
+        order.setShipCode(param.get("cMaker").toString());
+
+        order.setCreateTime(now);
+        order.setUpdateTime(now);
+
+        //璁㈠崟鐘舵��
+        order.setSettle(1L);
+        //鐘舵��
+        order.setStatus(1);
+        return order;
+    }
+
+    private OrderDetl orderDetlMapping(String orderId, Map<String, Object> odParam){
+        OrderDetl od = new OrderDetl();
+        od.setOrderNo(orderId);
+        //琛屽敮涓�鏍囪瘑
+        od.setItemNum(odParam.get("autoId").toString());
+        //瀛樿揣缂栫爜
+        od.setMatnr(odParam.get("cInvCode").toString());
+        //瀛樿揣鍚嶇О
+        od.setMaktx(odParam.get("cInvName").toString());
+        //瑙勬牸鍨嬪彿
+        od.setSpecs(odParam.get("cInvStd").toString());
+        //璁¢噺鍗曚綅
+        od.setUnit(odParam.get("cComUnitName").toString());
+        //鏁伴噺
+        od.setAnfme(Double.parseDouble(odParam.get("iQuantity").toString()));
+        //琛屽彿
+        od.setBrand(odParam.get("irowno").toString());
+        //閿�鍞鍗曞彿
+        od.setColor(odParam.get("csocode").toString());
+        //閿�鍞鍗曡鍙�
+        od.setOrigin(odParam.get("isoseq").toString());
+
+        return od;
+    }
+
+
+    public void callApiLogSave(MatInfoParam matParam, String tableName, String response, Boolean bool) {
+        apiLogService.save("ERP涓嬪彂鍟嗗搧淇℃伅", tableName, "null", "10.10.10.1",
+                "鐗╂枡缂栫爜锛�" + matParam.getCinvcode() + "銆佺墿鏂欏悕绉帮細" + matParam.getCinvname() + "銆佽鏍硷細" + matParam.getCInvStd() + "銆佸娉細" + matParam.getMemo(),
+                response, bool);
+    }
+
 }

--
Gitblit v1.9.1