| | |
| | | package com.zy.ints.task.scheduler; |
| | | |
| | | 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.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; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | |
| | | import org.springframework.scheduling.annotation.Scheduled; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.Date; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | |
| | | /** |
| | |
| | | private Boolean erpEnabled; |
| | | @Autowired |
| | | private ErpSqlServer erpSqlServer; |
| | | @Autowired |
| | | private OrderService orderService; |
| | | @Autowired |
| | | private OrderDetlService orderDetlService; |
| | | @Autowired |
| | | private DocTypeService docTypeService; |
| | | /** |
| | | * 上报入出库完结订单信息 |
| | | */ |
| | |
| | | public void InOrOutOrder() { |
| | | 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 sqlUpDateLkDetTbOne = "update lk_det_tb set status=1 where prd_no="; |
| | | String sqlUpDateLkDetTbTwo = "update lk_det_tb set status=2 where prd_no="; |
| | | 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<LkDetTb> lkDetTbs = erpSqlServer.select(sqlSelectLkDetTb, LkDetTb.class); |
| | | if (lkDetTbs.size() > 0){ |
| | | for (LkDetTb lkDetTb:lkDetTbs){ |
| | | Integer status = lkDetTb.getStatus(); |
| | | if (status == 0){ |
| | | |
| | | }else if (status == 1){ |
| | | |
| | | }else if (status == 2){ |
| | | |
| | | List<Order> orders = orderService.selectList(new EntityWrapper<Order>().eq("settle", 4L)); |
| | | if (orders.size()>0){ |
| | | for (Order order:orders){ |
| | | List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId()); |
| | | 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()+"'" |
| | | , LkDetTb.class); |
| | | 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()+" " + |
| | | "已经上报但是明细依旧存在,请联系开发人员!!!"); |
| | | continue; |
| | | }else if (lkDetTbs.size()>1 || lkDetTbBaks.size()>1){ |
| | | log.error("相同 订单号:"+orderDetl.getOrderNo()+"、商品编号:"+orderDetl.getMatnr()+"、货品特征:"+orderDetl.getBatch()+" " + |
| | | "存在重复资料,联系开发人员!!!"); |
| | | continue; |
| | | // throw new CoolException("相同 订单号:"+orderDetl.getOrderNo()+"、商品编号:"+orderDetl.getMatnr()+"、货品特征:"+orderDetl.getBatch()+" " + |
| | | // "存在重复资料,联系开发人员!!!"); |
| | | }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)){ |
| | | int addid = docType.getPakin() == 1 ? 1 : 2; |
| | | condition.put("iokindid", "'" + docType.getDocName$() + "'"); |
| | | condition.put("add_id", "'" + addid + "'"); |
| | | } |
| | | |
| | | condition.put("qty", "'" + orderDetl.getQty() + "'"); |
| | | condition.put("prd_mark", "'" + orderDetl.getBatch() + "'"); |
| | | condition.put("wh", "'" + orderDetl.getMemo() + "'"); |
| | | condition.put("billdate", "'" + format + "'"); |
| | | condition.put("status", "'" + 0 + "'"); |
| | | erpSqlServer.insert(LkDetTb.class, condition); |
| | | } |
| | | //保存订单明细历史档 |
| | | if (orderDetlService.addToLogTable(orderDetl)){ |
| | | //删除订单明细 |
| | | orderDetlService.deleteById(orderDetl.getId()); |
| | | } |
| | | } |
| | | //保存订单历史档 |
| | | if (orderService.addToLogTable(order)){ |
| | | //删除完结订单 |
| | | orderService.deleteById(order.getId()); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | }catch (Exception e){ |
| | | |
| | | } |