自动化立体仓库 - WMS系统
#
LSH
2023-12-27 9b14697f5146ade2e81db8269824f79c9bc6ac62
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;
/**
@@ -39,6 +46,8 @@
    @Autowired
    private OrderService orderService;
    @Autowired
    private OrderDetlService orderDetlService;
    @Autowired
    private ApiLogService apiLogService;
    @Autowired
    private DocTypeService docTypeService;
@@ -51,7 +60,9 @@
        String[] split = orderNo.split("-");
        String orderNoS = split[0];
        //登录金蝶r
        log.info("登录金蝶");
        ReturnT<String> start = loginAuthenticationHandler.start();
        log.info("登录金蝶:start:"+start);
        DocType docType = docTypeService.selectById(order.getDocType());
        if (null == docType) {
            return SUCCESS;
@@ -59,9 +70,26 @@
        KingDeeUtilType kingDeeUtilType = KingDeeUtilType.get(docType.getDocName());
        //条件拼接
        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);
@@ -69,7 +97,10 @@
        jsonObject.put("FormId",kingDeeUtilType.formId);
        jsonObject.put("data", dataJsonObject);
        String add = jsonObject.toJSONString();
        log.info("条件拼接:"+jsonObject);
        //下推
        log.info("下推");
        String response = "";
        boolean success = false;
        try {
@@ -81,18 +112,27 @@
                    .setUri(URL)
                    .setPath(pushDowmAudit)
                    .setJson(add)
                    .setHttps(true)
                    .build()
                    .doPost();
            JSONObject data = JSON.parseObject(response);
            Object IsSuccess = findValueByKey(JSON.parseObject(response), "IsSuccess");
            String bool=IsSuccess.toString();
//            JSONObject data = JSON.parseObject(response);
            log.info("下推response:"+response);
//            Object IsSuccess = findValueByKey(JSON.parseObject(response), "IsSuccess");
//            String bool=IsSuccess.toString();
            ObjectMapper objectMapper =  new ObjectMapper();
            JsonNode rootNode = objectMapper.readTree(response);
            boolean bool = rootNode.get("Result").get("ResponseStatus").get("IsSuccess").asBoolean();
            log.info("下推bool:"+bool);
            //下推完成原订单4转6  6.上报完成
            if(bool.equals("true")){
            if(bool){
                success = true;
                order.setSettle(6L);
                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);
//            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
            return FAIL.setMsg(e.getMessage());