| | |
| | | |
| | | import com.baomidou.mybatisplus.mapper.EntityWrapper; |
| | | import com.core.common.Cools; |
| | | import com.core.exception.CoolException; |
| | | 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.ints.entity.ErpDetTbBak; |
| | | import com.zy.ints.entity.LkDetTb; |
| | | import com.zy.ints.entity.LkDetTbBak; |
| | | import com.zy.ints.erp.ErpSqlServer; |
| | |
| | | */ |
| | | @Value("${erp.enabled}") |
| | | private Boolean erpEnabled; |
| | | @Value("${erp.useName.ip}") |
| | | private String ip; |
| | | @Autowired |
| | | private ApiLogService apiLogService; |
| | | @Autowired |
| | | private ErpSqlServer erpSqlServer; |
| | | @Autowired |
| | |
| | | private OrderDetlService orderDetlService; |
| | | @Autowired |
| | | private DocTypeService docTypeService; |
| | | |
| | | /** |
| | | * 上报入出库完结订单信息 |
| | | */ |
| | | @Scheduled(cron = "${erp.refreshtime}") |
| | | public void InOrOutOrder() { |
| | | public void reportOrder() { |
| | | if (!erpEnabled) return; |
| | | String sqlSelectLkDetTb = "select bill_no as billNo,prd_no as prdNo,iokindid,add_id as addId,qty,prd_mark as prdMark,wh,billdate,status,temp1,temp2,temp3 from lk_det_tb where 1=1"; |
| | | String sqlSelectLkDetTbBak = "select bill_no as billNo,prd_no as prdNo,iokindid,add_id as addId,qty,prd_mark as prdMark,wh,billdate,status,temp1,temp2,temp3 from lk_det_tb_bak where 1=1"; |
| | | |
| | | try { |
| | | List<Order> orders = orderService.selectList(new EntityWrapper<Order>().eq("settle", 4L)); |
| | | if (orders.size()>0){ |
| | | for (Order order:orders){ |
| | | if (orders.size() > 0) { |
| | | for (Order order : orders) { |
| | | List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId()); |
| | | if (!Cools.isEmpty(orderDetls)){ |
| | | for (OrderDetl orderDetl:orderDetls){ |
| | | if (!Cools.isEmpty(orderDetls)) { |
| | | for (OrderDetl orderDetl : orderDetls) { |
| | | Date now = new Date(); |
| | | List<LkDetTb> lkDetTbs = erpSqlServer.select(sqlSelectLkDetTb+ |
| | | " and bill_no='"+orderDetl.getOrderNo()+"'" + |
| | | " and prd_no='"+orderDetl.getMatnr()+"'" + |
| | | " and prd_mark='"+orderDetl.getBatch()+"'" |
| | | List<LkDetTb> lkDetTbs = erpSqlServer.select(sqlSelectLkDetTb + |
| | | " and bill_no='" + orderDetl.getOrderNo() + "'" + |
| | | " and prd_no='" + orderDetl.getMatnr() + "'" + |
| | | " and prd_mark='" + orderDetl.getBatch() + "'" |
| | | , LkDetTb.class); |
| | | List<LkDetTbBak> lkDetTbBaks = erpSqlServer.select(sqlSelectLkDetTbBak+ |
| | | " and bill_no='"+orderDetl.getOrderNo()+"'" + |
| | | " and prd_no='"+orderDetl.getMatnr()+"'" + |
| | | " and prd_mark='"+orderDetl.getBatch()+"'" |
| | | List<LkDetTbBak> lkDetTbBaks = erpSqlServer.select(sqlSelectLkDetTbBak + |
| | | " and bill_no='" + orderDetl.getOrderNo() + "'" + |
| | | " and prd_no='" + orderDetl.getMatnr() + "'" + |
| | | " and prd_mark='" + orderDetl.getBatch() + "'" |
| | | , LkDetTbBak.class); |
| | | if (lkDetTbs.size() == 1 || lkDetTbBaks.size()==1){ |
| | | log.error("订单号:"+orderDetl.getOrderNo()+"、商品编号:"+orderDetl.getMatnr()+"、货品特征:"+orderDetl.getBatch()+" " + |
| | | "已经上报但是明细依旧存在,请联系开发人员!!!"); |
| | | if (lkDetTbs.size() == 1) { |
| | | callApiLogSaveLkDetTb(lkDetTbs.get(0), "erp_det_tb", "已经上报但是明细依旧存在,请联系开发人员!!!", false); |
| | | continue; |
| | | }else if (lkDetTbs.size()>1 || lkDetTbBaks.size()>1){ |
| | | log.error("相同 订单号:"+orderDetl.getOrderNo()+"、商品编号:"+orderDetl.getMatnr()+"、货品特征:"+orderDetl.getBatch()+" " + |
| | | "存在重复资料,联系开发人员!!!"); |
| | | } else if (lkDetTbBaks.size() == 1) { |
| | | callApiLogSaveLkDetTbBak(lkDetTbBaks.get(0), "erp_det_tb_bak", "已经上报但是明细依旧存在,请联系开发人员!!!", false); |
| | | continue; |
| | | // throw new CoolException("相同 订单号:"+orderDetl.getOrderNo()+"、商品编号:"+orderDetl.getMatnr()+"、货品特征:"+orderDetl.getBatch()+" " + |
| | | // "存在重复资料,联系开发人员!!!"); |
| | | }else { |
| | | } else if (lkDetTbs.size() > 1) { |
| | | callApiLogSaveLkDetTb(lkDetTbs.get(0), "erp_det_tb", "存在重复资料,联系开发人员!!!", false); |
| | | continue; |
| | | } else if (lkDetTbBaks.size() > 1) { |
| | | callApiLogSaveLkDetTbBak(lkDetTbBaks.get(0), "erp_det_tb_bak", "存在重复资料,联系开发人员!!!", false); |
| | | continue; |
| | | } else { |
| | | String format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(now); |
| | | HashMap<String, Object> condition = new HashMap<>(); |
| | | condition.put("bill_no", "'" + orderDetl.getOrderNo() + "'"); |
| | | condition.put("prd_no", "'" + orderDetl.getMatnr() + "'"); |
| | | |
| | | DocType docType = docTypeService.selectById(order.getDocType()); |
| | | if (!Cools.isEmpty(docType)){ |
| | | if (!Cools.isEmpty(docType)) { |
| | | int addid = docType.getPakin() == 1 ? 1 : 2; |
| | | condition.put("iokindid", "'" + docType.getDocName$() + "'"); |
| | | condition.put("add_id", "'" + addid + "'"); |
| | |
| | | condition.put("billdate", "'" + format + "'"); |
| | | condition.put("status", "'" + 0 + "'"); |
| | | erpSqlServer.insert(LkDetTb.class, condition); |
| | | callApiLogSaveOrderDetl(orderDetl, "完结订单明细上报完成", true); |
| | | } |
| | | //保存订单明细历史档 |
| | | if (orderDetlService.addToLogTable(orderDetl)){ |
| | | if (orderDetlService.addToLogTable(orderDetl)) { |
| | | // callApiLogSaveOrderDetl(orderDetl, "保存订单明细历史档成功!", true); |
| | | //删除订单明细 |
| | | orderDetlService.deleteById(orderDetl.getId()); |
| | | callApiLogSaveOrderDetl(orderDetl, "订单明细档保存后删除成功!", true); |
| | | } |
| | | } |
| | | //保存订单历史档 |
| | | if (orderService.addToLogTable(order)){ |
| | | if (orderService.addToLogTable(order)) { |
| | | // callApiLogSaveOrder(order, "完结订单上报完成,并保存订单历史档成功!!!", true); |
| | | //删除完结订单 |
| | | orderService.deleteById(order.getId()); |
| | | callApiLogSaveOrder(order, "完结订单上报完成,并保存订单历史档后删除完结订单成功!!!", true); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | }catch (Exception e){ |
| | | |
| | | } catch (Exception e) { |
| | | Date date = new Date(); |
| | | log.error(date + ": 表名:lk_det_tb :" + e); |
| | | } |
| | | } |
| | | |
| | | public void callApiLogSaveLkDetTb(LkDetTb lkDetTb, String tableName, String response, Boolean bool) { |
| | | apiLogService.save("上报完结订单明细信息", tableName, "null", ip, |
| | | "订单号:" + lkDetTb.getBillNo() + "、品号:" + lkDetTb.getPrdNo() + "、货品特征:" + lkDetTb.getPrdMark() + "、状态:" + lkDetTb.getStatus$(), |
| | | response, bool); |
| | | } |
| | | |
| | | public void callApiLogSaveLkDetTbBak(LkDetTbBak lkDetTbBak, String tableName, String response, Boolean bool) { |
| | | apiLogService.save("上报完结订单明细信息", tableName, "null", ip, |
| | | "订单号:" + lkDetTbBak.getBillNo() + "、品号:" + lkDetTbBak.getPrdNo() + "、货品特征:" + lkDetTbBak.getPrdMark() + "、状态:" + lkDetTbBak.getStatus$(), |
| | | response, bool); |
| | | } |
| | | |
| | | public void callApiLogSaveOrderDetl(OrderDetl orderDetl, String response, Boolean bool) { |
| | | apiLogService.save("上报完结订单明细信息", "lk_det_tb", "null", ip, |
| | | "订单号:" + orderDetl.getOrderNo() + "、品号:" + orderDetl.getMatnr() + "、货品特征:" + orderDetl.getBatch(), |
| | | response, bool); |
| | | } |
| | | |
| | | public void callApiLogSaveOrder(Order order, String response, Boolean bool) { |
| | | apiLogService.save("完结订单信息上报完成", "lk_det_tb", "null", ip, |
| | | "订单号:" + order.getOrderNo(), response, bool); |
| | | } |
| | | } |