料号长宽高重量限制,界面查询优化

main
userName 2025-03-07 17:35:45 +08:00
parent 094643986e
commit b7f398fa97
17 changed files with 92 additions and 44 deletions

View File

@ -556,6 +556,7 @@ public class AgvTask extends VersionalEntity {
jsonObject2.put("containerCode", agvTask.getContainerCode());
if(agvTask.getType()!=null&&agvTask.getType().equals("AGV上料")) {
jsonObject2.put("endSlotType", agvTask.getEndSlotType());
//WORKBIN_INBOUND=入库
if (!agvTask.getWorkMode().equals("WORKBIN_INBOUND")) {
jsonObject2.put("endSlotCode", agvTask.getEndSlotCode());
}

View File

@ -807,7 +807,7 @@ public class DefaultAgvTaskManager extends DefaultBaseManager implements AgvTask
agvTask.setRobotJobId(TimeNumberUtils.getBigTaskCode());
agvTask.setSlotCode(ls.getOutLocation());
agvTask.setWorkMode("WORKBIN_OUTBOUND");
setContainerCode(stockLP, agvTask,ls);//指定接驳口
setContainerCode(stockLP, agvTask,ls);//指定接驳口,点位指定接驳口
agvTask.setJobType("WORKBIN_MOVE");
agvTask.setBeforePutConfirm(true);
// agvTask.setClassification("AGV取料");
@ -842,6 +842,7 @@ public class DefaultAgvTaskManager extends DefaultBaseManager implements AgvTask
List<Stock> stocks = commonDao.findByQuery(" from Stock where LP='"+stockLP+"'");
if (ls!=null&&(ls.getCode().equals("214")||ls.getCode().equals("215"))) {
agvTask.setEndSlotCode(ls.getOutLocation());
agvTask.setSlotCode(ls.getOutLocation());
agvTask.setStationCode(ls.getGzzCode());
}else {
// if (stocks.size()>0&&stocks.get(0).getDescribe()!=null) {
@ -866,20 +867,22 @@ public class DefaultAgvTaskManager extends DefaultBaseManager implements AgvTask
// }
// }
// }
// if(locationStorages1.size()>0) {
// if(locationStorages1.size()>0&&locationStorages1.get(0).getConnectionPort()!=null) {
// agvTask.setEndSlotCode(locationStorages1.get(0).getConnectionPort());
//
// agvTask.setSlotCode(locationStorages1.get(0).getConnectionPort());
// List<LocationStorage> locationStorages = commonDao.findByQuery(" from LocationStorage where outLocation='"+locationStorages1.get(0).getConnectionPort()+"'");
// if (locationStorages.size()>0) {
// agvTask.setStationCode(locationStorages.get(0).getGzzCode());
// }
// }else {
// agvTask.setEndSlotCode(ls.getOutLocation());
// agvTask.setSlotCode(ls.getOutLocation());
// agvTask.setStationCode(ls.getGzzCode());
// }
// }else {
agvTask.setEndSlotCode(ls.getOutLocation());
agvTask.setStationCode(ls.getGzzCode());//工作站接驳口
agvTask.setSlotCode(ls.getOutLocation());
agvTask.setStationCode(ls.getGzzCode());//工作站接驳口S1-8
// }
}
@ -1313,6 +1316,7 @@ public class DefaultAgvTaskManager extends DefaultBaseManager implements AgvTask
commonDao.store(agvTask);
return interfaceReqManager.sendAgvTask(agvTask);
}
//生成AGV任务
@Override
public AgvTask callLocAndCallHJ(String stockLP, Long id, Long workFaces,Integer identification,Long jobPriorityType,
String classification,String founderName,String remarks) {
@ -1789,8 +1793,8 @@ public class DefaultAgvTaskManager extends DefaultBaseManager implements AgvTask
if(objs.size() > 0) {
int minQty=1000000;
int maxqty=0;
String lps=agvTask.getEndSlotCode();
String gzz=agvTask.getStationCode();
String lps=agvTask.getEndSlotCode();//终点接驳口编号
String gzz=agvTask.getStationCode();//AGV接驳口编号
//计算最少接驳口任务
for(CommonCode cc:objs){
@ -1807,8 +1811,8 @@ public class DefaultAgvTaskManager extends DefaultBaseManager implements AgvTask
}
}
if(maxqty-minQty>12) {
agvTask.setEndSlotCode(lps);
agvTask.setSlotCode(lps);
agvTask.setEndSlotCode(lps);//终点接驳口编号
agvTask.setSlotCode(lps);//库位
agvTask.setStationCode(gzz);
}
// List<LocationStorage> locationStorages = commonDao.findByQuery(" from LocationStorage where outLocation='"+agvTask.getEndSlotCode()+"'");

View File

@ -144,6 +144,7 @@ public class DefaultItemManager extends DefaultBaseManager implements
i.setBeExtend2(item.isBeExtend2());
i.setBeUnpacking(item.isBeUnpacking());
i.setDefaultWarehouseArea(item.getDefaultWarehouseArea());
i.setSmallUnit(item.getSmallUnit());
double a=length*width*height;
if(i.getPackNumber()>0) {
i.setVolume(a/i.getPackNumber());

View File

@ -216,7 +216,8 @@ public interface QueryAppManager extends BaseManager {
*/
@Transactional
JSONObject picking(String taskId,long sid,String billCode,String serials,String itemCode,String mac,double quantity,
String lsCode,long number,long userId,long warehouseId,boolean reSAP,String spr,long location_id,String beUnpacking);
String lsCode,long number,long userId,long warehouseId,boolean reSAP,String spr,
long location_id,String beUnpacking);
//分配查询库存列表
JSONObject queryAllcateInv(long taskId,long userId,long warehouseId);

View File

@ -42,6 +42,7 @@ import com.dev.swms.server.model.base.ItemKey;
import com.dev.swms.server.model.base.Location;
import com.dev.swms.server.model.base.LocationStorage;
import com.dev.swms.server.model.base.WarehouseArea;
import com.dev.swms.server.model.base.WarehouseAreaStatus;
import com.dev.swms.server.model.base.Worker;
import com.dev.swms.server.model.interfaceLog.DataInterfaceLog;
import com.dev.swms.server.model.interfaceLog.InterfaceLog;
@ -63,6 +64,7 @@ import com.dev.swms.server.model.receiving.STATUS;
import com.dev.swms.server.model.receiving.SlotType;
import com.dev.swms.server.model.shipping.PickTicket;
import com.dev.swms.server.model.shipping.PickTicketDetail;
import com.dev.swms.server.model.shipping.SeedWall;
import com.dev.swms.server.service.base.LocationStorageManager;
import com.dev.swms.server.service.interfaceLog.ApiURL;
import com.dev.swms.server.service.interfaceLog.InterfaceManager;
@ -659,7 +661,7 @@ public class DefaultInterfaceReqManager extends DefaultBaseManager implements In
@Override
public String doWmsReqAgv(String URL, String xmlInfo,String f) {
long stime1 = System.currentTimeMillis();
InterfaceLog interfaceLog = interfaceManager.storeInterfaceLog("wms-agv下发任务:", f, "WMS", "RCS", "http",
InterfaceLog interfaceLog = interfaceManager.storeInterfaceLog("wms-agv下发任务:", f, "WMS", "RCS", URL,
xmlInfo);
String str = "";
InputStream instr = null;
@ -1441,16 +1443,26 @@ public class DefaultInterfaceReqManager extends DefaultBaseManager implements In
public void saptoWmsTaskStatus(List<Long> ids,int status,boolean SAPstatus) {
if(SAPstatus) {
PickTicket pt =null;
SeedWall seedWall=null;
for(Long tid:ids) {
Task t= commonDao.load(Task.class, tid);
if(pt==null) {
PickTicketDetail ptd=commonDao.load(PickTicketDetail.class, t.getPickTicketDetail().getId());
pt=commonDao.load(PickTicket.class, ptd.getPickTicket().getId());
}
if(seedWall==null&&t.getSeedWall()!=null&&pt.getBillType().getId()==1094) {
seedWall=commonDao.load(SeedWall.class, t.getSeedWall().getId());
}
t.setStatusCode(status);
commonDao.store(t);
}
if(pt!=null) {
if(seedWall!=null) {
seedWall.setStatus(WarehouseAreaStatus.FREE);
seedWall.setTaskCode(null);
seedWall.setStock(null);
commonDao.store(seedWall);
}
pt.setPrintCount(status);
commonDao.store(pt);
}

View File

@ -1543,6 +1543,7 @@ public class DefaultInterfaceRespManager extends DefaultBaseManager implements I
String orderNumber=JSONobj.has("orderNumber") ? JSONobj.getString("orderNumber") : "";//单号
String applicant=JSONobj.has("applicant") ? JSONobj.getString("applicant") : "";//申请人
String handoverLocation=JSONobj.has("handoverLocation") ? JSONobj.getString("handoverLocation") : "";//交单位置
String WorkflowNumber=JSONobj.has("WorkflowNumber") ? JSONobj.getString("WorkflowNumber") : "";//OA流程编号
List<PickTicket> pickt=commonDao.findByQuery(" from PickTicket pt where pt.code='"+orderNumber+"'");
log.setFunction(orderNumber);
@ -1560,6 +1561,7 @@ public class DefaultInterfaceRespManager extends DefaultBaseManager implements I
pickTicket.setOrderQuantity(expectedQuantity);//出库数量
pickTicket.setOrderDate(new Date());//创建日期
pickTicket.setRelatedBill1(orderNumber);//申请编号
pickTicket.setRelatedBill2(WorkflowNumber);//流程编号
pickTicket.setUpdateTime(new Date());
pickTicket.setWorkerName4(applicant);
pickTicket.setWorkerName1(applicant);

View File

@ -2117,7 +2117,7 @@ public class DefaultQueryAppManager extends DefaultBaseManager implements QueryA
+ "max(item.be_Extend1) as be_Extend1,max(item.be_Extend2) as be_Extend2, "
+ "max(ik.PROP_LC2) as propLC2,max(ik.PROP_LC3) as propLC3,max(pt.sourceType) as sourceType ,"
+ " max(lt.TO_CELL_CODE) as END_REGION ,max(z.LEVELS) as LEVELS,max(ptd.strBill13) as strBill13,"
+ " item.BE_UNPACKING as BE_UNPACKING,item.smallUnit as smallUnit "
+ " item.BE_UNPACKING as BE_UNPACKING,max(item.smallUnit) as smallUnit "
+ " from task t "
+ " left join PICK_TICKET_DETAIL ptd on ptd.id=t.PICK_TICKET_DETAIL_ID "
+ " left join PICK_TICKET pt on pt.id=ptd.PICK_TICKET_ID "
@ -3494,7 +3494,7 @@ public class DefaultQueryAppManager extends DefaultBaseManager implements QueryA
obj.put("propLC2",thb.getPropLC3());
obj.put("be_Extend1",item.isBeExtend1());
obj.put("be_Extend2",item.isBeExtend2());
obj.put("beUnpacking",item.getSmallUnit());//是否最小包装
obj.put("beUnpacking",item.getSmallUnit()==null?"":item.getSmallUnit());//是否最小包装
if(thb.getSourceType()!=null&&thb.getSourceType().equals("313")) {
obj.put("be_Supernova","true");//是否超发
}else {

View File

@ -3254,7 +3254,7 @@ public class DefaultAutoAllocator extends DefaultBaseManager implements AutoAllo
//给SAP回传状态
if(pdids.size()>0) {
for(Long pid:pdids) {
List<Task> tasks= commonDao.findByQuery(" from Task t where "
List<Task> tasks= commonDao.findByQuery(" from Task t where t.statusCode=0 and "
+ " t.pickTicketDetail.pickTicket.id="+pid+" and t.planQuantity>0 ");
boolean SAPstatus= interfaceReqManager.wmsSapZhuantaihuichuang(tasks, 0,"",1);//状态回传
}

View File

@ -4343,10 +4343,10 @@ public class DefaultPickTicketManager extends DefaultBaseManager implements Pick
}
if (wa!=null&&(wa.getLevels()==0||!wa.isBeBill())) {
task.setInventoryStatus("合单完成");
}
if(!bt.isBePresentation()) {
task.setInventoryStatus("交单完成");
}
}
if(beUnpacking!=null&&beUnpacking.length()>0) {
task.setBeUnpacking(true);
task.setSmallUnit(beUnpacking);
@ -8599,7 +8599,12 @@ public class DefaultPickTicketManager extends DefaultBaseManager implements Pick
public void shiftComplete(String taskids, Long sid,Long lcid,Long workerId) {
List<Task> list=commonDao.findByQuery(" from Task t where t.id in("+taskids+")");
List<String> listStock=commonDao.findByQuery("select t.dstLP.LP from Task t where "
+ "t.id in("+taskids+") and t.movedQuantityMU>0 group by t.dstLP.LP");
Location loc=commonDao.load(Location.class, lcid);
if(listStock.size()>1) {
throw new BusinessException(listStock.toString()+"容器错误");
}
if(loc.getType().equals("交接区")) {
throw new BusinessException(loc.getCode()+"库位为交单区");
}
@ -10062,12 +10067,13 @@ public class DefaultPickTicketManager extends DefaultBaseManager implements Pick
Stock stock=list1.get(i);
stock.setLocationIndex(stock.getLocationIndex()+1);
commonDao.store(stock);
// boolean sh=huichuanStock(stock.getLP());
// if(sh) {
boolean sh=true;
sh=huichuanStock(stock.getLP());
if(sh) {
obj.put("s_code", stock.getLP());
obj.put("s_id", stock.getId());
break;
// }
}
}
}else {
throw new BusinessException("无可用容器码");

View File

@ -58,8 +58,8 @@ public class DefaultTaskIssuedManager extends DefaultBaseManager implements Task
PickTicket pt=commonDao.load(PickTicket.class, pid);
if(pt!=null) {
BillType bt=commonDao.load(BillType.class, pt.getBillType().getId());
if(bt.getCode().equals("GPUTPTC")) {
List<Task> Tasks = commonDao.findByQuery(" from Task t where t.waveDocDetail.id is not null and"
if(pt!=null&&pt.getCode().indexOf("CP")==-1&&bt.getCode().equals("GPUTPTC")) {
List<Task> Tasks = commonDao.findByQuery(" from Task t where t.planQuantity>0 and "
+ " t.statusCode=0 and t.pickTicketDetail.pickTicket.id=" + pid + " ");
if(Tasks.size()>0) {
interfaceReqManager.wmsSapZhuantaihuichuang(Tasks, 0,"",1);

View File

@ -849,6 +849,10 @@ public class ASNReceiveServlet extends HttpServlet {
try {
if (userId > 0) {
if (warehouseId > 0) {
if(specs<=0||weight<=0||length<=0||width<=0||weight<=0||height<=0) {
status = "2";
msg = "规格、长宽高、重量需大于0!";
}else {
ASNDetail ad=commonDao.load(ASNDetail.class, asnDetailId);
Item item=commonDao.load(Item.class, ad.getItem().getId());
item.setWeight(weight);
@ -879,11 +883,8 @@ public class ASNReceiveServlet extends HttpServlet {
item.setWidth(width1);
item.setHeight(height1);
// item.setLength(length/100);
item.setCAcoefficient(specs);
item.setPackNumber((int)Math.abs(specs));
// item.setWidth(width);
// item.setHeight(height);
item.setVolume(width1*height1*length1);
item.setBalanceNumber(1);
item.setWarehouseArea(commonDao.load(WarehouseArea.class, z_id));
@ -904,6 +905,7 @@ public class ASNReceiveServlet extends HttpServlet {
pickTicketManager.huichuanItems(list1);
status="1";
msg="保存成功!";
}
} else {
status = "2";
msg = "无仓库信息!";

View File

@ -588,9 +588,14 @@ public class PickingServlet extends HttpServlet {
if (userId > 0) {
if (warehouseId > 0) {
PickTicketManager pickTicketManager = (PickTicketManager) ac.getBean("pickTicketManager");
if(sid>0&&lcId>0) {
pickTicketManager.shiftComplete(taskids,sid,lcId, userId);
msg = "移动成功";
status = "1";
}else {
msg = "扫描库位";
}
} else {
msg = "无仓库信息!";
}

View File

@ -116,6 +116,7 @@ public class XLSExportGenerator implements ExportExcelGenerator, ApplicationCont
} else if(value instanceof java.sql.Date) {
data=dateFormatter.format(value);
data=data.trim();
} else if(value instanceof Timestamp) {
if(property.getTitle().indexOf("日期")!=-1){
@ -123,6 +124,7 @@ public class XLSExportGenerator implements ExportExcelGenerator, ApplicationCont
}else{
data="\t"+datetimehoursFormatter.format(value)+"\t";
}
data=data.trim();
} else {
if(property.getFormat() != null && property.getFormat().length() > 0) {
Formatter formatter = (Formatter)ac.getBean(property.getFormat());
@ -137,6 +139,7 @@ public class XLSExportGenerator implements ExportExcelGenerator, ApplicationCont
if(data.indexOf(",")>-1){
data="\""+data.replace("\"", "\"\"")+"\"";
}
data=data.replaceAll("\r\n", "")+"\t";
}
} else {
data="";
@ -144,7 +147,7 @@ public class XLSExportGenerator implements ExportExcelGenerator, ApplicationCont
}
return data.trim();
return data;
}
public void delFile(String filePath){

View File

@ -99,7 +99,7 @@ public class lptQuickPickServlet extends HttpServlet{
String startSlotCode=jobData.has("startSlotCode")?jobData.getString("startSlotCode"):"";//起点
String agvCode=jobData.getString("agvCode");//AGV编号
// WcsCSDCode.setWmsjbkCode1(startSlotCode, true);
//更新AGV任务作业模式
//更新AGV任务作业模式给WCS下发取料完成信号
agvTaskManager.editAgvTaskAndJobReportEvent("LOAD_COMPLETED",robotJobId,containerCode,startSlotCode,agvCode);
}else
if (state.equals("MOVE_BEGIN")) {
@ -137,7 +137,7 @@ public class lptQuickPickServlet extends HttpServlet{
String startSlotCode=jobData.has("startSlotCode")?jobData.getString("startSlotCode"):"";//起点
String agvCode=jobData.getString("agvCode");//AGV编号
// WcsCSDCode.setWmsjbkCode1(startSlotCode, true);
//更新AGV任务作业模式
//更新AGV任务作业模式/给WCS下发取料完成信号
agvTaskManager.editAgvTaskAndJobReportEvent("LOAD_COMPLETED",robotJobId,containerCode,endSlotCode,agvCode);
}else
//料箱到达库位点

View File

@ -41,10 +41,17 @@
<booleanList id="item.singleItem" title="是否批次" row="17" col="2" span="1" readOnly="false" required="false" reserve="false" forceOverride="true" inVisible="false"/>
<booleanList id="item.beWeight" title="是否危化品" row="18" col="1" span="1" readOnly="false" required="false" reserve="false" forceOverride="true" inVisible="false"/>
<booleanList id="item.beMarkWeight" title="是否序列号" row="18" col="2" span="1" readOnly="false" required="false" reserve="false" forceOverride="true" inVisible="false"/>
<booleanList id="strExtend1" title="图片" row="20" col="2" span="1" readOnly="false" required="false" reserve="false" forceOverride="true" inVisible="false"/>
<booleanList id="item.beUnpacking" title="是否一包一个" row="20" col="2" span="1" readOnly="false" required="false" reserve="false" forceOverride="true" inVisible="false"/>
<booleanList id="item.beUnpacking" title="是否包装更新" row="20" col="2" span="1" readOnly="false" required="false" reserve="false" forceOverride="true" inVisible="false"/>
<list id="item.smallUnit" title="包装" row="21" col="1" span="1" width="120" readOnly="false" required="false" reserve="false" forceOverride="true">
<hql><![CDATA[select
commonCode.code,
commonCode.name
from CommonCode commonCode
where 1=1
and commonCode.codeType='包装'
and commonCode.disabled=false]]></hql>
</list>
</inputUIs>
</search>
<datasource type="hql"><![CDATA[ select
@ -54,10 +61,10 @@
item.CAname,
item.packNumber,
cast(item.weight as string),
item.suggest,
item.length,
item.width,
item.height,
cast(item.suggest as string),
cast(item.length as string),
cast(item.width as string),
cast(item.height as string),
cast(item.volume as string),
item.unit,
item.warehouseArea.name,
@ -85,6 +92,7 @@
where 1=1
/~item.code: and item.code like {item.code} ~/
/~item.warehouseArea.id: and item.warehouseArea.id = {item.warehouseArea.id} ~/
/~item.smallUnit: and item.smallUnit like {item.smallUnit} ~/
/~item.name: and item.name like {item.name} ~/
/~item.saleTime1: and item.saleTime >= {item.saleTime1} ~/
/~item.saleTime2: and item.saleTime <= {item.saleTime2} ~/
@ -144,9 +152,9 @@
horizonAlign="center" format="booleanFormat"/>
<column id="item.brand" title="批次规则" visible="true"
horizonAlign="center" />
<column id="item.beUnpacking" title="是否一包一个" visible="true"
<column id="item.beUnpacking" title="是否包装更新" visible="true"
horizonAlign="center" format="booleanFormat"/>
<column id="item.smallUnit" title="一包一个" visible="true"
<column id="item.smallUnit" title="包装" visible="true"
horizonAlign="center" />
<column id="item.beMarkWeight" title="是否序列号" visible="true"
horizonAlign="center" format="booleanFormat"/>

View File

@ -44,6 +44,7 @@
pickTicket.orderDate,
pickTicket.orderDate,
pickTicket.relatedBill1,
pickTicket.relatedBill2,
pickTicket.workerName1,
pickTicket.workerName4,
pickTicket.shipToName,
@ -82,6 +83,8 @@
visible="true" horizonAlign="center" format="dateTiemFormatter"/>
<column id="pickTicket.relatedBill1" width="130" title="申请编号"
visible="true" horizonAlign="center" dataType="enum" />
<column id="pickTicket.relatedBill2" width="130" title="流程编号"
visible="true" horizonAlign="center" dataType="enum" />
<column id="pickTicket.workerName1" width="101" title="工厂"
visible="true" horizonAlign="center" dataType="enum" />
<column id="pickTicket.workerName4" width="130" title="申请人"

View File

@ -175,9 +175,9 @@
pickTicket.equatedQuantity,
t.barCode,
t.inventoryStatus,
t.strBill10,
pickTicketDetail.lineNumber,
t.beUnpacking,
t.smallUnit,
pickTicket.updateTime,
pickTicket.updateTime,
t.strBill1,
@ -319,9 +319,9 @@
<column id="pickTicket.equatedQuantity" title="加急标记" visible="true" horizonAlign="center" />
<column id="t.barCode" 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="pickTicketDetail.lineNumber" title="项号" visible="true" horizonAlign="center" />
<column id="t.beUnpacking" title="是否一包一个" visible="true"
horizonAlign="center" format="booleanFormat"/>
<column id="t.smallUnit" title="包装" visible="true" horizonAlign="center" />
<column id="pickTicket.updateTime1" title="创建日期" visible="true"
horizonAlign="center" format="dateFormatter" />
<column id="pickTicket.updateTime2" title="创建时间" visible="true"