| | |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.alibaba.fastjson.JSONArray; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.zy.asrs.entity.DocType; |
| | | import com.zy.asrs.entity.OrderDetlPakin; |
| | | import com.zy.asrs.entity.OrderDetlPakout; |
| | | import com.zy.asrs.entity.OrderPakout; |
| | | import com.baomidou.mybatisplus.mapper.EntityWrapper; |
| | | import com.zy.asrs.entity.*; |
| | | import com.zy.asrs.mapper.OrderDetlPakoutMapper; |
| | | import com.zy.asrs.service.ApiLogService; |
| | | import com.zy.asrs.service.DocTypeService; |
| | | import com.zy.asrs.service.OrderDetlPakoutService; |
| | |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | | * Created by vincent on 2020/7/7 |
| | |
| | | } |
| | | } |
| | | |
| | | @Resource |
| | | private OrderDetlPakoutMapper orderDetlPakoutMapper; |
| | | |
| | | public void completeOrderReport() { |
| | | List<OrderPakout> orderPakouts = orderPakoutService.selectList(new EntityWrapper<OrderPakout>().where("settle = 4")); |
| | | |
| | | // 使用 removeIf 简化代码 |
| | | orderPakouts.removeIf(orderPakout -> orderDetlPakoutMapper.selectReportComplete(orderPakout.getId()) == 0); |
| | | |
| | | // 对剩余数据进行settle设置 |
| | | orderPakouts.forEach(orderPakin -> orderPakin.setSettle(6L)); |
| | | |
| | | // 批量更新 |
| | | if (!orderPakouts.isEmpty()) { |
| | | orderPakoutService.updateBatchById(orderPakouts); |
| | | } |
| | | } |
| | | |
| | | public void reportOutStockOrders(List<OrderDetlPakout> orderDetlPakoutList) { |
| | | // 按订单分组 |
| | | Map<String, List<OrderDetlPakout>> listMap = orderDetlPakoutList.stream().collect(Collectors.groupingBy(OrderDetlPakout::getOrderNo)); |
| | | |
| | | // 构造请求体 |
| | | JSONArray param = new JSONArray(); |
| | | for (Map.Entry<String, List<OrderDetlPakout>> entry : listMap.entrySet()) { |
| | | JSONObject object = new JSONObject(); |
| | | object.put("orderNo", entry.getKey()); |
| | | List<OrderDetlPakout> orderDetlPakouts = entry.getValue(); |
| | | JSONArray detl = new JSONArray(); |
| | | for (OrderDetlPakout orderDetlPakout : orderDetlPakouts) { |
| | | JSONObject detlObject = new JSONObject(); |
| | | detlObject.put("sku", orderDetlPakout.getSku()); |
| | | detlObject.put("standby1", orderDetlPakout.getStandby1()); |
| | | detlObject.put("matnr", orderDetlPakout.getMatnr()); |
| | | detlObject.put("batch", orderDetlPakout.getBatch()); |
| | | detlObject.put("anfme", orderDetlPakout.getQty() - orderDetlPakout.getUnits() ); |
| | | detl.add(detlObject); |
| | | } |
| | | object.put("matList", detl); |
| | | param.add(object); |
| | | } |
| | | |
| | | String response = ""; |
| | | boolean success = false; |
| | | String errorMsg = null; |
| | | String requestJson = param.toJSONString(); |
| | | String url = loadingConfigTimer.getErpReportURL() + loadingConfigTimer.getErpOutReportPath(); |
| | | String nameSpaces = "出库单上报"; |
| | | try { |
| | | |
| | | response = new HttpHandler.Builder() |
| | | .setUri(loadingConfigTimer.getErpReportURL()) |
| | | .setPath(loadingConfigTimer.getErpOutReportPath()) |
| | | .setJson(requestJson) |
| | | .build() |
| | | .doPost(); |
| | | JSONObject jsonObject = JSON.parseObject(response); |
| | | if (jsonObject.getString("code") != null && jsonObject.getString("code").equals("200")) { |
| | | // 批量更新units 上报数量 |
| | | List<OrderDetlPakout> collect = orderDetlPakoutList.stream().peek(orderDetlPakout -> orderDetlPakout.setUnits(orderDetlPakout.getQty())).collect(Collectors.toList()); |
| | | orderDetlPakoutService.updateBatchById(collect); |
| | | success = true; |
| | | } else { |
| | | errorMsg = response; |
| | | log.error(nameSpaces + "调用外部接口失败,url:{},request:{},response:{}", url, requestJson, response); |
| | | } |
| | | } catch (Exception e) { |
| | | errorMsg = e.getMessage(); |
| | | log.error(nameSpaces + "调用外部接口异常,url:{},request:{},response:{}", url, requestJson, response, e); |
| | | } finally { |
| | | try { |
| | | apiLogService.save( |
| | | nameSpaces, |
| | | url, |
| | | null, |
| | | "127.0.0.1", |
| | | requestJson, |
| | | response, |
| | | success, |
| | | errorMsg |
| | | ); |
| | | } catch (Exception e) { |
| | | log.error(nameSpaces + "保存接口日志失败", e); |
| | | } |
| | | } |
| | | } |
| | | } |