Commit fbbbf352 LN

搅拌速度:mixingSpeed=公转速度,mixingRSpeed=自转速度=公转速度*1.5. 发给客户端使用公转速度mixingSpeed

1 个父辈 49bc9c0c
...@@ -156,8 +156,8 @@ public class BarcodeManagerImpl implements IBarcodeManager { ...@@ -156,8 +156,8 @@ public class BarcodeManagerImpl implements IBarcodeManager {
resources.setType(component.getType()); resources.setType(component.getType());
resources.setWarmTime(component.getWarmTime()); resources.setWarmTime(component.getWarmTime());
resources.setMixTime(component.getMixTime()); resources.setMixTime(component.getMixTime());
Object mixSpeed=component.getAppendData("mixingSpeed"); String mixSpeed=component.getAppendData("mixingSpeed");
if(mixSpeed!=null&&resources.getAppendData("mixingSpeed")==null){ if(mixSpeed!=null){
resources.updateAppendData("mixingSpeed",mixSpeed); resources.updateAppendData("mixingSpeed",mixSpeed);
} }
......
package com.neotel.smfcore.core.barcode.service.po; package com.neotel.smfcore.core.barcode.service.po;
import cn.hutool.core.util.ObjectUtil;
import com.neotel.smfcore.common.base.BasePo; import com.neotel.smfcore.common.base.BasePo;
import com.neotel.smfcore.core.barcode.enums.COMPONENT_TYPE; import com.neotel.smfcore.core.barcode.enums.COMPONENT_TYPE;
import lombok.Data; import lombok.Data;
...@@ -225,11 +226,29 @@ public class Component extends BasePo implements Serializable { ...@@ -225,11 +226,29 @@ public class Component extends BasePo implements Serializable {
* @param <T> * @param <T>
* @return * @return
*/ */
public <T> T getAppendData(String appendKey){ public String getAppendData(String appendKey){
Object value = appendData.get(appendKey); String value = appendData.get(appendKey);
if(value != null){ try {
return (T)value; if (value != null) {
return value;
}
}catch (Exception ex){
} }
return null; return null;
} }
public int getIntAppendData(String appendKey){
String value=getAppendData(appendKey);
if(ObjectUtil.isNotEmpty(value)){
try{
return Integer.parseInt(value);
}catch (Exception ex){
}
}
return 0;
}
} }
package com.neotel.smfcore.core.solder.handler; package com.neotel.smfcore.core.solder.handler;
import cn.hutool.core.util.ObjectUtil;
import com.google.common.base.Strings; import com.google.common.base.Strings;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.neotel.smfcore.common.bean.ResultBean; import com.neotel.smfcore.common.bean.ResultBean;
...@@ -7,6 +8,8 @@ import com.neotel.smfcore.common.exception.ValidateException; ...@@ -7,6 +8,8 @@ import com.neotel.smfcore.common.exception.ValidateException;
import com.neotel.smfcore.common.utils.ReelLockPosUtil; import com.neotel.smfcore.common.utils.ReelLockPosUtil;
import com.neotel.smfcore.common.utils.StorageConstants; import com.neotel.smfcore.common.utils.StorageConstants;
import com.neotel.smfcore.core.api.bean.CodeValidateParam; import com.neotel.smfcore.core.api.bean.CodeValidateParam;
import com.neotel.smfcore.core.barcode.bean.BarcodeRule;
import com.neotel.smfcore.core.barcode.bean.CodeBean;
import com.neotel.smfcore.core.barcode.enums.COMPONENT_TYPE; import com.neotel.smfcore.core.barcode.enums.COMPONENT_TYPE;
import com.neotel.smfcore.core.barcode.enums.SOLDER_STATUS; import com.neotel.smfcore.core.barcode.enums.SOLDER_STATUS;
import com.neotel.smfcore.core.barcode.service.manager.IBarcodeManager; import com.neotel.smfcore.core.barcode.service.manager.IBarcodeManager;
...@@ -178,6 +181,32 @@ public class SpBoxHandler extends BaseDeviceHandler { ...@@ -178,6 +181,32 @@ public class SpBoxHandler extends BaseDeviceHandler {
protected StatusBean putInBoxSp(Storage storage, StatusBean statusBean) { protected StatusBean putInBoxSp(Storage storage, StatusBean statusBean) {
try { try {
String codeStr = statusBean.getCode(); String codeStr = statusBean.getCode();
//锡膏发送 fullCode和weight =1+0x0-67x77=2023053100010X##
CodeBean codeBean = BarcodeRule.splitCodeAndSize(codeStr);
String fullCode = codeBean.getCodeStr();
if (fullCode.endsWith("##")) {
fullCode = fullCode.substring(0, fullCode.length() - 2);
}
if(ObjectUtil.isNotEmpty(fullCode)) {
//查找是否有入库任务
List<DataLog> tasks = taskService.getAllTasks();
for (DataLog datalog :
tasks) {
if (datalog.isFinished() || datalog.isCancel()) {
continue;
}
if (datalog.isPutInTask() && datalog.getBarcode().equals(fullCode)) {
String posId = datalog.getPosName();
int plateW = datalog.getW();
int plateH = datalog.getH();
statusBean.addPosInfo(datalog.getBarcode(), posId, plateW, plateH, false);
log.info(datalog.getBarcode() + "已有入库任务[" + plateW + "x" + plateH + "][" + storage.getCid() + "][" + posId + "] 直接返回入库任务");
return statusBean;
}
}
}
int weight = statusBean.getWeight(); int weight = statusBean.getWeight();
CodeValidateParam params = new CodeValidateParam("",storage.getGroupId(),storage.getId(),codeStr,""); CodeValidateParam params = new CodeValidateParam("",storage.getGroupId(),storage.getId(),codeStr,"");
params.setWeight(weight); params.setWeight(weight);
...@@ -325,7 +354,7 @@ public class SpBoxHandler extends BaseDeviceHandler { ...@@ -325,7 +354,7 @@ public class SpBoxHandler extends BaseDeviceHandler {
} else if (task.isMixTask()) { } else if (task.isMixTask()) {
//已有正在执行的搅拌任务,先不发送 //已有正在执行的搅拌任务,先不发送
boolean hasExecutingMixTask = hasExcecutingMixTask(cid); boolean hasExecutingMixTask = hasExcecutingMixTask(cid);
if(hasExecutingMixTask){ if (hasExecutingMixTask) {
continue; continue;
} }
//搅拌任务 //搅拌任务
...@@ -334,12 +363,12 @@ public class SpBoxHandler extends BaseDeviceHandler { ...@@ -334,12 +363,12 @@ public class SpBoxHandler extends BaseDeviceHandler {
statusBean.addData("barcode", task.getBarcode()); statusBean.addData("barcode", task.getBarcode());
statusBean.addData("weight", task.getNum() + ""); statusBean.addData("weight", task.getNum() + "");
statusBean.addData("mixTime", task.getMixTime() + ""); statusBean.addData("mixTime", task.getMixTime() + "");
Barcode barcode=barcodeManager.findByBarcode(task.getBarcode()); Component com = componentManager.findOneByPN(task.getPartNumber());
if(barcode!=null) if (com != null) {
{ int mspeed = com.getIntAppendData("mixingSpeed");
Object mixingSpeed= barcode.getAppendData("mixingSpeed"); if (mspeed > 0) {
if(mixingSpeed!=null){ statusBean.addData("mixingSpeed", mspeed + "");
statusBean.addData("mixingSpeed",mixingSpeed.toString()); log.info(task.getBarcode() + "发送搅拌任务到客户端[" + task.getPosName() + "][" + task.getBarcode() + "] mixingSpeed=" + mspeed + "");
} }
} }
task.setStatus(OP_STATUS.EXECUTING.name()); task.setStatus(OP_STATUS.EXECUTING.name());
......
...@@ -66,8 +66,19 @@ public class SpSolderController { ...@@ -66,8 +66,19 @@ public class SpSolderController {
@RequestMapping("/solder/update") @RequestMapping("/solder/update")
public ComponentDto update(@Validated @RequestBody ComponentDto resources) { public ComponentDto update(@Validated @RequestBody ComponentDto resources) {
resources.setType(COMPONENT_TYPE.SOLDERPASTE); resources.setType(COMPONENT_TYPE.SOLDERPASTE);
Component component=componentMapper.toEntity(resources); Component component = componentMapper.toEntity(resources);
component.setAmount(500); if (component.getAmount() <= 0) {
component.setAmount(500);
}
//判断是否设置速度
int mixingRSpeed = component.getIntAppendData("mixingRSpeed");
int mixingSpeed = component.getIntAppendData("mixingSpeed");
if (mixingRSpeed > 0 && mixingSpeed <= 0) {
mixingSpeed = mixingRSpeed * 3 / 2;
component.updateAppendData("mixingSpeed", mixingSpeed + "");
}
component = componentManager.saveComponent(component); component = componentManager.saveComponent(component);
return componentMapper.toDto(component); return componentMapper.toDto(component);
} }
......
...@@ -12,7 +12,9 @@ import com.neotel.smfcore.core.barcode.bean.BarcodeRule; ...@@ -12,7 +12,9 @@ import com.neotel.smfcore.core.barcode.bean.BarcodeRule;
import com.neotel.smfcore.core.barcode.bean.CodeBean; import com.neotel.smfcore.core.barcode.bean.CodeBean;
import com.neotel.smfcore.core.barcode.enums.COMPONENT_TYPE; import com.neotel.smfcore.core.barcode.enums.COMPONENT_TYPE;
import com.neotel.smfcore.core.barcode.service.manager.IBarcodeManager; import com.neotel.smfcore.core.barcode.service.manager.IBarcodeManager;
import com.neotel.smfcore.core.barcode.service.manager.IComponentManager;
import com.neotel.smfcore.core.barcode.service.po.Barcode; import com.neotel.smfcore.core.barcode.service.po.Barcode;
import com.neotel.smfcore.core.barcode.service.po.Component;
import com.neotel.smfcore.core.system.service.po.DataLog; import com.neotel.smfcore.core.system.service.po.DataLog;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.logging.log4j.util.Strings; import org.apache.logging.log4j.util.Strings;
...@@ -27,6 +29,9 @@ public class SpApi extends BaseSmfApiListener { ...@@ -27,6 +29,9 @@ public class SpApi extends BaseSmfApiListener {
@Autowired @Autowired
IBarcodeManager barcodeManager; IBarcodeManager barcodeManager;
@Autowired
IComponentManager componentManager;
@Override @Override
public boolean isForThisApi(String apiName) { public boolean isForThisApi(String apiName) {
return apiName != null && apiName.equalsIgnoreCase("sp"); return apiName != null && apiName.equalsIgnoreCase("sp");
...@@ -46,7 +51,7 @@ public class SpApi extends BaseSmfApiListener { ...@@ -46,7 +51,7 @@ public class SpApi extends BaseSmfApiListener {
int amount = params.getWeight(); int amount = params.getWeight();
paramMap.put("weight", amount); paramMap.put("weight", amount);
log.info(fullCode + "canPutInBeforeResolve,参数" + JsonUtil.toJsonStr(paramMap)); log.info(fullCode + " canPutInBeforeResolve,参数" + JsonUtil.toJsonStr(paramMap));
String result = ""; String result = "";
try { try {
result = HttpHelper.postJson(codeResolveUrl, paramMap); result = HttpHelper.postJson(codeResolveUrl, paramMap);
...@@ -54,7 +59,7 @@ public class SpApi extends BaseSmfApiListener { ...@@ -54,7 +59,7 @@ public class SpApi extends BaseSmfApiListener {
log.error("canPutInBeforeResolve 接口出错:" + e.getMessage()); log.error("canPutInBeforeResolve 接口出错:" + e.getMessage());
throw new ValidateException("smfcore.mesApi.codeResolveUrl.error", "MES codeResolveUrl ERROR:" + e.getMessage(),new String[]{e.getMessage()}); throw new ValidateException("smfcore.mesApi.codeResolveUrl.error", "MES codeResolveUrl ERROR:" + e.getMessage(),new String[]{e.getMessage()});
} }
log.info(fullCode + "canPutInBeforeResolve 返回" + result); log.info(fullCode + " canPutInBeforeResolve 返回" + result);
ApiResult apiResult = JsonUtil.toObj(result, ApiResult.class); ApiResult apiResult = JsonUtil.toObj(result, ApiResult.class);
if (apiResult.isOk()) { if (apiResult.isOk()) {
Map<String, Object> dataMap = (Map<String, Object>) apiResult.getData(); Map<String, Object> dataMap = (Map<String, Object>) apiResult.getData();
...@@ -217,29 +222,30 @@ public class SpApi extends BaseSmfApiListener { ...@@ -217,29 +222,30 @@ public class SpApi extends BaseSmfApiListener {
} }
@Override @Override
public void outTaskStatusChange(String outNotifyUrl, DataLog task){ public void outTaskStatusChange(String outNotifyUrl, DataLog task) {
if(task.isFinished()){ if (task.isFinished()) {
Map<String,Object> paramMap = new HashMap<>(); Map<String, Object> paramMap = new HashMap<>();
paramMap.put("reelId",task.getBarcode()); paramMap.put("reelId", task.getBarcode());
paramMap.put("partNum",task.getPartNumber()); paramMap.put("partNum", task.getPartNumber());
paramMap.put("weight",task.getNum() ); paramMap.put("weight", task.getNum());
paramMap.put("location",task.getPosName()); paramMap.put("location", task.getPosName());
String status="OUTEND"; String status = "OUTEND";
paramMap.put("status",status); paramMap.put("status", status);
Barcode barcode = barcodeManager.findByBarcode(task.getBarcode()); Barcode barcode = barcodeManager.findByBarcode(task.getBarcode());
paramMap.put("mixTime",barcode.getMixTime()/60); paramMap.put("mixTime", barcode.getMixTime() / 60);
paramMap.put("warmTime",barcode.getWarmTime()); paramMap.put("warmTime", barcode.getWarmTime());
Object mixSpeed=barcode.getAppendData("mixingSpeed");
if(mixSpeed!=null) { Component com = componentManager.findOneByPN(barcode.getPartNumber());
Float speed = Float.parseFloat(mixSpeed.toString()); if (com != null) {
Float rSpeed = speed * 1.5F; int mspeed = com.getIntAppendData("mixingSpeed");
paramMap.put("mixSpeed", speed.toString()); int mrSpeed = com.getIntAppendData("mixingRSpeed");
paramMap.put("mixRSpeed", rSpeed.toString()); paramMap.put("mixSpeed", mspeed + "");
paramMap.put("mixRSpeed", mrSpeed + "");
} }
paramMap.put("currTime",DateUtil.toDateString(new Date(),"yyyy-MM-dd HH:mm:ss")); paramMap.put("currTime", DateUtil.toDateString(new Date(), "yyyy-MM-dd HH:mm:ss"));
try { try {
log.info(task.getBarcode() + "出库通知,参数" + JsonUtil.toJsonStr(paramMap)); log.info(task.getBarcode() + "出库通知,参数" + JsonUtil.toJsonStr(paramMap));
String result = HttpHelper.postJson(outNotifyUrl, paramMap); String result = HttpHelper.postJson(outNotifyUrl, paramMap);
...@@ -252,36 +258,38 @@ public class SpApi extends BaseSmfApiListener { ...@@ -252,36 +258,38 @@ public class SpApi extends BaseSmfApiListener {
@Override @Override
public void otherTaskStatusChange(String taskNotifyUrl, DataLog task) { public void otherTaskStatusChange(String taskNotifyUrl, DataLog task) {
String status=""; String status = "";
if(task.isCheckOutTask() ){ if (task.isCheckOutTask()) {
status="OUTEND"; status = "OUTEND";
}else if(task.isRewarmPuttingTask() ){ } else if (task.isRewarmPuttingTask()) {
status="REWARMING"; status = "REWARMING";
}else if(task.isMixTask() ){ } else if (task.isMixTask()) {
status="MIXING"; status = "MIXING";
}else{ } else {
return; return;
} }
if(task.isFinished()){ if (task.isFinished()) {
Map<String,Object> paramMap = new HashMap<>(); Map<String, Object> paramMap = new HashMap<>();
paramMap.put("reelId",task.getBarcode()); paramMap.put("reelId", task.getBarcode());
paramMap.put("partNum",task.getPartNumber()); paramMap.put("partNum", task.getPartNumber());
paramMap.put("weight",task.getNum() ); paramMap.put("weight", task.getNum());
paramMap.put("location",task.getPosName()); paramMap.put("location", task.getPosName());
paramMap.put("status",status); paramMap.put("status", status);
Barcode barcode = barcodeManager.findByBarcode(task.getBarcode()); Barcode barcode = barcodeManager.findByBarcode(task.getBarcode());
paramMap.put("mixTime",barcode.getMixTime()/60); paramMap.put("mixTime", barcode.getMixTime() / 60);
paramMap.put("warmTime",barcode.getWarmTime()); paramMap.put("warmTime", barcode.getWarmTime());
Object mixSpeed=barcode.getAppendData("mixingSpeed");
if(mixSpeed!=null) { Component com = componentManager.findOneByPN(barcode.getPartNumber());
Float speed = Float.parseFloat(mixSpeed.toString()); if (com != null) {
Float rSpeed = speed * 1.5F; int mspeed = com.getIntAppendData("mixingSpeed");
paramMap.put("mixSpeed", speed.toString()); int mrSpeed = com.getIntAppendData("mixingRSpeed");
paramMap.put("mixRSpeed", rSpeed.toString()); paramMap.put("mixSpeed", mspeed + "");
paramMap.put("mixRSpeed", mrSpeed + "");
} }
paramMap.put("currTime",DateUtil.toDateString(new Date(),"yyyy-MM-dd HH:mm:ss"));
paramMap.put("currTime", DateUtil.toDateString(new Date(), "yyyy-MM-dd HH:mm:ss"));
try { try {
log.info(task.getBarcode() + "出库通知,参数" + JsonUtil.toJsonStr(paramMap)); log.info(task.getBarcode() + "出库通知,参数" + JsonUtil.toJsonStr(paramMap));
String result = HttpHelper.postJson(taskNotifyUrl, paramMap); String result = HttpHelper.postJson(taskNotifyUrl, paramMap);
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!