自动化立体仓库 - WMS系统
#
zjj
6 天以前 4b6e6d95ae6fbbccc4351db366b99fa05288877f
src/main/java/com/zy/asrs/task/kingdee/handler/SaveOrderSyncHandler.java
@@ -4,10 +4,16 @@
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.common.Cools;
import com.core.common.DateUtils;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.zy.asrs.entity.DocType;
import com.zy.asrs.entity.Order;
import com.zy.asrs.entity.OrderDetl;
import com.zy.asrs.service.ApiLogService;
import com.zy.asrs.service.DocTypeService;
import com.zy.asrs.service.OrderDetlService;
import com.zy.asrs.service.OrderService;
import com.zy.asrs.task.AbstractHandler;
import com.zy.asrs.task.core.ReturnT;
@@ -19,8 +25,8 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.HashMap;
import java.util.Set;
import java.text.SimpleDateFormat;
import java.util.*;
/**
 * Created by Monkey D. Luffy on 2023.10.21
@@ -43,10 +49,16 @@
    @Autowired
    private DocTypeService docTypeService;
    @Autowired
    private OrderDetlService orderDetlService;
    @Autowired
    private LoginAuthenticationHandler loginAuthenticationHandler;
    @Transactional
    public ReturnT<String> start(Order order) {
        List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId());
        if (Cools.isEmpty(orderDetls) || orderDetls.size()==0){
            return SUCCESS;
        }
        //登录金蝶r
        ReturnT<String> start = loginAuthenticationHandler.start();
        DocType docType = docTypeService.selectById(order.getDocType());
@@ -54,14 +66,34 @@
            return SUCCESS;
        }
        KingDeeUtilType kingDeeUtilType = KingDeeUtilType.get(docType.getDocName());
//        if (kingDeeUtilType.entryId!=2){
//            return SUCCESS;
//        }
        Date now = new Date();
        //条件拼接
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("Numbers",order.getOrderNo());
        JSONObject jsonObject1 = new JSONObject();
        jsonObject1.put("data", jsonObject);
        jsonObject1.put("FormId",kingDeeUtilType.correspondingFormId);
        String add = jsonObject1.toJSONString();
        JSONObject jsonObject=new JSONObject();
        jsonObject.put("FormId",kingDeeUtilType.correspondingFormId);
        JSONObject model=new JSONObject();
        model.put("fid",order.getPostFeeType());
        JSONArray fEntitys = new JSONArray();
        for (OrderDetl orderDetl : orderDetls) {
            JSONObject fEntity = new JSONObject();
            fEntity.put("FEntryID",orderDetl.getBeBatch());
            //完成数量-已上报数量
            if(orderDetl.getQty().equals(0.0)){
                fEntity.put(kingDeeUtilType.anfme, orderDetl.getQty());
            }else{
                fEntity.put(kingDeeUtilType.anfme, orderDetl.getQty()-orderDetl.getPrice());    // 将"FQty"放到最后
            }
            fEntitys.add(fEntity);
        }
        model.put("FEntity",fEntitys);
        JSONObject  data= new JSONObject();
        data.put("Model",model);
        jsonObject.put("data",data);
        String add = jsonObject.toJSONString();
        //上报
        String response = "";
        boolean success = false;
@@ -74,17 +106,50 @@
                    .setUri(URL)
                    .setPath(outaddressSave)
                    .setJson(add)
                    .setHttps(true)
                    .build()
                    .doPost();
            JSONObject data = JSON.parseObject(response);
//            JSONObject data = JSON.parseObject(response);
            Object IsSuccess = findValueByKey(JSON.parseObject(response), "IsSuccess");
            String bool=IsSuccess.toString();
            //保存完成原订单8转6
            if(bool.equals("true")){
                success = true;
                order.setSettle(6L);
                orderService.update(order,new EntityWrapper<Order>().eq("order_no",order.getOrderNo()));
            String bool1=IsSuccess.toString();
            boolean bool = false;
            //保存完成原订单2转3 3.保存完成
            if(bool1.equals("true")){
                ObjectMapper objectMapper =  new ObjectMapper();
                JsonNode rootNode = objectMapper.readTree(response);
                bool = rootNode.get("Result").get("ResponseStatus").get("IsSuccess").asBoolean();
                //提交完成原订单2转3  3.上报完成
                if(bool){
                    success = true;
                    order.setMemo("3");
                    order.setUpdateTime(new Date());
                    orderService.update(order,new EntityWrapper<Order>().eq("order_no",order.getOrderNo()));
                    for(OrderDetl orderDetl:orderDetls){
                        orderDetl.setPrice(orderDetl.getQty());
                        orderDetl.setUpdateTime(new Date());
                        if(Cools.isEmpty(orderDetl.getBatch())){
                            orderDetlService.update(orderDetl,new EntityWrapper<OrderDetl>()
                                    .eq("order_no",order.getOrderNo())
                                    .eq("matnr",orderDetl.getMatnr()));
                        }else{
                            orderDetlService.update(orderDetl,new EntityWrapper<OrderDetl>()
                                    .eq("order_no",order.getOrderNo())
                                    .eq("matnr",orderDetl.getMatnr())
                                    .eq("batch",orderDetl.getBatch()));
                        }
                    }
                }
            }
//            if (!bool1.equals("true") || !bool){
//                order.setSettle(7L);
//                order.setUpdateTime(new Date());
//                orderService.update(order,new EntityWrapper<Order>().eq("order_no",order.getOrderNo()));
//            }
        } catch (Exception e) {
            log.error("fail", e);
//            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
@@ -93,7 +158,7 @@
            try {
                // 保存接口日志
                apiLogService.save(
                        "保存",
                        "3.保存",
                        URL+ outaddressSave,
                        null,
                        "127.0.0.1",