| | |
| | | package com.jcdm.main.bs.formulaChild.controller; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | import java.util.stream.Collectors; |
| | | import javax.servlet.http.HttpServletResponse; |
| | | |
| | | import cn.hutool.core.collection.CollUtil; |
| | | import cn.hutool.core.util.ObjectUtil; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; |
| | | import com.jcdm.main.bs.formulaChildInfoTemp.domain.BsFormulaChildInfoTemp; |
| | | import com.jcdm.main.bs.formulaChildInfoTemp.service.IBsFormulaChildInfoTempService; |
| | | 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; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.GetMapping; |
| | |
| | | @Autowired |
| | | private IBsFormulaChildInfoService bsFormulaChildInfoService; |
| | | |
| | | @Autowired |
| | | private IOmProductionOrdeInfoService omProductionOrdeInfoService; |
| | | |
| | | @Autowired |
| | | private MiloService miloService; |
| | | |
| | | @Autowired |
| | | private IBsFormulaChildInfoTempService bsFormulaChildInfoTempService; |
| | | |
| | | /** |
| | | * 扫码确认 |
| | | */ |
| | | @GetMapping("/inPlaceInspection") |
| | | public AjaxResult inPlaceInspection(BsFormulaChildInfo bsFormulaChildInfo) |
| | | { |
| | | Integer recordDataDone = 0; |
| | | try { |
| | | Object orderNumberObject = miloService.readFromOpcUa("PACK."+bsFormulaChildInfo.getProcessesCode()+".RecordDataDone").getValue(); |
| | | if(ObjectUtil.isNotEmpty(orderNumberObject)){ |
| | | if(Integer.valueOf(orderNumberObject.toString()) == 11){ |
| | | recordDataDone = 1; |
| | | } |
| | | } |
| | | |
| | | } catch (Exception e) { |
| | | throw new RuntimeException(e); |
| | | } |
| | | return AjaxResult.success(recordDataDone); |
| | | } |
| | | |
| | | /** |
| | | * 扫码确认 |
| | | */ |
| | | @GetMapping("/unfinishedProcess") |
| | | public AjaxResult unfinishedProcess(BsFormulaChildInfo bsFormulaChildInfo) |
| | | { |
| | | try { |
| | | String str = "PACK."+bsFormulaChildInfo.getProcessesCode()+".RecordDataDone"; |
| | | miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(str).value(bsFormulaChildInfo.getRecordDataDone()).build()); |
| | | } catch (Exception e) { |
| | | throw new RuntimeException(e); |
| | | } |
| | | return AjaxResult.success(); |
| | | } |
| | | |
| | | @GetMapping("/manualNgOffline") |
| | | public AjaxResult manualNgOffline(BsFormulaChildInfo bsFormulaChildInfo) |
| | | { |
| | | Integer stepNumber = 31; |
| | | try { |
| | | logger.info("手动下线,写入ArtificialNgSignal为:{}",stepNumber); |
| | | String str = "PACK."+bsFormulaChildInfo.getLocationCode()+".ArtificialNgSignal"; |
| | | miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(str).value(stepNumber).build()); |
| | | } catch (Exception e) { |
| | | throw new RuntimeException(e); |
| | | } |
| | | OmProductionOrdeInfo one = omProductionOrdeInfoService.getOne(new LambdaQueryWrapper<OmProductionOrdeInfo>() |
| | | .eq(OmProductionOrdeInfo::getProductNum, bsFormulaChildInfo.getSfcBarcode()) |
| | | ); |
| | | one.setArtificialNgFlag("1"); |
| | | omProductionOrdeInfoService.saveOrUpdate(one); |
| | | return AjaxResult.success(stepNumber); |
| | | } |
| | | |
| | | /** |
| | | * 扫码确认 |
| | | */ |
| | | @GetMapping("/fistSetpNumber") |
| | | public AjaxResult fistSetpNumber(BsFormulaChildInfo bsFormulaChildInfo) |
| | | { |
| | | Integer stepNumber = 1; |
| | | try { |
| | | List<BsFormulaChildInfo> op260 = bsFormulaChildInfoService.list(new LambdaQueryWrapper<BsFormulaChildInfo>().eq(BsFormulaChildInfo::getProcessesCode, bsFormulaChildInfo.getProcessesCode())); |
| | | List<BsFormulaChildInfo> filteredList = op260.stream() |
| | | .filter(obj -> obj.getResults() != null && !obj.getResults().isEmpty()) |
| | | .collect(Collectors.toList()); |
| | | if(filteredList.size() > 0){ |
| | | if("1".equals(bsFormulaChildInfo.getArtificialNgFlag())){ |
| | | stepNumber = Integer.valueOf(filteredList.get(filteredList.size()-1).getStepSort()); |
| | | }else { |
| | | stepNumber = Integer.valueOf(filteredList.get(filteredList.size()-1).getStepSort())+1; |
| | | } |
| | | } |
| | | |
| | | String str = "PACK."+bsFormulaChildInfo.getProcessesCode()+".MStepNumber"; |
| | | miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(str).value(stepNumber).build()); |
| | | } catch (Exception e) { |
| | | throw new RuntimeException(e); |
| | | } |
| | | return AjaxResult.success(stepNumber); |
| | | } |
| | | |
| | | /** |
| | | * 查询配方配置子信息列表 |
| | | */ |
| | | @GetMapping("/noPageListFormulaChild") |
| | | public TableDataInfo noPageListFormulaChild(BsFormulaChildInfo bsFormulaChildInfo) |
| | | { |
| | | if("1".equals(bsFormulaChildInfo.getArtificialNgFlag())){ |
| | | List<BsFormulaChildInfoTemp> tempList = bsFormulaChildInfoTempService.list(new LambdaQueryWrapper<BsFormulaChildInfoTemp>() |
| | | .eq(BsFormulaChildInfoTemp::getProcessesCode, bsFormulaChildInfo.getProcessesCode()) |
| | | .eq(BsFormulaChildInfoTemp::getProductCode, bsFormulaChildInfo.getProductCode()) |
| | | .eq(BsFormulaChildInfoTemp::getSfcCode, bsFormulaChildInfo.getSfcBarcode())); |
| | | |
| | | List<Long> ids = new ArrayList<>(); |
| | | for (int i = 0; i < tempList.size(); i++) { |
| | | BsFormulaChildInfoTemp childInfoTemp = tempList.get(i); |
| | | LambdaUpdateWrapper <BsFormulaChildInfo> updateWrapper = new LambdaUpdateWrapper<>(); |
| | | updateWrapper.set( BsFormulaChildInfo::getResults, childInfoTemp.getResults()); |
| | | updateWrapper.set( BsFormulaChildInfo::getCollectData, childInfoTemp.getCollectData()); |
| | | updateWrapper.eq( BsFormulaChildInfo::getId, childInfoTemp.getChildId()); |
| | | bsFormulaChildInfoService.update(new BsFormulaChildInfo(),updateWrapper); |
| | | |
| | | if(i == tempList.size()-1){ |
| | | LambdaUpdateWrapper<OmProductionOrdeInfo> orderInfoUpdateWrapper = new LambdaUpdateWrapper<>(); |
| | | orderInfoUpdateWrapper.set(OmProductionOrdeInfo::getArtificialNgFlag, ""); |
| | | orderInfoUpdateWrapper.eq(OmProductionOrdeInfo::getProductNum, childInfoTemp.getSfcCode()); |
| | | boolean update = omProductionOrdeInfoService.update(new OmProductionOrdeInfo(), orderInfoUpdateWrapper); |
| | | } |
| | | |
| | | ids.add(childInfoTemp.getId()); |
| | | } |
| | | bsFormulaChildInfoTempService.removeByIds(ids); |
| | | } |
| | | |
| | | List<BsFormulaChildInfo> list = bsFormulaChildInfoService.list(new LambdaQueryWrapper<BsFormulaChildInfo>() |
| | | .eq(BsFormulaChildInfo::getProductCode,bsFormulaChildInfo.getProductCode()) |
| | | .eq(BsFormulaChildInfo::getProcessesCode,bsFormulaChildInfo.getProcessesCode()) |
| | | ); |
| | | if (CollUtil.isNotEmpty(list)){ |
| | | List<BsFormulaChildInfo> collect1 = list.stream().filter(x -> Constants.OK.equals(x.getResults())).collect(Collectors.toList()); |
| | | List<BsFormulaChildInfo> collect2 = list.stream().filter(x -> !Constants.OK.equals(x.getResults())).collect(Collectors.toList()); |
| | | list = collect1; |
| | | list.addAll(collect2); |
| | | } |
| | | |
| | | for (BsFormulaChildInfo formulaChildInfo : list) { |
| | | if(formulaChildInfo.getCollectData()!=null&& !"".equals(formulaChildInfo.getCollectData())){ |
| | | if(formulaChildInfo.getCollectData().contains("[")){ |
| | | String data = formulaChildInfo.getCollectData(); |
| | | data = data.replace("[", "").replace("]", "").replace(" ", ""); |
| | | String[] tightenDataParts = data.split(","); |
| | | formulaChildInfo.setCollectData("扭矩"+tightenDataParts[0]+"角度"+tightenDataParts[1]+"扭矩结果"+tightenDataParts[2]+"角度结果"+tightenDataParts[3]); |
| | | } |
| | | } |
| | | } |
| | | |
| | | return getDataTable(list); |
| | | } |
| | | |
| | | // @GetMapping("/noPageListFormulaChild") |
| | | // public TableDataInfo noPageListFormulaChild(BsFormulaChildInfo bsFormulaChildInfo) |
| | | // { |
| | | // |
| | | // List<BsFormulaChildInfo> list = bsFormulaChildInfoService.list(new LambdaQueryWrapper<BsFormulaChildInfo>() |
| | | // .eq(BsFormulaChildInfo::getProductCode,bsFormulaChildInfo.getProductCode()) |
| | | // .eq(BsFormulaChildInfo::getProcessesCode,bsFormulaChildInfo.getProcessesCode()) |
| | | // ); |
| | | // if (CollUtil.isNotEmpty(list)){ |
| | | // List<BsFormulaChildInfo> collect1 = list.stream().filter(x -> Constants.OK.equals(x.getResults())).collect(Collectors.toList()); |
| | | // List<BsFormulaChildInfo> collect2 = list.stream().filter(x -> !Constants.OK.equals(x.getResults())).collect(Collectors.toList()); |
| | | // list = collect1; |
| | | // list.addAll(collect2); |
| | | // } |
| | | // for (BsFormulaChildInfo formulaChildInfo : list) { |
| | | // if(formulaChildInfo.getCollectData()!=null&& !"".equals(formulaChildInfo.getCollectData())){ |
| | | // if(formulaChildInfo.getCollectData().contains("[")){ |
| | | // String data = formulaChildInfo.getCollectData(); |
| | | // data = data.replace("[", "").replace("]", "").replace(" ", ""); |
| | | // String[] tightenDataParts = data.split(","); |
| | | // formulaChildInfo.setCollectData("扭矩"+tightenDataParts[0]+"角度"+tightenDataParts[1]+"扭矩结果"+tightenDataParts[2]+"角度结果"+tightenDataParts[3]); |
| | | // } |
| | | // } |
| | | // } |
| | | // return getDataTable(list); |
| | | // } |
| | | |
| | | /** |
| | | * 查询配方配置子信息列表 |
| | | */ |
| | |
| | | formulaChildInfo.setSort(formulaChildInfo.getStepSort()); |
| | | formulaChildInfo.setAddress(formulaChildInfo.getTechRequirement()); |
| | | formulaChildInfo.setImg(formulaChildInfo.getOperationSteps()); |
| | | if(formulaChildInfo.getCollectData()!=null&& !"".equals(formulaChildInfo.getCollectData())){ |
| | | if(formulaChildInfo.getCollectData().contains("[")){ |
| | | String data = formulaChildInfo.getCollectData(); |
| | | data = data.replace("[", "").replace("]", "").replace(" ", ""); |
| | | String[] tightenDataParts = data.split(","); |
| | | formulaChildInfo.setCollectData("扭矩"+tightenDataParts[0]+"角度"+tightenDataParts[1]+"扭矩结果"+tightenDataParts[2]+"角度结果"+tightenDataParts[3]); |
| | | } |
| | | } |
| | | } |
| | | return getDataTable(list); |
| | | } |
| | | |
| | | /** |
| | | * 检查是否可以放行 |
| | | */ |
| | | @GetMapping("/releaseCheck") |
| | | public AjaxResult releaseCheck(BsFormulaChildInfo bsFormulaChildInfo) |
| | | { |
| | | List<BsFormulaChildInfo> i = bsFormulaChildInfoService.releaseCheck(bsFormulaChildInfo); |
| | | return AjaxResult.success(i.size()); |
| | | } |
| | | // /** |
| | | // * 检查是否可以放行 |
| | | // */ |
| | | // @GetMapping("/releaseCheck") |
| | | // public AjaxResult releaseCheck(BsFormulaChildInfo bsFormulaChildInfo) |
| | | // { |
| | | // List<BsFormulaChildInfo> i = bsFormulaChildInfoService.releaseCheck(bsFormulaChildInfo); |
| | | // return AjaxResult.success(i.size()); |
| | | // } |
| | | |
| | | /** |
| | | * 扫码确认 |
| | |
| | | } |
| | | |
| | | /** |
| | | * 扫码确认 |
| | | */ |
| | | @GetMapping("/jrmUpdateResults") |
| | | public AjaxResult jrmUpdateResults(BsFormulaChildInfo bsFormulaChildInfo) |
| | | { |
| | | return bsFormulaChildInfoService.jrmUpdateResults(bsFormulaChildInfo); |
| | | } |
| | | |
| | | /** |
| | | * 扫码确认 |
| | | */ |
| | | @GetMapping("/yzUpdateResults") |
| | | public AjaxResult yzUpdateResults(BsFormulaChildInfo bsFormulaChildInfo) |
| | | { |
| | | return bsFormulaChildInfoService.yzUpdateResults(bsFormulaChildInfo); |
| | | } |
| | | |
| | | /** |
| | | * 放行请空状态 |
| | | */ |
| | | @GetMapping("/workpieceRelease") |
| | |
| | | } |
| | | |
| | | /** |
| | | * 放行请空状态 |
| | | */ |
| | | @GetMapping("/checkMaterialCode") |
| | | public AjaxResult checkMaterialCode(BsFormulaChildInfo bsFormulaChildInfo) |
| | | { |
| | | return bsFormulaChildInfoService.checkMaterialCode(bsFormulaChildInfo); |
| | | } |
| | | |
| | | /** |
| | | * 放行请空状态 |
| | | */ |
| | | @GetMapping("/clearWorkpieceRelease") |
| | | public AjaxResult clearWorkpieceRelease(BsFormulaChildInfo bsFormulaChildInfo) |
| | | { |
| | | return bsFormulaChildInfoService.clearWorkpieceRelease(bsFormulaChildInfo); |
| | | } |
| | | |
| | | /** |
| | | * 放行请空状态 |
| | | */ |
| | | @GetMapping("/jrmWorkpieceRelease") |
| | | public AjaxResult jrmWorkpieceRelease(BsFormulaChildInfo bsFormulaChildInfo) |
| | | { |
| | | return bsFormulaChildInfoService.jrmWorkpieceRelease(bsFormulaChildInfo); |
| | | } |
| | | |
| | | /** |
| | | * 拧紧后更新对应数据 |
| | | */ |
| | | @GetMapping("/updateTighteningFormula") |
| | | public AjaxResult updateTighteningFormula(BsFormulaChildInfo bsFormulaChildInfo) |
| | | { |
| | | return bsFormulaChildInfoService.updateTighteningFormula(bsFormulaChildInfo); |
| | | } |
| | | |
| | | /** |
| | | * 拧紧后更新对应数据 |
| | | */ |
| | | @GetMapping("/yzUpdateTighteningFormula") |
| | | public AjaxResult yzUpdateTighteningFormula(BsFormulaChildInfo bsFormulaChildInfo) |
| | | { |
| | | return bsFormulaChildInfoService.yzUpdateTighteningFormula(bsFormulaChildInfo); |
| | | } |
| | | |
| | | /** |
| | | * 导出配方配置子信息列表 |
| | | */ |
| | | @PreAuthorize("@ss.hasPermi('bs:formulaChild:export')") |