package zy.cloud.wms.manager.service.impl; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.core.common.Cools; import com.core.common.R; 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.model.OrderStoDto; import zy.cloud.wms.common.service.MainService; import zy.cloud.wms.common.utils.VersionUtils; import zy.cloud.wms.manager.entity.*; import zy.cloud.wms.manager.entity.param.StockConfirmParam; import zy.cloud.wms.manager.entity.param.StockInParam; import zy.cloud.wms.manager.entity.param.StockOutParam; import zy.cloud.wms.manager.entity.result.StoPrintVo; import zy.cloud.wms.manager.service.*; import java.util.Date; import java.util.List; /** * Created by vincent on 2021/2/25 */ @Service("workService") public class WorkServiceImpl implements WorkService { @Autowired private MainService mainService; @Autowired private NodeService nodeService; @Autowired private CombService combService; @Autowired private LocDetlService locDetlService; @Autowired private CustOrderService custOrderService; @Autowired private PakoutService pakoutService; @Override @Transactional public R stockIn(StockInParam param, Long userId) { Node node = nodeService.selectByUuid(param.getNodeId()); if (node == null) { return R.error("货位不存在"); } List combs = combService.selectList(new EntityWrapper().eq("zpallet", param.getZpallet()).eq("io_status", 1)); if (Cools.isEmpty(combs)) { return R.error("物料不存在"); } Date now = new Date(); for (Comb comb : combs) { // 改变组托档状态 comb.setIoStatus(4); comb.setUpdateBy(userId); comb.setUpdateTime(now); boolean update = combService.update(comb, new EntityWrapper().eq("zpallet", param.getZpallet()).eq("matnr", comb.getMatnr())); if (!update) { throw new CoolException("修改托盘资料档失败"); } // 更新货位库存明细 LocDetl locDetl = new LocDetl(); locDetl.setLocNo(node.getName()); locDetl.setNodeId(node.getId()); locDetl.setZpallet(param.getZpallet()); locDetl.setAnfme(comb.getAnfme()); VersionUtils.setLocDetl(locDetl, comb); locDetl.setStatus(1); locDetl.setCreateBy(userId); locDetl.setCreateTime(now); locDetl.setUpdateBy(userId); locDetl.setUpdateTime(now); boolean insert = locDetlService.insert(locDetl); if (!insert) { throw new CoolException("新增库存明细档失败"); } } return R.ok(); } @Override public R stockOutCheck(String number, Long userId) { return null; } @Override public R stockOutPrint(StockOutParam param, Long userId) { List pakouts = pakoutService.selectList(new EntityWrapper().eq("doc_num", param.getNumber())); StoPrintVo vo = new StoPrintVo(); vo.setDocNum(param.getNumber()); vo.setList(pakouts); return R.ok().add(vo); } @Override public R stockOut(StockOutParam param, Long userId) { List custOrders = custOrderService.selectList(new EntityWrapper() .eq("number", param.getNumber()) .eq("status", 1) ); OrderStoDto dto = new OrderStoDto(); dto.setNumber(param.getNumber()); dto.setCustOrders(custOrders); // 开始整理出库数据 mainService.stockOutProcess(dto); return R.ok(); } @Override @Transactional public R stockOutComplete(StockConfirmParam param, Long userId) { // 修改出库单状态 if (!pakoutService.stockOutComplete(param.getWrkNo(), param.getNumber(), userId)) { return R.error("保存数据失败"); } // todo:修改库存数量 return R.ok(); } }