| | |
| | | import com.zy.asrs.utils.MatUtils; |
| | | import com.zy.common.model.DetlDto; |
| | | import com.zy.common.utils.NodeUtils; |
| | | import lombok.Synchronized; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | |
| | | private WrkDetlService wrkDetlService; |
| | | @Autowired |
| | | private ReportQueryMapper reportQueryMapper; |
| | | @Autowired |
| | | private AgvLocMastService agvLocMastService; |
| | | @Autowired |
| | | private AgvLocDetlService agvLocDetlService; |
| | | |
| | | @Override |
| | | @Transactional |
| | |
| | | } |
| | | OrderDetl orderDetl = new OrderDetl(); |
| | | orderDetl.sync(mat); |
| | | if (!Cools.isEmpty(detlDto.getCFree1())){ |
| | | orderDetl.setSpecs(detlDto.getCFree1()); |
| | | } |
| | | orderDetl.setBatch(detlDto.getBatch()); |
| | | orderDetl.setAnfme(detlDto.getAnfme()); |
| | | orderDetl.setOrderId(order.getId()); |
| | |
| | | return true; |
| | | } |
| | | |
| | | @Override |
| | | @Transactional |
| | | @Synchronized |
| | | public boolean checkAndAdjustLocDetl(CheckParam params) { |
| | | |
| | | //判断库位是否存在 |
| | | AgvLocMast agvLocMast = agvLocMastService.selectById(params.getLocNo()); |
| | | if(Cools.isEmpty(agvLocMast)){ |
| | | throw new CoolException("库位号不存在"); |
| | | } |
| | | |
| | | if(!Cools.eq("O",agvLocMast.getLocSts()) && !Cools.eq("F",agvLocMast.getLocSts())){ |
| | | throw new CoolException("当前库位正在作业中,无法盘点调整"); |
| | | } |
| | | |
| | | if(Cools.isEmpty(params.getLocDetls())){ |
| | | agvLocMast.setLocSts("O"); |
| | | }else { |
| | | agvLocMast.setLocSts("F"); |
| | | } |
| | | |
| | | agvLocMastService.updateById(agvLocMast); |
| | | |
| | | //删除旧库存 |
| | | agvLocDetlService.delete(new EntityWrapper<AgvLocDetl>().eq("loc_no",params.getLocNo())); |
| | | |
| | | //新增盘点库存 |
| | | for (DetlDto detlDto : params.getLocDetls()){ |
| | | AgvLocDetl agvLocDetl = new AgvLocDetl(); |
| | | Mat mat = matService.selectByMatnr(detlDto.getMatnr()); |
| | | BeanUtils.copyProperties(mat,agvLocDetl); |
| | | agvLocDetl.setLocNo(params.getLocNo()); |
| | | agvLocDetl.setSuppCode(params.getContainerCode()); |
| | | agvLocDetl.setAnfme(detlDto.getAnfme()); |
| | | agvLocDetl.setBatch(detlDto.getBatch()); |
| | | agvLocDetl.setThreeCode(detlDto.getCsocode()); |
| | | agvLocDetl.setDeadTime(detlDto.getIsoseq()); |
| | | agvLocDetlService.insert(agvLocDetl); |
| | | } |
| | | |
| | | return true; |
| | | } |
| | | |
| | | private Order orderMapping(OrderSyncParam param, Date now, boolean pakin, String docName){ |
| | | Order order = new Order(); |
| | | //uuid |
| | |
| | | //单据日期 |
| | | order.setOrderTime(param.getDdate()); |
| | | |
| | | //供应商编码 |
| | | order.setSalesman(param.getCVenCode()); |
| | | |
| | | order.setMemo(param.getCMemo()); |
| | | //制单人 |
| | | order.setShipCode(param.getCPersonCode()); |