界面调整,加机台号、限制LOC、整理库区推荐、料号加默认库区、lik

main
userName 2025-03-14 22:53:48 +08:00
parent b6700586fd
commit 1c34877593
29 changed files with 557 additions and 118 deletions

View File

@ -1,6 +1,7 @@
package com.dev.swms.server.model.inventory;
import java.util.Date;
import java.util.List;
import net.sf.json.JSONArray;
@ -661,4 +662,6 @@ public class AgvTask extends VersionalEntity {
public String getTargetAreaCode(){
return this.targetArea.split(",")[0];
}
}

View File

@ -90,7 +90,7 @@ public class PickTicket extends AbstractMoveDoc {
private String logisticsCompany;//工作中心
private String type;//是否生成入库
private String collectNo;//预留号
private String executePlanNo;//
private String executePlanNo;//工作站中心
private String lineName;//是否出WMS仓库
private Date dispatchDate;//回传日期

View File

@ -38,6 +38,9 @@ public interface AgvTaskManager extends BaseManager{
*/
@Transactional
void activateAgvTask(List<Long> ids);
//呼叫料箱、货架,按组下发任务
@Transactional
void CallGroup(String stocks,Long id,boolean jsa,String remarks );
//呼叫料箱、货架
@Transactional
void CallHJS(String stocks,Long id,boolean jsa,String remarks );
@ -197,6 +200,17 @@ public interface AgvTaskManager extends BaseManager{
@Transactional
AgvTask callLoc(String stockLP,Long id,Integer identification,Long jobPriorityType
,String classification,String founderName,String remarks);
/**
* AGV
* @param stockLP
* @param id
* @param identification 1 =
* @param jobPriorityType 1=
* @param classification //
*/
@Transactional
List<AgvTask> callLocGroup(List<String> stockLP,Long id,Integer identification,Long jobPriorityType
,String classification,String founderName,String remarks);
/**
* AGV
* @param stockLP

View File

@ -15,7 +15,7 @@ import com.dev.swms.server.model.inventory.AgvTask;
import com.dev.swms.server.model.inventory.Stock;
import com.dev.energy.server.service.BaseManager;
@Transactional(readOnly = true)
@Transactional(readOnly = false)
public interface LocationManager extends BaseManager {

View File

@ -836,7 +836,121 @@ public class DefaultAgvTaskManager extends DefaultBaseManager implements AgvTask
}
return null;
}
@Override
public List<AgvTask> callLocGroup(List<String> stockLPs, Long id,Integer identification,Long jobPriorityType,
String classification,String founderName,String remarks) {
boolean flag = true;
List<AgvTask> agvList=new ArrayList<AgvTask>();
LocationStorage ls = this.load(LocationStorage.class, id);
if (flag) {
for(String stockLP:stockLPs) {
AgvTask agvTask = EntityFactory.getEntity(AgvTask.class);
//是否有stockLP 到 ls的任务
List<AgvTask> agvTasks = commonDao.findByQuery(" from AgvTask agvTask " + "where agvTask.containerCode='"
+ stockLP + "' and agvTask.status='" + STATUS.ATCALL + "' " + " and agvTask.type='AGV取料'"
+ " and agvTask.targetArea like '%"+ls.getCode()+"%' and agvTask.classification='"+classification+"' "
);
if (agvTasks.size()>0) {
agvTask = agvTasks.get(0);
}else {
StringBuffer sbSql=new StringBuffer();
sbSql.append(" from AgvTask agvTask " + "where agvTask.containerCode='"
+ stockLP + "' and agvTask.status='" + STATUS.ATCALL + "' " +
" and agvTask.type='AGV取料' and agvTask.classification='"+classification+"' ");
if (ls.getCode().equals("214")||ls.getCode().equals("215")) {
sbSql.append(" and agvTask.targetArea = '%"+ls.getCode()+"%'");
}else {
sbSql.append(" and agvTask.targetArea not like '%"+"214"+"%'");
sbSql.append(" and agvTask.targetArea not like '%"+"215"+"%'");
}
List<AgvTask> agvTaskss = commonDao.findByQuery(sbSql.toString());
if (agvTaskss.size() > 0) {
agvTask = agvTaskss.get(0);
if (agvTask.getTargetAreaCode().equals("214")||agvTask.getTargetAreaCode().equals("215")) {
sbSql.append(" and agvTask.targetArea = '%"+ls.getCode()+"%'");
}
if (agvTask.getTargetArea() != null) {
if(agvTask.getTargetArea().indexOf(ls.getCode())==-1) {
agvTask.setTargetArea(agvTask.getTargetArea()+","+ls.getCode());
}
} else {
agvTask.setTargetArea(ls.getCode().trim());
}
} else {
agvTask.setRobotJobId(TimeNumberUtils.getBigTaskCode());
agvTask.setSlotCode(ls.getOutLocation());
agvTask.setWorkMode("WORKBIN_OUTBOUND");
setContainerCode(stockLP, agvTask,ls);//指定接驳口,点位指定接驳口
agvTask.setJobType("WORKBIN_MOVE");
agvTask.setBeforePutConfirm(true);
// agvTask.setClassification("AGV取料");
agvTask.setType("AGV取料");
agvTask.setIdentification(identification);//1=下发0=不下发
agvTask.setClassification(classification);//业务类型
agvTask.setTargetArea(ls.getCode());
agvTask.setFounderName(founderName);
agvTask.setRemarks(remarks);
}
agvTask.setJobPriorityType(jobPriorityType);
if(jobPriorityType!=null&&jobPriorityType==1) {
agvTask.setJobPriority(999L);
}
agvTask.setTargetAreahistory(agvTask.getTargetArea());
commonDao.store(agvTask);
if(agvTask.isBeIssue()==false) {
agvList.add(agvTask);
}
}
}
}
if(agvList.size()>0) {
String result="";
if (identification==1) {//直接下发
// 取料AGV 任务下发
result = interfaceReqManager.doWmsReqAgv(ApiURL.issueAGV, getStockAsnList(agvList)+ "",
agvList.get(0).getRobotJobId()+"任务组");
}
String code="";
JSONObject json=new JSONObject();
String message="";
try{
json = JSONObject.fromObject(result);
code = json.has("code") ? json.getString("code") : "";
message=json.has("message") ? json.getString("message") : "";
}catch (Exception e) {
logger.info("AGV任务下发失败");
}
//标记任务下发状态
for(AgvTask agvTask:agvList) {
if (!code.equals("SUCCESS")) {
agvTask.setErrorMessage(message);
}else {
agvTask.setErrorMessage(null);
agvTask.setBeIssue(true);
agvTask.setDateTime1(new Date());
}
commonDao.store(agvTask);
}
}
// sendAgvTask(agvTask);// 下发RCS
// flag=interfaceReqManager.sendAgvTask(agvTask);
return null;
}
private void setContainerCode(String stockLP, AgvTask agvTask,LocationStorage ls) {
agvTask.setContainerCode(stockLP);
List<Stock> stocks = commonDao.findByQuery(" from Stock where LP='"+stockLP+"'");
@ -1322,7 +1436,7 @@ public class DefaultAgvTaskManager extends DefaultBaseManager implements AgvTask
String classification,String founderName,String remarks) {
synchronized ("callLocAndCallHJ") {
AgvTask agv = null;
LocationStorage locationStorage = this.load(LocationStorage.class, id);
LocationStorage locationStorage = this.load(LocationStorage.class, id);//工作站
List<Long> agvTasktypes = commonDao.findByQuery("select agvTask.id from AgvTask agvTask "
+ " where agvTask.beIssue=true "
+ " and agvTask.classification not in ('"+classification+"') "
@ -1642,7 +1756,37 @@ public class DefaultAgvTaskManager extends DefaultBaseManager implements AgvTask
}
}
}
//按组下发任务
public void CallGroup(String stocks,Long id,boolean jsa,String remarks) {
stocks=stocks.toUpperCase();
String[] strings=stocks.split("\n");
List<String> stockList=new ArrayList<String>();
for (String string : strings) {
List<Stock> stockss = commonDao.findByQuery(" from Stock s where s.LP='"+StringUtil.replace(string)+"'");
if (stockss.size()>0) {
List<Long> AGVTASK=commonDao.findByQuery("select id from AgvTask "
+ " where containerCode='"+stockss.get(0).getLP()+"' "
+ " and status in('ATCALL','ATWAIT','ATWORK','ATPICK','WAIT')");
if(AGVTASK.size()>0) {
continue;
}
stockList.add(string);//容器
}
}
if(stockList.size()>0) {
if(jsa) {
//加急任务
List<AgvTask> agv=callLocGroup(stockList, id,1,1L,SlotType.callTaks,UserHolder.getUser().getName(),remarks);
}else {
//料箱 ,工作站 ,面 1=下发, 优先级 业务类型
List<AgvTask> agv=callLocGroup(stockList, id,1,0L,SlotType.callTaks,UserHolder.getUser().getName(),remarks);
}
}
}
@Override
public void agvStockJobPriorityType(List<Long> agvTaskIds) {
// TODO 自动生成的方法存根
@ -2202,4 +2346,61 @@ public class DefaultAgvTaskManager extends DefaultBaseManager implements AgvTask
}
}
/**
* agv
* @param agvTask
* @return
*/
public JSONArray getStockAsnList(List<AgvTask> agvTasks) {
JSONArray jsonArray=new JSONArray();
for(AgvTask agvTask:agvTasks) {
JSONObject jsonObject=new JSONObject();
// jsonObject.put("agvCode", agvTask.getAgvCode());
jsonObject.put("agvEndPoint", agvTask.getAgvEndPoint());
jsonObject.put("agvType", agvTask.getAgvType());
if(agvTask.getJobPriorityType().equals("1")) {
jsonObject.put("jobPriority", 999);
}else {
jsonObject.put("jobPriority", agvTask.getJobPriority());
}
jsonObject.put("jobPriorityType", agvTask.getJobPriorityType());
jsonObject.put("letDownFlag", agvTask.getLetDownFlag());
jsonObject.put("needOperation", agvTask.getNeedOperation());
jsonObject.put("robotJobId", agvTask.getRobotJobId());
jsonObject.put("robotJobGroupId", agvTask.getRobotJobGroupId());
jsonObject.put("jobType", agvTask.getJobType());
jsonObject.put("warehouseId", agvTask.getWarehouseId());
jsonObject.put("jobId", agvTask.getJobId());
jsonObject.put("msgId", agvTask.getMsgId());
// jsonObject.put("complete", agvTask.getMsgId());
jsonObject.put("complete", agvTask.isComplete());
JSONObject jsonObject2=new JSONObject();
jsonObject2.put("workMode", agvTask.getWorkMode());
jsonObject2.put("stationCode", agvTask.getStationCode());
jsonObject2.put("startSlotCode", agvTask.getStartSlotCode());
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());
}
}
jsonObject2.put("needReset", agvTask.isNeedReset());
jsonObject2.put("autoOutbound", agvTask.isAutoOutbound());
jsonObject2.put("beforePutConfirm", agvTask.isBeforePutConfirm());
if (agvTask.getLayer().equals("")) {
// jsonObject2.put("layer", 2);
}else {
jsonObject2.put("layer", Integer.valueOf(agvTask.getLayer()));
}
jsonObject.put("jobData", jsonObject2);
jsonArray.add(jsonObject);
}
return jsonArray;
}
}

View File

@ -1062,8 +1062,8 @@ public class DefaultImportFileManager extends DefaultBaseManager implements Impo
//料号 描述 包装数量 长(m) 宽(m) 高(m) 重量(KG) 包装类型 单位 中大物料标记
int j=0;
String itemCode=sheet.getCell(j++,i).getContents().trim();//料号
// String itemName=sheet.getCell(j++,i).getContents().trim();//描述
// String unit=sheet.getCell(j++,i).getContents().trim();//单位
String itemName=sheet.getCell(j++,i).getContents().trim();//描述
//
// String xlh=sheet.getCell(j++,i).getContents().trim();//是否许列号
// String bz=sheet.getCell(j++,i).getContents().trim();//保质期
// String dj=sheet.getCell(j++,i).getContents().trim();//单价
@ -1071,8 +1071,10 @@ public class DefaultImportFileManager extends DefaultBaseManager implements Impo
double l=Double.parseDouble(sheet.getCell(j++,i).getContents().trim());//长
double w=Double.parseDouble(sheet.getCell(j++,i).getContents().trim());//宽
double h=Double.parseDouble(sheet.getCell(j++,i).getContents().trim());//高
double wv=Double.parseDouble(sheet.getCell(j++,i).getContents().trim());//重量
double wv=Double.parseDouble(sheet.getCell(j++,i).getContents().trim());//规格重量
String s=sheet.getCell(j++,i).getContents().trim();//包装类型
String unit=sheet.getCell(j++,i).getContents().trim();//单位
String zoneName=sheet.getCell(j++,i).getContents().trim();//默认库区
// String bs=sheet.getCell(j++,i).getContents().trim();//中大件标识
List<Item> items=commonDao.findByQuery("from Item t where t.code=:code ",
new String[]{"code"},new Object[]{itemCode});
@ -1088,8 +1090,10 @@ public class DefaultImportFileManager extends DefaultBaseManager implements Impo
// item.setCreatePeople(UserHolder.getUser().getName());
// item.setCreateDate(new Date());
}
/*item.setUnit(unit);
if(xlh!=null&&xlh.length()>0) {
if(unit!=null&&unit.length()>0) {
item.setUnit(unit);
}
/*if(xlh!=null&&xlh.length()>0) {
item.setBeMarkWeight(true);
}
if(bz!=null&&bz.length()>0) {
@ -1106,48 +1110,65 @@ public class DefaultImportFileManager extends DefaultBaseManager implements Impo
item.setUnit(unit);
item.setGoodType(bs);
*/
item.setCAcoefficient(bqty);
item.setPackNumber((int)bqty);
if(zoneName!=null&&zoneName.length()>0) {
List<WarehouseArea> zoneList= commonDao.findByQuery(" from WarehouseArea w where w.name='"+zoneName+"' and w.disabled=false ");
if(zoneList.size()>0) {
item.setDefaultWarehouseArea(zoneList.get(0));
}
}
if(bqty>0) {
item.setCAcoefficient(bqty);
item.setPackNumber((int)bqty);
}
if(wv>0&&bqty>0) {
BigDecimal bg1 = new BigDecimal(wv);
double f2 = bg1.setScale(6, BigDecimal.ROUND_HALF_UP).doubleValue();
// item.setWeight(f2);//规格重量
double f2 = bg1.setScale(3, BigDecimal.ROUND_HALF_UP).doubleValue();
if(f2<0.001) {
f2=0.001;
}
item.setWeight(f2);//规格重量
BigDecimal bg5 = new BigDecimal(wv/bqty);
double f5 = bg5.setScale(6, BigDecimal.ROUND_HALF_UP).doubleValue();
// item.setSuggest(f5);//毛重
double f5 = bg5.setScale(3, BigDecimal.ROUND_HALF_UP).doubleValue();
if(f5<0.001) {
f5=0.001;
}
item.setSuggest(f5);//毛重
}
if(w>0&&l>0&&h>0) {
BigDecimal bg3 = new BigDecimal(w);
item.setWidth(w/1000);
double width = bg3.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
if(width<item.getWidth()) {
width=width+0.01;
if(width<0.01) {
width=0.01;
}
item.setWidth(width);//宽
BigDecimal bg2 = new BigDecimal(l);
item.setLength(l/1000);
double length = bg2.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
if(length<item.getLength()) {
length=length+0.01;
if(length<0.01) {
length=0.01;
}
item.setLength(length);//长
BigDecimal bg4 = new BigDecimal(h);
item.setHeight(h/1000);
double height = bg4.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
if(height<item.getHeight()) {
height=height+0.01;
if(height<0.01) {
height=0.01;
}
item.setHeight(height);//高
BigDecimal bg6 = new BigDecimal(height*length*width);
item.setVolume(height*length*width);
double volume = bg6.setScale(6, BigDecimal.ROUND_HALF_UP).doubleValue();
if(volume<item.getVolume()) {
volume=volume+0.000001;
if(volume<0.000001) {
volume=0.000001;
}
BigDecimal bg7 = new BigDecimal(volume);
volume = bg7.setScale(6, BigDecimal.ROUND_HALF_UP).doubleValue();
item.setVolume(volume);
if(item.getLength()>0.6||item.getWidth()>0.4) {
item.setGoodType("大件");
}else {
item.setGoodType("小件");
}
}
commonDao.store(item);
// wmsOperationHisManager.storeOperationHis(item.getId(),item.getName(), null,"", "物料信息", "导入货品信息",null,
// null,0, 0,0, 0, "", "WMS");

View File

@ -77,13 +77,14 @@ public class DefaultItemManager extends DefaultBaseManager implements
if(!item.isNew()) {
i=commonDao.load(Item.class, item.getId());
}
if(item.getWeight()<0.001) {
item.setWeight(0.001);
}
if(item.getWeight()>0&&item.getPackNumber()>0) {
i.setSuggest(item.getWeight()/item.getPackNumber());
}else {
i.setSuggest(item.getWeight());
}
BigDecimal bg31 = new BigDecimal(i.getSuggest());
i.setSuggest(bg31.setScale(3, BigDecimal.ROUND_HALF_UP).doubleValue());
List<Inventory> invs=commonDao.findByQuery(" from Inventory i where i.itemKey.item.code='"+item.getCode()+"'");
if(invs.size()>0&&i!=null) {
@ -99,7 +100,7 @@ public class DefaultItemManager extends DefaultBaseManager implements
}else {
}
BigDecimal bg1 = new BigDecimal(item.getSuggest());
BigDecimal bg1 = new BigDecimal(item.getSuggest());//毛重
double f2 = bg1.setScale(3, BigDecimal.ROUND_HALF_UP).doubleValue();
if(f2<0.001){
i.setSuggest(0.001);
@ -108,18 +109,18 @@ public class DefaultItemManager extends DefaultBaseManager implements
}
BigDecimal bg2 = new BigDecimal(item.getLength());
double length = bg2.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
if(length<item.getLength()) {
length=length+0.01;
if(length<0.01) {
length=0.01;
}
BigDecimal bg3 = new BigDecimal(item.getWidth());
double width = bg3.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
if(width<item.getWidth()) {
width=width+0.01;
if(width<0.01) {
width=0.01;
}
BigDecimal bg4 = new BigDecimal(item.getHeight());
double height = bg4.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
if(height<item.getHeight()) {
height=height+0.01;
if(height<0.01) {
height=0.01;
}
if(item.getIsBOM()&&item.getValidPeriod()<=0) {
throw new BusinessException("有效期料号必须输入保质期");
@ -146,15 +147,15 @@ public class DefaultItemManager extends DefaultBaseManager implements
i.setDefaultWarehouseArea(item.getDefaultWarehouseArea());
i.setSmallUnit(item.getSmallUnit());
double a=length*width*height;
if(i.getPackNumber()>0) {
i.setVolume(a/i.getPackNumber());
}else {
i.setVolume(a);
}
// if(i.getPackNumber()>0) {
// i.setVolume(a/i.getPackNumber());
// }else {
// i.setVolume(a);
// }
BigDecimal bg = new BigDecimal(i.getVolume());
double f1 = bg.setScale(6, BigDecimal.ROUND_HALF_UP).doubleValue();
if(f1<i.getVolume()) {
f1=f1+0.000001;
if(f1<0.000001) {
f1=0.000001;
}
i.setVolume(f1);
i.setBeMarkWeight(item.isBeMarkWeight());

View File

@ -1318,26 +1318,20 @@ public class DefaultLocationManager extends DefaultBaseManager implements
@Override
public void locationInventory() {
List<Long> list=new ArrayList<Long>();
try{
String hql=" select inv.location.id from Inventory inv where inv.quantity>0 "
String hql=" select inv.location.id from Inventory inv where inv.quantity>0 "
+ " and inv.location.type in('存货','不良品') and inv.location.status='FREE' "
+ " GROUP BY inv.location.id ";
list=commonDao.findByQuery(hql);
String hql1=" select lc.id from Location lc where lc.status='OCCUPY' "
+ " and lc.id not in(select inv.location.id from Inventory inv where inv.quantity>0)"
+ " GROUP BY lc.id ";
list.addAll(commonDao.findByQuery(hql1));
if(list.size()>0) {
// kuwei(list);
for(Long id:list) {
kuwei(id);
}
}
}catch (Exception e) {
}
// List<Long> list=new ArrayList<Long>();
// String hql=" select l.id from Location l where l.status='OCCUPY' ";
// list=commonDao.findByQuery(hql);
// if(list.size()>0) {
// kuwei(list);
// }
logger.info("刷新库满度完成");
}
@ -1438,10 +1432,12 @@ public class DefaultLocationManager extends DefaultBaseManager implements
quant=quant+inventory2.getQuantity();
ItemKey itemKey=commonDao.load(ItemKey.class, inventory2.getItemKey().getId());
Item item=commonDao.load(Item.class, itemKey.getItem().getId());
if(loc.getDimension()>0&&item.getPackNumber()>0) {
b+=((item.getLength()*item.getWidth())/item.getPackNumber()*inventory2.getQuantity())*1.2;//物料的长×宽÷规格数×库存数×1.2=物料库存的面积
sum2+=((item.getLength()*item.getWidth())/item.getPackNumber()*inventory2.getQuantity())*1.2/loc.getDimension()*100;//物料的长×宽÷规格数×库存数×1.2÷库位的体积=库满度
BigDecimal bg3 = new BigDecimal(sum2);
mianji = bg3.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
}
}
String bbb=String.valueOf(mianji);//库满度
if(b>loc.getDimension()){//如果物料库存的面积大于这个库位的面积
@ -1543,8 +1539,9 @@ public class DefaultLocationManager extends DefaultBaseManager implements
null,0, 0,0, 0, "", "WMS");
}
} catch (Exception e) {
wmsOperationHisManager.storeOperationHis(loc.getId(),loc.getCode(), null,"", "库位信息", "库满度刷新",null,
null,0, 0,0, 0, e.getMessage().substring(0,255), "WMS");
logger.info(e.getMessage());
// wmsOperationHisManager.storeOperationHis(loc.getId(),loc.getCode(), null,"", "库位信息", "库满度刷新",null,
// null,0, 0,0, 0, e.getMessage().substring(0,255), "WMS");
}
}

View File

@ -1800,9 +1800,9 @@ public class DefaultCountPlanManager extends DefaultBaseManager implements
// List<CountRecord> yfrg=commonDao.findByQuery(" from CountRecord c where c.location.zone.id=1815 "
// +" and c.countPlan.id="+countPlanId+" order by c.location.code");
List<CountRecord> yfrg=quserCountPlanTask(1815L, countPlanId);//2#3研发人工区
List<CountRecord> yfrg=quserCountPlanTask(1815L, countPlanId);//2#2研发人工区
if(yfrg.size()>0&&w38==0) {
throw new BusinessException("2#3研发人工区有盘点任务,必须勾选");
throw new BusinessException("2#2研发人工区有盘点任务,必须勾选");
}
List<CountRecord> yfgk=quserCountPlanTask(1816L, countPlanId);//2#3研发人工库
if(yfgk.size()>0&&w39==0) {

View File

@ -572,7 +572,7 @@ public class DefaultInterfaceRespManager extends DefaultBaseManager implements I
pTicket.setSourceId(strBill1);
pTicket.setWorkerName1(WERKS);//工厂
pTicket.setDeliveryMode(ZREV);//receiver
pTicket.setExecutePlanNo(CY_SEQNR);//机台号
commonDao.store(pTicket);
ptid=pTicket.getId();
PickTicketDetail ptd =null;
@ -2782,9 +2782,10 @@ public class DefaultInterfaceRespManager extends DefaultBaseManager implements I
+" left join ITEM_KEY ik on inv.ITEM_KEY_ID=ik.ID "
+" left join ITEM i on ik.ITEM_ID=i.ID "
+" left join LOCATION loc on inv.LOCATION_ID=loc.ID "
+" left join ZONE z on z.id=loc.ZONE_ID "
+" where 1=1 and loc.id not in(88242) and i.Be_SAP_Item=1 "
+ " and inv.status in('待上架','已入库','冻结','整理中') "
+ " and inv.quantity<>0 ");
+ " and inv.quantity<>0 and z.CARRIER_TYPE_ID in(3,5) ");
if (MATNR!=null&&MATNR.length()>0) {
sb.append(" and i.code='"+MATNR+"'");
}
@ -3022,7 +3023,9 @@ public class DefaultInterfaceRespManager extends DefaultBaseManager implements I
+" left join ITEM_KEY ik on inv.ITEM_KEY_ID=ik.ID "
+" left join ITEM i on ik.ITEM_ID=i.ID "
+" left join LOCATION loc on inv.LOCATION_ID=loc.ID "
+" where 1=1 and loc.id not in(88242,88241) and inv.MASTER_PACK_QUANTITY>0 and inv.status='已入库' ");
+" left join ZONE z on z.id=loc.ZONE_ID "
+" where 1=1 and loc.id not in(88242,88241) and z.CARRIER_TYPE_ID in(3,5) and "
+ " inv.MASTER_PACK_QUANTITY>0 and inv.status='已入库' ");
sb.append(" and i.FEE_TYPE='OA' and i.Be_SAP_Item=0");
if (company!=null&&company.length()>0) {
sb.append(" and ik.PROP_C9='"+company+"'");

View File

@ -142,6 +142,7 @@ public class DefaultQueryAppManager extends DefaultBaseManager implements QueryA
String data = "";
String h = "";
String locFloor="";
String zoneCode="";//推荐库区
String str1=asn_code;//扫描的凭证号
Session session = ((HibernateDaoSupport) this.commonDao).getSessionFactory().openSession();
try {
@ -177,8 +178,10 @@ public class DefaultQueryAppManager extends DefaultBaseManager implements QueryA
+ " case when ad.ftl_qty>0 then ad.ftl_qty-ad.RECEIVED_QUANTITY else ad.EXPECTED_QUANTITY-ad.RECEIVED_QUANTITY end as orderQuantity,"
+ "ad.RECEIVED_QUANTITY as expectedQuantity, ad.strBill8,ad.PROP_C5 as propC5,"
+" ad.PROP_C2 as propC2,ad.PROP_C1 as propC1,PROP_C3 as propC3,ad.strBill2,item.UNIT as unit,"
+ "item.ISBOM,z.id as z_id,item.volume,item.BE_MARK_WEIGHT as beMarkWeight,item.FEE_TYPE,"
+ " item.be_Extend1,item.be_Extend2,asn.BILL_TYPE_ID,ad.strBill11,ad.bf_qty "
+ "item.ISBOM,"
+ "(case when item.default_Warehouse_Area_ID is not NULL then item.default_Warehouse_Area_ID ELSE z.id END) as z_id,"
+ "item.volume,item.BE_MARK_WEIGHT as beMarkWeight,item.FEE_TYPE,"
+ " item.be_Extend1,item.be_Extend2,asn.BILL_TYPE_ID,ad.strBill11,ad.bf_qty ,z.name as z_name "
+ " from ASN_DETAIL ad "
+ " left join ASN asn on asn.id=ad.ASN_ID "
+ " left join ITEM item on item.id=ad.ITEM_ID "
@ -321,6 +324,7 @@ public class DefaultQueryAppManager extends DefaultBaseManager implements QueryA
return resultJson;
}
}
zoneCode= arrier[23]==null?"":arrier[23].toString();//库区
array.add(obj);
}
data = array.toString();
@ -365,6 +369,7 @@ public class DefaultQueryAppManager extends DefaultBaseManager implements QueryA
resultJson.put("data", data);
resultJson.put("msg", msg);
resultJson.put("h", h);
resultJson.put("zoneCode", zoneCode);
resultJson.put("locFloor", locFloor);
return resultJson;
}

View File

@ -66,6 +66,7 @@ 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.Worker;
import com.dev.swms.server.model.delivery.ZonePlant;
import com.dev.swms.server.model.interfaceLog.InterfaceLog;
import com.dev.swms.server.model.interfaces.InterfaceWmsDownload;
import com.dev.swms.server.model.inventory.AgvTask;
@ -2327,7 +2328,7 @@ public void addASNDetail(Long id,ASNDetail asnDetail) {
@Override
public void receiveGoods(List<Long> asnDetailIds, Date receiveDate1,
Long workerId,long dock_id,Long ls_id,double receivedQuantity,long stockId,
Long workerId,long dock_id,Long zone_id,double receivedQuantity,long stockId,
Long pqty,String mac,String statusDes,boolean agv) throws Exception{
for(Long id:asnDetailIds){//循环整理(收货)
ASNDetail asnDetail=this.load(ASNDetail.class, id);//根据整理的这条数据获取它所有的明细
@ -2337,14 +2338,27 @@ public void addASNDetail(Long id,ASNDetail asnDetail) {
}
BillType bt=commonDao.load(BillType.class, asn.getBillType().getId());
Item item=this.load(Item.class, asnDetail.getItem().getId());//货品
WarehouseArea warehouseArea =commonDao.load(WarehouseArea.class, ls_id);//库区
WarehouseArea warehouseArea =commonDao.load(WarehouseArea.class, zone_id);//库区
if(warehouseArea!=null) {
//库区限制LOC
if(asnDetail.getLotInfo()!=null&&asnDetail.getLotInfo().getPropC2()!=null) {
String pr2=asnDetail.getLotInfo().getPropC2();
String wahql=" from ZonePlant z where z.area.id="+zone_id ;
List<ZonePlant> zplist=commonDao.findByQuery(wahql);
for(ZonePlant zp:zplist) {
if(zp.getpLocation().getCode().equals(pr2)) {
throw new BusinessException(pr2+"不能整理到"+warehouseArea.getName());
}
}
}
}
Stock stock=commonDao.load(Stock.class, stockId);
Location location=null;
location=this.load(Location.class, dock_id);//库位
if(warehouseArea==null&&location==null) {
throw new BusinessException("库区和库位不能都为空");
}
if(ls_id.intValue()==1763&&dock_id==0) {
if(zone_id.intValue()==1763&&dock_id==0) {
throw new BusinessException("料箱区,必须扫描料箱格口码");
}
if(stock==null&&location!=null) {
@ -2405,7 +2419,7 @@ public void addASNDetail(Long id,ASNDetail asnDetail) {
}
}
//判断该容器已有其它库区物料
int count=queryConWare(stockId, ls_id);
int count=queryConWare(stockId, zone_id);
if(count==1){
throw new BusinessException("该容器已有其它库区物料!");
}

View File

@ -44,6 +44,7 @@ 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.delivery.PlantLocation;
import com.dev.swms.server.model.delivery.ZonePlant;
import com.dev.swms.server.model.interfaceLog.InterfaceLog;
import com.dev.swms.server.model.inventory.Configuration;
import com.dev.swms.server.model.inventory.Inventory;
@ -1107,7 +1108,7 @@ public class DefaultMoveDocManager extends DefaultBaseManager implements MoveDoc
public void manualMoveDetail(MoveDocDetail detail, Long userId, Double caseQty, Double puQty, Stock srcLp) {
Location deslocation = this.commonDao.load(Location.class, detail.getDstLoc().getId());
Location srclocation = this.commonDao.load(Location.class, detail.getSrcLoc().getId());
WarehouseArea wa=commonDao.load(WarehouseArea.class, deslocation.getZone().getId());
if (deslocation.getCountLock() != null && !deslocation.getCountLock().equals("")) {
throw new BusinessException("该库位正在盘点,不能上架");
}
@ -1116,6 +1117,19 @@ public class DefaultMoveDocManager extends DefaultBaseManager implements MoveDoc
Item item = this.commonDao.load(Item.class, detail.getItem().getId());
ItemKey itemKey = this.commonDao.load(ItemKey.class, detail.getItemKey().getId());
Worker worker = commonDao.load(Worker.class, userId);
if(wa!=null) {
//库区限制LOC
if(itemKey.getLotInfo()!=null&&itemKey.getLotInfo().getPropC2()!=null) {
String pr2=itemKey.getLotInfo().getPropC2();
String wahql=" from ZonePlant z where z.area.id="+wa.getId() ;
List<ZonePlant> zplist=commonDao.findByQuery(wahql);
for(ZonePlant zp:zplist) {
if(zp.getpLocation().getCode().equals(pr2)) {
throw new BusinessException(pr2+"不能上架到"+wa.getName());
}
}
}
}
if (!(MoveDocStatus.CANCEL.equals(detail.getMoveDoc().getStatus()) || MoveDocStatus.CLOSE.equals(detail
.getMoveDoc().getStatus()))) {
Double moveQuantity = 0d;
@ -2288,6 +2302,8 @@ public class DefaultMoveDocManager extends DefaultBaseManager implements MoveDoc
srcInv.setStatuss("T");
}
commonDao.store(srcInv);
locst.setStatus(WarehouseAreaStatus.OCCUPY);
commonDao.store(locst);
}
}
@ -2526,11 +2542,11 @@ public class DefaultMoveDocManager extends DefaultBaseManager implements MoveDoc
String px_sql = " order by l.gdType asc ";
//库位高度
if (st.getGdType().equals(TranType.gd_d)) {
sql += " and 1=1 and l.gdType=1 ";
sql += " and 1=1 and l.gdType in('1','2') ";
} else if (st.getGdType().equals(TranType.gd_z)) {
sql += " and l.gdType =2 ";
sql += " and l.gdType !='1' ";
} else if (st.getGdType().equals(TranType.gd_g)) {
sql += " and l.gdType =3 ";
sql += " and l.gdType ='3' ";
}
// sql += " and l.name in ('01-02-01','02-02-01','03-02-01','04-02-01') ";
if (st.getLocationStorage()!=null) {
@ -2580,7 +2596,7 @@ public class DefaultMoveDocManager extends DefaultBaseManager implements MoveDoc
// ls = this.commonDao.findByQuery(hql1 + px_sql);
// }
if (ls.size() <= 8) {
if (ls.size() <= 10) {
throw new BusinessException("无合适的存放位");
} else {
return ls.get(0);
@ -2665,6 +2681,9 @@ public class DefaultMoveDocManager extends DefaultBaseManager implements MoveDoc
List<Inventory> inventories = commonDao.findByQuery(" from Inventory inv where inv.location.code='"+t.getBarcode()+"'");
if (inventories.size()>0) {
Inventory inventory=inventories.get(0);
Location lc=commonDao.load(Location.class, inventory.getLocation().getId());
lc.setStatus(WarehouseAreaStatus.FREE);
commonDao.store(lc);
this.commonDao.delete(inventory);
}
flag=false;
@ -3575,8 +3594,6 @@ public class DefaultMoveDocManager extends DefaultBaseManager implements MoveDoc
inv = new Inventory();// EntityFactory.getEntity(Inventory.class);
inv.setLocation(location);
inv.setItemKey(itemKey);
location.setCurrentItem(item.getId());
location.setCurrentLot(itemKey.getId());
inv.setCaCoefficient(1D);
inv.setLP(st);
// inv.setStatus("待上架");
@ -4187,7 +4204,7 @@ public class DefaultMoveDocManager extends DefaultBaseManager implements MoveDoc
// ls = this.commonDao.findByQuery(hql1 + px_sql);
// }
if (ls.size() <= 4) {
if (ls.size() <= 5) {
throw new BusinessException("不存在合适的库位");
} else {
return ls.get(0);

View File

@ -473,7 +473,9 @@ public class DefaultPickTicketManager extends DefaultBaseManager implements Pick
if ((pickTicket.getAllocatedQuantity() > 0 || pickTicket.getAllocatedQuantity() == pickTicket.getOrderQuantity()
&& pickTicket.getPickedQuantity() == 0 && pickTicket.getShippedQuantity() == 0)
|| pickTicket.getOrderQuantity() == pickTicket.getAllocatedQuantity()) {
pickTicket.setStatus(PickTicketStatus.ALLOCATE);
if(!pickTicket.getStatus().equals(PickTicketStatus.CHECK)) {
pickTicket.setStatus(PickTicketStatus.ALLOCATE);
}
}
if (pickTicket.getPickedQuantity() < pickTicket.getAllocatedQuantity() && pickTicket.getPickedQuantity() > 0) {
pickTicket.setStatus(PickTicketStatus.PICKUP);
@ -2818,6 +2820,20 @@ public class DefaultPickTicketManager extends DefaultBaseManager implements Pick
for (Map.Entry<Long, List> me : itor) {
Inventory inventory = this.load(Inventory.class, Long.parseLong(me.getKey().toString()));
String ptd_loc=ptd.getNewLotInfo().getPropC2();
String inv_loc=inventory.getItemKey().getLotInfo().getPropC2();
String ptd_plan=ptd.getNewLotInfo().getPropC9();
String inv_plan=inventory.getItemKey().getLotInfo().getPropC9();
if(ptd_loc!=null&&ptd_loc.length()>0) {
if(inv_loc!=null&&!inv_loc.equals(ptd_loc)) {
throw new BusinessException("需要分配库存地"+ptd_loc+"的库存");
}
}
if(ptd_plan!=null&&ptd_plan.length()>0) {
if(inv_plan!=null&&!inv_plan.equals(ptd_plan)) {
throw new BusinessException("需要分配工厂"+ptd_plan+"的库存");
}
}
double quantity = Double.parseDouble(me.getValue().get(0).toString());
double unallocateQty = ptd.getOrderQuantity() - ptd.getAllocatedQuantity();
if (unallocateQty == 0) {
@ -4344,7 +4360,7 @@ public class DefaultPickTicketManager extends DefaultBaseManager implements Pick
if (wa!=null&&(wa.getLevels()==0||!wa.isBeBill())) {
task.setInventoryStatus("合单完成");
}
if(!bt.isBePresentation()) {
if(!bt.isBePresentation()&&wa.getCarrierType().getId()==3) {
task.setInventoryStatus("交单完成");
}
if(beUnpacking!=null&&beUnpacking.length()>0) {

View File

@ -849,7 +849,7 @@ 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) {
if(specs<=0||weight<=0||length<=0||width<=0||height<=0) {
status = "2";
msg = "规格、长宽高、重量需大于0!";
}else {
@ -866,18 +866,18 @@ public class ASNReceiveServlet extends HttpServlet {
}
BigDecimal bg2 = new BigDecimal(length/100);
double length1 = bg2.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
if(length<item.getLength()) {
length1=length+0.01;
if(length1<0.01) {
length1=0.01;
}
BigDecimal bg3 = new BigDecimal(width/100);
double width1 = bg3.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
if(width<item.getWidth()) {
width1=width1+0.01;
if(width1<0.01) {
width1=0.01;
}
BigDecimal bg4 = new BigDecimal(height/100);
double height1 = bg4.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
if(height<item.getHeight()) {
height1=height1+0.01;
if(height1<0.01) {
height1=0.01;
}
item.setLength(length1);
item.setWidth(width1);
@ -886,6 +886,12 @@ public class ASNReceiveServlet extends HttpServlet {
item.setCAcoefficient(specs);
item.setPackNumber((int)Math.abs(specs));
item.setVolume(width1*height1*length1);
BigDecimal bg = new BigDecimal(item.getVolume());
double f1 = bg.setScale(6, BigDecimal.ROUND_HALF_UP).doubleValue();
if(f1<0.000001) {
f1=0.000001;
}
item.setVolume(f1);
item.setBalanceNumber(1);
item.setWarehouseArea(commonDao.load(WarehouseArea.class, z_id));
List<ASNDetail> ads=commonDao.findByQuery(" from ASNDetail ad where ad.asn.id="+ad.getAsn().getId()+" and ad.item.id="+ad.getItem().getId());

View File

@ -139,12 +139,11 @@ public class XLSExportGenerator implements ExportExcelGenerator, ApplicationCont
if(data.indexOf(",")>-1){
data="\""+data.replace("\"", "\"\"")+"\"";
}
data=data.replaceAll("\r\n", "")+"\t";
data=data.replaceAll("\r\n", "")+"";
}
} else {
data="";
}
}
return data;

View File

@ -0,0 +1,13 @@
---------------2025-03-14
CREATE TABLE [dbo].[ZONE_PLANT] (
[ID] numeric(19) IDENTITY(1,1) NOT NULL,
[ZONE_ID] int NULL,
[PLANE_LOCATION_ID] int NULL,
CONSTRAINT [PK__zone_pla__3213E83FEFD8CD6E] PRIMARY KEY CLUSTERED ([ID])
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
ON [PRIMARY]
)
ON [PRIMARY]
GO
ALTER TABLE [dbo].[ZONE_PLANT] SET (LOCK_ESCALATION = TABLE)

View File

@ -0,0 +1,54 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- 呼叫货架 -->
<pages>
<editPage id="editCallLOCGroupPage" title="AGV取料"
entityClass="com.dev.swms.server.model.inventory.Inventory" onClose="refreshParent"
width="300" height="200">
<inputUIs>
<hidden id="asn.id" reserve="false" />
<textArea id="stocks" title="呼叫料箱"
row="1" col="1" span="1" readOnly="false" required="false"
reserve="false" forceOverride="true" inVisible="false" rows="5"
height="80"/>
<!-- <text id="stockLP" title="料箱码"
row="1" col="1" readOnly="false" required="true" reserve="false"
forceOverride="false" inVisible="false" trimSpace="true" /> -->
<remote id="LocationStorageId" title="工作站" row="2" span="1"
readOnly="false" required="true" reserve="false" forceOverride="true"
inVisible="false" manualEditable="true" percentSignPosition="both"
displayColumn="2" displayedTableHead="序号,工作站编码,工作站名称">
<hql><![CDATA[select loc.id, loc.code, loc.name from LocationStorage loc
where loc.code like :param
and loc.disabled = false and loc.name in ('201','202','203','204','205','206','207','208','209','210','211','212',
'213','214','215','101','102','103','104','105','106','107')
]]></hql>
</remote>
<textArea id="desreak" title="备注"
row="6" col="1" span="1" readOnly="false" required="true"
reserve="false" forceOverride="true" inVisible="false" rows="2"
height="80"/>
<checkbox id="ordersAll" title="是否加急" row="7" col="1" defaultValue="true"
span="1" readOnly="false" required="false" reserve="false" forceOverride="true" inVisible="false" />
</inputUIs>
<buttons>
<commit id="allLOCgroup" title="AGV取料"
enableType="none" invisible="false">
<mappings>
<mapping id="stocks" className="string" />
<mapping id="LocationStorageId" className="long" />
<mapping id="ordersAll" className="boolean" />
<mapping id="desreak" className="string" />
</mappings>
<actions>
<action managerName="agvTaskManager" methodName="CallGroup"
parameter="stocks,LocationStorageId,ordersAll,desreak" />
</actions>
<forwards>
<forward name="refreshParent" newEnabled="true"
editEnabled="true" />
<forward name="closeWindow" newEnabled="true" editEnabled="true" />
</forwards>
</commit>
</buttons>
</editPage>
</pages>

View File

@ -32,7 +32,7 @@
row="2" col="3" defaultValue="0" readOnly="false" required="false"
reserve="false" forceOverride="false" inVisible="false" validator="positiveNumber"
trimSpace="true" isPrecision="true"/>
<text id="item.suggest" title="毛重*kg"
<text id="item.suggest" title="单个毛重*kg"
row="2" col="4" defaultValue="0" readOnly="false" required="false"
reserve="false" forceOverride="false" inVisible="false" validator="positiveNumber"
trimSpace="true" isPrecision="true"/>

View File

@ -9,7 +9,6 @@
</inputUIs>
</search>
<datasource type="hql"><![CDATA[ select
item.id,
item.code,
item.name,
@ -40,11 +39,9 @@
where 1=1 and item.code='0'
]]></datasource>
<columns>
<column id="item.id" title="序号" width="160" visible="true"
horizonAlign="center" />
<column id="item.code" title="料号" width="160" visible="true"
horizonAlign="center" />
<column id="item.code" title="描述" width="160" visible="true"
<column id="item.name" title="描述" width="160" visible="true"
horizonAlign="center" />
<column id="item.CAname" title="包装数量" visible="true"
horizonAlign="center" />
@ -60,7 +57,8 @@
horizonAlign="center" />
<column id="item.unit" title="单位" visible="true" width="40"
horizonAlign="center" />
<column id="item.zonce" title="默认库区名称" visible="true" width="40"
horizonAlign="center" />
</columns>
<buttons>

View File

@ -119,7 +119,7 @@ order by wa.name asc,wa.id asc
editEnabled="false" />
</forwards>
</commit>
<popup id="modifyset" title="配置LOC" enableType="multi"
<popup id="modifyset" title="限制的LOC" enableType="multi"
invisible="false" containId="true" pageId="modifyWarehouseAreaPage">
</popup>
</buttons>

View File

@ -0,0 +1,55 @@
<?xml version="1.0" encoding="UTF-8"?>
<pages>
<maintainPage id="maintainZonePlantLocationPage" title="添加LOC"
onClose="refreshParent" width="450" height="500" autoQuery="true">
<search>
<inputUIs>
<list id="btc.plantCode" title="工厂" row="1" col="1" span="1"
width="120" readOnly="false" required="false" reserve="false"
forceOverride="true">
<hql><![CDATA[select
plantInfo.code,
plantInfo.code
from PlantInfo plantInfo
where 1=1 order by plantInfo.name asc ]]></hql>
</list>
<text id="pl.code" title="LOC" row="1" col="2"
readOnly="false" required="false" reserve="false" forceOverride="false"
inVisible="false" trimSpace="false" />
</inputUIs>
</search>
<datasource><![CDATA[ SELECT
pl.id,
pl.plantInfo.code,
pl.code
FROM PlantLocation pl
WHERE 1=1 and pl.id not in(select zp.pLocation.id from ZonePlant zp where zp.area.id={wa.id})
/~pl.code: and pl.code like {pl.code} ~/
/~btc.plantCode: and pl.plantInfo.code = {btc.plantCode} ~/
]]></datasource>
<columns>
<column id="pl.id" title="pl.id" visible="false" />
<column id="pl.plantInfo.code" title="工厂" visible="true" horizonAlign="center" />
<column id="pl.code" title="LOC" visible="true" horizonAlign="center" />
</columns>
<buttons>
<commit id="save" title="save" enableType="none" invisible="false">
<mappings>
<mapping id="ids" className="list" />
<mapping id="wa.id" className="long" />
</mappings>
<actions>
<action managerName="warehouseAreaManager" methodName="storeZonePlant"
parameter="wa.id,ids" />
</actions>
<forwards>
<forward name="refreshParent" newEnabled="true"
editEnabled="true" />
<forward name="resetWindow" newEnabled="true" editEnabled="false" />
</forwards>
</commit>
</buttons>
</maintainPage>
</pages>

View File

@ -9,7 +9,7 @@
</inputUIs>
</modify>
<detail autoQuery="false">
<detail autoQuery="true">
<datasource><![CDATA[ SELECT
zp.id,
zp.pLocation.plantInfo.code,
@ -28,7 +28,7 @@
invisible="false" containId="false" pageId="modifyZonePlantPage">
</popup> -->
<popup id="newDetail1" title="添加" enableType="none"
invisible="false" containId="false" pageId="modifyZonePlantPage">
invisible="false" containId="false" pageId="maintainZonePlantLocationPage">
</popup>
<commit id="deleteDetail" title="移除" enableType="none"
invisible="false" >

View File

@ -9,13 +9,13 @@
</inputUIs>
</modify>
<detail autoQuery="false">
<detail autoQuery="true">
<datasource><![CDATA[ SELECT
pl.id,
pl.plantInfo.code,
pl.code
FROM PlantLocation pl
WHERE 1=1
WHERE 1=1 and pl.id not in(select zp.pLocation.id from ZonePlant zp where zp.area.id={wa.id})
]]></datasource>
<columns>
<column id="pl.id" title="pl.id" visible="false" />

View File

@ -101,7 +101,7 @@
width="100" readOnly="false" required="false" reserve="false"
forceOverride="true" inVisible="false" trimSpace="true"
isPrecision="true" />
<text id="w38" title="2#3研发人工区" defaultValue="0" row="21" span="2" col="1"
<text id="w38" title="2#2研发人工区" defaultValue="0" row="21" span="2" col="1"
width="100" readOnly="false" required="false" reserve="false"
forceOverride="true" inVisible="false" trimSpace="true"
isPrecision="true" />

View File

@ -348,6 +348,9 @@
<forward name="refreshWindow" newEnabled="true" editEnabled="true" />
</forwards>
</commit>
<popup id="callLOCPageGroup" title="呼叫组任务" enableType="none" invisible="false"
containId="false" pageId="editCallLOCGroupPage">
</popup>
<!-- <commit id="editAgvTaskSaleTime" title="生成热度移位任务"
enableType="multi" invisible="false" >
<mappings>

View File

@ -139,11 +139,9 @@
parameter="map,parentIds" />
</actions>
<forwards>
<forward name="refreshWindow" newEnabled="true"
editEnabled="true" />
<forward name="refreshWindow" newEnabled="true" editEnabled="true" />
<forward name="closeWindow" newEnabled="true" editEnabled="true" />
<forward name="refreshParent" newEnabled="true"
editEnabled="true" />
<forward name="refreshParent" newEnabled="true" editEnabled="true" />
</forwards>
</commit>
</buttons>

View File

@ -51,10 +51,17 @@
<hql><![CDATA[ select pl.code,
pl.code
from PlantInfo pl where 1=1 and pl.disabled=false order by pl.code]]></hql>
</list>
</list>
<text id="pickTicket.executePlanNo" title="机台号" row="6" col="2"
readOnly="false" required="false" reserve="false" forceOverride="false"
inVisible="false" trimSpace="false" />
<text id="pickTicket.logisticsCompany" title="工作中心" row="7" col="1"
readOnly="false" required="false" reserve="false" forceOverride="false"
inVisible="false" trimSpace="false" />
<text id="pickTicket.deliveryMode" title="receiver" row="7" col="1"
readOnly="false" required="false" reserve="false" forceOverride="false"
inVisible="false" trimSpace="false" />
<checkbox id="ordersAll" title="ordersAll" row="8" col="1" defaultValue="false"
span="1" readOnly="false" required="false" reserve="false" forceOverride="true" inVisible="false" />
</inputUIs>
@ -74,14 +81,15 @@
cast (pickTicket.pickedQuantity as string),
pickTicket.shippedQuantity,
pickTicket.relatedBill3,
pickTicket.workerName1,
pickTicket.executePlanNo,
pickTicket.deliveryMode,
pickTicket.printCount,
pickTicket.priority,
pickTicket.updateTime,
pickTicket.updateTime,
pickTicket.relatedBill1,
pickTicket.relatedBill2,
pickTicket.relatedBill2,
pickTicket.shipDateStart,
pickTicket.shipDateStart,
@ -99,7 +107,9 @@
/~pickTicket.logisticsCompany: AND (pickTicket.logisticsCompany) LIKE ({pickTicket.logisticsCompany}) ~/
/~waveCode: AND (pickTicket.waveDoc.code) like ({waveCode}) ~/
/~seedWall: AND (pickTicket.executePlanNo) like ({seedWall}) ~/
/~pickTicket.deliveryMode: AND (pickTicket.deliveryMode) like ({pickTicket.deliveryMode}) ~/
/~pickTicket.workerName1: AND (pickTicket.workerName1) like ({pickTicket.workerName1}) ~/
/~pickTicket.executePlanNo: AND pickTicket.executePlanNo like {pickTicket.executePlanNo} ~/
/~status: AND pickTicket.status = {status} ~/
/~billType: AND pickTicket.billType.name = {billType} ~/
and (1=1
@ -116,11 +126,11 @@
</datasource>
<columns>
<column id="pickTicket.id" title="pickTicket" visible="false" />
<column id="pickTicket.sourceType" width="80" title="出库类型"
<column id="pickTicket.sourceType" width="50" title="出库类型"
visible="true" horizonAlign="center" />
<column id="pickTicket.code" width="100" title="工单号"
visible="true" horizonAlign="center" />
<column id="pickTicket.orderDate1" width="120" title="需求日期"
<column id="pickTicket.orderDate1" width="100" title="需求日期"
visible="true" horizonAlign="center" format="dateFormatter" />
<!-- <column id="pickTicket.sourceId" width="140" title="任务号" -->
<!-- visible="true" horizonAlign="center" /> -->
@ -129,19 +139,19 @@
<column id="pickTicket.status" width="70" title="pickTicket.status"
visible="true" horizonAlign="center" dataType="enum" format="enumFormat"
formatParam="PickTicketStatus" />
<column id="pickTicket.packageQuantity" width="70"
<column id="pickTicket.packageQuantity" width="60"
title="需求行数" visible="true" horizonAlign="center"
dataType="double" />
<column id="pickTicket.BOLQuantity" width="70"
<column id="pickTicket.BOLQuantity" width="60"
title="完成行数" visible="true" horizonAlign="center"
dataType="double" />
<column id="pickTicket.orderQuantity" width="70"
<column id="pickTicket.orderQuantity" width="60"
title="pickTicket.orderQuantity" visible="true" horizonAlign="center"
dataType="double" />
<column id="pickTicket.allocatedQuantity" width="120"
<column id="pickTicket.allocatedQuantity" width="60"
title="pickTicket.allocatedQuantity" visible="true" horizonAlign="center"
dataType="double" />
<column id="pickTicket.pickedQuantity" width="120"
<column id="pickTicket.pickedQuantity" width="60"
title="pickTicket.pickedQuantity" visible="true" horizonAlign="center"
dataType="double" />
<column id="pickTicket.shippedQuantity" width="60"
@ -151,6 +161,11 @@
horizonAlign="center" />
<column id="pickTicket.workerName1" title="工厂" width="60" visible="true"
horizonAlign="center" />
<column id="pickTicket.executePlanNo" title="机台号" width="60" visible="true"
horizonAlign="center" />
<column id="pickTicket.deliveryMode" title="receiver" visible="true"
horizonAlign="center" />
<column id="pickTicket.printCount" title="SAP状态" width="160" visible="true"
horizonAlign="center" format="enumFormat" formatParam="TaskStatus"/>
<column id="pickTicket.priority" title="SAP扣料" width="160" visible="true"
@ -168,6 +183,7 @@
horizonAlign="center" />
<column id="pickTicket.relatedBill2" title="关联号" visible="true"
horizonAlign="center" />
<column id="pickTicket.shipDateStart1" title="SAP调整日期" visible="true"
horizonAlign="center" format="dateFormatter" />
<column id="pickTicket.shipDateStart2" title="SAP调整时间" visible="true"

View File

@ -133,6 +133,9 @@
<text id="pickTicket.logisticsCompany" title="工作中心" row="18" col="1"
readOnly="false" required="false" reserve="false" forceOverride="false"
inVisible="false" trimSpace="false" />
<text id="pickTicketDetail.strBill12" title="机台号" row="18" col="2"
readOnly="false" required="false" reserve="false" forceOverride="false"
inVisible="false" trimSpace="false" />
</inputUIs>
</search>
<datasource type="hql"><![CDATA[ select
@ -174,6 +177,7 @@
itemKey.lotInfo.propC9,
pickTicket.equatedQuantity,
t.barCode,
pickTicketDetail.strBill12,
t.inventoryStatus,
t.strBill10,
pickTicketDetail.lineNumber,
@ -263,7 +267,7 @@
/~pickTicket.equatedQuantity: AND (({pickTicket.equatedQuantity}=true and pickTicket.equatedQuantity>'A' ) or ({pickTicket.equatedQuantity}=false and pickTicket.equatedQuantity<'A' )) ~/
/~billType.name: AND billType.id = {billType.name}~/
/~dLzone.name: AND dLzone.name = {dLzone.name}~/
/~pickTicketDetail.strBill12: AND (pickTicketDetail.strBill12) LIKE ({pickTicketDetail.strBill12})~/
/~agv.status: AND agv.status ={agv.status} ~/
/~billCode: AND (t.billCode) LIKE ({billCode})~/
@ -318,6 +322,7 @@
<column id="itemKey.lotInfo.propC9" title="工厂" visible="true" horizonAlign="center" />
<column id="pickTicket.equatedQuantity" title="加急标记" visible="true" horizonAlign="center" />
<column id="t.barCode" title="序列号" visible="true" horizonAlign="center" />
<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="pickTicketDetail.lineNumber" title="项号" visible="true" horizonAlign="center" />