| | |
| | | package com.zy.ints.task.scheduler; |
| | | |
| | | import com.baomidou.mybatisplus.mapper.EntityWrapper; |
| | | import com.core.common.Cools; |
| | | import com.core.common.DateUtils; |
| | | import com.core.common.SnowflakeIdWorker; |
| | | import com.zy.asrs.entity.DocType; |
| | | import com.zy.asrs.entity.Mat; |
| | | import com.zy.asrs.entity.Order; |
| | | import com.zy.asrs.entity.OrderDetl; |
| | | import com.zy.asrs.entity.*; |
| | | import com.zy.asrs.service.*; |
| | | import com.zy.ints.entity.ErpDetTb; |
| | | import com.zy.ints.entity.ErpDetTbBak; |
| | |
| | | @Scheduled(cron = "${erp.refreshtime}") |
| | | public void InOrOutOrder() { |
| | | if (!erpEnabledErpDetTb) return; |
| | | String sqlSelectErpDetTb = "select BIL_NO as billNo,prd_no as prdNo,ITM as itm,ADD_ID as addId2,QTY as qty,PRD_MARK as prdMark,WH as wh,BIL_DATE as billdate,STATUS as status,Temp1 as temp1,Temp2 as temp2,Temp3 as temp3 from ERP_DETTB where 1=1"; |
| | | String sqlSelectErpDetTb = "select BIL_NO as billNo,prd_no as prdNo,ITM as itm,ADD_ID as addId2,QTY as qty,PRD_MARK as prdMark,WH as wh,STATUS as status,Temp1 as temp1,Temp2 as temp2,Temp3 as temp3 from ERP_DETTB where 1=1"; |
| | | String sqlUpDateErpDetTbOne = "update ERP_DETTB set STATUS=1 where 1=1 and PRD_NO="; |
| | | String sqlUpDateErpDetTbTwo = "update ERP_DETTB set STATUS=2 "; |
| | | |
| | |
| | | if (status == 0) { |
| | | Mat mat = matService.selectByMatnr(erpDetTb.getPrdNo()); |
| | | if (Cools.isEmpty(mat)) { |
| | | erpSqlServer.update(sqlUpDateErpDetTbTwo + ",Temp1='品号信息在立库不存在,请先添加商品!!!'" + "where 1=1 and PRD_NO=" + "'" + erpDetTb.getPrdNo() + "'"); |
| | | callApiLogSave(erpDetTb, "ERP_DETTB", "品号信息在立库不存在,请先添加商品!!!", false); |
| | | if(Cools.isEmpty(erpDetTb.getTemp1())){ |
| | | erpSqlServer.update(sqlUpDateErpDetTbTwo + ",Temp1='品号信息在立库不存在,请先添加商品!!!'" + "where 1=1 " |
| | | +" and PRD_NO=" + "'" + erpDetTb.getPrdNo() + "'" |
| | | +" and ITM=" + "'" + erpDetTb.getItm() + "'" |
| | | +" and BIL_NO=" + "'" + erpDetTb.getBillNo() + "'"); |
| | | callApiLogSave(erpDetTb, "ERP_DETTB", "品号信息在立库不存在,请先添加商品!!!", false); |
| | | } |
| | | } else { |
| | | Order order = orderService.selectByNo(erpDetTb.getBillNo()); |
| | | Order order = orderService.selectByNo(erpDetTb.getBillNo()+"---"+erpDetTb.getItm()); |
| | | if (Cools.isEmpty(order)) { |
| | | order = new Order( |
| | | String.valueOf(snowflakeIdWorker.nextId()), // 编号[非空] |
| | | erpDetTb.getBillNo(), // 订单编号 |
| | | erpDetTb.getBillNo()+"---"+erpDetTb.getItm(), // 订单编号 |
| | | DateUtils.convert(now), // 单据日期 |
| | | null, // 单据类型 |
| | | null, // 项目编号 |
| | |
| | | now, // 修改时间 |
| | | null // 备注 |
| | | ); |
| | | String InAndOut = erpDetTb.getAddId2()==2 ? "(出库)" : "(入库)"; |
| | | DocType docType = docTypeService.selectOrAdd("ERP订单"+InAndOut, erpDetTb.getAddId().equals("1")); |
| | | String InAndOut = erpDetTb.getAddId2().equals(2) ? "(出库)" : "(入库)"; |
| | | DocType docType = docTypeService.selectOrAdd("ERP订单"+InAndOut, erpDetTb.getAddId2().equals(1)); |
| | | if (!Cools.isEmpty(docType)) { |
| | | order.setDocType(docType.getDocId()); |
| | | if (!orderService.insert(order)) { |
| | |
| | | } |
| | | } |
| | | } |
| | | Order order1 = orderService.selectByNo(erpDetTb.getBillNo()); |
| | | Order order1 = orderService.selectByNo(erpDetTb.getBillNo()+"---"+erpDetTb.getItm()); |
| | | if (!Cools.isEmpty(order1)) { |
| | | OrderDetl orderDetl = orderDetlService.selectItem(order1.getId(), erpDetTb.getBillNo(), erpDetTb.getPrdMark()); |
| | | // OrderDetl orderDetl = orderDetlService.selectItem(order1.getId(), erpDetTb.getBillNo(), erpDetTb.getPrdMark()); |
| | | OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("order_no",erpDetTb.getBillNo()+"---"+erpDetTb.getItm()).eq("matnr",erpDetTb.getPrdNo())); |
| | | if (Cools.isEmpty(orderDetl)) { |
| | | orderDetl = new OrderDetl(); |
| | | orderDetl.setOrderId(order1.getId()); |
| | | orderDetl.setOrderNo(erpDetTb.getBillNo()); |
| | | orderDetl.setOrderNo(erpDetTb.getBillNo()+"---"+erpDetTb.getItm()); |
| | | orderDetl.setAnfme(erpDetTb.getQty()); |
| | | orderDetl.setQty(0.0D); |
| | | orderDetl.setMatnr(erpDetTb.getPrdNo()); |
| | |
| | | orderDetl.setBatch(erpDetTb.getPrdMark()); |
| | | orderDetl.setSpecs(mat.getSpecs()); |
| | | orderDetl.setUnit(mat.getUnit()); |
| | | orderDetl.setOrigin(erpDetTb.getItm().toString()); |
| | | |
| | | orderDetl.setStatus(1); |
| | | orderDetl.setCreateBy(9999L); |
| | |
| | | erpSqlServer.update(sqlUpDateErpDetTbOne + "'" + erpDetTb.getPrdNo() + "'"); |
| | | callApiLogSave(erpDetTb, "ERP_DETTB", "接收ERP下发订单接收成功!!", true); |
| | | } else { |
| | | erpSqlServer.update(sqlUpDateErpDetTbTwo + ",temp1='添加订单明细档失败!!!'" + "where 1=1 and PRD_NO=" + "'" + erpDetTb.getPrdNo() + "'"); |
| | | if (Cools.isEmpty(erpDetTb.getTemp2())){ |
| | | erpSqlServer.update(sqlUpDateErpDetTbTwo + ",temp2='添加订单明细档失败!!!'" + "where 1=1 " |
| | | +" and PRD_NO=" + "'" + erpDetTb.getPrdNo() + "'" |
| | | +" and ITM=" + "'" + erpDetTb.getItm() + "'" |
| | | +" and BIL_NO=" + "'" + erpDetTb.getBillNo() + "'"); |
| | | callApiLogSave(erpDetTb, "ERP_DETTB", "ERP下发订单接收失败!!", false); |
| | | } |
| | | } |
| | | }else if (!erpDetTb.getItm().toString().equals(orderDetl.getOrigin())){ |
| | | orderDetl.setAnfme(orderDetl.getAnfme()+erpDetTb.getQty()); |
| | | EntityWrapper<OrderDetl> wrapper = new EntityWrapper<>(); |
| | | wrapper.eq("id", orderDetl.getId()); |
| | | if (orderDetlService.update(orderDetl,wrapper)) { |
| | | erpSqlServer.update(sqlUpDateErpDetTbOne + "'" + erpDetTb.getPrdNo() + "'"); |
| | | callApiLogSave(erpDetTb, "ERP_DETTB", "接收ERP下发订单接收成功!!", true); |
| | | } else { |
| | | if (Cools.isEmpty(erpDetTb.getTemp2())){ |
| | | erpSqlServer.update(sqlUpDateErpDetTbTwo + ",temp2='更新订单明细档失败!!!'" + "where 1=1 " |
| | | +" and PRD_NO=" + "'" + erpDetTb.getPrdNo() + "'" |
| | | +" and ITM=" + "'" + erpDetTb.getItm() + "'" |
| | | +" and BIL_NO=" + "'" + erpDetTb.getBillNo() + "'"); |
| | | callApiLogSave(erpDetTb, "ERP_DETTB", "ERP下发订单接收失败!!", false); |
| | | } |
| | | } |
| | | }else { |
| | | if (Cools.isEmpty(erpDetTb.getTemp3())){ |
| | | erpSqlServer.update(sqlUpDateErpDetTbTwo + ",temp3='更新订单明细档失败!!!订单明细已存在!!'" + "where 1=1 " |
| | | +" and PRD_NO=" + "'" + erpDetTb.getPrdNo() + "'" |
| | | +" and ITM=" + "'" + erpDetTb.getItm() + "'" |
| | | +" and BIL_NO=" + "'" + erpDetTb.getBillNo() + "'"); |
| | | callApiLogSave(erpDetTb, "ERP_DETTB", "ERP下发订单接收失败!!", false); |
| | | } |
| | | } |
| | |
| | | condition2.put("BIL_NO", "'" + erpDetTb.getBillNo() + "'"); |
| | | condition2.put("PRD_NO", "'" + erpDetTb.getPrdNo() + "'"); |
| | | condition2.put("ITM", "'" + erpDetTb.getItm() + "'"); |
| | | condition2.put("PRD_MARK", "'" + erpDetTb.getPrdMark() + "'"); |
| | | // condition2.put("PRD_MARK", "'" + erpDetTb.getPrdMark() + "'"); |
| | | erpSqlServer.delete(ErpDetTb.class, condition2); |
| | | |
| | | // callApiLogSave(erpDetTb, "ERP_DETTB", "ERP下发订单备份后删除成功!!", true); |
| | | |
| | | } else { |
| | | callApiLogSave(erpDetTb, "ERP_DETTB", "接收ERP下发订单失败!!!状态异常!!!", false); |
| | | if (Cools.isEmpty(erpDetTb.getTemp1()) && Cools.isEmpty(erpDetTb.getTemp2()) && Cools.isEmpty(erpDetTb.getTemp3())){ |
| | | erpSqlServer.update(sqlUpDateErpDetTbTwo + ",Temp1='接收ERP下发订单失败!!!状态异常!!!请ERP、立库双方协助解决。'" + "where 1=1 " |
| | | +" and PRD_NO=" + "'" + erpDetTb.getPrdNo() + "'" |
| | | +" and ITM=" + "'" + erpDetTb.getItm() + "'" |
| | | +" and BIL_NO=" + "'" + erpDetTb.getBillNo() + "'"); |
| | | callApiLogSave(erpDetTb, "ERP_DETTB", "接收ERP下发订单失败!!!状态异常!!!", false); |
| | | } |
| | | } |
| | | } |
| | | } |