package zy.cloud.wms.manager.controller; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.core.common.BaseRes; 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.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import zy.cloud.wms.common.entity.Parameter; import zy.cloud.wms.common.model.ErpUpload; import zy.cloud.wms.common.model.param.ReplenishDto; import zy.cloud.wms.common.model.param.ReplenishParam; import zy.cloud.wms.common.service.erp.ErpService; import zy.cloud.wms.common.utils.VersionUtils; import zy.cloud.wms.common.web.BaseController; import zy.cloud.wms.manager.entity.LocDetl; import zy.cloud.wms.manager.entity.Mat; import zy.cloud.wms.manager.entity.Node; import zy.cloud.wms.manager.entity.Prior; import zy.cloud.wms.manager.service.LocDetlService; import zy.cloud.wms.manager.service.MatService; import zy.cloud.wms.manager.service.NodeService; import zy.cloud.wms.manager.service.PriorService; import java.util.Date; import java.util.List; /** * Created by vincent on 2021/5/27 */ @RestController @RequestMapping("/open/api") public class OpenController extends BaseController { @Autowired private PriorService priorService; @Autowired private NodeService nodeService; @Autowired private MatService matService; @Autowired private LocDetlService locDetlService; @Autowired private ErpService erpService; @PostMapping("/erp/upload") public R erpUpload(@RequestBody ErpUpload erpUpload){ Boolean result = erpService.uploadBill(erpUpload.getDtos(), erpUpload.getDocId(), erpUpload.getDocNumber()); return result ? R.ok() : R.error(); } @PostMapping("/replenish") @Transactional public R asrsReplenish(@RequestBody ReplenishParam params){ if (Cools.isEmpty(params.getList())) { return R.parse(BaseRes.PARAM); } Date now = new Date(); for (ReplenishDto param : params.getList()) { Mat mat = matService.selectByMatnr(param.getMatnr()); List priors = priorService.selectList(new EntityWrapper().eq("matnr", param.getMatnr())); // 有推荐货位 if (!Cools.isEmpty(priors)) { Prior prior = priors.get(0); Node node = nodeService.selectById(prior.getNodeId()); LocDetl locDetl = locDetlService.getLocDetl(node.getId(), param.getMatnr()); if (locDetl == null) { locDetl = new LocDetl(); locDetl.setLocNo(node.getName()); locDetl.setNodeId(node.getId()); locDetl.setAnfme(param.getCount()); VersionUtils.setLocDetl(locDetl, mat); locDetl.setStatus(1); locDetl.setCreateBy(9527L); locDetl.setCreateTime(now); locDetl.setUpdateBy(9527L); locDetl.setUpdateTime(now); boolean insert = locDetlService.insert(locDetl); if (!insert) { throw new CoolException("新增库存明细档失败"); } } else { if (!locDetlService.incrementStock(node.getId(), param.getMatnr(), param.getCount())) { throw new CoolException("新增库存明细档失败"); } } // 没有推荐货物 } else { Node node = nodeService.selectByUuid(Parameter.get().getUniNode()); LocDetl locDetl = locDetlService.getLocDetl(node.getId(), param.getMatnr()); if (locDetl == null) { locDetl = new LocDetl(); locDetl.setLocNo(node.getName()); locDetl.setNodeId(node.getId()); locDetl.setAnfme(param.getCount()); VersionUtils.setLocDetl(locDetl, mat); locDetl.setStatus(1); locDetl.setCreateBy(9527L); locDetl.setCreateTime(now); locDetl.setUpdateBy(9527L); locDetl.setUpdateTime(now); boolean insert = locDetlService.insert(locDetl); if (!insert) { throw new CoolException("新增库存明细档失败"); } } else { if (!locDetlService.incrementStock(node.getId(), param.getMatnr(), param.getCount())) { throw new CoolException("新增库存明细档失败"); } } } } return R.ok(); } }