Commit 93ddd934 sunke

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

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