wu
2024-05-13 7ef9a2e673617e598fb12903dd1bf83f7ce93547
增加代码备注
13个文件已修改
238 ■■■■ 已修改文件
hangzhoumesParent/common/servicebase/src/main/java/com/mes/engineering/service/EngineeringService.java 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/common/servicebase/src/main/java/com/mes/engineering/service/impl/EngineeringServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/service/GlassInfoService.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/OptimizeProjectService.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/impl/OptimizeProjectServiceImpl.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/common/servicebase/src/main/java/com/mes/uppattenusage/controller/UpPattenUsageController.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/common/servicebase/src/main/java/com/mes/uppattenusage/service/UpPattenUsageService.java 31 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/common/servicebase/src/main/java/com/mes/uppattenusage/service/impl/UpPattenUsageServiceImpl.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/job/PlcLoadGlassTask.java 84 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/service/UpWorkstationService.java 25 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/service/impl/UpWorkstationServiceImpl.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/application.yml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/LoadGlassModule/src/test/java/com/mes/LoadGlassModuleApplicationTest.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/common/servicebase/src/main/java/com/mes/engineering/service/EngineeringService.java
@@ -16,13 +16,23 @@
public interface EngineeringService extends IService<Engineering> {
    /**
     * 开始/暂停任务
     * @return boolean
     */
    boolean  changeTask(String projectId, Integer state);
    /**
     * 查询钢化信息
     * @return List<Engineering>
     */
    List<Engineering> selectEngineering(String engineeringId);
    void saveEngineering(List<Engineering> engineerings);
    /**
     * 保存钢化信息
     */
    void saveEngineering(List<Engineering> engineering);
    /**
     * 查询是否有上片任务
     * @return Engineering
     */
    Engineering selectInitiate(Integer state);
}
hangzhoumesParent/common/servicebase/src/main/java/com/mes/engineering/service/impl/EngineeringServiceImpl.java
@@ -79,8 +79,8 @@
    }
    @Override
    public void saveEngineering(List<Engineering> engineerings) {
        this.saveBatch(engineerings);
    public void saveEngineering(List<Engineering> engineering) {
        this.saveBatch(engineering);
        //保存钢化工程信息
    }
hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/service/GlassInfoService.java
@@ -13,9 +13,14 @@
 * @since 2024-04-29
 */
public interface GlassInfoService extends MPJBaseService<GlassInfo> {
      /**
       * 查询小片表
       * @return List<GlassInfo>
       */
      List<GlassInfo> selectGlassInfo(String engineeringId);
      /**
       * 保存小片表
       */
      void saveGlassInfo(List<GlassInfo> glassinfo);
}
hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/OptimizeProjectService.java
@@ -1,6 +1,5 @@
package com.mes.pp.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.github.yulichang.base.MPJBaseService;
import com.mes.pp.entity.OptimizeProject;
import com.mes.pp.entity.request.OptimizeRequest;
@@ -19,17 +18,12 @@
    /**
     * 查询可领取的任务工程信息
     * @return
     * @return List<OptimizeProject>
     */
    List<OptimizeProject> listByState(OptimizeRequest optimizeRequest);
    /**
     * 将工程信息保存到原片使用详情表
     * @return
     */
    void insetupPattenUsage(List<OptimizeProject> glass);
    /**
     * 将工程信息更新状态为已领取
     * @return
     */
    void changeTask(String engineeringId, int i);
}
hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/impl/OptimizeProjectServiceImpl.java
@@ -9,7 +9,6 @@
import com.mes.pp.entity.request.OptimizeRequest;
import com.mes.pp.mapper.OptimizeProjectMapper;
import com.mes.pp.service.OptimizeProjectService;
import com.mes.uppattenusage.entity.UpPattenUsage;
import com.mes.uppattenusage.mapper.UpPattenUsageMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@@ -44,18 +43,6 @@
        return this.list(wrapper);
    }
    @Override
    public void insetupPattenUsage(List<OptimizeProject> glass) {
        log.info("循环查询结果保存到UpPattenUsage表中");
        for (OptimizeProject project : glass) {
            UpPattenUsage upPattenUsage = new UpPattenUsage();
            upPattenUsage.setEngineeringId(project.getProjectNo());
            upPattenUsage.setFilmsId(project.getGlassType());
            upPattenUsage.setState(project.getState());
            upPattenUsageMapper.insert(upPattenUsage);
        }
    }
    @Override
    public void changeTask(String engineeringId, int state) {
hangzhoumesParent/common/servicebase/src/main/java/com/mes/uppattenusage/controller/UpPattenUsageController.java
@@ -53,7 +53,7 @@
        UpPattenUsage upPattenUsage= upPattenUsageService.selectedEngineering(engineeringId);
        if (upPattenUsage!=null){
            log.info("已保存过");
            return Result.build(200, "已保存过", 200);
            return Result.build(200, "已保存的工程", 200);
        }else {
            List<UpPattenUsage> upPattenUsages = upPattenUsageService.selectSaveUpPattenUsage(engineeringId);
            log.info("将查询出的UpPattenUsage数据保存到数据库表里");
@@ -62,8 +62,8 @@
            List<GlassInfo> glassinfo=glassInfoService.selectGlassInfo(engineeringId);
            glassInfoService.saveGlassInfo(glassinfo);
            log.info("从PP表查询engineering的数据并保存到表里");
            List<Engineering> engineerings= engineeringService.selectEngineering(engineeringId);
            engineeringService.saveEngineering(engineerings);
            List<Engineering> engineering= engineeringService.selectEngineering(engineeringId);
            engineeringService.saveEngineering(engineering);
            log.info("更改pp表状态为已领取");
            optimizeProjectService.changeTask(engineeringId, 200);
            return Result.build(200, "", 200);
hangzhoumesParent/common/servicebase/src/main/java/com/mes/uppattenusage/service/UpPattenUsageService.java
@@ -3,7 +3,6 @@
import com.mes.uppattenusage.entity.UpPattenUsage;
import java.util.List;
import java.util.Map;
/**
 * <p>
@@ -14,15 +13,33 @@
 * @since 2024-04-18
 */
public interface UpPattenUsageService extends MPJBaseService<UpPattenUsage> {
     /**
      * 查询工位上的玻璃信息
      * @return List<UpPattenUsage>
      */
     List<UpPattenUsage> prioritylist(int state);
     /**
      * 查询上片顺序信息
      * @return List<UpPattenUsage>
      */
     List<UpPattenUsage> selectSaveUpPattenUsage(String engineeringId);
     /**
      * 保存上片顺序信息
      */
     void saveUpPattenUsage(List<UpPattenUsage> upPattenUsages);
     void updateupPattenUsageState(UpPattenUsage upPattenUsage, Integer state);
     /**
      * 更新上片表状态
      */
     void updateUpPattenUsageState(UpPattenUsage upPattenUsage, Integer state);
     /**
      * 判断此工程是否已保存过
      * @return UpPattenUsage
      */
     UpPattenUsage selectedEngineering(String engineeringId);
     /**
      * 查询正在执行的上片任务
      * @return UpPattenUsage
      */
     UpPattenUsage selectOverTask();
}
hangzhoumesParent/common/servicebase/src/main/java/com/mes/uppattenusage/service/impl/UpPattenUsageServiceImpl.java
@@ -82,7 +82,7 @@
    }
    @Override
    public void updateupPattenUsageState(UpPattenUsage upPattenUsage, Integer state) {
    public void updateUpPattenUsageState(UpPattenUsage upPattenUsage, Integer state) {
        upPattenUsage.setState(state);
        boolean updateSuccess=this.updateById(upPattenUsage);
        log.info("更新状态{}",updateSuccess);
@@ -97,5 +97,14 @@
        return this.getOne(wrapper);
    }
    @Override
    public UpPattenUsage selectOverTask() {
        QueryWrapper<UpPattenUsage>wrapper = new QueryWrapper<>();
        wrapper.gt("state",0)
                .lt("state",99)
                .last("limit 1");
        return this.getOne(wrapper);
    }
}
hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/job/PlcLoadGlassTask.java
@@ -1,6 +1,5 @@
package com.mes.job;
import cn.hutool.json.JSONObject;
import com.mes.common.S7object;
import com.mes.device.PlcParameterObject;
import com.mes.engineering.entity.Engineering;
@@ -24,11 +23,12 @@
    @Autowired
    private UpWorkstationService upWorkstationService;
    @Autowired
    private EngineeringService  engineeringService;
    private EngineeringService engineeringService;
    @Autowired
    private UpPattenUsageService upPattenUsageService;
    PlcParameterObject plcParameterObject = S7object.getinstance().PlcMesObject;
    /**
     * fixedRate : 上一个调用开始后再次调用的延时(不用等待上一次调用完成)
     * fixedDelay : 上一个调用结束后再次调用的延时
@@ -37,47 +37,47 @@
    @Scheduled(fixedDelay = 300)
    public void plcLoadGlassTask() throws InterruptedException {
        try {
            log.info("开始上片");
            //获取是否有上片请求
            String loadRequest = plcParameterObject.getPlcParameter("loadRequest").getValue();
            //判断开始上片的工程号
            Engineering engineering=engineeringService.selectInitiate(1);
            if("1".equals(loadRequest)&&engineering!=null){
                UpPattenUsage upPattenUsage=upWorkstationService.selectPriority(engineering);
                log.info("当有请求时查询当前上片顺序的玻璃信息{}",upPattenUsage);
                UpWorkstation upwork=upWorkstationService.selectworkstation(upPattenUsage);
                log.info("符合的尺寸的工位玻璃:{}",upwork);
                if(upwork!=null){
                    int workId=upwork.getWorkstationId();//工位id
                    double width=upwork.getPatternWidth();//宽度
                    double height=upwork.getPatternHeight();//高度
                    S7object.getinstance().plccontrol.writetime(plcParameterObject.getPlcParameter("WorkId").getAddress(),workId);
            Engineering engineering = engineeringService.selectInitiate(1);
            if ("1".equals(loadRequest) && engineering != null) {
                log.info("开始上片任务");
                UpPattenUsage upPattenUsage = upWorkstationService.selectPriority(engineering);
                log.info("当有请求时查询当前上片顺序的玻璃信息{}", upPattenUsage);
                UpWorkstation upwork = upWorkstationService.selectWorkstation(upPattenUsage);
                log.info("符合的尺寸的工位玻璃:{}", upwork);
                if (upwork != null) {
                    int workId = upwork.getWorkstationId();//工位id
                    double width = upwork.getPatternWidth();//宽度
                    double height = upwork.getPatternHeight();//高度
                    S7object.getinstance().plccontrol.writetime(plcParameterObject.getPlcParameter("WorkId").getAddress(), workId);
                    S7object.getinstance().plccontrol.writetime(plcParameterObject.getPlcParameter("GlassWidth").getAddress(), (long) width);
                    S7object.getinstance().plccontrol.writetime(plcParameterObject.getPlcParameter("GlassHeight").getAddress(), (long) height);
                    S7object.getinstance().plccontrol.writetime(plcParameterObject.getPlcParameter("MesToPlc").getAddress(),1);
                    //减少工位数量
                    upWorkstationService.reduceWorkstationNumber(upwork);
                    //完成上片表状态
                    upPattenUsageService.updateupPattenUsageState(upPattenUsage,1);
                    S7object.getinstance().plccontrol.writetime(plcParameterObject.getPlcParameter("MesToPlc").getAddress(), 1);
                    //更改上片表状态
                    upPattenUsageService.updateUpPattenUsageState(upPattenUsage, workId);
                }
            }
            //获取是否有汇报
            String loadStatus = plcParameterObject.getPlcParameter("PlcStatus").getValue();
            if (loadStatus!=null) {
            if (loadStatus != null) {
                log.info(loadStatus);
                if ("1".equals(loadStatus)) {
                    log.info("收到汇报任务完成");
                    S7object.getinstance().plccontrol.writetime(plcParameterObject.getPlcParameter("MesToPlcStatus").getAddress(), 1);
                } else if ("2".equals(loadStatus)) {
                    log.info("收到汇报未完成任务");
                    S7object.getinstance().plccontrol.writetime(plcParameterObject.getPlcParameter("MesToPlcStatus").getAddress(), 1);
                    //减少工位数量,恢复任务状态
                    overTask(loadStatus,0);
                } else if ("3".equals(loadStatus)) {
                    log.info("收到汇报玻璃破损");
                    S7object.getinstance().plccontrol.writetime(plcParameterObject.getPlcParameter("MesToPlcStatus").getAddress(), 1);
                } else {
                    log.info("收到汇报清0状态");
                    S7object.getinstance().plccontrol.writetime(plcParameterObject.getPlcParameter("MesToPlcStatus").getAddress(), 0);
                    overTask(loadStatus,0);
                } else if("0".equals(loadStatus)){
                        log.info("收到汇报清0状态");
                        //减少工位数量,完成任务状态
                        overTask(loadStatus,1);
                }
            }
            //执行后休眠300毫秒
@@ -86,28 +86,16 @@
            e.printStackTrace();
        }
    }
//    @Scheduled(fixedDelay = 300)
//    public void plcLoadGlassOver() throws InterruptedException {
//        try {
//            //获取是否有汇报
//            String loadStatus = plcParameterObject.getPlcParameter("PlcStatus").getValue();
//            if ("1".equals(loadStatus)){
//                log.info("收到汇报任务完成");
//                S7object.getinstance().plccontrol.writetime(plcParameterObject.getPlcParameter("MesToPlcStatus").getAddress(),1);
//            }else if ("2".equals(loadStatus)) {
//                log.info("收到汇报未完成任务");
//                S7object.getinstance().plccontrol.writetime(plcParameterObject.getPlcParameter("MesToPlcStatus").getAddress(),1);
//            }else if("3".equals(loadStatus)){
//                log.info("收到汇报玻璃破损");
//                S7object.getinstance().plccontrol.writetime(plcParameterObject.getPlcParameter("MesToPlcStatus").getAddress(),1);
//            }else {
//                log.info("收到汇报清0状态");
//                S7object.getinstance().plccontrol.writetime(plcParameterObject.getPlcParameter("MesToPlcStatus").getAddress(),0);
//            }
//
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//    }
  public  void overTask(String loadStatus,int state) throws InterruptedException {
      UpPattenUsage upPattenUsage = upPattenUsageService.selectOverTask();
      if (upPattenUsage != null) {
          log.info("收到汇报清{}状态",loadStatus);
          //减少工位数量
          upWorkstationService.reduceWorkstationNumber(upPattenUsage.getState());
          //完成上片表状态
          upPattenUsageService.updateUpPattenUsageState(upPattenUsage, 100);
          S7object.getinstance().plccontrol.writetime(plcParameterObject.getPlcParameter("MesToPlcStatus").getAddress(), 0);
      }
  }
}
hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/service/UpWorkstationService.java
@@ -3,7 +3,6 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.mes.engineering.entity.Engineering;
import com.mes.uppattenusage.entity.UpPattenUsage;
import com.mes.workstation.entity.UpWorkSequence;
import com.mes.workstation.entity.UpWorkstation;
/**
@@ -15,24 +14,26 @@
 * @since 2024-04-07
 */
public interface UpWorkstationService extends IService<UpWorkstation> {
    //PlcParameterObject plcmes=PLCAutoMes.PlcMesObject;
    //判断优先吸片玻璃
    /**
     * 判断优先吸片位置
     * @return UpPattenUsage
     */
    UpPattenUsage selectPriority(Engineering engineering);
    //查询正在进行的单片信息
    UpWorkstation selectworkstation(UpPattenUsage upPattenUsage);
    //减少工位数量
    void reduceWorkstationNumber(UpWorkstation upwork);
    /**
     * 查询正在进行的单片信息
     * @return UpWorkstation
     */
    UpWorkstation selectWorkstation(UpPattenUsage upPattenUsage);
    /**
     * 减少工位数量
     */
    void reduceWorkstationNumber(Integer upworkId);
    /**
     * 增加人工输入的工位玻璃信息
     *
     * @param upwork
     */
    //修改工位表增加玻璃信息或者删除玻璃信息
    void updateGlassMessage(UpWorkstation upwork);
hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/service/impl/UpWorkstationServiceImpl.java
@@ -46,7 +46,7 @@
    //判断工位是否有符合条件的玻璃
    @Override
    public UpWorkstation selectworkstation(UpPattenUsage upPattenUsage) {
    public UpWorkstation selectWorkstation(UpPattenUsage upPattenUsage) {
        QueryWrapper<UpWorkstation> wrapper = new QueryWrapper<>();
        wrapper.eq("pattern_width", upPattenUsage.getWidth())
                .eq("pattern_height", upPattenUsage.getHeight())
@@ -59,9 +59,9 @@
    }
    @Override
    public void reduceWorkstationNumber(UpWorkstation upwork) {
    public void reduceWorkstationNumber(Integer upworkId) {
        UpdateWrapper<UpWorkstation> wrapper = new UpdateWrapper<>();
        wrapper.eq("id", upwork.getWorkstationId())
        wrapper.eq("id", upworkId)
                .setSql("number = number - 1");
        boolean updateResult = upWorkstationMapper.update(null, wrapper) > 0;
        log.info("减少工位数量{}",updateResult);
@@ -79,4 +79,5 @@
    }
}
hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/application.yml
@@ -7,5 +7,5 @@
    name: loadGlass
mybatis-plus:
  mapper-locations: classpath*:mapper/*.xml
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
#   configuration:
#    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl 打印sql语句
hangzhoumesParent/moduleService/LoadGlassModule/src/test/java/com/mes/LoadGlassModuleApplicationTest.java
@@ -4,7 +4,6 @@
import com.mes.engineering.service.EngineeringService;
import com.mes.glassinfo.entity.GlassInfo;
import com.mes.glassinfo.service.GlassInfoService;
import com.mes.pp.mapper.OptimizeProjectMapper;
import com.mes.pp.service.OptimizeProjectService;
import com.mes.uppattenusage.entity.UpPattenUsage;
import com.mes.uppattenusage.service.impl.UpPattenUsageServiceImpl;
@@ -17,7 +16,6 @@
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import javax.annotation.Resource;
import java.util.Arrays;
import java.util.List;
@@ -59,11 +57,11 @@
        log.info("开始上片的工程:{}", Arrays.asList(engineering));
        UpPattenUsage upPattenUsage = workstationService.selectPriority(engineering);
        log.info("上片顺序:{}", Arrays.asList(upPattenUsage));
        UpWorkstation glass2=workstationService.selectworkstation(upPattenUsage);
        UpWorkstation glass2=workstationService.selectWorkstation(upPattenUsage);
        log.info("符合的工位玻璃{}",glass2);
        workstationService.reduceWorkstationNumber(glass2);
        workstationService.reduceWorkstationNumber(glass2.getWorkstationId());
        //减少数量
        upPattenUsageService.updateupPattenUsageState(upPattenUsage,1);
        upPattenUsageService.updateUpPattenUsageState(upPattenUsage,1);
        //更新状态
    }
@@ -87,6 +85,8 @@
    @Test
    public  void  textengineering3(){
        //判断是否已保存过工程号到上片表
        upPattenUsageService.selectedEngineering("P24050801");
        UpPattenUsage upPattenUsage=upPattenUsageService.selectOverTask();
        log.info("上片表任务中的数据{}",upPattenUsage);
    }
}