Commit 93ddd934 sunke

1 条码尺寸从Qisda获取,并与测量尺寸进行比对

2 需求单无库存时,返回Not Found
1 个父辈 3cc971a5
......@@ -9,7 +9,9 @@ import java.util.List;
*/
public interface IComponentManager extends IManager<Component> {
public Component findByPartNumber(String partNumber);
public Component findByPartNumber(String partNumber, String provider);
List<Component> listByPn(String pn);
List<Component> allNeedAlarmComponents();
......
......@@ -57,7 +57,7 @@ public class BarcodeManagerImpl implements IBarcodeManager {
@Override
public Barcode save(Barcode barcode) throws ValidateException{
validateSave(barcode);
Component component = componentManager.findByPartNumber(barcode.getPartNumber());
Component component = componentManager.findByPartNumber(barcode.getPartNumber(), barcode.getProvider());
if(component != null){
if(barcode.getMaxStorageTime() <= 0){
barcode.setMaxStorageTime(component.getMaxStorageTime());
......@@ -119,7 +119,7 @@ public class BarcodeManagerImpl implements IBarcodeManager {
protected boolean validateComponent(Barcode barcode) {
return componentManager.findByPartNumber(barcode.getPartNumber()) != null;
return componentManager.findByPartNumber(barcode.getPartNumber(),barcode.getProvider()) != null;
}
protected boolean validateUnique(Barcode barcode) {
......
......@@ -33,10 +33,17 @@ public class ComponentManagerImpl implements IComponentManager {
}
@Override
public Component findByPartNumber(String partNumber) {
public Component findByPartNumber(String partNumber, String provider) {
if (StringUtils.isEmpty(partNumber))
return null;
else return componentDao.findOneByCondition(new String[] {"partNumber"}, new String[] {partNumber});
else return componentDao.findOneByCondition(new String[] {"partNumber","provider"}, new String[] {partNumber,provider});
}
@Override
public List<Component> listByPn(String pn){
Criteria c = Criteria.where("partNumber").is(pn);
Query query = Query.query(c);
return componentDao.findByQuery(query);
}
@Override
......@@ -64,7 +71,7 @@ public class ComponentManagerImpl implements IComponentManager {
public Component save(Component component) throws ValidateException{
String partNumber = component.getPartNumber();
Component dbComponent = findByPartNumber(partNumber);
Component dbComponent = findByPartNumber(partNumber, component.getProvider());
if(dbComponent != null){
//数据库中已存在,但不是更新(要保存的没有 ID,或者有 ID但与数据库中的 ID不一致)
if(Strings.isNullOrEmpty(component.getId()) || !dbComponent.getId().equals(component.getId()) ){
......
......@@ -177,7 +177,7 @@ public class TcpServer {
barcode.setAmount(amount);
//未补过料
if(Strings.isNullOrEmpty(barcode.getNextBarcode())){
Component component = componentManager.findByPartNumber(barcode.getPartNumber());
Component component = componentManager.findByPartNumber(barcode.getPartNumber(), barcode.getProvider());
int alarmAmount = component.getAlarmAmount();
if(amount <= alarmAmount){
StoragePos pos = storagePosManager.findPartNumberPos(null,barcode.getPartNumber(),new ArrayList<String>(), StorageConstants.CHECKOUT_TYPE.FIFO);
......
......@@ -185,7 +185,7 @@ public class FileUploadController extends BaseFormController {
log.debug("Parse component to list with size: " + list.size());
if (list != null && list.size() > 0) {
for (ComponentExcel componentExcel : list) {
Component component = componentManager.findByPartNumber(componentExcel.getPartNumber());
Component component = componentManager.findByPartNumber(componentExcel.getPartNumber(), null);
if (component == null) {
component = new Component();
}
......@@ -254,7 +254,7 @@ public class FileUploadController extends BaseFormController {
if(partNumber.isEmpty()){
log.warn("行[partNumber="+partNumber + ","+"reelId="+reelId+",qty="+qty+"]中PN 为空,此行忽略");
}else{
Component component = componentManager.findByPartNumber(partNumber);
Component component = componentManager.findByPartNumber(partNumber,"");
if(component == null){
log.info("未找到["+ partNumber+"]的档案,创建新的数量为["+qty+"]档案");
component = new Component();
......
......@@ -65,7 +65,7 @@ public class BarcodeGenerateController extends BaseUpdateController {
barcode.setStatus(StorageConstants.BARCODE_STATUS.NEW);
barcode.setUsed(false);
//String componentId = barcode.getComponentId();
Component component = componentManager.findByPartNumber(barcode.getPartNumber());
Component component = componentManager.findByPartNumber(barcode.getPartNumber(),barcode.getProvider());
if(StringUtils.isEmpty(barcode.getBarcode())) {
String bs = getUuid();
......
......@@ -282,7 +282,7 @@ public class BoxChartController extends BaseController {
List<SolderInventoryItem> results = Lists.newArrayList();
for (InventoryItem inventoryItem : storageTypeInventory.values()) {
String partNumber = inventoryItem.getPartNumber();
Component component = componentManager.findByPartNumber(partNumber);
Component component = componentManager.findByPartNumber(partNumber, "");
int minStoreNum = component.getMinStoreNum();
int maxStoreNum = component.getMaxStoreNum();
......
......@@ -106,7 +106,7 @@ public class ComponentUpdateController extends BaseUpdateController{
if(Strings.isNullOrEmpty(component.getFixtureNumber())){
throw new ValidateException("夹具编号不能为空");
}else {
Component fixture = componentmanager.findByPartNumber(component.getFixtureNumber());
Component fixture = componentmanager.findByPartNumber(component.getFixtureNumber(), null);
if(fixture == null){
throw new ValidateException("不存在编号为【"+component.getFixtureNumber()+"】的夹具");
}else{
......
......@@ -66,7 +66,7 @@ public class MesApiController extends BaseController {
log.info("收到 MES 的 数据同步信息"+Partnumber+"【"+w+"x"+h+"】");
Component c = componentManager.findByPartNumber(Partnumber);
Component c = componentManager.findByPartNumber(Partnumber, null);
if(c == null){
c = new Component();
}
......@@ -98,7 +98,7 @@ public class MesApiController extends BaseController {
String PARTNUMBER = checkParameter(request,"PN");
String QTY = checkParameter(request,"QTY");
log.info("收到条码同步信息:RI="+REEL_ID + " PN=" + PARTNUMBER + " QTY="+QTY);
Component c = componentManager.findByPartNumber(PARTNUMBER);
Component c = componentManager.findByPartNumber(PARTNUMBER, null);
if(c == null){
return "Error: 物料编号[" + PARTNUMBER + "]的档案不存在";
}
......
......@@ -181,6 +181,12 @@ public class QisdaApiController extends BaseController {
map.put("so", appendInfo.getSo());
bindReelInfos.add(map);
}
}else{
//无库存,返回Not Found
Map<String,String> map = new HashMap<>();
map.put("reelId", reelId);
map.put("so", "Not Found");
bindReelInfos.add(map);
}
}
} catch (Exception e) {
......@@ -935,17 +941,23 @@ public class QisdaApiController extends BaseController {
//缺料,查看是否有本工单,同PN的,如果有抢一个过来
//缺料,料架留空
Component c = componentManager.findByPartNumber(outItem.getPn());
if(c != null){
String shelfType = StorageConstants.SHEFL_TYPE.D;
boolean hasBigSizePn = false;
List<Component> pnList = componentManager.listByPn(outItem.getPn());
for (Component c : pnList) {
if(c.getPlateSize() > 7 || c.getHeight() > 12){
shelfType = StorageConstants.SHEFL_TYPE.C;
hasBigSizePn = true;
break;
}
log.info(outItem.getSlotlocation() + "["+outItem.getPn()+"]缺料,保留"+shelfType+"类型架位");
InquiryShelfBean.addEmptyLoc(outItem, shelfType);
}else{
}
if(pnList.isEmpty()){
log.error("未找到物料["+outItem.getPn()+"]的尺寸信息,保留C类型架位");
InquiryShelfBean.addEmptyLoc(outItem, StorageConstants.SHEFL_TYPE.C);
}else if(hasBigSizePn){
log.info(outItem.getSlotlocation() + "["+outItem.getPn()+"]缺料,且PN数据中有大料,保留C类型架位");
InquiryShelfBean.addEmptyLoc(outItem, StorageConstants.SHEFL_TYPE.C);
}else {
log.info(outItem.getSlotlocation() + "["+outItem.getPn()+"]缺料,保留D类型架位");
InquiryShelfBean.addEmptyLoc(outItem, StorageConstants.SHEFL_TYPE.D);
}
}
return tasks;
......
......@@ -1854,10 +1854,10 @@ public class TaskService implements ITaskService {
barcode.setCheckOutDate(null,"");
barcode.setPosName(task.getPosName());
barcode.setInitialAmount(barcode.getAmount());
if(Strings.isNullOrEmpty(barcode.getProviderNumber())){//补上供应商编号
Component component = componentManager.findByPartNumber(barcode.getPartNumber());
barcode.setProviderNumber(component.getProviderNumber());
}
// if(Strings.isNullOrEmpty(barcode.getProviderNumber())){//补上供应商编号
// Component component = componentManager.findByPartNumber(barcode.getPartNumber());
// barcode.setProviderNumber(component.getProviderNumber());
// }
// AppendInfo appendInfo = barcode.getAppendInfo();
// appendInfo.setDnNo(task.getSourceName());
......
......@@ -112,7 +112,7 @@
<!--/span-->
<div class="col-md-6">
<div class="form-group">
<label class="control-label col-md-3"><fmt:message key="component.providerNumber"/>
<label class="control-label col-md-3"><fmt:message key="component.provider"/>
:</label>
<div class="col-md-9">
......@@ -290,12 +290,12 @@
$(this).attr("placeholder", codeValue);
$(this).val("");
$.post("${ctx}/service/store/resolveBarcode", {code: codeValue}, function (data) {
if (data.error == null) {
if (data.valid) {
$("#barcode").text(data.barcode.barcode);
$("#partNumber").text(data.barcode.partNumber);
$("#batch").text(data.barcode.batch);
$("#amount").text(data.barcode.amount);
$("#providerNumber").text(data.barcode.providerNumber);
$("#providerNumber").text(data.barcode.provider);
$("#modifyNum").focus();
} else {
printErrorMessage(data.error);
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!