| | |
| | | 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 com.jcdm.common.utils.poi.ExcelUtil; |
| | | import com.jcdm.common.core.page.TableDataInfo; |
| | | |
| | | import static com.jcdm.main.plcserver.sub.OPCUaSubscription.miloService; |
| | | |
| | | /** |
| | | * 条码采集Controller |
| | | * |
| | |
| | | { |
| | | @Autowired |
| | | private IDaTileMatchCollectionService daTileMatchCollectionService; |
| | | |
| | | @Autowired |
| | | private IDaTileMatchRulesService daTileMatchRulesService; |
| | | |
| | | @Autowired |
| | | private IDaParamCollectionService daParamCollectionService; |
| | | |
| | | @Resource |
| | | private ProductNewPassStationMapper productNewPassStationMapper; |
| | | |
| | | @Resource |
| | | private ProductNewPassStationService productNewPassStationService; |
| | | |
| | | /** |
| | | * 查询条码采集列表 |
| | |
| | | { |
| | | 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 = ""; |
| | | 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); |
| | | } |
| | | } |
| | | } else if ("372".equals(productType)){ |
| | | for (int i = 1; i < 3; i++) { |
| | | int finalI = i; |
| | | int finalAxis = i+4; |
| | | List<DaTileMatchRules> collect = allMatchRuleList.stream().filter(x -> x.getAxisParameterNoPosition().equals(finalAxis + 1) && |
| | | x.getNeckParameterPosition().equals(finalI + 1) && |
| | | x.getAxisValue().equals(String.valueOf(boxCodeCharArray[finalAxis])) && |
| | | 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); |
| | | } |
| | | } |
| | | return R.ok(resultList); |
| | | } |
| | | |
| | | @GetMapping("/getDetailData") |
| | | public R getDetailData() throws Exception { |
| | | ReceiveDataVO detailData = productNewPassStationService.getDetailData(); |
| | | return R.ok(detailData); |
| | | } |
| | | } |