package zy.cloud.wms.pda.service.impl; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.core.common.BaseRes; import com.core.common.Cools; import com.core.exception.CoolException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import zy.cloud.wms.common.utils.VersionUtils; import zy.cloud.wms.manager.entity.Comb; import zy.cloud.wms.manager.entity.Mat; import zy.cloud.wms.manager.service.CombService; import zy.cloud.wms.manager.service.MatService; import zy.cloud.wms.pda.entity.CombParam; import zy.cloud.wms.pda.service.MobileService; import java.util.Date; /** * 移动端服务核心类 * Created by vincent on 2020/6/28 */ @Service public class MobileServiceImpl implements MobileService { @Autowired private MatService matService; @Autowired private CombService combService; @Override @Transactional public void comb(CombParam param, Long userId) { if (Cools.isEmpty(param.getZpallet())) { throw new CoolException(BaseRes.PARAM); } if (Cools.isEmpty(param.getCombMats())) { throw new CoolException(BaseRes.PARAM); } int count = combService.selectCount(new EntityWrapper(). eq("zpallet", param.getZpallet()).eq("io_status", 1)); if (count > 0) { throw new CoolException("条码数据已存在"); } if (Cools.isEmpty(param.getBillNo())) { for (CombParam.CombMat combMat : param.getCombMats()) { Mat mat = matService.selectByMatnr(combMat.getMatnr()); if (Cools.isEmpty(mat)) { throw new CoolException("物料数据错误"); } Comb comb = new Comb(); comb.setZpallet(param.getZpallet()); // 托盘码 comb.setStatus(1); // 状态 comb.setAnfme(combMat.getCount()); // 数量 comb.setIoStatus(1); // 入出状态 1.待入库 comb.setCreateBy(userId); comb.setCreateTime(new Date()); comb.setUpdateBy(userId); comb.setUpdateTime(new Date()); VersionUtils.setComb(comb, mat); if (!combService.insert(comb)) { throw new CoolException("保存数据失败"); } } } else { // // 关联通知单组托 // for (CombParam.CombMat combMat : param.getCombMats()) { // WaitPakin one = waitPakinService.selectOne(new EntityWrapper() // .eq("supplier", param.getBillNo()) // .eq("matnr", combMat.getMatNo()) // .isNull("zpallet")); // if (one == null) { // throw new CoolException("通知单不存在"+combMat.getMatNo()+"数据!"); // } // if (combMat.getCount() > one.getAnfme()) { // throw new CoolException(combMat.getMatNo()+"物料数量不足!"); // } // MatCode matCode = matCodeService.selectById(combMat.getMatNo()); // if (Cools.isEmpty(matCode)) { // throw new CoolException("物料数据错误"); // } // WaitPakin waitPakin = one.clone(); // waitPakin.setZpallet(param.getBarcode()); // 托盘码 // waitPakin.setAnfme(combMat.getCount()); // 数量 // waitPakin.setAppeUser(userId); // waitPakin.setAppeTime(new Date()); // waitPakin.setModiUser(userId); // waitPakin.setModiTime(new Date()); // if (!waitPakinService.insert(waitPakin)) { // throw new CoolException("保存数据失败"); // } // // 减少通知单上该物料组托数量 // if (waitPakin.getAnfme() >= one.getAnfme()) { // waitPakinService.delete(new EntityWrapper() // .eq("supplier", param.getBillNo()) // .eq("matnr", combMat.getMatNo()) // .isNull("zpallet")); // } else { // Wrapper wrapper = new EntityWrapper() // .eq("supplier", param.getBillNo()) // .eq("matnr", combMat.getMatNo()) // .isNull("zpallet"); // WaitPakin pakin = new WaitPakin(); // pakin.setAnfme(one.getAnfme() - waitPakin.getAnfme()); // if (!waitPakinService.update(pakin, wrapper)) { // throw new CoolException("更新数据失败"); // } // // } // // } } } }