diff --git a/src/main/java/com/dev/swms/server/model/base/Location.java b/src/main/java/com/dev/swms/server/model/base/Location.java
index b74b9b3..ae0164f 100644
--- a/src/main/java/com/dev/swms/server/model/base/Location.java
+++ b/src/main/java/com/dev/swms/server/model/base/Location.java
@@ -38,6 +38,7 @@ public class Location extends VersionalEntity {
private boolean mixItem = false;
/** 是否允许批次混放 */
private boolean mixLot = false;
+
/** 容器 */
private Container container;
diff --git a/src/main/java/com/dev/swms/server/model/base/LotInfo.java b/src/main/java/com/dev/swms/server/model/base/LotInfo.java
index b1e2374..ad0ffe2 100644
--- a/src/main/java/com/dev/swms/server/model/base/LotInfo.java
+++ b/src/main/java/com/dev/swms/server/model/base/LotInfo.java
@@ -49,10 +49,11 @@ public class LotInfo extends DomainModel implements ApplicationContextAware{
private Long propL2;//
private Long propL3;//
private String propLC1;//OA暂存库存标记
- private String propLC2;//成品标记
- private String propLC3;//元值
+ private String propLC2;//成品标记/扩展2
+ private String propLC3;//元值/扩展1
private String propLC4;//币种
-
+ private String propLC5;//用途
+ private String propLC6;//
private static ApplicationContext ac;
private CommonDao commonDao;
@@ -86,6 +87,7 @@ public class LotInfo extends DomainModel implements ApplicationContextAware{
this.propL1 = propL1;
this.propL2 = propL2;
this.propL3 = propL3;
+
}
public LotInfo(){
@@ -128,6 +130,23 @@ public class LotInfo extends DomainModel implements ApplicationContextAware{
}
}
+
+ public String getPropLC5() {
+ return propLC5;
+ }
+
+ public void setPropLC5(String propLC5) {
+ this.propLC5 = propLC5;
+ }
+
+ public String getPropLC6() {
+ return propLC6;
+ }
+
+ public void setPropLC6(String propLC6) {
+ this.propLC6 = propLC6;
+ }
+
public double getPropN4() {
return propN4;
}
diff --git a/src/main/java/com/dev/swms/server/model/base/itemKey.hbm.xml b/src/main/java/com/dev/swms/server/model/base/itemKey.hbm.xml
index bd9db92..e7321a2 100644
--- a/src/main/java/com/dev/swms/server/model/base/itemKey.hbm.xml
+++ b/src/main/java/com/dev/swms/server/model/base/itemKey.hbm.xml
@@ -81,6 +81,10 @@
length="250" />
+
+
diff --git a/src/main/java/com/dev/swms/server/model/inventory/InventoryLog.java b/src/main/java/com/dev/swms/server/model/inventory/InventoryLog.java
index ba34345..77644d3 100644
--- a/src/main/java/com/dev/swms/server/model/inventory/InventoryLog.java
+++ b/src/main/java/com/dev/swms/server/model/inventory/InventoryLog.java
@@ -62,8 +62,8 @@ public class InventoryLog extends Entity {
private String serial;//序列号
private String endRegion;//-工作站
private String strbill1;//移动类型
- private String strbill2;//-
- private String strbill3;//
+ private String strbill2;//-LOC
+ private String strbill3;//工厂
public String getStrbill1() {
diff --git a/src/main/java/com/dev/swms/server/model/inventory/InventoryView.java b/src/main/java/com/dev/swms/server/model/inventory/InventoryView.java
index f58e699..4b9b146 100644
--- a/src/main/java/com/dev/swms/server/model/inventory/InventoryView.java
+++ b/src/main/java/com/dev/swms/server/model/inventory/InventoryView.java
@@ -29,6 +29,11 @@ public class InventoryView extends Entity{
private String propC7;//
private String propC8;//
private String propC9;//工厂
+ private String propLC1;//OA暂存库存标记
+ private String propLC2;//成品标记/扩展2
+ private String propLC3;//元值/扩展1
+ private String propLC4;//币种
+ private String propLC5;//用途
private String soi;//
private Date propD1;//生产日期
private Date propD2;//失效日期
@@ -62,6 +67,36 @@ public class InventoryView extends Entity{
+ public String getPropLC1() {
+ return propLC1;
+ }
+ public void setPropLC1(String propLC1) {
+ this.propLC1 = propLC1;
+ }
+ public String getPropLC2() {
+ return propLC2;
+ }
+ public void setPropLC2(String propLC2) {
+ this.propLC2 = propLC2;
+ }
+ public String getPropLC3() {
+ return propLC3;
+ }
+ public void setPropLC3(String propLC3) {
+ this.propLC3 = propLC3;
+ }
+ public String getPropLC4() {
+ return propLC4;
+ }
+ public void setPropLC4(String propLC4) {
+ this.propLC4 = propLC4;
+ }
+ public String getPropLC5() {
+ return propLC5;
+ }
+ public void setPropLC5(String propLC5) {
+ this.propLC5 = propLC5;
+ }
public Date getPropD3() {
return propD3;
}
diff --git a/src/main/java/com/dev/swms/server/model/inventory/inventoryView.hbm.xml b/src/main/java/com/dev/swms/server/model/inventory/inventoryView.hbm.xml
index 3d716f8..cb4a798 100644
--- a/src/main/java/com/dev/swms/server/model/inventory/inventoryView.hbm.xml
+++ b/src/main/java/com/dev/swms/server/model/inventory/inventoryView.hbm.xml
@@ -23,6 +23,11 @@
+
+
+
+
+
diff --git a/src/main/java/com/dev/swms/server/model/receiving/asnDetail.hbm.xml b/src/main/java/com/dev/swms/server/model/receiving/asnDetail.hbm.xml
index 3573bbd..8af6d0c 100644
--- a/src/main/java/com/dev/swms/server/model/receiving/asnDetail.hbm.xml
+++ b/src/main/java/com/dev/swms/server/model/receiving/asnDetail.hbm.xml
@@ -62,6 +62,10 @@
length="250" />
+
+
diff --git a/src/main/java/com/dev/swms/server/service/base/ImportFileManager.java b/src/main/java/com/dev/swms/server/service/base/ImportFileManager.java
index 542373a..b3fd9a4 100644
--- a/src/main/java/com/dev/swms/server/service/base/ImportFileManager.java
+++ b/src/main/java/com/dev/swms/server/service/base/ImportFileManager.java
@@ -63,4 +63,11 @@ public interface ImportFileManager extends BaseManager{
/**华工高理_客户导入*/
@Transactional
void importCustomer(File file);
+
+ /**
+ * 导入工单明细
+ * @param file
+ */
+ @Transactional
+ void importOutOrderDetail(File file);
}
diff --git a/src/main/java/com/dev/swms/server/service/base/pojo/DefaultAgvTaskManager.java b/src/main/java/com/dev/swms/server/service/base/pojo/DefaultAgvTaskManager.java
index 6c08354..aedd797 100644
--- a/src/main/java/com/dev/swms/server/service/base/pojo/DefaultAgvTaskManager.java
+++ b/src/main/java/com/dev/swms/server/service/base/pojo/DefaultAgvTaskManager.java
@@ -2305,6 +2305,9 @@ public class DefaultAgvTaskManager extends DefaultBaseManager implements AgvTask
boolean flag=false;
AgvTask agv=commonDao.load(AgvTask.class, id);
if(agv.isBeIssue()&&agv.getStatus().equals(STATUS.ATCALL)) {
+ if(agv.getJobPriorityType()>0&&agv.getJobPriority()>200) {
+ break;
+ }
agv.setJobPriorityType(1L);
agv.setJobPriority(h);
String str = interfaceReqManager.doWmsReqAgv(ApiURL.eoutAGV,agv.yxjAGVJSON(agv),agv.getRobotJobId());
diff --git a/src/main/java/com/dev/swms/server/service/base/pojo/DefaultImportFileManager.java b/src/main/java/com/dev/swms/server/service/base/pojo/DefaultImportFileManager.java
index 587f866..9879133 100644
--- a/src/main/java/com/dev/swms/server/service/base/pojo/DefaultImportFileManager.java
+++ b/src/main/java/com/dev/swms/server/service/base/pojo/DefaultImportFileManager.java
@@ -1741,5 +1741,121 @@ public class DefaultImportFileManager extends DefaultBaseManager implements Impo
e.printStackTrace();
}
}
-
+
+ @Override
+ public void importOutOrderDetail(File file) {
+ try {
+ Workbook workbook = Workbook.getWorkbook(file);
+ Sheet sheet = workbook.getSheet(0);// 得到excel第一页的内容
+ /* 查询单据类型*/
+ List billTypes=commonDao.findByQuery(
+ "from BillType bt where code='YINVENTORY' ");
+ Warehouse warehouse=this.load(Warehouse.class, 1l);
+ for (int i = 1; i resultList = commonDao.findByQuery(" from PickTicket pt where pt.code=:RQORD and "
+ + "pt.status='OPEN' ",new String[] { "RQORD"},new Object[] {code.trim()});
+ if (resultList.size()>0) {
+ pickTicket=resultList.get(0);
+ }else {
+ /* 新建工单*/
+ pickTicket.setSourceType(sourceType);
+ pickTicket.setCode(code);
+ pickTicket.setCollectNo(code);
+ pickTicket.setRelatedBill2(code);
+ try {
+ pickTicket.setOrderDate(sdf.parse(orderDate1));
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ pickTicket.setStatus(status);
+ pickTicket.setPackageQuantity(0);
+ pickTicket.setBOLQuantity(0);
+ pickTicket.setOrderQuantity(0);
+ pickTicket.setAllocatedQuantity(0);
+ pickTicket.setPickedQuantity(0);
+ pickTicket.setShippedQuantity(0);
+ if(billTypes.size()>0) {
+ pickTicket.setBillType(billTypes.get(0));
+ }
+ pickTicket.setWorkerName1(lotPropC9);
+ pickTicket.setUpdateTime(new Date());
+ pickTicket.setWarehouse(warehouse);
+ commonDao.store(pickTicket);
+ /*写入工单集合*/
+ }
+ Item item=null;
+ List- itemList=commonDao.findByQuery(
+ "from Item i where i.code=:code",
+ new String[] { "code" }, new Object[] { itemCode});
+ if (itemList.size()>0) {
+ item=itemList.get(0);
+ }else {
+ break;
+ }
+ PickTicketDetail pickTicketDetail=new PickTicketDetail();
+ List pickTicketDetailList=commonDao.findByQuery(
+ "from PickTicketDetail ptd where ptd.pickTicket.id=:ptId and ptd.lineNumber=:lineNumber and ptd.item.code=:itemCode",
+ new String[] { "ptId","lineNumber","itemCode" }, new Object[] { pickTicket.getId(),lineNumber,itemCode });
+ if (pickTicketDetailList.size()>0) {
+ /*重复明细*/
+ pickTicketDetail=pickTicketDetailList.get(0);
+ pickTicket.setOrderQuantity(pickTicket.getOrderQuantity()+Double.valueOf(orderQuantity)-pickTicketDetail.getOrderQuantity());
+ commonDao.store(pickTicket);
+ }else {
+ /* 新增明细*/
+ pickTicket.setOrderQuantity(pickTicket.getOrderQuantity()+Double.valueOf(orderQuantity));
+ pickTicket.setPackageQuantity(pickTicket.getPackageQuantity()+1);
+ commonDao.store(pickTicket);
+ }
+ pickTicketDetail.setItem(item);
+ pickTicketDetail.setLineNumber(lineNumber);
+ pickTicketDetail.setPickTicket(pickTicket);
+ pickTicketDetail.getLineNumber();
+// pickTicketDetail.setSOI(SOI);
+ pickTicketDetail.setOrderQuantity(Double.valueOf(orderQuantity));
+ pickTicketDetail.setAllocatedQuantity(0);
+ pickTicketDetail.setPickedQuantity(0);
+ NewLotInfo newLotInfo=new NewLotInfo();
+ newLotInfo.setPropC2(lotPropC2);
+ newLotInfo.setPropC9(lotPropC9);
+ newLotInfo.setPropC3(lotPropC3);
+ newLotInfo.setPropC5(lotPropC5);
+ pickTicketDetail.setNewLotInfo(newLotInfo);
+ pickTicketDetail.setStrBill9(strBill9);
+ pickTicketDetail.setLocType(locType);
+ pickTicketDetail.setStrBill14(barCode);
+ commonDao.store(pickTicketDetail);
+ }
+ } catch (BiffException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (IOException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
}
diff --git a/src/main/java/com/dev/swms/server/service/base/pojo/DefaultItemManager.java b/src/main/java/com/dev/swms/server/service/base/pojo/DefaultItemManager.java
index 25a8288..b7db53a 100644
--- a/src/main/java/com/dev/swms/server/service/base/pojo/DefaultItemManager.java
+++ b/src/main/java/com/dev/swms/server/service/base/pojo/DefaultItemManager.java
@@ -391,6 +391,9 @@ public class DefaultItemManager extends DefaultBaseManager implements
dbKey.getLotInfo().setPropLC1(itemKey.getLotInfo().getPropLC1());
dbKey.getLotInfo().setPropLC2(itemKey.getLotInfo().getPropLC2());
dbKey.getLotInfo().setPropLC3(itemKey.getLotInfo().getPropLC3());
+ dbKey.getLotInfo().setPropLC4(itemKey.getLotInfo().getPropLC4());
+ dbKey.getLotInfo().setPropLC5(itemKey.getLotInfo().getPropLC5());
+ dbKey.getLotInfo().setPropLC6(itemKey.getLotInfo().getPropLC6());
try {
dbKey.getLotInfo().setPropD1(itemKey.getLotInfo().getPropD1()==null ? null : sdf.parse(sdf.format(itemKey.getLotInfo().getPropD1())));
dbKey.getLotInfo().setPropD2(itemKey.getLotInfo().getPropD2()==null ? null : sdf.parse(sdf.format(itemKey.getLotInfo().getPropD2())));
@@ -527,6 +530,24 @@ public class DefaultItemManager extends DefaultBaseManager implements
if ("".equals(lotInfo.getPropC9())) {
lotInfo.setPropC9(null);
}
+ if ("".equals(lotInfo.getPropLC1())) {
+ lotInfo.setPropLC1(null);
+ }
+ if ("".equals(lotInfo.getPropLC2())) {
+ lotInfo.setPropLC2(null);
+ }
+ if ("".equals(lotInfo.getPropLC3())) {
+ lotInfo.setPropLC3(null);
+ }
+ if ("".equals(lotInfo.getPropLC4())) {
+ lotInfo.setPropLC4(null);
+ }
+ if ("".equals(lotInfo.getPropLC5())) {
+ lotInfo.setPropLC5(null);
+ }
+ if ("".equals(lotInfo.getPropLC6())) {
+ lotInfo.setPropLC6(null);
+ }
//保质期处理
/* if (item.getDefaultLotRule() != null && item.getDefaultLotRule().getLotRuleComponent().getTrackPropD1()) {
if(lotInfo.getPropD1()==null){
@@ -537,13 +558,13 @@ public class DefaultItemManager extends DefaultBaseManager implements
}
}*/
//写入供应商的名称到lotInfo
- if (lotInfo.getPropL1() != null && lotInfo.getPropL1() != 0) {
- Structure supplier = this.commonDao.load(Structure.class, lotInfo.getPropL1());
- lotInfo.setPropLC1(supplier.getName());
- } else {
- lotInfo.setPropL1(null);
- lotInfo.setPropLC1(null);
- }
+// if (lotInfo.getPropL1() != null && lotInfo.getPropL1() != 0) {
+// Structure supplier = this.commonDao.load(Structure.class, lotInfo.getPropL1());
+// lotInfo.setPropLC1(supplier.getName());
+// } else {
+// lotInfo.setPropL1(null);
+// lotInfo.setPropLC1(null);
+// }
//校验批次属性是否符合管理要求
/*if (verifyLot) {
diff --git a/src/main/java/com/dev/swms/server/service/count/pojo/DefaultCountPlanManager.java b/src/main/java/com/dev/swms/server/service/count/pojo/DefaultCountPlanManager.java
index 6f49e72..c9d47d7 100644
--- a/src/main/java/com/dev/swms/server/service/count/pojo/DefaultCountPlanManager.java
+++ b/src/main/java/com/dev/swms/server/service/count/pojo/DefaultCountPlanManager.java
@@ -1135,7 +1135,7 @@ public class DefaultCountPlanManager extends DefaultBaseManager implements
}else {
//料号库位盘点任务
String hql=" from Inventory inv where inv.queuedQuantity=0 and inv.quantity>0 "
- + "and inv.status='已入库' and i.itemKey.item.id<>2254883 ";
+ + "and inv.status='已入库' and inv.itemKey.item.id<>2254883 ";
//盘点等级
if(countPlan.getCountCode()!=null&&!countPlan.getCountCode().equals("")) {
String code="";
diff --git a/src/main/java/com/dev/swms/server/service/interfaceLog/pojo/DefaultInterfaceReqManager.java b/src/main/java/com/dev/swms/server/service/interfaceLog/pojo/DefaultInterfaceReqManager.java
index b43372b..0837f0a 100644
--- a/src/main/java/com/dev/swms/server/service/interfaceLog/pojo/DefaultInterfaceReqManager.java
+++ b/src/main/java/com/dev/swms/server/service/interfaceLog/pojo/DefaultInterfaceReqManager.java
@@ -1194,6 +1194,7 @@ public class DefaultInterfaceReqManager extends DefaultBaseManager implements In
if(pickTicket!=null&&pickTicket.getCode().indexOf("CP")==-1
&&((pickTicket.getSourceId()!=null&&pickTicket.getSourceId().indexOf("OT")== -1)
|| pickTicket.getSourceId()==null )) {
+
String bs=doWmsReqSap(getPropertiesParm("ldxt.SAP")+ApiURL.doWmsReqSap, jsonobj.toString(),"数据"+pickTicket.getCode());
if(bs!=null&&!bs.equals("")&&OUTPUT(bs)) {
diff --git a/src/main/java/com/dev/swms/server/service/interfaceLog/pojo/DefaultInterfaceRespManager.java b/src/main/java/com/dev/swms/server/service/interfaceLog/pojo/DefaultInterfaceRespManager.java
index a7b7ee1..2e27437 100644
--- a/src/main/java/com/dev/swms/server/service/interfaceLog/pojo/DefaultInterfaceRespManager.java
+++ b/src/main/java/com/dev/swms/server/service/interfaceLog/pojo/DefaultInterfaceRespManager.java
@@ -1450,7 +1450,7 @@ public class DefaultInterfaceRespManager extends DefaultBaseManager implements I
lotInfo.setPropC9(company);
lotInfo.setPropLC3(metaValue);
lotInfo.setPropLC4(currencyType);
-
+ lotInfo.setPropLC5(USAGE);//用途
asnDetail.setExpectedQuantity(quantity);//订单数量
asnDetail.setItem(item);//物料描述(货品)(物料料号)
asnDetail.setLotInfo(lotInfo);
@@ -1779,7 +1779,7 @@ public class DefaultInterfaceRespManager extends DefaultBaseManager implements I
String WAERS=asn.has("WAERS") ? asn.getString("WAERS") : "";//货币单位
String MENGE=asn.has("MENGE") ? asn.getString("MENGE") : "";//数量
String requisitioner=asn.has("requisitioner") ? asn.getString("requisitioner") : "";//工号
-
+ String USAGE=asn.has("USAGE")? asn.getString("USAGE"):"";//用途
List asns = commonDao.findByQuery(" from ASN asn where asn.code=:code ",
new String[] { "code"},new Object[] {PO});
ASN asndb=EntityFactory.getEntity(ASN.class);
@@ -2003,6 +2003,7 @@ public class DefaultInterfaceRespManager extends DefaultBaseManager implements I
lotInfo.setPropC5(propC5);
lotInfo.setPropC6(requisitioner);
lotInfo.setPropC7(requestor);
+
if(item.getFeeType()!=null&&item.getFeeType().equals("OA")&&
requisitioner!=null&&requisitioner.length()>0) {
List list= commonDao.findByQuery(" from Personnel p where p.number='"+requisitioner+"'");
@@ -2012,10 +2013,9 @@ public class DefaultInterfaceRespManager extends DefaultBaseManager implements I
lotInfo.setPropC7(p.getCode());
lotInfo.setPropC4(p.getBumen());
}
-
}
- lotInfo.setPropC9(WERKS);
-
+ lotInfo.setPropC9(WERKS);//工厂
+ lotInfo.setPropLC5(USAGE);//用途
lotInfo.setPropC1(pc1);
asnDetail.setLotInfo(lotInfo);
asnDetail.setAsn(asndb);
@@ -3018,7 +3018,7 @@ public class DefaultInterfaceRespManager extends DefaultBaseManager implements I
sb.append( "select max(inv.id) id,max(ik.PROP_C6) as PROP_C6,max(ik.PROP_C4) as PROP_C4,(CONVERT(VARCHAR(10),min(inv.STORAGE_DATE),120)) TACDA,"
+ " max(ik.PROP_C8),(CONVERT(VARCHAR(10),max(ik.PROP_D3),120)) as PROP_D3,ik.PROP_C9,max(i.NAME) iname,i.code icode,"
+ "max(i.UNIT) unit,sum(inv.QUANTITY) sum ,inv.status , max(ik.PROP_C7),(CONVERT(VARCHAR(10),min(inv.STORAGE_DATE),120)) as STORAGE_DATE"
- + " ,max(i.STR_EXTEND3) STR_EXTEND3,max(i.STR_EXTEND2) STR_EXTEND2"
+ + " ,max(i.STR_EXTEND3) STR_EXTEND3,max(i.STR_EXTEND2) STR_EXTEND2,max(ik.PROP_LC5) as PROP_LC5 "
+ " from INVENTORY inv "
+" left join ITEM_KEY ik on inv.ITEM_KEY_ID=ik.ID "
+" left join ITEM i on ik.ITEM_ID=i.ID "
@@ -3091,6 +3091,7 @@ public class DefaultInterfaceRespManager extends DefaultBaseManager implements I
item.put("unitPrice", 0);//单价
}
item.put("currencyType", inventory[15]+"");//单价币种
+ item.put("USAGE", inventory[16]+"");//用途
jsonA.add(item);
}
diff --git a/src/main/java/com/dev/swms/server/service/interfaceLog/pojo/DefaultQueryAppManager.java b/src/main/java/com/dev/swms/server/service/interfaceLog/pojo/DefaultQueryAppManager.java
index 4e834d7..def79c8 100644
--- a/src/main/java/com/dev/swms/server/service/interfaceLog/pojo/DefaultQueryAppManager.java
+++ b/src/main/java/com/dev/swms/server/service/interfaceLog/pojo/DefaultQueryAppManager.java
@@ -3591,14 +3591,12 @@ public class DefaultQueryAppManager extends DefaultBaseManager implements QueryA
@Override
- public JSONObject scanpickItemCode(String taskId,String jhItem,long userId,long warehouseId) {
+ public synchronized JSONObject scanpickItemCode(String taskId,String jhItem,long userId,long warehouseId) {
JSONObject resultJson = new JSONObject();
JSONObject obj = new JSONObject();
String status = "0";
String msg = "";
String data = "";
-
-
try {
if (userId > 0) {
@@ -5107,6 +5105,7 @@ public class DefaultQueryAppManager extends DefaultBaseManager implements QueryA
commonDao.store(newtask);
}else{
cancelAllcate(taskId, userId, warehouseId,false);
+ //取消分配
Task newtask=againAllcate(ptd, invId, quantity, endRegion,worker==null?"":worker.getName());
//发送AGV任务
if(wa.getId()==1766) {
diff --git a/src/main/java/com/dev/swms/server/service/picking/allocate/DefaultAutoAllocator.java b/src/main/java/com/dev/swms/server/service/picking/allocate/DefaultAutoAllocator.java
index 868aef3..c0fb3b1 100644
--- a/src/main/java/com/dev/swms/server/service/picking/allocate/DefaultAutoAllocator.java
+++ b/src/main/java/com/dev/swms/server/service/picking/allocate/DefaultAutoAllocator.java
@@ -2292,7 +2292,6 @@ public class DefaultAutoAllocator extends DefaultBaseManager implements AutoAllo
String hql1=" from Inventory i where i.itemKey.item.id=:id and i.location.type in('存货','不良品') "
+ "and i.status='已入库' and i.quantity-i.queuedQuantity>0 and i.counPlan is null "
+ " ";
-
//指定序列号
if(ptd.getStrBill14()!=null&&!ptd.getStrBill14().equals("")) {
hql1+=" and i.barCode='"+ptd.getStrBill14()+"'";
diff --git a/src/main/java/com/dev/swms/server/service/receiving/MoveDocManager.java b/src/main/java/com/dev/swms/server/service/receiving/MoveDocManager.java
index 7f6747e..0442f21 100644
--- a/src/main/java/com/dev/swms/server/service/receiving/MoveDocManager.java
+++ b/src/main/java/com/dev/swms/server/service/receiving/MoveDocManager.java
@@ -302,7 +302,8 @@ public interface MoveDocManager extends BaseManager {
/** 出空托*/
@Transactional
- void stockCk(Inventory inventory,String gzz);
+ void stockCk(String gzz,List invlist);
+
@Transactional
LibraryTask stockCk(Stock st,String gzzCode,String libraryTaskType,String relatedBill1,String classification,String relatedBill4);
diff --git a/src/main/java/com/dev/swms/server/service/receiving/pojo/DefaultMoveDocManager.java b/src/main/java/com/dev/swms/server/service/receiving/pojo/DefaultMoveDocManager.java
index e9ff065..5fb1453 100644
--- a/src/main/java/com/dev/swms/server/service/receiving/pojo/DefaultMoveDocManager.java
+++ b/src/main/java/com/dev/swms/server/service/receiving/pojo/DefaultMoveDocManager.java
@@ -3779,12 +3779,17 @@ public class DefaultMoveDocManager extends DefaultBaseManager implements MoveDoc
return t2;
}
@Override
- public void stockCk(Inventory inventory,String gzzCode) {
+ public void stockCk(String gzz,List invlist) {
int seq = 1;
int i = 1;
- String endRegion=gzzCode;
- Stock st = inventory.getLP();
- stockCk(st, gzzCode,LibraryTaskType.ckt,null,"出空托","1");
+ for(Long id:invlist) {
+ Inventory inventory=commonDao.load(Inventory.class, id);
+ inventory.setQueuedQuantity(inventory.getQuantity());
+ Stock st = inventory.getLP();
+ commonDao.store(inventory);
+ stockCk(st, gzz,LibraryTaskType.ckt,null,"出空托","1");
+ }
+
}
/** 查询当前库位组对应的任务*/
private LibraryTask findLibraryTaskFor1(LocationStorage ls) {
@@ -3808,21 +3813,8 @@ public class DefaultMoveDocManager extends DefaultBaseManager implements MoveDoc
public void stockCk(List ids) {
// int gzz=602;
// TODO 自动生成的方法存根
- for (Long id : ids) {
- Inventory inventory=this.load(Inventory.class, id);
- /*if (inventory.getQueuedQuantity()>0) {
- inventory.setQueuedQuantity(inventory.getQuantity());
- commonDao.store(inventory);
- stockCk(inventory);
- }*/
- inventory.setQueuedQuantity(inventory.getQuantity());
- commonDao.store(inventory);
- stockCk(inventory,603+"");
- /*gzz++;
- if (gzz==605) {
- gzz=602;
- }*/
- }
+ stockCk(603+"",ids);
+
}
@Override
diff --git a/src/main/java/com/dev/swms/server/service/shipping/PickTicketManager.java b/src/main/java/com/dev/swms/server/service/shipping/PickTicketManager.java
index 38754d8..1d94add 100644
--- a/src/main/java/com/dev/swms/server/service/shipping/PickTicketManager.java
+++ b/src/main/java/com/dev/swms/server/service/shipping/PickTicketManager.java
@@ -469,7 +469,7 @@ public interface PickTicketManager extends BaseManager {
@Transactional
List new411pickConfirmBar(Long pickTicketId, Long workerId,List ids);
- /**311转库*/
+ /**000转库*/
@Transactional
void newdeposit(Long pickTicketId, Long workerId);
diff --git a/src/main/java/com/dev/swms/server/service/shipping/pojo/DefaultPickTicketManager.java b/src/main/java/com/dev/swms/server/service/shipping/pojo/DefaultPickTicketManager.java
index 9b5ad28..d6cd785 100644
--- a/src/main/java/com/dev/swms/server/service/shipping/pojo/DefaultPickTicketManager.java
+++ b/src/main/java/com/dev/swms/server/service/shipping/pojo/DefaultPickTicketManager.java
@@ -402,19 +402,19 @@ public class DefaultPickTicketManager extends DefaultBaseManager implements Pick
commonDao.store(pt);
refreshOrderQuantity(pt);
} else {
- PickTicketDetail newpickTicketDetail = this.load(PickTicketDetail.class, pickTicketDetail.getId());
- newpickTicketDetail.setItem(item);
- newpickTicketDetail.setOrderQuantity(pickTicketDetail.getOrderQuantity());
- newpickTicketDetail.setOrderQtyOfMasterUnit(pickTicketDetail.getOrderQuantity());
- newpickTicketDetail.getNewLotInfo().setPropC2(pickTicketDetail.getNewLotInfo().getPropC2());
- newpickTicketDetail.getNewLotInfo().setPropC3(pickTicketDetail.getNewLotInfo().getPropC3());
- newpickTicketDetail.getNewLotInfo().setPropC9(pickTicketDetail.getNewLotInfo().getPropC9());
- newpickTicketDetail.setStrBill13(pt.getDescription());
- newpickTicketDetail.setStrBill14(pickTicketDetail.getStrBill14());
- newpickTicketDetail.setStrBill15(pickTicketDetail.getStrBill15());
- newpickTicketDetail.setStrBill12(pickTicketDetail.getStrBill12());
- commonDao.store(newpickTicketDetail);
- pt.addPickTicketDetail(newpickTicketDetail);
+// PickTicketDetail newpickTicketDetail = this.load(PickTicketDetail.class, pickTicketDetail.getId());
+// newpickTicketDetail.setItem(item);
+// newpickTicketDetail.setOrderQuantity(pickTicketDetail.getOrderQuantity());
+// newpickTicketDetail.setOrderQtyOfMasterUnit(pickTicketDetail.getOrderQuantity());
+// newpickTicketDetail.getNewLotInfo().setPropC2(pickTicketDetail.getNewLotInfo().getPropC2());
+// newpickTicketDetail.getNewLotInfo().setPropC3(pickTicketDetail.getNewLotInfo().getPropC3());
+// newpickTicketDetail.getNewLotInfo().setPropC9(pickTicketDetail.getNewLotInfo().getPropC9());
+// newpickTicketDetail.setStrBill13(pt.getDescription());
+// newpickTicketDetail.setStrBill14(pickTicketDetail.getStrBill14());
+// newpickTicketDetail.setStrBill15(pickTicketDetail.getStrBill15());
+// newpickTicketDetail.setStrBill12(pickTicketDetail.getStrBill12());
+ commonDao.store(pickTicketDetail);
+// pt.addPickTicketDetail(newpickTicketDetail);
// pt.setOrderDate(new Date());
commonDao.store(pt);
refreshOrderQuantity(pt);
@@ -4113,9 +4113,11 @@ public class DefaultPickTicketManager extends DefaultBaseManager implements Pick
Location srcLoc = commonDao.load(Location.class, srcLocId);// 目标库位
Stock dstLP = commonDao.load(Stock.class, dstLPId);// 目标容器
+ if (pt.getSourceType() != null && !pt.getSourceType().equals("411")) {
if(dstLP==null) {
throw new BusinessException("无容器码,请绑定");
}
+ }
ItemKey itemKey =commonDao.load(ItemKey.class, task.getItemKey().getId());
Item item = this.load(Item.class, itemKey.getItem().getId());
Location loc = this.load(Location.class, task.getSrcLoc().getId());
@@ -4270,6 +4272,7 @@ public class DefaultPickTicketManager extends DefaultBaseManager implements Pick
task.getSrcLoc(),pt.getSourceType());
} else {
+
Inventory newInventory = EntityFactory.getEntity(Inventory.class);
newInventory.setLocation(dstLoc);
Warehouse warehouse = this.load(Warehouse.class, 1l);
@@ -4298,6 +4301,7 @@ public class DefaultPickTicketManager extends DefaultBaseManager implements Pick
ItemKey itemKey1 = itemManager.getItemKey(new ItemKey("", item, lot, null, ""),
Boolean.TRUE);
commonDao.store(itemKey1);
+
String sql = " from Inventory inv where inv.itemKey.id=" + itemKey1.getId()
+ " and inv.location.id=" + srcLoc.getId();
if (task.getBarCode() != null && task.getBarCode().length() > 0) {
@@ -8393,7 +8397,7 @@ public class DefaultPickTicketManager extends DefaultBaseManager implements Pick
public void newdeposit(Long pickTicketId, Long workerId) {
PickTicket pickTicket = this.load(PickTicket.class, pickTicketId);
- if (pickTicket.getSourceType() != null && (pickTicket.getSourceType().equals("311")
+ if (pickTicket.getSourceType() != null && (pickTicket.getSourceType().equals("000")
||pickTicket.getSourceType().equals("313"))) {
List ts = this.commonDao.findByQuery("from Task t where t.pickTicketDetail.pickTicket.id="
+ pickTicket.getId() + " and t.movedQuantityMU0 "
+ +" and inv.quantity>0 ";
+ if(t.getBarCode()!=null&&t.getBarCode().length()>0) {
+ sql+=" and inv.barCode='"+t.getBarCode()+"' ";
+ }
List invs=commonDao.findByQuery(sql);
if(invs.size()>0) {
PickTicketDetail ptd=commonDao.load(PickTicketDetail.class, t.getPickTicketDetail().getId());
@@ -8432,7 +8439,7 @@ public class DefaultPickTicketManager extends DefaultBaseManager implements Pick
lot.setPropC8(t.getItemKey().getLotInfo().getPropC8());
}
if(t.getItemKey().getLotInfo().getPropC9()!=null) {
- lot.setPropC9(t.getItemKey().getLotInfo().getPropC9());
+ lot.setPropC9(t.getPickTicketDetail().getStrBill9());
}
if(t.getItemKey().getLotInfo().getPropD1()!=null) {
lot.setPropD1(t.getItemKey().getLotInfo().getPropD1());
@@ -8440,12 +8447,20 @@ public class DefaultPickTicketManager extends DefaultBaseManager implements Pick
if(t.getItemKey().getLotInfo().getPropD2()!=null) {
lot.setPropD2(t.getItemKey().getLotInfo().getPropD2());
}
- ItemKey itemkey=null;
+ if(t.getItemKey().getLotInfo().getPropD3()!=null) {
+ lot.setPropD3(t.getItemKey().getLotInfo().getPropD3());
+ }
+ if(t.getItemKey().getLotInfo().getPropLC5()!=null) {
+ lot.setPropLC5(t.getItemKey().getLotInfo().getPropLC5());
+ }
+ double t_qty=t.getPlanQuantity()-t.getMovedQuantityMU();//拣货数
+
+ ItemKey itemkey=null;
itemkey=itemManager.getItemKey(new ItemKey(
"", t.getItemKey().getItem(), lot, new Date(), ""), Boolean.TRUE);
t.setAgvStatus(3);
t.setInventoryStatus("交单完成");
- t.setDstLoc(commonDao.load(Location.class, 97845L));
+ t.setDstLoc(commonDao.load(Location.class, 88242L));
t.setMovedQuantityMU(t.getPlanQuantity());
// t.setOperateTime(new Date());
t.setOperator(UserHolder.getUser().getName());
@@ -8457,14 +8472,79 @@ public class DefaultPickTicketManager extends DefaultBaseManager implements Pick
commonDao.store(t);
commonDao.store(ptd);
commonDao.store(pickTicket);
- Inventory inv =invs.get(0);
- inv.setQueuedQuantity(0);
- inv.setItemKey(itemkey);
- commonDao.store(inv);
- inventoryManager.addInventoryLog(InventoryLogType.SHIPPING, -1, t.getBillCode(), t.getDstLoc(), null,
- inv.getItemKey(), inv.getStorageDate(), inv.getSOI(), t.getPlanQuantity(), null,
- inv.getStatus(), inv.getId(), "转库", t.getPickTicketDetail().getPickTicket().getBillType(),
- 0L, inv.getBarCode(),t.getSrcLoc(),t.getPickTicketDetail().getPickTicket().getSourceType());
+ double invqty1=0;
+ double invqty2=0;
+ for(Inventory inv:invs) {
+ invqty1=inv.getQueuedQuantity();//占用数量
+ invqty2=inv.getQuantity();//库存数量
+
+ if(invqty2<=t_qty) {
+ inv.setQueuedQuantity(0);
+ inv.setItemKey(itemkey);
+ commonDao.store(inv);
+ t_qty=t_qty-t_qty;
+ inventoryManager.addInventoryLog(InventoryLogType.SHIPPING, -1, t.getBillCode(), t.getDstLoc(), null,
+ inv.getItemKey(), inv.getStorageDate(), inv.getSOI(), t.getPlanQuantity(), null,
+ inv.getStatus(), inv.getId(), "转库", t.getPickTicketDetail().getPickTicket().getBillType(),
+ 0L, inv.getBarCode(),t.getSrcLoc(),t.getPickTicketDetail().getPickTicket().getSourceType());
+ }else {
+ if(invqty2>t_qty) {
+
+ Inventory newInventory = EntityFactory.getEntity(Inventory.class);
+ newInventory.setLocation(inv.getLocation());
+ Warehouse warehouse = this.load(Warehouse.class, 1l);
+ newInventory.setWarehouse(warehouse);
+ newInventory.setQuantity(t_qty);
+ newInventory.setQueuedQuantity(0);
+ newInventory.setQtyOfMasterPack(t_qty);
+ newInventory.setStatus(inv.getStatus());
+ newInventory.setSOI(t.getBillCode());
+ newInventory.setStorageDate(t.getStorageDate());
+ newInventory.setItemKey(itemkey);
+// newInventory.setLP(dstLP);
+ newInventory.setWarehouseArea(inv.getWarehouseArea());
+ newInventory.setBarCode(t.getBarCode());
+ newInventory.setStatuss(inv.getStatuss());
+ String sql1 = " from Inventory inv where inv.itemKey.id=" + itemkey.getId()
+ + " and inv.location.id=" + inv.getLocation().getId();
+ if (t.getBarCode() != null && t.getBarCode().length() > 0) {
+ sql += " and inv.barCode='" + t.getBarCode() + "'";
+ }
+ List listinvs = commonDao.findByQuery(sql1);
+ if (listinvs.size() > 0) {
+ newInventory = listinvs.get(0);
+ newInventory.setQuantity(newInventory.getQuantity() + t_qty);
+ newInventory.setQtyOfMasterPack(newInventory.getQuantity());
+ } else {
+ newInventory.setLocation(inv.getLocation());
+ newInventory.setItemKey(itemkey);
+ newInventory.setStatus("已入库");
+ newInventory.setTaskid(null);
+ }
+ commonDao.store(newInventory);
+ inv.setQuantity(inv.getQuantity() - t_qty);
+ if(inv.getQuantity()<0) {
+ throw new BusinessException(inv.getLocation().getCode()+"不能大于可用数量"+inv.getQuantity()+"");
+ }
+ inv.setQtyOfMasterPack(inv.getQuantity());
+ //输入拣货数量大于当前task未拣货数量,库存占用只减去未拣货数量
+ inv.setQueuedQuantity(inv.getQueuedQuantity() - t_qty);
+ if(inv.getQueuedQuantity()<=0) {
+ inv.setQueuedQuantity(0);
+ }
+ commonDao.store(inv);
+ inventoryManager.addInventoryLog(InventoryLogType.SHIPPING, -1, t.getBillCode(), t.getDstLoc(), null,
+ inv.getItemKey(), inv.getStorageDate(), inv.getSOI(), t.getPlanQuantity(), null,
+ inv.getStatus(), inv.getId(), "转库", t.getPickTicketDetail().getPickTicket().getBillType(),
+ 0L, inv.getBarCode(),t.getSrcLoc(),t.getPickTicketDetail().getPickTicket().getSourceType());
+ t_qty=0;
+ }
+ }
+ if(t_qty==0) {
+ break;
+ }
+ }
+
}else {
throw new BusinessException("该料号:"+t.getItemKey().getItem().getCode()+"库存不能直接转");
}
@@ -8472,10 +8552,10 @@ public class DefaultPickTicketManager extends DefaultBaseManager implements Pick
ids.add(t.getId());
}
- boolean saphs= interfaceReqManager.wmsSapFaliaohuichuang(ids);
- submitWMSTask(pickTicket, ids, saphs);
+// boolean saphs= interfaceReqManager.wmsSapFaliaohuichuang(ids);
+// submitWMSTask(pickTicket, ids, saphs);
} else {
- throw new BusinessException("该出库单不是311转库");
+ throw new BusinessException("该出库单不是000转库");
}
}
diff --git a/src/main/java/com/dev/swms/server/web/servlet/ASNReceiveServlet.java b/src/main/java/com/dev/swms/server/web/servlet/ASNReceiveServlet.java
index 7a6df2c..cd3039b 100644
--- a/src/main/java/com/dev/swms/server/web/servlet/ASNReceiveServlet.java
+++ b/src/main/java/com/dev/swms/server/web/servlet/ASNReceiveServlet.java
@@ -75,6 +75,7 @@ public class ASNReceiveServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private static Logger logger = Logger.getLogger(ASNReceiveServlet.class);
protected static ApplicationContext ac;
+ private final Object lock = new Object();
/**
* @see HttpServlet#HttpServlet()
*/
@@ -457,7 +458,7 @@ public class ASNReceiveServlet extends HttpServlet {
//PDA扫描料号
String taskId =json.has("taskId")?json.getString("taskId"):"";
String jhItem =json.has("jhItem")?json.getString("jhItem"):"";
- synchronized ("scanpickItemCode") {
+ synchronized (lock) {
resultJson=app.scanpickItemCode(taskId,jhItem,workerId, wId);
}
}else if("picking".equals(methodType)){
diff --git a/src/test/yao/2025.sql b/src/test/yao/2025.sql
index 5b6949d..20e667b 100644
--- a/src/test/yao/2025.sql
+++ b/src/test/yao/2025.sql
@@ -33,5 +33,13 @@ CREATE TABLE WorkOrderAllocationInfo (
);
GO
+-----------2025-04-02
-
+ALTER TABLE ITEM_KEY add PROP_LC5 varchar(50) COLLATE Chinese_PRC_CI_AS NULL;
+GO
+ALTER TABLE ITEM_KEY add PROP_LC6 varchar(50) COLLATE Chinese_PRC_CI_AS NULL;
+GO
+ALTER TABLE ASN_DETAIL add PROP_LC5 varchar(50) COLLATE Chinese_PRC_CI_AS NULL;
+GO
+ALTER TABLE ASN_DETAIL add PROP_LC6 varchar(50) COLLATE Chinese_PRC_CI_AS NULL;
+GO
\ No newline at end of file
diff --git a/src/webapp/WEB-INF/classes/config/origen/base/editBillTypeConfigPage.xml b/src/webapp/WEB-INF/classes/config/origen/base/editBillTypeConfigPage.xml
index 04a362a..e30b835 100644
--- a/src/webapp/WEB-INF/classes/config/origen/base/editBillTypeConfigPage.xml
+++ b/src/webapp/WEB-INF/classes/config/origen/base/editBillTypeConfigPage.xml
@@ -16,10 +16,19 @@
where 1=1 order by plantInfo.name asc ]]>
-
+
+
+
+
+
+
+
diff --git a/src/webapp/WEB-INF/classes/config/origen/base/maintainPlantLocationPage.xml b/src/webapp/WEB-INF/classes/config/origen/base/maintainPlantLocationPage.xml
index a4696ca..b531147 100644
--- a/src/webapp/WEB-INF/classes/config/origen/base/maintainPlantLocationPage.xml
+++ b/src/webapp/WEB-INF/classes/config/origen/base/maintainPlantLocationPage.xml
@@ -4,9 +4,15 @@
-
+
+
+
@@ -26,7 +32,7 @@
left join pl.plantInfo
where 1=1
/~carrierType.disabled: and pl.disabled = {carrierType.disabled}~/
- /~carrierType.code: and pl.code like {carrierType.code}~/
+ /~carrierType.code: and pl.plantInfo.code like {carrierType.code}~/
]]>
diff --git a/src/webapp/WEB-INF/classes/config/origen/inventory/maintainOAXuliehaoPage.xml b/src/webapp/WEB-INF/classes/config/origen/inventory/maintainOAXuliehaoPage.xml
index 16009a8..83e6fc5 100644
--- a/src/webapp/WEB-INF/classes/config/origen/inventory/maintainOAXuliehaoPage.xml
+++ b/src/webapp/WEB-INF/classes/config/origen/inventory/maintainOAXuliehaoPage.xml
@@ -110,6 +110,7 @@
inventory.propD3,
inventory.kqName,
inventory.storageDate,
+ inventory.propLC5,
inventory.lock
FROM InventoryView inventory
WHERE 1=1
@@ -159,6 +160,7 @@
+
diff --git a/src/webapp/WEB-INF/classes/config/origen/receiving/editNullNewStockPage.xml b/src/webapp/WEB-INF/classes/config/origen/receiving/editNullNewStockPage.xml
index 21afe9c..2925146 100644
--- a/src/webapp/WEB-INF/classes/config/origen/receiving/editNullNewStockPage.xml
+++ b/src/webapp/WEB-INF/classes/config/origen/receiving/editNullNewStockPage.xml
@@ -15,7 +15,7 @@
and ls.name in ('602','603','604','605')
]]>
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/webapp/WEB-INF/classes/config/origen/shipping/editPickTicketDetailPage.xml b/src/webapp/WEB-INF/classes/config/origen/shipping/editPickTicketDetailPage.xml
index cd2571a..86001c8 100644
--- a/src/webapp/WEB-INF/classes/config/origen/shipping/editPickTicketDetailPage.xml
+++ b/src/webapp/WEB-INF/classes/config/origen/shipping/editPickTicketDetailPage.xml
@@ -52,7 +52,13 @@
inVisible="false" trimSpace="true" isPrecision="true" />
+ inVisible="false" trimSpace="true" isPrecision="true" />
+
+
diff --git a/src/webapp/WEB-INF/classes/config/origen/shipping/editPickTicketPage.xml b/src/webapp/WEB-INF/classes/config/origen/shipping/editPickTicketPage.xml
index 00e35bd..7f0941c 100644
--- a/src/webapp/WEB-INF/classes/config/origen/shipping/editPickTicketPage.xml
+++ b/src/webapp/WEB-INF/classes/config/origen/shipping/editPickTicketPage.xml
@@ -87,7 +87,9 @@
pickTicketDetail.strBill2,
pickTicketDetail.strBill1,
pickTicketDetail.SOI,
- pickTicketDetail.strBill15,
+ pickTicketDetail.strBill15,
+ pickTicketDetail.strBill9,
+ pickTicketDetail.locType,
pickTicketDetail.description
FROM PickTicketDetail as pickTicketDetail
left join pickTicketDetail.item as item
@@ -130,6 +132,8 @@
+
+
diff --git a/src/webapp/WEB-INF/classes/config/origen/shipping/maintainPickTicketPage.xml b/src/webapp/WEB-INF/classes/config/origen/shipping/maintainPickTicketPage.xml
index f29605d..c0af58d 100644
--- a/src/webapp/WEB-INF/classes/config/origen/shipping/maintainPickTicketPage.xml
+++ b/src/webapp/WEB-INF/classes/config/origen/shipping/maintainPickTicketPage.xml
@@ -338,6 +338,9 @@
enableType="single" invisible="false" containId="true" pageId="viewOutExceptionLogPage" />
+
+