Commit 9c89f8fc LN
2 个父辈 d2cb2903 3108495e
...@@ -204,7 +204,7 @@ public class CodeResolve { ...@@ -204,7 +204,7 @@ public class CodeResolve {
} }
} }
} }
if(barcodeFromRule.getExpireDate()!=null &&barcode.getExpireDate()==null){ if(barcodeFromRule.getExpireDate()!=null /*&&barcode.getExpireDate()==null*/){
barcode.setExpireDate(barcodeFromRule.getExpireDate()); barcode.setExpireDate(barcodeFromRule.getExpireDate());
log.info("重新设置"+codeBeanFromRule.getCodeStr()+"的过期日期"); log.info("重新设置"+codeBeanFromRule.getCodeStr()+"的过期日期");
needUpdate = true; needUpdate = true;
......
...@@ -274,6 +274,7 @@ public class LiteOrderCache { ...@@ -274,6 +274,7 @@ public class LiteOrderCache {
liteOrderItem.setOutReelCount(liteOrderItem.getOutReelCount() + 1); liteOrderItem.setOutReelCount(liteOrderItem.getOutReelCount() + 1);
liteOrderItem.setTotalOutNum(liteOrderItem.getTotalOutNum()+task.getNum()); liteOrderItem.setTotalOutNum(liteOrderItem.getTotalOutNum()+task.getNum());
liteOrderItem.setTotalOutReelCount(liteOrderItem.getTotalOutReelCount()+1); liteOrderItem.setTotalOutReelCount(liteOrderItem.getTotalOutReelCount()+1);
liteOrderItem.setBarcodeStr(task.getBarcode(),task.getNum());
liteOrderItem = liteOrderItemManager.save(liteOrderItem); liteOrderItem = liteOrderItemManager.save(liteOrderItem);
// Barcode barcode = barcodeManager.findByBarcode(task.getBarcode()); // Barcode barcode = barcodeManager.findByBarcode(task.getBarcode());
// if (barcode != null) { // if (barcode != null) {
......
...@@ -370,6 +370,7 @@ public class OrderController { ...@@ -370,6 +370,7 @@ public class OrderController {
if (liteOrder != null) { if (liteOrder != null) {
List<List<String>> header = new ArrayList<>(); List<List<String>> header = new ArrayList<>();
Locale locale = request.getLocale(); Locale locale = request.getLocale();
header.add(Lists.newArrayList(MessageUtils.getText("smfcore.storagePos.lockName",locale,"工单号")));
header.add(Lists.newArrayList(MessageUtils.getText("smfcore.order.ri",locale,"RI"))); header.add(Lists.newArrayList(MessageUtils.getText("smfcore.order.ri",locale,"RI")));
header.add(Lists.newArrayList(MessageUtils.getText("smfcore.order.pn",locale,"PN"))); header.add(Lists.newArrayList(MessageUtils.getText("smfcore.order.pn",locale,"PN")));
header.add(Lists.newArrayList(MessageUtils.getText("smfcore.order.MPN",locale,"MPN"))); header.add(Lists.newArrayList(MessageUtils.getText("smfcore.order.MPN",locale,"MPN")));
...@@ -380,6 +381,7 @@ public class OrderController { ...@@ -380,6 +381,7 @@ public class OrderController {
header.add(Lists.newArrayList(MessageUtils.getText("smfcore.order.outReelCount",locale,"已出盘数"))); header.add(Lists.newArrayList(MessageUtils.getText("smfcore.order.outReelCount",locale,"已出盘数")));
header.add(Lists.newArrayList(MessageUtils.getText("smfcore.order.needNum",locale,"需求数量"))); header.add(Lists.newArrayList(MessageUtils.getText("smfcore.order.needNum",locale,"需求数量")));
header.add(Lists.newArrayList(MessageUtils.getText("smfcore.order.outNum",locale,"已出数量"))); header.add(Lists.newArrayList(MessageUtils.getText("smfcore.order.outNum",locale,"已出数量")));
header.add(Lists.newArrayList(MessageUtils.getText("smfcore.order.out.barcode",locale,"出库物料详情")));
//附加字段 //附加字段
OrderSetting orderSetting=dataCache.getOrderSetting(); OrderSetting orderSetting=dataCache.getOrderSetting();
...@@ -397,6 +399,7 @@ public class OrderController { ...@@ -397,6 +399,7 @@ public class OrderController {
for (LiteOrderItem orderItem : liteOrder.getOrderItems()) { for (LiteOrderItem orderItem : liteOrder.getOrderItems()) {
List<Object> data = new ArrayList<>(); List<Object> data = new ArrayList<>();
data.add(orderNo);
data.add(orderItem.getRi()); data.add(orderItem.getRi());
data.add(orderItem.getPn()); data.add(orderItem.getPn());
data.add(orderItem.getMpn()); data.add(orderItem.getMpn());
...@@ -407,6 +410,7 @@ public class OrderController { ...@@ -407,6 +410,7 @@ public class OrderController {
data.add(orderItem.getOutReelCount()); data.add(orderItem.getOutReelCount());
data.add(orderItem.getNeedNum()); data.add(orderItem.getNeedNum());
data.add(orderItem.getOutNum()); data.add(orderItem.getOutNum());
data.add(orderItem.getBarcodeStr());
//附加字段 //附加字段
if(orderSetting.getAppendData()!=null&&orderSetting.getAppendData().size()>0){ if(orderSetting.getAppendData()!=null&&orderSetting.getAppendData().size()>0){
for (String key : for (String key :
......
package com.neotel.smfcore.core.order.service.po; package com.neotel.smfcore.core.order.service.po;
import com.neotel.smfcore.common.base.BasePo; import com.neotel.smfcore.common.base.BasePo;
import com.neotel.smfcore.common.utils.StringUtils;
import lombok.Data; import lombok.Data;
import org.springframework.data.annotation.Transient; import org.springframework.data.annotation.Transient;
import org.springframework.data.mongodb.core.index.Indexed; import org.springframework.data.mongodb.core.index.Indexed;
...@@ -93,6 +94,11 @@ public class LiteOrderItem extends BasePo implements Serializable ,Comparable<Li ...@@ -93,6 +94,11 @@ public class LiteOrderItem extends BasePo implements Serializable ,Comparable<Li
/** /**
* 已出的barcode信息
*/
private String barcodeStr = "";
/**
* 自定义的附加字段,key=字段名,value=值 * 自定义的附加字段,key=字段名,value=值
*/ */
public Map<String,String> appendData = new HashMap<>(); public Map<String,String> appendData = new HashMap<>();
...@@ -115,4 +121,12 @@ public class LiteOrderItem extends BasePo implements Serializable ,Comparable<Li ...@@ -115,4 +121,12 @@ public class LiteOrderItem extends BasePo implements Serializable ,Comparable<Li
} }
return this.getId().compareTo(o.getId()); return this.getId().compareTo(o.getId());
} }
public void setBarcodeStr(String barcodeStr, int amount) {
if (StringUtils.isNotBlank((this.barcodeStr))) {
this.barcodeStr = this.barcodeStr + "\n" + barcodeStr + ":" + amount;
} else {
this.barcodeStr = barcodeStr + ":" + amount;
}
}
} }
package com.neotel.smfcore.core.storage.enums; package com.neotel.smfcore.core.storage.enums;
/** /**
* 出库策略 效率优先/严格先进先出/尾料优先/先过期先出/先生产先出 * 出库策略 效率优先/严格先进先出/尾料优先/先过期先出/先生产先出/批次先出
* Created by sunke on 2021/7/14. * Created by sunke on 2021/7/14.
*/ */
public enum CHECKOUT_TYPE { public enum CHECKOUT_TYPE {
...@@ -24,5 +24,10 @@ public enum CHECKOUT_TYPE { ...@@ -24,5 +24,10 @@ public enum CHECKOUT_TYPE {
/** /**
* 生产日期优先 * 生产日期优先
*/ */
PRODUCE_DATE; PRODUCE_DATE,
/**
* 批次优先
*/
BATCH_FIRST;
} }
...@@ -343,6 +343,9 @@ public class StoragePosManagerImpl implements IStoragePosManager { ...@@ -343,6 +343,9 @@ public class StoragePosManagerImpl implements IStoragePosManager {
}else if(CHECKOUT_TYPE.PRODUCE_DATE.equals(checkoutType)){ }else if(CHECKOUT_TYPE.PRODUCE_DATE.equals(checkoutType)){
//先生产先出 //先生产先出
sort = Sort.by(Sort.Direction.ASC, "barcode.amount","barcode.produceDate", "canCheckOutTime"); sort = Sort.by(Sort.Direction.ASC, "barcode.amount","barcode.produceDate", "canCheckOutTime");
}else if(CHECKOUT_TYPE.BATCH_FIRST.equals(checkoutType)){
//批次优先
sort = Sort.by(Sort.Direction.ASC, "barcode.batch","barcode.produceDate", "canCheckOutTime");
}else{//效率优先 }else{//效率优先
sort = Sort.by(Sort.Direction.ASC, "canCheckOutTime", "createDate"); sort = Sort.by(Sort.Direction.ASC, "canCheckOutTime", "createDate");
} }
......
...@@ -363,3 +363,4 @@ smfcore.selfAudit.hasOutTask=\u5E93\u4F4D[{0}]\u5DF2\u6709\u51FA\u5E93\u4EFB\u52 ...@@ -363,3 +363,4 @@ smfcore.selfAudit.hasOutTask=\u5E93\u4F4D[{0}]\u5DF2\u6709\u51FA\u5E93\u4EFB\u52
#smfclient.loadMaterialFailed=loading material failed:{0} #smfclient.loadMaterialFailed=loading material failed:{0}
#smfclient.checkingMaterialOk=checking material is ok:{0} #smfclient.checkingMaterialOk=checking material is ok:{0}
#smfclient.checkNg=checking material is ng:{0} #smfclient.checkNg=checking material is ng:{0}
smfcore.order.out.barcode=\u51FA\u5E93\u7269\u6599\u8BE6\u60C5
\ No newline at end of file \ No newline at end of file
...@@ -352,3 +352,4 @@ smfcore.mesApi.loginCheck.error=MES Login error\uFF1A{0} ...@@ -352,3 +352,4 @@ smfcore.mesApi.loginCheck.error=MES Login error\uFF1A{0}
smfcore.lockMaterials=Locking Materials smfcore.lockMaterials=Locking Materials
smfcore.storage.error.posNameExist=Bin number already exists in other bins\uFF1A{0} smfcore.storage.error.posNameExist=Bin number already exists in other bins\uFF1A{0}
smfcore.selfAudit.hasOutTask=The location [{0}] already has a release task smfcore.selfAudit.hasOutTask=The location [{0}] already has a release task
smfcore.order.out.barcode=Out Barcode Detail
\ No newline at end of file \ No newline at end of file
...@@ -349,3 +349,4 @@ smfcore.mesApi.loginCheck.error=MES\u767B\u9646\u9A8C\u8BC1\u9519\u8BEF\uFF1A{0} ...@@ -349,3 +349,4 @@ smfcore.mesApi.loginCheck.error=MES\u767B\u9646\u9A8C\u8BC1\u9519\u8BEF\uFF1A{0}
smfcore.lockMaterials=\u9501\u5B9A\u7269\u6599 smfcore.lockMaterials=\u9501\u5B9A\u7269\u6599
smfcore.storage.error.posNameExist=\u5E93\u4F4D\u53F7\u5DF2\u5728\u5176\u4ED6\u6599\u4ED3\u5B58\u5728\uFF1A{0} smfcore.storage.error.posNameExist=\u5E93\u4F4D\u53F7\u5DF2\u5728\u5176\u4ED6\u6599\u4ED3\u5B58\u5728\uFF1A{0}
smfcore.selfAudit.hasOutTask=\u5E93\u4F4D[{0}]\u5DF2\u6709\u51FA\u5E93\u4EFB\u52A1 smfcore.selfAudit.hasOutTask=\u5E93\u4F4D[{0}]\u5DF2\u6709\u51FA\u5E93\u4EFB\u52A1
smfcore.order.out.barcode=\u51FA\u5EAB\u54C1\u76EE\u306E\u8A73\u7D30
\ No newline at end of file \ No newline at end of file
...@@ -349,3 +349,4 @@ smfcore.mesApi.loginCheck.error=MES\u767B\u9646\u9A8C\u8BC1\u9519\u8BEF\uFF1A{0} ...@@ -349,3 +349,4 @@ smfcore.mesApi.loginCheck.error=MES\u767B\u9646\u9A8C\u8BC1\u9519\u8BEF\uFF1A{0}
smfcore.lockMaterials=\u9501\u5B9A\u7269\u6599 smfcore.lockMaterials=\u9501\u5B9A\u7269\u6599
smfcore.storage.error.posNameExist=\u5E93\u4F4D\u53F7\u5DF2\u5728\u5176\u4ED6\u6599\u4ED3\u5B58\u5728\uFF1A{0} smfcore.storage.error.posNameExist=\u5E93\u4F4D\u53F7\u5DF2\u5728\u5176\u4ED6\u6599\u4ED3\u5B58\u5728\uFF1A{0}
smfcore.selfAudit.hasOutTask=\u5E93\u4F4D[{0}]\u5DF2\u6709\u51FA\u5E93\u4EFB\u52A1 smfcore.selfAudit.hasOutTask=\u5E93\u4F4D[{0}]\u5DF2\u6709\u51FA\u5E93\u4EFB\u52A1
smfcore.order.out.barcode=\u51FA\u5E93\u7269\u6599\u8BE6\u60C5
\ No newline at end of file \ No newline at end of file
...@@ -350,3 +350,4 @@ smfcore.mesApi.loginCheck.error=MES\u767B\u9678\u9A57\u8B49\u932F\u8AA4\uFF1A{0} ...@@ -350,3 +350,4 @@ smfcore.mesApi.loginCheck.error=MES\u767B\u9678\u9A57\u8B49\u932F\u8AA4\uFF1A{0}
smfcore.lockMaterials=\u9396\u5B9A\u7269\u6599 smfcore.lockMaterials=\u9396\u5B9A\u7269\u6599
smfcore.storage.error.posNameExist=\u5EAB\u4F4D\u865F\u5DF2\u5728\u5176\u4ED6\u6599\u5009\u5B58\u5728\uFF1A{0} smfcore.storage.error.posNameExist=\u5EAB\u4F4D\u865F\u5DF2\u5728\u5176\u4ED6\u6599\u5009\u5B58\u5728\uFF1A{0}
smfcore.selfAudit.hasOutTask=\u5EAB\u4F4D[{0}]\u5DF2\u6709\u51FA\u5EAB\u4EFB\u52D9 smfcore.selfAudit.hasOutTask=\u5EAB\u4F4D[{0}]\u5DF2\u6709\u51FA\u5EAB\u4EFB\u52D9
smfcore.order.out.barcode=\u51FA\u5EAB\u7269\u6599\u8A73\u60C5
\ No newline at end of file \ No newline at end of file
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!