自动化立体仓库 - WMS系统
#
zjj
6 天以前 4b6e6d95ae6fbbccc4351db366b99fa05288877f
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,17 +60,41 @@
        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;
        }
        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;
//        }
        //条件拼接
        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);
@@ -70,6 +103,7 @@
        jsonObject.put("data", dataJsonObject);
        String add = jsonObject.toJSONString();
        //下推
        log.info("下推");
        String response = "";
        boolean success = false;
        try {
@@ -81,18 +115,36 @@
                    .setUri(URL)
                    .setPath(pushDowmAudit)
                    .setJson(add)
                    .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);
                orderService.update(order,new EntityWrapper<Order>().eq("order_no",order.getOrderNo()));
            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();
                //下推完成原订单0转1  1.下推完成
                if(bool){
                    //获取下推订单号
                    String number=rootNode.get("Result").get("ResponseStatus").get("SuccessEntitys").get(0).get("Number").asText();
                    int id=Integer.valueOf(rootNode.get("Result").get("ResponseStatus").get("SuccessEntitys").get(0).get("Id").asText());
                    success = true;
//                    order.setSettle(6L);
                    order.setMemo("1");
                    order.setShipCode(number);//下推订单号
                    order.setPostFeeType(id);//下推ID
                    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());
@@ -100,7 +152,7 @@
            try {
                // 保存接口日志
                apiLogService.save(
                        "下推",
                        "1.下推",
                        URL+ pushDowmAudit,
                        null,
                        "127.0.0.1",