2bbc7c7398f59e844e942203615732dcc79de0a5..616068b49ed7ca709877a30d8abc56ecb6454218
2024-09-14 admin
230优化
616068 对比 | 目录
2024-09-14 admin
打印功能修改
dd9383 对比 | 目录
已修改9个文件
86 ■■■■ 文件已修改
jcdm-main/src/main/java/com/jcdm/main/bs/formulaChild/controller/BsFormulaChildInfoController.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/controller/OmProductionOrdeInfoController.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/mapper/OmProductionOrdeInfoMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/service/IOmProductionOrdeInfoService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/service/impl/OmProductionOrdeInfoServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/plcserver/sub/OPCUaSubscription.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/resources/mapper/om/productionOrde/OmProductionOrdeInfoMapper.xml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-ui/src/api/main/om/productionOrde/productionOrde.js 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-ui/src/views/main/kb/stationTerminal/index.vue 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/bs/formulaChild/controller/BsFormulaChildInfoController.java
@@ -10,6 +10,8 @@
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.jcdm.main.constant.Constants;
import com.jcdm.main.om.productionOrde.domain.OmProductionOrdeInfo;
import com.jcdm.main.om.productionOrde.service.IOmProductionOrdeInfoService;
import com.kangaroohy.milo.model.ReadWriteEntity;
import com.kangaroohy.milo.service.MiloService;
import org.springframework.security.access.prepost.PreAuthorize;
@@ -43,6 +45,9 @@
{
    @Autowired
    private IBsFormulaChildInfoService bsFormulaChildInfoService;
    @Autowired
    private IOmProductionOrdeInfoService omProductionOrdeInfoService;
    @Autowired
    private MiloService miloService;
@@ -113,11 +118,13 @@
            String str = thoroughfare+"."+bsFormulaChildInfo.getProcessesCode()+".MESScrew";
            miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(str).value(stepNumber).build());//拧紧步骤
            if("OP230".equals(bsFormulaChildInfo.getProcessesCode())){
                List<OmProductionOrdeInfo> list = omProductionOrdeInfoService.list(new LambdaQueryWrapper<OmProductionOrdeInfo>().like(OmProductionOrdeInfo::getProductNum, bsFormulaChildInfo.getSfcBarcode()));
                String sfcCode = list.get(0).getProductNum();
                //所有进站将进站时间写给PLC
                SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                String currentDate = dateFormat.format(new Date());
                miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + bsFormulaChildInfo.getProcessesCode() + ".StartTime").value(currentDate).build());
                miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + bsFormulaChildInfo.getProcessesCode() + ".SNCode").value(bsFormulaChildInfo.getSfcBarcode()).build());
                miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + bsFormulaChildInfo.getProcessesCode() + ".SNCode").value(sfcCode).build());
                miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(thoroughfare + "." + bsFormulaChildInfo.getProcessesCode() + ".RecordDataDone").value(11).build());
            }else if("OP220".equals(bsFormulaChildInfo.getProcessesCode())){
                miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(thoroughfare + "." + bsFormulaChildInfo.getProcessesCode() + ".RecordDataDone").value(11).build());
jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/controller/OmProductionOrdeInfoController.java
@@ -78,6 +78,17 @@
        return getDataTable(list);
    }
    /**
     * 查询生产工单列表
     */
    @GetMapping("/listLoopLine")
    public TableDataInfo listLoopLine(OmProductionOrdeInfo omProductionOrdeInfo)
    {
        startPage();
        List<OmProductionOrdeInfo> list = omProductionOrdeInfoService.listLoopLine(omProductionOrdeInfo);
        return getDataTable(list);
    }
    @GetMapping("/checkCarCode")
    public AjaxResult checkCarCode(OmProductionOrdeInfo omProductionOrdeInfo)
    {
jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/mapper/OmProductionOrdeInfoMapper.java
@@ -64,4 +64,6 @@
    public Integer getMaxStreamNumber();
    OmProductionOrdeInfo getLastOrder();
    List<OmProductionOrdeInfo> listLoopLine(OmProductionOrdeInfo omProductionOrdeInfo);
}
jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/service/IOmProductionOrdeInfoService.java
@@ -81,4 +81,6 @@
    void updateOrderByProductNum(String status,String productNum,String stationCode);
    OmProductionOrdeInfo getLastOrder();
    List<OmProductionOrdeInfo> listLoopLine(OmProductionOrdeInfo omProductionOrdeInfo);
}
jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/service/impl/OmProductionOrdeInfoServiceImpl.java
@@ -240,4 +240,9 @@
    public OmProductionOrdeInfo getLastOrder() {
        return omProductionOrdeInfoMapper.getLastOrder();
    }
    @Override
    public List<OmProductionOrdeInfo> listLoopLine(OmProductionOrdeInfo omProductionOrdeInfo) {
        return omProductionOrdeInfoMapper.listLoopLine(omProductionOrdeInfo);
    }
}
jcdm-main/src/main/java/com/jcdm/main/plcserver/sub/OPCUaSubscription.java
@@ -180,15 +180,17 @@
                                                    CompletableFuture<Void> cp1 = CompletableFuture.runAsync(() -> {
                                                        updateOrderStatus(snCode, "3",housingCode);//OP010工位更新工单状态为执行中,并更新主物料壳体条码
                                                        reportFactoryMes(snCode, device, format.format(new Date()));//工厂MES报工
                                                    });
                                                     });
                                                }
                                            }
                                        }
                                        if(Constants.OP230.equals(device)){
                                            WebSocketUsers.sendMessageToUserByText(map.get(device), "twoHundredAndThirtyEND");
                                            CompletableFuture<Void> cp1 = CompletableFuture.runAsync(() -> {
                                                updateOrderStatus(snCode, "5","");//OP230工位更新工单状态为已完成
                                                reportFactoryMes(snCode, "OP240", format.format(new Date()));//工厂MES报工   //暂时 OP240工位还没有好,在230报240的工
                                            });
                                            miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".SNCode").value("").build());
                                        }
                                        if(result == 21){
                                            result = savePassingStation(thoroughfare, device, snCode, orderNumber, stationStatus);//保存过站
jcdm-main/src/main/resources/mapper/om/productionOrde/OmProductionOrdeInfoMapper.xml
@@ -262,4 +262,12 @@
    <select id="getLastOrder" resultMap="OmProductionOrdeInfoResult">
        select top 1 * from om_production_orde_info order by id desc
    </select>
    <select id="listLoopLine" parameterType="OmProductionOrdeInfo" resultMap="OmProductionOrdeInfoResult">
        <include refid="selectOmProductionOrdeInfoVo"/>
        <where>
            <if test="productNum != null  and productNum != ''"> and product_num like concat('%', #{productNum}, '%')</if>
        </where>
        ORDER BY stream_number DESC
    </select>
</mapper>
jcdm-ui/src/api/main/om/productionOrde/productionOrde.js
@@ -10,6 +10,15 @@
}
// 查询生产工单列表
export function listProductionOrdeLoopLine(query) {
  return request({
    url: '/om/productionOrde/listLoopLine',
    method: 'get',
    params: query
  })
}
// 查询生产工单列表
export function bindYzSfcFlag(query) {
  return request({
    url: '/om/productionOrde/bindYzSfcFlag',
jcdm-ui/src/views/main/kb/stationTerminal/index.vue
@@ -125,7 +125,7 @@
                     <span>最高转速:</span><span>12000rpm</span><br>
                   </div>
                   <div style="margin-top: 4px">
                     <span>防护等级:</span><span>IP68</span><br>
                     <span>防护等级:</span><span>IP67</span><br>
                   </div>
                   <div style="margin-top: 4px">
                     <span>峰值工作电流:</span><span>230A</span><br>
@@ -153,15 +153,15 @@
                 </div>
                 <div style="margin-top: 4px">
                   <span style="font-size: 22px">993083</span><br>
                   <span style="font-size: 22px">993983</span><br>
                 </div>
                 <div style="margin-top: 4px">
                   <span style="font-size: 22px">9900166410</span><br>
                   <span style="font-size: 22px">9900200461</span><br>
                 </div>
                 <div style="margin-top: 4px">
                   <span style="font-size: 22px">2407190000002</span>
                   <span style="font-size: 22px">{{headContent.sfcCode}}</span>
                 </div>
               </div>
@@ -172,7 +172,7 @@
                 </div>
                 <div style="width: 70%;flex: 1;margin-top: 18px;margin-right: 29px">
                        <span style="margin-left: -80px;font-size: 20px;font-family: FangSong;letter-spacing: -0.8px">
                          P9900166410#T{{headContent.sfcCode}}
                          P9900200461#T{{headContent.sfcCode}}
                        </span><br>
                   <span style="margin-left: -80px;font-size: 20px;font-family: FangSong;letter-spacing: -0.8px">
                          #V993983#SSW002.005#HHW001.001#NMCU
@@ -187,7 +187,7 @@
                 </div>
                 <div style="width: 70%;flex: 1;margin-top: 18px;margin-right: 29px">
                        <span style="margin-left: -80px;font-size: 20px;font-family: FangSong;letter-spacing: -0.8px">
                          P9900166410#T{{headContent.sfcCode}}
                          P9900200461#T{{headContent.sfcCode}}
                        </span><br>
                   <span style="margin-left: -80px;font-size: 20px;font-family: FangSong;letter-spacing: -0.8px">
                          #V993983#SSW002.005#HHW001.001#NMCU
@@ -266,7 +266,7 @@
  bindYzSfcFlag,
  checkCarCode, checkYzSfcCode,
  findBytrolleyYardGetOne,
  listProductionOrde, mozuReceivingWorkOrders,
  listProductionOrde, listProductionOrdeLoopLine, mozuReceivingWorkOrders,
  receivingWorkOrders,
  trolleyYardBinDing
} from "@/api/main/om/productionOrde/productionOrde";
@@ -344,7 +344,7 @@
        release: 0 //允许放行
      },
      content: '',
      // url: "ws://10.103.210.248:8080/websocket/message/",
      // url: "ws://10.103.214.26:8080/websocket/message/",
      url: "ws://192.168.20.250:8080/websocket/message/",
      passingStationForm: {},
@@ -388,7 +388,7 @@
        ){
          if(this.materialCode.length>25){
            let code = this.materialCode.substring(13,26);
            this.headContent.sfcCode = code;
            // this.headContent.sfcCode = code;
            this.queryParams.productNum = code;
            this.getList();
            this.cakeLamp.scanFinish = 1
@@ -518,9 +518,19 @@
    },
    /** 查询工单列表 */
    async getList() {
      await listProductionOrde(this.queryParams).then(response => {
      await listProductionOrdeLoopLine(this.queryParams).then(response => {
        let rowsData = response.rows[0];
        if(rowsData){
          if(this.headContent.processesCode === 'OP170'
            ||this.headContent.processesCode === 'OP180'||
            this.headContent.processesCode === 'OP190'||
            this.headContent.processesCode === 'OP200'||
            this.headContent.processesCode === 'OP210'||
            this.headContent.processesCode === 'OP220'||
            this.headContent.processesCode === 'OP230'
          ){
            this.headContent.sfcCode = rowsData.productNum
          }
          this.workpieceInformation.workOrderNo = rowsData.workOrderNo;
          this.workpieceInformation.productCode = rowsData.productCode;
          this.workpieceInformation.materialCode = rowsData.materialCode;
@@ -642,6 +652,8 @@
          unfinishedProcess({processesCode: self.headContent.processesCode,recordDataDone: 21}).then(response => {});
        }else if (event.data === "IN") {
          self.cakeLamp.InPlace = 1;
        }else if(event.data === "twoHundredAndThirtyEND"){
          self.endClear()
        } else if (event.data === "OUT") {
          self.cakeLamp.release = 1;
        } else if (event.data === "END") {
@@ -680,7 +692,9 @@
        } else if(event.data.includes("productNum")){//产品序列号
          let productNum = event.data.split(',')[1];
          if(self.headContent.processesCode === 'OP165'){
            console.log("进去截取总成码方法165工站原始值是"+productNum+"截取之后的是"+productNum.substring(13,26))
            self.headContent.sfcCode = productNum.substring(13,26)
            console.log("self.headContent.sfcCode"+self.headContent.sfcCode)
          }else {
            self.headContent.sfcCode = productNum;
          }
@@ -702,7 +716,7 @@
          if(self.headContent.processesCode === "OP165"){
            // self.test1()
            // self.test2()
            self.text = 'P9900166410#T'+self.headContent.sfcCode+' #V993983#SSW002.005#HHW001.001#NMCU#'
            self.text = 'P9900200461#T'+self.headContent.sfcCode+' #V993983#SSW002.005#HHW001.001#NMCU#'
          }
        }else if (event.data.includes("[")) {//拧紧