wu
2024-05-06 a76880c78045275a2d8b9312ed4c7b9c232e69ed
Merge remote-tracking branch 'origin/master'
23个文件已修改
870 ■■■■ 已修改文件
hangzhoumesParent/common/servicebase/src/main/java/com/mes/uppattenusage/controller/UpPattenUsageController.java 106 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/UnLoadGlassApplication.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/common/Plcdownglass.java 84 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/entity/DownGlassTask.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/DownGlassInfoService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/DownGlassTaskService.java 44 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/impl/DownGlassInfoServiceImpl.java 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/impl/DownGlassTaskServiceImpl.java 39 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/controller/DownStorageCageDetailsController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/entity/DownStorageCage.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/entity/DownStorageCageDetails.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/DownStorageCageDetailsService.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/DownStorageCageService.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageDetailsServiceImpl.java 114 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageServiceImpl.java 223 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/entity/DownWorkstationTask.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/DownWorkstationService.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/DownWorkstationTaskService.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/impl/DownWorkstationServiceImpl.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/impl/DownWorkstationTaskServiceImpl.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/glassinfo/entity/GlassInfo.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/glassinfo/service/impl/GlassInfoServiceImpl.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/UnLoadGlassModule/src/test/java/mes/UnloadGlassModuleApplicationTest.java 47 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/common/servicebase/src/main/java/com/mes/uppattenusage/controller/UpPattenUsageController.java
@@ -1,56 +1,56 @@
package com.mes.uppattenusage.controller;
import com.mes.glassinfo.service.GlassInfoService;
import com.mes.uppattenusage.entity.OptimizeUpPattenUsage;
import com.mes.uppattenusage.entity.UpPattenUsage;
import com.mes.glassinfo.entity.GlassInfo;
import com.mes.uppattenusage.service.UpPattenUsageService;
import com.mes.utils.Result;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
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;
/**
 * <p>
 *  前端控制器
 * </p>
 *
 * @author zhoush
 * @since 2024-04-18
 */
@RestController
@RequestMapping("/up-patten-usage")
@Slf4j
public class UpPattenUsageController {
    @Autowired
    private UpPattenUsageService upPattenUsageService;
    @Autowired
    private  GlassInfoService glassInfoService;
    @ApiOperation("显示正在出片的工程信息")
    @GetMapping("/prioritylist") //查询现在上片机的玻璃信息
    public Result<List<UpPattenUsage>> prioritylist() {
        List<UpPattenUsage> glass = upPattenUsageService.prioritylist(1);
        log.info("显示工位上的玻璃信息:{}", glass);
        return Result.build(200, "", glass);
    }
    @ApiOperation("点击选择工程保存后进行调用,传入工程号")
    @GetMapping("/saveUpPattenUsage") //查询现在上片机的玻璃信息
    public Result<Integer> saveUpPattenUsage(String engineeringId) {
        List<UpPattenUsage> upPattenUsages = upPattenUsageService.selectSaveUpPattenUsage(engineeringId);
        log.info("将查询出的UpPattenUsage数据保存到数据库表里");
        upPattenUsageService.saveUpPattenUsage(upPattenUsages);
        log.info("从PP表查询glassinfo的数据并保存到表里");
        List<GlassInfo> glassinfo=glassInfoService.selectGlassInfo(engineeringId);
        return Result.build(200, "", 200);
    }
}
//
//import com.mes.uppattenusage.service.GlassInfoService;
//import com.mes.uppattenusage.entity.OptimizeUpPattenUsage;
//import com.mes.uppattenusage.entity.UpPattenUsage;
//import com.mes.glassinfo.entity.GlassInfo;
//import com.mes.uppattenusage.service.UpPattenUsageService;
//import com.mes.utils.Result;
//import io.swagger.annotations.ApiOperation;
//import lombok.extern.slf4j.Slf4j;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.web.bind.annotation.GetMapping;
//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;
//
///**
// * <p>
// *  前端控制器
// * </p>
// *
// * @author zhoush
// * @since 2024-04-18
// */
//@RestController
//@RequestMapping("/up-patten-usage")
//@Slf4j
//public class UpPattenUsageController {
//
//    @Autowired
//    private UpPattenUsageService upPattenUsageService;
//    @Autowired
//    private  GlassInfoService glassInfoService;
//    @ApiOperation("显示正在出片的工程信息")
//    @GetMapping("/prioritylist") //查询现在上片机的玻璃信息
//    public Result<List<UpPattenUsage>> prioritylist() {
//        List<UpPattenUsage> glass = upPattenUsageService.prioritylist(1);
//        log.info("显示工位上的玻璃信息:{}", glass);
//        return Result.build(200, "", glass);
//    }
//
//    @ApiOperation("点击选择工程保存后进行调用,传入工程号")
//    @GetMapping("/saveUpPattenUsage") //查询现在上片机的玻璃信息
//    public Result<Integer> saveUpPattenUsage(String engineeringId) {
//        List<UpPattenUsage> upPattenUsages = upPattenUsageService.selectSaveUpPattenUsage(engineeringId);
//        log.info("将查询出的UpPattenUsage数据保存到数据库表里");
//        upPattenUsageService.saveUpPattenUsage(upPattenUsages);
//        log.info("从PP表查询glassinfo的数据并保存到表里");
//        List<GlassInfo> glassinfo=glassInfoService.selectGlassInfo(engineeringId);
//        return Result.build(200, "", 200);
//    }
//}
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/UnLoadGlassApplication.java
@@ -7,6 +7,7 @@
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.scheduling.annotation.EnableScheduling;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
/**
@@ -19,6 +20,7 @@
@EnableSwagger2
@EnableDiscoveryClient
@MapperScan(basePackages = "com.mes.*.mapper")
@EnableScheduling
public class UnLoadGlassApplication {
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/common/Plcdownglass.java
@@ -2,24 +2,21 @@
import cn.hutool.json.JSONObject;
import com.mes.device.PlcParameterObject;
import com.mes.downglassinfo.entity.DownGlassTask;
import com.mes.downglassinfo.service.DownGlassTaskService;
import com.mes.downstorage.entity.DownStorageCageDetails;
import com.mes.downstorage.mapper.DownStorageCageDetailsMapper;
import com.mes.downstorage.service.DownStorageCageService;
import com.mes.downworkstation.service.DownWorkstationService;
import com.mes.glassinfo.entity.GlassInfo;
import com.mes.glassinfo.service.GlassInfoService;
import com.mes.tools.WebSocketServer;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.util.List;
import java.util.function.Supplier;
@Component
@Slf4j
public class Plcdownglass extends Thread {
public class Plcdownglass {
    public static final String RESULT_IN = "1";
    public static final String RESULT_OUT = "2";
@@ -28,54 +25,41 @@
    @Autowired
    private DownStorageCageService downStorageCageService;
    @Autowired
  private DownWorkstationService downWorkstationService;
//     private final Supplier<DownWorkstationService> plcServiceSupplier;
//
//    public Plcdownglass() {
//        this.plcServiceSupplier = () -> WebSocketServer.applicationContext.getBean(DownWorkstationService.class);
//    }
    private DownWorkstationService downWorkstationService;
    @Scheduled(fixedDelay = 300)
    public void PlcdownglassTask() throws InterruptedException {
        JSONObject jsonObject = new JSONObject();
        try {
            Thread.sleep(300);
    @Override
    public void run() {
        while (this != null) {
            JSONObject jsonObject = new JSONObject();
            try {
                Thread.sleep(100);
                downWorkstationService = WebSocketServer.applicationContext.getBean(DownWorkstationService.class);
                downStorageCageService = WebSocketServer.applicationContext.getBean(DownStorageCageService.class);
                //                String result = S7control.getinstance().ReadWord("DB14.0", 1).get(0) + "";
            //                String result = S7control.getinstance().ReadWord("DB14.0", 1).get(0) + "";
//                String number = S7control.getinstance().ReadWord("DB14.2", 1).get(0) + "";
                String result ="1";
                String number ="1";
                // 进片请求
                if (RESULT_IN.equals(result)) {
            String result = "2";
            String number = "1";
            // 进片请求
            if (RESULT_IN.equals(result)) {
                downStorageCageService.processInto(number);
            }
            // 出片请求
            else if (RESULT_OUT.equals(result)) {
                downStorageCageService.processOut();
            }
            // 进出片请求
            else if (RESULT_IN_OUT.equals(result)) {
                // 先出后进
                if (!downStorageCageService.processOut()) {
                    downStorageCageService.processInto(number);
                }
                // 出片请求
                else if (RESULT_OUT.equals(result)) {
                    downStorageCageService.processOut();
                }
                // 进出片请求
                else if (RESULT_IN_OUT.equals(result)) {
                    // 先出后进
                    if (!downStorageCageService.processOut()) {
                        downStorageCageService.processInto(number);
                    }
                }
                downWorkstationService.insertdownglassinfo();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
            //下片更新
            downWorkstationService.insertdownglassinfo();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/entity/DownGlassTask.java
@@ -71,5 +71,8 @@
     */
    private Integer taskStauts;
    /**
     * 玻璃id
     */
    private String glassId;
}
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/DownGlassInfoService.java
@@ -6,8 +6,15 @@
public interface DownGlassInfoService extends IService<DownGlassInfo> {
    /**
     * @param flowCardId
     * @return // 根据流程卡号查询最大序号
     */
    Integer getMaxSequenceByFlowCardId(String flowCardId);
    /**
     * @param downGlassInfo 插入下片信息
     */
    void insertDownGlassInfo(DownGlassInfo downGlassInfo);
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/DownGlassTaskService.java
@@ -14,21 +14,51 @@
 * @since 2024-04-07
 */
public interface DownGlassTaskService extends IService<DownGlassTask> {
    /**
     * 查询任务状态为1的信息
     *
     * @return
     */
    List<DownGlassTask> getUnloadingTaskState();
    /**
     * 更新任务状态
     *
     * @return
     */
    void updateTaskStateToZero(long id);
    /**
     * 删除任务
     *
     * @return
     */
    void deleteTask(String id);
    DownGlassTask selectLastOutCacheInfo(String endCell);
    Integer insertCacheTask(DownGlassTask downGlassTask);
    List<DownGlassTask> selectInputTaskCache();
    /**
     * 查询出片任务
     *
     * @return
     */
    DownGlassTask selectLastOutCacheInfo(String endCell);
    /**
     * 插入任务
     *
     * @return
     */
    Integer insertCacheTask(DownGlassTask downGlassTask);
    /**
     * 查询进片任务
     *
     * @return
     */
    List<DownGlassTask> selectInputTaskCache();
    /**
     * 查询出片任务 备用
     *
     * @return
     */
    List<DownGlassTask> selectOutTaskCache();
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/impl/DownGlassInfoServiceImpl.java
@@ -1,6 +1,8 @@
package com.mes.downglassinfo.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.mes.downglassinfo.entity.DownGlassInfo;
import com.mes.downglassinfo.entity.DownGlassTask;
@@ -22,25 +24,21 @@
    // 根据流程卡号查询最大序号
    @Override
    public Integer getMaxSequenceByFlowCardId(String flowCardId) {
        QueryWrapper<DownGlassInfo> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("flow_card_id", flowCardId);
        queryWrapper.orderByDesc("sequence"); // 按照序号倒序排序
        queryWrapper.select("sequence").last("LIMIT 1"); // 选择最大序号并限制结果为1条记录
        DownGlassInfo downGlassInfo = baseMapper.selectOne(queryWrapper);
        if (downGlassInfo != null) {
            return downGlassInfo.getSequence();
        }
        return 0;
        LambdaQueryWrapper<DownGlassInfo> lambdaQueryWrapper = Wrappers.lambdaQuery();
        lambdaQueryWrapper.eq(DownGlassInfo::getFlowCardId, flowCardId)
                .select(DownGlassInfo::getSequence)
                .orderByDesc(DownGlassInfo::getSequence)
                .last("LIMIT 1");
        DownGlassInfo downGlassInfo = baseMapper.selectOne(lambdaQueryWrapper);
        return downGlassInfo != null ? downGlassInfo.getSequence() : 0;
    }
    @Override
    public void insertDownGlassInfo(DownGlassInfo downGlassInfo) {
        baseMapper.insert(downGlassInfo);
    }
}
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/impl/DownGlassTaskServiceImpl.java
@@ -8,6 +8,7 @@
import com.mes.downglassinfo.entity.DownGlassTask;
import com.mes.downglassinfo.mapper.DownGlassTaskMapper;
import com.mes.downglassinfo.service.DownGlassTaskService;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import java.util.List;
@@ -35,7 +36,7 @@
    public void updateTaskStateToZero(long id) {
        UpdateWrapper<DownGlassTask> updateWrapper = new UpdateWrapper<>();
        updateWrapper.set("task_stauts", 0).eq("id", id);
        baseMapper.update(null, updateWrapper);
        baseMapper.update(new DownGlassTask(), updateWrapper);
    }
    @Override
@@ -59,39 +60,39 @@
    @Override
    public Integer insertCacheTask(DownGlassTask downGlassTask) {
        DownGlassTask glassInfo = new DownGlassTask();
        glassInfo.setId(downGlassTask.getId());
        glassInfo.setStartCell(downGlassTask.getStartCell());
        glassInfo.setEndCell(downGlassTask.getEndCell());
        glassInfo.setTaskType(downGlassTask.getTaskType());
        glassInfo.setWidth(downGlassTask.getWidth());
        glassInfo.setHeight(downGlassTask.getHeight());
        glassInfo.setFilmsid(downGlassTask.getFilmsid());
        glassInfo.setThickness(downGlassTask.getThickness());
        glassInfo.setFlowCardId(downGlassTask.getFlowCardId());
        glassInfo.setTaskStauts(0); // 默认任务状态为0
        // 查询数据库,检查主键值是否已经存在
        DownGlassTask existingTask = baseMapper.selectById(downGlassTask.getId());
        if (existingTask != null) {
            // 如果已存在相同主键值的任务,则不进行插入操作,返回 null 或者抛出异常
            // 这里简单起见,直接返回 null
            return null;
        }
        int rows = baseMapper.insert(glassInfo);
        // 如果主键值不存在,则进行插入操作
        DownGlassTask newDownGlassTask = new DownGlassTask();
        BeanUtils.copyProperties(downGlassTask, newDownGlassTask);
        newDownGlassTask.setTaskStauts(0); // 默认任务状态为0
        int rows = baseMapper.insert(newDownGlassTask);
        return rows > 0 ? rows : null;
    }
    @Override
    public List<DownGlassTask> selectInputTaskCache(){
        return baseMapper.selectList(new QueryWrapper<DownGlassTask>().eq("task_status",0).eq("task_type",1));
    public List<DownGlassTask> selectInputTaskCache() {
        return baseMapper.selectList(new QueryWrapper<DownGlassTask>().eq("task_status", 0).eq("task_type", 1));
    }
    /**
     * 查询待出片任务
     *
     * @return
     */
    @Override
    public List<DownGlassTask> selectOutTaskCache(){
        return baseMapper.selectList(new QueryWrapper<DownGlassTask>().eq("task_status",0).eq("task_type",2));
    public List<DownGlassTask> selectOutTaskCache() {
        return baseMapper.selectList(new QueryWrapper<DownGlassTask>().eq("task_status", 0).eq("task_type", 2));
    }
}
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/controller/DownStorageCageDetailsController.java
@@ -34,7 +34,7 @@
    @GetMapping("/selectStorageCage")
    @ResponseBody
    public Result selectEdgStorageCage () {
        List<Map> list=downStorageCageService.getCacheInfo();
        List<Map> list=downStorageCageDetailsService.getCacheInfo();
        return Result.build(200,"成功",list);
    }
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/entity/DownStorageCage.java
@@ -1,6 +1,7 @@
package com.mes.downstorage.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
@@ -48,6 +49,7 @@
     * 启用状态
     */
    @ApiModelProperty(value = "启用状态", position = 5)
    @TableField("enable_state")
    private String enableState;
    /**
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/entity/DownStorageCageDetails.java
@@ -86,7 +86,7 @@
    /**
     * 膜系id
     */
    private int filmsid;
    private String filmsid;
    /**
     * 状态
     */
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/DownStorageCageDetailsService.java
@@ -7,11 +7,49 @@
import java.util.Map;
public interface DownStorageCageDetailsService {
    /**
     * @return //添加理片笼内信息
     */
    void addDownStorageCageDetails(DownStorageCageDetails details);
    //修改理片笼内信息
    /**
     * @return //修改理片笼内信息
     */
    boolean updatedownStorageCageDetails(DownStorageCageDetails details);
    List<DownStorageCageDetails> getCacheLeisure();
    /**
     * @param start
     * @param end
     * @return 根据传入的工位查询符合按照顺序和大小出片的小片
     */
    List<DownStorageCageDetails> getCacheOut(int start, int end);
    /**
     * @return 查询笼子内信息
     */
    List<Map> getCacheInfo();
    /**
     * @param flowcardid
     * @param width
     * @return 查询可进此片玻璃的栅格号  找到空格
     */
    List<DownStorageCageDetails> getIsExistIntoCacheByflowcardid(String flowcardid, double width);
    /**
     * @param start
     * @param end
     * @return log.info(" 单片情况根据传入的工位查询符合按照大小出片, 并且优先出满架的小片 ");
     */
    List<DownStorageCageDetails> CacheOut(int start, int end);
    /**
     * @return 查询空格子
     */
    List<DownStorageCageDetails> selectCacheEmpty2();
}
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/DownStorageCageService.java
@@ -17,19 +17,26 @@
 * @since 2024-03-27
 */
public interface DownStorageCageService extends MPJBaseService<DownStorageCage> {
    public List<Map> gettask();
    //    List<Map<String, Object>> selectCacheLeisure();
    List<DownStorageCageDetails> getCacheLeisure();
    List<DownStorageCageDetails> getCacheOut(int start, int end);
    List<Map> getCacheInfo();
    List<DownStorageCageDetails> getIsExistIntoCacheByLayoutAndSequence(Integer tempering_layout_id, Integer tempering_feed_sequence, double width);
    List<DownStorageCageDetails> getIsExistIntoCacheByLayout(Integer tempering_layout_id, double width);
    List<DownStorageCageDetails> getIsExistIntoCacheByflowcardid(String flowcardid, double width);
    List<DownStorageCageDetails> IsExistIntoCacheByflowcardid(String flowcardid, double width);
    List<Map> selectCacheEmpty();
    boolean processInto(String Number);
    boolean processOut();
    /**
     * @param Number
     * @return 进片
     */
    boolean processInto(String Number);
    /**
     * @return 空格
     */
    /**
     * @return 出片
     */
    boolean processOut();
    List<DownStorageCageDetails> selectCacheEmpty() ;
}
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageDetailsServiceImpl.java
@@ -6,9 +6,12 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.yulichang.toolkit.JoinWrappers;
import com.mes.downstorage.entity.DownStorageCage;
import com.mes.downstorage.entity.DownStorageCageDetails;
import com.mes.downstorage.mapper.DownStorageCageDetailsMapper;
import com.mes.downstorage.mapper.DownStorageCageMapper;
import com.mes.downstorage.service.DownStorageCageDetailsService;
import com.mes.glassinfo.entity.GlassInfo;
import lombok.extern.slf4j.Slf4j;
@@ -22,7 +25,8 @@
@Service
public class DownStorageCageDetailsServiceImpl extends ServiceImpl<DownStorageCageDetailsMapper, DownStorageCageDetails> implements DownStorageCageDetailsService {
    @Autowired
    private DownStorageCageMapper downStorageCageMapper;
    @Autowired
    private DownStorageCageDetailsMapper downStorageCageDetailsMapper;
    @Override
@@ -41,22 +45,122 @@
    @Override
    public List<DownStorageCageDetails> CacheOut(int start, int end) {
        log.info("单片情况根据传入的工位查询符合按照大小出片的小片");
        log.info("单片情况根据传入的工位查询符合按照大小出片,并且优先出满架的小片");
        return downStorageCageDetailsMapper.selectJoinList(
                DownStorageCageDetails.class, new MPJQueryWrapper<DownStorageCageDetails>()
                        .select("t.*")
                        .leftJoin("(SELECT t1.* FROM down_storage_cage_details t1 "
                                + "JOIN (SELECT flow_card_id, MAX(width) AS max_width FROM glass_info GROUP BY flow_card_id) t "
                                + "ON t1.flow_card_id = t.flow_card_id WHERE t1.width = t.max_width) t3"
                                + "JOIN (SELECT flow_card_id, MAX(width*height) AS max_width FROM glass_info GROUP BY flow_card_id) t "
                                + "ON t1.flow_card_id = t.flow_card_id WHERE t1.width*t1.height = t.max_width) t3"
                                + " ON t.glass_id = t3.glass_id")
                        .leftJoin("down_workstation t4 ON t3.flow_card_id = t4.flow_card_id")
                        .isNull(Boolean.parseBoolean("t.glass_id"), "SELECT glass_id FROM down_glass_info")
                        .between("t4.workstation_id", start, end)
                        // 根据 racks_number 排序
                        .orderByDesc("t4.racks_number")
        );
    }
    // Other business methods can be implemented here
    @Override
    public List<DownStorageCageDetails> getCacheOut(int start, int end) {
        log.info("根据传入的工位查询符合按照顺序和大小出片的小片");
        return  downStorageCageMapper.selectJoinList(
                DownStorageCageDetails.class, new MPJQueryWrapper<DownStorageCage>()
                        .select("escd.*")
                        .leftJoin("down_storage_cage_details escd on t.slot = escd.slot")
                        .leftJoin("down_workstation dw on escd.flow_card_id = dw.flow_card_id")
                        .leftJoin("glass_info gi on dw.flow_card_id = gi.flowcard_id  and gi.flowcard_id=escd.flow_card_id ")
                        .isNotNull("escd.slot")
                        .between("dw.workstation_id", start, end)
                        .orderByDesc("escd.width")
                        .orderByDesc("escd.height")
        );
    }
    @Override
    public List<DownStorageCageDetails> selectCacheEmpty2(){
        return  downStorageCageMapper.selectJoinList(
                DownStorageCageDetails.class, new MPJQueryWrapper<DownStorageCage>()
                        .select("escd.glass_id","escd.flow_card_id","escd.width","escd.height")
                        .leftJoin("down_storage_cage_details escd on t.device_id=escd.device_id and t.slot=escd.slot")
                        .isNull("escd.slot")
        );
    }
    @Override
    public List<Map> getCacheInfo() {
        log.info(" 查询笼子内信息");
        return downStorageCageMapper.selectJoinList(
                Map.class, new MPJQueryWrapper<DownStorageCage>()
                        .select("escd.*")
                        .leftJoin("down_storage_cage_details escd on t.slot = escd.slot")
                        .orderByAsc("t.slot")
        );
    }
    @Override
    public List<DownStorageCageDetails> getCacheLeisure() {
        log.info(" 查询笼子内空闲");
        List<DownStorageCageDetails> list = downStorageCageMapper.selectJoinList(
                DownStorageCageDetails.class, new MPJQueryWrapper<DownStorageCage>()
                        .select("escd.*")
                        .leftJoin("down_storage_cage_details escd on t.slot = escd.slot")
                        .isNull("escd.slot")
                        .orderByAsc("escd.slot")
        );
        return list;
    }
    @Override
    public List<DownStorageCageDetails> getIsExistIntoCacheByflowcardid(String flowcardid, double width) {
        log.info("  查询可进此片玻璃的栅格号  找到空格");
        return downStorageCageMapper.selectJoinList(
                DownStorageCageDetails.class, new MPJQueryWrapper<DownStorageCage>()
                        .select("escd.*")
                        .leftJoin("down_storage_cage_details escd on t.slot = escd.slot")
                        .isNull("escd.slot")
                        .apply("t.remain_width - " + width + " > 0")
                        .orderByAsc("escd.sequence")
        );
    }
}
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageServiceImpl.java
@@ -1,13 +1,13 @@
package com.mes.downstorage.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.yulichang.query.MPJQueryWrapper;
import com.github.yulichang.toolkit.JoinWrappers;
import com.mes.common.PLCAutoMes;
import com.mes.common.S7control;
import com.mes.device.PlcParameterObject;
import com.mes.downglassinfo.entity.DownGlassTask;
import com.mes.downglassinfo.service.DownGlassTaskService;
import com.mes.downstorage.entity.DownStorageCage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.mes.downstorage.entity.DownStorageCageDetails;
import com.mes.downstorage.mapper.DownStorageCageMapper;
import com.mes.downstorage.service.DownStorageCageDetailsService;
@@ -15,6 +15,7 @@
import com.mes.glassinfo.entity.GlassInfo;
import com.mes.glassinfo.service.GlassInfoService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -42,163 +43,6 @@
    private DownGlassTaskService downGlassTaskService;
    @Autowired
    private DownStorageCageDetailsService downStorageCageDetailsService;
    @Override
    public List<Map> gettask(){
        downStorageCageMapper.selectList(null);
//        downStorageCageMapper.selectJoin();
        return null;
    };
    @Override
    public List<DownStorageCageDetails> getCacheLeisure() {
        log.info(" 查询笼子内空闲");
//        List<DownStorageCageDetails> list = downStorageCageMapper.selectJoinList(
//                DownStorageCageDetails.class, new MPJQueryWrapper<DownStorageCageDetails>()
//                        .select("escd.*")
//                        .leftJoin("down_storage_cage_details escd on t.slot = escd.slot")
//                        .isNull("escd.slot")
//                        .orderByAsc("escd.slot")
//        );
//        return list;
        return null;
    }
    @Override
    public List<Map> selectCacheEmpty(){
        return baseMapper.selectJoinList(
                Map.class,new MPJQueryWrapper<DownStorageCage>().selectAll(DownStorageCage.class)
                        .select("escd.glass_id","escd.flow_card_id","escd.width","escd.height")
                        .leftJoin("down_storage_cage_details escd on t.device_id=escd.device_id and t.slot=escd.slot")
                        .isNull("escd.slot")
        );
    }
    @Override
    public List<DownStorageCageDetails> getCacheOut(int start, int end) {
        log.info("根据传入的工位查询符合按照顺序和大小出片的小片");
//        return  downStorageCageMapper.selectJoinList(
//                DownStorageCageDetails.class, new MPJQueryWrapper<DownStorageCageDetails>()
//                        .select("escd.*")
//                        .leftJoin("down_storage_cage_details escd on t.slot = escd.slot")
//                        .leftJoin("down_workstation dw on escd.flow_card_id = dw.flow_card_id")
//                        .leftJoin("glass_info gi on dw.flow_card_id = gi.flowcard_id  and gi.flowcard_id=escd.flow_card_id ")
//                        .isNotNull("escd.slot")
//                        .between("dw.workstation_id", start, end)
//                        .orderByDesc("escd.width")
//                        .orderByDesc("escd.height")
//        );
        return null;
    }
    @Override
    public List<Map> getCacheInfo() {
        log.info(" 查询笼子内信息");
//        return downStorageCageMapper.selectJoinList(
//                Map.class, new MPJQueryWrapper<DownStorageCageDetails>()
//                        .select("escd.*")
//                        .leftJoin("down_storage_cage_details escd on t.slot = escd.slot")
//                        .orderByAsc("t.slot")
//        );
        return null;
    }
    @Override
    public List<DownStorageCageDetails> getIsExistIntoCacheByLayoutAndSequence(Integer tempering_layout_id, Integer tempering_feed_sequence, double width) {
        log.info(" 查询可进此片玻璃的栅格号  找到相同版图id并且大于前面的顺序的空格");
//        List<DownStorageCageDetails> list = downStorageCageMapper.selectJoinList(
//                DownStorageCageDetails.class, new MPJQueryWrapper<DownStorageCageDetails>()
//                        .select("escd.*")
//                        .leftJoin("down_storage_cage_details escd on t.slot = escd.slot")
//                        .isNotNull("escd.slot")
//                        .eq("escd.tempering_layout_id", tempering_layout_id)
//                        .lt("escd.tempering_feed_sequence", tempering_feed_sequence)
//                        .gt("t.remain_width", width)
//                        .orderByAsc("escd.tempering_feed_sequence")
//        );
//        return list;
        return null;
    }
    @Override
    public List<DownStorageCageDetails> IsExistIntoCacheByflowcardid(String flowcardid, double width) {
        log.info(" 查询可进此片玻璃的栅格号");
//        return downStorageCageMapper.selectJoinList(
//                DownStorageCageDetails.class, new MPJQueryWrapper<DownStorageCageDetails>()
//                        .select("escd.*")
//                        .leftJoin("down_storage_cage_details escd on t.slot = escd.slot")
//                        .isNotNull("escd.slot")
//                        .lt("escd.flow_card_id", flowcardid)
//                        // 条件 t.remain_width - width > 0
//                        .apply("t.remain_width - " + width + " > 0")
//                        .orderByDesc("escd.tempering_layout_id, escd.tempering_feed_sequence")
//        );
        return null;
    }
    @Override
    public List<DownStorageCageDetails> getIsExistIntoCacheByLayout(Integer tempering_layout_id, double width) {
        log.info(" 查询可进此片玻璃的栅格号");
//        return downStorageCageMapper.selectJoinList(
//                DownStorageCageDetails.class, new MPJQueryWrapper<DownStorageCageDetails>()
//                        .select("escd.*")
//                        .leftJoin("down_storage_cage_details escd on t.slot = escd.slot")
//                        .isNotNull("escd.slot")
//                        .lt("escd.tempering_layout_id", tempering_layout_id)
//                        // 条件 t.remain_width - width > 0
//                        .apply("t.remain_width - " + width + " > 0")
//                        .orderByDesc("escd.tempering_layout_id, escd.tempering_feed_sequence")
//        );
        return null;
    }
    @Override
    public List<DownStorageCageDetails> getIsExistIntoCacheByflowcardid(String flowcardid, double width) {
        log.info(" 单片情况  查询可进此片玻璃的栅格号  找到相同流程卡号的空格");
//        return downStorageCageMapper.selectJoinList(
//                DownStorageCageDetails.class, new MPJQueryWrapper<DownStorageCageDetails>()
//                        .select("escd.*")
//                        .leftJoin("down_storage_cage_details escd on t.slot = escd.slot")
//                        .isNotNull("escd.slot")
//                        .eq("escd.flow_card_id", flowcardid)
//                        .gt("t.remain_width", width)
//                        .orderByAsc("escd.sequence")
//        );
        return null;
    }
@@ -225,32 +69,23 @@
    public DownGlassTask createDownGlassTask(GlassInfo glassInfo, String startCell, String endCell,String taskType ) {
        DownGlassTask downGlassTask = new DownGlassTask();
        downGlassTask.setId(glassInfo.getId());
        downGlassTask.setStartCell(startCell);
        downGlassTask.setTaskType(taskType);
        downGlassTask.setEndCell(endCell);
        downGlassTask.setWidth(glassInfo.getWidth());
        downGlassTask.setHeight(glassInfo.getHeight());
        downGlassTask.setFilmsid(String.valueOf(glassInfo.getFilmsid()));
        downGlassTask.setThickness(glassInfo.getThickness());
        downGlassTask.setFlowCardId(glassInfo.getFlowcardId());
        BeanUtils.copyProperties(glassInfo,downGlassTask);
        downGlassTask.setStartCell(startCell);
       downGlassTask.setTaskType(taskType);
      downGlassTask.setEndCell(endCell);
        return downGlassTask;
    }
    public DownGlassTask createDownGlassTask(DownStorageCageDetails glassInfo, String startCell, String endCell,String taskType ) {
        DownGlassTask downGlassTask = new DownGlassTask();
        downGlassTask.setId(glassInfo.getId());
        BeanUtils.copyProperties(glassInfo,downGlassTask);
        downGlassTask.setStartCell(startCell);
        downGlassTask.setTaskType(taskType);
        downGlassTask.setEndCell(endCell);
        downGlassTask.setWidth(glassInfo.getWidth());
        downGlassTask.setHeight(glassInfo.getHeight());
        downGlassTask.setFilmsid(String.valueOf(glassInfo.getFilmsid()));
        downGlassTask.setThickness(glassInfo.getThickness());
        downGlassTask.setFlowCardId(glassInfo.getFlowCardId());
        return downGlassTask;
    }
@@ -264,13 +99,13 @@
        //存在此玻璃编号
        if (GlassInfo != null) {
            //同找到同流程卡附近空格
            List<DownStorageCageDetails> list = getIsExistIntoCacheByflowcardid(GlassInfo.getFlowcardId(),  GlassInfo.getWidth());
            List<DownStorageCageDetails> list = selectCacheEmpty();
            List<Map> selectCacheEmpty=selectCacheEmpty();
            //            list<Map> list=selectCacheEmpty();
//            list<Map> = downStorageCageService.selectCacheEmpty();
            if (selectCacheEmpty.size() > 0) {
            if (list.size() > 0) {
                //存在空格
                //1.生成任务:  起始位置0   结束位置this.slot  任务类型 1   (进片任务)
                //2.回复 1进片
@@ -282,7 +117,7 @@
                downGlassTaskService.insertCacheTask(downGlassTask);
               S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(), (short) 1);
               //S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(), (short) 1);
                //完成后插入小片数据到缓存表
@@ -326,25 +161,25 @@
                String endcell = "13";
                String SendEndcell = "1";
//                selectInfo.insertCacheTask(item3.getGlassId() + "", "0", endcell, "2", item3.getWidth(), item3.getHeight(), item3.getFilmsid(), item3.getThickness(), item3.getFlowCardId());
                DownGlassTask downGlassTask =createDownGlassTask(item3,"0",endcell,"2");
                downGlassTaskService.insertCacheTask(downGlassTask);
                S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.28").getAddress(), SendEndcell);
                S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.20").getAddress(), "1");
           //  S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.28").getAddress(), SendEndcell);
               // S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.20").getAddress(), "1");
                return true;
            }
        }
        //如果同时前后端都空闲 优先后端出片并且优先满架
        else if (!list2.isEmpty()) {
        else if (!list2.isEmpty()&&!list3.isEmpty()) {
            DownStorageCageDetails item3 = list2.get(0);
            String endcell = "11";
            String SendEndcell = "1";
            // selectInfo.insertCacheTask(item3.getGlassId() + "", "0", endcell, "2", item3.getWidth(), item3.getHeight(), item3.getFilmsid(), item3.getThickness(), item3.getFlowCardId());
            DownGlassTask downGlassTask =createDownGlassTask(item3,"0",endcell,"2");
            downGlassTaskService.insertCacheTask(downGlassTask);
@@ -358,9 +193,10 @@
            DownStorageCageDetails item = list.get(0);
            // 出到 G06
            //selectInfo.insertCacheTask(item.getGlassId() + "", "0", "06", "2", item.getWidth(), item.getHeight(), item.getFilmsid(), item.getThickness(), item.getFlowCardId());
            DownGlassTask downGlassTask =createDownGlassTask(item,"0","06","2");
            downGlassTaskService.insertCacheTask(downGlassTask);
            S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.28").getAddress(), "1");
            S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.20").getAddress(), "1");
            return true;
@@ -370,7 +206,7 @@
            DownStorageCageDetails item2 = list2.get(0);
            // 出到 G11
            // selectInfo.insertCacheTask(item2.getGlassId() + "", "0", "11", "2", item2.getWidth(), item2.getHeight(), item2.getFilmsid(), item2.getThickness(), item2.getFlowCardId());
            DownGlassTask downGlassTask =createDownGlassTask(item2,"0","11","2");
            downGlassTaskService.insertCacheTask(downGlassTask);
@@ -388,8 +224,17 @@
    }
    @Override
    public List<DownStorageCageDetails> selectCacheEmpty() {
        return baseMapper.selectJoinList(DownStorageCageDetails.class,
                JoinWrappers.lambda(DownStorageCage.class)
                        .selectAll(DownStorageCage.class)
                        .select(DownStorageCageDetails::getWidth, DownStorageCageDetails::getHeight, DownStorageCageDetails::getGlassId)
                        .leftJoin(DownStorageCageDetails.class, on -> on
                                .eq(DownStorageCageDetails::getDeviceId, DownStorageCage::getDeviceId)
                                .eq(DownStorageCageDetails::getSlot, DownStorageCage::getSlot))
                        .isNull(DownStorageCageDetails::getSlot)
        );
    }
}
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/entity/DownWorkstationTask.java
@@ -55,6 +55,8 @@
     * 任务状态
     */
    private Integer state;
    /**
     * 玻璃
     */
    private String glassId;
}
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/DownWorkstationService.java
@@ -16,18 +16,50 @@
 */
public interface DownWorkstationService extends IService<DownWorkstation> {
    /**
     * @param startId
     * @param endId
     * @return 获取工位信息
     */
    List<DownWorkstation> getoneDownWorkstations(int startId, int endId);
    /**
     * @param workstationId
     * @return 获取总数量
     */
    int getTotalQuantity(int workstationId);
    /**
     * @param workstationId
     * @return 获取落架数量
     */
    int getRacksNumber(int workstationId);
    /**
     * @param workstationId 清空架子信息
     */
    void clearFlowCardId(int workstationId);
    /**
     * @param flowCardId
     * @param racksnumber 更新落架数量
     */
    void updateracksnumber(String flowCardId, int racksnumber);
    /**
     * @param flowCardId
     * @param glassInfoCount
     * @param workstationId
     * @return 更新架子和数量
     */
    int updateFlowCardIdAndCount(String flowCardId, int glassInfoCount, int workstationId);
    void insertdownglassinfo();
  List<Map<String, Object>> getTotalGlassDimensionsByWorkstation();
    /**
     * @return //
     * 工位显示
     */
    List<Map<String, Object>> getTotalGlassDimensionsByWorkstation();
}
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/DownWorkstationTaskService.java
@@ -15,9 +15,18 @@
 * @since 2024-04-07
 */
public interface DownWorkstationTaskService extends IService<DownWorkstationTask> {
    /**
     * @param downGlassInfo 插入任务
     */
    void insertdownWorkstationtask(DownGlassInfo downGlassInfo);
    /**
     * @param Id 更新任务状态
     */
    void updateTaskStateToZero(long Id);
    /**
     * @return 获取任务状态为1的信息
     */
    List<DownWorkstationTask> getTaskState();
}
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/impl/DownWorkstationServiceImpl.java
@@ -91,17 +91,6 @@
    }
//    @Override
//    public int getTotalQuantity(int workstationId) {
//        Integer totalQuantity = downWorkstationMapper.getTotalQuantity(workstationId);
//        return totalQuantity != null ? totalQuantity : 0;
//    }
    //    @Override
//    public int getRacksNumber(int workstationId) {
//        Integer racksNumber = downWorkstationMapper.getRacksNumber(workstationId);
//        return racksNumber != null ? racksNumber : 0;
//    }
    //根据条件获取落架数量
    @Override
    public int getRacksNumber(int workstationId) {
@@ -130,7 +119,7 @@
    public void updateracksnumber(String flowCardId, int racksNumber) {
        UpdateWrapper<DownWorkstation> updateWrapper = new UpdateWrapper<>();
        updateWrapper.set("racks_number", racksNumber).eq("flow_card_id", flowCardId);
        baseMapper.update(null, updateWrapper);
        baseMapper.update(new DownWorkstation(), updateWrapper);
    }
@@ -141,7 +130,7 @@
                .set("flow_card_id", flowCardId)
                .eq("workstation_id", workstationId);
        return baseMapper.update(null, updateWrapper);
        return baseMapper.update(new DownWorkstation(), updateWrapper);
    }
    @Override
@@ -152,10 +141,13 @@
                .set("racks_number", 0)
                .eq("workstation_id", workstationId);
        baseMapper.update(null, updateWrapper);
        baseMapper.update(new DownWorkstation(), updateWrapper);
    }
    public DownWorkstation selectByFlowCardId(String flowcardid) {
        QueryWrapper<DownWorkstation> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("flow_card_id", flowcardid);
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/impl/DownWorkstationTaskServiceImpl.java
@@ -8,6 +8,7 @@
import com.mes.downworkstation.entity.DownWorkstationTask;
import com.mes.downworkstation.mapper.DownWorkstationTaskMapper;
import com.mes.downworkstation.service.DownWorkstationTaskService;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import java.util.List;
@@ -31,14 +32,10 @@
        // 如果没有记录,则将 id 设置为 1;否则,将 id 设置为当前最大 id 值加 1
        Long newId = (maxId == null) ? 1 : maxId + 1;
        entity.setId(newId); // 设置手动递增的 id
        entity.setFlowCardId(downGlassInfo.getFlowCardId());
        entity.setWidth(downGlassInfo.getWidth());
        entity.setHeight(downGlassInfo.getHeight());
        entity.setThickness(downGlassInfo.getThickness());
        entity.setFilmsid(downGlassInfo.getFilmsid());
        entity.setState(1);
        BeanUtils.copyProperties(entity,downGlassInfo);
        entity.setId(newId); // 设置手动递增的 id
        entity.setState(1);
        baseMapper.insert(entity);
    }
@@ -70,6 +67,7 @@
        UpdateWrapper<DownWorkstationTask> updateWrapper = new UpdateWrapper<>();
        updateWrapper.set("state", 0).eq("id", id);
        baseMapper.update(null, updateWrapper);
        baseMapper.update(new DownWorkstationTask(), updateWrapper);
    }
}
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/glassinfo/entity/GlassInfo.java
@@ -32,7 +32,7 @@
     * 流程卡
     */
    @TableField("flow_card_Id")
    private String flowcardId;
    private String flowCardId;
    /**
     * 流程卡玻璃类型
@@ -57,7 +57,7 @@
    /**
     * 膜系
     */
    private Integer filmsid;
    private String filmsid;
    /**
     * 磨前宽
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/glassinfo/service/impl/GlassInfoServiceImpl.java
@@ -1,4 +1,4 @@
package com.mes.uppattenusage.service.impl;
package com.mes.glassinfo.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -53,12 +53,5 @@
    }
//    public void updateFlowCardIdAndCount(String flowCardId, int glassInfoCount, int workstationId) {
//        int rowsAffected = glassInfoMapper.updateFlowCardIdAndCount(flowCardId, glassInfoCount, workstationId);
//        if (rowsAffected > 0) {
//            System.out.println("更新架子上流程卡 ID 和数量成功");
//        } else {
//            System.out.println("更新架子上流程卡 ID 和数量失败");
//        }
//    }
}
hangzhoumesParent/moduleService/UnLoadGlassModule/src/test/java/mes/UnloadGlassModuleApplicationTest.java
@@ -1,8 +1,11 @@
package mes;
import com.mes.UnLoadGlassApplication;
import com.mes.downglassinfo.service.impl.DownGlassInfoServiceImpl;
import com.mes.downglassinfo.service.impl.DownGlassTaskServiceImpl;
import com.mes.downstorage.entity.DownStorageCageDetails;
import com.mes.downstorage.service.DownStorageCageDetailsService;
import com.mes.downstorage.service.impl.DownStorageCageDetailsServiceImpl;
import com.mes.downstorage.service.impl.DownStorageCageServiceImpl;
import com.mes.downworkstation.service.DownWorkstationService;
@@ -31,6 +34,12 @@
    @Autowired
    DownStorageCageServiceImpl downStorageCageServiceImpl;
    @Autowired
    DownGlassTaskServiceImpl downGlassTaskServiceImpl;
    @Autowired
    DownGlassInfoServiceImpl downGlassInfoServiceImpl;
    @Autowired
    DownStorageCageDetailsServiceImpl downStorageCageDetailsServiceImpl;
    @Autowired
    DownStorageCageDetailsService downStorageCageDetailsService;
    @Autowired
    DownWorkstationServiceImpl downWorkstationServiceImpl;
@@ -42,20 +51,20 @@
    @Test
    public void testCacheGlass() {
        List<Map> map = downStorageCageServiceImpl.getCacheInfo();
        List<Map> map = downStorageCageDetailsServiceImpl.getCacheInfo();
        log.info("笼内信息:{}", Arrays.asList(map));
    }
    @Test
    public void testselectCacheEmpty() {
        List<DownStorageCageDetails> map = downStorageCageServiceImpl.getCacheLeisure();
        List<DownStorageCageDetails> map = downStorageCageDetailsServiceImpl.getCacheLeisure();
        log.info("笼内空格:{}", Arrays.asList(map));
    }
    @Test
    public void testgetCacheOut() {
        List<DownStorageCageDetails> map = downStorageCageServiceImpl.getCacheOut(1, 5);
        List<DownStorageCageDetails> map = downStorageCageDetailsServiceImpl.getCacheOut(1, 5);
        log.info("根据传入的工位查询符合按照顺序和大小出片的小片:{}", Arrays.asList(map));
    }
@@ -74,10 +83,12 @@
    }
    @Test
    public void testin() {
    public void testin2() {
        log.info("测试进片");
        downStorageCageServiceImpl.getIsExistIntoCacheByflowcardid("NG2023005",500);
        downStorageCageDetailsServiceImpl.getIsExistIntoCacheByflowcardid("NG2023005",500);
    }
@@ -85,14 +96,14 @@
    @Test
    public void selectCacheEmpty() {
        log.info("测试进片");
        downStorageCageServiceImpl.selectCacheEmpty();
        downStorageCageDetailsServiceImpl.getCacheLeisure();
    }
    @Test
    public void CacheEmpty() {
        log.info("测试出片");
        downStorageCageDetailsService.CacheOut(1,5);
        downStorageCageDetailsService.CacheOut(1,10);
    }
@@ -105,5 +116,27 @@
    }
    @Test
    public void getMaxSequenceByFlowCardId() {
        log.info("最大序号");
        downGlassInfoServiceImpl.getMaxSequenceByFlowCardId("NG2023005");
    }
    @Test
    public void updateTaskStateToZero() {
        log.info("更新状态0");
        downGlassTaskServiceImpl.updateTaskStateToZero(3);
    }
    @Test
    public void selectCacheEmpty2() {
        downStorageCageServiceImpl.selectCacheEmpty();
    }
}