|  |  |  | 
|---|
|  |  |  | import com.baomidou.mybatisplus.mapper.EntityWrapper; | 
|---|
|  |  |  | import com.core.common.Cools; | 
|---|
|  |  |  | import com.zy.asrs.entity.DocType; | 
|---|
|  |  |  | import com.zy.asrs.entity.Mat; | 
|---|
|  |  |  | import com.zy.asrs.entity.Order; | 
|---|
|  |  |  | import com.zy.asrs.service.AgvLocDetlService; | 
|---|
|  |  |  | import com.zy.asrs.service.DocTypeService; | 
|---|
|  |  |  | import com.zy.asrs.service.MatService; | 
|---|
|  |  |  | import com.zy.asrs.service.OrderService; | 
|---|
|  |  |  | 
|---|
|  |  |  | private AutoReplenishmentHandler autoReplenishmentHandler; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private MatService matService; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private AgvLocDetlService agvLocDetlService; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /* | 
|---|
|  |  |  | 定时便利库存,生成自动补货单据 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | //@Scheduled(cron = "0/5 * * * * ? ") | 
|---|
|  |  |  | public void createOrder(){ | 
|---|
|  |  |  | //检测是否有未完成的补货单据 | 
|---|
|  |  |  | DocType docType = docTypeService.selectOne(new EntityWrapper<DocType>().eq("doc_name", "自动补货单")); | 
|---|
|  |  |  | int count = orderService.selectCount(new EntityWrapper<Order>() | 
|---|
|  |  |  | .eq("doc_type", docType.getDocId()) | 
|---|
|  |  |  | .andNew().eq("settle",2) | 
|---|
|  |  |  | .or("settle",1)); | 
|---|
|  |  |  | if(count > 0){ | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //查询所有需要补货的物料 | 
|---|
|  |  |  | List<Mat> matList = matService.selectList(new EntityWrapper<Mat>().eq(false, "store_min", 0)); | 
|---|
|  |  |  | if(!Cools.isEmpty(matList)){ | 
|---|
|  |  |  | for (Mat mat : matList){ | 
|---|
|  |  |  | //查询当前物料是否在agv库小于库存上限 | 
|---|
|  |  |  | Double anfmeSum = agvLocDetlService.selectSumAnfmeByMatnr(mat.getMatnr()); | 
|---|
|  |  |  | if(anfmeSum < mat.getStoreMin()){ | 
|---|
|  |  |  | autoReplenishmentHandler.create(mat,mat.getStoreMax() - anfmeSum); | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /* | 
|---|