hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/CodeGet.java
@@ -22,10 +22,10 @@ // 2、全局配置 // 全局配置 GlobalConfig gc = new GlobalConfig(); gc.setOutputDir("D:\\Documents\\hangzhoumesParent1\\"); gc.setOutputDir("D:\\Documents\\hangzhoumesParent2\\"); gc.setServiceName("%sService"); //去掉Service接口的首字母I gc.setAuthor("zhoush"); gc.setAuthor("wu"); gc.setOpen(false); mpg.setGlobalConfig(gc); @@ -41,7 +41,7 @@ // 4、包配置 PackageConfig pc = new PackageConfig(); pc.setParent("com.mes"); pc.setModuleName("userinfo"); //模块名 pc.setModuleName("engineering"); //模块名 pc.setController("controller"); pc.setService("service"); pc.setMapper("mapper"); @@ -50,7 +50,7 @@ // 5、策略配置 StrategyConfig strategy = new StrategyConfig(); strategy.setInclude("up_patten_usage"); strategy.setInclude("engineering"); strategy.setNaming(NamingStrategy.underline_to_camel);//数据库表映射到实体的命名策略 hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/engineering/controller/EngineeringController.java
New file @@ -0,0 +1,37 @@ package com.mes.engineering.controller; import com.mes.engineering.entity.Engineering; import com.mes.engineering.service.impl.EngineeringServiceImpl; import com.mes.utils.Result; import com.mes.workstation.service.UpWorkstationService; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import com.mes.engineering.service.EngineeringService; /** * <p> * 前端控制器 * </p> * * @author wu * @since 2024-04-22 */ @RestController @Slf4j @RequestMapping("/engineering/engineering") public class EngineeringController { @Autowired private EngineeringService engineeringService; @ApiOperation("开始/暂停任务/传递工程号和状态,开始是1 暂停是0") @PostMapping("/changeTask") //调用上片任务 @ResponseBody public Result <Engineering> changeTask(String projectId , Integer state) { boolean work=engineeringService.changeTask(projectId,state); log.info("开始任务返回:{}", work); return Result.build(200, "",null); } } hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/engineering/entity/Engineering.java
New file @@ -0,0 +1,100 @@ package com.mes.engineering.entity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import java.io.Serializable; import lombok.Data; import lombok.EqualsAndHashCode; /** * <p> * * </p> * * @author wu * @since 2024-04-22 */ @Data @EqualsAndHashCode(callSuper = false) public class Engineering implements Serializable { private static final long serialVersionUID = 1L; /** * 工程表id */ @TableId(value = "id", type = IdType.AUTO) private Long id; /** * 工程号 */ private String engineerId; /** * 工程名称 */ private String engineerName; /** * 平均利用率 */ private Double avgAvailability; /** * 有效利用率 */ private Double validAvailability; /** * 尾片利用率 */ private Double lastAvailability; /** * 状态 */ private Integer state; /** * 小片总数 */ private Integer glassTotal; /** * 小片总面积 */ private Double glassTotalArea; /** * 计划原片总数 */ private Integer planPatternTotal; /** * 计划原片总面积 */ private Double planPatternTotalArea; /** * 实际原片总数 */ private Integer realityPatternTotal; /** * 实际原片总面积 */ private Double realityPatternTotalArea; /** * 膜系id */ private Integer filmsId; /** * 备注 */ private String notes; } hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/engineering/mapper/EngineeringMapper.java
New file @@ -0,0 +1,16 @@ package com.mes.engineering.mapper; import com.mes.engineering.entity.Engineering; import com.baomidou.mybatisplus.core.mapper.BaseMapper; /** * <p> * Mapper 接口 * </p> * * @author wu * @since 2024-04-22 */ public interface EngineeringMapper extends BaseMapper<Engineering> { } hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/engineering/mapper/xml/EngineeringMapper.xml
New file @@ -0,0 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.mes.engineering.mapper.EngineeringMapper"> </mapper> hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/engineering/service/EngineeringService.java
New file @@ -0,0 +1,17 @@ package com.mes.engineering.service; import com.mes.engineering.entity.Engineering; import com.baomidou.mybatisplus.extension.service.IService; /** * <p> * 服务类 * </p> * * @author wu * @since 2024-04-22 */ public interface EngineeringService extends IService<Engineering> { boolean changeTask(String projectId,Integer state); } hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/engineering/service/impl/EngineeringServiceImpl.java
New file @@ -0,0 +1,29 @@ package com.mes.engineering.service.impl; import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper; import com.mes.engineering.entity.Engineering; import com.mes.engineering.mapper.EngineeringMapper; import com.mes.engineering.service.EngineeringService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; /** * <p> * 服务实现类 * </p> * * @author wu * @since 2024-04-22 */ @Service public class EngineeringServiceImpl extends ServiceImpl<EngineeringMapper, Engineering> implements EngineeringService { //开始/暂停任务 @Override public boolean changeTask(String projectId, Integer state) { LambdaUpdateChainWrapper<Engineering> wrapper = new LambdaUpdateChainWrapper<>(this.getBaseMapper()); wrapper.set(Engineering::getState,state); wrapper.eq(Engineering::getEngineerId,projectId); return wrapper.update(); } } hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/controller/UpWorkstationController.java
@@ -3,6 +3,7 @@ import com.mes.utils.Result; import com.mes.workstation.entity.GlassInfo; import com.mes.workstation.entity.UpWorkSequence; import com.mes.workstation.entity.UpWorkstation; import com.mes.workstation.service.UpWorkstationService; import io.swagger.annotations.ApiOperation; @@ -26,7 +27,6 @@ public class UpWorkstationController { @Autowired private UpWorkstationService upWorkstationService; private GlassInfo glassInfo; @ApiOperation("显示工位上的玻璃信息") @GetMapping("/list") //查询现在上片机的玻璃信息 public Result<List<UpWorkstation>> list() { @@ -40,15 +40,19 @@ @ApiOperation("修改工位表增加玻璃信息或者删除玻璃信息,传递Upworkstation类,只修改宽高厚数量膜系") @PostMapping("/updateGlassMessage") @ResponseBody public void updateGlassMessage(@RequestBody UpWorkstation upwork) { public Result<UpWorkstation> updateGlassMessage(@RequestBody UpWorkstation upwork) { upWorkstationService.updateGlassMessage(upwork); return Result.build(200, "", upwork); } @ApiOperation("开始上片任务") @PostMapping("/selectPriority") //开始上片任务 @PostMapping("/selectPriority") //调用上片任务 @ResponseBody public void selectPriority() { upWorkstationService.selectPriority(); UpWorkSequence work=upWorkstationService.selectPriority(); log.info("显示可上的玻璃信息:{}", work); } } hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/entity/UpWorkSequence.java
@@ -9,7 +9,7 @@ public class UpWorkSequence { private int sequence; private int workId; private int number; } hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/mapper/UpWorkstationMapper.java
@@ -16,7 +16,8 @@ * @since 2024-04-07 */ public interface UpWorkstationMapper extends BaseMapper<UpWorkstation> { //获取工位信息 UpWorkSequence selectPriority(@Param("id") int id); List<UpWorkSequence> selectPriority(@Param("id") int id); //获取下一片玻璃信息 } hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/service/UpWorkstationService.java
@@ -1,6 +1,7 @@ package com.mes.workstation.service; import com.baomidou.mybatisplus.extension.service.IService; import com.mes.workstation.entity.UpWorkSequence; import com.mes.workstation.entity.UpWorkstation; /** @@ -14,12 +15,10 @@ public interface UpWorkstationService extends IService<UpWorkstation> { //PlcParameterObject plcmes=PLCAutoMes.PlcMesObject; //删除人工搬走的玻璃信息 // public void deleteGlass(int id); //判断是否可以吸片进行任务 //判断优先吸片位置后发送出片任务 public void selectPriority(); public UpWorkSequence selectPriority(); //查询正在进行的工程 @@ -29,5 +28,9 @@ * * @param upwork */ //修改工位表增加玻璃信息或者删除玻璃信息 void updateGlassMessage(UpWorkstation upwork); } hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/service/impl/UpWorkstationServiceImpl.java
@@ -33,29 +33,14 @@ //判断优先吸片位置后发送出片任务 public void selectPriority() { //todo:判断是否可以吸片进行任务 // String loadstart="吸片信号";//plcmes.getPlcParameter("吸片信号").getValue(); // if (!"1".equals(loadstart)) { // return; // } UpWorkSequence loadid1 = this.baseMapper.selectPriority(1).get(0); UpWorkSequence loadid2 = this.baseMapper.selectPriority(2).get(0); //判断一二号工位哪边的顺序更先 // if(loadid1.getSequence()>loadid2.getSequence()) { // S7object.getinstance().plccontrol.WriteWord(DB_100_10, (short)2); // }else if(loadid1.getSequence()==loadid2.getSequence()){ // //当两个工位上的玻璃数相同时,判断哪个工位上的玻璃数更少,优先清空一个架子 // int glassnum1=loadid1.getNumber();//Integer.parseInt(plcmes.getPlcParameter("玻璃数").getValue()); // int glassnum2=loadid2.getNumber();//Integer.parseInt(plcmes.getPlcParameter("玻璃数").getValue()); // if(glassnum1>glassnum2){ // S7object.getinstance().plccontrol.WriteWord(DB_100_10, (short)2); // }else{ // S7object.getinstance().plccontrol.WriteWord(DB_100_10, (short)1); // } // }else{ // S7object.getinstance().plccontrol.WriteWord(DB_100_10, (short)1); // } public UpWorkSequence selectPriority() { UpWorkSequence upwork= this.baseMapper.selectPriority(1); String start = "吸片信号";//plcmes.getPlcParameter("吸片信号").getValue(); if(upwork!=null&&start.equals("1")){ //发送出片任务 //plcmes.getPlcParameter("出片信号").setValue("1"); } return upwork; } /** @@ -69,4 +54,5 @@ int update = this.baseMapper.update(upwork, updateWrapper); } } hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/mapper/UpWorkstationMapper.xml
@@ -3,20 +3,19 @@ <mapper namespace="com.mes.workstation.mapper.UpWorkstationMapper"> <resultMap id="sequenceMap" type="com.mes.workstation.entity.UpWorkSequence"> <id property="sequence" column="layout_sequence"/> <result property="number" column="number"/> <id property="workId" column="workstation_id"/> <!-- <result property="number" column="number"/>--> </resultMap> <select id="selectPriority" resultMap="sequenceMap"> SELECT b.layout_sequence,a."number" b.workstation_id FROM up_workstation a LEFT JOIN up_patten_usage b ON a.pattern_width = b.width AND a.pattern_heigth = b.width AND a.pattern_thickness = b.thickness WHERE a.workstation_id = #{id} ( SELECT * FROM up_patten_usage a WHERE state = 1 ORDER BY a.layout_sequence LIMIT 1 )as a LEFT JOIN up_workstation b ON a.width =b.pattern_width AND a.height = b.pattern_heigth AND a.thickness = b.pattern_thickness AND a.films_id = b.films_id </select>