hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/common/Plcdownglass.java
@@ -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()) { downStorageCageService.processInto(number); } } if (downStorageCageService.processOut()) { //下片更新 downWorkstationService.insertdownglassinfo(); // 执行进片操作 downStorageCageService.processInto(number); } else { // 如果 processOut() 返回 false,可以在这里处理其他逻辑 log.info("出片请求失败,无法执行进片操作"); } } } 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") ); } @Override public List<Map> getCacheInfo() { public List<Map<String, Object>> 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") 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<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"); }