package com.jcdm.main.bs.formulaChild.controller; 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.jcdm.main.constant.Constants; 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; 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.bs.formulaChild.domain.BsFormulaChildInfo; import com.jcdm.main.bs.formulaChild.service.IBsFormulaChildInfoService; import com.jcdm.common.utils.poi.ExcelUtil; import com.jcdm.common.core.page.TableDataInfo; /** * 配方配置子信息Controller * * @author ruimin * @date 2023-12-26 */ @RestController @RequestMapping("/bs/formulaChild") public class BsFormulaChildInfoController extends BaseController { @Autowired private IBsFormulaChildInfoService bsFormulaChildInfoService; @Autowired private MiloService miloService; /** * 未做完工序回复plc信号 */ @GetMapping("/unfinishedProcess") public AjaxResult unfinishedProcess(BsFormulaChildInfo bsFormulaChildInfo) { try { String str = "MOZU1."+bsFormulaChildInfo.getProcessesCode()+".RecordDataDone"; miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(str).value(bsFormulaChildInfo.getRecordDataDone()).build()); } catch (Exception e) { throw new RuntimeException(e); } return AjaxResult.success(); } /** * 扫码确认 */ @GetMapping("/initializedData") public AjaxResult initializedData(BsFormulaChildInfo bsFormulaChildInfo) { String productNum = ""; try { String thoroughfare = Constants.thoroughfareMap.get(bsFormulaChildInfo.getLocationCode()); String str = thoroughfare+"."+bsFormulaChildInfo.getLocationCode()+".SNCode"; Object productNumObject = miloService.readFromOpcUa(str).getValue(); if(ObjectUtil.isNotNull(productNumObject)){ productNum = productNumObject.toString(); } } catch (Exception e) { throw new RuntimeException(e); } return AjaxResult.success(productNum); } /** * 扫码确认 */ @GetMapping("/fistSetpNumber") public AjaxResult fistSetpNumber(BsFormulaChildInfo bsFormulaChildInfo) { // try { // String str = "PACK."+bsFormulaChildInfo.getProcessesCode()+".MStepNumber"; // miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(str).value(1).build()); // } catch (Exception e) { // throw new RuntimeException(e); // } Integer stepNumber = 1; try { // List op260 = bsFormulaChildInfoService.list(new LambdaQueryWrapper() // .eq(BsFormulaChildInfo::getProcessesCode, bsFormulaChildInfo.getProcessesCode()) // .eq(BsFormulaChildInfo::getOperationType, "1") // ); // List filteredList = op260.stream() // .filter(obj -> obj.getResults() != null && !obj.getResults().isEmpty()) // .collect(Collectors.toList()); // if(filteredList.size() > 0){ // stepNumber = Integer.valueOf(filteredList.get(filteredList.size()-1).getStepSort())+1; // } String thoroughfare = Constants.thoroughfareMap.get(bsFormulaChildInfo.getProcessesCode());//获取通道 String str = thoroughfare+"."+bsFormulaChildInfo.getProcessesCode()+".MESScrew"; 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) { List list = bsFormulaChildInfoService.list(new LambdaQueryWrapper() .eq(BsFormulaChildInfo::getProductCode,bsFormulaChildInfo.getProductCode()) .eq(BsFormulaChildInfo::getProcessesCode,bsFormulaChildInfo.getProcessesCode()) .orderByAsc(BsFormulaChildInfo::getStepSort) ); if (CollUtil.isNotEmpty(list)){ List collect1 = list.stream().filter(x -> Constants.OK.equals(x.getResults())).collect(Collectors.toList()); List collect2 = list.stream().filter(x -> !Constants.OK.equals(x.getResults())).collect(Collectors.toList()); list = collect1; list.addAll(collect2); } for (BsFormulaChildInfo formulaChildInfo : 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); } /** * 查询配方配置子信息列表 */ @PreAuthorize("@ss.hasPermi('bs:formulaChild:list')") @GetMapping("/list") public TableDataInfo list(BsFormulaChildInfo bsFormulaChildInfo) { startPage(); List list = bsFormulaChildInfoService.selectBsFormulaChildInfoList(bsFormulaChildInfo); for (BsFormulaChildInfo formulaChildInfo : 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 i = bsFormulaChildInfoService.releaseCheck(bsFormulaChildInfo); // return AjaxResult.success(i.size()); // } /** * 扫码确认 */ @GetMapping("/updateResults") public AjaxResult updateResults(BsFormulaChildInfo bsFormulaChildInfo) { return bsFormulaChildInfoService.updateResults(bsFormulaChildInfo); } /** * 扫码确认 */ @GetMapping("/jrmUpdateResults") public AjaxResult jrmUpdateResults(BsFormulaChildInfo bsFormulaChildInfo) { return bsFormulaChildInfoService.jrmUpdateResults(bsFormulaChildInfo); } /** * 扫码确认 */ @GetMapping("/yzUpdateResults") public AjaxResult yzUpdateResults(BsFormulaChildInfo bsFormulaChildInfo) { return bsFormulaChildInfoService.yzUpdateResults(bsFormulaChildInfo); } /** * 放行请空状态 */ @GetMapping("/workpieceRelease") public AjaxResult workpieceRelease(BsFormulaChildInfo bsFormulaChildInfo) { return bsFormulaChildInfoService.workpieceRelease(bsFormulaChildInfo); } /** * 放行请空状态 */ @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')") @Log(title = "配方配置子信息", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(HttpServletResponse response, BsFormulaChildInfo bsFormulaChildInfo) { List list = bsFormulaChildInfoService.selectBsFormulaChildInfoList(bsFormulaChildInfo); ExcelUtil util = new ExcelUtil(BsFormulaChildInfo.class); util.exportExcel(response, list, "配方配置子信息数据"); } /** * 获取配方配置子信息详细信息 */ @PreAuthorize("@ss.hasPermi('bs:formulaChild:query')") @GetMapping(value = "/{id}") public AjaxResult getInfo(@PathVariable("id") Long id) { return success(bsFormulaChildInfoService.selectBsFormulaChildInfoById(id)); } /** * 新增配方配置子信息 */ @PreAuthorize("@ss.hasPermi('bs:formulaChild:add')") @Log(title = "配方配置子信息", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@RequestBody BsFormulaChildInfo bsFormulaChildInfo) { return toAjax(bsFormulaChildInfoService.insertBsFormulaChildInfo(bsFormulaChildInfo)); } /** * 修改配方配置子信息 */ @PreAuthorize("@ss.hasPermi('bs:formulaChild:edit')") @Log(title = "配方配置子信息", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@RequestBody BsFormulaChildInfo bsFormulaChildInfo) { return toAjax(bsFormulaChildInfoService.updateBsFormulaChildInfo(bsFormulaChildInfo)); } /** * 删除配方配置子信息 */ @PreAuthorize("@ss.hasPermi('bs:formulaChild:remove')") @Log(title = "配方配置子信息", businessType = BusinessType.DELETE) @DeleteMapping("/{ids}") public AjaxResult remove(@PathVariable Long[] ids) { return toAjax(bsFormulaChildInfoService.deleteBsFormulaChildInfoByIds(ids)); } }