wu
2024-11-19 b092806a662b99310cdb050292de2721ba06acd9
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,86 @@
            } 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 +362,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 +446,24 @@
        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());
            homeMapper.AddQueue(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 +487,26 @@
    }
    // 开始上片
    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);
    }
@@ -510,7 +593,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 +620,11 @@
                    , 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<>();