wu
2024-11-14 5780c58879296cfced72012c8831c1d3cf4dafb2
springboot-vue3/src/main/java/com/example/springboot/service/StorageCageService.java
@@ -22,6 +22,7 @@
import com.example.springboot.entity.StorageTask;
import com.example.springboot.entity.device.PlcParameterObject;
import com.example.springboot.mapper.AlbaniaMapper;
import com.example.springboot.mapper.GlassInfoMapper;
import com.example.springboot.mapper.HomeMapper;
import com.example.springboot.mapper.QueueMapper;
import com.fasterxml.jackson.databind.ObjectMapper;
@@ -41,6 +42,8 @@
    private SpianService spianService;
    @Autowired
    private AlbaniaMapper albaniaMapper;
    @Autowired
    private GlassInfoMapper glassInfoMapper;
    public void EndTask(int types) {
        String A01glassid1 = spianService.queGlassid("DB103.128", 14).toString();
@@ -235,6 +238,23 @@
        return Result.success(map);
    }
    // 指定格子出片
    public Result AddOutGlass(Integer cell,Integer glasstype) {
        GlassInfo glass = albaniaMapper.SelectGlassInfo(glasstype);
        Map<String, Object> map = new HashMap<>();
        if(glass!=null){
        albaniaMapper.AddFinishNumber(glass.getFlowcard(),glass.getMateid(), glass.getTier());
        UpdateStroageCageByCell(cell, -1);// 玻璃数量-1
        // 增加出片队列的任务
        albaniaMapper.InsertOutTask(1, 0, cell, 2001,glass.getGlassid(),
        glass.getGlasstype(), glass.getFlowcard(),glass.getMateid(),glass.getTier());
        map.put("message", "200");
        }else{
        map.put("message", "300");
        }
        return Result.success(map);
    }
    // 查询进/出片任务
    public List<StorageTask> SelectStorageTask(int task_type) {
        List<StorageTask> storageTasks = new ArrayList<>();
@@ -250,47 +270,85 @@
            } else {
                loadrack = storageTask.getShelfRack();
            }
            storageTask.setstorageCage(homeMapper.SelectStorageByCell(loadrack));
            // storageTask.setstorageCage(homeMapper.SelectStorageByCell(loadrack));
            storageTask.setstorageCage(homeMapper.SelectStorageByCellGlass(storageTask.getId()));
        }
        return storageTasks;
    }
    //查询出片队列
    public List<Map> SelectOutTask() {
        return homeMapper.SelectOutTask();
    }
     //查询出片队列
     public List<Map> SelectOutLog() {
        return homeMapper.SelectOutLog();
    }
    // 查询进/出片任务
    public List<GlassInfo> SelectMeasure() {
        return homeMapper.SelectMeasure();
    }
     // 查询当前膜系厚度
     public MeasureSetting SelectSetting() {
    // 查询当前膜系厚度
    public MeasureSetting SelectSetting() {
        return homeMapper.SelectMeasureSetting();
    }
     // 查询测量宽高厚膜系
     public Map StorageCageForm() {
    // 查询测量宽高厚膜系
    public Map StorageCageForm() {
        return homeMapper.SelectMeasureWidthHeight();
    }
    // 手动完成任务
    public Result FinishTask() {
    // 手动结束任务
    public Result TerminateTask(int id) {
        for (int i = 1; i < 7; i++) {
            int taskcont = albaniaMapper.SelectTaskcount(); // 正在进行的任务数量
            System.out.println("任务数量:"+taskcont);
            System.out.println("任务数量:" + taskcont);
            if (taskcont == 0) {
                break;
            }
            StorageTask storageTask = homeMapper.SelectStorageTaskById();// 获取任务信息
            if (storageTask.getTaskType().equals("0")) {
                System.out.println("完成进片任务:"+storageTask.getId());
                System.out.println("结束进片任务:" + storageTask.getId());
                homeMapper.FinishTask(storageTask.getId(), 2);// 完成任务
                homeMapper.DeletequeueByGlassid(storageTask.getGlasstype().toString());
                glassInfoMapper.updateGlassNumber(storageTask.getGlasstype());// 减少扫描次数
            } else {
                System.out.println("结束出片任务:" + storageTask.getId());
                homeMapper.FinishTask(storageTask.getId(), 2);// 完成任务
                UpdateStroageCageByCell(Integer.parseInt(storageTask.getShelfRack()), 1);// 玻璃数量+1
                homeMapper.OutGlassNo(storageTask.getGlasstype());// 还原出片完成数量
            }
        }
        Map<String, Object> map = new HashMap<>();
        return Result.success(map);
    }
    // 手动完成任务
    public Result FinishTask() {
        for (int i = 1; i < 7; i++) {
            int taskcont = albaniaMapper.SelectTaskcount(); // 正在进行的任务数量
            System.out.println("任务数量:" + taskcont);
            if (taskcont == 0) {
                break;
            }
            StorageTask storageTask = homeMapper.SelectStorageTaskById();// 获取任务信息
            if (storageTask.getTaskType().equals("0")) {
                System.out.println("完成进片任务:" + storageTask.getId());
                homeMapper.FinishTask(storageTask.getId(), 1);// 完成任务
                UpdateStroageCageByCell(Integer.parseInt(storageTask.getLoadrack()), 1);// 玻璃数量+1
                homeMapper.DeletequeueByGlassid(storageTask.getGlassId());
                homeMapper.DeletequeueByGlassid(storageTask.getGlasstype().toString());
            } else {
                System.out.println("完成出片任务:"+storageTask.getId());
                System.out.println("完成出片任务:" + storageTask.getId());
                homeMapper.FinishTask(storageTask.getId(), 1);// 完成任务
                StorageCage storageCage = homeMapper.SelectStorageByCell(storageTask.getShelfRack());
                if (storageCage.getNumber()==null||storageCage.getNumber() ==0) {
                if (storageCage.getNumber() == null || storageCage.getNumber() == 0) {
                    UpdateStroageCageByCell(Integer.parseInt(storageTask.getShelfRack()), 0);// 清除格内信息
                }
                // homeMapper.AddGlassNo(storageTask.getFlowcard(), storageTask.getMateid(), storageTask.geTier());// 添加出片完成数量
                // homeMapper.AddGlassNo(storageTask.getFlowcard(), storageTask.getMateid(),
                // storageTask.geTier());// 添加出片完成数量
            }
        }
@@ -303,18 +361,18 @@
    public Result LoseTask() {
        for (int i = 1; i < 7; i++) {
            int taskcont = albaniaMapper.SelectTaskcount(); // 正在进行的任务数量
            System.out.println("任务数量:"+taskcont);
            System.out.println("任务数量:" + taskcont);
            if (taskcont == 0) {
                break;
            }
            StorageTask storageTask = homeMapper.SelectStorageTaskById();// 获取任务信息
            if (storageTask.getTaskType().equals("0")) {
                System.out.println("完成进片任务:"+storageTask.getId());
                System.out.println("完成进片任务:" + storageTask.getId());
                homeMapper.FinishTask(storageTask.getId(), 1);// 完成任务
                UpdateStroageCageByCell(Integer.parseInt(storageTask.getLoadrack()), 1);// 玻璃数量+1
                homeMapper.DeletequeueByGlassid(storageTask.getGlassId());
                homeMapper.DeletequeueByGlassid(storageTask.getGlasstype().toString());
            } else {
                System.out.println("完成出片任务:"+storageTask.getId());
                System.out.println("完成出片任务:" + storageTask.getId());
                homeMapper.FinishTask(storageTask.getId(), 1);// 完成任务
                StorageCage storageCage = homeMapper.SelectStorageByCell(storageTask.getShelfRack());
                if (storageCage.getNumber() > 1) {
@@ -387,16 +445,22 @@
        return Result.success(map);
    }
    // 修改测量信息
    // 人工匹配修改测量信息
    public Result UpdateQueue(GlassInfo glassInfo) {
        // 删除数据
        QueueMapper.DeleteQueue();
        homeMapper.AddQueue(glassInfo.getFlowcard(), glassInfo.getWidth(), glassInfo.getHeight(),
                glassInfo.getGlasstype(), glassInfo.getThickness(), glassInfo.getTier(),glassInfo.getMateid());
        Map<String, Object> map = new HashMap<>();
        PlcParameterObject plcmes = PLCAutoMes.PlcMesObject;
        S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(), (short) 1);
        map.put("message", "200");
        // QueueMapper.DeleteQueue();
        System.out.println("人工匹配ID:"+glassInfo.getMateid()+"膜系:"+glassInfo.getFilms());
        int count = homeMapper.SelectQueue();
        if (count > 0) {
            homeMapper.UpdateQueue(glassInfo.getFlowcard(), glassInfo.getWidth(), glassInfo.getHeight(),
                    glassInfo.getGlasstype(), glassInfo.getThickness(), glassInfo.getTier(), glassInfo.getMateid());
            PlcParameterObject plcmes = PLCAutoMes.PlcMesObject;
            S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(), (short) 1);
            map.put("message", "200");
        } else {
            map.put("message", "300");
        }
        return Result.success(map);
    }
@@ -420,10 +484,24 @@
    }
    // 开始上片
    public Result StartChange(String flowcard,int orderstate) {
    public Result StartChange(String flowcard, int orderstate) {
        homeMapper.StartChange(flowcard, orderstate);
        Map<String, Object> map = new HashMap<>();
        int state = homeMapper.selectStartChange(flowcard);
        map.put("message", "200");
        return Result.success(map);
    }
    // 开始/暂停出片队列
    public Result UpdateOutTask(Integer id, Integer state) {
        homeMapper.UpdateOutTask(id, state);
        Map<String, Object> map = new HashMap<>();
        map.put("message", "200");
        return Result.success(map);
    }
    //删除出片队列
    public Result DeleteOutTask(Integer id) {
        homeMapper.DeleteOutTask(id);
        Map<String, Object> map = new HashMap<>();
        map.put("message", "200");
        return Result.success(map);
    }
@@ -475,7 +553,7 @@
                        &&
                        item.get("films") != null && item.get("base") != null && item.get("height") != null
                        && item.get("thickness") != null && item.get("quantity") != null
                        && item.get("matching") != null))
                        && item.get("matching") != null)&& item.get("Customer") != null)
                .collect(Collectors.toList());
        TypeDatas.forEach(item -> {
@@ -510,7 +588,8 @@
        int count = 1;
        for (Map map : RemoveErrorData) {
            String key = map.get("base").toString() + "_" + map.get("height").toString() + "_"
                    + map.get("thickness").toString() + "_" + map.get("films").toString()+ "_" + map.get("order").toString();
                    + map.get("thickness").toString() + "_" + map.get("films").toString() + "_"
                    + map.get("order").toString() + "_" + map.get("matching").toString();
            String tierkey = map.get("order").toString() + "_" + map.get("matching").toString();
@@ -536,9 +615,9 @@
                    , Integer.parseInt(map.get("tier").toString()), map.get("films").toString(),
                    Double.parseDouble(map.get("base").toString()), Double.parseDouble(map.get("height").toString()),
                    Double.parseDouble(map.get("thickness").toString()),
                    Integer.parseInt(map.get("quantity").toString()), groupby.get(tierkey));// 需要计算总层数
                    Integer.parseInt(map.get("quantity").toString()), groupby.get(tierkey),map.get("Customer").toString());// 需要计算总层数
            // 订单内总层数
            homeMapper.InsertFlowcard(map.get("order").toString(), OrderFinishedProduct.get(tierkey + "_Sum"));
            homeMapper.InsertFlowcard(map.get("order").toString(), OrderFinishedProduct.get(tierkey + "_Sum"), map.get("Customer").toString());
            count++;
        }
        Map<String, Object> ResultCode = new HashMap<>();