package com.cnbm.packing.controller; import com.cnbm.dispatch.enums.kuka.step1.Step1Mes2PlcVar; import com.cnbm.dispatch.enums.kuka.step1.Step1Plc2MesVar; import com.cnbm.dispatch.enums.kuka.step2.Step2Mes2PlcVar; import com.cnbm.dispatch.enums.kuka.step2.Step2Plc2MesVar; import com.cnbm.dispatch.enums.kuka.step3.Step3Mes2PlcVar; import com.cnbm.dispatch.enums.kuka.step3.Step3Plc2MesVar; import com.cnbm.packing.dto.CamlineSubIdDTO; import com.cnbm.packing.dto.CamlineSubIdForImportDTO; import com.cnbm.packing.entity.WoPackagingBoxSubstrate; import com.cnbm.packing.service.DynamicDataSourceService; import com.cnbm.packing.service.WoPackagingBoxSubstrateServiceBiz; import com.cnbm.s7.entity.R; import com.cnbm.s7.s7connector.enmuc.S7Client; import com.cnbm.s7.s7connector.type.PlcVar; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import com.cnbm.common.utils.Result; import springfox.documentation.annotations.ApiIgnore; import java.io.UnsupportedEncodingException; import java.math.BigDecimal; import java.text.ParseException; import java.util.Arrays; import java.util.List; import java.util.Map; /** * @Author weihongyang * @Date 2022/6/24 8:57 AM * @Version 1.0 */ @RestController @RequestMapping("/test") @Api(tags="测试接口") public class TestController { private static final Logger logger = LoggerFactory.getLogger(TestController.class); @Autowired DynamicDataSourceService service; @Autowired WoPackagingBoxSubstrateServiceBiz substrateServiceBiz; private Object read(S7Client s7Client,Step1Plc2MesVar var) throws UnsupportedEncodingException, ParseException { try { return s7Client.read(var.getArea(), var.getAreaNumber(), var.getByteOffset(), var.getBitOffset(), var.getLength(), var.getStrSize(), var.getType()); }catch (Exception e){ e.printStackTrace(); return null; } } private Object read(S7Client s7Client,Step1Mes2PlcVar var) throws UnsupportedEncodingException, ParseException { try { return s7Client.read(var.getArea(), var.getAreaNumber(), var.getByteOffset(), var.getBitOffset(), var.getLength(), var.getStrSize(), var.getType()); }catch (Exception e){ e.printStackTrace(); return null; } } private Object read(S7Client s7Client,Step2Plc2MesVar var) throws UnsupportedEncodingException, ParseException { try { return s7Client.read(var.getArea(), var.getAreaNumber(), var.getByteOffset(), var.getBitOffset(), var.getLength(), var.getStrSize(), var.getType()); }catch (Exception e){ e.printStackTrace(); return null; } } private Object read(S7Client s7Client,Step2Mes2PlcVar var) throws UnsupportedEncodingException, ParseException { try { return s7Client.read(var.getArea(), var.getAreaNumber(), var.getByteOffset(), var.getBitOffset(), var.getLength(), var.getStrSize(), var.getType()); }catch (Exception e){ e.printStackTrace(); return null; } } private Object read(S7Client s7Client,Step3Plc2MesVar var) throws UnsupportedEncodingException, ParseException { try { return s7Client.read(var.getArea(), var.getAreaNumber(), var.getByteOffset(), var.getBitOffset(), var.getLength(), var.getStrSize(), var.getType()); }catch (Exception e){ e.printStackTrace(); return null; } } private Object read(S7Client s7Client,Step3Mes2PlcVar var) throws UnsupportedEncodingException, ParseException { try { return s7Client.read(var.getArea(), var.getAreaNumber(), var.getByteOffset(), var.getBitOffset(), var.getLength(), var.getStrSize(), var.getType()); }catch (Exception e){ e.printStackTrace(); return null; } } @PostMapping("/forString") public R forString() throws UnsupportedEncodingException, ParseException { String[] s = (String[])read(S7Client.S7_KUKA,Step2Plc2MesVar.SubIdList); System.out.println(Step2Plc2MesVar.SubIdList.getName()+" : "+Arrays.toString(s)); return R.ok(); } @PostMapping("/forImport") public R forImport() throws UnsupportedEncodingException, ParseException { List alllCamlineSubForImp = service.getAlllCamlineSubForImp(); for(CamlineSubIdForImportDTO cam:alllCamlineSubForImp){ WoPackagingBoxSubstrate woPackagingBoxSubstrate = new WoPackagingBoxSubstrate(); woPackagingBoxSubstrate.setWoSubstrateId(cam.getSubId()); woPackagingBoxSubstrate.setLineBody(2); woPackagingBoxSubstrate.setPowerLevel(cam.getPowerLevel()); woPackagingBoxSubstrate.setOrderName(cam.getOrderName()); woPackagingBoxSubstrate.setSapMaterial(cam.getSapMaterial()); substrateServiceBiz.insert(woPackagingBoxSubstrate); } return R.ok(); } @PostMapping("/testReadAll") public R testReadAll() throws UnsupportedEncodingException, ParseException { for(Step1Plc2MesVar actual:Step1Plc2MesVar.values()){ logger.info(read(S7Client.S7_KUKA,actual).toString()); System.out.println(actual.getName().toString()+" : "+read(S7Client.S7_KUKA,actual).toString()); } for(Step1Mes2PlcVar actual:Step1Mes2PlcVar.values()){ logger.info(read(S7Client.S7_KUKA,actual).toString()); System.out.println(actual.getName().toString()+" : "+read(S7Client.S7_KUKA,actual).toString()); } for(Step2Plc2MesVar actual:Step2Plc2MesVar.values()){ logger.info(read(S7Client.S7_KUKA,actual).toString()); System.out.println(actual.getName().toString()+" : "+read(S7Client.S7_KUKA,actual).toString()); } for(Step2Mes2PlcVar actual:Step2Mes2PlcVar.values()){ logger.info(read(S7Client.S7_KUKA,actual).toString()); System.out.println(actual.getName().toString()+" : "+read(S7Client.S7_KUKA,actual).toString()); } for(Step3Plc2MesVar actual:Step3Plc2MesVar.values()){ logger.info(read(S7Client.S7_KUKA,actual).toString()); System.out.println(actual.getName().toString()+" : "+read(S7Client.S7_KUKA,actual).toString()); } for(Step3Mes2PlcVar actual:Step3Mes2PlcVar.values()){ logger.info(read(S7Client.S7_KUKA,actual).toString()); System.out.println(actual.getName().toString()+" : "+read(S7Client.S7_KUKA,actual).toString()); } return R.ok(); } public static void main(String[] args) { BigDecimal voc = new BigDecimal(59.799); System.out.println(Float.valueOf(voc.toString())); } @PostMapping("/testWrite") public R testWrite() { BigDecimal voc = new BigDecimal(59.799); BigDecimal isc = new BigDecimal(3.799); BigDecimal vmpp = new BigDecimal(46.799); BigDecimal impp = new BigDecimal(3.0799); write(S7Client.S7_KUKA,Step1Mes2PlcVar.dLable_Pnom,new Integer(1)); System.out.println(Step1Mes2PlcVar.dLable_Pnom.getName()+" : "+1); write(S7Client.S7_KUKA,Step1Mes2PlcVar.dLable_Voc,voc); System.out.println(Step1Mes2PlcVar.dLable_Voc.getName()+" : "+voc.toPlainString()); write(S7Client.S7_KUKA,Step1Mes2PlcVar.dLable_Isc,isc); System.out.println(Step1Mes2PlcVar.dLable_Isc.getName()+" : "+isc.toPlainString()); write(S7Client.S7_KUKA,Step1Mes2PlcVar.dLable_Vmpp,vmpp); System.out.println(Step1Mes2PlcVar.dLable_Vmpp.getName()+" : "+vmpp.toPlainString()); write(S7Client.S7_KUKA,Step1Mes2PlcVar.dLable_Impp,impp); System.out.println(Step1Mes2PlcVar.dLable_Impp.getName()+" : "+impp.toPlainString()); write(S7Client.S7_KUKA,Step2Mes2PlcVar.BoxId,"12345678901111111111"); System.out.println(Step2Mes2PlcVar.BoxId.getName()+" : "+"12345678901111111111"); write(S7Client.S7_KUKA,Step1Mes2PlcVar.SubArrivedFinish,true); System.out.println(Step1Mes2PlcVar.SubArrivedFinish.getName()+" : "+"true"); write(S7Client.S7_KUKA,Step2Mes2PlcVar.ShelfIsFullFinish,false); System.out.println(Step2Mes2PlcVar.ShelfIsFullFinish.getName()+" : "+"false"); write(S7Client.S7_KUKA,Step3Mes2PlcVar.ShelfIsFullArrivedFinish,true); System.out.println(Step3Mes2PlcVar.ShelfIsFullArrivedFinish.getName()+" : "+"true"); return R.ok(); } @PostMapping("/testlogger") public R testlogger() { logger.info("test logger"); System.out.println("test logger"); // CamlineSubIdDTO subIdByCamline = service.getSubIdByCamline("30110012302220591"); // CamlineSubIdDTO subIdByCamline2 = service.getSubIdByCamline("30110012302220591 "); // System.out.println("subIdByCamline: "+subIdByCamline.toString()); // System.out.println("subIdByCamline2: "+subIdByCamline2.toString()); // WoPackagingBoxSubstrate bySubId = substrateServiceBiz.getBySubId("30110012302220591 "); // System.out.println("bySubId: "+bySubId.toString()); WoPackagingBoxSubstrate bySubId = substrateServiceBiz.getBySubId("30110012302210707 "); if(bySubId == null){ //todo CamlineSubIdDTO subIdByCamline = service.getSubIdByCamline("30110012302220591 "); bySubId = new WoPackagingBoxSubstrate(); bySubId.setPowerLevel(subIdByCamline.getPowerLevel()); bySubId.setSapMaterial(subIdByCamline.getSapMaterial()); System.out.println("bySubId2 : "+bySubId.toString()); } return R.ok(); } @PostMapping("getPMPPBySubId") @ApiImplicitParams({ @ApiImplicitParam(name = "subId", value = "基板ID", paramType = "query", required = true, dataTypeClass=Integer.class) , }) public Result getPMPPBySubId(@ApiIgnore @RequestParam Map params){ Object subId = params.get("subId"); return new Result().ok(service.getPMPPBySubId(subId.toString())); } @PostMapping("getOrderNameBySubId") @ApiImplicitParams({ @ApiImplicitParam(name = "subId", value = "基板ID", paramType = "query", required = true, dataTypeClass=Integer.class) , }) public Result getOrderNameBySubId(@ApiIgnore @RequestParam Map params){ Object subId = params.get("subId"); //service.getExtendArgFromCamline() return new Result().ok(service.getOrderNameBySubId(subId.toString())); } @PostMapping("getExtendArgFromCamline") @ApiImplicitParams({ @ApiImplicitParam(name = "subId", value = "基板ID", paramType = "query", required = true, dataTypeClass=Integer.class) , }) public Result getExtendArgFromCamline(@ApiIgnore @RequestParam Map params){ Object subId = params.get("subId"); return new Result().ok(service.getExtendArgFromCamline(subId.toString()).toString()); } private void write(S7Client s7Client, Step1Mes2PlcVar var, Object newValue) { if(var.getType().equals(PlcVar.STRING_Array)){ String[] s = (String[])newValue; String[] ss = (String[])newValue; if(s.length > var.getLength() ){ ss = new String[var.getLength()]; for(int i=0;i< var.getLength();i++){ ss[i] = s[i]; } } s7Client.write(var.getArea(), var.getAreaNumber(), var.getByteOffset(), var.getBitOffset(), var.getStrSize(), var.getType(),ss); }else { s7Client.write(var.getArea(), var.getAreaNumber(), var.getByteOffset(), var.getBitOffset(), var.getStrSize(), var.getType(),newValue); } } private void write(S7Client s7Client, Step2Mes2PlcVar var, Object newValue) { if(var.getType().equals(PlcVar.STRING_Array)){ String[] s = (String[])newValue; String[] ss = (String[])newValue; if(s.length > var.getLength() ){ ss = new String[var.getLength()]; for(int i=0;i< var.getLength();i++){ ss[i] = s[i]; } } s7Client.write(var.getArea(), var.getAreaNumber(), var.getByteOffset(), var.getBitOffset(), var.getStrSize(), var.getType(),ss); }else { s7Client.write(var.getArea(), var.getAreaNumber(), var.getByteOffset(), var.getBitOffset(), var.getStrSize(), var.getType(),newValue); } } private void write(S7Client s7Client, Step3Mes2PlcVar var, Object newValue) { if(var.getType().equals(PlcVar.STRING_Array)){ String[] s = (String[])newValue; String[] ss = (String[])newValue; if(s.length > var.getLength() ){ ss = new String[var.getLength()]; for(int i=0;i< var.getLength();i++){ ss[i] = s[i]; } } s7Client.write(var.getArea(), var.getAreaNumber(), var.getByteOffset(), var.getBitOffset(), var.getStrSize(), var.getType(),ss); }else { s7Client.write(var.getArea(), var.getAreaNumber(), var.getByteOffset(), var.getBitOffset(), var.getStrSize(), var.getType(),newValue); } } }