package com.jcdm.main.da.tileMatchCollection.controller;
|
|
import java.util.ArrayList;
|
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.collection.ListUtil;
|
import cn.hutool.core.util.StrUtil;
|
import com.jcdm.common.core.domain.R;
|
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.ReceiveDataVO;
|
import com.jcdm.main.da.tileMatchRules.domain.DaTileMatchRules;
|
import com.jcdm.main.da.tileMatchRules.service.IDaTileMatchRulesService;
|
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.enums.BusinessType;
|
import com.jcdm.main.da.tileMatchCollection.domain.DaTileMatchCollection;
|
import com.jcdm.main.da.tileMatchCollection.service.IDaTileMatchCollectionService;
|
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-06-06
|
*/
|
@RestController
|
@RequestMapping("/da/tileMatchCollection")
|
public class DaTileMatchCollectionController extends BaseController
|
{
|
@Autowired
|
private IDaTileMatchCollectionService daTileMatchCollectionService;
|
|
@Autowired
|
private IDaTileMatchRulesService daTileMatchRulesService;
|
|
@Autowired
|
private IDaParamCollectionService daParamCollectionService;
|
|
@Resource
|
private ProductNewPassStationMapper productNewPassStationMapper;
|
|
@Resource
|
private ProductNewPassStationService productNewPassStationService;
|
|
/**
|
* 查询条码采集列表
|
*/
|
@PreAuthorize("@ss.hasPermi('da:tileMatchCollection:list')")
|
@GetMapping("/list")
|
public TableDataInfo list(DaTileMatchCollection daTileMatchCollection)
|
{
|
startPage();
|
List<DaTileMatchCollection> list = daTileMatchCollectionService.selectDaTileMatchCollectionList(daTileMatchCollection);
|
return getDataTable(list);
|
}
|
|
/**
|
* 导出条码采集列表
|
*/
|
@PreAuthorize("@ss.hasPermi('da:tileMatchCollection:export')")
|
@Log(title = "条码采集", businessType = BusinessType.EXPORT)
|
@PostMapping("/export")
|
public void export(HttpServletResponse response, DaTileMatchCollection daTileMatchCollection)
|
{
|
List<DaTileMatchCollection> list = daTileMatchCollectionService.selectDaTileMatchCollectionList(daTileMatchCollection);
|
ExcelUtil<DaTileMatchCollection> util = new ExcelUtil<DaTileMatchCollection>(DaTileMatchCollection.class);
|
util.exportExcel(response, list, "条码采集数据");
|
}
|
|
/**
|
* 获取条码采集详细信息
|
*/
|
@PreAuthorize("@ss.hasPermi('da:tileMatchCollection:query')")
|
@GetMapping(value = "/{id}")
|
public AjaxResult getInfo(@PathVariable("id") Long id)
|
{
|
return success(daTileMatchCollectionService.selectDaTileMatchCollectionById(id));
|
}
|
|
/**
|
* 新增条码采集
|
*/
|
@PreAuthorize("@ss.hasPermi('da:tileMatchCollection:add')")
|
@Log(title = "条码采集", businessType = BusinessType.INSERT)
|
@PostMapping
|
public AjaxResult add(@RequestBody DaTileMatchCollection daTileMatchCollection)
|
{
|
return toAjax(daTileMatchCollectionService.insertDaTileMatchCollection(daTileMatchCollection));
|
}
|
|
/**
|
* 修改条码采集
|
*/
|
@PreAuthorize("@ss.hasPermi('da:tileMatchCollection:edit')")
|
@Log(title = "条码采集", businessType = BusinessType.UPDATE)
|
@PutMapping
|
public AjaxResult edit(@RequestBody DaTileMatchCollection daTileMatchCollection)
|
{
|
return toAjax(daTileMatchCollectionService.updateDaTileMatchCollection(daTileMatchCollection));
|
}
|
|
/**
|
* 删除条码采集
|
*/
|
@PreAuthorize("@ss.hasPermi('da:tileMatchCollection:remove')")
|
@Log(title = "条码采集", businessType = BusinessType.DELETE)
|
@DeleteMapping("/{ids}")
|
public AjaxResult remove(@PathVariable Long[] ids)
|
{
|
return toAjax(daTileMatchCollectionService.deleteDaTileMatchCollectionByIds(ids));
|
}
|
|
@GetMapping("/getBalanceData")
|
public R getBalanceData(String boxCode, String balanceCode, String productType) throws Exception {
|
List<DaTileMatchRules> resultList = new ArrayList<>();
|
if (StrUtil.isBlank(boxCode)){
|
return R.fail("箱体码不能为空");
|
}
|
if (StrUtil.isBlank(balanceCode)){
|
return R.fail("平衡轴码不能为空");
|
}
|
if (StrUtil.isBlank(productType)){
|
return R.fail("产品类型不能为空");
|
}
|
String balanceSplit = "";
|
String boxCodeSplit = "";
|
if ("380".equals(productType)){
|
// ArrayList<String> xtList = ListUtil.toList(boxCode.split(";"));
|
ArrayList<String> xtList = ListUtil.toList(boxCode.split(","));
|
ArrayList<String> czList = ListUtil.toList(balanceCode.split(";"));
|
if (CollUtil.isNotEmpty(xtList) && xtList.size()>1 &&
|
CollUtil.isNotEmpty(czList) && czList.size()>3){
|
boxCodeSplit = xtList.get(1);
|
balanceSplit = czList.get(2);
|
}
|
DaTileMatchRules daTileMatchRules = new DaTileMatchRules();
|
daTileMatchRules.setScanObject1("箱体");
|
daTileMatchRules.setScanObject2("平衡轴");
|
daTileMatchRules.setProductSeries(productType);
|
List<DaTileMatchRules> allMatchRuleList = daTileMatchRulesService.selectDaTileMatchRulesList(daTileMatchRules);
|
if (CollUtil.isNotEmpty(allMatchRuleList)){
|
char[] boxCodeCharArray = boxCodeSplit.toCharArray();
|
char[] balanceCodeCharArray = balanceSplit.toCharArray();
|
if (boxCodeCharArray.length>6 && balanceCodeCharArray.length>2){
|
if ("380".equals(productType)){
|
for (int i = 1; i < 3; i++) {
|
int finalI = i;
|
List<DaTileMatchRules> collect = allMatchRuleList.stream().filter(x -> x.getAxisParameterNoPosition().equals(finalI + 5) &&
|
x.getNeckParameterPosition().equals(finalI + 1) &&
|
x.getAxisValue().equals(String.valueOf(boxCodeCharArray[finalI + 4])) &&
|
x.getNeckValue().equals(String.valueOf(balanceCodeCharArray[finalI])))
|
.collect(Collectors.toList());
|
if (CollUtil.isNotEmpty(collect)){
|
DaTileMatchRules rules = collect.get(0);
|
resultList.add(rules);
|
}
|
}
|
}
|
}
|
}
|
if (CollUtil.isEmpty(resultList)){
|
return R.fail("未匹配到平衡轴瓦");
|
} else {
|
ReadWriteEntity entity6 = new ReadWriteEntity("CFL4HX.OP040.CodeComplete", 1);
|
miloService.writeToOpcByte(entity6);
|
ProductNewPassStation passStation = new ProductNewPassStation();
|
passStation.setProductType(productType);
|
passStation.setBoxCode(boxCode);
|
List<ProductNewPassStation> productPassStationList = productNewPassStationService.getProductPassStationList(passStation);
|
if (CollUtil.isNotEmpty(productPassStationList)){
|
ProductNewPassStation newPassStation = productPassStationList.get(0);
|
productNewPassStationMapper.updatePassStationBalanceCode(newPassStation.getSfcCode(),balanceCode);
|
}
|
}
|
} else if ("196".equals(productType)) {
|
// ReadWriteEntity entity6 = new ReadWriteEntity("CFL4HX.OP040.CodeComplete", 1);
|
// miloService.writeToOpcByte(entity6);
|
}
|
|
return R.ok(resultList);
|
}
|
|
@GetMapping("/getDetailData")
|
public R getDetailData() throws Exception {
|
ReceiveDataVO detailData = productNewPassStationService.getDetailData();
|
return R.ok(detailData);
|
}
|
}
|