新增拣货米数单位设置,加急交单吗配置,

main
userName 2025-04-11 09:57:51 +08:00
parent 2c4cdf3563
commit 5e2f65926c
25 changed files with 198 additions and 93 deletions

View File

@ -135,7 +135,7 @@ public class Item extends Entity {
private boolean beUnpacking=false;//是否最小包装
private boolean beWholeLine=false;//是否整行发料,不满足整行需要备注。
private Position position;//库位组
private Double multipleOrder=0d;//
@ -188,7 +188,15 @@ public class Item extends Entity {
private Number largeHeight;
public boolean isBeWholeLine() {
public Position getPosition() {
return position;
}
public void setPosition(Position position) {
this.position = position;
}
public boolean isBeWholeLine() {
return beWholeLine;
}

View File

@ -61,6 +61,7 @@ public class Location extends VersionalEntity {
private double dimension;//面积
private boolean beInventorys=false;//是否库存地(LOC)混放
private boolean beUrgent=false;//加急交单位
/** */
private double usedRate;
/** 过道 */
@ -135,6 +136,12 @@ public class Location extends VersionalEntity {
public boolean isBeUrgent() {
return beUrgent;
}
public void setBeUrgent(boolean beUrgent) {
this.beUrgent = beUrgent;
}
public boolean isBeInventorys() {
return beInventorys;
}

View File

@ -6,6 +6,11 @@ import com.dev.energy.server.model.Entity;
public class WorkOrderAllocationInfo extends Entity{
/**
*
*/
private static final long serialVersionUID = 807304520483810163L;
/**
*
*/
private String workOrderNumber;
@ -121,7 +126,4 @@ public class WorkOrderAllocationInfo extends Entity{
public void setAllocationDate(Date allocationDate) {
this.allocationDate = allocationDate;
}
// Getter 和 Setter 方法
}

View File

@ -177,6 +177,10 @@
<property name="beExtend1" column="be_Extend1" type="boolean" />
<property name="beExtend2" column="be_Extend2" type="boolean" />
<property name="beUnpacking" column="BE_UNPACKING" type="boolean" />
<many-to-one name="position" class="com.dev.swms.server.model.base.Position">
<column name="POSITION_ID" />
</many-to-one>
</class>
<query name="getItemsCountByCompanyID">
<![CDATA[SELECT COUNT(item) FROM Item item WHERE item.company.id = :companyId]]>

View File

@ -134,7 +134,7 @@
<many-to-one name="stock" class="com.dev.swms.server.model.inventory.Stock">
<column name="stock" />
</many-to-one>
<property name="beUrgent" column="be_Urgent" type="boolean" />
</class>
</hibernate-mapping>

View File

@ -1,25 +1,37 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Copyright (c) 2001-2005 dev Information Technology Co.,Ltd. All Rights
Reserved. This software is the confidential and proprietary information of
dev Information Technology Co.,Ltd. ("Confidential Information"). You shall
not disclose such Confidential Information and shall use it only in accordance
with the terms of the license agreement you entered into with dev. dev MAKES
NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE, EITHER
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT. dev
SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING,
MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES. -->
<!-- $Id: city.hbm.xml,v 1.3 2009/02/24 06:47:28 yan.li Exp $ -->
<hibernate-mapping>
<class name="com.dev.swms.server.model.base.WorkOrderAllocationInfo" table="WorkOrderAllocationInfo">
<!-- 定义主键 -->
<id name="id" column="ID" type="long">
<class name="com.dev.swms.server.model.base.WorkOrderAllocationInfo" table="WorkOrderAllocationInfo">
<id name="id" column="ID" type="long">
<generator class="native">
<param name="sequence">seq_wms_WorkOrderAllocationInfo</param>
<param name="sequence">wms_WorkOrderAllocationInfo</param>
<param name="parameters">START WITH 1000</param>
</generator>
</id>
<!-- 映射其他字段 -->
<property name="workOrderNumber" column="WorkOrderNumber" type="string"/>
<property name="workOrderNumber" column="WorkOrderNumber" type="string" length="100"/>
<property name="lineNumber" column="LineNumber" type="integer"/>
<property name="materialNumber" column="MaterialNumber" type="string"/>
<property name="materialNumber" column="MaterialNumber" type="string" length="100"/>
<property name="quantity" column="Quantity" type="integer"/>
<property name="remarks" column="Remarks" type="string"/>
<property name="locationNumber" column="LocationNumber" type="string"/>
<property name="factory" column="Factory" type="string"/>
<property name="loc" column="LOC" type="string"/>
<property name="locationNumber" column="LocationNumber" type="string" length="100"/>
<property name="factory" column="Factory" type="string" length="100"/>
<property name="loc" column="LOC" type="string" length="100"/>
<property name="allocationDate" column="AllocationDate" type="date"/>
</class>
</hibernate-mapping>
</class>
</hibernate-mapping>

View File

@ -2298,7 +2298,7 @@ public class DefaultAgvTaskManager extends DefaultBaseManager implements AgvTask
DateUtil.formatDateYMDToStr(day)+"' group by CONVERT(varchar(100), agv.createTime, 23) ";
List<Long> list=commonDao.findByQuery(hql);
if(list.size()>0) {
h=list.get(0)-1;
h=list.get(0)-10;
}
}
for(Long id:ids) {
@ -2307,9 +2307,13 @@ public class DefaultAgvTaskManager extends DefaultBaseManager implements AgvTask
if(agv.isBeIssue()&&agv.getStatus().equals(STATUS.ATCALL)) {
if(agv.getJobPriorityType()>0&&agv.getJobPriority()>200) {
break;
// agv.setJobPriorityType(1L);
// agv.setJobPriority(1000L+agv.getJobPriority());
}else {
agv.setJobPriorityType(1L);
agv.setJobPriority(h);
}
agv.setJobPriorityType(1L);
agv.setJobPriority(h);
String str = interfaceReqManager.doWmsReqAgv(ApiURL.eoutAGV,agv.yxjAGVJSON(agv),agv.getRobotJobId());
try {
JSONObject jsonStr = JSONObject.fromObject(URLDecoder.decode(str,"UTF-8"));

View File

@ -146,6 +146,8 @@ public class DefaultItemManager extends DefaultBaseManager implements
i.setBeUnpacking(item.isBeUnpacking());
i.setDefaultWarehouseArea(item.getDefaultWarehouseArea());
i.setSmallUnit(item.getSmallUnit());
i.setBeWholeLine(item.isBeWholeLine());
i.setPosition(item.getPosition());
double a=length*width*height;
// if(i.getPackNumber()>0) {
// i.setVolume(a/i.getPackNumber());

View File

@ -369,7 +369,7 @@ public class DefaultStockManager extends DefaultBaseManager implements StockMana
List<Object[]> stocks=new ArrayList<Object[]>();
List<Stock> lStocks=new ArrayList<Stock>();
StringBuffer sbsql1=new StringBuffer();
sbsql1.append(" select *from "
sbsql1.append(" select * from "
+" (select COUNT(loc.STATUS) as num,s.ID from LOCATION loc "
+" right join STOCK s on s.ID=loc.stock "
+" left join containerType ct on s.containerType=ct.ID "

View File

@ -150,6 +150,9 @@ public class DefaultInterfaceRespManager extends DefaultBaseManager implements I
eitem.setShipRules(shipRules);
}
eitem.setUnit(unit);
if(unit.equals("MR")||unit.equals("MM")||unit.equals("FT")) {
eitem.setBeWholeLine(true);
}
// eitem.setGoodType("小件");
if (warehouseAreas.size()>0) {
eitem.setWarehouseArea(warehouseAreas.get(0));
@ -2566,6 +2569,8 @@ public class DefaultInterfaceRespManager extends DefaultBaseManager implements I
String strBill8=pickTicket.has("ZOUTWMS") ? pickTicket.getString("ZOUTWMS") : ""; //是否出WMS仓 X表示”是“空表示”否”
String planQuantity=pickTicket.has("ZCHWMG") ? pickTicket.getString("ZCHWMG") : ""; //数量
String ZDLK=pickTicket.has("ZDLK") ? pickTicket.getString("ZDLK") : ""; //是否解K false/true
String PROPC3=pickTicket.has("PROPC3") ? pickTicket.getString("PROPC3") : ""; //K
String PROPC5=pickTicket.has("STRBILL4") ? pickTicket.getString("STRBILL4") : ""; //供应商
Warehouse warehouse=this.load(Warehouse.class, 1L);
Item item=null;
List<Item> Items = commonDao.findByQuery(" from Item item where item.code=:code",
@ -2619,6 +2624,8 @@ public class DefaultInterfaceRespManager extends DefaultBaseManager implements I
NewLotInfo newLotInfo=new NewLotInfo();
newLotInfo.setPropC2(swaCode);
newLotInfo.setPropC9(strBill9);//发货工厂
newLotInfo.setPropC3(PROPC3);//
newLotInfo.setPropC5(PROPC5);//
newLotInfo.setPropL1(propL1);
newLotInfo.setPropL2(propL2);
newLotInfo.setPropL3(propL3);

View File

@ -3547,6 +3547,12 @@ public class DefaultQueryAppManager extends DefaultBaseManager implements QueryA
Double invQuantity= (Double) commonDao.findByQuery("select IsNULL(sum(ROUND(inv.quantity,3)),0) from Inventory inv "
+ "where inv.quantity>0 and inv.location.id="+loc.getId()+" and inv.itemKey.item.code='"+item.getCode()+"' ").get(0);
obj.put("invQuantity", invQuantity+" "+item.getUnit());
if(thb.getPropC2()!=null) {
Double invLocQuantity= (Double) commonDao.findByQuery("select IsNULL(sum(ROUND(inv.quantity,3)),0) from Inventory inv "
+ "where inv.quantity>0 and inv.location.id="+loc.getId()+" and inv.itemKey.item.code='"+item.getCode()+"'"
+ " and inv.itemKey.lotInfo.propC2='"+thb.getPropC2()+"'").get(0);
obj.put("invQuantity"," 库位库存"+ invQuantity+" , "+thb.getPropC2()+"库存"+invLocQuantity+" "+item.getUnit());
}
data=obj.toString();
status = "1";
@ -4251,7 +4257,7 @@ public class DefaultQueryAppManager extends DefaultBaseManager implements QueryA
}
sql1.append(" and s.containerType = 16 "
+ " and s.agvFlag=1 and s.ENABLED=0 "
+ "group by s.id order by count(s.id) desc");
+ "group by s.id order by count(s.id) desc ,max(s.SALE_TIME) ");
stocks=jdbcManager.getObjects(sql1.toString());
}else if (stocks.size()<1) {
List<Object> ids = jdbcManager.getObjects("select id from stock where LP in ("+LP+")");

View File

@ -43,6 +43,7 @@ import com.dev.swms.server.model.base.TurnOverMode;
import com.dev.swms.server.model.base.Warehouse;
import com.dev.swms.server.model.base.WarehouseArea;
import com.dev.swms.server.model.base.WarehouseAreaStatus;
import com.dev.swms.server.model.base.WorkOrderAllocationInfo;
import com.dev.swms.server.model.base.Worker;
import com.dev.swms.server.model.delivery.UrgentOrder;
import com.dev.swms.server.model.inventory.AgvTask;
@ -2416,7 +2417,7 @@ public class DefaultAutoAllocator extends DefaultBaseManager implements AutoAllo
if(ptd.getItem().getIsBOM()) {
hql1+=" and CONVERT(varchar(100), i.itemKey.lotInfo.propD2, 23)>='"+DateUtil.formatDateYMDToStr(new Date())+"' ";
}
//排序
List<Inventory> Inventorys = commonDao.findByQuery(
hql1+hql2,new String[] { "id" },new Object[] { ptd.getItem().getId() });
@ -2451,13 +2452,22 @@ public class DefaultAutoAllocator extends DefaultBaseManager implements AutoAllo
}
for (Inventory inventory : Inventorys) {
int j = 0;
//未分配数量
if (unQty == 0) {
break;
}
allocateQty = inventory.getQuantity()- inventory.getQueuedQuantity();//可分配数量
//可分配数量
allocateQty = inventory.getQuantity()- inventory.getQueuedQuantity();
if (allocateQty == 0) {
continue;
}
//判断料号是不是整行库存发料
if(ptd.getItem().isBeWholeLine()&&unQty>allocateQty) {
//保存跳过记录
saveWorkOrderAllocationInfo(inventory, ptd, unQty, allocateQty);
continue;
}
if (unQty < allocateQty) {
allocateQty = unQty;
}
@ -3074,7 +3084,12 @@ public class DefaultAutoAllocator extends DefaultBaseManager implements AutoAllo
if (allocateQty == 0) {
continue;
}
//判断料号是不是整行库存发料
if(ptd.getItem().isBeWholeLine()&&unQty>allocateQty) {
//保存跳过记录
saveWorkOrderAllocationInfo(inventory, ptd, unQty, allocateQty);
continue;
}
if (unQty < allocateQty) {
allocateQty = unQty;
}
@ -3816,8 +3831,27 @@ public class DefaultAutoAllocator extends DefaultBaseManager implements AutoAllo
}
}
}
//判断料号是不是整行库存发料,报错跳过库存行的记录。
public void saveWorkOrderAllocationInfo(Inventory inventory,PickTicketDetail ptd,
double unQty,double allocateQty) {
WorkOrderAllocationInfo woa=new WorkOrderAllocationInfo();
woa.setWorkOrderNumber(ptd.getPickTicket().getCode());
if(ptd.getLineNumber()!=null) {
try {
woa.setLineNumber(Integer.parseInt(ptd.getLineNumber()));
}catch (Exception e) {
}
}
woa.setMaterialNumber(ptd.getItem().getCode());
woa.setQuantity((int)unQty);
woa.setLocationNumber(inventory.getLocation().getCode());
woa.setFactory(inventory.getItemKey().getLotInfo().getPropC9());
woa.setLoc(inventory.getItemKey().getLotInfo().getPropC2());
woa.setAllocationDate(new Date());
woa.setRemarks("库存数量:"+allocateQty);
commonDao.store(woa);
}

View File

@ -2205,9 +2205,7 @@ public class DefaultMoveDocManager extends DefaultBaseManager implements MoveDoc
List<ReceivedRecord> receivedRecords = commonDao.findByQuery(
" from ReceivedRecord rrd where rrd.beMoved=0 and rrd.srcLP.LP=:code and rrd.locationStorage is null",
new String[] { "code" }, new Object[] { st.getLP() });
List<Long> inventorys = commonDao.findByQuery(
"select inv.id from Inventory inv where inv.location.stock.id=:code and inv.quantity>0 ",
new String[] { "code" }, new Object[] { st.getId() });
if (receivedRecords.size()>0) {
for (ReceivedRecord rd : receivedRecords) {
@ -2217,6 +2215,17 @@ public class DefaultMoveDocManager extends DefaultBaseManager implements MoveDoc
}
ASNDetail ad = this.load(ASNDetail.class, rd.getAsnDetail().getId());
if(ad!=null&&ad.getLotInfo()!=null&&ad.getLotInfo().getPropC2()!=null
&&ad.getLotInfo().getPropC2().length()>0) {
List<PlantLocation> listPlan=commonDao.findByQuery(" from PlantLocation p"
+ " where p.code='"+ad.getLotInfo().getPropC2()+"' ");
if(listPlan.size()>0) {
PlantLocation pl=listPlan.get(0);
if(pl.isBeRegister()) {
throw new BusinessException(ad.getLotInfo().getPropC2()+"不良品库存,不能入库立库");
}
}
}
Item item = this.load(Item.class, ad.getItem().getId());
ASN asn = this.load(ASN.class, ad.getAsn().getId());
BillType bt=commonDao.load(BillType.class, asn.getBillType().getId());
@ -2230,12 +2239,7 @@ public class DefaultMoveDocManager extends DefaultBaseManager implements MoveDoc
if(adids.size()>adids1.size()) {
throw new BusinessException("未整理完成,不能入库,单号:"+ad.getStrBill7());
}
// if(asn.getExpectedQuantity()>asn.getReceivedQuantity()) {
// throw new BusinessException("未整理完成,不能入库,单号:"+asn.getCode());
// }
Stock stock = commonDao.load(Stock.class, rd.getSrcLP().getId());
// stock.setLocationStorage(locationStorage);
// commonDao.store(stock);
rd.setLocationStorage(locationStorage);
List<Inventory> invs = commonDao.findByQuery(" from Inventory inv where inv.receivedRecordId="
+ rd.getId() + ")");
@ -2343,14 +2347,16 @@ public class DefaultMoveDocManager extends DefaultBaseManager implements MoveDoc
this.commonDao.store(rd);
}
}else if(inventorys.size()>0) {
}else {
List<Long> inventorys = commonDao.findByQuery(
"select inv.id from Inventory inv where inv.location.stock.id=:code and inv.quantity>0 ",
new String[] { "code" }, new Object[] { st.getId() });
if(inventorys.size()>0) {
logger.info(st.getLP()+"有库存信息");
locationStorage.setStatus(WarehouseAreaStatus.OCCUPY);
this.commonDao.store(locationStorage);
// st.setLocationStorage(locationStorage);
// commonDao.store(st);
}else {
}else {
LibraryTask t=EntityFactory.getEntity(LibraryTask.class);
t.setMes("没有整理数据");
t.setFromCellCode(ssk);
@ -2358,6 +2364,7 @@ public class DefaultMoveDocManager extends DefaultBaseManager implements MoveDoc
commonDao.store(t);
interfaceReqManager.receiveLEDinfo(t);
throw new BusinessException("没有整理数据");
}
}
}
public void putAwayFor6(Stock st, Long lsId,String ssk) {
@ -2503,7 +2510,7 @@ public class DefaultMoveDocManager extends DefaultBaseManager implements MoveDoc
//第二优先浅位空闲,深有货品
public LocationStorage findLocationStorageFor7(Stock st) {
//查询深浅都是空闲
synchronized (DefaultMoveDocManager.class) {
//查询有任务的库位
String sql5=" select loc3.relevanceCode from LocationStorage loc3 where "
+ " (loc3.name in( select t1.toCellCode from LibraryTask t1 "
@ -2571,6 +2578,7 @@ public class DefaultMoveDocManager extends DefaultBaseManager implements MoveDoc
} else {
return ls.get(0);
}
}
}
public void finishLibraryTask(List<Long> ids) {
@ -4050,36 +4058,11 @@ public class DefaultMoveDocManager extends DefaultBaseManager implements MoveDoc
//入库获取目标点位,第一优先级两个都空闲的,放深
//第二优先浅位空闲,深有货品
public LocationStorage moveLocationStorageFor8(LocationStorage st) {
synchronized (DefaultMoveDocManager.class) {
//查询深浅都是空闲
String sql1="select loc.relevanceCode from LocationStorage loc where loc.status='FREE' and loc.disabled=false "
+ " and loc.type='存储点' group by loc.relevanceCode having count(*)>=2 ";
// //查询浅位是空闲,优先深位没有任务的空闲浅位
// String sql2="select loc.relevanceCode from LocationStorage loc where ((loc.status='FREE' and loc.sqType=1) "
// + " or (loc.status='OCCUPY' and loc.sqType=2)) "
// + " and loc.disabled=false "
// + " and loc.type='存储点' ";
// //深位有任务的关联号
// String sql3=" select loc.relevanceCode from LocationStorage loc1 where "
// + " loc.name not in( select toCellCode from LibraryTask t "
// + " where t.status in('NONCHECKED','ATCALL','ATWAIT','ATWORK')) "
// + " and loc.name not in( select fromCellCode from LibraryTask t "
// + " where t.status in('NONCHECKED','ATCALL','ATWAIT','ATWORK')) "
// + " and loc.disabled=false "
// + " and loc.type='存储点' ";
//查询浅位是空闲,优先深位没有任务的空闲浅位
// String sql2="select loc2.relevanceCode from LocationStorage loc2 where loc2.status='FREE' and loc2.sqType=1 "
// + " and loc2.disabled=false "
// + " and loc2.type='存储点' ";
//深位有任务的关联号
// String sql3=" select loc1.relevanceCode from LocationStorage loc1 where "
// + " loc1.name not in( select t.toCellCode from LibraryTask t "
// + " where t.status in('NONCHECKED','ATCALL','ATWAIT','ATWORK')) "
// + " and loc1.name not in( select t1.fromCellCode from LibraryTask t1 "
// + " where t1.status in('NONCHECKED','ATCALL','ATWAIT','ATWORK')) "
// + " and loc1.disabled=false "
// + " and loc1.type='存储点' ";
//查询有任务的库位
String sql5=" select loc3.relevanceCode from LocationStorage loc3 where "
+ " (loc3.name in( select t1.toCellCode from LibraryTask t1 "
@ -4089,12 +4072,8 @@ public class DefaultMoveDocManager extends DefaultBaseManager implements MoveDoc
+ " and loc3.disabled=false "
+ " and loc3.type='存储点' ";
// sql2=sql2+" and loc2.relevanceCode not in("+sql5+") ";
//立库有坐标点位的托盘
String sql4=" select s2.locationStorage.id from Stock s2 where s2.locationStorage.id is not null and s2.LP like 'Y00%' ";
String sql = " from LocationStorage l where l.warehouseArea.id=1766 "
+ " and l.type='存储点' and l.status='" + WarehouseAreaStatus.FREE + "' "
+ " and l.disabled=false and l.id not in("+sql4+")";
@ -4141,6 +4120,7 @@ public class DefaultMoveDocManager extends DefaultBaseManager implements MoveDoc
} else {
return ls.get(0);
}
}
}
public boolean queryTask(String str){

View File

@ -9745,8 +9745,7 @@ public class DefaultPickTicketManager extends DefaultBaseManager implements Pick
if(ptd.getSOI()!=null&&
(ptd.getSOI().equals("U")
||ptd.getSOI().equals("X"))
&&(dstLoc.getCode().indexOf("1FEM")==-1 &&
dstLoc.getCode().indexOf("2FEM")==-1)) {
&&(!dstLoc.isBeUrgent())) {
throw new BusinessException("该地位不是加急交接点");
}
}
@ -10148,7 +10147,7 @@ public class DefaultPickTicketManager extends DefaultBaseManager implements Pick
}
}
public synchronized String printLocationCodePick(String code, Long workerId,Long wid) {
public synchronized String printLocationCodePick(String code, Long workerId,Long wid) {
String data="";
JSONObject obj = new JSONObject();
if(code!=null&&code.length()>2) {
@ -10185,6 +10184,7 @@ public class DefaultPickTicketManager extends DefaultBaseManager implements Pick
data=obj.toString();
return data;
}
public void reprintPrintTask(String barCode,Long pId,int nuber,Long workerId) {
@ -10324,6 +10324,7 @@ public class DefaultPickTicketManager extends DefaultBaseManager implements Pick
if(pt!=null) {
refreshOrderQuantity(pt);
}
}
}

View File

@ -458,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 (lock) {
synchronized (QueryAppManager.class) {
resultJson=app.scanpickItemCode(taskId,jhItem,workerId, wId);
}
}else if("picking".equals(methodType)){
@ -505,7 +505,7 @@ public class ASNReceiveServlet extends HttpServlet {
jdbcManager.saveExceptionLog("任务号:"+taskId+"料号:"+itemCode+
"数量:"+quantity+"子任务:"+billCode+",原因:"+e.getMessage());
resultJson.put("status", "0");
resultJson.put("msg", "拣货失败,联系运维人员!"+e.getMessage());
resultJson.put("msg", "拣货失败"+e.getMessage());
resultJson.put("data", "");
}
}else if("skip".equals(methodType)){
@ -773,7 +773,7 @@ public class ASNReceiveServlet extends HttpServlet {
jdbcManager.saveExceptionLog("任务号:"+taskid+"料号:"+itemCode+
"工作站:"+lsCode+"数量:"+quantity+"子任务:"+billCocd+" 库位:"+srcLoc+",原因:"+e.getMessage());
resultJson.put("status", "0");
resultJson.put("msg", "拣货失败,联系运维人员"+e.getMessage());
resultJson.put("msg", "拣货失败,"+e.getMessage());
resultJson.put("data", "");
}

View File

@ -232,7 +232,9 @@ public class PickingServlet extends HttpServlet {
}else if("printLocationCode".equals(methodType)){
//获取容器号
String location_code =json.has("location_code")?json.getString("location_code"):"";
synchronized (QueryAppManager.class) {
resultJson=this.printLocationCode(location_code,workerId, wId);
}
}
logger.info("======"+resultJson.toString());

View File

@ -1217,9 +1217,9 @@
<value>com/dev/swms/server/model/base/sapOutType.hbm.xml</value>
</constructor-arg>
</bean>
<!-- <bean id="workOrderAllocationInfoHibernateMappingResource" class="com.dev.energy.server.dao.hibernate.HibernateMappingResource"> -->
<!-- <constructor-arg> -->
<!-- <value>com/dev/swms/server/model/base/workOrderAllocationInfo.hbm.xml</value> -->
<!-- </constructor-arg> -->
<!-- </bean> -->
<bean id="workOrderAllocationInfoHibernateMappingResource" class="com.dev.energy.server.dao.hibernate.HibernateMappingResource">
<constructor-arg>
<value>com/dev/swms/server/model/base/workOrderAllocationInfo.hbm.xml</value>
</constructor-arg>
</bean>
</beans>

View File

@ -42,4 +42,18 @@ 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
GO
------------2025-04-08
ALTER TABLE ITEM add POSITION_ID numeric(19) NULL;
GO
ALTER TABLE ITEM
ADD CONSTRAINT FK_Item_POSITION_ID FOREIGN KEY (POSITION_ID)
REFERENCES [POSITION](ID);
GO
ALTER TABLE LOCATION add be_Urgent tinyint NULL;
GO
update LOCATION set be_Urgent=0 where be_Urgent is null;
GO

View File

@ -101,7 +101,16 @@
where 1=1
]]></hql>
</list>
<list id="item.position.id" title="上架库位组" row="7" col="4"
span="1" width="120" readOnly="false" required="false" reserve="false"
forceOverride="true" >
<hql><![CDATA[ SELECT
position.id,
position.name From Position position
where 1=1
]]></hql>
</list>
<booleanList id="item.beWholeLine" title="是否整行发料" row="8" col="1" span="1" readOnly="false" required="true" reserve="false" forceOverride="true" inVisible="false"/>
</inputUIs>
<buttons>
<commit id="save" title="save" enableType="none">

View File

@ -84,6 +84,7 @@
<text id="location.sortIndex" title="location.sortIndex" row="10" col="1" span="1" readOnly="false" required="true" reserve="false" forceOverride="true" inVisible="false" validator="integerRequired" trimSpace="true" isPrecision="true" defaultValue="0"/> -->
<booleanList id="location.mixLot" title="location.mixLot" defaultValue="false" row="6" col="2" span="1" readOnly="false" required="true" reserve="true" forceOverride="true" inVisible="false"/>
<booleanList id="location.beInventorys" title="是否库存(LOC)混放" defaultValue="false" row="7" col="1" span="1" readOnly="false" required="true" reserve="true" forceOverride="true" inVisible="false"/>
<booleanList id="location.beUrgent" title="是否加急交单位" defaultValue="false" row="7" col="1" span="1" readOnly="false" required="true" reserve="true" forceOverride="true" inVisible="false"/>
</inputUIs>
<buttons>
<commit id="save" title="save" enableType="none" invisible="false">

View File

@ -82,6 +82,8 @@
item.beWeight,
item.beInv,
item.beSAPItem,
item.beWholeLine,
item.position.name,
item.saleTime,
item.strExtend1,
item.strExtend2,
@ -89,6 +91,7 @@
from Item item
left join item.warehouseArea warehouseArea
left join item.defaultWarehouseArea
left join item.position
where 1=1
/~item.code: and item.code like {item.code} ~/
/~item.warehouseArea.id: and item.warehouseArea.id = {item.warehouseArea.id} ~/
@ -168,6 +171,10 @@
horizonAlign="center" />
<column id="item.beSAPItem" title="是否SAP料号" visible="true" format="booleanFormat"
horizonAlign="center" />
<column id="item.beWholeLine" title="是否米数整行发料" visible="true" format="booleanFormat"
horizonAlign="center" />
<column id="item.position.name" title="库位组" visible="true"
horizonAlign="center" />
<column id="item.saleTime" title="热度值" visible="true"
horizonAlign="center" />
<column id="item.strExtend1" title="备注" visible="true"

View File

@ -92,6 +92,7 @@
location.mixItem,
location.mixLot,
location.beInventorys,
location.beUrgent,
location.inLock,
location.outLock,
location.disabled
@ -155,6 +156,8 @@
formatParam="mixLot" />
<column id="location.beInventorys" title="是否库存(LOC)混放" visible="true"
horizonAlign="center" format="booleanFormat"/>
<column id="location.beUrgent" title="是否加急交单位" visible="true"
horizonAlign="center" format="booleanFormat"/>
<column id="location.inLock" title="入库锁" visible="true"
horizonAlign="center"
/>

View File

@ -1,5 +1,5 @@
<pages>
<maintainPage id="maintainWorkOrderAllocationPage" title="工单分配信息查询页面" autoQuery="false">
<maintainPage id="maintainWorkOrderAllocationPage" title="未满足整行拣货" autoQuery="false">
<search>
<inputUIs>
<!-- 工单号查询输入 -->
@ -36,7 +36,7 @@
/~materialNumber: and workOrder.materialNumber like {materialNumber} ~/
/~beginDate: AND CONVERT(varchar(100), workOrder.allocationDate, 23) = {beginDate} ~/
/~endDate: or (CONVERT(varchar(100), workOrder.allocationDate, 23)>= {beginDate} and CONVERT(varchar(100), workOrder.allocationDate, 23)<= {endDate}) ~/
]]></datasource>
order by workOrder.id desc ]]></datasource>
<columns>
<!-- 隐藏 ID 列 -->
<column id="workOrder.id" title="ID" visible="false" horizonAlign="center" verticalAlign="middle" />
@ -47,7 +47,7 @@
<!-- 料号列 -->
<column id="workOrder.materialNumber" title="料号" visible="true" horizonAlign="center" verticalAlign="middle" />
<!-- 数量列 -->
<column id="workOrder.quantity" title="数量" visible="true" horizonAlign="center" verticalAlign="middle" />
<column id="workOrder.quantity" title="需求数量" visible="true" horizonAlign="center" verticalAlign="middle" />
<!-- 备注列 -->
<column id="workOrder.remarks" title="备注" visible="true" horizonAlign="center" verticalAlign="middle" />
<!-- 库位编号列 -->
@ -57,7 +57,7 @@
<!-- LOC 列 -->
<column id="workOrder.loc" title="LOC" visible="true" horizonAlign="center" verticalAlign="middle" />
<!-- 日期列 -->
<column id="workOrder.allocationDate" title="日期" visible="true" horizonAlign="center" verticalAlign="middle" format="dateFormat" />
<column id="workOrder.allocationDate" title="创建日期" visible="true" horizonAlign="center" verticalAlign="middle" format="dateFormat" />
</columns>
</maintainPage>
</pages>

View File

@ -148,7 +148,7 @@
<menuItem title="波次" pageId="maintainWaveDocPage"/>
<menuItem title="插单" pageId="maintainPickTicketInsertPage"/>
<menuItem title="中止" pageId="maintainPickTicketStopPage"/>
<menuItem title="工单分配信息" pageId="maintainWorkOrderAllocationPage"/>
<menuItem title="未满足整行拣货" pageId="maintainWorkOrderAllocationPage"/>
</menuItem>
<menuItem title="其他出库管理" dir="receiving6">

View File

@ -180,6 +180,7 @@
pickTicketDetail.strBill12,
t.inventoryStatus,
t.strBill10,
t.ncrCode,
pickTicketDetail.lineNumber,
t.smallUnit,
pickTicket.updateTime,
@ -325,6 +326,7 @@
<column id="pickTicketDetail.strBill12" title="机台号" visible="true" horizonAlign="center" />
<column id="t.inventoryStatus" title="库存状态" visible="true" horizonAlign="center" />
<column id="t.strBill10" title="退料标记" visible="true" horizonAlign="center" />
<column id="t.ncrCode" title="NCR号" visible="true" horizonAlign="center" />
<column id="pickTicketDetail.lineNumber" title="项号" visible="true" horizonAlign="center" />
<column id="t.smallUnit" title="包装" visible="true" horizonAlign="center" />
<column id="pickTicket.updateTime1" title="创建日期" visible="true"