mesServiceImpl.java 3.76 KB
package com.huaheng.api.mes.service;


import com.huaheng.api.general.domain.ReceiptDomain;
import com.huaheng.api.general.service.ReceiptApiService;
import com.huaheng.api.mes.domain.MesDomain;
import com.huaheng.common.exception.service.ServiceException;
import com.huaheng.common.utils.StringUtils;
import com.huaheng.framework.web.domain.AjaxResult;
import com.huaheng.framework.web.domain.Result;
import com.huaheng.pc.config.container.domain.Container;
import com.huaheng.pc.config.container.service.ContainerService;
import com.huaheng.pc.receipt.receiptContainerHeader.service.ReceiptContainerHeaderService;
import com.huaheng.pc.receipt.receiptDetail.domain.ReceiptDetail;
import com.huaheng.pc.receipt.receiptHeader.domain.ReceiptHeader;
import com.huaheng.pc.receipt.receiptHeader.service.ReceiptHeaderService;
import com.huaheng.pc.task.taskHeader.domain.TaskHeader;
import com.huaheng.pc.task.taskHeader.service.ReceiptTaskService;
import org.springframework.transaction.annotation.Transactional;

import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;

public class mesServiceImpl implements mesService {

    @Resource
    private ContainerService containerService;
    @Resource
    private ReceiptApiService receiptApiService;
    @Resource
    private ReceiptHeaderService receiptHeaderService;
    @Resource
    private ReceiptContainerHeaderService receiptContainerHeaderService;
    @Resource
    private ReceiptTaskService receiptTaskService;

    @Override
    @Transactional
    public AjaxResult receipt(MesDomain mesDomain) {
        String referCode = String.valueOf(System.currentTimeMillis());
        String containerCode = mesDomain.getContaienrCode();
        String materialCode = mesDomain.getMaterialCode();
        String warehouseCode = "CS0001";
        String toPort = "P1002";
        if (StringUtils.isEmpty(containerCode)) {
            return AjaxResult.error("MES下发入库信息,容器编码为空");
        }
        if (StringUtils.isEmpty(warehouseCode)) {
            return AjaxResult.error("MES下发入库信息,仓库编码为空");
        }
        Container container = containerService.getContainerByCode(containerCode, warehouseCode);
        if (container == null) {
            return AjaxResult.error("MES下发入库信息,没有找到容器");
        }
        ReceiptHeader receiptHeader = new ReceiptHeader();
        receiptHeader.setReceiptType("CG");
//        receiptHeader.setReferCode(referCode);
        ReceiptDetail receiptDetail = new ReceiptDetail();
        receiptDetail.setMaterialCode(materialCode);
        receiptDetail.setQty(new BigDecimal(1));
        List<ReceiptDetail> receiptDetailList = new ArrayList<>();
        ReceiptDomain receiptDomain = new ReceiptDomain();
        receiptDomain.setReceiptHeader(receiptHeader);
        receiptDomain.setReceiptDetails(receiptDetailList);
        AjaxResult ajaxResult =  receiptApiService.receipt(receiptDomain);
        receiptDomain = (ReceiptDomain) ajaxResult.getData();
        receiptHeader = receiptDomain.getReceiptHeader();
        receiptDetailList = receiptDomain.getReceiptDetails();
        int receiptDetailId = receiptDetailList.get(0).getId();
        ajaxResult =  receiptContainerHeaderService.saveContainer(receiptHeader.getCode(), containerCode,
                receiptDetailId, null, new BigDecimal(1), null);
        if (ajaxResult.hasErr()) {
            throw new ServiceException(ajaxResult.getMsg());
        }
        int receiptContainerHeaderId = (int)ajaxResult.getData();
        List<Integer> ids = new ArrayList<>();
        ids.add(receiptContainerHeaderId);
        return receiptTaskService.createReceiptTask(ids);
    }

    @Override
    public Result shipment(MesDomain mesDomain) {
        return null;
    }
}