wuyouming666
2024-05-07 f16e0460ed079626e7a9a936f91714001e02f130
测试代码
19个文件已修改
451 ■■■■■ 已修改文件
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/common/Plcdownglass.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/entity/DownGlassInfo.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/DownGlassTaskService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/impl/DownGlassInfoServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/impl/DownGlassTaskServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/controller/DownStorageCageDetailsController.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/DownStorageCageDetailsService.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/DownStorageCageService.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageDetailsServiceImpl.java 147 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageServiceImpl.java 75 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/entity/DownWorkstation.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/entity/DownWorkstationTask.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/mapper/DownWorkstationTaskMapper.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/DownWorkstationTaskService.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/impl/DownWorkstationServiceImpl.java 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/impl/DownWorkstationTaskServiceImpl.java 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/glassinfo/service/GlassInfoService.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/glassinfo/service/impl/GlassInfoServiceImpl.java 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/UnLoadGlassModule/src/test/java/mes/UnloadGlassModuleApplicationTest.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/common/Plcdownglass.java
@@ -28,7 +28,7 @@
    private DownWorkstationService downWorkstationService;
    @Scheduled(fixedDelay = 300)
   @Scheduled(fixedDelay = 300)
    public void PlcdownglassTask() throws InterruptedException {
        JSONObject jsonObject = new JSONObject();
        try {
@@ -37,8 +37,8 @@
            //                String result = S7control.getinstance().ReadWord("DB14.0", 1).get(0) + "";
//                String number = S7control.getinstance().ReadWord("DB14.2", 1).get(0) + "";
            String result = "2";
            String number = "1";
            String result = "3";
            String number = "4";
            // 进片请求
            if (RESULT_IN.equals(result)) {
                downStorageCageService.processInto(number);
@@ -50,13 +50,19 @@
            // 进出片请求
            else if (RESULT_IN_OUT.equals(result)) {
                // 先出后进
                if (!downStorageCageService.processOut()) {
                if (downStorageCageService.processOut()) {
                    //下片更新
                    downWorkstationService.insertdownglassinfo();
                    // 执行进片操作
                    downStorageCageService.processInto(number);
                } else {
                    // 如果 processOut() 返回 false,可以在这里处理其他逻辑
                    log.info("出片请求失败,无法执行进片操作");
                }
            }
            //下片更新
            downWorkstationService.insertdownglassinfo();
        } catch (Exception e) {
            e.printStackTrace();
        }
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/entity/DownGlassInfo.java
@@ -2,8 +2,11 @@
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.data.annotation.Id;
import org.springframework.stereotype.Component;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import java.io.Serializable;
/**
@@ -24,6 +27,8 @@
    /**
     * 下片玻璃信息表id
     */
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    /**
@@ -51,8 +56,15 @@
     */
    private Double thickness;
    /**
     * 膜系
     */
    private String Filmsid;
    /**
     * 玻璃id
     */
    private String glassId;
}
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/DownGlassTaskService.java
@@ -26,7 +26,7 @@
     *
     * @return
     */
    void updateTaskStateToZero(long id);
    void updateTaskStateToZero(String id);
    /**
     * 删除任务
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/impl/DownGlassInfoServiceImpl.java
@@ -14,6 +14,7 @@
import com.mes.downworkstation.service.DownWorkstationService;
import com.mes.downworkstation.service.DownWorkstationTaskService;
import com.mes.tools.WebSocketServer;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import java.util.List;
@@ -37,6 +38,9 @@
    @Override
    public void insertDownGlassInfo(DownGlassInfo downGlassInfo) {
        baseMapper.insert(downGlassInfo);
    }
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/impl/DownGlassTaskServiceImpl.java
@@ -33,7 +33,7 @@
    }
    @Override
    public void updateTaskStateToZero(long id) {
    public void updateTaskStateToZero(String id) {
        UpdateWrapper<DownGlassTask> updateWrapper = new UpdateWrapper<>();
        updateWrapper.set("task_stauts", 0).eq("id", id);
        baseMapper.update(new DownGlassTask(), updateWrapper);
@@ -42,7 +42,7 @@
    @Override
    public void deleteTask(String id) {
        LambdaQueryWrapper<DownGlassTask> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.eq(DownGlassTask::getFlowCardId, id);
        queryWrapper.eq(DownGlassTask::getGlassId, id);
        baseMapper.delete(queryWrapper);
    }
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/controller/DownStorageCageDetailsController.java
@@ -1,5 +1,6 @@
package com.mes.downstorage.controller;
import com.mes.downstorage.entity.DownStorageCage;
import com.mes.downstorage.entity.DownStorageCageDetails;
import com.mes.downstorage.service.DownStorageCageDetailsService;
import com.mes.downstorage.service.DownStorageCageService;
@@ -33,32 +34,35 @@
    @ApiOperation("查询缓存理片笼内详情")
    @GetMapping("/selectStorageCage")
    @ResponseBody
    public Result selectEdgStorageCage () {
        List<Map> list=downStorageCageDetailsService.getCacheInfo();
    public Result selectDownStorageCage () {
        List<Map<String, Object>> list=downStorageCageDetailsService.getCacheInfo();
        return Result.build(200,"成功",list);
    }
//
//    @ApiOperation("添加缓存理片笼信息   功能:笼内绑定玻璃  参数(DownStorageCageDetails downStorageCageDetails)")
//    @PostMapping("/insertEdgStorageCage")
//    @ResponseBody
//    public Result insertEdgStorageCage(@RequestBody DownStorageCageDetails downStorageCageDetails) {
//        boolean isSucess=downStorageCageService.updatedownStorageCageDetails(downStorageCageDetails);
//        return Result.build(200,"添加成功",1);
//    }
    @ApiOperation("添加缓存理片笼信息   功能:笼内绑定玻璃  参数(DownStorageCageDetails downStorageCageDetails)")
    @PostMapping("/insertEdgStorageCage")
    @ResponseBody
    public Result insertEdgStorageCage(@RequestBody DownStorageCageDetails downStorageCageDetails) {
        boolean isSucess=downStorageCageDetailsService.updatedownStorageCageDetails(downStorageCageDetails);
        return Result.build(200,"添加成功",1);
    }
    @ApiOperation("修改缓存理片笼信息   功能:对笼内栅格进行【启用/禁用】/ 【更换】笼内栅格玻璃信息")
    @PostMapping("/updateEdgStorageCage")
    @PostMapping("/updateDownStorageCage")
    @ResponseBody
    public Result updateEdgStorageCage(@RequestBody DownStorageCageDetails downStorageCageDetails) {
        boolean isSucess=downStorageCageDetailsService.updatedownStorageCageDetails(downStorageCageDetails);
    public Result updateDownStorageCage(@RequestBody DownStorageCage downStorageCage) {
        boolean isSucess=downStorageCageService.updateDownStorageCage(downStorageCage);
        return Result.build(200,"更换成功",1);
    }
    @ApiOperation("删除缓存理片笼信息   功能:对笼内栅格玻璃进行【清除】")
    @PostMapping("/deleteEdgStorageCage")
    @PostMapping("/deleteDownStorageCage")
    @ResponseBody
    public Result deleteEdgStorageCage(@RequestBody DownStorageCageDetails downStorageCageDetails) {
        boolean isSucess=downStorageCageDetailsService.updatedownStorageCageDetails(downStorageCageDetails);
    public Result deleteDownStorageCage(@RequestBody DownStorageCageDetails downStorageCageDetails,int downStorageCageId) {
        boolean isSucess=downStorageCageService.updateDownStorageCageDetails(downStorageCageId,downStorageCageDetails);
        return Result.build(200,"删除成功",1);
    }
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/DownStorageCageDetailsService.java
@@ -1,7 +1,6 @@
package com.mes.downstorage.service;
import com.mes.downstorage.entity.DownStorageCageDetails;
import com.mes.glassinfo.entity.GlassInfo;
import java.util.List;
import java.util.Map;
@@ -18,19 +17,19 @@
     */
    boolean updatedownStorageCageDetails(DownStorageCageDetails details);
    List<DownStorageCageDetails> getCacheLeisure();
   // List<DownStorageCageDetails> getCacheLeisure();
    /**
     * @param start
     * @param end
     * @return 根据传入的工位查询符合按照顺序和大小出片的小片
     */
    List<DownStorageCageDetails> getCacheOut(int start, int end);
  //  List<DownStorageCageDetails> getCacheOut(int start, int end);
    /**
     * @return 查询笼子内信息
     */
    List<Map> getCacheInfo();
    List<Map<String, Object>> getCacheInfo();
    /**
@@ -38,7 +37,7 @@
     * @param width
     * @return 查询可进此片玻璃的栅格号  找到空格
     */
    List<DownStorageCageDetails> getIsExistIntoCacheByflowcardid(String flowcardid, double width);
   // List<DownStorageCageDetails> getIsExistIntoCacheByflowcardid(String flowcardid, double width);
    /**
     * @param start
@@ -50,6 +49,6 @@
    /**
     * @return 查询空格子
     */
    List<DownStorageCageDetails> selectCacheEmpty2();
   // List<DownStorageCageDetails> selectCacheEmpty2();
}
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/DownStorageCageService.java
@@ -37,6 +37,22 @@
     * @return 出片
     */
    boolean processOut();
    /**
     * @return 找到空格子
     */
    List<DownStorageCageDetails> selectCacheEmpty() ;
    /**
     * @param downStorageCage
     * @return 修改理片笼信息 功能:对笼内栅格玻璃 【启用/禁用】
     */
    boolean updateDownStorageCage(DownStorageCage downStorageCage);
    /**
     /**
     *修改理片笼信息 功能:对笼内栅格玻璃 【添加/删除/更换】
     */
    boolean updateDownStorageCageDetails(int downStorageCageId,DownStorageCageDetails downStorageCageDetails);
}
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageDetailsServiceImpl.java
@@ -1,6 +1,5 @@
package com.mes.downstorage.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.yulichang.query.MPJQueryWrapper;
@@ -13,22 +12,21 @@
import com.mes.downstorage.mapper.DownStorageCageMapper;
import com.mes.downstorage.service.DownStorageCageDetailsService;
import com.mes.glassinfo.entity.GlassInfo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
@Slf4j
@Service
public class DownStorageCageDetailsServiceImpl extends ServiceImpl<DownStorageCageDetailsMapper, DownStorageCageDetails> implements DownStorageCageDetailsService {
    @Autowired
    @Autowired(required=false)
    private DownStorageCageMapper downStorageCageMapper;
    @Autowired
    private DownStorageCageDetailsMapper downStorageCageDetailsMapper;
    @Override
    public void addDownStorageCageDetails(DownStorageCageDetails details) {
        this.save(details);
@@ -74,80 +72,91 @@
    @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> 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<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")
    public List<Map<String, Object>> getCacheInfo() {
        log.info("查询笼子内信息");
        return downStorageCageDetailsMapper.selectJoinMaps(JoinWrappers.lambda(DownStorageCageDetails.class) // 使用 JoinWrappers.lambda 创建联合查询
                .selectAll(DownStorageCageDetails.class) // 选择所有字段
                .eq(DownStorageCage::getSlot, DownStorageCageDetails::getSlot) // 设置关联条件
                .orderByAsc(DownStorageCage::getSlot) // 按 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<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> 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")
        );
    }
//    @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,6 +1,7 @@
package com.mes.downstorage.service.impl;
import com.github.yulichang.toolkit.JoinWrappers;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import com.mes.common.PLCAutoMes;
import com.mes.common.S7control;
import com.mes.device.PlcParameterObject;
@@ -9,11 +10,13 @@
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.DownStorageCageDetailsMapper;
import com.mes.downstorage.mapper.DownStorageCageMapper;
import com.mes.downstorage.service.DownStorageCageDetailsService;
import com.mes.downstorage.service.DownStorageCageService;
import com.mes.glassinfo.entity.GlassInfo;
import com.mes.glassinfo.service.GlassInfoService;
import com.mes.pp.entity.OptimizeDetail;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -33,7 +36,7 @@
@Slf4j
@Service
public class DownStorageCageServiceImpl extends ServiceImpl<DownStorageCageMapper, DownStorageCage> implements DownStorageCageService {
    @Autowired
    @Autowired(required=false)
    private DownStorageCageMapper downStorageCageMapper;
    @Autowired
@@ -43,6 +46,9 @@
    private DownGlassTaskService downGlassTaskService;
    @Autowired
    private DownStorageCageDetailsService downStorageCageDetailsService;
    @Autowired
    private DownStorageCageDetailsMapper downStorageCageDetailsMapper;
@@ -101,10 +107,6 @@
            //同找到同流程卡附近空格
            List<DownStorageCageDetails> list = selectCacheEmpty();
            //            list<Map> list=selectCacheEmpty();
//            list<Map> = downStorageCageService.selectCacheEmpty();
            if (list.size() > 0) {
                //存在空格
                //1.生成任务:  起始位置0   结束位置this.slot  任务类型 1   (进片任务)
@@ -147,8 +149,6 @@
        List<DownStorageCageDetails> list = downStorageCageDetailsService.CacheOut(1, 5);
        List<DownStorageCageDetails> list2 = downStorageCageDetailsService.CacheOut(6, 10);
        List<DownStorageCageDetails> list3 = downStorageCageDetailsService.CacheOut(1, 10);
        //自动绑定架子
@@ -183,8 +183,8 @@
            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;
        }
@@ -197,8 +197,8 @@
            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");
           // S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.28").getAddress(), "1");
           // S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.20").getAddress(), "1");
            return true;
            // 按照大小符合后端出片
@@ -210,8 +210,8 @@
            DownGlassTask downGlassTask =createDownGlassTask(item2,"0","11","2");
            downGlassTaskService.insertCacheTask(downGlassTask);
            S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.28").getAddress(), "2");
            S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.20").getAddress(), "1");
           // S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.28").getAddress(), "2");
           // S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.20").getAddress(), "1");
            return true;
@@ -223,7 +223,7 @@
        return false;
    }
        //找到空格子
    @Override
    public List<DownStorageCageDetails> selectCacheEmpty() {
        return baseMapper.selectJoinList(DownStorageCageDetails.class,
@@ -237,4 +237,51 @@
        );
    }
    /**
     * 修改理片笼信息 功能:对笼内栅格玻璃 【启用/禁用】
     * @param downStorageCage
     * @return
     */
    @Override
    public boolean updateDownStorageCage(DownStorageCage downStorageCage){
        DownStorageCage downItem=baseMapper.selectById(downStorageCage.getId());
        downItem.setEnableState(downStorageCage.getEnableState());
        baseMapper.updateById(downItem);
        return true;
    }
    /**
     *修改理片笼信息 功能:对笼内栅格玻璃 【添加/删除/更换】
     * @param downStorageCageId
     * @param downStorageCageDetails
     * @return
     */
    @Override
    public boolean updateDownStorageCageDetails(int downStorageCageId,DownStorageCageDetails downStorageCageDetails){
        DownStorageCage downItem=baseMapper.selectById(downStorageCageId);
        log.info("正常"+downItem);
        DownStorageCageDetails edgDItem=downStorageCageDetailsMapper.selectById(downStorageCageDetails.getId());
        if (downItem!=null){
            //移除
            DownStorageCageDetails result=downStorageCageDetailsMapper.selectOne(new MPJLambdaWrapper<DownStorageCageDetails>().eq(DownStorageCageDetails::getSlot,downStorageCageId));
            if (result!=null){
                result.setSlot(0);
                downStorageCageDetailsMapper.updateById(result);
            }
            //添加
            if(edgDItem!=null){
                //只传格子  :移除玻璃
                DownStorageCageDetails newresult=downStorageCageDetailsMapper.selectById(downStorageCageDetails.getId());
                newresult.setSlot(downItem.getSlot());
                downStorageCageDetailsMapper.updateById(newresult);
            }
        }
        return true;
    }
}
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/entity/DownWorkstation.java
@@ -54,9 +54,15 @@
    private Integer workState;
    /**
     * 总数量
     */
    @TableField("total_quantity")
    private Integer totalquantity;
    /**
     * 落架数量
     */
    @TableField("racks_number")
    private Integer Racksnumber;
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/entity/DownWorkstationTask.java
@@ -56,7 +56,7 @@
     */
    private Integer state;
    /**
     * 玻璃
     * 玻璃ID
     */
    private String glassId;
}
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/mapper/DownWorkstationTaskMapper.java
@@ -4,6 +4,7 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.mes.downworkstation.entity.DownWorkstation;
import com.mes.downworkstation.entity.DownWorkstationTask;
import org.mapstruct.Mapper;
import java.util.List;
@@ -15,7 +16,9 @@
 * @author zhoush
 * @since 2024-04-07
 */
@DS("salve_hangzhoumes")
@Mapper
public interface DownWorkstationTaskMapper extends BaseMapper<DownWorkstationTask> {
    List<DownWorkstationTask> selectList();
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/DownWorkstationTaskService.java
@@ -21,12 +21,14 @@
    void insertdownWorkstationtask(DownGlassInfo downGlassInfo);
    /**
     * @param Id 更新任务状态
     * @param downWorkstationTask 更新任务状态
     */
    void updateTaskStateToZero(long Id);
    void updateTaskStateToZero(DownWorkstationTask downWorkstationTask);
    /**
     * @return 获取任务状态为1的信息
     */
    List<DownWorkstationTask> getTaskState();
    void deleteTask(DownWorkstationTask downWorkstationTask);
}
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/impl/DownWorkstationServiceImpl.java
@@ -32,7 +32,7 @@
    @Autowired
    private DownWorkstationMapper downWorkstationMapper;
    @Autowired
    @Autowired(required=false)
    private DownWorkstationTaskMapper downWorkstationTaskMapper;
    @Autowired
    private DownGlassInfoService downGlassInfoService;
@@ -52,13 +52,13 @@
//获取总数量
    @Override
    public int getTotalQuantity(int workstationId) {
        QueryWrapper<DownWorkstation> queryWrapper = new QueryWrapper<>();
        queryWrapper.select("total_quantity")
                .eq("workstation_id", workstationId);
        DownWorkstation result = baseMapper.selectOne(new QueryWrapper<DownWorkstation>().lambda()
                .select(DownWorkstation::getTotalquantity)
                .eq(DownWorkstation::getWorkstationId, workstationId));
        DownWorkstation result = baseMapper.selectOne(queryWrapper);
        return result != null ? result.getTotalquantity() : 0;
    }
    //工位显示
    @Override
@@ -68,8 +68,8 @@
                .leftJoin("down_glass_info b on t.flow_card_id = b.flow_card_id")
                .groupBy("t.workstation_id", "t.flow_card_id");
//        List<DownWorkstionAndDownGlassinfo> workstationList = downWorkstationMapper.selectJoinList(DownWorkstionAndDownGlassinfo.class, queryWrapper);
        List<DownWorkstionAndDownGlassinfo> workstationList = null;
    List<DownWorkstionAndDownGlassinfo> workstationList = downWorkstationMapper.selectJoinList(DownWorkstionAndDownGlassinfo.class, queryWrapper);
       // List<DownWorkstionAndDownGlassinfo> workstationList = null;
        List<Map<String, Object>> result = new ArrayList<>();
        for (DownWorkstionAndDownGlassinfo downWorkstionAndDownGlassinfo : workstationList) {
            Map<String, Object> rack = new HashMap<>();
@@ -182,13 +182,14 @@
            for (DownGlassTask downGlassInfo : taskdownGlassInf) {
                // 创建新的 DownGlassInfo 对象并设置相关属性
                DownGlassInfo newdownGlassInfo = new DownGlassInfo();
//                newdownGlassInfo.setId(downGlassInfo.getId());
                newdownGlassInfo.setFlowCardId(downGlassInfo.getFlowCardId());
                Integer maxSequence = downGlassInfoService.getMaxSequenceByFlowCardId(downGlassInfo.getFlowCardId());
                // 初始化顺序字段值
                int sequence = maxSequence != null ? maxSequence + 1 : 1;
//                newdownGlassInfo.setId(downGlassInfo.getId());
                newdownGlassInfo.setWidth(downGlassInfo.getWidth());
                newdownGlassInfo.setGlassId(downGlassInfo.getGlassId());
                newdownGlassInfo.setHeight(downGlassInfo.getHeight());
                newdownGlassInfo.setThickness(downGlassInfo.getThickness());
                newdownGlassInfo.setFilmsid(downGlassInfo.getFilmsid());
@@ -198,12 +199,11 @@
                // 插入数据到下片玻璃信息表
                downGlassInfoService.insertDownGlassInfo(newdownGlassInfo);
                //插入数据到机械手任务表
                downWorkstationTaskService.insertdownWorkstationtask(newdownGlassInfo);
                //更新下片任务表状态为0
                downGlassTaskService.updateTaskStateToZero(downGlassInfo.getId());
                downGlassTaskService.updateTaskStateToZero(downGlassInfo.getGlassId());
                //删除下片任务表中的记录
                downGlassTaskService.deleteTask(downGlassInfo.getFlowCardId());
                downGlassTaskService.deleteTask(downGlassInfo.getGlassId());
                sequence++; // 递增顺序字段值
@@ -222,9 +222,9 @@
                    DownWorkstation downWorkstation1 = selectByFlowCardId(downWorkstation.getFlowCardId());
                    updateracksnumber(downWorkstation.getFlowCardId(), downWorkstation1.getRacksnumber() + 1);
                    //更新机械任务表中状态为0
                    downWorkstationTaskService.updateTaskStateToZero(downWorkstation.getId());
                    downWorkstationTaskService.updateTaskStateToZero(downWorkstation);
                    //删除机械任务表
                    downWorkstationTaskService.removeById(downWorkstation.getId());
                    downWorkstationTaskService.deleteTask(downWorkstation);
                }
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/impl/DownWorkstationTaskServiceImpl.java
@@ -1,6 +1,8 @@
package com.mes.downworkstation.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.mes.downglassinfo.entity.DownGlassInfo;
@@ -33,7 +35,7 @@
        Long newId = (maxId == null) ? 1 : maxId + 1;
        BeanUtils.copyProperties(entity,downGlassInfo);
        BeanUtils.copyProperties(downGlassInfo,entity);
        entity.setId(newId); // 设置手动递增的 id
        entity.setState(1);
        baseMapper.insert(entity);
@@ -62,12 +64,24 @@
        queryWrapper.eq("state", 1);
        return baseMapper.selectList(queryWrapper);
    }
    @Override
    public void updateTaskStateToZero(long id) {
        UpdateWrapper<DownWorkstationTask> updateWrapper = new UpdateWrapper<>();
        updateWrapper.set("state", 0).eq("id", id);
        baseMapper.update(new DownWorkstationTask(), updateWrapper);
    @Override
    public void updateTaskStateToZero(DownWorkstationTask downWorkstationTask) {
        LambdaUpdateWrapper<DownWorkstationTask> lambdaUpdateWrapper = new LambdaUpdateWrapper<>();
        lambdaUpdateWrapper.set(DownWorkstationTask::getState, 0)
                .eq(DownWorkstationTask::getGlassId, downWorkstationTask.getGlassId());
        baseMapper.update(new DownWorkstationTask(), lambdaUpdateWrapper);
    }
    @Override
    public void deleteTask(DownWorkstationTask downWorkstationTask) {
        LambdaQueryWrapper<DownWorkstationTask> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.eq(DownWorkstationTask::getGlassId, downWorkstationTask.getGlassId());
        baseMapper.delete(queryWrapper);
    }
}
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/glassinfo/service/GlassInfoService.java
@@ -16,10 +16,22 @@
 */
public interface GlassInfoService extends IService<GlassInfo> {
    /**
     * @param flowCardId
     * @return 根据流程卡号查询玻璃信息
     */
    int getGlassInfoCountByFlowCardId(String flowCardId);
    /**
     * @return
     * 查询所有不同流程卡号
     */
    List<Map<String, Object>> getFlowCardId();
    /**
     * @param id
     * @return 根据玻璃id查询玻璃信息
     */
    GlassInfo selectGlassId(String id);
//    List<GlassInfo> getmaxglass(GlassInfo glassInfo);
}
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/glassinfo/service/impl/GlassInfoServiceImpl.java
@@ -24,34 +24,34 @@
    private GlassInfoMapper glassInfoMapper;
    @Autowired
    @Autowired(required=false)
    public GlassInfoServiceImpl(GlassInfoMapper glassInfoMapper) {
        this.glassInfoMapper = glassInfoMapper;
    }
    @Override
    public int getGlassInfoCountByFlowCardId(String flowCardId) {
        QueryWrapper<GlassInfo> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("flow_card_id", flowCardId);
        return baseMapper.selectCount(queryWrapper);
        return baseMapper.selectCount(new QueryWrapper<GlassInfo>().lambda()
                .eq(GlassInfo::getFlowCardId, flowCardId));
    }
    @Override
    public List<Map<String, Object>> getFlowCardId() {
        return baseMapper.selectMaps(new QueryWrapper<GlassInfo>().select("DISTINCT flow_card_id"));
        return baseMapper.selectMaps(new QueryWrapper<GlassInfo>().lambda().select(GlassInfo::getFlowCardId).groupBy(GlassInfo::getFlowCardId));
    }
    @Override
    public GlassInfo selectGlassId(String id) {
        QueryWrapper<GlassInfo> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("glass_id", id);
        return baseMapper.selectOne(queryWrapper);
        return baseMapper.selectOne(new QueryWrapper<GlassInfo>().lambda()
                .eq(GlassInfo::getGlassId, id));
    }
}
hangzhoumesParent/moduleService/UnLoadGlassModule/src/test/java/mes/UnloadGlassModuleApplicationTest.java
@@ -10,6 +10,7 @@
import com.mes.downworkstation.service.DownWorkstationService;
import com.mes.downworkstation.service.impl.DownWorkstationServiceImpl;
import com.mes.glassinfo.service.impl.GlassInfoServiceImpl;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -43,6 +44,10 @@
    DownStorageCageDetailsService downStorageCageDetailsService;
    @Autowired
    DownWorkstationServiceImpl downWorkstationServiceImpl;
    @Autowired
    GlassInfoServiceImpl glassInfoServiceImpl;
    @Autowired
    DownWorkstationService downWorkstationService;
    @Test
    public void testFindPath() {
@@ -51,21 +56,21 @@
    @Test
    public void testCacheGlass() {
        List<Map> map = downStorageCageDetailsServiceImpl.getCacheInfo();
        List<Map<String, Object>> map = downStorageCageDetailsServiceImpl.getCacheInfo();
        log.info("笼内信息:{}", Arrays.asList(map));
    }
    @Test
    public void testselectCacheEmpty() {
        List<DownStorageCageDetails> map = downStorageCageDetailsServiceImpl.getCacheLeisure();
        log.info("笼内空格:{}", Arrays.asList(map));
       // List<DownStorageCageDetails> map = downStorageCageDetailsServiceImpl.getCacheLeisure();
       // log.info("笼内空格:{}", Arrays.asList(map));
    }
    @Test
    public void testgetCacheOut() {
        List<DownStorageCageDetails> map = downStorageCageDetailsServiceImpl.getCacheOut(1, 5);
        log.info("根据传入的工位查询符合按照顺序和大小出片的小片:{}", Arrays.asList(map));
       // List<DownStorageCageDetails> map = downStorageCageDetailsServiceImpl.getCacheOut(1, 5);
      //  log.info("根据传入的工位查询符合按照顺序和大小出片的小片:{}", Arrays.asList(map));
    }
@@ -79,7 +84,7 @@
    @Test
    public void testplc() {
        log.info("测试");
        downWorkstationServiceImpl.insertdownglassinfo();
        glassInfoServiceImpl.getGlassInfoCountByFlowCardId("NG24030702A01");
    }
@@ -88,7 +93,7 @@
    @Test
    public void testin2() {
        log.info("测试进片");
        downStorageCageDetailsServiceImpl.getIsExistIntoCacheByflowcardid("NG2023005",500);
        //downStorageCageDetailsServiceImpl.getIsExistIntoCacheByflowcardid("NG2023005",500);
    }
@@ -96,7 +101,7 @@
    @Test
    public void selectCacheEmpty() {
        log.info("测试进片");
        downStorageCageDetailsServiceImpl.getCacheLeisure();
        //downStorageCageDetailsServiceImpl.getCacheLeisure();
    }
@@ -111,7 +116,7 @@
    @Test
    public void getTotalGlassDimensionsByWorkstation() {
        log.info("工位显示");
        downWorkstationServiceImpl.getTotalGlassDimensionsByWorkstation();
        downWorkstationService.getTotalGlassDimensionsByWorkstation();
    }
@@ -127,7 +132,7 @@
    public void updateTaskStateToZero() {
        log.info("更新状态0");
        downGlassTaskServiceImpl.updateTaskStateToZero(3);
        downGlassTaskServiceImpl.updateTaskStateToZero("3");
    }