MesController.java 12.2 KB
package com.huaheng.api.mes.controller;

import com.huaheng.api.mes.domain.MesDomain;
import com.huaheng.api.mes.service.MesService;
import com.huaheng.api.wcs.domain.WcsTask;
import com.huaheng.framework.web.controller.BaseController;
import com.huaheng.framework.web.domain.AjaxResult;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;

/**
 * @author 游杰
 */
@RestController
@RequestMapping("/API/WMS/v2")
public class MesController extends BaseController {

    @Resource
    private MesService mesService;

    @PostMapping("/receipt")
    @ApiOperation("入库")
    @ResponseBody
    public AjaxResult receipt(@RequestBody MesDomain mesDomain) {
        AjaxResult ajaxResult = handleMultiProcess(new MultiProcessListener() {
            @Override
            public AjaxResult doProcess() {
                AjaxResult ajaxResult = mesService.receipt(mesDomain);
                return ajaxResult;
            }
        });
        return ajaxResult;
    }

    @PostMapping("/shipment")
    @ApiOperation("出库")
    @ResponseBody
    public AjaxResult shipment(@RequestBody MesDomain mesDomain) {
        AjaxResult ajaxResult = handleMultiProcess(new MultiProcessListener() {
            @Override
            public AjaxResult doProcess() {
                AjaxResult ajaxResult = mesService.shipment(mesDomain);
                return ajaxResult;
            }
        });
        return ajaxResult;
    }
}
//=======
//import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
//import com.baomidou.mybatisplus.core.toolkit.Wrappers;
//import com.baomidou.mybatisplus.extension.api.R;
//import com.huaheng.api.acs.service.AcsService;
//import com.huaheng.api.mes.domain.MesCallIn;
//import com.huaheng.common.constant.QuantityConstant;
//import com.huaheng.common.exception.service.ServiceException;
//import com.huaheng.common.utils.StringUtils;
//import com.huaheng.framework.aspectj.lang.annotation.ApiLogger;
//import com.huaheng.framework.web.domain.AjaxResult;
//import com.huaheng.mobile.receipt.ReceiptBill;
//import com.huaheng.pc.config.container.domain.Container;
//import com.huaheng.pc.config.container.service.ContainerService;
//import com.huaheng.pc.inventory.inventoryDetail.domain.InventoryDetail;
//import com.huaheng.pc.inventory.inventoryDetail.service.InventoryDetailService;
//import com.huaheng.pc.inventory.inventoryHeader.domain.InventoryHeader;
//import com.huaheng.pc.inventory.inventoryHeader.service.InventoryHeaderForShipmentService;
//import com.huaheng.pc.inventory.inventoryHeader.service.InventoryHeaderService;
//import com.huaheng.pc.receipt.receiptContainerDetail.service.ReceiptContainerDetailService;
//import com.huaheng.pc.receipt.receiptContainerHeader.domain.ReceiptContainerView;
//import com.huaheng.pc.receipt.receiptContainerHeader.service.ReceiptContainerHeaderService;
//import com.huaheng.pc.receipt.receiptDetail.service.ReceiptDetailService;
//import com.huaheng.pc.receipt.receiptHeader.domain.ReceiptHeader;
//import com.huaheng.pc.receipt.receiptHeader.service.ReceiptHeaderService;
//import com.huaheng.pc.task.agvTask.domain.AgvTask;
//import com.huaheng.pc.task.taskHeader.domain.TaskHeader;
//import com.huaheng.pc.task.taskHeader.service.ReceiptTaskService;
//import com.huaheng.pc.task.taskHeader.service.TaskHeaderService;
//import io.swagger.annotations.ApiOperation;
//import org.springframework.transaction.annotation.Transactional;
//import org.springframework.web.bind.annotation.*;
//
//import javax.annotation.Resource;
//import java.math.BigDecimal;
//import java.text.SimpleDateFormat;
//import java.util.ArrayList;
//import java.util.Arrays;
//import java.util.List;
//import java.util.Map;
//import java.util.stream.Collectors;
//
//@RestController
//@RequestMapping("/API/WMS/v2")
//public class MesController {
//
//    @Resource
//    private ReceiptContainerHeaderService receiptContainerHeaderService;
//    @Resource
//    private ReceiptHeaderService receiptHeaderService;
//    @Resource
//    private ReceiptDetailService receiptDetailService;
//    @Resource
//    private ReceiptContainerDetailService receiptContainerDetailService;
//    @Resource
//    private ContainerService containerService;
//    @Resource
//    private InventoryDetailService inventoryDetailService;
//    @Resource
//    private InventoryHeaderService inventoryHeaderService;
//    @Resource
//    private TaskHeaderService taskHeaderService;
//    @Resource
//    private ReceiptTaskService receiptTaskService;
//    @Resource
//    private InventoryHeaderForShipmentService inventoryHeaderForShipmentService;
//    @Resource
//    private AcsService acsService;
//
//
//    @PostMapping("/MesQuickReceipt")
//    @ApiOperation("Mes入库")
//    @ApiLogger(apiName = "Mes入库", from="ROBOT")
//    @Transactional(rollbackFor = Exception.class)
//    @ResponseBody
//    public AjaxResult MesQuickReceipt(@RequestBody MesCallIn mesCallIn) {
//        String materialCode=mesCallIn.getMaterialCode();
//        String containerCode = mesCallIn.getContainerCode();
//        String port = mesCallIn.getPort();
//        String locationCode ="";
//        String companyCode="BHF";
//        if (StringUtils.isEmpty(materialCode)){
//            return AjaxResult.error("物料信息不能为空");
//        }
//        if (StringUtils.isEmpty(containerCode)){
//            return AjaxResult.error("容器号不能为空");
//        }
//        if (StringUtils.isEmpty(port)){
//            return AjaxResult.error("站台不能为空");
//        }
//        LambdaQueryWrapper<Container> containerLambdaQueryWrapper= Wrappers.lambdaQuery();
//        containerLambdaQueryWrapper.eq(Container::getCode,containerCode)
//                .eq(Container::getWarehouseCode,"CS0001");
//        Container one = containerService.getOne(containerLambdaQueryWrapper);
//        if (one==null){
//            return AjaxResult.error(containerCode+"容器不存在");
//        }
//        List<TaskHeader> unfinishTask = taskHeaderService.getUnCompleteTaskList().stream().filter((t) -> {
//            return t.getContainerCode().equals(one.getCode());
//        }).collect(Collectors.toList());
//
//        if (unfinishTask.size() > 0) {
//            TaskHeader t = unfinishTask.get(0);
//            String time = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(t.getCreated());
//            throw new ServiceException(one.getCode() + "托盘已经有未完成的任务,请不要重复下发\n该托盘任务创建于:" + time);
//        }
//
//        List<ReceiptBill> receiptBills = new ArrayList<>();
//        ReceiptBill receiptBill =new ReceiptBill();
//        String substring = materialCode.substring(0, 2);
//        switch (substring){
//            case "dz":
//                receiptBill.setMaterialCode("dz");
//                receiptBill.setMaterialName("端子盘");
//                break;
//            case "mj":
//                receiptBill.setMaterialCode("mj");
//                receiptBill.setMaterialName("模具");
//                break;
//            case "dx":
//                receiptBill.setMaterialCode("dx");
//                receiptBill.setMaterialName("导线");
//                break;
//        }
//
//
//        receiptBill.setCompanyCode("BHF");
//        receiptBill.setReceiptContainerCode(containerCode);
//        receiptBill.setQty(new BigDecimal(1));
//        receiptBills.add(receiptBill);
//
//        ReceiptContainerView record = new ReceiptContainerView();
//        record.setReceiptContainerCode(containerCode);
//        record.setLocationCode(locationCode);
//        record.setTaskType((short)100);
//        record.setCompanyCode("BHF");
//        receiptContainerHeaderService.checkContainer(record);
//        if(locationCode != null) {
//            receiptContainerHeaderService.mobileCheckLocationCode(record);
//        }
//        int receiptHeaderId = receiptHeaderService.createTodayHeader(companyCode);
//        ReceiptHeader receiptHeader = receiptHeaderService.getById(receiptHeaderId);
//        List<Integer> receiptDetailIds = receiptDetailService.insertTodayReceiptDetail(receiptHeaderId, receiptBills, true, companyCode);
//        if(receiptDetailIds != null && receiptDetailIds.size() > 0) {
//            int containerHeaderId = receiptContainerHeaderService.insertTodayReceiptContainerHeader(receiptBills.get(0), receiptHeader.getCode());
//            if(containerHeaderId > 0) {
//                List<Integer> receiptContainerDetailIds = receiptContainerDetailService.insertTodayReceiptcContainerDetail(containerHeaderId, receiptHeaderId, receiptDetailIds, receiptBills);
//                if(receiptContainerDetailIds != null && receiptContainerDetailIds.size() > 0) {
//                    List<Integer> idList = Arrays.asList(containerHeaderId);
//                    List<Integer> idsList = idList.stream().distinct().collect(Collectors.toList());
//                    AjaxResult receiptTask = receiptTaskService.createReceiptTask(idsList);
//                    if (receiptTask.hasErr()){
//                        return AjaxResult.error("生成任务失败");
//                    }
//                    AgvTask agvTask=new AgvTask();
//                    agvTask.setWarehouseCode("CS0001");
//                    agvTask.setFromPort(port);
//                    agvTask.setToPort("1001");
//                    agvTask.setContainerCode(containerCode);
//                    agvTask.setTaskType(QuantityConstant.TASK_TYPE_WHOLESHIPMENT);
////                    agvTask.setPreTaskNo(one.getId());
//                    agvTask.setCreatedBy("Mes");
//                    AjaxResult ajaxResult = acsService.executeAGVTask(agvTask);
//                    if (ajaxResult.hasErr()){
//                        return AjaxResult.error("下发AGV任务失败");
//                    }
//                    return AjaxResult.success();
//                } else {
//                    return AjaxResult.error("入库组盘失败");
//                }
//            } else {
//                return AjaxResult.error("插入入库容器表单头失败");
//            }
//        } else {
//            return AjaxResult.error("插入入库明细表单失败");
//        }
//
//    }
//
//    @PostMapping("/MesCallOut")
//    @ApiOperation("Mes出库")
//    @ApiLogger(apiName = "Mes出库", from="ROBOT")
//    @Transactional(rollbackFor = Exception.class)
//    @ResponseBody
//    public AjaxResult MesCallOut(@RequestBody MesCallIn mesCallIn) {
//        String materialCode=mesCallIn.getMaterialCode();
//        String port = mesCallIn.getPort();
//        if (StringUtils.isEmpty(materialCode)){
//            return AjaxResult.error("物料信息不能为空");
//        }
//        if (StringUtils.isEmpty(port)){
//            return AjaxResult.error("站台不能为空");
//        }
//        switch (materialCode){
//            case "1" :
//                materialCode="dx";
//                break;
//            case "2" :
//                materialCode="dz";
//                break;
//            case "3" :
//                materialCode="mj";
//                break;
//            case "4" :
//                materialCode="kongpan";
//                break;
//        }
//        LambdaQueryWrapper<InventoryDetail> inventoryDetailLambdaQueryWrapper=Wrappers.lambdaQuery();
//        inventoryDetailLambdaQueryWrapper.eq(InventoryDetail::getMaterialCode,materialCode)
//                .last("ORDER BY  id asc limit 1");
//        InventoryDetail one = inventoryDetailService.getOne(inventoryDetailLambdaQueryWrapper);
//        if (one==null){
//            return AjaxResult.error("库内没有该物料信息");
//        }
//        LambdaQueryWrapper<InventoryHeader> inventoryHeaderLambdaQueryWrapper =Wrappers.lambdaQuery();
//        inventoryHeaderLambdaQueryWrapper.eq(InventoryHeader::getId,one.getInventoryHeaderId());
//        InventoryHeader one1 = inventoryHeaderService.getOne(inventoryHeaderLambdaQueryWrapper);
//        if (one1==null){
//            return AjaxResult.error("库内没有该物料信息");
//        }
//        String inventoryHeaderId = one1.getId().toString();
//        inventoryHeaderForShipmentService.shipmentContainer(inventoryHeaderId, port);
//
//        return AjaxResult.success();
//>>>>>>> d3df4772feeca5d7bb71da9dfbf2dfb9cde02b24
//    }
//}