|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 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; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private ApiLogService apiLogService; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private OrderService orderService; | 
|---|
|  |  |  | private OrderPakinService orderPakinService; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Value("${line.address.URL}") | 
|---|
|  |  |  | //端口 | 
|---|
|  |  |  | 
|---|
|  |  |  | 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){ | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 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 | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|