优化查询、调整物料一包一个显示

main
userName 2025-03-05 16:11:42 +08:00
parent 80c789f6d5
commit 094643986e
19 changed files with 192 additions and 73 deletions

View File

@ -39,13 +39,12 @@ public class Item extends Entity {
private boolean beWeight=false;
/** 保质期限--版本 */
private Integer validPeriod=0;//是否保质期管理?判断是否有值?
private WarehouseArea warehouseArea;//默认库区
private WarehouseArea warehouseArea;//推荐库区
private WarehouseArea defaultWarehouseArea;//默认库区
private String shipRules;//库存价值等级 SAP下发
private int balanceNumber=0;//是否更新长宽高
private int packNumber=0;//规格数量
private String feeType;//货品类型 SAP OA
private String CAname;//简称
/** 预警时间 */
@ -63,10 +62,6 @@ public class Item extends Entity {
/**创建日期*/
private Date createDate;
/** 加工费用 --/投料点*/
private double price=0;
@ -169,7 +164,7 @@ public class Item extends Entity {
//
//小包装数量
private Number smallQty ;
private String smallUnit ;
private String smallUnit ;//否一包一个、是一包一个、是纸箱拆箱、是木箱拆箱、
private Number smallWeight ;
private Number smallLength;
private Number smallWidth ;
@ -190,7 +185,15 @@ public class Item extends Entity {
private Number largeHeight;
public boolean isBeUnpacking() {
public WarehouseArea getDefaultWarehouseArea() {
return defaultWarehouseArea;
}
public void setDefaultWarehouseArea(WarehouseArea defaultWarehouseArea) {
this.defaultWarehouseArea = defaultWarehouseArea;
}
public boolean isBeUnpacking() {
return beUnpacking;
}

View File

@ -128,7 +128,6 @@
class="com.dev.swms.server.model.base.Organization">
<column name="USE_ORGANIZATION_ID" unique-key="UK_ITEM" />
</many-to-one>
<many-to-one name="createOrganization"
class="com.dev.swms.server.model.base.Organization">
<column name="CREATE_ORGANIZATION_ID" unique-key="UK_ITEM" />
@ -142,14 +141,11 @@
type="string" length="500" />
<property name="work_name" column="WORK_NAME" type="string"
length="255" />
<property name="createPeople" column="CREATE_PEOPLE" type="string"
length="500" />
<property name="issuestate" column="ISSUE_STATE" type="string"
length="500" />
<property name="createDate" column="CREATE_DATE" type="timestamp" />
<property name="smallWeight" column="smallWeight" type="double" />
<property name="smallLength" column="smallLength" type="double" />
<property name="smallWidth" column="smallWidth" type="double" />
@ -171,9 +167,12 @@
<property name="largeQty" column="largeQty" type="double" />
<property name="largeUnit" column="largeUnit" type="string"
length="50" />
<many-to-one name="warehouseArea" class="com.dev.swms.server.model.base.WarehouseArea">
<many-to-one name="warehouseArea" class="com.dev.swms.server.model.base.WarehouseArea">
<column name="warehouse_Area_ID" />
</many-to-one>
<many-to-one name="defaultWarehouseArea" class="com.dev.swms.server.model.base.WarehouseArea">
<column name="default_Warehouse_Area_ID" />
</many-to-one>
<property name="beInv" type="boolean" column="Be_Inv" />
<property name="beSAPItem" type="boolean" column="Be_SAP_Item" />
<property name="beExtend1" column="be_Extend1" type="boolean" />

View File

@ -157,8 +157,17 @@ public class Task extends VersionalEntity {
private String oldZrw;//原子任务
private boolean beUnpacking=false;//是否最小包装
private String ncrCode;//不良品的NCR号
private String smallUnit;//是否一包一个
public String getSmallUnit() {
return smallUnit;
}
public void setSmallUnit(String smallUnit) {
this.smallUnit = smallUnit;
}
public String getNcrCode() {
return ncrCode;
}

View File

@ -175,6 +175,7 @@
<property name="oldZrw" column="OLD_ZRW" type="string" length="100" />
<property name="beUnpacking" column="BE_UNPACKING" type="boolean" />
<property name="ncrCode" column="NCR_CODE" type="string" length="50" />
<property name="smallUnit" column="small_Unit" type="string" length="50" />
</class>
<!-- <query name="getNotAllPickTasksByWaveDocId"> -->
<!-- <![CDATA[ select task from Task task -->

View File

@ -5,13 +5,13 @@ import com.dev.energy.server.model.VersionalEntity;
public class waveView extends VersionalEntity{
private static final long serialVersionUID = 1L;
private Long id;
private long waveDocId;
private String zCode;
private int tnumber;
private int wlnumber;
private int number;
private int agvStatus;
private int taskCode;
private long waveDocId;//波次id
private String zCode;//库区
private int tnumber;//合并后拣货任务行数
private int wlnumber;//料号个数
private int number;//推荐工作站数
private int agvStatus;//agv任务状态
private int taskCode;//子任务个数
public int getTaskCode() {

View File

@ -2192,7 +2192,7 @@ public class DefaultAgvTaskManager extends DefaultBaseManager implements AgvTask
public void updateUrgentAgvPickTask(List<Long> ids) {
for(Long id:ids) {
String hql="select t.agvTask.id from Task t where t.agvTask.status='ATCALL' and t.pickTicketDetail.pickTicket.id="+id
+" and t.agvTask.jobPriorityType=0 and t.";
+" and t.agvTask.jobPriorityType=0 ";
List<Long> agvids= commonDao.findByQuery(hql);
updateUrgentAgvTask(agvids);
}

View File

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

View File

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

View File

@ -1,5 +1,7 @@
package com.dev.swms.server.service.interfaceLog.pojo;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.net.URLDecoder;
import java.net.URLEncoder;
import java.text.ParseException;
@ -3074,7 +3076,9 @@ public class DefaultInterfaceRespManager extends DefaultBaseManager implements I
item.put("storageDate", inventory[13]+"");//库存日期
if(inventory[14]!=null&&inventory[14].toString().length()>0) {
try {
item.put("unitPrice", Double.parseDouble(inventory[14]+""));//单价
BigDecimal bd = new BigDecimal(inventory[14]+"");
bd=bd.setScale(2, RoundingMode.HALF_UP);
item.put("unitPrice", bd);//单价
}catch (Exception e) {
item.put("unitPrice", 0);//单价
}

View File

@ -2014,24 +2014,59 @@ public class DefaultQueryAppManager extends DefaultBaseManager implements QueryA
String status = "0";
String msg = "";
String data = "";
int zgz_qty = selectPickTicketTaskView1(gzzCode,0);
String billCodeqty="0";
int zgz_qty =0;
// zgz_qty = selectPickTicketTaskView1(gzzCode,0);//工作站任务数
String zgz_sql="select "+
// "max(t.id) as id,"+
" t.BILLCODE as BILLCODE,"+
"COUNT(DISTINCT t.BILLCODE+loc1.code+i.CODE+ik.PROP_C2) as hs,"+
"t.END_REGION as targetArea,"+
"COUNT(DISTINCT t.BILLCODE ) as billhs, "+
" max(sw.code) as sw_code "+
"from task t "+
"left join PICK_TICKET_DETAIL ptd on ptd.ID=t.PICK_TICKET_DETAIL_ID "+
"left join PICK_TICKET pt on pt.ID =ptd.PICK_TICKET_ID "+
"left join LOCATION loc1 on loc1.ID=t.SRC_LOC_ID "+
"left join WAVE_DOC wd on wd.id=t.WAVE_DOC_ID "+
"left join ITEM_KEY ik on t.ITEM_KEY_ID=ik.id "+
"left join item i on i.ID=ik.ITEM_ID "+
"left join Seed_Wall sw on sw.id=t.Seed_Wall_ID"+
" where t.PLAN_QUANTITY_MU-t.MOVED_QUANTITY_MU>0 and t.PLAN_QUANTITY_MU>0"
+ " and t.END_REGION='"+gzzCode+"'";
zgz_sql +=" group by t.BILLCODE,pt.id,wd.id,t.END_REGION ";
String billCodeqty="0";//子任务个数
String billCode="";//子任务号
Session session = ((HibernateDaoSupport) this.commonDao).getSessionFactory().openSession();
Boolean isLk=Boolean.FALSE;
boolean hhs=false; //是否有拣货完成的子任务,未合单。
try {
if (userId > 0) {
if (warehouseId > 0) {
//查询工作站子任务个数
//查询工作站子任务需要绑定槽位格的个数
String q_sql="select t.BILLCODE from task t where t.END_REGION='"+gzzCode+"' "
+ " and t.PLAN_QUANTITY_MU-t.MOVED_QUANTITY_MU>0 and t.Seed_Wall_ID is null "
+ " GROUP BY t.BILLCODE ";
Query query1 = session.createSQLQuery(q_sql.toString());
// String q_sql="select t.BILLCODE from task t where t.END_REGION='"+gzzCode+"' "
// + " and t.PLAN_QUANTITY_MU-t.MOVED_QUANTITY_MU>0 and t.Seed_Wall_ID is null "
// + " GROUP BY t.BILLCODE ";
Query query1 = session.createSQLQuery(zgz_sql.toString());
List<Object[]> list1= (List<Object[]>)query1.list();
if(list1.size()>0) {
billCodeqty=list1.size()+"";
// billCodeqty=list1.size()+"";
int bilzte=0;
for(Object[] gzzTask:list1) {
String BILLCODE=gzzTask[0]==null?"":gzzTask[0].toString();
String t_qty=gzzTask[1]==null?"0":gzzTask[1].toString();
String gzz_t=gzzTask[4]==null?"":gzzTask[4].toString();
if(Integer.parseInt(t_qty)>0) {
zgz_qty+=Integer.parseInt(t_qty);
}
if(gzz_t==null||gzz_t.equals("")) {
bilzte++;
}
}
billCodeqty=bilzte+"";
}
if(gzzCode!=null&&!gzzCode.equals("601")&&!gzzCode.equals("602")&&!gzzCode.equals("603")
&&!gzzCode.equals("604")&&!gzzCode.equals("605")) {
@ -2082,7 +2117,7 @@ public class DefaultQueryAppManager extends DefaultBaseManager implements QueryA
+ "max(item.be_Extend1) as be_Extend1,max(item.be_Extend2) as be_Extend2, "
+ "max(ik.PROP_LC2) as propLC2,max(ik.PROP_LC3) as propLC3,max(pt.sourceType) as sourceType ,"
+ " max(lt.TO_CELL_CODE) as END_REGION ,max(z.LEVELS) as LEVELS,max(ptd.strBill13) as strBill13,"
+ " item.BE_UNPACKING as BE_UNPACKING "
+ " item.BE_UNPACKING as BE_UNPACKING,item.smallUnit as smallUnit "
+ " from task t "
+ " left join PICK_TICKET_DETAIL ptd on ptd.id=t.PICK_TICKET_DETAIL_ID "
+ " left join PICK_TICKET pt on pt.id=ptd.PICK_TICKET_ID "
@ -2230,9 +2265,10 @@ public class DefaultQueryAppManager extends DefaultBaseManager implements QueryA
obj.put("w", w);//第几个0
Double invQuantity= (Double) commonDao.findByQuery("select IsNULL(sum(ROUND(inv.quantity,3)),0) from Inventory inv where inv.quantity>0 and inv.location.id="+Long.parseLong(arrier[5].toString())+" and inv.itemKey.item.code='"+arrier[1].toString()+"' ").get(0);
obj.put("invQuantity", invQuantity);
obj.put("invQuantity", invQuantity);//库位上库存数量
billCode=obj.get("taskCode").toString().trim();//子任务号
//子任务剩余任务数
String z_hql=" select t.hs from PickTicketTaskView t where 1=1 and t.billcode='"+ obj.get("taskCode").toString().trim()+"' ";
String z_hql=" select t.hs from PickTicketTaskView t where 1=1 and t.billcode='"+billCode +"' ";
Integer z_qty= Integer.parseInt(commonDao.findByQuery(z_hql).get(0).toString()) ;
obj.put("z_qty", z_qty);
@ -2273,14 +2309,15 @@ public class DefaultQueryAppManager extends DefaultBaseManager implements QueryA
}
String receiver=arrier[30]==null?"":arrier[30].toString();
String beUnpacking=arrier[31]==null?"":arrier[31].toString();
String smallUnit=arrier[32]==null?"":arrier[32].toString();
obj.put("receiver", receiver);
if(beUnpacking.equals("1")||beUnpacking.equals("true")) {
beUnpacking="true";
}else {
beUnpacking="false";
}
obj.put("beUnpacking", beUnpacking);
// obj.put("smallUnit", smallUnit);
obj.put("beUnpacking", smallUnit);
array.add(obj);
break;
}
@ -2301,6 +2338,8 @@ public class DefaultQueryAppManager extends DefaultBaseManager implements QueryA
} else {
msg = "无用户信息!";
}
} catch (Exception e) {
e.printStackTrace();
msg=e.getMessage();
@ -2325,7 +2364,6 @@ public class DefaultQueryAppManager extends DefaultBaseManager implements QueryA
String zgz_hql=" select sum(ISNULL(t.hs,0)) from PickTicketTaskView t where 1=1";
if(gzzCode.indexOf("602")>=0){
zgz_hql+=" and t.targetArea in ('602','603') ";
}else if(gzzCode.indexOf("604")>=0){
zgz_hql+=" and t.targetArea in ('604','605') ";
}else{
@ -3456,7 +3494,7 @@ public class DefaultQueryAppManager extends DefaultBaseManager implements QueryA
obj.put("propLC2",thb.getPropLC3());
obj.put("be_Extend1",item.isBeExtend1());
obj.put("be_Extend2",item.isBeExtend2());
obj.put("beUnpacking",item.isBeUnpacking());//是否最小包装
obj.put("beUnpacking",item.getSmallUnit());//是否最小包装
if(thb.getSourceType()!=null&&thb.getSourceType().equals("313")) {
obj.put("be_Supernova","true");//是否超发
}else {
@ -6137,7 +6175,7 @@ public class DefaultQueryAppManager extends DefaultBaseManager implements QueryA
@Override
public synchronized JSONObject submitPCAndTaskAndtaskid(String taskid,String billCode,String serials,String mac, String quantity1,
String srcLoc1, String itemCode,String lsCode,long number, long userId, long warehouseId,Long s_id,
boolean reSAP,String spr) {
boolean reSAP,String spr,String beUnpacking) {
JSONObject resultJson = new JSONObject();
String status="0";
String msg="";
@ -6231,7 +6269,7 @@ public class DefaultQueryAppManager extends DefaultBaseManager implements QueryA
unQty -= qty;
}
//打印数量 tqty
pickTicketManager.newPickConfirm(t.getId(), dstLP, srcLoc.getId(), ik.getLotInfo().getPropC1(), qty, userId, reSAP,spr,0L);
pickTicketManager.newPickConfirm(t.getId(), dstLP, srcLoc.getId(), ik.getLotInfo().getPropC1(), qty, userId, reSAP,spr,0L,beUnpacking);
// tqty+=qty;
pickids.add(t.getId());
strids.add(t.getCode());
@ -6331,7 +6369,7 @@ public class DefaultQueryAppManager extends DefaultBaseManager implements QueryA
resultJson.put("data", data);
return resultJson;
}
pickTicketManager.newPickConfirm(Long.valueOf(taskid), dstLP, srcLocation.getId(), itemKey.getLotInfo().getPropC1(), Double.valueOf(quantity), userId, reSAP,spr,0L);
pickTicketManager.newPickConfirm(Long.valueOf(taskid), dstLP, srcLocation.getId(), itemKey.getLotInfo().getPropC1(), Double.valueOf(quantity), userId, reSAP,spr,0L,beUnpacking);
//亮灯
if(zone.getId()==1765||zone.getId()==1763) {
@ -6458,7 +6496,7 @@ public class DefaultQueryAppManager extends DefaultBaseManager implements QueryA
t.setDstLP(s);
}
}
pickTicketManager.newPickConfirm(t.getId(), dstLP, srcLocc.getId(), ik.getLotInfo().getPropC1(), t.getPlanQuantity(), userId,reSAP,spr,0L);
pickTicketManager.newPickConfirm(t.getId(), dstLP, srcLocc.getId(), ik.getLotInfo().getPropC1(), t.getPlanQuantity(), userId,reSAP,spr,0L,beUnpacking);
// tqty+=t.getPlanQuantity();
if(zone.getId()==1766){
@ -6615,7 +6653,8 @@ public class DefaultQueryAppManager extends DefaultBaseManager implements QueryA
//PDA拣货
public JSONObject picking(String taskId,long dstLP,String billCode,String serials,String itemCode,String mac,
double quantity,String lsCode,long number,long userId,long warehouseId,boolean reSAP,String spr,long location_id){
double quantity,String lsCode,long number,long userId,long warehouseId,boolean reSAP,
String spr,long location_id,String beUnpacking){
JSONObject resultJson = new JSONObject();
String status="0";
String msg="";
@ -6696,7 +6735,7 @@ public class DefaultQueryAppManager extends DefaultBaseManager implements QueryA
unQty -= qty;
}
pickTicketManager.newPickConfirm(t.getId(), dstLP, srcLoc.getId(), ik.getLotInfo().getPropC1(), qty, userId,reSAP,spr,location_id);
pickTicketManager.newPickConfirm(t.getId(), dstLP, srcLoc.getId(), ik.getLotInfo().getPropC1(), qty, userId,reSAP,spr,location_id, beUnpacking);
pickids.add(t.getId());
strids.add(t.getCode());//需要亮灯的task
@ -6787,7 +6826,7 @@ public class DefaultQueryAppManager extends DefaultBaseManager implements QueryA
return resultJson;
}
}
pickTicketManager.newPickConfirm(t.getId(), dstLP, srcLoc.getId(), ik.getLotInfo().getPropC1(), quantity, userId,reSAP,spr,location_id);
pickTicketManager.newPickConfirm(t.getId(), dstLP, srcLoc.getId(), ik.getLotInfo().getPropC1(), quantity, userId,reSAP,spr,location_id, beUnpacking);
//亮灯
if(zone.getId()==1765||zone.getId()==1763) {
@ -6920,7 +6959,7 @@ public class DefaultQueryAppManager extends DefaultBaseManager implements QueryA
dstLP=s.getId();
}
}
pickTicketManager.newPickConfirm(t.getId(), dstLP, srcLoc.getId(), ik.getLotInfo().getPropC1(), t.getPlanQuantityMU(), userId,reSAP,spr,location_id);
pickTicketManager.newPickConfirm(t.getId(), dstLP, srcLoc.getId(), ik.getLotInfo().getPropC1(), t.getPlanQuantityMU(), userId,reSAP,spr,location_id, beUnpacking);
//亮灯
if(xt.size()==1){

View File

@ -524,7 +524,7 @@ public interface PickTicketManager extends BaseManager {
//拣货 reSAP回传SAP
@Transactional
void newPickConfirm(long taskId,long dstLPId,long srcLocId,String propC1,double pickedQuantity,
long workerId,boolean reSAP,String spr,Long loc_id);
long workerId,boolean reSAP,String spr,Long loc_id,String beUnpacking);
void submitSAP(PickTicket pt,Task task,BillType bt);

View File

@ -148,13 +148,13 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements
+ "left join STOCK s1 on s1.id=loc.stock "
+ "left join WAVE_DOC wd on wd.id=t.WAVE_DOC_ID "
+ "where 1=1 and pt.BILL_TYPE_ID=1094 "
// + "and t.agv_status in (0,-1) "
+ "and wd.code='" + waveDocCode+ "' "
+ "and t.WAVE_DOC_ID is not null";
+ " and t.agv_status in (0) "
+ " and wd.code='" + waveDocCode+ "' "
+ " and t.WAVE_DOC_ID is not null ";
if (zone_id != null) {
sql += " and z.id=" + zone_id;
}
// sql += " and t.PLAN_QUANTITY_MU-t.MOVED_QUANTITY_MU>0 ";
sql += " and t.PLAN_QUANTITY_MU-t.MOVED_QUANTITY_MU>0 ";
sql += "group by pt.code,t.BILLCODE,item.id,item.code,item.BE_MARK_WEIGHT,loc.id,loc.code,ik.PROP_C1,ik.PROP_C2,ik.PROP_C3,ik.PROP_D1,ik.PROP_D2,item.ISBOM "
+ "order by min(t.skips ),max(loc.code) asc, item.id,pt.code,t.BILLCODE ";
LogPrint(log_sql, sql);
@ -613,7 +613,7 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements
// task.setEndRegion(task.getOldGzz());
// }
// if(task.getAgvStatus()>=1){
// task.setAgvStatus(-1);//旧逻辑运行,状态不动,先注释
task.setAgvStatus(-1);//旧逻辑运行,状态不动,先注释
// }
task.setOldGzz(gongZuoZhan.code);
@ -1529,9 +1529,14 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements
int hjCount = 0;
int lkCount = 0;
for (String code : lx_codes) {
lxCount += gzz_maps.get(code) == null ? 0 : gzz_maps.get(code);
}
for (String code : hj_codes) {
hjCount += gzz_maps.get(code) == null ? 0 : gzz_maps.get(code);
}
for (String code : lk_codes) {
lkCount += gzz_maps.get(code) == null ? 0 : gzz_maps.get(code);
}
//定义工作站最小能效数,自适应开启工作站数
//自适应合理开启工作站数gzz_codes每个工作站暂定60
int lx_jianHuoXiaoLv=getValueGzzNumber(lx_sx);
@ -1561,12 +1566,6 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements
}
}
}
for (String code : hj_codes) {
hjCount += gzz_maps.get(code) == null ? 0 : gzz_maps.get(code);
}
for (String code : lk_codes) {
lkCount += gzz_maps.get(code) == null ? 0 : gzz_maps.get(code);
}
//有任务没有分配分配工作站错误
if(lx_wwc_list.size()>0) {
if(lx_codes.size()>0) {
@ -1579,6 +1578,7 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements
}
if(hj_wwc_list.size()>0) {
if(hj_codes.size()>0) {
allocateGZZ(hj_wwc_list, hj_codes,
(int) hj_sx.getTaskD(), getValueGzzNumber(hj_sx), hjCount,
gzz_maps);

View File

@ -3297,7 +3297,7 @@ public class DefaultPickTicketManager extends DefaultBaseManager implements Pick
List<Task> taskids = this.commonDao.findByQuery(" from Task t where t.pickTicketDetail.pickTicket.id="
+ pickTicketId + " and t.movedQuantityMU<t.planQuantity");
for (Task t : taskids) {
newPickConfirm(t.getId(), 0L, t.getSrcLoc().getId(), "", t.getPlanQuantity(), workerId,false,"",0L);
newPickConfirm(t.getId(), 0L, t.getSrcLoc().getId(), "", t.getPlanQuantity(), workerId,false,"",0L,"");
// Task t1= commonDao.load(Task.class, t.getId());
// t1.setMovedQuantityMU(t.getPlanQuantity());
// t1.setOperateTime(new Date());
@ -4066,7 +4066,7 @@ public class DefaultPickTicketManager extends DefaultBaseManager implements Pick
@Override
public void newPickConfirm(long taskId, long dstLPId, long srcLocId, String propC11, double pickedQuantity,
long workerId,boolean reSAP,String spr,Long locid) {
long workerId,boolean reSAP,String spr,Long locid,String beUnpacking) {
String errorMes = "";
Task task = commonDao.load(Task.class, taskId);
Worker w = this.commonDao.load(Worker.class, workerId);
@ -4347,7 +4347,13 @@ public class DefaultPickTicketManager extends DefaultBaseManager implements Pick
task.setInventoryStatus("交单完成");
}
}
if(beUnpacking!=null&&beUnpacking.length()>0) {
task.setBeUnpacking(true);
task.setSmallUnit(beUnpacking);
item.setBeUnpacking(true);
item.setSmallUnit(beUnpacking);
commonDao.store(item);
}
commonDao.store(task);
}else {
@ -10056,12 +10062,12 @@ public class DefaultPickTicketManager extends DefaultBaseManager implements Pick
Stock stock=list1.get(i);
stock.setLocationIndex(stock.getLocationIndex()+1);
commonDao.store(stock);
boolean sh=huichuanStock(stock.getLP());
if(sh) {
// boolean sh=huichuanStock(stock.getLP());
// if(sh) {
obj.put("s_code", stock.getLP());
obj.put("s_id", stock.getId());
break;
}
// }
}
}else {
throw new BusinessException("无可用容器码");
@ -10162,7 +10168,7 @@ public class DefaultPickTicketManager extends DefaultBaseManager implements Pick
+" and inv.itemKey.item.id="+rd.getItemKey().getItem().getId()
+" and inv.itemKey.lotInfo.propC2='"+rd.getItemKey().getLotInfo().getPropC2()+"' "
+" and inv.itemKey.lotInfo.propC9='"+rd.getItemKey().getLotInfo().getPropC9()+"' "
+ " and inv.quantity-inv.queuedQuantity>"+allocatedQuantity
+ " and inv.quantity-inv.queuedQuantity>="+allocatedQuantity
+ " ";
if(rd.getBarCode()!=null&&rd.getBarCode().length()>0) {
hql=" and inv.barCode='"+rd.getBarCode()+"' ";

View File

@ -477,7 +477,8 @@ public class ASNReceiveServlet extends HttpServlet {
String beUnpacking=json.has("beUnpacking")?json.getString("beUnpacking"):"";//是否最小包装
try {
resultJson=app.picking(taskId,s_id,billCode,serials,itemCode,mac,quantity,lsCode,Long.parseLong(number), workerId, wId,false,applicant,loc_id);
resultJson=app.picking(taskId,s_id,billCode,serials,itemCode,mac,quantity,lsCode,Long.parseLong(number),
workerId, wId,false,applicant,loc_id,beUnpacking);
try {
app.submitSAP(taskId);
@ -736,6 +737,7 @@ public class ASNReceiveServlet extends HttpServlet {
String serials =json.has("serials")?json.getString("serials"):"";
String billCocd =json.has("taskCode")?json.getString("taskCode"):"";
String mac =json.has("mac")?json.getString("mac"):"";
String beUnpacking=json.has("beUnpacking")?json.getString("beUnpacking"):"";//是否最小包装
String stockid =json.has("s_id")?json.getString("s_id"):"0";
// long s_id =json.has("s_id")?Long.parseLong(json.getString("s_id")==null?"0":json.getString("s_id")):0l;
@ -745,7 +747,7 @@ public class ASNReceiveServlet extends HttpServlet {
long s_id =Long.parseLong(stockid);
try {
resultJson=app.submitPCAndTaskAndtaskid(taskid,billCocd,serials,mac,quantity,srcLoc,itemCode,
lsCode,Long.parseLong(number),workerId, wId,s_id,false,"");
lsCode,Long.parseLong(number),workerId, wId,s_id,false,"",beUnpacking);
try {
app.submitSAP(taskid);
}catch (Exception e) {

View File

@ -473,4 +473,16 @@ GO
------------2025-02-27
ALTER TABLE PrintTask add printType varchar(50) COLLATE Chinese_PRC_CI_AS NULL;
GO
update PrintTask set printType='0' where printType is null;
update PrintTask set printType='0' where printType is null;
GO
ALTER TABLE ITEM add default_Warehouse_Area_ID numeric(19) NULL;
GO
ALTER TABLE ITEM
ADD CONSTRAINT FK_default_Warehouse_Area FOREIGN KEY (default_Warehouse_Area_ID)
REFERENCES [ZONE](ID);
GO
----------2025-03-05
ALTER TABLE task add small_Unit varchar(50) COLLATE Chinese_PRC_CI_AS NULL;
GO

View File

@ -89,6 +89,19 @@
<!-- <text id="item.isBOM" title="是否有效期" row="6" col="3" defaultValue="false" span="1" readOnly="true" required="false" reserve="false" forceOverride="true" inVisible="false"/> -->
<booleanList id="item.isBOM" title="是否有效期" row="6" col="4" span="1" readOnly="false" required="true" reserve="false" forceOverride="true" inVisible="false"/>
<checkbox id="item.beUnpacking" title="是否一包一个" row="7" col="1" defaultValue="false" span="1" readOnly="false" required="false" reserve="false" forceOverride="true" inVisible="false"/>
<text id="item.smallUnit" title="一包一个" row="7" col="2" readOnly="false"
required="false" reserve="false" forceOverride="false" inVisible="false"
length="20" trimSpace="true" isPrecision="true" />
<list id="item.defaultWarehouseArea.id" title="默认库区" row="7" col="3"
span="1" width="120" readOnly="false" required="false" reserve="false"
forceOverride="true" >
<hql><![CDATA[ SELECT
warehouseArea.id,
warehouseArea.name From WarehouseArea warehouseArea
where 1=1
]]></hql>
</list>
</inputUIs>
<buttons>
<commit id="save" title="save" enableType="none">

View File

@ -61,6 +61,7 @@
cast(item.volume as string),
item.unit,
item.warehouseArea.name,
item.defaultWarehouseArea.name,
item.goodType,
item.shipRules,
item.validPeriod,
@ -68,15 +69,19 @@
item.singleItem,
item.brand,
item.beUnpacking,
item.smallUnit,
item.beMarkWeight,
item.isBOM,
item.beWeight,
item.beInv,
item.beSAPItem,
item.saleTime,
item.strExtend1
item.strExtend1,
item.strExtend2,
item.strExtend3
from Item item
left join item.warehouseArea warehouseArea
left join item.defaultWarehouseArea
where 1=1
/~item.code: and item.code like {item.code} ~/
/~item.warehouseArea.id: and item.warehouseArea.id = {item.warehouseArea.id} ~/
@ -125,6 +130,8 @@
horizonAlign="center" />
<column id="item.warehouseArea.name" title="推荐库区" visible="true" width="80"
horizonAlign="center" />
<column id="item.defaultWarehouseArea.name" title="默认库区" visible="true" width="80"
horizonAlign="center" />
<column id="item.goodType" title="类型" visible="true"
horizonAlign="center" />
<column id="item.shipRules" title="物料价值等级" visible="true"
@ -139,6 +146,8 @@
horizonAlign="center" />
<column id="item.beUnpacking" title="是否一包一个" visible="true"
horizonAlign="center" format="booleanFormat"/>
<column id="item.smallUnit" title="一包一个" visible="true"
horizonAlign="center" />
<column id="item.beMarkWeight" title="是否序列号" visible="true"
horizonAlign="center" format="booleanFormat"/>
<column id="item.isBOM" title="是否有效期管理" visible="true"
@ -155,6 +164,10 @@
horizonAlign="center" />
<column id="item.strExtend1" title="备注" visible="true"
horizonAlign="center" width="270" />
<column id="item.strExtend2" title="币种" visible="true"
horizonAlign="center" width="70" />
<column id="item.strExtend3" title="元值" visible="true"
horizonAlign="center" width="70" />
</columns>
<buttons>
<!-- <popup id="new" title="new" enableType="none" invisible="false"

View File

@ -72,6 +72,13 @@
<text id="inventoryLog.strbill1" title="SAP移动类型" row="4" col="1"
readOnly="false" required="false" reserve="false" forceOverride="false"
inVisible="false" trimSpace="false" isPrecision="false" />
<list id="inventory.kqName" title="库区" row="4" col="2"
span="1" width="120px" readOnly="false" required="false" reserve="false"
forceOverride="false" manualEditable="true">
<hql><![CDATA[ select warehouseArea.id,
warehouseArea.name
from WarehouseArea warehouseArea where 1=1 and warehouseArea.disabled=false order by warehouseArea.name]]></hql>
</list>
<dateRanger id="occurTime" title="发生时间" row="5" col="1" span="2" readOnly="false" required="false" reserve="false" forceOverride="false" inVisible="false" showTime="false" manualEditable="true" defaultCurrentDate="true" fromDate="beginDate" toDate="endDate"/>
<!-- <date id="inventoryLog.occurTime" title="发生时间" row="4" span="1" readOnly="false" required="false" reserve="true" forceOverride="false" inVisible="true" showTime="false" manualEditable="false" defaultCurrentDate="true"/> -->
<!-- <checkbox id="ordersAll" title="ordersAll" row="6" col="1" defaultValue="false" -->
@ -83,6 +90,7 @@
inventoryLog.relatedBill,
inventoryLog.logType,
inventoryLog.billType.name,
inventoryLog.srcLoc.code,
inventoryLog.location.code,
inventoryLog.itemKey.item.code,
@ -98,6 +106,7 @@
inventoryLog.itemKey.lotInfo.propC3,
inventoryLog.itemKey.lotInfo.propC9,
inventoryLog.itemKey.lotInfo.propD2,
inventoryLog.srcLoc.zone.code,
inventoryLog.endRegion,
inventoryLog.strbill1,
inventoryLog.LP,
@ -106,6 +115,7 @@
left join inventoryLog.billType
left join inventoryLog.location
left join inventoryLog.srcLoc
left join inventoryLog.srcLoc.zone
left join inventoryLog.itemKey
left join inventoryLog.itemKey.item
WHERE 1=1
@ -114,6 +124,7 @@
/~inventoryLog.location.code: AND inventoryLog.location.code like {inventoryLog.location.code}~/
/~inventoryLog.strbill1: AND inventoryLog.strbill1 = {inventoryLog.strbill1}~/
/~logType: AND inventoryLog.logType = {logType}~/
/~inventory.kqName: AND inventoryLog.srcLoc.zone.id = {inventory.kqName}~/
/~billType.name: AND inventoryLog.billType.name = {billType.name}~/
/~relatedBill: AND inventoryLog.relatedBill LIKE {relatedBill}~/
/~soi: AND inventoryLog.SOI LIKE {soi}~/
@ -165,6 +176,8 @@
title="工厂\公司" visible="true" horizonAlign="center" />
<column id="inventoryLog.propD2a" title="失效日期"
width="150" visible="true" horizonAlign="center" format="dateFormatter"/>
<column id="inventoryLog.srcLoc.zone.code" width="80"
title="库区" visible="true" horizonAlign="center" />
<column id="inventoryLog.endRegion" width="80"
title="工作站" visible="true" horizonAlign="center" />
<column id="inventoryLog.strbill1" width="80"

View File

@ -47,6 +47,9 @@ where location.code like :param
<text id="task.ncrCode" title="NCR"
row="19" span="1" readOnly="false" required="false" reserve="false"
forceOverride="true" inVisible="false" trimSpace="true" isPrecision="true" />
<text id="task.smallUnit" title="一包一个"
row="20" span="1" readOnly="false" required="false" reserve="false"
forceOverride="true" inVisible="false" trimSpace="true" isPrecision="true" />
</inputUIs>
<buttons>
<commit id="pick" title="0013D4FC457C1190272672531"
@ -61,10 +64,11 @@ where location.code like :param
<mapping id="beUrgent" className="boolean" />
<mapping id="task.ncrCode" className="string" />
<mapping id="loc_id" className="long" />
<mapping id="task.smallUnit" className="string" />
</mappings>
<actions>
<action managerName="pickTicketManager" methodName="newPickConfirm"
parameter="task.id,task.dstLP.id,task.srcLoc.id,task.itemKey.propC1,task.planQuantity,workerId,beUrgent,task.ncrCode,loc_id" />
parameter="task.id,task.dstLP.id,task.srcLoc.id,task.itemKey.propC1,task.planQuantity,workerId,beUrgent,task.ncrCode,loc_id,task.smallUnit" />
</actions>
<forwards>
<forward name="refreshParent" newEnabled="true"