wu
2023-09-15 74a84c4c625efe3c0c728266ff6d3df32f108cf6
springboot-vue3/src/main/java/com/example/springboot/controller/SpianController.java
@@ -1,20 +1,15 @@
package com.example.springboot.controller;
import com.example.springboot.common.Result;
import com.example.springboot.entity.StorageCage;
import com.example.springboot.mapper.SpianMapper;
import com.example.springboot.service.SpianService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
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 java.util.List;
import java.util.HashMap;
import java.util.Map;
@RestController
@RequestMapping("/spian")
@@ -23,88 +18,27 @@
    
    @Autowired
    SpianMapper spianMapper;
    @Autowired
    SpianService spianservice;
    //出片任务
@GetMapping("/all2")
    public Result selectdd(String orderid){
        //获取优先出片的位置
         StorageCage cageout=spianMapper.selectOut(orderid);
         int cage =cageout.getCage(); //储存出片位置,笼子格子几号玻璃
         int cell =cageout.getCell();
         int tier =cageout.getTier();
         double glasswidth=cageout.getGlassWidth();
         //判断玻璃内外片
         if(tier==2){
             //判断玻璃可直接出片时
                return Result.success("执行出片");
         }
         else{
            //获取格子的玻璃数量
           int state= spianMapper.selectGlassState(cage,cell);
            //判断内片是否需要调拨
            if(state==0){
             return Result.success("状态为0,直接出片");
             }else{
              //玻璃需要调拨时,判断属于哪个半区的笼子
               if(cage<6){
                StorageCage cagecell= spianMapper.selectGlassCage(cage,glasswidth,0,6);
                //获取调拨位置进行调拨
                return Result.success(cagecell);  //调拨位置的参数内容
                //判断调拨结束后再次出片
               }else{
                StorageCage cagecell= spianMapper.selectGlassCage(cage,glasswidth,5,11);
                //获取调拨位置进行调拨
                StorageCage ca=cagecell;
                return Result.success(cagecell);  //调拨位置的参数内容
                //判断调拨结束后再次出片
               }
             }
        }
    public void selectdd(String orderid){
       SpianService service=new SpianService();
       service.selectout(orderid);
    
}
   @GetMapping("/all")
   //进片任务,传订单id
   //按订单优先进片
    public Result selectAll(String orderid){
        //return spianMapper.selectAll();
        int cage1;
        //String orderid="A001";
        //获取订单相关度最高的笼子排序
        List<StorageCage> storageCage=spianMapper.selectAll(orderid);
        for (StorageCage storageCage2 : storageCage) {
            //保存订单优先顺序笼子号
            cage1=storageCage2.getCage();
            //判断该笼子号相邻最大的空格数
            int cages=spianMapper.selectCage(cage1);
            //判断选中笼子是否有空格
            StorageCage cages1=spianMapper.selectCage1(cage1);
            //有合适空格时进片
            if(cages>1 &&cages1.getTier()!=null){
                //执行进片
                return Result.success(cages1);
            }else{
                //返回不可进片
            }
        }
        return Result.success("不可进片");
    public void selectAll(Short glassid){
       SpianService service=new SpianService();
       service.selectAll(glassid);
      
    }
    
    @PostMapping("/save")
    public Result save(@RequestBody StorageCage spian){
        spianservice.Save(spian);
        return Result.success();
    }