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") public class SpianController { @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); //调拨位置的参数内容 //判断调拨结束后再次出片 } } } } @GetMapping("/all") //进片任务,传订单id //按订单优先进片 public Result selectAll(String orderid){ //return spianMapper.selectAll(); int cage1; //String orderid="A001"; //获取订单相关度最高的笼子排序 List 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("不可进片"); } @PostMapping("/save") public Result save(@RequestBody StorageCage spian){ spianservice.Save(spian); return Result.success(); } }