| | |
| | | package com.jcdm.main.da.opcuaconfig.controller; |
| | | |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.stream.Collectors; |
| | | import javax.annotation.Resource; |
| | | import javax.servlet.http.HttpServletResponse; |
| | | |
| | | import cn.hutool.core.collection.CollUtil; |
| | | import com.jcdm.common.core.domain.R; |
| | | import com.jcdm.main.da.opcuaconfig.domain.DaOpcuaConfig; |
| | | import com.jcdm.main.da.opcuaconfig.domain.NodeEntity; |
| | | import com.jcdm.main.da.opcuaconfig.service.IDaOpcuaConfigService; |
| | | import com.jcdm.main.da.paramCollection.domain.DaParamCollection; |
| | | import com.jcdm.main.da.paramCollection.mapper.DaParamCollectionMapper; |
| | | import com.jcdm.main.da.paramCollection.service.IDaParamCollectionService; |
| | | import com.jcdm.main.da.passingStationCollection.domain.ProductNewPassStation; |
| | | import com.jcdm.main.da.passingStationCollection.mapper.ProductNewPassStationMapper; |
| | | import com.jcdm.main.da.passingStationCollection.service.ProductNewPassStationService; |
| | | import com.jcdm.main.da.tileMatchCollection.domain.DaTileMatchCollection; |
| | | import com.jcdm.main.da.tileMatchCollection.service.IDaTileMatchCollectionService; |
| | | import com.jcdm.main.da.tileMatchMiddleware.domain.DaTileMatchMiddleware; |
| | | import com.jcdm.main.da.tileMatchMiddleware.service.IDaTileMatchMiddlewareService; |
| | | import com.jcdm.main.da.tileMatchRules.domain.DaTileMatchRules; |
| | | import com.jcdm.main.da.tileMatchRules.service.IDaTileMatchRulesService; |
| | | import com.jcdm.main.plcserver.conf.OPCElement; |
| | | import com.jcdm.main.plcserver.sub.OPCUaSubscription; |
| | | import com.kangaroohy.milo.model.ReadWriteEntity; |
| | | import org.springframework.security.access.prepost.PreAuthorize; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.GetMapping; |
| | | import org.springframework.web.bind.annotation.PostMapping; |
| | | import org.springframework.web.bind.annotation.PutMapping; |
| | | import org.springframework.web.bind.annotation.DeleteMapping; |
| | | import org.springframework.web.bind.annotation.PathVariable; |
| | | import org.springframework.web.bind.annotation.RequestBody; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | import com.jcdm.common.annotation.Log; |
| | | import com.jcdm.common.core.controller.BaseController; |
| | | import com.jcdm.common.core.domain.AjaxResult; |
| | | import com.jcdm.common.core.page.TableDataInfo; |
| | | import com.jcdm.common.enums.BusinessType; |
| | | import com.jcdm.common.utils.poi.ExcelUtil; |
| | | import com.jcdm.main.da.opcuaconfig.domain.DaOpcuaConfig; |
| | | import com.jcdm.main.da.opcuaconfig.service.IDaOpcuaConfigService; |
| | | import com.jcdm.main.da.paramCollection.service.IDaParamCollectionService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.security.access.prepost.PreAuthorize; |
| | | import org.springframework.web.bind.annotation.*; |
| | | import com.jcdm.common.core.page.TableDataInfo; |
| | | |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import java.util.List; |
| | | import static com.jcdm.main.plcserver.sub.OPCUaSubscription.miloService; |
| | | |
| | | /** |
| | | * OPCUA参数设置Controller |
| | | * 交互信号配置Controller |
| | | * |
| | | * @author yyt |
| | | * @date 2023-12-22 |
| | | * @date 2024-01-23 |
| | | */ |
| | | @RestController |
| | | @RequestMapping("/da/opcuaconfig") |
| | |
| | | { |
| | | @Autowired |
| | | private IDaOpcuaConfigService daOpcuaConfigService; |
| | | |
| | | @Autowired |
| | | private IDaParamCollectionService daParamCollectionService; |
| | | @Autowired |
| | | private IDaTileMatchRulesService daTileMatchRulesService; |
| | | @Autowired |
| | | private IDaTileMatchMiddlewareService daTileMatchMiddlewareService; |
| | | @Resource |
| | | private IDaTileMatchCollectionService daTileMatchCollectionService; |
| | | |
| | | @Resource |
| | | private ProductNewPassStationService productNewPassStationService; |
| | | |
| | | @Resource |
| | | private ProductNewPassStationMapper productNewPassStationMapper; |
| | | |
| | | /** |
| | | * 查询OPCUA参数设置列表 |
| | | * 查询交互信号配置列表 |
| | | */ |
| | | @PreAuthorize("@ss.hasPermi('da:opcuaconfig:list')") |
| | | @GetMapping("/list") |
| | |
| | | return getDataTable(list); |
| | | } |
| | | |
| | | @PreAuthorize("@ss.hasPermi('da:opcuaconfig:getconfig')") |
| | | @GetMapping("/getconfig") |
| | | public List<DaOpcuaConfig> getconfig(DaOpcuaConfig daOpcuaConfig) |
| | | { |
| | | return daOpcuaConfigService.selectDaOpcuaConfigList(daOpcuaConfig); |
| | | } |
| | | |
| | | /** |
| | | * 导出OPCUA参数设置列表 |
| | | * 导出交互信号配置列表 |
| | | */ |
| | | @PreAuthorize("@ss.hasPermi('da:opcuaconfig:export')") |
| | | @Log(title = "OPCUA参数设置", businessType = BusinessType.EXPORT) |
| | | @Log(title = "交互信号配置", businessType = BusinessType.EXPORT) |
| | | @PostMapping("/export") |
| | | public void export(HttpServletResponse response, DaOpcuaConfig daOpcuaConfig) |
| | | { |
| | | List<DaOpcuaConfig> list = daOpcuaConfigService.selectDaOpcuaConfigList(daOpcuaConfig); |
| | | ExcelUtil<DaOpcuaConfig> util = new ExcelUtil<DaOpcuaConfig>(DaOpcuaConfig.class); |
| | | util.exportExcel(response, list, "OPCUA参数设置数据"); |
| | | util.exportExcel(response, list, "交互信号配置数据"); |
| | | } |
| | | |
| | | /** |
| | | * 获取OPCUA参数设置详细信息 |
| | | * 获取交互信号配置详细信息 |
| | | */ |
| | | @PreAuthorize("@ss.hasPermi('da:opcuaconfig:query')") |
| | | @GetMapping(value = "/{id}") |
| | |
| | | } |
| | | |
| | | /** |
| | | * 新增OPCUA参数设置 |
| | | * 新增交互信号配置 |
| | | */ |
| | | @PreAuthorize("@ss.hasPermi('da:opcuaconfig:add')") |
| | | @Log(title = "OPCUA参数设置", businessType = BusinessType.INSERT) |
| | | @Log(title = "交互信号配置", businessType = BusinessType.INSERT) |
| | | @PostMapping |
| | | public AjaxResult add(@RequestBody DaOpcuaConfig daOpcuaConfig) |
| | | { |
| | |
| | | } |
| | | |
| | | /** |
| | | * 修改OPCUA参数设置 |
| | | * 修改交互信号配置 |
| | | */ |
| | | @PreAuthorize("@ss.hasPermi('da:opcuaconfig:edit')") |
| | | @Log(title = "OPCUA参数设置", businessType = BusinessType.UPDATE) |
| | | @Log(title = "交互信号配置", businessType = BusinessType.UPDATE) |
| | | @PutMapping |
| | | public AjaxResult edit(@RequestBody DaOpcuaConfig daOpcuaConfig) |
| | | { |
| | |
| | | } |
| | | |
| | | /** |
| | | * 删除OPCUA参数设置 |
| | | * 删除交互信号配置 |
| | | */ |
| | | @PreAuthorize("@ss.hasPermi('da:opcuaconfig:remove')") |
| | | @Log(title = "OPCUA参数设置", businessType = BusinessType.DELETE) |
| | | @Log(title = "交互信号配置", businessType = BusinessType.DELETE) |
| | | @DeleteMapping("/{ids}") |
| | | public AjaxResult remove(@PathVariable Long[] ids) |
| | | { |
| | | return toAjax(daOpcuaConfigService.deleteDaOpcuaConfigByIds(ids)); |
| | | } |
| | | |
| | | /** |
| | | * 获取交互信号配置详细信息 |
| | | */ |
| | | @PreAuthorize("@ss.hasPermi('da:opcuaconfig:query')") |
| | | @GetMapping(value = "/SNCode/{SNCode}/{locationCode}") |
| | | public AjaxResult setSNCode(@PathVariable("SNCode") String SNCode,@PathVariable("locationCode") String locationCode) { |
| | | ReadWriteEntity entity = new ReadWriteEntity("CFL4HX."+locationCode+".SNCode", SNCode); |
| | | Boolean out= true; |
| | | try { |
| | | miloService.writeToOpcUa(entity);//写SN |
| | | } catch (Exception e) { |
| | | throw new RuntimeException(e); |
| | | } |
| | | return toAjax(out); |
| | | } |
| | | |
| | | /** |
| | | * 配瓦扫码 |
| | | */ |
| | | @PreAuthorize("@ss.hasPermi('da:opcuaconfig:query')") |
| | | @GetMapping(value = "/barcode1") |
| | | public R setBarcode1(String barcode, String locationCode) { |
| | | ProductNewPassStation resultPassStation = new ProductNewPassStation(); |
| | | try { |
| | | Object SNCodeObject = miloService.readFromOpcUa("CFL4HX." + locationCode + ".Code").getValue(); |
| | | if (null == SNCodeObject) { |
| | | SNCodeObject = miloService.readFromOpcUa("CFL4HX." + locationCode + ".Code1").getValue(); |
| | | } |
| | | if (null != SNCodeObject) { |
| | | String SNCode = SNCodeObject.toString(); |
| | | //插入数据 |
| | | DaParamCollection saveData = new DaParamCollection(); |
| | | saveData.setSfcCode(SNCode); |
| | | saveData.setParamValue(barcode); |
| | | saveData.setLocationCode(locationCode); |
| | | saveData.setParamCode("CZM"); |
| | | saveData.setParamName("曲轴"); |
| | | daParamCollectionService.insertDaParamCollection(saveData); |
| | | |
| | | DaTileMatchCollection MatchCollection = new DaTileMatchCollection(); |
| | | MatchCollection.setSfcCode(SNCode); |
| | | MatchCollection.setParamValue(barcode); |
| | | MatchCollection.setLocationCode(locationCode); |
| | | MatchCollection.setParamCode("CZM"); |
| | | MatchCollection.setParamName("曲轴"); |
| | | daTileMatchCollectionService.insertDaTileMatchCollection(MatchCollection); |
| | | |
| | | // DaTileMatchRules TileMatchRules = new DaTileMatchRules(); |
| | | // TileMatchRules.setProductSeries("380Y"); |
| | | // TileMatchRules.setScanObject1("连杆"); |
| | | // TileMatchRules.setScanObject2("曲轴"); |
| | | // daTileMatchRulesService.selectDaTileMatchRulesList(TileMatchRules); |
| | | |
| | | for (int i = 1; i <= 3; i++) { |
| | | DaTileMatchMiddleware TileMatchMiddleware = new DaTileMatchMiddleware(); |
| | | TileMatchMiddleware.setSfcCode(SNCode); |
| | | TileMatchMiddleware.setCrankshaftNo(barcode); |
| | | TileMatchMiddleware.setCylinder(i); |
| | | TileMatchMiddleware.setState(1); |
| | | TileMatchMiddleware.setCreateTime(new Date()); |
| | | TileMatchMiddleware.setUpdateTime(new Date()); |
| | | daTileMatchMiddlewareService.insertDaTileMatchMiddleware(TileMatchMiddleware); |
| | | } |
| | | |
| | | |
| | | ProductNewPassStation productNewPassStation = new ProductNewPassStation(); |
| | | productNewPassStation.setFinishFlag(OPCElement.UN_FINISH); |
| | | productNewPassStation.setSfcCode(SNCode); |
| | | List<ProductNewPassStation> productPassStationList = productNewPassStationService.getProductPassStationList(productNewPassStation); |
| | | if (CollUtil.isNotEmpty(productPassStationList)){ |
| | | resultPassStation = productPassStationList.get(0); |
| | | String rodCode = barcode; |
| | | productNewPassStationMapper.updatePassStationRodCode(resultPassStation.getSfcCode(),rodCode); |
| | | |
| | | } |
| | | |
| | | ReadWriteEntity entity6 = new ReadWriteEntity("CFL4HX.OP030.CodeComplete", 1); |
| | | miloService.writeToOpcByte(entity6); |
| | | } |
| | | } catch (Exception e) { |
| | | throw new RuntimeException(e); |
| | | } |
| | | return R.ok(resultPassStation); |
| | | } |
| | | } |