ZengTao
2024-01-19 c13207a19a92c845fcb8c356e01f073142d9084e
springboot-vue3/src/main/java/com/example/springboot/controller/HomeController.java
@@ -4,6 +4,7 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit;
import org.springframework.beans.factory.annotation.Autowired;
@@ -11,16 +12,23 @@
import com.example.springboot.mapper.SpianMapper;
import com.example.springboot.service.HomeService;
import com.example.springboot.service.JdbcConnections;
import com.example.springboot.service.North_Glass_Buffer1Service;
import com.example.springboot.service.OutSliceServive;
import com.example.springboot.service.SpianService;
import com.example.springboot.service.StorageCageService;
import com.example.springboot.common.Result;
import com.example.springboot.component.Plchome;
import com.example.springboot.component.S7control;
import com.example.springboot.entity.CarPosition;
import com.example.springboot.entity.StorageCage;
import com.example.springboot.entity.alarmmg;
import com.example.springboot.entity.north_glass_buffer1;
import com.example.springboot.entity.Out_slice;
import org.springframework.web.bind.annotation.*;
import com.example.springboot.entity.Queue;
import com.example.springboot.entity.RolePermission;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/home")
@@ -29,20 +37,37 @@
  HomeMapper homeMapper;
  @Autowired
  HomeService storageRackService;
  @Autowired
  SpianService spianService;
  @Autowired
  SpianMapper spianMapper;
  @Autowired
  OutSliceServive outSliceServive;
  @Autowired
  StorageCageService storageCageService;
  @Autowired
  North_Glass_Buffer1Service north_Glass_Buffer1Service;
  @Autowired
  private JdbcConnections jdbcConnections;
  // 获取当前登录用户权限
  @GetMapping("/SelectPermissionByUserName")
  public Result SelectPermissionByUserName(String username) throws SQLException {
    Map<String, Object> map = new HashMap<>();
    List<RolePermission> permission = homeMapper.SelectPermissionByUserName(username);
    map.put("permission", permission);
    return Result.success(map);
  }
  // 查询理片笼使用情况
  @GetMapping("/load")
  public Result selectAll() {
    // storageCageService.EndTask(1);
    // UpdateTask(2,0,"X12345610402GV");
    List<StorageCage> storageCagelist = homeMapper.selectAll();
    Map<String, Object> map = new HashMap<>();
    map.put("list", storageCagelist);
@@ -61,21 +86,6 @@
    map.put("list2", storageCagelist2);
    map.put("list3", storageCagelist3);
    map.put("list4", storageCagelist4);
    return Result.success(map);
  }
  // 查询进/出片任务
  @GetMapping("/loadinout")
  public Result selectinout(Integer types) throws SQLException{
    List<StorageCage> storageCageinout = homeMapper.selectinout(types);
    for (StorageCage storageCage : storageCageinout) {
      storageCage.setnorth_glass_buffer1s(jdbcConnections.SelectGlassByGlassIdOrderIdFrameId(storageCage.getGlassId(), "", ""));
      // storageCage.setnorth_glass_buffer1s(homeMapper.SelectBoxNo(storageCage.getGlassId()));
    }
    Map<String, Object> map = new HashMap<>();
    map.put("list", storageCageinout);
    return Result.success(map);
  }
@@ -115,20 +125,21 @@
    return Result.success(map);
  }
  // 手动完成进/出片任务
  // 手动完成进/出片任务 终止进片/出片任务
  @GetMapping("/UpdateTask")
  public Result UpdateTask(Integer types, Integer shelfrack, String glassid) {
    storageCageService.UpdateTask(types, shelfrack, glassid);
    Map<String, Object> map = new HashMap<>();
    homeMapper.UpdateTask(types);
    StorageCage glass = homeMapper.SelectGlassInfo(glassid);
    if (types == 0) {
      homeMapper.UpdateCageTask1(glassid);
      S7control.getinstance().WriteWord("DB105.14", (short) 0);
    } else {
      spianMapper.UpdataOutCage1(glass.getGlassWidth(), glass.getCage(), glass.getCell());
      homeMapper.UpdateCageTask2(glassid);
      S7control.getinstance().WriteWord("DB105.12", (short) 0);
    }
    map.put("message3", "200");
    return Result.success(map);
  }
  // 终止进片/出片任务
  @GetMapping("/EndTask")
  public Result EndTask(int types) {
    storageCageService.EndTask(types);
    Map<String, Object> map = new HashMap<>();
    map.put("message3", "200");
    return Result.success(map);
  }
@@ -144,13 +155,8 @@
  // 查询理片笼详情
  @GetMapping("/SelectCageInfo")
  public Result SelectCageInfo(short cage) throws SQLException {
  public Result SelectCageInfo(String cage) throws SQLException {
    List<StorageCage> cageinfo = homeMapper.SelectCageInfo(cage);
    for (StorageCage storageCage : cageinfo) {
      // storageCage.setnorth_glass_buffer1s(homeMapper.SelectBoxNo(storageCage.getGlassId()));
      storageCage.setnorth_glass_buffer1s(jdbcConnections.SelectGlassByGlassIdOrderIdFrameId(storageCage.getGlassId(), "", ""));
    }
    Map<String, Object> map = new HashMap<>();
    map.put("cageinfo", cageinfo);
    return Result.success(map);
@@ -159,9 +165,7 @@
  // 手动删除理片笼玻璃
  @GetMapping("/DeleteByGlassID")
  public Result DeleteByGlassID(String glassid) {
    StorageCage glassinfor = homeMapper.SelectGlassInfo(glassid);
    spianMapper.UpdataOutCage1(glassinfor.getGlassWidth(), glassinfor.getCage(), glassinfor.getCell());
    homeMapper.DeleteByGlassID(glassid);
    outSliceServive.DeleteByGlassIDs(glassid);
    Map<String, Object> map = new HashMap<>();
    map.put("message3", "200");
    return Result.success(map);
@@ -169,21 +173,34 @@
  // 根据玻璃id手动出片
  @GetMapping("/OutByGlassID")
  public Result OutByGlassID(String glassid) {
  public Result OutByGlassID(String glassid) throws SQLException {
    Map<String, Object> map = new HashMap<>();
    // 调用伍上片函数
    short result = homeMapper.SelectStorageByGlassId(glassid);
    if (result > 0) {
      Short results = spianService.selectout2(glassid);
      if (results == 200) {
        map.put("message2", "200");
      } else if (results == 300) {
        map.put("message2", "300");
    Out_slice result = homeMapper.SelectQueueByglassid(glassid);
    if (result == null) {
      north_glass_buffer1 north_glass_buffer1 = jdbcConnections.SelectGlassByGlassIdOrderIdFrameId(glassid, "", "");
      String flip = jdbcConnections.SelectFlipByFrameBarcode(north_glass_buffer1.getFrameBarcode());
      if (flip != null) {
        String position = jdbcConnections.SelectPositionByFrameBarcode(north_glass_buffer1.getFrameBarcode());
        if (position != null) {
          String framelength = jdbcConnections.SelectFrameLengthByFrameBarcode(north_glass_buffer1.getFrameBarcode());
          String frameheight = jdbcConnections.SelectFrameHeightByFrameBarcode(north_glass_buffer1.getFrameBarcode());
          int sequence = homeMapper.SelectMaxSquence();
          homeMapper.AddOutSliceS(glassid, flip, north_glass_buffer1.getFrameBarcode(),
              north_glass_buffer1.getglasslengthmm().toString(), north_glass_buffer1.getglassheightmm().toString(),
              sequence, position, (short) 0, north_glass_buffer1.getordernumber(), north_glass_buffer1.getlistnumber(),
              north_glass_buffer1.getboxnumber(), north_glass_buffer1.getglasslength().toString(),
              north_glass_buffer1.getglassheight().toString(), framelength, frameheight);
          map.put("message2", "200");
        } else {
          map.put("message2", "300");
        }
      } else {
        map.put("message2", "400");
      }
    } else {
      map.put("message2", "500");
    }
    return Result.success(map);
  }
@@ -208,14 +225,10 @@
  // 根据玻璃id查询玻璃信息
  @GetMapping("/SelectGlassByGlassID")
  public Result SelectGlassByGlassID(String glassid) throws SQLException {
    // north_glass_buffer1 north_glass_buffer1s = homeMapper.SelectGlassByGlassID(glassid);
    north_glass_buffer1 north_glass_buffer1s=jdbcConnections.SelectGlassByGlassIdOrderIdFrameId(glassid, "", "");
    Queue queue = jdbcConnections.SelectGlassByGlassIdOrderIdFrameIdQueue(glassid, "", "");
    Map<String, Object> map = new HashMap<>();
    if(glassid!=""){
    map.put("form", north_glass_buffer1s);
    if (glassid != "") {
      map.put("form", queue);
    }
    return Result.success(map);
  }
@@ -231,14 +244,20 @@
  // 手动往理片笼添加玻璃
  @PostMapping("/Inglassid")
  public Result Inglassid(short cage, short cell, short tier, @RequestBody north_glass_buffer1 north_glass_buffer1s) {
  public Result Inglassid(short cage, short cell, short tier, @RequestBody Queue queue) {
    Map<String, Object> map = new HashMap<>();
    short result = homeMapper.SelectStorageByGlassId(north_glass_buffer1s.getbarcode());
    if (result > 0) {
      map.put("message", "300");
    short result = homeMapper.SelectStorageByGlassId(queue.getglassId());
    Double cagewidth = homeMapper.SelectCageWidth(cage, cell);
    if (cagewidth - queue.getglasswidth() - 400 < 0 || (cagewidth == 2750 && queue.getglasswidth() > cagewidth)) {
      map.put("message", "400");
    } else {
      homeMapper.Inglassid(north_glass_buffer1s, cage, cell, tier);
      spianMapper.UpdataAddCage1(north_glass_buffer1s.getglasslengthmm(), cage, cell);
      if (result > 0) {
        map.put("message", "300");
      } else {
        homeMapper.Inglassid(queue, cage, cell, tier);
        spianMapper.UpdataAddCage1(queue.getglasswidth(), cage, cell);
        map.put("message", "200");
      }
    }
    return Result.success(map);
  }
@@ -254,16 +273,23 @@
  // 手动添加扫码位玻璃
  @PostMapping("/InsertQueueGlassId")
  public Result InsertQueueGlassId(String glassid, Short id) {
  public Result InsertQueueGlassId(Short id, @RequestBody Queue queue) {
    Map<String, Object> map = new HashMap<>();
    short result = homeMapper.SelectStorageByGlassId(glassid);
    Short zhi=200;
    short result = homeMapper.SelectStorageByGlassId(queue.getglassId());
    if (result > 0) {
      map.put("message", "300");
    } else {
      homeMapper.InsertQueueGlassId(glassid, id);
    //调用伍存储过程
    spianService.selectAll(glassid);
      map.put("message", "200");
      if (id == 1) {
        // 调用伍存储过程
        zhi=spianService.selectAll(queue.getglassId());
        if(zhi==200){
          homeMapper.InsertQueueGlassId(queue, id);
        }
      }
      map.put("message",zhi);
    }
    return Result.success(map);
  }
@@ -298,55 +324,146 @@
  // 根据铝框id获取对应玻璃信息
  @PostMapping("/SelectAluminumFrameInfoById")
  public Result SelectAluminumFrameInfoById(String FrameBarcode) throws SQLException {
    // List<north_glass_buffer1> listAluminumFrame = homeMapper.SelectAluminumFrameInfoById(FrameBarcode);
    List<north_glass_buffer1> listAluminumFrame = jdbcConnections.SelectGlassByGlassIdOrderIdFrameIds("","",FrameBarcode);
    String flip=homeMapper.SelectFlipByFrameBarcode(FrameBarcode);
    for (north_glass_buffer1 north_glass_buffer1 : listAluminumFrame) {
      north_glass_buffer1.setstorageCage(homeMapper.SelectStorageGlassById(north_glass_buffer1.getbarcode()));
      north_glass_buffer1.setOut_slice(homeMapper.SelectQueueByglassid(north_glass_buffer1.getbarcode()));
    }
    String flip = jdbcConnections.SelectFlipByFrameBarcode(FrameBarcode);
    List<north_glass_buffer1> AluminumFrame = north_Glass_Buffer1Service.SelectAluminumFrameInfoById(FrameBarcode);
    Map<String, Object> map = new HashMap<>();
    map.put("listAluminumFrame", listAluminumFrame);
    map.put("AluminumFrame", AluminumFrame);
    map.put("flip", flip);
    return Result.success(map);
  }
  // 查询出片队列数据
  @PostMapping("/SelectProductionqueue")
  public Result SelectProductionqueue() throws SQLException {
    List<Out_slice> listoutslice = homeMapper.SelectProductionqueue();
    for (Out_slice out_slice : listoutslice) {
      out_slice.setnorth_glass_buffer1s(jdbcConnections.SelectGlassByGlassIdOrderIdFrameId(out_slice.getGlassId(), "", ""));
      out_slice.setstorageCage(homeMapper.SelectStorageGlassById(out_slice.getGlassId()));
    }
    Map<String, Object> maps = new HashMap<>();
    maps.put("listoutslice", listoutslice);
    return Result.success(maps);
  }
  // 根据玻璃id删除出片队列玻璃
  // 根据铝框id删除出片队列玻璃
  @PostMapping("/DeleteProductionQueueGlass")
  public Result DeleteProductionQueueGlass(Short id) {
    homeMapper.DeleteProductionQueueGlass(id);
  public Result DeleteProductionQueueGlass(String FrameNo) {
    homeMapper.CompleteQueueByFrameNo(FrameNo);
    Map<String, Object> map = new HashMap<>();
    map.put("message", "200");
    return Result.success(map);
  }
  //
  // 添加铝框id对应玻璃到出片队列
  @PostMapping("/AddOutSliceS")
  public Result AddOutSliceS(@RequestBody String[][] AluminumFrames ) {
    for (String[] item : AluminumFrames) {
      if(item[1]=="true"){
        homeMapper.AddOutSliceS(item[0],item[2],item[3],item[4],item[5]);
  public Result AddOutSliceS(String FrameNo) throws SQLException {
    // public Result AddOutSliceS(@RequestBody String[][] AluminumFrames) throws
    // SQLException {
    north_Glass_Buffer1Service.AddOutSliceS(FrameNo);
    Map<String, Object> map = new HashMap<>();
    map.put("message", "200");
    return Result.success(map);
  }
  // 修改出片队列出片状态
  @PostMapping("/isAllowQueues")
  public Result isAllowQueues(Boolean isAllowQueue, @RequestBody List<Out_slice> out_slice) {
    Plchome.isAllowQueue = isAllowQueue;
    // if (isAllowQueue == true) {
    // for (Out_slice out_slice2 : out_slice) {
    // homeMapper.UpdateOutSliceSequence(out_slice2.getGlassId(),
    // out_slice2.getSequence());
    // }
    // }
    Map<String, Object> map = new HashMap<>();
    map.put("message", "200");
    return Result.success(map);
  }
  // 修改出片队列调序状态与出片队列调序
  @PostMapping("/isAllowReorderings")
  public Result isAllowReorderings(Boolean isAllowReordering, @RequestBody List<Out_slice> out_slice) {
    Plchome.isAllowReordering = isAllowReordering;
    if (isAllowReordering == true) {
      for (Out_slice out_slice2 : out_slice) {
        homeMapper.UpdateOutSliceSequence(out_slice2.getGlassId(), out_slice2.getSequence());
      }
    }
    System.out.println(AluminumFrames);
    Map<String, Object> map = new HashMap<>();
    map.put("message", "200");
    return Result.success(map);
  }
  // 修改出片队列状态与出片队列调序
  @PostMapping("/isConfirmStates")
  public Result isConfirmStates(Boolean isConfirmStates) {
    Plchome.isConfirm = isConfirmStates;
    Map<String, Object> map = new HashMap<>();
    map.put("message", "200");
    return Result.success(map);
  }
  // 手动完成任务
  @PostMapping("/CompleteQueue")
  public Result CompleteQueue(String id, String frameid, String glassid) {
    return outSliceServive.CompleteQueue(id, frameid, glassid);
  }
  // 手动完成任务
  @PostMapping("/FrameStateUpdate")
  public Result FrameStateUpdate(String frameno) {
    return outSliceServive.FrameStateUpdate(frameno);
  }
  // 手动写入plc扫码位玻璃id
  @PostMapping("/WriteGlassID")
  public Result WriteGlassID(String glassid) {
    // 扫码位写入玻璃id
    spianService.outmesid(glassid, "DB103.286");
    Map<String, Object> map = new HashMap<>();
    map.put("message", "200");
    return Result.success(map);
  }
  // 清除指定位置id
  @PostMapping("/ClearGlassId")
  public Result ClearGlassId(String position, String glassid) {
    return storageCageService.ClearGlassId(position, glassid);
  }
  // 清除待确认铝框信息
  @PostMapping("/CloseForm7")
  public Result CloseForm7() {
    Plchome.AluminumFrame = null;
    Map<String, Object> map = new HashMap<>();
    map.put("message", "200");
    return Result.success(map);
  }
  // 终止进/出片任务
  @PostMapping("/TaskStop")
  public Result TaskStop(Short num) {
    storageCageService.EndTask(num);
    Map<String, Object> map = new HashMap<>();
    map.put("message", "200");
    return Result.success(map);
  }
  // 软急停
  @PostMapping("/SoftEmergencyStop")
  public Result SoftEmergencyStop(Short num) {
    String position = "DB101.11.3";
    Map<String, Object> map = new HashMap<>();
    if (S7control.getinstance().CheckConnected() == true) {
      S7control.getinstance().WriteBit(position, false);
      try {
        TimeUnit.MILLISECONDS.sleep(300);
      } catch (InterruptedException e) {
        e.printStackTrace();
      }
      S7control.getinstance().WriteBit(position, true);
      map.put("message", "200");
    } else {
      map.put("message", "300");
    }
    return Result.success(map);
  }
  // 切换PLC获取二维码方式
  @PostMapping("/SwitchScanMethod")
  public Result SwitchScanMethod(Boolean scansmethod) {
    S7control.getinstance().WriteBit("DB101.11.4", scansmethod);
    Map<String, Object> map = new HashMap<>();
    map.put("message", "200");
    return Result.success(map);
  }
}