InStandingTaskController.java 4.32 KB
package com.huaheng.api.wcs.controller;



import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.huaheng.api.general.domain.InventoryQueryDomain;
import com.huaheng.api.wcs.domain.InStandingTaskDomain;
import com.huaheng.api.wcs.service.InStandingTaskHandle.InStandingTaskService;
import com.huaheng.framework.web.controller.BaseController;
import com.huaheng.pc.inventory.inventoryDetail.service.InventoryDetailService;
import com.huaheng.common.utils.StringUtils;
import com.huaheng.framework.aspectj.lang.annotation.ApiLogger;
import com.huaheng.framework.aspectj.lang.annotation.Log;
import com.huaheng.framework.aspectj.lang.constant.BusinessType;
import com.huaheng.framework.web.domain.AjaxResult;
import com.huaheng.pc.inventory.inventoryDetail.domain.InventoryDetail;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;

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


@RestController
@RequestMapping("/API/WMS/v2")
@Api(tags = {"换站任务"}, value = "task")
public class InStandingTaskController  extends BaseController {

    @Resource
    InStandingTaskService inStandingTaskService;
    @Resource
    InventoryDetailService inventoryDetailService;



    @Log(title = "车桥称重任务", action = BusinessType.INSERT)
    @PostMapping("/InStandingTask")
    @ApiOperation("车桥称重任务")
    @ResponseBody
    @ApiLogger(apiName = "车桥称重任务", from = "WCS")
    public AjaxResult inStandingTask(@RequestBody InStandingTaskDomain InStandingTaskDomain) {

        //1是回库
        //2是出库
        if (InStandingTaskDomain.getWeight()==0)
        {
            return AjaxResult.error("出错了,重量为0");
        }
       AjaxResult ajaxResult =  handleMultiProcess("InStandingTask",new MultiProcessListener() {
            @Override
            public AjaxResult doProcess() {
                return inStandingTaskService.instanding(InStandingTaskDomain);
            }
        });
        return ajaxResult;
    }

    /**
     * 查询托盘库存
     */
    @PostMapping("/searchContainer")
    @ApiOperation("查询托盘库存")
    @ApiLogger(apiName = "查询托盘库存", from = "ROBOT")
    @ResponseBody
    public AjaxResult searchContainer(@RequestBody InventoryQueryDomain inventoryQueryDomain) {
        LambdaQueryWrapper<InventoryDetail> inventoryDetailLambdaQueryWrapper = Wrappers.lambdaQuery();
        inventoryDetailLambdaQueryWrapper.eq(StringUtils.isNotEmpty(inventoryQueryDomain.getWarehouseCode()),
                InventoryDetail::getWarehouseCode, inventoryQueryDomain.getWarehouseCode())
                .eq(StringUtils.isNotEmpty(inventoryQueryDomain.getContainerCode()),
                        InventoryDetail::getContainerCode, inventoryQueryDomain.getContainerCode())
                .eq(StringUtils.isNotEmpty(inventoryQueryDomain.getLocationCode()),
                        InventoryDetail::getLocationCode, inventoryQueryDomain.getLocationCode())
                .eq(StringUtils.isNotEmpty(inventoryQueryDomain.getCompanyCode()),
                        InventoryDetail::getCompanyCode, inventoryQueryDomain.getCompanyCode())
                .eq(StringUtils.isNotEmpty(inventoryQueryDomain.getZoneCode()),
                        InventoryDetail::getZoneCode, inventoryQueryDomain.getZoneCode())
                .eq(StringUtils.isNotEmpty(inventoryQueryDomain.getMaterialCode()),
                        InventoryDetail::getMaterialCode, inventoryQueryDomain.getMaterialCode());
        List<InventoryDetail> inventoryDetailList = inventoryDetailService.list(inventoryDetailLambdaQueryWrapper);
        List<InventoryDetail> removeInventoryDetailList = new ArrayList<>();
        if (inventoryDetailList != null && inventoryDetailList.size() > 0) {
            for (InventoryDetail inventoryDetail : inventoryDetailList) {
                String zoneCode = inventoryDetail.getZoneCode();
                if (zoneCode.equals("H") || zoneCode.equals("I")) {
                    int taskQty = inventoryDetail.getTaskQty().intValue();
                    if (taskQty != 0) {
                        removeInventoryDetailList.add(inventoryDetail);
                    }
                }
            }

        }
        return null;
    }


}