界面调整,加机台号、限制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; package com.dev.swms.server.model.inventory;
import java.util.Date; import java.util.Date;
import java.util.List;
import net.sf.json.JSONArray; import net.sf.json.JSONArray;
@ -661,4 +662,6 @@ public class AgvTask extends VersionalEntity {
public String getTargetAreaCode(){ public String getTargetAreaCode(){
return this.targetArea.split(",")[0]; return this.targetArea.split(",")[0];
} }
} }

View File

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

View File

@ -38,6 +38,9 @@ public interface AgvTaskManager extends BaseManager{
*/ */
@Transactional @Transactional
void activateAgvTask(List<Long> ids); void activateAgvTask(List<Long> ids);
//呼叫料箱、货架,按组下发任务
@Transactional
void CallGroup(String stocks,Long id,boolean jsa,String remarks );
//呼叫料箱、货架 //呼叫料箱、货架
@Transactional @Transactional
void CallHJS(String stocks,Long id,boolean jsa,String remarks ); void CallHJS(String stocks,Long id,boolean jsa,String remarks );
@ -197,6 +200,17 @@ public interface AgvTaskManager extends BaseManager{
@Transactional @Transactional
AgvTask callLoc(String stockLP,Long id,Integer identification,Long jobPriorityType AgvTask callLoc(String stockLP,Long id,Integer identification,Long jobPriorityType
,String classification,String founderName,String remarks); ,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 * AGV
* @param stockLP * @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.swms.server.model.inventory.Stock;
import com.dev.energy.server.service.BaseManager; import com.dev.energy.server.service.BaseManager;
@Transactional(readOnly = true) @Transactional(readOnly = false)
public interface LocationManager extends BaseManager { public interface LocationManager extends BaseManager {

View File

@ -836,7 +836,121 @@ public class DefaultAgvTaskManager extends DefaultBaseManager implements AgvTask
} }
return null; 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) { private void setContainerCode(String stockLP, AgvTask agvTask,LocationStorage ls) {
agvTask.setContainerCode(stockLP); agvTask.setContainerCode(stockLP);
List<Stock> stocks = commonDao.findByQuery(" from Stock where LP='"+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) { String classification,String founderName,String remarks) {
synchronized ("callLocAndCallHJ") { synchronized ("callLocAndCallHJ") {
AgvTask agv = null; 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 " List<Long> agvTasktypes = commonDao.findByQuery("select agvTask.id from AgvTask agvTask "
+ " where agvTask.beIssue=true " + " where agvTask.beIssue=true "
+ " and agvTask.classification not in ('"+classification+"') " + " 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 @Override
public void agvStockJobPriorityType(List<Long> agvTaskIds) { public void agvStockJobPriorityType(List<Long> agvTaskIds) {
// TODO 自动生成的方法存根 // 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) 包装类型 单位 中大物料标记 //料号 描述 包装数量 长(m) 宽(m) 高(m) 重量(KG) 包装类型 单位 中大物料标记
int j=0; int j=0;
String itemCode=sheet.getCell(j++,i).getContents().trim();//料号 String itemCode=sheet.getCell(j++,i).getContents().trim();//料号
// String itemName=sheet.getCell(j++,i).getContents().trim();//描述 String itemName=sheet.getCell(j++,i).getContents().trim();//描述
// String unit=sheet.getCell(j++,i).getContents().trim();//单位 //
// String xlh=sheet.getCell(j++,i).getContents().trim();//是否许列号 // String xlh=sheet.getCell(j++,i).getContents().trim();//是否许列号
// String bz=sheet.getCell(j++,i).getContents().trim();//保质期 // String bz=sheet.getCell(j++,i).getContents().trim();//保质期
// String dj=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 l=Double.parseDouble(sheet.getCell(j++,i).getContents().trim());//长
double w=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 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 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();//中大件标识 // String bs=sheet.getCell(j++,i).getContents().trim();//中大件标识
List<Item> items=commonDao.findByQuery("from Item t where t.code=:code ", List<Item> items=commonDao.findByQuery("from Item t where t.code=:code ",
new String[]{"code"},new Object[]{itemCode}); new String[]{"code"},new Object[]{itemCode});
@ -1088,8 +1090,10 @@ public class DefaultImportFileManager extends DefaultBaseManager implements Impo
// item.setCreatePeople(UserHolder.getUser().getName()); // item.setCreatePeople(UserHolder.getUser().getName());
// item.setCreateDate(new Date()); // item.setCreateDate(new Date());
} }
/*item.setUnit(unit); if(unit!=null&&unit.length()>0) {
if(xlh!=null&&xlh.length()>0) { item.setUnit(unit);
}
/*if(xlh!=null&&xlh.length()>0) {
item.setBeMarkWeight(true); item.setBeMarkWeight(true);
} }
if(bz!=null&&bz.length()>0) { if(bz!=null&&bz.length()>0) {
@ -1106,48 +1110,65 @@ public class DefaultImportFileManager extends DefaultBaseManager implements Impo
item.setUnit(unit); item.setUnit(unit);
item.setGoodType(bs); item.setGoodType(bs);
*/ */
item.setCAcoefficient(bqty); if(zoneName!=null&&zoneName.length()>0) {
item.setPackNumber((int)bqty); 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); BigDecimal bg1 = new BigDecimal(wv);
double f2 = bg1.setScale(6, BigDecimal.ROUND_HALF_UP).doubleValue(); double f2 = bg1.setScale(3, BigDecimal.ROUND_HALF_UP).doubleValue();
// item.setWeight(f2);//规格重量 if(f2<0.001) {
f2=0.001;
}
item.setWeight(f2);//规格重量
BigDecimal bg5 = new BigDecimal(wv/bqty); BigDecimal bg5 = new BigDecimal(wv/bqty);
double f5 = bg5.setScale(6, BigDecimal.ROUND_HALF_UP).doubleValue(); double f5 = bg5.setScale(3, BigDecimal.ROUND_HALF_UP).doubleValue();
// item.setSuggest(f5);//毛重 if(f5<0.001) {
f5=0.001;
}
item.setSuggest(f5);//毛重
}
if(w>0&&l>0&&h>0) {
BigDecimal bg3 = new BigDecimal(w); BigDecimal bg3 = new BigDecimal(w);
item.setWidth(w/1000);
double width = bg3.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); double width = bg3.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
if(width<item.getWidth()) { if(width<0.01) {
width=width+0.01; width=0.01;
} }
item.setWidth(width);//宽 item.setWidth(width);//宽
BigDecimal bg2 = new BigDecimal(l); BigDecimal bg2 = new BigDecimal(l);
item.setLength(l/1000);
double length = bg2.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); double length = bg2.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
if(length<item.getLength()) { if(length<0.01) {
length=length+0.01; length=0.01;
} }
item.setLength(length);//长 item.setLength(length);//长
BigDecimal bg4 = new BigDecimal(h); BigDecimal bg4 = new BigDecimal(h);
item.setHeight(h/1000);
double height = bg4.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); double height = bg4.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
if(height<item.getHeight()) { if(height<0.01) {
height=height+0.01; height=0.01;
} }
item.setHeight(height);//高 item.setHeight(height);//高
BigDecimal bg6 = new BigDecimal(height*length*width); BigDecimal bg6 = new BigDecimal(height*length*width);
item.setVolume(height*length*width);
double volume = bg6.setScale(6, BigDecimal.ROUND_HALF_UP).doubleValue(); double volume = bg6.setScale(6, BigDecimal.ROUND_HALF_UP).doubleValue();
if(volume<item.getVolume()) { if(volume<0.000001) {
volume=volume+0.000001; volume=0.000001;
} }
BigDecimal bg7 = new BigDecimal(volume); BigDecimal bg7 = new BigDecimal(volume);
volume = bg7.setScale(6, BigDecimal.ROUND_HALF_UP).doubleValue(); volume = bg7.setScale(6, BigDecimal.ROUND_HALF_UP).doubleValue();
item.setVolume(volume); item.setVolume(volume);
if(item.getLength()>0.6||item.getWidth()>0.4) {
item.setGoodType("大件");
}else {
item.setGoodType("小件");
}
}
commonDao.store(item); commonDao.store(item);
// wmsOperationHisManager.storeOperationHis(item.getId(),item.getName(), null,"", "物料信息", "导入货品信息",null, // wmsOperationHisManager.storeOperationHis(item.getId(),item.getName(), null,"", "物料信息", "导入货品信息",null,
// null,0, 0,0, 0, "", "WMS"); // null,0, 0,0, 0, "", "WMS");

View File

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

View File

@ -1318,26 +1318,20 @@ public class DefaultLocationManager extends DefaultBaseManager implements
@Override @Override
public void locationInventory() { public void locationInventory() {
List<Long> list=new ArrayList<Long>(); 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 "; + " GROUP BY inv.location.id ";
list=commonDao.findByQuery(hql); 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) { if(list.size()>0) {
// kuwei(list);
for(Long id:list) { for(Long id:list) {
kuwei(id); 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("刷新库满度完成"); logger.info("刷新库满度完成");
} }
@ -1438,10 +1432,12 @@ public class DefaultLocationManager extends DefaultBaseManager implements
quant=quant+inventory2.getQuantity(); quant=quant+inventory2.getQuantity();
ItemKey itemKey=commonDao.load(ItemKey.class, inventory2.getItemKey().getId()); ItemKey itemKey=commonDao.load(ItemKey.class, inventory2.getItemKey().getId());
Item item=commonDao.load(Item.class, itemKey.getItem().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=物料库存的面积 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÷库位的体积=库满度 sum2+=((item.getLength()*item.getWidth())/item.getPackNumber()*inventory2.getQuantity())*1.2/loc.getDimension()*100;//物料的长×宽÷规格数×库存数×1.2÷库位的体积=库满度
BigDecimal bg3 = new BigDecimal(sum2); BigDecimal bg3 = new BigDecimal(sum2);
mianji = bg3.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); mianji = bg3.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
}
} }
String bbb=String.valueOf(mianji);//库满度 String bbb=String.valueOf(mianji);//库满度
if(b>loc.getDimension()){//如果物料库存的面积大于这个库位的面积 if(b>loc.getDimension()){//如果物料库存的面积大于这个库位的面积
@ -1543,8 +1539,9 @@ public class DefaultLocationManager extends DefaultBaseManager implements
null,0, 0,0, 0, "", "WMS"); null,0, 0,0, 0, "", "WMS");
} }
} catch (Exception e) { } catch (Exception e) {
wmsOperationHisManager.storeOperationHis(loc.getId(),loc.getCode(), null,"", "库位信息", "库满度刷新",null, logger.info(e.getMessage());
null,0, 0,0, 0, e.getMessage().substring(0,255), "WMS"); // 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 " // List<CountRecord> yfrg=commonDao.findByQuery(" from CountRecord c where c.location.zone.id=1815 "
// +" and c.countPlan.id="+countPlanId+" order by c.location.code"); // +" 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) { if(yfrg.size()>0&&w38==0) {
throw new BusinessException("2#3研发人工区有盘点任务,必须勾选"); throw new BusinessException("2#2研发人工区有盘点任务,必须勾选");
} }
List<CountRecord> yfgk=quserCountPlanTask(1816L, countPlanId);//2#3研发人工库 List<CountRecord> yfgk=quserCountPlanTask(1816L, countPlanId);//2#3研发人工库
if(yfgk.size()>0&&w39==0) { if(yfgk.size()>0&&w39==0) {

View File

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

View File

@ -142,6 +142,7 @@ public class DefaultQueryAppManager extends DefaultBaseManager implements QueryA
String data = ""; String data = "";
String h = ""; String h = "";
String locFloor=""; String locFloor="";
String zoneCode="";//推荐库区
String str1=asn_code;//扫描的凭证号 String str1=asn_code;//扫描的凭证号
Session session = ((HibernateDaoSupport) this.commonDao).getSessionFactory().openSession(); Session session = ((HibernateDaoSupport) this.commonDao).getSessionFactory().openSession();
try { 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," + " 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.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," +" 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.ISBOM,"
+ " item.be_Extend1,item.be_Extend2,asn.BILL_TYPE_ID,ad.strBill11,ad.bf_qty " + "(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 " + " from ASN_DETAIL ad "
+ " left join ASN asn on asn.id=ad.ASN_ID " + " left join ASN asn on asn.id=ad.ASN_ID "
+ " left join ITEM item on item.id=ad.ITEM_ID " + " left join ITEM item on item.id=ad.ITEM_ID "
@ -321,6 +324,7 @@ public class DefaultQueryAppManager extends DefaultBaseManager implements QueryA
return resultJson; return resultJson;
} }
} }
zoneCode= arrier[23]==null?"":arrier[23].toString();//库区
array.add(obj); array.add(obj);
} }
data = array.toString(); data = array.toString();
@ -365,6 +369,7 @@ public class DefaultQueryAppManager extends DefaultBaseManager implements QueryA
resultJson.put("data", data); resultJson.put("data", data);
resultJson.put("msg", msg); resultJson.put("msg", msg);
resultJson.put("h", h); resultJson.put("h", h);
resultJson.put("zoneCode", zoneCode);
resultJson.put("locFloor", locFloor); resultJson.put("locFloor", locFloor);
return resultJson; 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.WarehouseArea;
import com.dev.swms.server.model.base.WarehouseAreaStatus; import com.dev.swms.server.model.base.WarehouseAreaStatus;
import com.dev.swms.server.model.base.Worker; 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.interfaceLog.InterfaceLog;
import com.dev.swms.server.model.interfaces.InterfaceWmsDownload; import com.dev.swms.server.model.interfaces.InterfaceWmsDownload;
import com.dev.swms.server.model.inventory.AgvTask; import com.dev.swms.server.model.inventory.AgvTask;
@ -2327,7 +2328,7 @@ public void addASNDetail(Long id,ASNDetail asnDetail) {
@Override @Override
public void receiveGoods(List<Long> asnDetailIds, Date receiveDate1, 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{ Long pqty,String mac,String statusDes,boolean agv) throws Exception{
for(Long id:asnDetailIds){//循环整理(收货) for(Long id:asnDetailIds){//循环整理(收货)
ASNDetail asnDetail=this.load(ASNDetail.class, id);//根据整理的这条数据获取它所有的明细 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()); BillType bt=commonDao.load(BillType.class, asn.getBillType().getId());
Item item=this.load(Item.class, asnDetail.getItem().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); Stock stock=commonDao.load(Stock.class, stockId);
Location location=null; Location location=null;
location=this.load(Location.class, dock_id);//库位 location=this.load(Location.class, dock_id);//库位
if(warehouseArea==null&&location==null) { if(warehouseArea==null&&location==null) {
throw new BusinessException("库区和库位不能都为空"); throw new BusinessException("库区和库位不能都为空");
} }
if(ls_id.intValue()==1763&&dock_id==0) { if(zone_id.intValue()==1763&&dock_id==0) {
throw new BusinessException("料箱区,必须扫描料箱格口码"); throw new BusinessException("料箱区,必须扫描料箱格口码");
} }
if(stock==null&&location!=null) { 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){ if(count==1){
throw new BusinessException("该容器已有其它库区物料!"); 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.WarehouseAreaStatus;
import com.dev.swms.server.model.base.Worker; import com.dev.swms.server.model.base.Worker;
import com.dev.swms.server.model.delivery.PlantLocation; 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.interfaceLog.InterfaceLog;
import com.dev.swms.server.model.inventory.Configuration; import com.dev.swms.server.model.inventory.Configuration;
import com.dev.swms.server.model.inventory.Inventory; 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) { public void manualMoveDetail(MoveDocDetail detail, Long userId, Double caseQty, Double puQty, Stock srcLp) {
Location deslocation = this.commonDao.load(Location.class, detail.getDstLoc().getId()); Location deslocation = this.commonDao.load(Location.class, detail.getDstLoc().getId());
Location srclocation = this.commonDao.load(Location.class, detail.getSrcLoc().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("")) { if (deslocation.getCountLock() != null && !deslocation.getCountLock().equals("")) {
throw new BusinessException("该库位正在盘点,不能上架"); throw new BusinessException("该库位正在盘点,不能上架");
} }
@ -1116,6 +1117,19 @@ public class DefaultMoveDocManager extends DefaultBaseManager implements MoveDoc
Item item = this.commonDao.load(Item.class, detail.getItem().getId()); Item item = this.commonDao.load(Item.class, detail.getItem().getId());
ItemKey itemKey = this.commonDao.load(ItemKey.class, detail.getItemKey().getId()); ItemKey itemKey = this.commonDao.load(ItemKey.class, detail.getItemKey().getId());
Worker worker = commonDao.load(Worker.class, userId); 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 if (!(MoveDocStatus.CANCEL.equals(detail.getMoveDoc().getStatus()) || MoveDocStatus.CLOSE.equals(detail
.getMoveDoc().getStatus()))) { .getMoveDoc().getStatus()))) {
Double moveQuantity = 0d; Double moveQuantity = 0d;
@ -2288,6 +2302,8 @@ public class DefaultMoveDocManager extends DefaultBaseManager implements MoveDoc
srcInv.setStatuss("T"); srcInv.setStatuss("T");
} }
commonDao.store(srcInv); 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 "; String px_sql = " order by l.gdType asc ";
//库位高度 //库位高度
if (st.getGdType().equals(TranType.gd_d)) { 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)) { } 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)) { } 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') "; // sql += " and l.name in ('01-02-01','02-02-01','03-02-01','04-02-01') ";
if (st.getLocationStorage()!=null) { if (st.getLocationStorage()!=null) {
@ -2580,7 +2596,7 @@ public class DefaultMoveDocManager extends DefaultBaseManager implements MoveDoc
// ls = this.commonDao.findByQuery(hql1 + px_sql); // ls = this.commonDao.findByQuery(hql1 + px_sql);
// } // }
if (ls.size() <= 8) { if (ls.size() <= 10) {
throw new BusinessException("无合适的存放位"); throw new BusinessException("无合适的存放位");
} else { } else {
return ls.get(0); 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()+"'"); List<Inventory> inventories = commonDao.findByQuery(" from Inventory inv where inv.location.code='"+t.getBarcode()+"'");
if (inventories.size()>0) { if (inventories.size()>0) {
Inventory inventory=inventories.get(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); this.commonDao.delete(inventory);
} }
flag=false; flag=false;
@ -3575,8 +3594,6 @@ public class DefaultMoveDocManager extends DefaultBaseManager implements MoveDoc
inv = new Inventory();// EntityFactory.getEntity(Inventory.class); inv = new Inventory();// EntityFactory.getEntity(Inventory.class);
inv.setLocation(location); inv.setLocation(location);
inv.setItemKey(itemKey); inv.setItemKey(itemKey);
location.setCurrentItem(item.getId());
location.setCurrentLot(itemKey.getId());
inv.setCaCoefficient(1D); inv.setCaCoefficient(1D);
inv.setLP(st); inv.setLP(st);
// inv.setStatus("待上架"); // inv.setStatus("待上架");
@ -4187,7 +4204,7 @@ public class DefaultMoveDocManager extends DefaultBaseManager implements MoveDoc
// ls = this.commonDao.findByQuery(hql1 + px_sql); // ls = this.commonDao.findByQuery(hql1 + px_sql);
// } // }
if (ls.size() <= 4) { if (ls.size() <= 5) {
throw new BusinessException("不存在合适的库位"); throw new BusinessException("不存在合适的库位");
} else { } else {
return ls.get(0); 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() if ((pickTicket.getAllocatedQuantity() > 0 || pickTicket.getAllocatedQuantity() == pickTicket.getOrderQuantity()
&& pickTicket.getPickedQuantity() == 0 && pickTicket.getShippedQuantity() == 0) && pickTicket.getPickedQuantity() == 0 && pickTicket.getShippedQuantity() == 0)
|| pickTicket.getOrderQuantity() == pickTicket.getAllocatedQuantity()) { || 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) { if (pickTicket.getPickedQuantity() < pickTicket.getAllocatedQuantity() && pickTicket.getPickedQuantity() > 0) {
pickTicket.setStatus(PickTicketStatus.PICKUP); pickTicket.setStatus(PickTicketStatus.PICKUP);
@ -2818,6 +2820,20 @@ public class DefaultPickTicketManager extends DefaultBaseManager implements Pick
for (Map.Entry<Long, List> me : itor) { for (Map.Entry<Long, List> me : itor) {
Inventory inventory = this.load(Inventory.class, Long.parseLong(me.getKey().toString())); 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 quantity = Double.parseDouble(me.getValue().get(0).toString());
double unallocateQty = ptd.getOrderQuantity() - ptd.getAllocatedQuantity(); double unallocateQty = ptd.getOrderQuantity() - ptd.getAllocatedQuantity();
if (unallocateQty == 0) { if (unallocateQty == 0) {
@ -4344,7 +4360,7 @@ public class DefaultPickTicketManager extends DefaultBaseManager implements Pick
if (wa!=null&&(wa.getLevels()==0||!wa.isBeBill())) { if (wa!=null&&(wa.getLevels()==0||!wa.isBeBill())) {
task.setInventoryStatus("合单完成"); task.setInventoryStatus("合单完成");
} }
if(!bt.isBePresentation()) { if(!bt.isBePresentation()&&wa.getCarrierType().getId()==3) {
task.setInventoryStatus("交单完成"); task.setInventoryStatus("交单完成");
} }
if(beUnpacking!=null&&beUnpacking.length()>0) { if(beUnpacking!=null&&beUnpacking.length()>0) {

View File

@ -849,7 +849,7 @@ public class ASNReceiveServlet extends HttpServlet {
try { try {
if (userId > 0) { if (userId > 0) {
if (warehouseId > 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"; status = "2";
msg = "规格、长宽高、重量需大于0!"; msg = "规格、长宽高、重量需大于0!";
}else { }else {
@ -866,18 +866,18 @@ public class ASNReceiveServlet extends HttpServlet {
} }
BigDecimal bg2 = new BigDecimal(length/100); BigDecimal bg2 = new BigDecimal(length/100);
double length1 = bg2.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); double length1 = bg2.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
if(length<item.getLength()) { if(length1<0.01) {
length1=length+0.01; length1=0.01;
} }
BigDecimal bg3 = new BigDecimal(width/100); BigDecimal bg3 = new BigDecimal(width/100);
double width1 = bg3.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); double width1 = bg3.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
if(width<item.getWidth()) { if(width1<0.01) {
width1=width1+0.01; width1=0.01;
} }
BigDecimal bg4 = new BigDecimal(height/100); BigDecimal bg4 = new BigDecimal(height/100);
double height1 = bg4.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); double height1 = bg4.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
if(height<item.getHeight()) { if(height1<0.01) {
height1=height1+0.01; height1=0.01;
} }
item.setLength(length1); item.setLength(length1);
item.setWidth(width1); item.setWidth(width1);
@ -886,6 +886,12 @@ public class ASNReceiveServlet extends HttpServlet {
item.setCAcoefficient(specs); item.setCAcoefficient(specs);
item.setPackNumber((int)Math.abs(specs)); item.setPackNumber((int)Math.abs(specs));
item.setVolume(width1*height1*length1); 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.setBalanceNumber(1);
item.setWarehouseArea(commonDao.load(WarehouseArea.class, z_id)); 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()); 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){ if(data.indexOf(",")>-1){
data="\""+data.replace("\"", "\"\"")+"\""; data="\""+data.replace("\"", "\"\"")+"\"";
} }
data=data.replaceAll("\r\n", "")+"\t"; data=data.replaceAll("\r\n", "")+"";
} }
} else { } else {
data=""; data="";
} }
} }
return 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" row="2" col="3" defaultValue="0" readOnly="false" required="false"
reserve="false" forceOverride="false" inVisible="false" validator="positiveNumber" reserve="false" forceOverride="false" inVisible="false" validator="positiveNumber"
trimSpace="true" isPrecision="true"/> 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" row="2" col="4" defaultValue="0" readOnly="false" required="false"
reserve="false" forceOverride="false" inVisible="false" validator="positiveNumber" reserve="false" forceOverride="false" inVisible="false" validator="positiveNumber"
trimSpace="true" isPrecision="true"/> trimSpace="true" isPrecision="true"/>

View File

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

View File

@ -119,7 +119,7 @@ order by wa.name asc,wa.id asc
editEnabled="false" /> editEnabled="false" />
</forwards> </forwards>
</commit> </commit>
<popup id="modifyset" title="配置LOC" enableType="multi" <popup id="modifyset" title="限制的LOC" enableType="multi"
invisible="false" containId="true" pageId="modifyWarehouseAreaPage"> invisible="false" containId="true" pageId="modifyWarehouseAreaPage">
</popup> </popup>
</buttons> </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> </inputUIs>
</modify> </modify>
<detail autoQuery="false"> <detail autoQuery="true">
<datasource><![CDATA[ SELECT <datasource><![CDATA[ SELECT
zp.id, zp.id,
zp.pLocation.plantInfo.code, zp.pLocation.plantInfo.code,
@ -28,7 +28,7 @@
invisible="false" containId="false" pageId="modifyZonePlantPage"> invisible="false" containId="false" pageId="modifyZonePlantPage">
</popup> --> </popup> -->
<popup id="newDetail1" title="添加" enableType="none" <popup id="newDetail1" title="添加" enableType="none"
invisible="false" containId="false" pageId="modifyZonePlantPage"> invisible="false" containId="false" pageId="maintainZonePlantLocationPage">
</popup> </popup>
<commit id="deleteDetail" title="移除" enableType="none" <commit id="deleteDetail" title="移除" enableType="none"
invisible="false" > invisible="false" >

View File

@ -9,13 +9,13 @@
</inputUIs> </inputUIs>
</modify> </modify>
<detail autoQuery="false"> <detail autoQuery="true">
<datasource><![CDATA[ SELECT <datasource><![CDATA[ SELECT
pl.id, pl.id,
pl.plantInfo.code, pl.plantInfo.code,
pl.code pl.code
FROM PlantLocation pl 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> ]]></datasource>
<columns> <columns>
<column id="pl.id" title="pl.id" visible="false" /> <column id="pl.id" title="pl.id" visible="false" />

View File

@ -101,7 +101,7 @@
width="100" readOnly="false" required="false" reserve="false" width="100" readOnly="false" required="false" reserve="false"
forceOverride="true" inVisible="false" trimSpace="true" forceOverride="true" inVisible="false" trimSpace="true"
isPrecision="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" width="100" readOnly="false" required="false" reserve="false"
forceOverride="true" inVisible="false" trimSpace="true" forceOverride="true" inVisible="false" trimSpace="true"
isPrecision="true" /> isPrecision="true" />

View File

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

View File

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

View File

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

View File

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