TvController.java 9.24 KB
package com.huaheng.api.tv.controller;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.huaheng.api.tv.domain.AllBean;
import com.huaheng.api.tv.domain.TopBean;
import com.huaheng.api.tv.domain.TvBean;
import com.huaheng.api.tv.domain.UpBean;
import com.huaheng.api.wcs.domain.WcsTask;
import com.huaheng.common.constant.QuantityConstant;
import com.huaheng.framework.web.controller.BaseController;
import com.huaheng.framework.web.domain.AjaxResult;
import com.huaheng.pc.config.container.domain.Container;
import com.huaheng.pc.config.container.service.ContainerService;
import com.huaheng.pc.config.location.domain.Location;
import com.huaheng.pc.config.location.service.LocationService;
import com.huaheng.pc.config.material.domain.Material;
import com.huaheng.pc.config.material.service.MaterialService;
import com.huaheng.pc.config.zone.domain.Zone;
import com.huaheng.pc.config.zone.service.ZoneService;
import com.huaheng.pc.inventory.InventoryMaterialSummary.domain.InventoryMaterialSummary;
import com.huaheng.pc.inventory.InventoryMaterialSummary.service.InventoryMaterialSummaryService;
import com.huaheng.pc.inventory.inventoryDetail.domain.InventoryDetail;
import com.huaheng.pc.inventory.inventoryDetail.service.InventoryDetailService;
import com.huaheng.pc.inventory.inventoryTransaction.service.InventoryTransactionService;
import com.huaheng.pc.shipment.shipmentDetail.domain.ShipmentDetailTv;
import com.huaheng.pc.shipment.shipmentDetail.mapper.ShipmentDetailMapper;
import com.huaheng.pc.task.taskDetail.domain.TaskDetail;
import com.huaheng.pc.task.taskDetail.service.TaskDetailService;
import com.huaheng.pc.task.taskHeader.domain.TaskHeader;
import com.huaheng.pc.task.taskHeader.service.TaskHeaderService;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import java.util.*;

@RestController
@RequestMapping("/API/WMS/v2")
public class TvController extends BaseController {

    @Resource
    private ShipmentDetailMapper shipmentDetailMapper;
    @Resource
    private TaskDetailService taskDetailService;
    @Resource
    private TaskHeaderService taskHeaderService;
    @Resource
    private ContainerService containerService;
    @Resource
    private LocationService locationService;
    @Resource
    private InventoryTransactionService inventoryTransactionService;
    @Resource
    private ZoneService zoneService;
    @Resource
    private InventoryDetailService inventoryDetailService;
    @Resource
    private InventoryMaterialSummaryService inventoryMaterialSummaryService;
    @Resource
    private MaterialService materialService;

//    @PostMapping("/getTvView")
//    @ApiOperation("获取电视信息")
//    @ResponseBody
//    public AjaxResult getTvView(@RequestBody WcsTask wcsTask) {
//       String area =  wcsTask.getArea();
//       LambdaQueryWrapper<TaskHeader> taskHeaderLambdaQueryWrapper = Wrappers.lambdaQuery();
//       taskHeaderLambdaQueryWrapper.eq(TaskHeader::getArea, area)
//                                .lt(TaskHeader::getStatus, QuantityConstant.TASK_STATUS_COMPLETED)
//                                .orderByDesc(TaskHeader::getId);
//       List<TaskHeader> taskHeaderList = taskHeaderService.list(taskHeaderLambdaQueryWrapper);
//       if(taskHeaderList != null && taskHeaderList.size() > 0) {
//           for(TaskHeader taskHeader : taskHeaderList) {
//               String materialCode = taskHeader.getMaterialCode();
//               String warehouseCode = taskHeader.getWarehouseCode();
//               Material material = materialService.getMaterialByCode(materialCode, warehouseCode);
//               if(material != null) {
//                   taskHeader.setMaterialCode(material.getName());
//               }
//           }
//       }
//
//       LambdaQueryWrapper<Container> containerEmptyLambdaQueryWrapper = Wrappers.lambdaQuery();
//        containerEmptyLambdaQueryWrapper.eq(Container::getArea, area)
//                                    .eq(Container::getStatus, QuantityConstant.STATUS_CONTAINER_EMPTY)
//                                    .ne(Container::getLocationCode, "");
//       List<Container> containerEmptyList = containerService.list(containerEmptyLambdaQueryWrapper);
//        int containerEmptySize = containerEmptyList.size();
//
//        LambdaQueryWrapper<Container> containerManyLambdaQueryWrapper = Wrappers.lambdaQuery();
//        containerManyLambdaQueryWrapper.eq(Container::getArea, area)
//                .eq(Container::getStatus, QuantityConstant.STATUS_CONTAINER_MANY)
//                .ne(Container::getLocationCode, "");
//        List<Container> manyEmptyList = containerService.list(containerManyLambdaQueryWrapper);
//        int manyEmptyListSize = manyEmptyList.size();
//        containerEmptySize = containerEmptySize + manyEmptyListSize * 6;
//        LambdaQueryWrapper<Container> containerSomeLambdaQueryWrapper = Wrappers.lambdaQuery();
//        containerSomeLambdaQueryWrapper.eq(Container::getArea, area)
//                .eq(Container::getStatus, QuantityConstant.STATUS_CONTAINER_SOME)
//                .ne(Container::getLocationCode, "");
//        List<Container> containerSomeList = containerService.list(containerSomeLambdaQueryWrapper);
//        int containerSomeSize = containerSomeList.size();
//
//        LambdaQueryWrapper<Location> locationLambdaQueryWrapper = Wrappers.lambdaQuery();
//        locationLambdaQueryWrapper.eq(Location::getArea, area);
//        List<Location> locationList = locationService.list(locationLambdaQueryWrapper);
//        int totalLocationSize = locationList.size();
//
//        LambdaQueryWrapper<Zone> zoneLambdaQueryWrapper = Wrappers.lambdaQuery();
//        zoneLambdaQueryWrapper.eq(Zone::getArea, area);
//        Zone zone = zoneService.getOne(zoneLambdaQueryWrapper);
//        LambdaQueryWrapper<InventoryDetail> inventoryDetailLambdaQueryWrapper = Wrappers.lambdaQuery();
//        inventoryDetailLambdaQueryWrapper.eq(InventoryDetail::getZoneCode, zone.getCode());
//        List<InventoryDetail> inventoryDetailList = inventoryDetailService.list(inventoryDetailLambdaQueryWrapper);
//        int inventorySize = inventoryDetailList.size();
//
//
//        LambdaQueryWrapper<InventoryMaterialSummary> lambdaQueryWrapper = Wrappers.lambdaQuery();
//        lambdaQueryWrapper.eq(InventoryMaterialSummary::getZoneCode, zone.getCode());
//        List<InventoryMaterialSummary> list = inventoryMaterialSummaryService.list(lambdaQueryWrapper);
//        if (list == null) {
//            list = Collections.emptyList();
//        }
//        //筛选库存汇总数据的专用方法
//        List<InventoryMaterialSummary> details = inventoryMaterialSummaryService.duplicateRemoval(list);
//
//        TvBean tvBean = new TvBean();
//        tvBean.setDetails(details);
//        tvBean.setContainerEmptySize(containerEmptySize);
//        tvBean.setContainerSomeSize(containerSomeSize);
//        tvBean.setTotalLocationSize(totalLocationSize);
//        tvBean.setTaskHeaderList(taskHeaderList);
//        tvBean.setInventorySize(inventorySize);
//        return AjaxResult.success(tvBean);
//    }


    @PostMapping("/getTvView")
//@ApiOperation("获取电视出库信息")
    @CrossOrigin
    @ResponseBody
//@ApiLogger(apiName = "获取电视出库信息", from = "TV")
    public AjaxResult getTvShipmentView(@RequestBody Map<String, String> map) {
        AllBean allBean = new AllBean();
        LambdaQueryWrapper<TaskDetail> queryWrapper = Wrappers.lambdaQuery();
        List<String> str = Arrays.asList("300", "400");
        queryWrapper.in(TaskDetail::getTaskType, str)
                .last(" and  date_format( created, '%Y-%m-%d' )= date_format( now(), '%Y-%m-%d' ) and `status`>=100");
        List<TaskDetail> list = taskDetailService.list(queryWrapper);
        List<TopBean> topList = new ArrayList<>();
        if (list.size() > 0) {
            topList = taskDetailService.getTvReceiptView("2");
        }
        allBean.setTopList(topList);
        List<UpBean> upList = taskDetailService.getTvNotReceiptList("2");
        allBean.setUpList(upList);
        String par = map.get("par");
        List<ShipmentDetailTv> portList = shipmentDetailMapper.getTvOutList(par);
        allBean.setPortList(portList);
        return AjaxResult.success(allBean);
    }
    @PostMapping("/getTvReceiptView")
    //@ApiOperation("获取电视入库信息")
    @CrossOrigin
    @ResponseBody
    //@ApiLogger(apiName = "获取电视入库信息", from = "TV")
    public AjaxResult getTvReceiptView() {
        AllBean allBean = new AllBean();
        LambdaQueryWrapper<TaskDetail> queryWrapper = Wrappers.lambdaQuery();
        List<String> str = Arrays.asList("100", "200");
        queryWrapper.in(TaskDetail::getTaskType, str)
                .last(" and  date_format( created, '%Y-%m-%d' )= date_format( now(), '%Y-%m-%d' ) and `status`>=100");
        List<TaskDetail> list = taskDetailService.list(queryWrapper);
        List<TopBean> topList = new ArrayList<>();
        if (list.size() > 0) {
            topList = taskDetailService.getTvReceiptView("1");
        }
        allBean.setTopList(topList);
        List<UpBean> upList = taskDetailService.getTvNotReceiptList("1");
        allBean.setUpList(upList);
        return AjaxResult.success(allBean);
    }
}