#
luxiaotao1123
2021-08-09 52552445ea0e49bc662d5cdc0d9e33318104c41c
src/main/java/zy/cloud/wms/manager/controller/OpenController.java
@@ -4,23 +4,23 @@
import com.core.common.BaseRes;
import com.core.common.Cools;
import com.core.common.R;
import com.core.common.SnowflakeIdWorker;
import com.core.exception.CoolException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
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 zy.cloud.wms.manager.entity.*;
import zy.cloud.wms.manager.service.*;
import java.util.Date;
import java.util.List;
@@ -40,10 +40,22 @@
    private MatService matService;
    @Autowired
    private LocDetlService locDetlService;
    @Autowired
    private ErpService erpService;
    @Autowired
    private PakinService pakinService;
    @Autowired
    private SnowflakeIdWorker snowflakeIdWorker;
    @PostMapping("/erp/upload")
    public R erpUpload(@RequestBody ErpUpload erpUpload){
        Boolean result = erpService.uploadBill(erpUpload.getDtos(), erpUpload.getDocId(), erpUpload.getDocNumber()).getSuccess();
        return result ? R.ok() : R.error();
    }
    @PostMapping("/replenish")
    @Transactional
    public R asrsReplenish(@RequestBody ReplenishParam params){
    public synchronized R asrsReplenish(@RequestBody ReplenishParam params){
        if (Cools.isEmpty(params.getList())) {
            return R.parse(BaseRes.PARAM);
        }
@@ -51,10 +63,11 @@
        for (ReplenishDto param : params.getList()) {
            Mat mat = matService.selectByMatnr(param.getMatnr());
            List<Prior> priors = priorService.selectList(new EntityWrapper<Prior>().eq("matnr", param.getMatnr()));
            Node node;
            // 有推荐货位
            if (!Cools.isEmpty(priors)) {
                Prior prior = priors.get(0);
                Node node = nodeService.selectById(prior.getNodeId());
                node = nodeService.selectById(prior.getNodeId());
                LocDetl locDetl = locDetlService.getLocDetl(node.getId(), param.getMatnr());
                if (locDetl == null) {
@@ -80,7 +93,7 @@
            // 没有推荐货物
            } else {
                Node node = nodeService.selectByUuid(Parameter.get().getUniNode());
                node = nodeService.selectByUuid(Parameter.get().getUniNode());
                LocDetl locDetl = locDetlService.getLocDetl(node.getId(), param.getMatnr());
                if (locDetl == null) {
@@ -104,6 +117,40 @@
                    }
                }
            }
            // 保存入库记录
            Pakin pakin = new Pakin(
                    "BC" + String.valueOf(snowflakeIdWorker.nextId()),    // 任务号[非空]
                    null,    // 工作状态
                    null,    // 托盘号
                    param.getCount(),    // 入库数量
                    node.getId(),    // 关联货位[非空]
                    node.getUuid(),    // 货位[非空]
                    mat.getMatnr(),    // 商品编码[非空]
                    null,    // 商品名称
                    null,    // 名称
                    null,    // 尺码
                    null,    // 型号
                    null,    // 批号
                    null,    // 单位
                    null,    // SKC
                    null,    // 单据类型
                    null,    // 单据编号
                    null,    // 客户名称
                    null,    // 品项数
                    null,    // 数量
                    null,    // 重量
                    1,    // 状态
                    9527L,    // 添加人员
                    now,    // 添加时间
                    9527L,    // 修改人员
                    now,    // 修改时间
                    "补仓入库"    // 备注
            );
            VersionUtils.setPakin(pakin, mat);
            if (!pakinService.insert(pakin)) {
                throw new CoolException("保存入库记录失败");
            }
        }
        return R.ok();
    }