405 lines
17 KiB
Java
405 lines
17 KiB
Java
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<IPage<SubIdPageVo>> subPageMapper(@Validated({Default.class}) @RequestBody SubIdQueryParam param) {
|
||
|
||
return boxServiceBiz.subIdPage(param);
|
||
}
|
||
|
||
|
||
@PostMapping("/forImport")
|
||
public R forImport() throws UnsupportedEncodingException, ParseException {
|
||
List<CamlineSubIdForImportDTO> 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<subIds.length;i++){
|
||
String powerLevel = substrateServiceBiz.getBySubId(subIds[i]).getPowerLevel();
|
||
|
||
if(!powerLevel.equals(correctLevel)){
|
||
errMsg+="基板ID:"+subIds[i]+" 档位:"+powerLevel+", ";
|
||
res = true;
|
||
}
|
||
}
|
||
if(res){
|
||
logger.error(errMsg);
|
||
}
|
||
return res;
|
||
}
|
||
|
||
|
||
|
||
@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<Float> getPMPPBySubId(@ApiIgnore @RequestParam Map<String, Object> params){
|
||
Object subId = params.get("subId");
|
||
return new Result<Float>().ok(service.getPMPPBySubId(subId.toString()));
|
||
}
|
||
@PostMapping("getOrderNameBySubId")
|
||
@ApiImplicitParams({
|
||
@ApiImplicitParam(name = "subId", value = "基板ID", paramType = "query", required = true, dataTypeClass=Integer.class) ,
|
||
})
|
||
public Result<String> getOrderNameBySubId(@ApiIgnore @RequestParam Map<String, Object> params){
|
||
Object subId = params.get("subId");
|
||
//service.getExtendArgFromCamline()
|
||
return new Result<String>().ok(service.getOrderNameBySubId(subId.toString()));
|
||
}
|
||
|
||
@PostMapping("getExtendArgFromCamline")
|
||
@ApiImplicitParams({
|
||
@ApiImplicitParam(name = "subId", value = "基板ID", paramType = "query", required = true, dataTypeClass=Integer.class) ,
|
||
})
|
||
public Result<String> getExtendArgFromCamline(@ApiIgnore @RequestParam Map<String, Object> params){
|
||
Object subId = params.get("subId");
|
||
return new Result<String>().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);
|
||
}
|
||
}
|
||
|
||
}
|