自动化立体仓库 - WMS系统
#
zjj
2024-11-13 5eb83797abed1a572ca59cb2972171b18e3d46b2
src/main/java/com/zy/asrs/task/kingdee/handler/PushDowmOrderSyncHandler.java
@@ -4,10 +4,15 @@
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.common.Cools;
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,7 +24,9 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Set;
/**
@@ -38,6 +45,8 @@
    @Autowired
    private OrderService orderService;
    @Autowired
    private OrderDetlService orderDetlService;
    @Autowired
    private ApiLogService apiLogService;
    @Autowired
@@ -60,11 +69,33 @@
        }
        KingDeeUtilType kingDeeUtilType = KingDeeUtilType.get(docType.getDocName());
        if (kingDeeUtilType.entryId>1){
            Order order1 = orderService.selectById(order.getId());
            order1.setUpdateTime(new Date());
            orderService.updateById(order1);
            return SUCCESS;
        }
        //条件拼接
        log.info("条件拼接");
        String entryIds = null;
        if (kingDeeUtilType.entryId==1){
            List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId());
            for (OrderDetl orderDetl:orderDetls){
                if (Cools.isEmpty(entryIds)){
                    entryIds = orderDetl.getBeBatch().toString();
                }else {
                    entryIds = entryIds+"," +orderDetl.getBeBatch();
                }
            }
            orderNoS = "";
        }
        if (Cools.isEmpty(entryIds)){
            entryIds = "";
        }
        JSONObject dataJsonObject = new JSONObject();
        dataJsonObject.put("Numbers",orderNoS);
        dataJsonObject.put("EntryIds","");
        dataJsonObject.put("EntryIds",entryIds);
        dataJsonObject.put("RuleId",kingDeeUtilType.ruleId);
        dataJsonObject.put("TargetFormId",kingDeeUtilType.correspondingFormId);
@@ -90,16 +121,31 @@
                    .setHttps(true)
                    .build()
                    .doPost();
            JSONObject data = JSON.parseObject(response);
//            JSONObject data = JSON.parseObject(response);
            log.info("下推response:"+response);
            Object IsSuccess = findValueByKey(JSON.parseObject(response), "IsSuccess");
            String bool=IsSuccess.toString();
            //下推完成原订单4转6  6.上报完成
            if(bool.equals("true")){
                success = true;
                order.setSettle(6L);
            String bool1=IsSuccess.toString();
            boolean bool = false;
            if (bool1.equals("true")){
                ObjectMapper objectMapper =  new ObjectMapper();
                JsonNode rootNode = objectMapper.readTree(response);
                bool = rootNode.get("Result").get("ResponseStatus").get("IsSuccess").asBoolean();
                //下推完成原订单4转6  6.上报完成
                if(bool){
                    success = true;
                    order.setSettle(6L);
                    order.setUpdateTime(new Date());
                    orderService.update(order,new EntityWrapper<Order>().eq("order_no",order.getOrderNo()));
                }
            }
            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.info("下推error:"+response);
            log.error("fail", e);