From 0096abc7a4353668e769958b6c021d87c408292e Mon Sep 17 00:00:00 2001 From: userName Date: Fri, 21 Feb 2025 10:40:35 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E4=B8=8D=E8=89=AF=E5=93=81?= =?UTF-8?q?=E5=88=86=E9=85=8D=EF=BC=8Capp=E8=A1=A5=E6=89=93=E6=A0=87?= =?UTF-8?q?=E7=AD=BE=E3=80=81=E6=8B=A3=E8=B4=A7=E7=95=8C=E9=9D=A2=E5=8A=A0?= =?UTF-8?q?=E6=98=AF=E5=90=A6=E4=B8=80=E5=8C=85=E4=B8=80=E4=B8=AA=E6=98=BE?= =?UTF-8?q?=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/dev/swms/server/model/base/Item.java | 91 ++++++----- .../dev/swms/server/model/base/item.hbm.xml | 1 + .../dev/swms/server/model/inventory/Task.java | 23 ++- .../swms/server/model/inventory/task.hbm.xml | 3 +- .../service/base/pojo/DefaultItemManager.java | 1 + .../pojo/DefaultQueryAppManager.java | 30 ++-- .../pojo/DefaultInventoryManager.java | 2 + .../service/shipping/PickTicketManager.java | 11 +- .../pojo/DefaultPickTicketManager.java | 151 +++++++++++++++++- .../server/web/servlet/ASNReceiveServlet.java | 3 + .../swms/server/web/servlet/PrintServlet.java | 37 ++++- .../export/impl/XLSExportGenerator.java | 2 +- src/test/yao/2024.sql | 15 ++ .../config/origen/base/editItemDetailPage.xml | 2 +- .../origen/shipping/maintainBillPage.xml | 2 +- .../maintainReceivingInventoryManualPage.xml | 135 ++++++++++++++++ .../shipping/modifyPickTicketManualPage.xml | 6 + .../origen/shipping/setPickedQuantityPage.xml | 6 +- 18 files changed, 454 insertions(+), 67 deletions(-) create mode 100644 src/webapp/WEB-INF/classes/config/origen/shipping/maintainReceivingInventoryManualPage.xml diff --git a/src/main/java/com/dev/swms/server/model/base/Item.java b/src/main/java/com/dev/swms/server/model/base/Item.java index 2c1e8b0..cbf5e35 100644 --- a/src/main/java/com/dev/swms/server/model/base/Item.java +++ b/src/main/java/com/dev/swms/server/model/base/Item.java @@ -137,47 +137,7 @@ public class Item extends Entity { private String barcode;// private boolean beExtend1=false;//扩展1 private boolean beExtend2=false;//扩展2 - - - public boolean isBeExtend1() { - return beExtend1; - } - - public void setBeExtend1(boolean beExtend1) { - this.beExtend1 = beExtend1; - } - - public boolean isBeExtend2() { - return beExtend2; - } - - public void setBeExtend2(boolean beExtend2) { - this.beExtend2 = beExtend2; - } - - public boolean isBeInventory() { - return beInventory; - } - - public void setBeInventory(boolean beInventory) { - this.beInventory = beInventory; - } - - public boolean isBeInv() { - return beInv; - } - - public void setBeInv(boolean beInv) { - this.beInv = beInv; - } - - public boolean isBeSAPItem() { - return beSAPItem; - } - - public void setBeSAPItem(boolean beSAPItem) { - this.beSAPItem = beSAPItem; - } + private boolean beUnpacking=false;//是否最小包装 private Double multipleOrder=0d;// @@ -229,6 +189,55 @@ public class Item extends Entity { private Number largeWidth ; private Number largeHeight; + + public boolean isBeUnpacking() { + return beUnpacking; + } + + public void setBeUnpacking(boolean beUnpacking) { + this.beUnpacking = beUnpacking; + } + + public boolean isBeExtend1() { + return beExtend1; + } + + public void setBeExtend1(boolean beExtend1) { + this.beExtend1 = beExtend1; + } + + public boolean isBeExtend2() { + return beExtend2; + } + + public void setBeExtend2(boolean beExtend2) { + this.beExtend2 = beExtend2; + } + + public boolean isBeInventory() { + return beInventory; + } + + public void setBeInventory(boolean beInventory) { + this.beInventory = beInventory; + } + + public boolean isBeInv() { + return beInv; + } + + public void setBeInv(boolean beInv) { + this.beInv = beInv; + } + + public boolean isBeSAPItem() { + return beSAPItem; + } + + public void setBeSAPItem(boolean beSAPItem) { + this.beSAPItem = beSAPItem; + } + public WarehouseArea getWarehouseArea() { return warehouseArea; diff --git a/src/main/java/com/dev/swms/server/model/base/item.hbm.xml b/src/main/java/com/dev/swms/server/model/base/item.hbm.xml index 5e71463..1ca32f8 100644 --- a/src/main/java/com/dev/swms/server/model/base/item.hbm.xml +++ b/src/main/java/com/dev/swms/server/model/base/item.hbm.xml @@ -178,6 +178,7 @@ + diff --git a/src/main/java/com/dev/swms/server/model/inventory/Task.java b/src/main/java/com/dev/swms/server/model/inventory/Task.java index 2e03e15..d3682dd 100644 --- a/src/main/java/com/dev/swms/server/model/inventory/Task.java +++ b/src/main/java/com/dev/swms/server/model/inventory/Task.java @@ -141,8 +141,8 @@ public class Task extends VersionalEntity { private String strBill5;//合单人 private String strBill6;//是否未未拆包装 private String strBill7;//库位的容器 - private String strBill8;// - private String strBill9;// + private String strBill8;//拆分号分组 + private String strBill9;//头物料 private String strBill10;//退料属性(T) private Date dateBill1=new Date();//下发日期 private Date dateBill2;//合单移动日期 @@ -155,9 +155,26 @@ public class Task extends VersionalEntity { private String positionStatus;//位置状态 private String oldGzz;//原工作站 private String oldZrw;//原子任务 + private boolean beUnpacking=false;//是否最小包装 + private String ncrCode;//不良品的NCR号 - + public String getNcrCode() { + return ncrCode; + } + + public void setNcrCode(String ncrCode) { + this.ncrCode = ncrCode; + } + + public boolean isBeUnpacking() { + return beUnpacking; + } + + public void setBeUnpacking(boolean beUnpacking) { + this.beUnpacking = beUnpacking; + } + public String getOldGzz() { return oldGzz; } diff --git a/src/main/java/com/dev/swms/server/model/inventory/task.hbm.xml b/src/main/java/com/dev/swms/server/model/inventory/task.hbm.xml index 30ba7c2..9873fe2 100644 --- a/src/main/java/com/dev/swms/server/model/inventory/task.hbm.xml +++ b/src/main/java/com/dev/swms/server/model/inventory/task.hbm.xml @@ -173,7 +173,8 @@ - + + diff --git a/src/main/java/com/dev/swms/server/service/base/pojo/DefaultItemManager.java b/src/main/java/com/dev/swms/server/service/base/pojo/DefaultItemManager.java index d812555..58d1a20 100644 --- a/src/main/java/com/dev/swms/server/service/base/pojo/DefaultItemManager.java +++ b/src/main/java/com/dev/swms/server/service/base/pojo/DefaultItemManager.java @@ -142,6 +142,7 @@ public class DefaultItemManager extends DefaultBaseManager implements i.setBeInventory(item.isBeInventory()); i.setBeExtend1(item.isBeExtend1()); i.setBeExtend2(item.isBeExtend2()); + i.setBeUnpacking(item.isBeUnpacking()); double a=length*width*height; if(i.getPackNumber()>0) { i.setVolume(a/i.getPackNumber()); diff --git a/src/main/java/com/dev/swms/server/service/interfaceLog/pojo/DefaultQueryAppManager.java b/src/main/java/com/dev/swms/server/service/interfaceLog/pojo/DefaultQueryAppManager.java index 59a7359..41653ae 100644 --- a/src/main/java/com/dev/swms/server/service/interfaceLog/pojo/DefaultQueryAppManager.java +++ b/src/main/java/com/dev/swms/server/service/interfaceLog/pojo/DefaultQueryAppManager.java @@ -2081,7 +2081,8 @@ public class DefaultQueryAppManager extends DefaultBaseManager implements QueryA + " MAX(item.STR_EXTEND1) as STR_EXTEND1,MAX(item.unit) as unit," + "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" + + " max(lt.TO_CELL_CODE) as END_REGION ,max(z.LEVELS) as LEVELS,max(ptd.strBill13) as strBill13," + + " item.BE_UNPACKING as BE_UNPACKING " + " 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 " @@ -2115,7 +2116,7 @@ public class DefaultQueryAppManager extends DefaultBaseManager implements QueryA } sql.append(" group by t.END_REGION,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 "); + + "ik.PROP_D1,ik.PROP_D2,item.ISBOM,item.BE_UNPACKING "); sql.append(" order by max(lt.finish_Date) ,min(t.skips ),max(loc.code) asc, item.id,t.BILLCODE "); @@ -2271,7 +2272,15 @@ public class DefaultQueryAppManager extends DefaultBaseManager implements QueryA obj.put("isScode", "false");//是否扫描容器 } String receiver=arrier[30]==null?"":arrier[30].toString(); + String beUnpacking=arrier[31]==null?"":arrier[31].toString(); + obj.put("receiver", receiver); + if(beUnpacking.equals("1")||beUnpacking.equals("true")) { + beUnpacking="true"; + }else { + beUnpacking="false"; + } + obj.put("beUnpacking", beUnpacking); array.add(obj); break; } @@ -3447,6 +3456,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());//是否最小包装 if(thb.getSourceType()!=null&&thb.getSourceType().equals("313")) { obj.put("be_Supernova","true");//是否超发 }else { @@ -6170,6 +6180,9 @@ public class DefaultQueryAppManager extends DefaultBaseManager implements QueryA int y=0; for(String id :result){ // try{ + if (unQty == 0) { + break; + } t=commonDao.load(Task.class, Long.parseLong(id)); ptd=commonDao.load(PickTicketDetail.class, t.getPickTicketDetail().getId()); pt=commonDao.load(PickTicket.class, ptd.getPickTicket().getId()); @@ -6203,9 +6216,7 @@ public class DefaultQueryAppManager extends DefaultBaseManager implements QueryA String macs=""; String printName=""; double qty=0;//当前拣货数量 - if (unQty == 0) { - break; - } + if(quantity>t.getPlanQuantity()){ qty=t.getPlanQuantity(); quantity=quantity-t.getPlanQuantity(); @@ -6639,6 +6650,9 @@ public class DefaultQueryAppManager extends DefaultBaseManager implements QueryA int y=0; for(String id :result){ // try{ + if (unQty == 0) { + break; + } t=commonDao.load(Task.class, Long.parseLong(id)); ptd=commonDao.load(PickTicketDetail.class, t.getPickTicketDetail().getId()); pt=commonDao.load(PickTicket.class, ptd.getPickTicket().getId()); @@ -6667,9 +6681,7 @@ public class DefaultQueryAppManager extends DefaultBaseManager implements QueryA String macs=""; String printName=""; double qty=0;//拣货数量 - if (unQty == 0) { - break; - } + if(quantity>t.getPlanQuantity()){ qty=t.getPlanQuantity(); quantity=quantity-t.getPlanQuantity(); @@ -9842,7 +9854,7 @@ public class DefaultQueryAppManager extends DefaultBaseManager implements QueryA }else { if(hx.length()>0) { int hs=Integer.parseInt(hx); - if(hs>30) { + if(hs>15) { data1.put("soi", "2");//2绿色颜色 }else { data1.put("soi", "0");//0无颜色 diff --git a/src/main/java/com/dev/swms/server/service/inventory/pojo/DefaultInventoryManager.java b/src/main/java/com/dev/swms/server/service/inventory/pojo/DefaultInventoryManager.java index 2181476..a888281 100644 --- a/src/main/java/com/dev/swms/server/service/inventory/pojo/DefaultInventoryManager.java +++ b/src/main/java/com/dev/swms/server/service/inventory/pojo/DefaultInventoryManager.java @@ -3194,9 +3194,11 @@ public class DefaultInventoryManager extends DefaultBaseManager implements Inven stock.setType(status); commonDao.store(stock); for (Inventory inventory : inventories) { + if(inventory.getStatus().equals("整理中")) { inventory.setStatus(status); inventory.setMoveStatus(null); commonDao.store(inventory); + } } } diff --git a/src/main/java/com/dev/swms/server/service/shipping/PickTicketManager.java b/src/main/java/com/dev/swms/server/service/shipping/PickTicketManager.java index 7107730..ea1b403 100644 --- a/src/main/java/com/dev/swms/server/service/shipping/PickTicketManager.java +++ b/src/main/java/com/dev/swms/server/service/shipping/PickTicketManager.java @@ -416,12 +416,14 @@ public interface PickTicketManager extends BaseManager { /**美务转换*/ @Transactional void mwzh(List ids,Date date,int qty,String driver,String cph,String remark); - + //手工分配 @Transactional void manualAllocate(Map clientParams,List id); @Transactional void manualAllocate(Long ptdid,Long invid); - + //不良品手工分配 + @Transactional + void defectiveManualAllocate(Map clientParams,List id); /**取消分配*/ @Transactional void cancellAllocate(List ids); @@ -705,9 +707,12 @@ public interface PickTicketManager extends BaseManager { void createSeedWallArrangeTask(); @Transactional void createAGVtask(List ids,Long id); - + //打印标签 @Transactional void updatePrintTask(List ids,Long pId,int nuber); + //记录标签补打次数 + @Transactional + void reprintPrintTask(String barCode,Long pId,int nuber,Long workerId); @Transactional Task createTask(Inventory inventory, PickTicketDetail ptd, double allocateQty); diff --git a/src/main/java/com/dev/swms/server/service/shipping/pojo/DefaultPickTicketManager.java b/src/main/java/com/dev/swms/server/service/shipping/pojo/DefaultPickTicketManager.java index e7870d6..b84fdbb 100644 --- a/src/main/java/com/dev/swms/server/service/shipping/pojo/DefaultPickTicketManager.java +++ b/src/main/java/com/dev/swms/server/service/shipping/pojo/DefaultPickTicketManager.java @@ -73,6 +73,7 @@ import com.dev.swms.server.model.count.CountRecord; import com.dev.swms.server.model.count.CountStatus; import com.dev.swms.server.model.delivery.PlantLocation; import com.dev.swms.server.model.interfaceLog.InterfaceLog; +import com.dev.swms.server.model.interfaceLog.OperationHis; import com.dev.swms.server.model.interfaces.InterfaceWmsOut; import com.dev.swms.server.model.inventory.AgvTask; import com.dev.swms.server.model.inventory.Configuration; @@ -2878,7 +2879,7 @@ public class DefaultPickTicketManager extends DefaultBaseManager implements Pick task.setPlanQuantityMU(allocateQty); task.setInventoryStatus(inventory.getStatus()); task.setCreateTime(new Date()); - + task.setStrBill10(inventory.getStatuss()); task.setWarehouseArea(inventory.getLocation().getZone()); task.setBarCode(inventory.getBarCode()); task.setSrcLP(inventory.getLocation().getStock()); @@ -4141,10 +4142,10 @@ public class DefaultPickTicketManager extends DefaultBaseManager implements Pick invsql += " AND inv.itemKey.lotInfo.propD2 is null "; } //是否是退料 - if(task.getStrBill10()!=null) { + if(task.getStrBill10()!=null&&task.getStrBill10().length()>0) { invsql += " AND inv.statuss='"+task.getStrBill10()+"' "; }else { - invsql += " AND inv.statuss is null "; + invsql += " AND (inv.statuss is null or inv.statuss='' ) "; } } invsql+=" order by inv.queuedQuantity desc "; @@ -7220,6 +7221,9 @@ public class DefaultPickTicketManager extends DefaultBaseManager implements Pick w = this.load(Worker.class, t.getWorker4().getId()); } PrintEquipment printEquipment = commonDao.load(PrintEquipment.class, pId); + if(printEquipment==null) { + throw new BusinessException("请选择打印机"); + } SimpleDateFormat ymd = new SimpleDateFormat("yyyyMMdd"); SimpleDateFormat ymd1 = new SimpleDateFormat("yyyy-MM-dd"); String macs = ""; @@ -10066,4 +10070,145 @@ public class DefaultPickTicketManager extends DefaultBaseManager implements Pick data=obj.toString(); return data; } + + public void reprintPrintTask(String barCode,Long pId,int nuber,Long workerId) { + if(barCode!=null&&barCode.length()>0) { + String billCode="";//料号 + String itemcode="";//子任务号 + String itemNuber="";//行号 + String [] str=null; + if(barCode.indexOf("/")!=-1){ + str=barCode.split("/"); + if(str.length>=2){ + billCode=str[1].trim(); + itemNuber=str[2].trim(); + itemcode=str[3].trim(); + } + if(nuber<=0) { + throw new BusinessException("打印张数必须大于0"); + } + String sql ="select t.id from Task t where t.movedQuantityMU>0 and " + + " t.billCode='"+billCode+"' and t.itemKey.item.code='"+itemcode+"'" + + " and t.pickTicketDetail.lineNumber='"+itemNuber+"'"; + List list=commonDao.findByQuery(sql); + if(list.size()>0) { + updatePrintTask(list, pId, nuber); + OperationHis his =null; + String hql=" from OperationHis o where o.sourceType='补打标签' and actionName='补打标签' "; + List ohs=commonDao.findByQuery(hql); + if(ohs.size()>0) { + his=ohs.get(0); + } + if(his==null) { + his= (OperationHis) EntityFactory.getEntity(OperationHis.class); + his.setSourceId(pId); + his.setSourceNo(barCode); + his.setSourceType("补打标签"); + his.setActionName("补打标签"); + his.setQuantity(his.getQuantity()+1); + + his.setRemark("补打标签"); + his.setWarehouseId(1L); + his.setExtendStr1("WMS"); + his.setUserId(workerId); + his.setUpdateTime(new Date()); + this.commonDao.store(his); + } +// wmsOperationHisManager.storeOperationHis(pId, barCode, null, "", "补打标签", "补打标签", null, null, 0, +// nuber, 0, 0, "", "WMS"); + }else { + throw new BusinessException("二维码查询失败"); + } + + } + } + } + + public void defectiveManualAllocate(Map params, List id) { + PickTicketDetail ptd = commonDao.load(PickTicketDetail.class, id.get(0)); + PickTicket pt = null; + if (ptd != null) { + pt = commonDao.load(PickTicket.class, ptd.getPickTicket().getId()); + } + List tasks=new ArrayList(); + Set> itor = params.entrySet(); + double allocatedQuantity = 0; + + for (Map.Entry me : itor) { + ReceivingInventory rd = this.load(ReceivingInventory.class, Long.parseLong(me.getKey().toString())); + double rd_qty=rd.getReceivedQuantity()-rd.getShippedQuantity(); + double quantity = Double.parseDouble(me.getValue().get(0).toString()); + double unallocateQty = ptd.getOrderQuantity() - ptd.getAllocatedQuantity(); + if(rd_qty<=0) { + throw new BusinessException("不良品数量不足"); + } + if(quantity>rd_qty) { + throw new BusinessException("输入数量不能大于库存数量"); + } + if(rd.getStrBill1()==null||rd.getStrBill1().length()==0) { + throw new BusinessException("NCR号不能为空"); + } + if (unallocateQty == 0) { + break; + } + if (quantity > unallocateQty) { + allocatedQuantity = unallocateQty; + } else { + allocatedQuantity = quantity; + } + // + String hql=" from Inventory inv where inv.location.id="+rd.getLocation().getId() + +" 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 + + " "; + if(rd.getBarCode()!=null&&rd.getBarCode().length()>0) { + hql=" and inv.barCode='"+rd.getBarCode()+"' "; + } + List invsList=commonDao.findByQuery(hql); +// for(Inventory inventory:invsList) { +// +// } + if(invsList.size()>0) { + Inventory inventory=invsList.get(0); + Task task = createTask(inventory, ptd, allocatedQuantity); + task.setNcrCode(rd.getStrBill1()); + commonDao.store(task); + tasks.add(task); + inventory.setQueuedQuantity(inventory.getQueuedQuantity()+allocatedQuantity); + commonDao.store(inventory); + ptd.setAllocatedQuantity(ptd.getAllocatedQuantity() + allocatedQuantity); + if(task.getBarCode()!=null&&!task.getBarCode().equals("")) { + if(ptd.getStrBill14()!=null&&ptd.getStrBill14().length()>0) { + if(ptd.getStrBill15()!=null&&ptd.getStrBill15().equals("1")) { + ptd.setStrBill14(task.getBarCode()); + }else { + if(!task.getBarCode().equals(ptd.getStrBill14())) { + throw new BusinessException("" + "必须分配该序列号"+ptd.getStrBill14()); + } + } + }else { + ptd.setStrBill14(task.getBarCode()); + ptd.setStrBill15("1"); + } + } + commonDao.store(ptd); + }else { + throw new BusinessException("库存汇总库存不足!"); + } + } + + //回传状态,工单出库才回传 + if (pt != null && pt.getCode().indexOf("CP") == -1 + &&pt.getBillType().getName().indexOf("工单")>=0&&tasks.size()>0) { +// List pdids = new ArrayList(); +// pdids.add(ptd.getId()); + interfaceReqManager.wmsSapZhuantaihuichuang(tasks, 0,"",1);// 状态回传 + } + if(pt!=null) { + refreshOrderQuantity(pt); + } + } + } \ No newline at end of file diff --git a/src/main/java/com/dev/swms/server/web/servlet/ASNReceiveServlet.java b/src/main/java/com/dev/swms/server/web/servlet/ASNReceiveServlet.java index 3183819..0e8f46b 100644 --- a/src/main/java/com/dev/swms/server/web/servlet/ASNReceiveServlet.java +++ b/src/main/java/com/dev/swms/server/web/servlet/ASNReceiveServlet.java @@ -457,6 +457,7 @@ public class ASNReceiveServlet extends HttpServlet { String billCode =json.has("taskCode")?json.getString("taskCode"):"";//子任务好 String sid=json.has("s_id")?json.getString("s_id"):"";//容器 String str_loc=json.has("str_loc")?json.getString("str_loc"):"";//LOC + String applicant=json.has("applicantName")?json.getString("applicantName"):"";//申请人 String location_id=json.has("location_id")?json.getString("location_id"):"0";//合单库位 if(sid==null||sid.equals("")) { @@ -472,6 +473,8 @@ public class ASNReceiveServlet extends HttpServlet { String mac =json.has("mac")?json.getString("mac"):""; String pqty =json.has("pqty")?json.getString("pqty"):"1"; String itemCode =json.has("item_code")?json.getString("item_code"):""; + 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); try { diff --git a/src/main/java/com/dev/swms/server/web/servlet/PrintServlet.java b/src/main/java/com/dev/swms/server/web/servlet/PrintServlet.java index 6a2945a..99adc77 100644 --- a/src/main/java/com/dev/swms/server/web/servlet/PrintServlet.java +++ b/src/main/java/com/dev/swms/server/web/servlet/PrintServlet.java @@ -32,6 +32,7 @@ import com.dev.swms.server.model.shipping.PrintEquipment; import com.dev.swms.server.model.shipping.PrintTask; import com.dev.swms.server.service.base.WorkerManager; import com.dev.swms.server.service.interfaceLog.QueryAppManager; +import com.dev.swms.server.service.shipping.PickTicketManager; import com.dev.swms.server.service.shipping.WaveDocManager; import org.apache.log4j.Logger; /** @@ -128,6 +129,14 @@ private static Logger logger = Logger.getLogger(PrintServlet.class); String pc1 =json.has("pc1")?json.getString("pc1"):""; long ptId = json.has("ptId")?Long.parseLong(json.getString("ptId").equals("")?"0":json.getString("ptId")):0; resultJson=this.printTask(itemId,ptId,barCodes, pc1,commonDao); + }else if("reprintPrintTask".equals(methodType)){ + //补打标签 + String barCodes =json.has("barCodes")?json.getString("barCodes"):""; + long ptId = json.has("ptId")?Long.parseLong(json.getString("ptId").equals("")?"0":json.getString("ptId")):0; + long quantity = json.has("quantity")?Long.parseLong(json.getString("quantity").equals("")?"0":json.getString("quantity")):0; + String mac =json.has("mac")?json.getString("mac"):""; + String printName =json.has("printName")?json.getString("printName"):""; + resultJson=this.reprintPrintTask(ptId,barCodes, quantity,workerId,commonDao); } logger.info("======"+resultJson.toString()); PrintWriter out = null; @@ -438,5 +447,31 @@ private static Logger logger = Logger.getLogger(PrintServlet.class); resultJson.put("data", data); return resultJson; } - + /** + * 打印确认 + * @param ptId + * @param commonDao + * @return + */ + public synchronized JSONObject reprintPrintTask(long ptId,String barCodes,Long qty,Long workerId,CommonDao commonDao){ + JSONObject resultJson = new JSONObject(); + String status="0"; + String msg=""; + String data=""; + if(ptId>0){ + try { + PickTicketManager pick = (PickTicketManager) ac.getBean("pickTicketManager"); + pick.reprintPrintTask(barCodes,ptId, qty.intValue(),workerId); + status="1"; + } catch (Exception e) { + msg=e.getMessage(); + } + }else{ + msg="ptId参数为null或参数错误!"; + } + resultJson.put("status", status); + resultJson.put("msg", msg); + resultJson.put("data", data); + return resultJson; + } } diff --git a/src/main/java/com/dev/swms/server/web/servlet/export/impl/XLSExportGenerator.java b/src/main/java/com/dev/swms/server/web/servlet/export/impl/XLSExportGenerator.java index 3ceb839..9b1b9ed 100644 --- a/src/main/java/com/dev/swms/server/web/servlet/export/impl/XLSExportGenerator.java +++ b/src/main/java/com/dev/swms/server/web/servlet/export/impl/XLSExportGenerator.java @@ -144,7 +144,7 @@ public class XLSExportGenerator implements ExportExcelGenerator, ApplicationCont } - return data; + return data.trim(); } public void delFile(String filePath){ diff --git a/src/test/yao/2024.sql b/src/test/yao/2024.sql index e5755fe..f788b5a 100644 --- a/src/test/yao/2024.sql +++ b/src/test/yao/2024.sql @@ -455,3 +455,18 @@ ALTER TABLE LOCATION_STORAGE add be_auto tinyint NULL; GO update LOCATION_STORAGE set be_auto=0 where be_auto is null; GO + +--------2025-02-19 +ALTER TABLE ITEM add BE_UNPACKING tinyint NULL; +GO +update ITEM set BE_UNPACKING=0 where BE_UNPACKING is null; +GO + +ALTER TABLE task add BE_UNPACKING tinyint NULL; +GO +update task set BE_UNPACKING=0 where BE_UNPACKING is null; +GO + +ALTER TABLE task add NCR_CODE varchar(50) COLLATE Chinese_PRC_CI_AS NULL; +GO + diff --git a/src/webapp/WEB-INF/classes/config/origen/base/editItemDetailPage.xml b/src/webapp/WEB-INF/classes/config/origen/base/editItemDetailPage.xml index 10115a4..6e40034 100644 --- a/src/webapp/WEB-INF/classes/config/origen/base/editItemDetailPage.xml +++ b/src/webapp/WEB-INF/classes/config/origen/base/editItemDetailPage.xml @@ -88,7 +88,7 @@ - + diff --git a/src/webapp/WEB-INF/classes/config/origen/shipping/maintainBillPage.xml b/src/webapp/WEB-INF/classes/config/origen/shipping/maintainBillPage.xml index ba9cd4f..92f19b4 100644 --- a/src/webapp/WEB-INF/classes/config/origen/shipping/maintainBillPage.xml +++ b/src/webapp/WEB-INF/classes/config/origen/shipping/maintainBillPage.xml @@ -193,7 +193,7 @@ /~inventory.SOI: AND task.billCode LIKE {inventory.SOI}~/ /~task.strBill4: AND task.strBill4 LIKE {task.strBill4}~/ /~propC2: AND itemKey.lotInfo.propC2 like {propC2} ~/) - /~billType.name: AND billType.id = {billType.name}~/ + /~billType.name: AND pickTicket.billType.id = {billType.name}~/ /~szone.id: AND szone.id = {szone.id}~/ order by task.pickTicketDetail.pickTicket.orderDate,task.id desc ]]> diff --git a/src/webapp/WEB-INF/classes/config/origen/shipping/maintainReceivingInventoryManualPage.xml b/src/webapp/WEB-INF/classes/config/origen/shipping/maintainReceivingInventoryManualPage.xml new file mode 100644 index 0000000..b382fb6 --- /dev/null +++ b/src/webapp/WEB-INF/classes/config/origen/shipping/maintainReceivingInventoryManualPage.xml @@ -0,0 +1,135 @@ + + + + + + + + + + 'COUNT' and location.disabled=false + ]]> + + + + + + + + + + 0 + AND location.warehouse = #{SESSION_WAREHOUSE} + /~location.id: AND rd.location.id = {location.id}~/ + /~itemKeyLot: AND rd.strBill1 LIKE {itemKeyLot}~/ + /~inventory.barCode: AND rd.barCode LIKE {inventory.barCode}~/ + /~inventory.propC2: AND rd.itemKey.lotInfo.propC2 LIKE {inventory.propC2}~/ + /~inventory.storageDate: AND rd.storageDate = {inventory.storageDate}~/ + order by rd.receiveDate asc,rd.id asc + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/webapp/WEB-INF/classes/config/origen/shipping/modifyPickTicketManualPage.xml b/src/webapp/WEB-INF/classes/config/origen/shipping/modifyPickTicketManualPage.xml index fb6b8c5..c74e247 100644 --- a/src/webapp/WEB-INF/classes/config/origen/shipping/modifyPickTicketManualPage.xml +++ b/src/webapp/WEB-INF/classes/config/origen/shipping/modifyPickTicketManualPage.xml @@ -75,6 +75,12 @@ editEnabled="true" /> + + 0) ]]> + + diff --git a/src/webapp/WEB-INF/classes/config/origen/shipping/setPickedQuantityPage.xml b/src/webapp/WEB-INF/classes/config/origen/shipping/setPickedQuantityPage.xml index 99fb563..df514be 100644 --- a/src/webapp/WEB-INF/classes/config/origen/shipping/setPickedQuantityPage.xml +++ b/src/webapp/WEB-INF/classes/config/origen/shipping/setPickedQuantityPage.xml @@ -44,7 +44,7 @@ where location.code like :param ]]> - @@ -59,12 +59,12 @@ where location.code like :param - + + parameter="task.id,task.dstLP.id,task.srcLoc.id,task.itemKey.propC1,task.planQuantity,workerId,beUrgent,task.ncrCode,loc_id" />