package com.cnbm.packing.controller; import cn.hutool.core.date.DateUtil; import com.baomidou.mybatisplus.core.metadata.IPage; import com.cnbm.admin.annotation.LogOperation; 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.dto.PowerReportDTO; import com.cnbm.packing.entity.WoPackagingBoxSubstrate; import com.cnbm.packing.mapper.WoPackagingBoxSubstrateMapper; import com.cnbm.packing.param.PowerReportQueryParam; import com.cnbm.packing.param.SubIdQueryParam; import com.cnbm.packing.service.DynamicDataSourceService; import com.cnbm.packing.service.WoPackagingBoxServiceBiz; import com.cnbm.packing.service.WoPackagingBoxSubstrateServiceBiz; import com.cnbm.packing.vo.PowerReportVo; import com.cnbm.packing.vo.SubIdPageVo; 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 io.swagger.annotations.ApiOperation; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import com.cnbm.common.utils.Result; import springfox.documentation.annotations.ApiIgnore; import javax.validation.groups.Default; import java.io.UnsupportedEncodingException; import java.math.BigDecimal; import java.text.DecimalFormat; import java.text.Format; import java.text.ParseException; import java.util.Arrays; import java.util.Date; 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; @Autowired WoPackagingBoxServiceBiz boxServiceBiz; @Autowired WoPackagingBoxSubstrateMapper subMapper; 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("/subPageMapper") @ApiOperation(value = "基板表 left join box表 分页查询") public com.cnbm.packing.vo.R> subPageMapper(@Validated({Default.class}) @RequestBody SubIdQueryParam param) { return boxServiceBiz.subIdPage(param); } @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("/forTestMix") public R forTestMix() throws UnsupportedEncodingException, ParseException { String[] s = new String[20]; s[0]= "30110012303021614"; s[1]= "30110012303022415"; s[2]= "30110012303022801"; s[3]= "30110012303040003"; s[4]= "30110012303030488"; s[5]= "30110012303020247"; s[6]= "30110012303021008"; s[7]= "30110012303022434"; s[8]= "30110012303012878"; s[9]= "30110012302281212"; s[10]= "30110012302281213"; s[11]= "30110012302281215"; s[12]= "30110012302271160"; s[13]= "30110012302271154"; s[14]= "30110012303050321"; s[15]= "30110012303050331"; s[16]= "30110012303020036"; s[17]= "30110012303022606"; s[18]= "30110012303030009"; s[19]= "30110012303021795"; System.out.println(isMixLevel(s));; WoPackagingBoxSubstrate bySubId = substrateServiceBiz.getBySubId(s[0]); System.out.println(bySubId.getSapMaterial()); System.out.println(getErrorBoxId(bySubId.getSapMaterial())); System.out.println(getBoxId(bySubId.getSapMaterial())); return R.ok(); } public String formateString(Integer a){ Format f1 = new DecimalFormat("000"); return f1.format(a); } public String getBoxId(String sapMaterial){ Integer todayBoxNum = service.getTodayBoxNum()+1; String nowTime = DateUtil.format(new Date(), "yyMMdd"); todayBoxNum+=500; String res = "301"+sapMaterial+nowTime+formateString(todayBoxNum); return res; } public String getErrorBoxId(String sapMaterial){ String nowTime = DateUtil.format(new Date(), "yyMMdd"); String mixBoxError = "001"; String res = "Err"+sapMaterial+nowTime+mixBoxError; return res; } private boolean isMixLevel(String[] subIds){ String correctLevel = substrateServiceBiz.getBySubId(subIds[0]).getPowerLevel(); String errMsg = "以下基板ID出现混档:"; boolean res = false; for(int i=1;i 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); } } }