package com.jcdm.main.da.tileMatchMiddleware.controller;
|
|
import java.util.Comparator;
|
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 cn.hutool.core.util.StrUtil;
|
import com.jcdm.common.core.domain.R;
|
import com.jcdm.main.da.paramCollection.domain.DaParamCollection;
|
import com.jcdm.main.da.passingStationCollection.domain.ProductNewPassStation;
|
import com.jcdm.main.da.passingStationCollection.service.ProductNewPassStationService;
|
import com.jcdm.main.da.tileMatchRules.domain.DaTileMatchRules;
|
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.enums.BusinessType;
|
import com.jcdm.main.da.tileMatchMiddleware.domain.DaTileMatchMiddleware;
|
import com.jcdm.main.da.tileMatchMiddleware.service.IDaTileMatchMiddlewareService;
|
import com.jcdm.common.utils.poi.ExcelUtil;
|
import com.jcdm.common.core.page.TableDataInfo;
|
|
import static com.jcdm.main.plcserver.sub.OPCUaSubscription.miloService;
|
|
/**
|
* 活塞连杆配瓦中间Controller
|
*
|
* @author yyt
|
* @date 2024-05-28
|
*/
|
@RestController
|
@RequestMapping("/da/tileMatchMiddleware")
|
public class DaTileMatchMiddlewareController extends BaseController
|
{
|
@Autowired
|
private IDaTileMatchMiddlewareService daTileMatchMiddlewareService;
|
|
@Resource
|
private ProductNewPassStationService productNewPassStationService;
|
|
/**
|
* 查询活塞连杆配瓦中间列表
|
*/
|
@PreAuthorize("@ss.hasPermi('da:tileMatchMiddleware:list')")
|
@GetMapping("/list")
|
public TableDataInfo list(DaTileMatchMiddleware daTileMatchMiddleware)
|
{
|
startPage();
|
List<DaTileMatchMiddleware> list = daTileMatchMiddlewareService.selectDaTileMatchMiddlewareList(daTileMatchMiddleware);
|
return getDataTable(list);
|
}
|
|
/**
|
* 导出活塞连杆配瓦中间列表
|
*/
|
@PreAuthorize("@ss.hasPermi('da:tileMatchMiddleware:export')")
|
@Log(title = "活塞连杆配瓦中间", businessType = BusinessType.EXPORT)
|
@PostMapping("/export")
|
public void export(HttpServletResponse response, DaTileMatchMiddleware daTileMatchMiddleware)
|
{
|
List<DaTileMatchMiddleware> list = daTileMatchMiddlewareService.selectDaTileMatchMiddlewareList(daTileMatchMiddleware);
|
ExcelUtil<DaTileMatchMiddleware> util = new ExcelUtil<DaTileMatchMiddleware>(DaTileMatchMiddleware.class);
|
util.exportExcel(response, list, "活塞连杆配瓦中间数据");
|
}
|
|
/**
|
* 获取活塞连杆配瓦中间详细信息
|
*/
|
@PreAuthorize("@ss.hasPermi('da:tileMatchMiddleware:query')")
|
@GetMapping(value = "/{id}")
|
public AjaxResult getInfo(@PathVariable("id") Long id)
|
{
|
return success(daTileMatchMiddlewareService.selectDaTileMatchMiddlewareById(id));
|
}
|
|
/**
|
* 新增活塞连杆配瓦中间
|
*/
|
@PreAuthorize("@ss.hasPermi('da:tileMatchMiddleware:add')")
|
@Log(title = "活塞连杆配瓦中间", businessType = BusinessType.INSERT)
|
@PostMapping
|
public AjaxResult add(@RequestBody DaTileMatchMiddleware daTileMatchMiddleware)
|
{
|
return toAjax(daTileMatchMiddlewareService.insertDaTileMatchMiddleware(daTileMatchMiddleware));
|
}
|
|
/**
|
* 修改活塞连杆配瓦中间
|
*/
|
@PreAuthorize("@ss.hasPermi('da:tileMatchMiddleware:edit')")
|
@Log(title = "活塞连杆配瓦中间", businessType = BusinessType.UPDATE)
|
@PutMapping
|
public AjaxResult edit(@RequestBody DaTileMatchMiddleware daTileMatchMiddleware)
|
{
|
return toAjax(daTileMatchMiddlewareService.updateDaTileMatchMiddleware(daTileMatchMiddleware));
|
}
|
|
/**
|
* 删除活塞连杆配瓦中间
|
*/
|
@PreAuthorize("@ss.hasPermi('da:tileMatchMiddleware:remove')")
|
@Log(title = "活塞连杆配瓦中间", businessType = BusinessType.DELETE)
|
@DeleteMapping("/{ids}")
|
public AjaxResult remove(@PathVariable Long[] ids)
|
{
|
return toAjax(daTileMatchMiddlewareService.deleteDaTileMatchMiddlewareByIds(ids));
|
}
|
|
@PreAuthorize("@ss.hasPermi('da:tileMatchMiddleware:query')")
|
@GetMapping(value = "/barcodeup")
|
public DaTileMatchMiddleware setBarcodeup(String barcode,String locationCode) {
|
DaTileMatchMiddleware rMiddleware=null;
|
try {
|
//Object SNCodeObject = miloService.readFromOpcUa("CFL4HX."+locationCode+".Code1").getValue();
|
Object SNCodeObject = miloService.readFromOpcUa("CFL4HX.OP050.Code1").getValue();
|
if (null == SNCodeObject){
|
//SNCodeObject = miloService.readFromOpcUa("CFL4HX."+locationCode+ ".Code").getValue();
|
SNCodeObject = miloService.readFromOpcUa("CFL4HX.OP050.Code").getValue();
|
}
|
if (null != SNCodeObject){
|
String SNCode = SNCodeObject.toString();
|
|
DaTileMatchMiddleware TileMatchMiddleware=new DaTileMatchMiddleware();
|
TileMatchMiddleware.setSfcCode(SNCode);
|
TileMatchMiddleware.setPalletNo(barcode);
|
TileMatchMiddleware.setState(2);
|
List<DaTileMatchMiddleware> TileMatchMiddlewareList=daTileMatchMiddlewareService.selectDaTileMatchMiddlewareList(TileMatchMiddleware);
|
if(TileMatchMiddlewareList.size()>0){
|
for(int i=0;i<TileMatchMiddlewareList.size();i++){
|
DaTileMatchMiddleware Middleware=TileMatchMiddlewareList.get(i);
|
Middleware.setState(3);
|
daTileMatchMiddlewareService.updateDaTileMatchMiddleware(Middleware);
|
}
|
rMiddleware=TileMatchMiddlewareList.get(0);
|
}
|
}
|
|
} catch (Exception e) {
|
throw new RuntimeException(e);
|
}
|
return rMiddleware;
|
}
|
|
@PreAuthorize("@ss.hasPermi('da:tileMatchMiddleware:query')")
|
@GetMapping(value = "/barcode")
|
public DaTileMatchMiddleware setBarcode(String barcode,String locationCode) throws Exception {
|
DaTileMatchMiddleware rMiddleware=new DaTileMatchMiddleware();;
|
rMiddleware.setState(1);
|
List<DaTileMatchMiddleware> TileMatchMiddlewareList=daTileMatchMiddlewareService.selectDaTileMatchMiddlewareList(rMiddleware);
|
String SNCode="";
|
if(CollUtil.isNotEmpty(TileMatchMiddlewareList)){
|
TileMatchMiddlewareList = TileMatchMiddlewareList.stream().sorted(Comparator.comparing(DaTileMatchMiddleware::getCreateTime)).collect(Collectors.toList());
|
rMiddleware=TileMatchMiddlewareList.get(0);
|
rMiddleware.setPalletNo(locationCode);
|
rMiddleware.setConnectingrodNo(barcode);
|
rMiddleware.setState(2);
|
SNCode=rMiddleware.getSfcCode();
|
daTileMatchMiddlewareService.updateDaTileMatchMiddleware(rMiddleware);
|
DaTileMatchMiddleware patch = new DaTileMatchMiddleware();
|
patch.setSfcCode(SNCode);
|
patch.setState(1);
|
List<DaTileMatchMiddleware> checkList = daTileMatchMiddlewareService.selectDaTileMatchMiddlewareList(patch);
|
if (CollUtil.isNotEmpty(checkList)){
|
if (checkList.size() == 2){
|
rMiddleware.setCheckFlag("1");
|
}
|
}
|
//获取产品型号
|
ProductNewPassStation productNewPassStation = new ProductNewPassStation();
|
productNewPassStation.setSfcCode(SNCode);
|
List<ProductNewPassStation> productPassStationList = productNewPassStationService.getProductPassStationList(productNewPassStation);
|
if (CollUtil.isNotEmpty(productPassStationList)){
|
ProductNewPassStation station = productPassStationList.get(0);
|
String productType = station.getProductType();
|
rMiddleware.setProductType(productType);
|
}
|
}
|
// ReadWriteEntity entity = new ReadWriteEntity("CFL3ZZ.CR010.Code", SNCode);
|
// InitCallback.miloService.writeToOpcUa(entity);//写SN
|
// ReadWriteEntity entity2 = new ReadWriteEntity("CFL3ZZ.CR010.CodeRequestFeed", 1);
|
// InitCallback.miloService.writeToOpcByte(entity2);//写完成
|
return rMiddleware;
|
}
|
|
|
@GetMapping("/getSfcCodeByConnectCode")
|
public R getSfcCodeByConnectCode(String connectCode){
|
DaTileMatchMiddleware tileMatchMiddleware = new DaTileMatchMiddleware();
|
if (StrUtil.isBlank(connectCode)){
|
return R.fail("连杆码不能为空");
|
}
|
DaTileMatchMiddleware daTileMatchMiddleware = new DaTileMatchMiddleware();
|
daTileMatchMiddleware.setConnectingrodNo(connectCode);
|
List<DaTileMatchMiddleware> daTileMatchMiddlewares = daTileMatchMiddlewareService.selectDaTileMatchMiddlewareList(daTileMatchMiddleware);
|
if (CollUtil.isNotEmpty(daTileMatchMiddlewares)){
|
tileMatchMiddleware = daTileMatchMiddlewares.get(0);
|
}
|
return R.ok(tileMatchMiddleware);
|
}
|
}
|