自动化立体仓库 - WMS系统
*
lsh
3 天以前 bbf11a79fce0131aa95905c09b00f25e7696d20b
src/main/java/com/zy/asrs/task/handler/OrderToLineHandler.java
@@ -2,20 +2,30 @@
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.common.Cools;
import com.core.common.SpringUtils;
import com.core.exception.CoolException;
import com.zy.asrs.entity.ApiLog;
import com.zy.asrs.entity.param.ArmPrecomputeParam;
import com.zy.asrs.entity.param.OrderToLine;
import com.zy.asrs.service.ApiLogService;
import com.zy.asrs.service.BasArmRulesService;
import com.zy.asrs.service.OrderPakinService;
import com.zy.asrs.service.OrderService;
import com.zy.asrs.task.AbstractHandler;
import com.zy.asrs.task.core.ReturnT;
import com.zy.common.utils.HttpHandler;
import com.zy.common.utils.IpTools;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
@Slf4j
@Service
@@ -24,7 +34,7 @@
    @Autowired
    private ApiLogService apiLogService;
    @Autowired
    private OrderService orderService;
    private OrderPakinService orderPakinService;
    @Value("${line.address.URL}")
    //端口
@@ -39,7 +49,10 @@
            String response = "";
            boolean success = false;
            try {
                Map<String, Object> map = new HashMap<>();
                map.put("appkey","ea1f0459efc02a79f046f982767939ae");
                response = new HttpHandler.Builder()
                        .setHeaders(map)
                        .setUri(URL)
                        .setPath(Path)
                        .setJson(JSON.toJSONString(orderToline))
@@ -48,26 +61,43 @@
                JSONObject jsonObject = JSON.parseObject(response);
                if (jsonObject.getInteger("code").equals(200)) {
                    success = true;
                    orderService.updateOrderStatus(orderToline.getOrderNo());   //更新订单状态 0 -> 1
                    orderPakinService.updateOrderStatus(orderToline.getOrderNo());   //更新订单状态 0 -> 1
                } else {
                    log.error("下发单据!!!url:{};request:{};response:{}", URL+Path, JSON.toJSONString(orderToline), response);
                    throw new CoolException("下发单据失败");
                }
            } catch (Exception e) {
                log.error("fail", e);
                return FAIL.setMsg(e.getMessage());
                try{
                    log.error("fail==>下发单据至分拣线:"+e.getLocalizedMessage());
                } catch (Exception e1){
                }
//                return FAIL.setMsg(e.getLocalizedMessage());
                return FAIL;
            } finally {
                try {
                    // 保存接口日志
                    apiLogService.save(
                            "下发单据至分拣线",
                            URL + Path,
                            null,
                            "127.0.0.1",
                            JSON.toJSONString(orderToline),
                            response,
                            success
                    );
                    if (success){
                        // 保存接口日志
                        apiLogService.save(
                                "下发单据至分拣线",
                                URL +"/"+ Path,
                                null,
                                "127.0.0.1",
                                JSON.toJSONString(orderToline),
                                response,
                                success
                        );
                    } else {
                        beforeBodyWriteCallApiLogSave(
                                "下发单据至分拣线",
                                URL +"/"+ Path,
                                null,
                                "127.0.0.1",
                                JSON.toJSONString(orderToline),
                                response,
                                success
                        );
                    }
                } catch (Exception e) { log.error("", e); }
            }
        }catch (Exception e){
@@ -75,4 +105,30 @@
        }
        return SUCCESS;
    }
    public void beforeBodyWriteCallApiLogSave(String name, String url, String appkey, String ip, String request, String response, boolean success) {
        ApiLog apiLog = apiLogService.selectOne(new EntityWrapper<ApiLog>()
                .eq("namespace", name)
                .eq("response", response)
                .eq("result", success? 1:0)
                .orderBy("create_time", false)
        );
        if (!Cools.isEmpty(apiLog)){
            long parseLong = Long.parseLong(apiLog.getTimestamp());
            if (new Date().getTime()-parseLong<5*1000*60){
                return;
            }
        }
        // 保存接口日志
        apiLogService.save(
                name,
                url,
                appkey,
                ip,
                request,
                response,
                success
        );
    }
}