| | |
| | | import com.core.common.BaseRes; |
| | | import com.core.common.Cools; |
| | | import com.core.exception.CoolException; |
| | | import com.zy.asrs.entity.LocDetl; |
| | | import com.zy.asrs.entity.MatCode; |
| | | import com.zy.asrs.entity.WaitPakin; |
| | | import com.zy.asrs.entity.PltBarcode; |
| | | import com.zy.asrs.entity.WrkDetl; |
| | | import com.zy.asrs.entity.param.CombParam; |
| | | import com.zy.asrs.service.MatCodeService; |
| | | import com.zy.asrs.service.MobileService; |
| | | import com.zy.asrs.service.WaitPakinService; |
| | | import com.zy.asrs.service.*; |
| | | import com.zy.ints.entity.WaitMatin; |
| | | import com.zy.ints.service.WaitMatinService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import java.text.SimpleDateFormat; |
| | | import java.time.chrono.IsoEra; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Random; |
| | | |
| | | /** |
| | | * 移动端服务核心类 |
| | |
| | | @Autowired |
| | | private MatCodeService matCodeService; |
| | | @Autowired |
| | | private WaitPakinService waitPakinService; |
| | | private WaitMatinService waitMatinService; |
| | | @Autowired |
| | | private LocDetlService locDetlService; |
| | | @Autowired |
| | | private WrkDetlService wrkDetlService; |
| | | @Autowired |
| | | private PltBarcodeService pltBarcodeService; |
| | | |
| | | @Override |
| | | @Transactional |
| | |
| | | if (Cools.isEmpty(param.getBarcode()) || param.getCombMats().isEmpty()) { |
| | | throw new CoolException(BaseRes.PARAM); |
| | | } |
| | | int count = waitPakinService.selectCount(new EntityWrapper<WaitPakin>(). |
| | | eq("barcode", param.getBarcode()).eq("status", "N")); |
| | | if (count > 0) { |
| | | throw new CoolException("箱号数据已存在"); |
| | | // int countPak = waitPakinService.selectCount(new EntityWrapper<WaitPakin>().eq("zpallet", param.getBarcode())); |
| | | // eq("zpallet", param.getBarcode()).eq("io_status", "N")); |
| | | int countLoc = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet",param.getBarcode())); |
| | | int countWrk = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("zpallet",param.getBarcode())); |
| | | int countPlt = pltBarcodeService.selectCount(new EntityWrapper<PltBarcode>().eq("barcode",param.getBarcode())); |
| | | if (countPlt > 0 || countLoc > 0 || countWrk > 0) { |
| | | throw new CoolException("条码数据已存在"); |
| | | } |
| | | for (CombParam.CombMat combMat : param.getCombMats()) { |
| | | MatCode matCode = matCodeService.selectById(combMat.getMatNo()); |
| | | if (Cools.isEmpty(matCode)) { |
| | | throw new CoolException("物料数据错误"); |
| | | |
| | | Date now = new Date(); |
| | | if (Cools.isEmpty(param.getBillNo())) { |
| | | SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); |
| | | Random rand = new Random(); |
| | | Integer r = rand.nextInt(900)+ 100; |
| | | String billNo = sdf.format(new Date()) + r; |
| | | Integer seqNo=0; |
| | | for (CombParam.CombMat combMat : param.getCombMats()) { |
| | | MatCode matCode = matCodeService.selectOne(new EntityWrapper<MatCode>().eq("mat_no", combMat.getMatNo())); |
| | | if (Cools.isEmpty(matCode)) { |
| | | throw new CoolException("物料数据错误"); |
| | | } |
| | | seqNo++; |
| | | PltBarcode pltBarcode = new PltBarcode(); |
| | | pltBarcode.setBarcode(param.getBarcode()); |
| | | pltBarcode.setBillNo(billNo); |
| | | pltBarcode.setSeqNo(seqNo); |
| | | pltBarcode.setBillType(5); |
| | | pltBarcode.setMatNo(matCode.getMatNo()); |
| | | pltBarcode.setMatName(matCode.getMatName()); |
| | | pltBarcode.setQty(combMat.getCount()); |
| | | pltBarcode.setUnit(matCode.getUnit()); |
| | | pltBarcode.setSpecs(matCode.getSpecs()); |
| | | pltBarcode.setSize(matCode.getSize()); |
| | | if(Cools.isEmpty(combMat.getSupplier())){ |
| | | String supp = sdf.format(new Date()) + r; |
| | | pltBarcode.setSupplier(supp); |
| | | }else{ |
| | | pltBarcode.setSupplier(combMat.getSupplier()); |
| | | } |
| | | pltBarcode.setMemo(combMat.getMemo()); |
| | | pltBarcode.setColor(matCode.getColor()); |
| | | pltBarcode.setLinkErp(0); |
| | | pltBarcode.setModiUser(userId); |
| | | pltBarcode.setModiTime(now); |
| | | pltBarcode.setAppeUser(userId); |
| | | pltBarcode.setAppeTime(now); |
| | | if(matCode.getWeight()==null){ |
| | | matCode.setWeight(0.0); |
| | | } |
| | | if(matCode.getStr6()==null){ |
| | | matCode.setStr6(0.0); |
| | | pltBarcode.setAllQty(pltBarcode.getQty()); |
| | | }else { |
| | | pltBarcode.setAllQty(matCode.getStr6()*pltBarcode.getQty()); |
| | | } |
| | | pltBarcode.setWeight(matCode.getWeight()); |
| | | pltBarcode.setAllWeight(matCode.getWeight()*pltBarcode.getQty()+30); |
| | | pltBarcode.setVendor(combMat.getVendor()); |
| | | pltBarcode.setSource(combMat.getSource()); |
| | | pltBarcode.setQtyBox(matCode.getStr6()); |
| | | if (!pltBarcodeService.insert(pltBarcode)) { |
| | | throw new CoolException("保存数据失败"); |
| | | } |
| | | } |
| | | WaitPakin waitPakin = new WaitPakin( |
| | | param.getBarcode(), // 托盘码 |
| | | matCode.getMatNo(), // 物料编码 |
| | | matCode.getMatName(), // 物料描述 |
| | | combMat.getCount(), // 数量 |
| | | matCode.getStr1(), // 单位 |
| | | "N", // 状态 |
| | | null, // 备注 |
| | | new Date(), // 修改时间 |
| | | userId, // 修改人员 |
| | | new Date(), // 添加时间 |
| | | userId // 创建者 |
| | | ); |
| | | if (!waitPakinService.insert(waitPakin)) { |
| | | throw new CoolException("保存数据失败"); |
| | | } else { |
| | | SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); |
| | | Random rand = new Random(); |
| | | Integer r = rand.nextInt(900)+ 100; |
| | | // 关联通知单组托 |
| | | for (CombParam.CombMat combMat : param.getCombMats()) { |
| | | WaitMatin waitMatin = waitMatinService.selectOne(new EntityWrapper<WaitMatin>() |
| | | |
| | | .eq("bill_no",param.getBillNo()).eq("seq_no",combMat.getSeqNo())); |
| | | |
| | | MatCode matCode = matCodeService.selectOne(new EntityWrapper<MatCode>().eq("mat_no", combMat.getMatNo())); |
| | | |
| | | if (waitMatin == null) { |
| | | throw new CoolException("通知单不存在" + combMat.getMatNo() + "数据!"); |
| | | } |
| | | |
| | | if (combMat.getCount() > (waitMatin.getQty()-waitMatin.getInQty())) { |
| | | throw new CoolException(combMat.getMatNo() + "组托物料数量不足!"); |
| | | } |
| | | |
| | | PltBarcode pltBarcode = new PltBarcode(); |
| | | pltBarcode.setBarcode(param.getBarcode()); |
| | | pltBarcode.setBillNo(waitMatin.getBillNo()); |
| | | pltBarcode.setSeqNo(waitMatin.getSeqNo()); |
| | | pltBarcode.setBillType(waitMatin.getBillType()); |
| | | pltBarcode.setMatNo(waitMatin.getMatNo()); |
| | | pltBarcode.setMatName(waitMatin.getMatName()); |
| | | pltBarcode.setQty(combMat.getCount()); |
| | | pltBarcode.setUnit(waitMatin.getUnit()); |
| | | pltBarcode.setSpecs(waitMatin.getSpecs()); |
| | | pltBarcode.setSize(waitMatin.getSize()); |
| | | pltBarcode.setColor(waitMatin.getColor()); |
| | | pltBarcode.setLinkErp(waitMatin.getLinkErp()); |
| | | pltBarcode.setModiUser(userId); |
| | | pltBarcode.setModiTime(now); |
| | | pltBarcode.setAppeUser(userId); |
| | | pltBarcode.setAppeTime(now); |
| | | if(Cools.isEmpty(combMat.getSupplier())){ |
| | | String supp = sdf.format(new Date()) + r; |
| | | pltBarcode.setSupplier(supp); |
| | | }else{ |
| | | pltBarcode.setSupplier(combMat.getSupplier()); |
| | | } |
| | | if(matCode.getWeight()==null){ |
| | | matCode.setWeight(0.0); |
| | | } |
| | | if(matCode.getStr6()==null){ |
| | | matCode.setStr6(0.0); |
| | | pltBarcode.setAllQty(pltBarcode.getQty()); |
| | | }else { |
| | | pltBarcode.setAllQty(matCode.getStr6()*pltBarcode.getQty()); |
| | | } |
| | | pltBarcode.setWeight(matCode.getWeight()); |
| | | pltBarcode.setAllWeight(matCode.getWeight()*pltBarcode.getQty()+30); |
| | | pltBarcode.setVendor(combMat.getVendor()); |
| | | pltBarcode.setSource(combMat.getSource()); |
| | | if (!pltBarcodeService.insert(pltBarcode)) { |
| | | throw new CoolException("保存数据失败"); |
| | | } |
| | | |
| | | waitMatin.setInQty(combMat.getCount() + waitMatin.getInQty()); |
| | | if (!waitMatinService.update(waitMatin,new EntityWrapper<WaitMatin>() |
| | | .eq("bill_no",param.getBillNo()).eq("seq_no",combMat.getSeqNo()))){ |
| | | throw new CoolException("更新数据失败"); |
| | | } |
| | | |
| | | } |
| | | } |
| | | } |