From cf33668c798a84ab7048db1da729118a4bdbbd95 Mon Sep 17 00:00:00 2001 From: userName Date: Sat, 24 May 2025 21:43:56 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E6=8B=8D=E7=85=A7=E3=80=81?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../server/interfaces/ItemJobLauncher.java | 14 +- .../dev/swms/server/model/base/ImageObj.java | 45 +++ .../com/dev/swms/server/model/base/Item.java | 17 +- .../dev/swms/server/model/base/SignFile.java | 57 +++- .../dev/swms/server/model/base/item.hbm.xml | 5 +- .../swms/server/model/base/signFile.hbm.xml | 6 + .../swms/server/model/delivery/ZonePlant.java | 1 + .../server/model/inventory/Inventory.java | 12 +- .../server/model/inventory/inventory.hbm.xml | 1 + .../dev/swms/server/model/receiving/ASN.java | 2 - .../server/model/receiving/ASNDetail.java | 18 +- .../server/model/receiving/MoveDocDetail.java | 9 +- .../server/model/receiving/asnDetail.hbm.xml | 14 +- .../model/receiving/moveDocDetail.hbm.xml | 9 +- .../base/pojo/DefaultAgvTaskManager.java | 9 +- .../server/service/interfaceLog/ApiURL.java | 2 +- .../interfaceLog/ImageFileManager.java | 12 + .../pojo/DefaultImageFileManager.java | 268 +++++++++++++++++- .../pojo/DefaultInterfaceItemManager.java | 26 +- .../pojo/DefaultInterfaceLogManager.java | 26 +- .../pojo/DefaultInterfaceReqManager.java | 2 +- .../pojo/DefaultInterfaceRespManager.java | 30 +- .../pojo/DefaultQueryAppManager.java | 198 +++++++++---- .../allocate/DefaultAutoAllocator.java | 30 +- .../picking/pojo/DefaultMasterBolManager.java | 4 +- .../receiving/pojo/DefaultASNManager.java | 77 ++--- .../receiving/pojo/DefaultMoveDocManager.java | 20 +- .../shipping/pojo/DefaultNewWaveManager.java | 46 +++ .../pojo/DefaultPickTicketManager.java | 93 +++--- .../pojo/DefaultTaskIssuedManager.java | 10 +- .../shipping/pojo/DefaultWaveDocManager.java | 22 +- .../server/web/servlet/ASNReceiveServlet.java | 90 ++++-- .../server/web/servlet/ImageQueryServlet.java | 174 ++++++++++++ .../swms/server/web/servlet/MoveServlet.java | 2 - .../server/web/servlet/ReadWeightServlet.java | 196 +++++++++++-- .../server/web/servlet/SWMSLoginServlet.java | 2 +- src/main/java/serviceContext.xml | 6 + src/test/yao/2025.sql | 71 ++++- .../origen/base/maintainItemPicturePage.xml | 67 +++++ .../origen/base/maintainLocationPage.xml | 1 - .../origen/base/maintainPlantLocationPage.xml | 11 +- .../classes/config/origen/menuConfig.xml | 1 + .../putaway/maintainLibraryTaskPage.xml | 2 - .../origen/receiving/editReceiveGoodsPage.xml | 2 +- .../receiving/maintainASNDetailPage.xml | 3 + .../receiving/modifyLookAGVTaskPage.xml | 2 +- .../shipping/maintainPickTicketOAPage.xml | 5 +- .../origen/shipping/maintainTaskPage.xml | 8 +- .../WEB-INF/classes/dataSourceContext.xml | 4 +- .../WEB-INF/classes/hibernate.properties | 2 +- src/webapp/WEB-INF/web.xml | 11 +- src/webapp/imageView.jsp | 127 +++++++++ 52 files changed, 1543 insertions(+), 329 deletions(-) create mode 100644 src/main/java/com/dev/swms/server/model/base/ImageObj.java create mode 100644 src/main/java/com/dev/swms/server/web/servlet/ImageQueryServlet.java create mode 100644 src/webapp/WEB-INF/classes/config/origen/base/maintainItemPicturePage.xml create mode 100644 src/webapp/imageView.jsp diff --git a/src/main/java/com/dev/swms/server/interfaces/ItemJobLauncher.java b/src/main/java/com/dev/swms/server/interfaces/ItemJobLauncher.java index 5c123d7..e2f888c 100644 --- a/src/main/java/com/dev/swms/server/interfaces/ItemJobLauncher.java +++ b/src/main/java/com/dev/swms/server/interfaces/ItemJobLauncher.java @@ -487,10 +487,18 @@ public class ItemJobLauncher implements ApplicationListener { + " and p.priority=1 "); for(Long ptid:list) { + PickTicket pt =commonDao.load(PickTicket.class, ptid); + if(pt!=null&&pt.getPriority()>=1 &&(pt.getStatus().equals("PICK_ALL") + ||pt.getStatus().equals("SHIP_PART") + ||pt.getStatus().equals("SHIP_ALL") + ||pt.getStatus().equals("CLOSE") + ||pt.getStatus().equals("HEDAN") + ||pt.getStatus().equals("JIAODAN"))) { List tds =commonDao.findByQuery("select t.id from Task t where t.pickTicketDetail.pickTicket.id="+ptid+" and t.planQuantity>0"); - List tds1 =commonDao.findByQuery("select t.id from Task t where t.pickTicketDetail.pickTicket.id="+ptid+" and t.statusCode=2 " + List tds1 =commonDao.findByQuery("select t.id from Task t where t.pickTicketDetail.pickTicket.id="+ptid+" and t.statusCode<=2 " + " and t.movedQuantityMU>0 and t.planQuantity>0 "); if(tds.size()==tds1.size()) { + List pids=new ArrayList(); pids.add(ptid); pickTicketManager.wmsSapZhuantaihuichuangPTD(pids, 3); @@ -501,6 +509,7 @@ public class ItemJobLauncher implements ApplicationListener { }else { // logger.info("工单号"+pt.getCode()+" 未拣货完成"); } + } } } @@ -529,12 +538,11 @@ public class ItemJobLauncher implements ApplicationListener { } public void sapOutStatusOpen(){ //发料完成,并SAP状态为3. - synchronized("SapOutStatusOpen") { List list= commonDao.findByQuery("select p.id from PickTicket p where" + " p.pickedQuantity=0 and p.billType.code='GPUTPTC'" + " and p.status='OPEN' "); pickTicketManager.wmsSapOrderStatus(list); - } + } diff --git a/src/main/java/com/dev/swms/server/model/base/ImageObj.java b/src/main/java/com/dev/swms/server/model/base/ImageObj.java new file mode 100644 index 0000000..13fd26a --- /dev/null +++ b/src/main/java/com/dev/swms/server/model/base/ImageObj.java @@ -0,0 +1,45 @@ +package com.dev.swms.server.model.base; + +import com.dev.energy.server.model.DomainModel; + +public class ImageObj extends DomainModel{ + +private static final long serialVersionUID = 1L; + + private Long id; + + private String fileUrl; + + private String imageType; + + + public String getImageType() { + return imageType; + } + public void setImageType(String imageType) { + this.imageType = imageType; + } + public Long getId() { + return id; + } + public void setId(Long id) { + this.id = id; + } + public String getFileUrl() { + return fileUrl; + } + public void setFileUrl(String fileUrl) { + this.fileUrl = fileUrl; + } + public ImageObj(Long id, String fileUrl) { + super(); + this.id = id; + this.fileUrl = fileUrl; + } + + public ImageObj() { + super(); + } + + +} 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 c678845..141e6c9 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 @@ -30,9 +30,9 @@ public class Item extends Entity { private double length=0;//长-- private double width=0;//宽 private double height=0;//高 - private double weight=0;//规格重量 private double volume=0;//体积 + private int packNumber=0;//规格数量 /** * 是否危化品 */ @@ -43,7 +43,7 @@ public class Item extends Entity { private WarehouseArea defaultWarehouseArea;//默认库区 private String shipRules;//库存价值等级 SAP下发 private int balanceNumber=0;//是否更新长宽高 - private int packNumber=0;//规格数量 + private String feeType;//货品类型 SAP OA private String CAname;//简称 @@ -71,6 +71,7 @@ public class Item extends Entity { private String brand;//批号规则YYMMDD private boolean beInv=false;//是否有库存 + private boolean beSAPItem=false;//是否SAP料号 /**库存数量*/ @@ -133,7 +134,7 @@ public class Item extends Entity { private boolean beExtend1=false;//扩展1 private boolean beExtend2=false;//扩展2 private boolean beUnpacking=false;//是否最小包装 - + private boolean beImageFile=false;//是否拍照上传 private boolean beWholeLine=false;//是否整行发料,不满足整行需要备注。 private Position position;//库位组 @@ -188,7 +189,15 @@ public class Item extends Entity { private Number largeHeight; - public Position getPosition() { + public boolean isBeImageFile() { + return beImageFile; + } + + public void setBeImageFile(boolean beImageFile) { + this.beImageFile = beImageFile; + } + + public Position getPosition() { return position; } diff --git a/src/main/java/com/dev/swms/server/model/base/SignFile.java b/src/main/java/com/dev/swms/server/model/base/SignFile.java index 2aecd00..308585b 100644 --- a/src/main/java/com/dev/swms/server/model/base/SignFile.java +++ b/src/main/java/com/dev/swms/server/model/base/SignFile.java @@ -24,8 +24,52 @@ public class SignFile extends Entity{ /**显示名称*/ private String viewName; /**备注*/ - private String remark; + private String remark;//下载路径 + private double length=0;//长 + private double width=0;//宽 + private double height=0;//高 + private double weight=0;//规格重量 + private double volume=0;//体积 + private int packNumber=0;//规格数量 + + + public double getLength() { + return length; + } + public void setLength(double length) { + this.length = length; + } + public double getWidth() { + return width; + } + public void setWidth(double width) { + this.width = width; + } + public double getHeight() { + return height; + } + public void setHeight(double height) { + this.height = height; + } + public double getWeight() { + return weight; + } + public void setWeight(double weight) { + this.weight = weight; + } + public double getVolume() { + return volume; + } + public void setVolume(double volume) { + this.volume = volume; + } + public int getPackNumber() { + return packNumber; + } + public void setPackNumber(int packNumber) { + this.packNumber = packNumber; + } public Item getItem() { return item; } @@ -99,7 +143,7 @@ public class SignFile extends Entity{ *@description: 处理图片FileUrl 参数,传入图片路径 * */ - public void processFileUrl(String imageTarget){ + public void processFileUrl(String imageFileName,String fileNameUrl){ String IP=""; try { InetAddress addr = InetAddress.getLocalHost(); @@ -108,21 +152,24 @@ public class SignFile extends Entity{ // TODO Auto-generated catch block e.printStackTrace(); } - String fileUrl = ""; this.fileUrl = fileUrl; } - public void processFileRemark(String imageTarget){ + public void processFileRemark(String imageFileName,String fileNameUrl){ String IP=""; try { + //获取IP地址 InetAddress addr = InetAddress.getLocalHost(); IP=addr.getHostAddress(); } catch (UnknownHostException e) { // TODO Auto-generated catch block e.printStackTrace(); } - String fileUrl = "http://"+IP+":8080/zwwms/images/zw/imageTarget/" + imageTarget; +// String fileUrl = "http://"+IP+":8080/zwwms/images/zw/imageTarget/" + imageFileName; + String fileUrl = "http://"+IP+":8080/"+fileNameUrl + imageFileName; this.remark = fileUrl; } } 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 c94b03f..aabeecb 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 @@ -95,8 +95,7 @@ - + @@ -180,7 +179,7 @@ - + diff --git a/src/main/java/com/dev/swms/server/model/base/signFile.hbm.xml b/src/main/java/com/dev/swms/server/model/base/signFile.hbm.xml index c11b986..af9edfa 100644 --- a/src/main/java/com/dev/swms/server/model/base/signFile.hbm.xml +++ b/src/main/java/com/dev/swms/server/model/base/signFile.hbm.xml @@ -47,5 +47,11 @@ + + + + + + \ No newline at end of file diff --git a/src/main/java/com/dev/swms/server/model/delivery/ZonePlant.java b/src/main/java/com/dev/swms/server/model/delivery/ZonePlant.java index 88ef7e1..b4f4b88 100644 --- a/src/main/java/com/dev/swms/server/model/delivery/ZonePlant.java +++ b/src/main/java/com/dev/swms/server/model/delivery/ZonePlant.java @@ -9,6 +9,7 @@ public class ZonePlant extends Entity { private WarehouseArea area; /** 缓存地 */ private PlantLocation pLocation; + public WarehouseArea getArea() { return area; } diff --git a/src/main/java/com/dev/swms/server/model/inventory/Inventory.java b/src/main/java/com/dev/swms/server/model/inventory/Inventory.java index b577d5c..bb8a6ee 100644 --- a/src/main/java/com/dev/swms/server/model/inventory/Inventory.java +++ b/src/main/java/com/dev/swms/server/model/inventory/Inventory.java @@ -78,8 +78,18 @@ public class Inventory extends VersionalEntity { private String moveStatus;//移动工作站 /** 备注 */ private String description; + /** 料号 */ + private String itemCode; - + + public String getItemCode() { + return itemCode; + } + + public void setItemCode(String itemCode) { + this.itemCode = itemCode; + } + public String getDescription() { return description; } diff --git a/src/main/java/com/dev/swms/server/model/inventory/inventory.hbm.xml b/src/main/java/com/dev/swms/server/model/inventory/inventory.hbm.xml index d7d6714..b37acbb 100644 --- a/src/main/java/com/dev/swms/server/model/inventory/inventory.hbm.xml +++ b/src/main/java/com/dev/swms/server/model/inventory/inventory.hbm.xml @@ -69,6 +69,7 @@ + diff --git a/src/main/java/com/dev/swms/server/model/receiving/ASN.java b/src/main/java/com/dev/swms/server/model/receiving/ASN.java index 31bca0a..de910ee 100644 --- a/src/main/java/com/dev/swms/server/model/receiving/ASN.java +++ b/src/main/java/com/dev/swms/server/model/receiving/ASN.java @@ -108,8 +108,6 @@ public class ASN extends VersionalEntity { /** 预留字段 */ private String relatedBill3;//需求人 - - /** */ /** 收货单明细 */ private Set asnDetails = new HashSet(); diff --git a/src/main/java/com/dev/swms/server/model/receiving/ASNDetail.java b/src/main/java/com/dev/swms/server/model/receiving/ASNDetail.java index 50dcd55..27ad1b8 100644 --- a/src/main/java/com/dev/swms/server/model/receiving/ASNDetail.java +++ b/src/main/java/com/dev/swms/server/model/receiving/ASNDetail.java @@ -61,7 +61,7 @@ public class ASNDetail extends Entity { private Date receiveDate;//收货日期 /** 收货记录 */ - private Set receivedRecords = new HashSet(); +// private Set receivedRecords = new HashSet(); /***/ private String PO; /** 库位 */ @@ -613,12 +613,12 @@ public class ASNDetail extends Entity { public void setReceivedQuantity(double receivedQuantity) { this.receivedQuantity = receivedQuantity; } - public Set getReceivedRecords() { - return receivedRecords; - } - public void setReceivedRecords(Set receivedRecords) { - this.receivedRecords = receivedRecords; - } +// public Set getReceivedRecords() { +// return receivedRecords; +// } +// public void setReceivedRecords(Set receivedRecords) { +// this.receivedRecords = receivedRecords; +// } public Item getItem() { return item; } @@ -692,7 +692,7 @@ public class ASNDetail extends Entity { recRecord.setOperator(UserHolder.getUser().getName()); } recRecord.setReceivedDoc(receivedDoc); - this.receivedRecords.add(recRecord); +// this.receivedRecords.add(recRecord); return recRecord; } @@ -738,7 +738,7 @@ public class ASNDetail extends Entity { recRecord.setWorker(worker); recRecord.setQualityCode(qualityCode); // this.getAsn().getReceivedRecords().add(recRecord); - this.receivedRecords.add(recRecord); +// this.receivedRecords.add(recRecord); return recRecord; } diff --git a/src/main/java/com/dev/swms/server/model/receiving/MoveDocDetail.java b/src/main/java/com/dev/swms/server/model/receiving/MoveDocDetail.java index c7772d0..2a11372 100644 --- a/src/main/java/com/dev/swms/server/model/receiving/MoveDocDetail.java +++ b/src/main/java/com/dev/swms/server/model/receiving/MoveDocDetail.java @@ -290,6 +290,7 @@ public class MoveDocDetail extends AbstractMoveDocDetail { .append(inventoryStatus, castOther.getInventoryStatus()) .append(newLotInfo, castOther.getNewLotInfo()) .append(lineNo, castOther.lineNo) + .append(receivedRecordId, castOther.receivedRecordId) .isEquals(); } @@ -299,7 +300,7 @@ public class MoveDocDetail extends AbstractMoveDocDetail { storageDate).append(SOI).append(srcLoc).append(dstLoc).append( srcLP).append(srcLPCode).append(dstLP).append(dstLPCode) .append(packageUnit).append(inventoryStatus) - .append(newLotInfo).append(lineNo).toHashCode(); + .append(newLotInfo).append(lineNo).append(receivedRecordId).toHashCode(); } protected MoveDocDetail() { @@ -474,9 +475,9 @@ public class MoveDocDetail extends AbstractMoveDocDetail { public void addTask(String taskType, Location fromLocation, Location toLocation, Stock srcLp, Stock dstLp, ItemKey itemKey, Date storageDate, String soi, String status, double allocatedQuantity, PackageUnit packageUnit) { - if (this.getTasks() == null) { - this.setTasks(new HashSet()); - } +// if (this.getTasks() == null) { +// this.setTasks(new HashSet()); +// } getTask(taskType, fromLocation, toLocation, srcLp, dstLp, itemKey, storageDate, soi, status, allocatedQuantity, packageUnit); } diff --git a/src/main/java/com/dev/swms/server/model/receiving/asnDetail.hbm.xml b/src/main/java/com/dev/swms/server/model/receiving/asnDetail.hbm.xml index 8af6d0c..44ec42e 100644 --- a/src/main/java/com/dev/swms/server/model/receiving/asnDetail.hbm.xml +++ b/src/main/java/com/dev/swms/server/model/receiving/asnDetail.hbm.xml @@ -63,9 +63,9 @@ + length="200" /> + length="200" /> @@ -102,11 +102,11 @@ - - - - + + + + + diff --git a/src/main/java/com/dev/swms/server/model/receiving/moveDocDetail.hbm.xml b/src/main/java/com/dev/swms/server/model/receiving/moveDocDetail.hbm.xml index 424b948..3fef75e 100644 --- a/src/main/java/com/dev/swms/server/model/receiving/moveDocDetail.hbm.xml +++ b/src/main/java/com/dev/swms/server/model/receiving/moveDocDetail.hbm.xml @@ -65,11 +65,10 @@ class="com.dev.swms.server.model.base.PackageUnit"> - - - - - + + + + diff --git a/src/main/java/com/dev/swms/server/service/base/pojo/DefaultAgvTaskManager.java b/src/main/java/com/dev/swms/server/service/base/pojo/DefaultAgvTaskManager.java index 5a1bdfd..1841dad 100644 --- a/src/main/java/com/dev/swms/server/service/base/pojo/DefaultAgvTaskManager.java +++ b/src/main/java/com/dev/swms/server/service/base/pojo/DefaultAgvTaskManager.java @@ -820,7 +820,7 @@ public class DefaultAgvTaskManager extends DefaultBaseManager implements AgvTask } agvTask.setJobPriorityType(jobPriorityType); if(jobPriorityType!=null&&jobPriorityType==1) { - agvTask.setJobPriority(999L); + agvTask.setJobPriority(9999L); } agvTask.setTargetAreahistory(agvTask.getTargetArea()); commonDao.store(agvTask); @@ -1046,7 +1046,7 @@ public class DefaultAgvTaskManager extends DefaultBaseManager implements AgvTask agvTask.setIdentification(identification); agvTask.setJobPriorityType(jobPriorityType); if(jobPriorityType.equals("1")) { - agvTask.setJobPriority(999L); + agvTask.setJobPriority(9999L); } agvTask.setClassification(classification); agvTask.setFounderName(founderName); @@ -2297,7 +2297,7 @@ public class DefaultAgvTaskManager extends DefaultBaseManager implements AgvTask } //加急接口 public void updateUrgentAgvTask(List ids) { - Long h=999L; + Long h=9999L; if(ids.size()>0) { Date day=new Date(); String hql="select min(agv.jobPriority) from AgvTask agv where agv.jobPriorityType=1 and agv.jobPriority>100 " @@ -2305,7 +2305,7 @@ public class DefaultAgvTaskManager extends DefaultBaseManager implements AgvTask DateUtil.formatDateYMDToStr(day)+"' group by CONVERT(varchar(100), agv.createTime, 23) "; List list=commonDao.findByQuery(hql); if(list.size()>0) { - h=list.get(0)-10; + h=list.get(0)-50; } } for(Long id:ids) { @@ -2344,6 +2344,7 @@ public class DefaultAgvTaskManager extends DefaultBaseManager implements AgvTask } }else if(!agv.isBeIssue()) { agv.setJobPriorityType(1L); + agv.setJobPriority(h); agv.setRemarks("超时加急任务,还未下发"); agv.setUrgentTime(new Date()); commonDao.store(agv); diff --git a/src/main/java/com/dev/swms/server/service/interfaceLog/ApiURL.java b/src/main/java/com/dev/swms/server/service/interfaceLog/ApiURL.java index 6692cdd..b5e743c 100644 --- a/src/main/java/com/dev/swms/server/service/interfaceLog/ApiURL.java +++ b/src/main/java/com/dev/swms/server/service/interfaceLog/ApiURL.java @@ -50,7 +50,7 @@ public class ApiURL { public static String returnOA = ""; // 测试地址 WMS——SAP 回传接口******http://happdev.amecnsh.com:8000/sap/zrest public static String doWmsReqSap = ""; - + // OA生产地址 // public static String returnOA = "https://10.1.112.7/api/zwbdt/e9/oa4sap/confirmRequest"; // WMS——SAP 回传接口 正式生产地址 diff --git a/src/main/java/com/dev/swms/server/service/interfaceLog/ImageFileManager.java b/src/main/java/com/dev/swms/server/service/interfaceLog/ImageFileManager.java index a5081dc..dca6780 100644 --- a/src/main/java/com/dev/swms/server/service/interfaceLog/ImageFileManager.java +++ b/src/main/java/com/dev/swms/server/service/interfaceLog/ImageFileManager.java @@ -1,9 +1,11 @@ package com.dev.swms.server.service.interfaceLog; import java.io.File; +import java.io.InputStream; import java.util.List; import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.multipart.MultipartFile; import com.dev.energy.server.model.Entity; @@ -15,4 +17,14 @@ public interface ImageFileManager { @Transactional void deleteSignFile(List ids); + + @Transactional + void importImageItem(String itemCode, MultipartFile file, + String weight, String length,String width,String height,String packNumber + ,String DateTime,String taskCode, String objectType); + + @Transactional + void importImageItem(Long id, InputStream inputStream, + String weight, String length,String width,String height,String packNumber + ,String DateTime,String taskCode, String objectType,String fileName, String longName); } diff --git a/src/main/java/com/dev/swms/server/service/interfaceLog/pojo/DefaultImageFileManager.java b/src/main/java/com/dev/swms/server/service/interfaceLog/pojo/DefaultImageFileManager.java index f529720..330d73a 100644 --- a/src/main/java/com/dev/swms/server/service/interfaceLog/pojo/DefaultImageFileManager.java +++ b/src/main/java/com/dev/swms/server/service/interfaceLog/pojo/DefaultImageFileManager.java @@ -6,7 +6,14 @@ import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; +import java.io.InputStream; +import java.math.BigDecimal; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.nio.file.StandardCopyOption; import java.text.SimpleDateFormat; +import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.List; @@ -24,11 +31,22 @@ import com.dev.energy.server.web.security.UserHolder; import com.dev.swms.server.utils.PicUtils; import com.dev.swms.server.model.base.Item; import com.dev.swms.server.model.base.SignFile; +import com.dev.swms.server.model.inventory.Task; +import com.dev.swms.server.model.receiving.ASNDetail; +import com.dev.swms.server.model.shipping.PickTicket; import com.dev.swms.server.service.GlobalParamUtils; import com.dev.swms.server.service.interfaceLog.ImageFileManager; +import com.dev.swms.server.service.shipping.PickTicketManager; public class DefaultImageFileManager extends DefaultBaseManager implements ImageFileManager{ - + protected final PickTicketManager pickTicketManager; + + public DefaultImageFileManager(PickTicketManager pickTicketManager) { + super(); + this.pickTicketManager=pickTicketManager; + } + + @Override public void importImageItem(Long id, File file, String imageType, String objectType,String strExtend1) { @@ -44,7 +62,6 @@ public class DefaultImageFileManager extends DefaultBaseManager implements Image throw new BusinessException("璇烽�夋嫨鏂囦欢锛�"); } - } LocalizedMessage.addLocalizedMessage("涓婁紶鎴愬姛"); } @@ -60,7 +77,7 @@ public class DefaultImageFileManager extends DefaultBaseManager implements Image String str2=bb.substring(0, bb.indexOf("-")); String bb2=bb.substring(str2.length()+1, bb.length()); String fileName = bb2.substring(0, bb2.indexOf("-"));*/ - String code = ""; +// String code = ""; Date date = new Date(); Item item=null; String fileName=date.getTime()+".jpg"; @@ -68,8 +85,9 @@ public class DefaultImageFileManager extends DefaultBaseManager implements Image item = this.commonDao.load(Item.class, id); date = new Date(); } - SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); - File file2 = new File("C:/tomcat-8080/webapps/zwwms/images/zw/imageTarget/");// 瀛樻斁鐢熸垚鐨勫浘鐗囩殑鐩爣鏂囦欢澶� +// SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); + String fileNameUrl="zwwms/images/zw/imageTarget/";//文件在项目中路径 + File file2 = new File("C:/tomcat-8080/webapps/"+fileNameUrl);// 瀛樻斁鐢熸垚鐨勫浘鐗囩殑鐩爣鏂囦欢澶� if (!file2.exists()) { file2.mkdirs(); } @@ -78,7 +96,7 @@ public class DefaultImageFileManager extends DefaultBaseManager implements Image MultipartFile multipartFile = new MockMultipartFile(file.getName(),file.getName(),ContentType.APPLICATION_OCTET_STREAM.toString(),in); byte[] bytes = PicUtils.compressPicForScale(multipartFile.getBytes(), 120); - File fOut = new File("C:/tomcat-8080/webapps/zwwms/images/zw/imageTarget/"+ fileName); + File fOut = new File("C:/tomcat-8080/webapps/"+fileNameUrl+ fileName); BufferedInputStream bin = new BufferedInputStream(in); FileOutputStream out = new FileOutputStream(fOut);// 瀹氫箟鏂囦欢杈撳嚭娴� @@ -90,7 +108,7 @@ public class DefaultImageFileManager extends DefaultBaseManager implements Image } if (file != null) { imageFile.setFileName(fileName); - imageFile.processFileUrl(fileName);// 鐢熸垚甯mg鏍囩鐨勭洰鏍囧浘鐗囩殑url鍦板潃 + imageFile.processFileUrl(fileName,fileNameUrl);// 鐢熸垚甯mg鏍囩鐨勭洰鏍囧浘鐗囩殑url鍦板潃 imageFile.setImageType(imageType); imageFile.setObjectType(objectType); imageFile.setOperate(UserHolder.getUser().getName()); @@ -98,7 +116,7 @@ public class DefaultImageFileManager extends DefaultBaseManager implements Image imageFile.setFileDate(new Date()); imageFile.setItem(item); imageFile.setObjectId(id); - imageFile.processFileRemark(fileName); + imageFile.processFileRemark(fileName,fileNameUrl); commonDao.store(imageFile); item.setStrExtend1(strExtend1); commonDao.store(item); @@ -265,5 +283,239 @@ public class DefaultImageFileManager extends DefaultBaseManager implements Image file.delete(); } } + + public void importImageItem(String itemCode, MultipartFile file, + String weight, String length,String width,String height,String packNumber + ,String DateTime,String taskCode,String objectType) { + SignFile imageFile = (SignFile) EntityFactory.getEntity(SignFile.class); + + Date date = new Date(); + Item item=null; + String fileName=date.getTime()+".jpg"; + if (itemCode!=null&&itemCode.length()>0) { + String hql=" from Item i where i.code='"+itemCode+"'"; + List listitem=commonDao.findByQuery(hql); + if(listitem.size()>0) { + item=listitem.get(0); + }else { + + } + date = new Date(); + }else { + + } + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); + String fileUrl2="zwwms/images/zwItem/"+format.format(date)+"/"; + String fileUrl="C:/tomcat-8080/webapps/"+fileUrl2; + File file2 = new File(fileUrl);// + if (!file2.exists()) { + file2.mkdirs(); + } + try { +// FileInputStream in = new FileInputStream(file);// +// +// MultipartFile multipartFile = new MockMultipartFile(file.getName(),file.getName(),ContentType.APPLICATION_OCTET_STREAM.toString(),in); +// byte[] bytes = PicUtils.compressPicForScale(multipartFile.getBytes(), 120); +// File fOut = new File(fileUrl+ fileName); +// +// BufferedInputStream bin = new BufferedInputStream(in); +// FileOutputStream out = new FileOutputStream(fOut);// +// out.write(bytes); +// bin.close(); +// out.close(); + String originalFilename = file.getOriginalFilename(); + Path filePath = Paths.get(fileUrl+ fileName, fileName); + // 保存文件 + Files.copy(file.getInputStream(), filePath, StandardCopyOption.REPLACE_EXISTING); + + } catch (IOException e) { + throw new BusinessException(fileUrl+"存放路径错误!"); + } + if (file != null) { + imageFile.setFileName(fileName); + imageFile.processFileUrl(fileName,fileUrl2);// + imageFile.setImageType("ITEM"); + imageFile.setObjectType(objectType); + imageFile.setOperate(UserHolder.getUser().getName()); + imageFile.setOperateDate(new Date()); + imageFile.setFileDate(new Date()); + imageFile.setItem(item); + if(item!=null) { + imageFile.setObjectId(item.getId()); + } + imageFile.processFileRemark(fileName,fileUrl2); + imageFile.setViewName(itemCode); + try { + imageFile.setLength(Double.parseDouble(length)); + imageFile.setWidth(Double.parseDouble(width)); + imageFile.setHeight(Double.parseDouble(height)); + imageFile.setWeight(Double.parseDouble(weight)); + imageFile.setPackNumber(Integer.parseInt(packNumber)); + }catch (Exception e) { + // TODO: handle exception + } + commonDao.store(imageFile); + } else { + throw new BusinessException("file.not.exist.or.file.length.bigger.than.2M"); + } + + + } + + + //交单拍照 + public void importImageItem(Long id, InputStream inputStream, + String weight, String length,String width,String height,String packNumber + ,String DateTime,String taskCode, String objectType,String fileName, String longName) { + if (inputStream != null) { + SignFile imageFile = new SignFile(); + String code = ""; + Long objectId=0L; + Date date = new Date(); + List list1=new ArrayList(); + //到货登记上传 + if (objectType.equals("ASN")) { + ASNDetail c = this.load(ASNDetail.class, id); +// code = c.getCode(); + objectId=c.getId(); + fileName=code+"_"+fileName; + date = new Date(); + }else if (objectType.equals("PICK")){ + PickTicket c = this.load(PickTicket.class, id); + code = c.getCode(); + objectId=c.getId(); + fileName=code+"_"+fileName; + date = new Date(); + }else if (objectType.equals("TASK")){ + Task c = this.load(Task.class, id); +// code = c.getCode(); + objectId=c.getId(); + fileName=code+"_"+fileName; + date = new Date(); + }else if (objectType.equals("ItemPicture")){ + Item c = this.load(Item.class, id); + list1.add(id); + code = c.getCode(); + objectId=c.getId(); + c.setBeImageFile(true); + double weight2=0; + double length2=0; + double width2=0; + double height2=0; + int specs2=0; + try{ + weight2=Double.parseDouble(weight); + length2=Double.parseDouble(length); + width2=Double.parseDouble(width); + height2=Double.parseDouble(height); + specs2=Integer.parseInt(packNumber); + }catch (Exception e) { + // TODO: handle exception + } + c.setWeight(weight2); + BigDecimal bg1 = new BigDecimal(c.getWeight()/specs2); + double f2 = bg1.setScale(3, BigDecimal.ROUND_HALF_UP).doubleValue(); + if(f2<0.001){ + c.setSuggest(0.001); + }else{ + c.setSuggest(f2); + } + BigDecimal bg2 = new BigDecimal(length2/100); + double length1 = bg2.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); + if(length1<0.01) { + length1=0.01; + } + BigDecimal bg3 = new BigDecimal(width2/100); + double width1 = bg3.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); + if(width1<0.01) { + width1=0.01; + } + BigDecimal bg4 = new BigDecimal(height2/100); + double height1 = bg4.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); + if(height1<0.01) { + height1=0.01; + } + c.setLength(length1); + c.setWidth(width1); + c.setHeight(height1); + + c.setCAcoefficient(specs2+0D); + c.setPackNumber((int)Math.abs(specs2)); + c.setVolume(width1*height1*length1); + BigDecimal bg = new BigDecimal(c.getVolume()); + double f1 = bg.setScale(6, BigDecimal.ROUND_HALF_UP).doubleValue(); + if(f1<0.000001) { + f1=0.000001; + } + c.setVolume(f1); + c.setBalanceNumber(1); + if(c.getLength()>0.6||c.getWidth()>0.4) { + c.setGoodType("大件"); + }else { + c.setGoodType("小件"); + } + commonDao.store(c); + fileName=code+"_"+fileName; + date = new Date(); + } + int year=date.getYear(); + int month=date.getMonth(); +// SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); + String fileUrl2="zwwms/images/zwItem/"+year+"/"+month+"/"; + String fileUrl="C:/tomcat-8080/webapps/"+fileUrl2; +// StringBuffer stringBuffer = new StringBuffer(); + File file = new File(fileUrl);// 存放生成的图片的目标文件夹 + if (!file.exists()) { + file.mkdirs(); + } + try { + fileName = fileName.replaceAll("\r|\n", ""); + File outputFile = new File(fileUrl+ fileName); + + BufferedInputStream bin = new BufferedInputStream(inputStream);// 将文件输入流构造到缓存中 + FileOutputStream out = new FileOutputStream(outputFile);// 定义文件输出流 + BufferedOutputStream bout = new BufferedOutputStream(out);// 将文件输出流构造到缓存中 + int i; + while ((i = bin.read()) != -1) { + bout.write(i); + } +// getHtmlCode(stringBuffer, outputFile, fileName, code); + bin.close(); + bout.close();// 关闭输入输出流,释放资源 + } catch (IOException e) { + throw new BusinessException("文件上传出错!"); + } + imageFile.setFileName(fileName); + imageFile.processFileUrl(fileName,fileUrl2);// 生成带img标签的目标图片的url地址 + imageFile.setImageType(objectType);//附件类型 + imageFile.setObjectType(objectType);//对象类型 + imageFile.setOperate(longName); + imageFile.setOperateDate(new Date()); + imageFile.setFileDate(new Date()); + imageFile.setObjectId(id); +// imageFile.setOrderId(objectId); + imageFile.setViewName(code);//料号、单号 + imageFile.processFileRemark(fileName,fileUrl2); + try { + imageFile.setLength(Double.parseDouble(length)); + imageFile.setWidth(Double.parseDouble(width)); + imageFile.setHeight(Double.parseDouble(height)); + imageFile.setWeight(Double.parseDouble(weight)); + imageFile.setPackNumber(Integer.parseInt(packNumber)); + imageFile.setVolume(imageFile.getLength()*imageFile.getWidth()*imageFile.getHeight()); + }catch (Exception e) { + // TODO: handle exception + } + commonDao.store(imageFile); + + if(list1.size()>0) { + pickTicketManager.huichuanItems(list1); + } + + } else { + throw new BusinessException("文件为空!"); + } + } + } diff --git a/src/main/java/com/dev/swms/server/service/interfaceLog/pojo/DefaultInterfaceItemManager.java b/src/main/java/com/dev/swms/server/service/interfaceLog/pojo/DefaultInterfaceItemManager.java index b366f3f..c98bc88 100644 --- a/src/main/java/com/dev/swms/server/service/interfaceLog/pojo/DefaultInterfaceItemManager.java +++ b/src/main/java/com/dev/swms/server/service/interfaceLog/pojo/DefaultInterfaceItemManager.java @@ -1198,19 +1198,19 @@ public class DefaultInterfaceItemManager extends DefaultBaseManager implements omsCode.setText(asn.getRelatedBill1()); //内嵌明细 Element details = order.addElement("DETAILS"); - for (ASNDetail asnDetail : asn.getAsnDetails()) { - Element detail = details.addElement("DETAIL"); - Element product = detail.addElement("PRODUCT"); - Element lot = detail.addElement("LOT"); - Element quantity = detail.addElement("QUANTITY"); - Element unit = detail.addElement("UNIT"); - product.setText(asnDetail.getItem().getCode()); - lot.setText(asnDetail.getLotInfo().getPropC1() == null ? "" : asnDetail.getLotInfo().getPropC1()); - unit.setText(asnDetail.getPackageUnit().getUnit()); - //收货包装数量,折算时保留3位有效小数 - quantity.setText(String.valueOf(DoubleUtils.formatByPrecision( - asnDetail.getReceivedQuantity()/asnDetail.getPackageUnit().getConvertFigure(), 3))); - } +// for (ASNDetail asnDetail : asn.getAsnDetails()) { +// Element detail = details.addElement("DETAIL"); +// Element product = detail.addElement("PRODUCT"); +// Element lot = detail.addElement("LOT"); +// Element quantity = detail.addElement("QUANTITY"); +// Element unit = detail.addElement("UNIT"); +// product.setText(asnDetail.getItem().getCode()); +// lot.setText(asnDetail.getLotInfo().getPropC1() == null ? "" : asnDetail.getLotInfo().getPropC1()); +// unit.setText(asnDetail.getPackageUnit().getUnit()); +// //收货包装数量,折算时保留3位有效小数 +// quantity.setText(String.valueOf(DoubleUtils.formatByPrecision( +// asnDetail.getReceivedQuantity()/asnDetail.getPackageUnit().getConvertFigure(), 3))); +// } return _doc; } diff --git a/src/main/java/com/dev/swms/server/service/interfaceLog/pojo/DefaultInterfaceLogManager.java b/src/main/java/com/dev/swms/server/service/interfaceLog/pojo/DefaultInterfaceLogManager.java index 807eef5..3c56ed9 100644 --- a/src/main/java/com/dev/swms/server/service/interfaceLog/pojo/DefaultInterfaceLogManager.java +++ b/src/main/java/com/dev/swms/server/service/interfaceLog/pojo/DefaultInterfaceLogManager.java @@ -648,19 +648,19 @@ public class DefaultInterfaceLogManager extends DefaultBaseManager implements omsCode.setText(asn.getRelatedBill1()); //内嵌明细 Element details = order.addElement("DETAILS"); - for (ASNDetail asnDetail : asn.getAsnDetails()) { - Element detail = details.addElement("DETAIL"); - Element product = detail.addElement("PRODUCT"); - Element lot = detail.addElement("LOT"); - Element quantity = detail.addElement("QUANTITY"); - Element unit = detail.addElement("UNIT"); - product.setText(asnDetail.getItem().getCode()); - lot.setText(asnDetail.getLotInfo().getPropC1() == null ? "" : asnDetail.getLotInfo().getPropC1()); - unit.setText(asnDetail.getPackageUnit().getUnit()); - //收货包装数量,折算时保留3位有效小数 - quantity.setText(String.valueOf(DoubleUtils.formatByPrecision( - asnDetail.getReceivedQuantity()/asnDetail.getPackageUnit().getConvertFigure(), 3))); - } +// for (ASNDetail asnDetail : asn.getAsnDetails()) { +// Element detail = details.addElement("DETAIL"); +// Element product = detail.addElement("PRODUCT"); +// Element lot = detail.addElement("LOT"); +// Element quantity = detail.addElement("QUANTITY"); +// Element unit = detail.addElement("UNIT"); +// product.setText(asnDetail.getItem().getCode()); +// lot.setText(asnDetail.getLotInfo().getPropC1() == null ? "" : asnDetail.getLotInfo().getPropC1()); +// unit.setText(asnDetail.getPackageUnit().getUnit()); +// //收货包装数量,折算时保留3位有效小数 +// quantity.setText(String.valueOf(DoubleUtils.formatByPrecision( +// asnDetail.getReceivedQuantity()/asnDetail.getPackageUnit().getConvertFigure(), 3))); +// } return _doc; } diff --git a/src/main/java/com/dev/swms/server/service/interfaceLog/pojo/DefaultInterfaceReqManager.java b/src/main/java/com/dev/swms/server/service/interfaceLog/pojo/DefaultInterfaceReqManager.java index 0837f0a..5fde515 100644 --- a/src/main/java/com/dev/swms/server/service/interfaceLog/pojo/DefaultInterfaceReqManager.java +++ b/src/main/java/com/dev/swms/server/service/interfaceLog/pojo/DefaultInterfaceReqManager.java @@ -1140,7 +1140,7 @@ public class DefaultInterfaceReqManager extends DefaultBaseManager implements In jsonobj2.put("BWART", pickTicket.getSourceType());//类型 jsonobj2.put("MATNR", item.getCode()); jsonobj2.put("ZSUBCONT", ptd.getStrBill11());//外协供应商 - jsonobj2.put("SGTXT", ptd.getStrExtend1());// + jsonobj2.put("SGTXT", ptd.getStrExtend1()== null ? "":ptd.getStrExtend1());// jsonobj2.put("ZSTQTY", task.getMovedQuantityMU() + ""); jsonobj2.put("SERNR", task.getBarCode());// 序列号 jsonobj2.put("WERKS", task.getItemKey().getLotInfo().getPropC9() == null ? "" diff --git a/src/main/java/com/dev/swms/server/service/interfaceLog/pojo/DefaultInterfaceRespManager.java b/src/main/java/com/dev/swms/server/service/interfaceLog/pojo/DefaultInterfaceRespManager.java index df1bfdd..eb31ce6 100644 --- a/src/main/java/com/dev/swms/server/service/interfaceLog/pojo/DefaultInterfaceRespManager.java +++ b/src/main/java/com/dev/swms/server/service/interfaceLog/pojo/DefaultInterfaceRespManager.java @@ -71,6 +71,7 @@ import com.dev.swms.server.service.receiving.ASNManager; import com.dev.swms.server.service.receiving.MoveDocManager; import com.dev.swms.server.service.sequence.BussinessCodeManager; import com.dev.swms.server.service.shipping.PickTicketManager; +import com.dev.swms.server.utils.DateUtil; import com.dev.swms.server.utils.TimeNumberUtils; import com.dev.swms.server.web.filter.WarehouseHolder; @@ -135,6 +136,19 @@ public class DefaultInterfaceRespManager extends DefaultBaseManager implements I List items1=this.commonDao.findByQuery("from Item it where it.code='"+code+"'"); if (items1.size()>0) { eitem=items1.get(0); + eitem.setBeMarkWeight(beMarkWeight); + if(eitem.isBeMarkWeight()==beMarkWeight) { + eitem.setBeMarkWeight(beMarkWeight); + }else { + List itemlist= commonDao.findByQuery("select top 1 inv.id from Inventory inv where inv.quantity>0 " + + " and inv.itemKey.item.id="+eitem.getId()); + if(itemlist.size()>0) { + json0.accumulate("returnCode", "500"); + json0.accumulate("returnFlag", "0"); + json0.accumulate("returnDesc", code+"该料号有库存,不能调整序列号"); + continue; + } + } } eitem.setCode(code); eitem.setName(name); @@ -153,7 +167,9 @@ public class DefaultInterfaceRespManager extends DefaultBaseManager implements I if(unit.equals("MR")||unit.equals("MM")||unit.equals("FT")) { eitem.setBeWholeLine(true); } -// eitem.setGoodType("小件"); + if(eitem.getGoodType()==null) { + eitem.setGoodType("小件"); + } if (warehouseAreas.size()>0) { eitem.setWarehouseArea(warehouseAreas.get(0)); } @@ -164,7 +180,7 @@ public class DefaultInterfaceRespManager extends DefaultBaseManager implements I // eitem.setVolume(volume); // eitem.setWeight(weight); eitem.setBeWeight(beWeight); - eitem.setBeMarkWeight(beMarkWeight); + // eitem.setValidPeriod(validPeriod); eitem.setBeSAPItem(true); eitem.setFeeType("SAP"); @@ -1540,7 +1556,6 @@ public class DefaultInterfaceRespManager extends DefaultBaseManager implements I if(returnCode.equals("200")) { for (int i = 0; i < jsonArray.size(); i++) { JSONObject JSONobj=JSONObject.fromObject(jsonArray.get(i)); - System.out.println(JSONobj); String invId=JSONobj.has("invId")? JSONobj.getString("invId"):"";//任务号 double expectedQuantity=JSONobj.has("quantity")? JSONobj.getDouble("quantity"):0;//出库数量 String itemCode=JSONobj.has("itemCode")? JSONobj.getString("itemCode"):"";//货品(物料料号)(物料描述) @@ -1548,6 +1563,7 @@ public class DefaultInterfaceRespManager extends DefaultBaseManager implements I String applicant=JSONobj.has("applicant") ? JSONobj.getString("applicant") : "";//申请人 String handoverLocation=JSONobj.has("handoverLocation") ? JSONobj.getString("handoverLocation") : "";//交单位置 String WorkflowNumber=JSONobj.has("WorkflowNumber") ? JSONobj.getString("WorkflowNumber") : "";//OA流程编号 + String needDate=JSONobj.has("needDate") ? JSONobj.getString("needDate") : "";//需求日期 List pickt=commonDao.findByQuery(" from PickTicket pt where pt.code='"+orderNumber+"'"); log.setFunction(orderNumber); @@ -1557,13 +1573,15 @@ public class DefaultInterfaceRespManager extends DefaultBaseManager implements I }else { pickTicket=EntityFactory.getEntity(PickTicket.class); pickTicket.setSourceType("OAPUTPTC");//出库单的出库类型 - pickTicket.setOrderDate(pickTicket.getOrderDate());//订单日期 // pickTicket.setCode(this.bussinessCodeManager.getCodeForYm("PT",5));//自动生成出库单号 pickTicket.setCode(orderNumber); pickTicket.setBillType(billTypes.get(0));//单据类型 pickTicket.setStatus(PickTicketStatus.OPEN);//状态 pickTicket.setOrderQuantity(expectedQuantity);//出库数量 - pickTicket.setOrderDate(new Date());//创建日期 + pickTicket.setOrderDate(DateUtil.formatStrToDateYMD(needDate)); + if(pickTicket.getOrderDate()==null) { + pickTicket.setOrderDate(new Date()); + } pickTicket.setRelatedBill1(orderNumber);//申请编号 pickTicket.setRelatedBill2(WorkflowNumber);//流程编号 pickTicket.setUpdateTime(new Date()); @@ -3107,7 +3125,7 @@ public class DefaultInterfaceRespManager extends DefaultBaseManager implements I json0.accumulate("returnCode", "200"); json0.accumulate("returnFlag", "1"); json0.accumulate("returnDesc", "成功"); - json0.accumulate("resultInfo", jsonA); + json0.accumulate("resultInfo", jsonA.toString()); JSONObject json1 = new JSONObject(); json1.put("return", json0); JSONObject json11 = new JSONObject(); 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 e56ae33..5dfb193 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 @@ -146,6 +146,7 @@ public class DefaultQueryAppManager extends DefaultBaseManager implements QueryA String locFloor=""; String zoneCode="";//推荐库区 String str1=asn_code;//扫描的凭证号 +// logger.info("-----------itemCode-0001"+itemcode); Session session = ((HibernateDaoSupport) this.commonDao).getSessionFactory().openSession(); try { if (userId > 0) { @@ -177,23 +178,24 @@ public class DefaultQueryAppManager extends DefaultBaseManager implements QueryA } // if(asn_code!=null&&asn_code.length()>0){ String sql = " select ad.id as asnDetailId,asn.code as code,item.code as itemCode,item.name as itemName, " - + " 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.EXPECTED_QUANTITY-ad.RECEIVED_QUANTITY as orderQuantity," + "ad.RECEIVED_QUANTITY as expectedQuantity, ad.strBill8,ad.PROP_C5 as propC5," +" ad.PROP_C2 as propC2,ad.PROP_C1 as propC1,PROP_C3 as propC3,ad.strBill2,item.UNIT as unit," + "item.ISBOM," + "(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," - + "z1.name as z1_name " + + "z1.name as z1_name, item.be_Image_File as be_Image_File " + " from ASN_DETAIL ad " + " left join ASN asn on asn.id=ad.ASN_ID " + " left join ITEM item on item.id=ad.ITEM_ID " + " left join zone z on z.id=item.warehouse_Area_ID " + " left join zone z1 on z1.id=item.default_Warehouse_Area_ID " - + " where 1=1 and ( (ad.strBill=1 or ad.be_quality=0)) "; + + " where 1=1 and ((ad.strBill=1 or ad.be_quality=0)) "; String jq=""; if(itemcode!=null&&!itemcode.equals("")) { - sql+=" and (item.code)=upper('"+itemcode.trim()+"') "; + sql+=" and item.code='"+itemcode.trim()+"' "; // String dshq=" from UrgentOrder ptd where ptd.code='"+itemcode+"'"; // @@ -202,9 +204,9 @@ public class DefaultQueryAppManager extends DefaultBaseManager implements QueryA // jq="是加急料号,尽快入库!"; // } } - if(asn_code!=null&&!asn_code.equals("")) { - sql+=" and (upper(asn.code)=upper('"+asn_code.trim()+"') or " - + "upper(asn.related_Bill1)=upper('"+asn_code.trim()+"') " + if(asn_code!=null&&!asn_code.equals("")) { + sql+=" and (asn.code='"+asn_code.trim()+"' or " + + "asn.related_Bill1='"+asn_code.trim()+"' " + " or ad.strBill7='"+asn_code.trim()+"')"; } @@ -221,36 +223,94 @@ public class DefaultQueryAppManager extends DefaultBaseManager implements QueryA return resultJson; } } - sql+=" and (item.be_mark_weight=1 ) "; +// sql+=" and (item.be_mark_weight=1 ) "; }else if(type.equals("1")) { - sql+=" and (item.be_mark_weight=0 ) "; +// sql+=" and (item.be_mark_weight=0 ) "; } - sql+= " and ((ad.ftl_qty=0 and ad.EXPECTED_QUANTITY>ad.RECEIVED_QUANTITY) or (ad.ftl_qty>0 and ad.ftl_qty>ad.RECEIVED_QUANTITY)) " - + " order by ad.strBill8,item.code"; +// sql+= " and ((ad.ftl_qty=0 and ad.EXPECTED_QUANTITY>ad.RECEIVED_QUANTITY) or (ad.ftl_qty>0 and ad.ftl_qty>ad.RECEIVED_QUANTITY)) " + sql+= " order by ad.strBill8,item.code"; + + logger.info("-----------itemCode-0002"+itemcode); Query query = session.createSQLQuery(sql); List list= (List)query.list(); - String sql1=" select ad.id,asn.code,ad.be_quality from ASN_DETAIL ad " + + logger.info("-----------itemCode-0003"+itemcode); + String sql1=" select ad.id,ad.EXPECTED_QUANTITY,ad.RECEIVED_QUANTITY from ASN_DETAIL ad " + " left join ASN asn on asn.id=ad.ASN_ID " + " left join ITEM item on item.id=ad.ITEM_ID " + "where (asn.code='"+asn_code.trim()+"' or " - + " asn.related_Bill1='"+asn_code.trim()+"')" + + " ad.strBill7='"+asn_code.trim()+"')" + " and ( (ad.strBill=1 or ad.be_quality=0))"; - Query query1 = session.createSQLQuery(sql1); +// Query query1 = session.createSQLQuery(sql1); +// //整理完成 +// List asnds=(List)query1.list(); +// logger.info("-----------itemCode-0004"+itemcode); +// String sql2=sql1+" and ad.EXPECTED_QUANTITY=ad.RECEIVED_QUANTITY "; //整理完成 - List asnds=(List)query1.list(); - - String sql2=sql1+" and ad.EXPECTED_QUANTITY=ad.RECEIVED_QUANTITY "; - //整理完成 - Query query2 = session.createSQLQuery(sql2); - List asds=(List)query2.list(); - h=asds.size()+"/"+asnds.size(); - +// Query query2 = session.createSQLQuery(sql2); +// List asds=(List)query2.list(); + int ah=0; + int wcxhlhh=0;//完成的序列号行数 + int wcshh=0;//完成非序列号行数 + if(list.size()>0) { + for(Object[] arrier:list){ + String sttqty=arrier[4]==null?"0":arrier[4].toString();//数量 + String xuhl=arrier[16]==null?"0":arrier[16].toString(); + long ifxlh=Long.parseLong(xuhl);//是否序列号 +// String asqty=arrier[5]==null?"0":arrier[5].toString();//完成数量 + try{ + if(Double.parseDouble(sttqty)<=0) { + ah++; + if(ifxlh<=0) { + wcshh++; + }else { + wcxhlhh++; + } + } + }catch (Exception e) { + + } +// logger.info("----数量--"+sttqty+"-----itemCode-0005"+itemcode); + } + } +// h=ah+"/"+asnds.size(); + h=ah+"/"+list.size(); + int xhlhh=0;//序列号行数 + int shh=0;//非序列号行数 +// logger.info("-----------itemCode-0005"+itemcode); if(list.size()>0){ for(Object[] arrier:list){ int i=0; + String sttqty=arrier[4]==null?"0":arrier[4].toString(); + try{ + if(Double.parseDouble(sttqty)<=0) { + + continue;//跳过已经整理完成的行 + } + }catch (Exception e) { + continue; + } + long ifxlh=Long.parseLong(arrier[16].toString());//是否序列号 + if(type.equals("2")) { + + //序列号整理界面查询, + if(ifxlh<=0) { + shh++; + continue; + } + + }else { + + //查询不是序列号料号, + if(ifxlh>0) { + xhlhh++; + continue; + } + + } JSONObject obj = new JSONObject(); obj.put("asnDetailId", arrier[i++]==null?"":arrier[i-1]); obj.put("code", arrier[i++]==null?"":arrier[i-1]); @@ -261,7 +321,6 @@ public class DefaultQueryAppManager extends DefaultBaseManager implements QueryA obj.put("strBill7", arrier[i++]==null?"":arrier[i-1]);//行号 obj.put("propC5", arrier[i++]==null?"":arrier[i-1]); obj.put("propC2", arrier[i++]==null?"":arrier[i-1]); -// System.out.println(arrier[8].toString()+"----"); if(itemcode!=null&&!itemcode.equals("")) { if(arrier[8]!=null&&arrier[8].toString().length()>0) { @@ -274,7 +333,6 @@ public class DefaultQueryAppManager extends DefaultBaseManager implements QueryA }else { } } - obj.put("propC1", arrier[i++]==null?"":arrier[i-1]); obj.put("propC3", arrier[i++]==null?"":arrier[i-1]); obj.put("strBill2", arrier[i++]==null?"":arrier[i-1]); @@ -290,7 +348,7 @@ public class DefaultQueryAppManager extends DefaultBaseManager implements QueryA } obj.put("zxmx",zxmx); String beMarkWeight=""; - long ifxlh=Long.parseLong(arrier[16].toString()); + if(ifxlh<=0){ beMarkWeight="否"; }else{ @@ -339,30 +397,50 @@ public class DefaultQueryAppManager extends DefaultBaseManager implements QueryA obj.put("defaultZone", "推荐库区无"); obj.put("z_id", ""); } +// String beImageFile= arrier[25]==null?"":arrier[25].toString();//是否拍照上传 +// if(beImageFile.equals("TURE")||beImageFile.equals("true")||beImageFile.equals("1")) { +// obj.put("beImageFile", "true"); +// }else { +// obj.put("beImageFile", "false"); +// } + if(zxmx.equals("是")) { + obj.put("beImageFile", "false"); + }else { + obj.put("beImageFile", "true"); + } array.add(obj); } data = array.toString(); status = "1"; msg=jq; +// logger.info("-----------itemCode-0006"+itemcode); }else{ - if(asds.size()>0) { - if(asds.size()0) { + if(ahwcxhlhh) { + msg = "序列号未整理完成"; + } + } + }else { + status = "0"; + msg = "已经整理完成"; + } + } + } + + // }else{ // msg = "barCode参数错误或为空!"; // } @@ -379,6 +457,7 @@ public class DefaultQueryAppManager extends DefaultBaseManager implements QueryA } finally { session.close(); } +// logger.info("-----------itemCode-0007--END"+itemcode); resultJson.put("status", status); resultJson.put("data", data); resultJson.put("msg", msg); @@ -885,7 +964,7 @@ public class DefaultQueryAppManager extends DefaultBaseManager implements QueryA if (userId > 0) { if (warehouseId > 0) { if(locode!=null && locode.length()>0){ - String sql = " select lx.ID as locId,lx.code as locCode,z.id as a_id,z.code as z_code,s.id as s_id " + String sql = " select lx.ID as locId,lx.code as locCode,z.id as a_id,z.name as z_code,s.id as s_id " + " from LOCATION lx " + " left join ZONE z on z.id=lx.ZONE_ID " + " left join stowage s on s.id=lx.STOWAGE_ID " @@ -1960,7 +2039,7 @@ public class DefaultQueryAppManager extends DefaultBaseManager implements QueryA + " left join ASN_DETAIL ad on ad.id=inv.ASN_DETAIL_ID " + " left join ASN a on a.id=ad.ASN_ID " + " where 1=1 and (ad.strBill=1 or ad.BE_QUALITY=0) " - + " and upper(stock.LP)=upper('"+stockCode.trim()+"') " + + " and stock.LP='"+stockCode.trim()+"' " + " and inv.RECEIVED_QUANTITY>0 and inv.BE_MOVED=0 " + " group by loc.id "; Query query = session.createSQLQuery(sql); @@ -3600,7 +3679,7 @@ public class DefaultQueryAppManager extends DefaultBaseManager implements QueryA @Override - public synchronized JSONObject scanpickItemCode(String taskId,String jhItem,long userId,long warehouseId) { + public JSONObject scanpickItemCode(String taskId,String jhItem,long userId,long warehouseId) { JSONObject resultJson = new JSONObject(); JSONObject obj = new JSONObject(); String status = "0"; @@ -5642,12 +5721,13 @@ public class DefaultQueryAppManager extends DefaultBaseManager implements QueryA String msg = ""; String data = ""; try { - String sql=" from PrintTask pt where 1=1 "; + String sql=" from PrintTask pt where " + + " CONVERT(date, pt.createDate) = CONVERT(date, GETDATE()) "; if(createName!=null&&!createName.equals("")){ sql+=" and pt.createName like '%"+createName+"%' "; } if(printTime!=null&&!printTime.equals("")){ - sql+=" and CONVERT(varchar(100),pt.printTime,21) like '%"+printTime+"%' "; + sql+=" and CONVERT(varchar(100),pt.createDate,21) like '%"+printTime+"%' "; } if(printTitle!=null&&!printTitle.equals("")){ sql+=" and pt.printTitle like '%"+printTitle+"%' "; @@ -7159,9 +7239,9 @@ public class DefaultQueryAppManager extends DefaultBaseManager implements QueryA } String barcode="QAR/"+t.getBillCode()+"/"+ ptd.getLineNumber()+"/"+item.getCode()+"/"+item.getUnit()+"/"; barcode += "/" + ymd.format(new Date()); -// if(lp!=null&&lp.length()>0) { -// barcode+="///"+lp; -// } + if(lp!=null&&lp.length()>0) { + barcode+="///"+lp; + } String emergent=""; if(pt!=null&&bt.getName().indexOf("工单")>=0&&pt.getEquatedQuantity()!=null &&(pt.getEquatedQuantity().equals("H")||pt.getEquatedQuantity().equals("U") @@ -7204,12 +7284,12 @@ public class DefaultQueryAppManager extends DefaultBaseManager implements QueryA pickTicketManager.createPrintTask(number, content, userId, macs,printName,t.getBillCode()+"/"+item.getCode(),"0"); //打印容器码 - if(zone.getId()==1765&&item.getGoodType().equals("大件")) { + if(zone.getId()==1765&&item.getGoodType()!=null&&item.getGoodType().equals("大件")) { pickTicketManager.printLabel(lp, number.intValue(), 1, userId, printId); } else if(zone.getId()==1766) { - pickTicketManager.printLabel(lp, number.intValue(), 1, userId, printId); +// pickTicketManager.printLabel(lp, number.intValue(), 1, userId, printId); }else if(lp.indexOf("505")==0) { - pickTicketManager.printLabel(lp, number.intValue(), 1, userId, printId); +// pickTicketManager.printLabel(lp, number.intValue(), 1, userId, printId); } if(bt.isBePrint()) { @@ -9060,8 +9140,12 @@ public class DefaultQueryAppManager extends DefaultBaseManager implements QueryA t.setMovedQuantityMU(t.getPlanQuantity()); commonDao.store(t); ptd.setAllocatedQuantity(ptd.getAllocatedQuantity()-quantity); - commonDao.store(ptd); + pt.setAllocatedQuantity(pt.getAllocatedQuantity()-quantity); + if(pt.getAllocatedQuantity()<=pt.getPickedQuantity()) { + pt.setStatus(PickTicketStatus.PICK_ALL); + } + commonDao.store(pt); //取消电子标签任务 List InterWMStasks = commonDao.findByQuery(" from InterWMStask i where i.taskid='"+t.getCode()+"' "); List dzbq = commonDao.findByQuery(" from InterWMStask i where i.ssjport='"+t.getBillCode()+"' "); @@ -9148,7 +9232,7 @@ public class DefaultQueryAppManager extends DefaultBaseManager implements QueryA inventory.getStatus(), inventory.getId(), "取消分配", bt, userId, inventory.getBarCode(), loc,pt.getSourceType()); } - shuaxinPick(pt);//刷新出库单 分配数量 +// shuaxinPick(pt);//刷新出库单 分配数量 //回传SAP if(returnSap) { if (pt.getCode().indexOf("CP") == -1&&((pt.getSourceId()!=null&&pt.getSourceId().indexOf("OT")== -1) @@ -9637,11 +9721,11 @@ public class DefaultQueryAppManager extends DefaultBaseManager implements QueryA } } - + //交单拍照 public void importImageFromApp(Long id, InputStream inputStream, String imageType, String objectType, String fileName, String longName,String remark) { - Session session = ((HibernateDaoSupport)this.commonDao).getSessionFactory().openSession(); +// Session session = ((HibernateDaoSupport)this.commonDao).getSessionFactory().openSession(); if (inputStream != null) { SignFile imageFile = new SignFile(); String code = ""; @@ -9697,7 +9781,7 @@ public class DefaultQueryAppManager extends DefaultBaseManager implements QueryA throw new BusinessException("文件上传出错!"); } imageFile.setFileName(fileName); - imageFile.processFileUrl(stringBuffer.toString());// 生成带img标签的目标图片的url地址 + imageFile.processFileUrl(stringBuffer.toString(),"temp/imageTarget/");// 生成带img标签的目标图片的url地址 imageFile.setImageType(imageType);//附件类型 imageFile.setObjectType(objectType);//对象类型 imageFile.setOperate(longName); @@ -9707,9 +9791,9 @@ public class DefaultQueryAppManager extends DefaultBaseManager implements QueryA // imageFile.setOrderId(objectId); imageFile.setViewName(code); imageFile.setRemark(remark); -// imageFile.processFileRemark(stringBuffer.toString()); + imageFile.processFileRemark(stringBuffer.toString(),"temp/imageTarget/"); commonDao.store(imageFile); - session.close(); +// session.close(); } else { throw new BusinessException("文件为空!"); } diff --git a/src/main/java/com/dev/swms/server/service/picking/allocate/DefaultAutoAllocator.java b/src/main/java/com/dev/swms/server/service/picking/allocate/DefaultAutoAllocator.java index 5fa73ff..7daab04 100644 --- a/src/main/java/com/dev/swms/server/service/picking/allocate/DefaultAutoAllocator.java +++ b/src/main/java/com/dev/swms/server/service/picking/allocate/DefaultAutoAllocator.java @@ -85,6 +85,7 @@ import com.dev.swms.server.service.interfaceLog.InterfaceManager; import com.dev.swms.server.service.interfaceLog.InterfaceReqManager; import com.dev.swms.server.service.interfaceLog.JdbcManager; import com.dev.swms.server.service.interfaceLog.WcsCSDCode; +import com.dev.swms.server.service.interfaceLog.WmsOperationHisManager; import com.dev.swms.server.service.inventory.InventoryManager; import com.dev.swms.server.service.receiving.PutawayAllocator; import com.dev.swms.server.service.sequence.BussinessCodeManager; @@ -113,12 +114,12 @@ public class DefaultAutoAllocator extends DefaultBaseManager implements AutoAllo protected final JdbcManager jdbcManager; protected final AgvTaskManager agvTaskManager; protected final InterfaceReqManager interfaceReqManager; - + protected final WmsOperationHisManager wmsOperationHisManager; public DefaultAutoAllocator(ItemManager manager,InventoryManager manager1, BussinessCodeManager manager2, PutawayAllocator allocator,InterfaceManager interfaceManager2,JdbcManager jdbcManager2,AgvTaskManager agvTaskManager, - InterfaceReqManager interfaceReqManager) { + InterfaceReqManager interfaceReqManager, WmsOperationHisManager wmsOperationHisManager) { itemManager = manager; inventoryManager = manager1; bussinessCodeManager = manager2; @@ -127,6 +128,7 @@ public class DefaultAutoAllocator extends DefaultBaseManager implements AutoAllo jdbcManager=jdbcManager2; this.agvTaskManager=agvTaskManager; this.interfaceReqManager=interfaceReqManager; + this.wmsOperationHisManager=wmsOperationHisManager; } /** @@ -1979,6 +1981,8 @@ public class DefaultAutoAllocator extends DefaultBaseManager implements AutoAllo } shuaxinPick(pt);//刷新出库单 + wmsOperationHisManager.storeOperationHis(pt.getId(), pt.getCode(), null, "", "出库管理", "取消分配", null, null, 0, + 0, 0, 0, "", "WMS"); long etime = System.currentTimeMillis(); System.out.printf("取消分配执行时长:"+(etime - stime)+"\n"); } @@ -2298,7 +2302,9 @@ public class DefaultAutoAllocator extends DefaultBaseManager implements AutoAllo if(ptd.getNewLotInfo().getPropC1()!=null&&!ptd.getNewLotInfo().getPropC1().equals("")) { hql1+=" and i.itemKey.lotInfo.propC1='"+ptd.getNewLotInfo().getPropC1()+"'"; } - +// if(ptd.getNewLotInfo().getPropC2()!=null&&!ptd.getNewLotInfo().getPropC2().equals("")) { +// hql1+=" and i.itemKey.lotInfo.propC2='"+ptd.getNewLotInfo().getPropC2()+"'"; +// } if(ptd.getNewLotInfo().getPropC3()!=null&&!ptd.getNewLotInfo().getPropC3().equals("")) { hql1+=" and i.itemKey.lotInfo.propC3='"+ptd.getNewLotInfo().getPropC3()+"'"; }else { @@ -2349,8 +2355,6 @@ public class DefaultAutoAllocator extends DefaultBaseManager implements AutoAllo hql2=" order by i.itemKey.lotInfo.propD2,i.itemKey.lotInfo.propC3,i.itemKey.lotInfo.propC1,"+hqlmaveloc+",i.statuss desc,i.storageDate,i.quantity"; } } - - if(pt.getBillType()!=null&&(pt.getBillType().getName().indexOf("其它")>=0 ||pt.getBillType().getName().indexOf("转库单")>=0) &&!pt.getSourceType().equals("643")) { @@ -2371,12 +2375,8 @@ public class DefaultAutoAllocator extends DefaultBaseManager implements AutoAllo } }else if(pt.getBillType()!=null&&pt.getBillType().getName().indexOf("工单")>=0) { if(ptd.getNewLotInfo()!=null&&ptd.getNewLotInfo().getPropC2()!=null - &&(!ptd.getNewLotInfo().getPropC2().equals("SL12")&&!ptd.getNewLotInfo().getPropC2().equals("")&& - !ptd.getNewLotInfo().getPropC2().equals("SL02") - &&!ptd.getNewLotInfo().getPropC2().equals("SL34"))) { - + &&!ptd.getNewLotInfo().getPropC2().equals("")) { hql1+=" and i.itemKey.lotInfo.propC2='"+ptd.getNewLotInfo().getPropC2()+"'"; - }else { String bsql=" from BillTypeConfig b where b.billType.id="+pt.getBillType().getId(); if(ptd.getNewLotInfo().getPropC9()!=null&&!ptd.getNewLotInfo().getPropC9().equals("")) { @@ -2889,6 +2889,7 @@ public class DefaultAutoAllocator extends DefaultBaseManager implements AutoAllo public List allocatePickticketDetail(List ids,int qty,boolean ddq,boolean ddq1,boolean ddq2,boolean ddq3, boolean ddq4,boolean ddq5,boolean ddq6,boolean ddq7,boolean ddq8,boolean ddq9,String noLoc) { String msg=""; + List tasks=new ArrayList(); for (int i = 0; i < ids.size(); i++) { Long id=Long.valueOf(ids.get(i)+""); @@ -2952,6 +2953,9 @@ public class DefaultAutoAllocator extends DefaultBaseManager implements AutoAllo if(ptd.getNewLotInfo().getPropC1()!=null&&!ptd.getNewLotInfo().getPropC1().equals("")) { hql1+=" and i.itemKey.lotInfo.propC1='"+ptd.getNewLotInfo().getPropC1()+"'"; } +// if(ptd.getNewLotInfo()!=null&&ptd.getNewLotInfo().getPropC2()!=null&&ptd.getNewLotInfo().getPropC2().length()>0) { +// hql1+=" and i.itemKey.lotInfo.propC2='"+ptd.getNewLotInfo().getPropC2()+"'"; +// } if(ptd.getNewLotInfo().getPropC3()!=null&&!ptd.getNewLotInfo().getPropC3().equals("")) { hql1+=" and i.itemKey.lotInfo.propC3='"+ptd.getNewLotInfo().getPropC3()+"'"; }else { @@ -3017,14 +3021,14 @@ public class DefaultAutoAllocator extends DefaultBaseManager implements AutoAllo hql1+=" and i.itemKey.lotInfo.propC2 in("+sb.toString()+")"; } }else { + if(ptd.getNewLotInfo()!=null&&ptd.getNewLotInfo().getPropC2()!=null&&ptd.getNewLotInfo().getPropC2().length()>0) { hql1+=" and i.itemKey.lotInfo.propC2='"+ptd.getNewLotInfo().getPropC2()+"'"; + } } }else if(pt.getBillType()!=null&&pt.getBillType().getName().indexOf("工单")>=0) { if(ptd.getNewLotInfo()!=null&&ptd.getNewLotInfo().getPropC2()!=null - &&(!ptd.getNewLotInfo().getPropC2().equals("SL12")&&!ptd.getNewLotInfo().getPropC2().equals("")&& - !ptd.getNewLotInfo().getPropC2().equals("SL02") - &&!ptd.getNewLotInfo().getPropC2().equals("SL34"))) { + &&!ptd.getNewLotInfo().getPropC2().equals("")) { hql1+=" and i.itemKey.lotInfo.propC2='"+ptd.getNewLotInfo().getPropC2()+"'"; diff --git a/src/main/java/com/dev/swms/server/service/picking/pojo/DefaultMasterBolManager.java b/src/main/java/com/dev/swms/server/service/picking/pojo/DefaultMasterBolManager.java index 3c56c9d..eb30f61 100644 --- a/src/main/java/com/dev/swms/server/service/picking/pojo/DefaultMasterBolManager.java +++ b/src/main/java/com/dev/swms/server/service/picking/pojo/DefaultMasterBolManager.java @@ -274,7 +274,7 @@ public class DefaultMasterBolManager extends DefaultBaseManager implements Maste newASN.setStatus(ASNStatus.ACTIVE); newASN.setUserTracking(); newASN.setVehicle(pt.getMasterBOL() != null ? pt.getMasterBOL().getTrailer() : null); - newASN.setAsnDetails(new HashSet()); +// newASN.setAsnDetails(new HashSet()); newASN.setRelatedBill3("DB"); int j=0; //对收货单增加明细 @@ -296,7 +296,7 @@ public class DefaultMasterBolManager extends DefaultBaseManager implements Maste asnDetail.setPO(""); asnDetail.setDock(null); newASN.addASNDetail(asnDetail); - asnDetail.setLineNo(newASN.getAsnDetails().size()); +// asnDetail.setLineNo(newASN.getAsnDetails().size()); Double ca=detail.getItem().getCAcoefficient(); if(ca==null||ca==0){ ca=1d; diff --git a/src/main/java/com/dev/swms/server/service/receiving/pojo/DefaultASNManager.java b/src/main/java/com/dev/swms/server/service/receiving/pojo/DefaultASNManager.java index a47441a..e7e54bb 100644 --- a/src/main/java/com/dev/swms/server/service/receiving/pojo/DefaultASNManager.java +++ b/src/main/java/com/dev/swms/server/service/receiving/pojo/DefaultASNManager.java @@ -1203,15 +1203,10 @@ public void addASNDetail(Long id,ASNDetail asnDetail) { double qty = record.getReceivedQuantity() ; if (StringUtils.isEmpty(record.getMoveDocCode()) && qty != 0) { Item item=record.getItemKey().getItem(); -// ASNDetail ad=commonDao.load(ASNDetail.class, id); - -// moveDoc.setRelateBillCode(ad.getStrBill7()); -// commonDao.store(moveDoc); + if((item.getSuggest()>0)&&record.getSrcLP()==null){ int ca=item.getCAcoefficient()==null?1:item.getCAcoefficient().intValue(); -// if(!asn.getCompany().getCode().equals(CompanyCode.HLX)){ -// ca=item.getSuggest()*ca; -// } + int i=(int) ((int)qty/ca); for(int j=0;j asnDetailIds, Date receiveDate1, Long workerId,long dock_id,Long zone_id,double receivedQuantity,long stockId, Long pqty,String mac,String statusDes,boolean agv) throws Exception{ + logger.info(asnDetailIds+"--整理11+"+new Date()); for(Long id:asnDetailIds){//循环整理(收货) ASNDetail asnDetail=this.load(ASNDetail.class, id);//根据整理的这条数据获取它所有的明细 ASN asn=commonDao.load(ASN.class, asnDetail.getAsn().getId()); @@ -2348,15 +2344,20 @@ public void addASNDetail(Long id,ASNDetail asnDetail) { //库区限制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 zplist=commonDao.findByQuery(wahql); - for(ZonePlant zp:zplist) { - if(zp.getpLocation().getCode().equals(pr2)) { - throw new BusinessException(pr2+"不能整理到"+warehouseArea.getName()); - } + String wahql="select z.pLocation.code from ZonePlant z " + + "where z.area.id="+zone_id ; + List zplist=commonDao.findByQuery(wahql); + if(zplist.contains(pr2)) { + throw new BusinessException(pr2+"不能整理到"+warehouseArea.getName()); } +// for(ZonePlant zp:zplist) { +// if(zp.getpLocation().getCode().equals(pr2)) { +// throw new BusinessException(pr2+"不能整理到"+warehouseArea.getName()); +// } +// } } } + logger.info(asnDetailIds+"--整理12+"+new Date()); Stock stock=commonDao.load(Stock.class, stockId); Location location=null; location=this.load(Location.class, dock_id);//库位 @@ -2379,6 +2380,7 @@ public void addASNDetail(Long id,ASNDetail asnDetail) { } } } + logger.info(asnDetailIds+"--整理13+"+new Date()); if(location==null){ List locs=commonDao.findByQuery(" from Location l where l.type='RECEIVE' "); if(locs.size()>0) { @@ -2423,18 +2425,19 @@ public void addASNDetail(Long id,ASNDetail asnDetail) { } } } + logger.info(asnDetailIds+"--整理14+"+new Date()); //判断该容器已有其它库区物料 int count=queryConWare(stockId, zone_id); if(count==1){ throw new BusinessException("该容器已有其它库区物料!"); } - + logger.info(asnDetailIds+"--整理15+"+new Date()); //判断不同LOC不能存到一个容器里面 - if(asnDetail.getLotInfo().getPropC2()!=null&&asnDetail.getLotInfo().getPropC2().length()>0){ + /**if(asnDetail.getLotInfo().getPropC2()!=null&&asnDetail.getLotInfo().getPropC2().length()>0){ if(!checkLoc(asnDetail, stockId)){ throw new BusinessException("该容器不能存放不同的LOC!"); } - } + } 2025-05-06注释*/ ItemKey itemKey = itemManager.getItemKey(new ItemKey( "", item, asnDetail.getLotInfo(), new Date(), ""), Boolean.TRUE); @@ -2454,7 +2457,7 @@ public void addASNDetail(Long id,ASNDetail asnDetail) { } // Inventory inv=inventoryManager.receiving(location, itemKey, receivedQuantity,null,asnDetail.getAsn().getStatus(), new Date(),asn.getCode(), LogType,opertion_name,warehouseArea,asnDetail.getStrBill2(),asn.getBillType()); - + logger.info(asnDetailIds+"--整理16+"+new Date()); ReceivedRecord receivedRecord=asnDetail.newreceiving(location, itemKey, receivedQuantity,receivedQuantity,new Date(), opertion_name,warehouseArea); receivedRecord.setWarehouseArea(warehouseArea); receivedRecord.setSrcLPCode(statusDes); @@ -2464,11 +2467,12 @@ public void addASNDetail(Long id,ASNDetail asnDetail) { receivedRecord.setBarCode(asnDetail.getStrBill2()); commonDao.store(receivedRecord); Inventory inv = null; - + logger.info(asnDetailIds+"--整理17+"+new Date()); List invs=commonDao.findByQuery(" from Inventory inv where inv.receivedRecordId="+receivedRecord.getId()); if(invs.size()>0) { inv=invs.get(0); } + logger.info(asnDetailIds+"--整理18+"+new Date()); if (inv == null) { inv = new Inventory();//EntityFactory.getEntity(Inventory.class); inv.setLocation(location); @@ -2501,7 +2505,7 @@ public void addASNDetail(Long id,ASNDetail asnDetail) { inv.setLP(stock); inv.setReceivedRecordId(receivedRecord.getId()); commonDao.store(inv); - + logger.info(asnDetailIds+"--整理19+"+new Date()); InventoryLog log = new InventoryLog(LogType,asnDetail.getStrBill7(), 1, opertion_name, location, itemKey, new Date(), receivedQuantity, null, inv.getStatus(), null, inv.getStatuss()); log.setOperator(opertion_name); log.setRelatedBill(asn.getRelatedBill1()); @@ -2523,7 +2527,7 @@ public void addASNDetail(Long id,ASNDetail asnDetail) { asnDetail.setWarehouseArea(warehouseArea); asnDetail.getshaxin(); commonDao.store(asnDetail); - + logger.info(asnDetailIds+"--整理111+"+new Date()); if(asn.getReceivedQuantity()==0){ asn.setStatus(ASNStatus.OPEN); }else if(asn.getReceivedQuantity() asnDetails = commonDao.findByQuery(" from ASNDetail ad where ad.beInput=true and ad.asn.id="+asn.getId()); - asn.setAccomplish(asnDetails.size()); + asn.setAccomplish(asnDetails.size());//完成行数 } - + logger.info(asnDetailIds+"--整理112+"+new Date()); updateStock(stockId);//刷新热度值 - + logger.info(asnDetailIds+"--整理113+"+new Date()); //生成打印任务 if(item.isBOM()||item.isBeExtend1()||item.isBeExtend2()||(item.getFeeType()!=null&&item.getFeeType().equals("OA"))) { //设备 @@ -2603,7 +2607,7 @@ public void addASNDetail(Long id,ASNDetail asnDetail) { // createPrintTask("3",pqty, cent, workerId, ma, printName, asn.getCode()); } } - + logger.info(asnDetailIds+"--整理114+"+new Date()); //上报SAP状态 if(!asn.getCode().substring(0, 2).equals("RP")) { @@ -2618,6 +2622,7 @@ public void addASNDetail(Long id,ASNDetail asnDetail) { } } + logger.info(asnDetailIds+"--整理116+"+new Date()); commonDao.store(asn); List asnids=new ArrayList(); @@ -2628,16 +2633,14 @@ public void addASNDetail(Long id,ASNDetail asnDetail) { }else { List asds =commonDao.findByQuery(" from ASNDetail a where a.asn.id="+asn.getId()+ " and ((a.bequality=1 and a.strBill=1) or a.bequality=0 ) "); - if(asds.size()==asn.getAsnDetails().size()) { -// createMoveDocByASN(asnids); - }else { + List asnds =commonDao.findByQuery(" from ASNDetail a where a.asn.id="+asn.getId()+ " and a.expectedQuantity=a.receivedQuantity " + " and ((a.bequality=1 and a.strBill=1) or a.bequality=0 ) "); if(asds.size()==asnds.size()) { createMoveDocByASN(asnids); } - } + if(asnDetail.getStrBill11()!=null&&asnDetail.getStrBill11().equals("1")) { if(asnDetail.getBf_qty()<=asnDetail.getReceivedQuantity()) { createMoveDocByASN(asnids); @@ -2650,6 +2653,7 @@ public void addASNDetail(Long id,ASNDetail asnDetail) { location.setStatus(WarehouseAreaStatus.OCCUPY); commonDao.store(location); } + logger.info(asnDetailIds+"--整理117+"+new Date()); } } @@ -2731,16 +2735,16 @@ public void addASNDetail(Long id,ASNDetail asnDetail) { } public void updateStock(Long stockId) { - logger.info(""); Stock s =commonDao.load(Stock.class, stockId); - List invs =commonDao.findByQuery(" from Inventory i where i.location.stock.id="+stockId); + /**2025-05-06注释 + List invs =commonDao.findByQuery("select sum(i.) from Inventory i where i.location.stock.id="+stockId); double saleTime=0D; for(Inventory inv:invs) { ItemKey ik=commonDao.load(ItemKey.class, inv.getItemKey().getId()); Item i=commonDao.load(Item.class, ik.getItem().getId()); saleTime+=i.getSaleTime(); } - s.setSaleTime((int)Math.ceil(saleTime)); + s.setSaleTime((int)Math.ceil(saleTime));*/ s.setStatus(WarehouseAreaStatus.OCCUPY); commonDao.store(s); logger.info("热度值:"+s.getSaleTime()); @@ -4020,6 +4024,7 @@ public void addASNDetail(Long id,ASNDetail asnDetail) { } public void storeReceivedRecord(List ids,Long zoneid,Boolean movementId,Long stockId ,Long locationId) { + logger.info("-----------ReceivedRecord-0001"+ids); WarehouseArea z=commonDao.load(WarehouseArea.class, zoneid);//获取库区 Stock stock=commonDao.load(Stock.class, stockId);//获取容器 Location loc=null; @@ -4031,6 +4036,7 @@ public void addASNDetail(Long id,ASNDetail asnDetail) { List receivedRecords=commonDao.findByQuery(" from ReceivedRecord " + "receivedrecord where receivedrecord.beMoved=0 and receivedrecord.srcLP.LP='"+stock.getLP()+"' ");//根据这个容器号获取这个容器号的所有数据 + logger.info("-----------ReceivedRecord-0002"+ids); if(receivedRecords.size()>0) { ReceivedRecord rd=receivedRecords.get(0); if(!rd.getWarehouseArea().getName().equals(z.getName())) { @@ -4040,8 +4046,8 @@ public void addASNDetail(Long id,ASNDetail asnDetail) { } ReceivedRecord r=commonDao.load(ReceivedRecord.class, id);//根据id或者该行数据 - ItemKey itemKey=r.getItemKey(); - +// ItemKey itemKey=r.getItemKey(); + logger.info("-----------ReceivedRecord-0003"+ids); if(z.getId()==1763) { if(locationId==null||locationId==0) { throw new BusinessException("料箱区,库位不能为空"); @@ -4052,6 +4058,7 @@ public void addASNDetail(Long id,ASNDetail asnDetail) { } //查询库存 Inventory srcInv =null; + logger.info("-----------ReceivedRecord-0004"+ids); List Inventorys=commonDao.findByQuery(" from Inventory inv where inv.receivedRecordId="+r.getId()+" "); if(Inventorys.size()>0){ srcInv=Inventorys.get(0); @@ -4077,6 +4084,7 @@ public void addASNDetail(Long id,ASNDetail asnDetail) { r.setSrcLPCode(stock.getLP()); } r.setWarehouseArea(z); + logger.info("-----------ReceivedRecord-0005"+ids); List MoveDocDetails=commonDao.findByQuery(" from MoveDocDetail mdd where mdd.receivedRecordId="+r.getId()+" "); if(MoveDocDetails.size()>0){ MoveDocDetail mdd=MoveDocDetails.get(0); @@ -4092,7 +4100,7 @@ public void addASNDetail(Long id,ASNDetail asnDetail) { } } commonDao.store(r); - + logger.info("-----------ReceivedRecord-0006"+ids); }else{ ReceivedRecord r=commonDao.load(ReceivedRecord.class, id);//根据id或者该行数据 List ReceivedRecords=commonDao.findByQuery(" from ReceivedRecord " @@ -4155,6 +4163,7 @@ public void addASNDetail(Long id,ASNDetail asnDetail) { }else{ throw new BusinessException("料箱内由已上架物料,不能转换"); } + logger.info("-----------ReceivedRecord-0008"+ids); } } } diff --git a/src/main/java/com/dev/swms/server/service/receiving/pojo/DefaultMoveDocManager.java b/src/main/java/com/dev/swms/server/service/receiving/pojo/DefaultMoveDocManager.java index 3a13c61..f334e82 100644 --- a/src/main/java/com/dev/swms/server/service/receiving/pojo/DefaultMoveDocManager.java +++ b/src/main/java/com/dev/swms/server/service/receiving/pojo/DefaultMoveDocManager.java @@ -2532,7 +2532,7 @@ public class DefaultMoveDocManager extends DefaultBaseManager implements MoveDoc String px_sql = " order by l.gdType asc "; //库位高度 if (st.getGdType().equals(TranType.gd_d)) { - sql += " and 1=1 and l.gdType in('1','2') "; + sql += " and 1=1 and l.gdType in('1','2','3') "; } else if (st.getGdType().equals(TranType.gd_z)) { sql += " and l.gdType !='1' "; } else if (st.getGdType().equals(TranType.gd_g)) { @@ -3357,7 +3357,7 @@ public class DefaultMoveDocManager extends DefaultBaseManager implements MoveDoc String sql = " from LocationStorage l where l.warehouseArea.id=1766 and l.sqType=1 " + " and l.type='存储点' and l.status='" + WarehouseAreaStatus.FREE + "' and l.gdType>=" + qwl.getGdType() + " and l.id!=" + qwl.getId(); - String px_sql = "order by l.gdType asc "; + String px_sql = " order by l.gdType asc "; List lsq2 = this.commonDao.findByQuery(sql + px_sql); if (lsq2.size() <= 0) { throw new BusinessException("不存在合适的库位"); @@ -4800,11 +4800,11 @@ public class DefaultMoveDocManager extends DefaultBaseManager implements MoveDoc String px_sql = " order by l.gdType asc "; //库位高度 if (st.getGdType().equals(TranType.gd_d)) { - sql += " and 1=1 and l.gdType=1 "; + sql += " and 1=1 "; } else if (st.getGdType().equals(TranType.gd_z)) { - sql += " and l.gdType =2 "; + sql += " and l.gdType !='1' "; } else if (st.getGdType().equals(TranType.gd_g)) { - sql += " and l.gdType =3 "; + sql += " and l.gdType ='3' "; } // sql += " and l.name in ('01-02-01','02-02-01','03-02-01','04-02-01') "; if (st.getLocationStorage()!=null) { @@ -5436,7 +5436,7 @@ public class DefaultMoveDocManager extends DefaultBaseManager implements MoveDoc //浅位托盘有任务 LibraryTask t1 = interfaceReqManager.storeLibraryTask(LibraryTaskType.byzl, LibraryTaskType.yk, qws.getLP(), qwl.getName(), lq2.getName(), libraryTask.getId()+"", seq++, - null,"出库","1"); + null,"出库",libraryTask.getRelatedBill4()); t1.setSeq(ttt1.getSeq()+1); t1.setRelationCode(ttt1.getRelationCode()); commonDao.store(t1); @@ -5454,13 +5454,13 @@ public class DefaultMoveDocManager extends DefaultBaseManager implements MoveDoc // 1 浅位搬到浅位 LibraryTask t1 = interfaceReqManager.storeLibraryTask(LibraryTaskType.byzl, LibraryTaskType.yk, qws3.getLP(), qwl3.getName(), lq2.getName(), libraryTask.getId()+"", seq++, - null,"出库","1"); + null,"出库",libraryTask.getRelatedBill4()); listTasks.add(t1); LibraryTask t2 = interfaceReqManager.storeLibraryTask(LibraryTaskType.byzl, LibraryTaskType.yk, qws.getLP(), qwl.getName(), qwl3.getName(), libraryTask.getId()+"", seq++, - null,"出库","1"); + null,"出库",libraryTask.getRelatedBill4()); t2.setSeq(t1.getSeq()+1); t2.setRelationCode(t1.getRelationCode());// commonDao.store(t2); @@ -5479,7 +5479,7 @@ public class DefaultMoveDocManager extends DefaultBaseManager implements MoveDoc //浅位托盘没有任务 LibraryTask t1 = interfaceReqManager.storeLibraryTask(LibraryTaskType.byzl, LibraryTaskType.yk, qws.getLP(), qwl.getName(), lq2.getName(), libraryTask.getId()+"", seq++, - null,"出库","1"); + null,"出库",libraryTask.getRelatedBill4()); listTasks.add(t1); @@ -5495,7 +5495,7 @@ public class DefaultMoveDocManager extends DefaultBaseManager implements MoveDoc // 1 浅位搬到浅位 LibraryTask t1 = interfaceReqManager.storeLibraryTask(LibraryTaskType.byzl, LibraryTaskType.yk, qws.getLP(), qwl.getName(), lq2.getName(), libraryTask.getId()+"", seq++, - null,"出库","1"); + null,"出库",libraryTask.getRelatedBill4()); listTasks.add(t1); diff --git a/src/main/java/com/dev/swms/server/service/shipping/pojo/DefaultNewWaveManager.java b/src/main/java/com/dev/swms/server/service/shipping/pojo/DefaultNewWaveManager.java index 0b13149..1a7277b 100644 --- a/src/main/java/com/dev/swms/server/service/shipping/pojo/DefaultNewWaveManager.java +++ b/src/main/java/com/dev/swms/server/service/shipping/pojo/DefaultNewWaveManager.java @@ -1444,69 +1444,95 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements List lx_codes=new ArrayList(); List hj_codes=new ArrayList(); List lk_codes=new ArrayList(); + String shl=""; if (lx1) { lx_codes.add("201"); + shl+="'201',"; } if (lx2) { lx_codes.add("202"); + shl+="'202',"; } if (lx3) { lx_codes.add("203"); + shl+="'203',"; } if (lx4) { lx_codes.add("204"); + shl+="'204',"; } if (lx5) { lx_codes.add("205"); + shl+="'205',"; } if (lx6) { lx_codes.add("206"); + shl+="'206',"; } if (lx7) { lx_codes.add("207"); + shl+="'207',"; } if (lx8) { lx_codes.add("208"); + shl+="'208',"; } if (lx9) { lx_codes.add("209"); + shl+="'209',"; } if (lx10) { lx_codes.add("210"); + shl+="'210',"; } if (lx11) { lx_codes.add("211"); + shl+="'211',"; } if (lx12) { lx_codes.add("212"); + shl+="'212',"; } if (lx13) { lx_codes.add("213"); + shl+="'213',"; } if (lx14) { lx_codes.add("214"); + shl+="'214',"; } if (lx15) { lx_codes.add("215"); + shl+="'215',"; } if (hj1) { hj_codes.add("101"); + shl+="'101',"; } if (hj2) { hj_codes.add("102"); + shl+="'102',"; } if (hj3) { hj_codes.add("103"); + shl+="'103',"; } if (hj4) { hj_codes.add("104"); + shl+="'104',"; } if (hj5) { hj_codes.add("105"); + shl+="'105',"; } if (hj6) { hj_codes.add("106"); + shl+="'106',"; + }if (hj7) { + hj_codes.add("107"); + shl+="'107',"; } + if (lk1) { lk_codes.add("601"); } @@ -1522,6 +1548,26 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements if (lk5) { lk_codes.add("605"); } + if(shl.length()>1) { + shl=shl.substring(0, shl.length()-1); +// List agvTasktypes = commonDao.findByQuery("select t.endRegion from Task t " +// + " where t.agvTask.beIssue=true " +// + " and t.agvTask.classification not in ('拣货') " +// + " and t.agvTask.status in ('ATPICK','ATCALL','ATWAIT','ATWORK') " +// + " and t.endRegion in ("+shl+") group by t.endRegion " +// ); + List agvTasktypes = commonDao.findByQuery("select agvTask.targetArea from AgvTask agvTask " + + " where agvTask.beIssue=true " + + " and agvTask.classification not in ('拣货') " + + " and agvTask.status in ('ATPICK','ATCALL','ATWAIT','ATWORK') " + + " and agvTask.targetArea in ("+shl+") group by agvTask.targetArea " + ); + if(agvTasktypes.size()>0) { + throw new BusinessException(agvTasktypes.toString()+"有其它任务"); + } + } + + // 得到工作站剩余任务行数 Map gzz_maps = gzzCount(waveDoc.getCode());// 所有工作站没完成的任务 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 9b3ae33..e244473 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 @@ -1275,9 +1275,14 @@ public class DefaultPickTicketManager extends DefaultBaseManager implements Pick } public void activeAll(List pickTicketIds) { - synchronized (DefaultWaveDocManager.class) { +// synchronized (DefaultWaveDocManager.class) { String errMsg = ""; - + Date date=new Date(); +// 1000*60*20,小于20分钟。 + if(!DefaultWaveDocManager.hotWave&&date.getTime()-DefaultWaveDocManager.hotWaveDate.getTime()<1200000) { + throw new BusinessException("其他人正在创建波次,请稍后"); + } + DefaultWaveDocManager.hotWave=false; for (Long id : pickTicketIds) { PickTicket pt = commonDao.load(PickTicket.class, id); errMsg += autoAllocator.allocatePickticket(pt); @@ -1293,14 +1298,15 @@ public class DefaultPickTicketManager extends DefaultBaseManager implements Pick }else { logger.info(pt.getCode()+"自动分配,无回传状态"); } - shuaxinPick(pt);//刷新订单 wmsOperationHisManager.storeOperationHis(pt.getId(), pt.getCode(), null, "", "出库管理", "自动分配", null, null, 0, 0, 0, 0, "", "WMS"); } + DefaultWaveDocManager.hotWave=true; + DefaultWaveDocManager.hotWaveDate=DateUtil.formatStrToDateYMD("2023-02-02"); LocalizedMessage.addLocalizedMessage(errMsg); - } +// } } public List activePickTicketDetail( @@ -2129,31 +2135,31 @@ public class DefaultPickTicketManager extends DefaultBaseManager implements Pick @SuppressWarnings("unchecked") public void createPackageByASN(ASN asn, BOL bol) { - for (ASNDetail detail : asn.getAsnDetails()) { - Package pkg = new Package(); - pkg.setBol(bol); - pkg.setCode(bussinessCodeManager.generatePackage()); - pkg.setDescription(detail.getItem().getName()); - pkg.setUnit(detail.getPackageUnit().getUnit()); - pkg.setQuantity(detail.getExpectedQuantity()); - pkg.setType(ProductPackageUnit.CASE); - pkg.setDetails(new HashSet()); - - ItemKey itemKey = itemManager.getItemKey( - new ItemKey("", detail.getItem(), detail.getLotInfo(), asn.getUpdateTime(), asn.getCode()), - Boolean.FALSE); - - PackageDetail pkgDetail = new PackageDetail(); - pkgDetail.setPkg(pkg); - pkgDetail.setItemKey(itemKey); - pkgDetail.setPackageUnit(detail.getPackageUnit()); - pkgDetail.setQuantity(1); - pkg.getDetails().add(pkgDetail); - bol.getPackages().add(pkg); - - pkgDetail.refresh(); - commonDao.store(bol); - } +// for (ASNDetail detail : asn.getAsnDetails()) { +// Package pkg = new Package(); +// pkg.setBol(bol); +// pkg.setCode(bussinessCodeManager.generatePackage()); +// pkg.setDescription(detail.getItem().getName()); +// pkg.setUnit(detail.getPackageUnit().getUnit()); +// pkg.setQuantity(detail.getExpectedQuantity()); +// pkg.setType(ProductPackageUnit.CASE); +// pkg.setDetails(new HashSet()); +// +// ItemKey itemKey = itemManager.getItemKey( +// new ItemKey("", detail.getItem(), detail.getLotInfo(), asn.getUpdateTime(), asn.getCode()), +// Boolean.FALSE); +// +// PackageDetail pkgDetail = new PackageDetail(); +// pkgDetail.setPkg(pkg); +// pkgDetail.setItemKey(itemKey); +// pkgDetail.setPackageUnit(detail.getPackageUnit()); +// pkgDetail.setQuantity(1); +// pkg.getDetails().add(pkgDetail); +// bol.getPackages().add(pkg); +// +// pkgDetail.refresh(); +// commonDao.store(bol); +// } } // 根据参数创建好包箱 @@ -4218,7 +4224,7 @@ public class DefaultPickTicketManager extends DefaultBaseManager implements Pick srcInv.setSOI(task.getBillCode()); srcInv.setQuantity(pickedQuantity); srcInv.setQueuedQuantity(0); - srcInv.setVersion(srcInv.getVersion()); +// srcInv.setVersion(srcInv.getVersion()); srcInv.setTaskid(task.getId()); if(wa!=null&&(wa.getLevels()==0||!wa.isBeBill())) { srcInv.setStatus("合单完成"); @@ -5943,7 +5949,9 @@ public class DefaultPickTicketManager extends DefaultBaseManager implements Pick jsonobj2.put("LGBKZ", kuqu); array.add(jsonobj2); jsonobj.put("INPUT", array); - interfaceReqManager.doWmsReqSap(getPropertiesParm("ldxt.SAP")+ApiURL.doWmsReqSap, jsonobj.toString(),"物料信息"); + if(getPropertiesParm("ldxt.bz").equals("1")) { + interfaceReqManager.doWmsReqSap(getPropertiesParm("ldxt.SAP")+ApiURL.doWmsReqSap, jsonobj.toString(),"物料信息"); + } wmsOperationHisManager.storeOperationHis(item.getId(), item.getCode(), null, "", "物料信息", "回传", null, null, 0, 0, 0, 0, "", "WMS"); } @@ -7279,9 +7287,9 @@ public class DefaultPickTicketManager extends DefaultBaseManager implements Pick String barcode = "QAR/" + t.getBillCode() + "/" + ptd.getLineNumber() + "/" + item.getCode() + "/" + item.getUnit() + "/"; barcode += "/" + ymd.format(new Date()); -// if(dstLP!=null) { -// barcode+="///"+dstLP.getLP(); -// } + if(dstLP!=null) { + barcode+="///"+dstLP.getLP(); + } logger.info(barcode); macs = printEquipment == null ? "" : printEquipment.getMac(); printName = printEquipment == null ? "" : printEquipment.getPrintName(); @@ -9705,6 +9713,7 @@ public class DefaultPickTicketManager extends DefaultBaseManager implements Pick if(zone!=null && zone.length()>0){ if(invIds!=null&&invIds.length()>0){ if(locId>0){ + Location dstLoc=commonDao.load(Location.class,locId); //交单 String tidlist="";//需要交单的task的id @@ -9716,7 +9725,7 @@ public class DefaultPickTicketManager extends DefaultBaseManager implements Pick //容器单总任务数 List countTasks=new ArrayList(); - + //判断是否在交单区, if(dstLoc.getZone().getId()==1787L){ // List ids=new ArrayList(); //去空格 @@ -9724,20 +9733,25 @@ public class DefaultPickTicketManager extends DefaultBaseManager implements Pick List result = Arrays.asList(invIds.split(",")); String hql3="select t.dstLP.LP from Task t where t.srcLoc.zone.levels IN (3,7)" + " and t.strBill5 is null and t.id in("+invIds+") group by t.dstLP.LP "; + //查询容器号 List tids=commonDao.findByQuery(hql3); + if(tids.size()>0) { throw new BusinessException("容器"+tids.toString()+"未做合单任务"); } String hql1=" from Task t where t.id in("+invIds+")"; String hql2="select t.id from Task t where t.id in("+invIds+") and t.inventoryStatus='合单完成' "; - List tasks=commonDao.findByQuery(hql1); + //查询所有拣货任务 + List tasks=commonDao.findByQuery(hql1); + int ka=0; for(Task t1:tasks) { PickTicketDetail ptd=commonDao.load(PickTicketDetail.class, t1.getPickTicketDetail().getId()); - if(ka==0) { + //起点库位 Location stloc=commonDao.load(Location.class, t1.getDstLoc().getId()); + if(ka==0) { if(stloc.getStock()!=null) { String hqlsh=" select t.id from Task t where t.planQuantity>0 and " + " t.dateBill3 is not null and t.dstLoc.stock.id= "+stloc.getStock().getId()+"" @@ -9754,6 +9768,11 @@ public class DefaultPickTicketManager extends DefaultBaseManager implements Pick &&!dstLoc.isBeUrgent()) { throw new BusinessException("该地位不是加急交接点"); } + String strloc=stloc.getCode().substring(0,1); + if(dstLoc.isBeUrgent()&&stloc.getZone().getId()==1785 + &&(strloc.equals("2")||strloc.equals("1"))){ + throw new BusinessException("加急交单位不能放货架"); + } } String m="";//PDA提示信息 diff --git a/src/main/java/com/dev/swms/server/service/shipping/pojo/DefaultTaskIssuedManager.java b/src/main/java/com/dev/swms/server/service/shipping/pojo/DefaultTaskIssuedManager.java index f21197e..71ca3b8 100644 --- a/src/main/java/com/dev/swms/server/service/shipping/pojo/DefaultTaskIssuedManager.java +++ b/src/main/java/com/dev/swms/server/service/shipping/pojo/DefaultTaskIssuedManager.java @@ -75,9 +75,9 @@ public class DefaultTaskIssuedManager extends DefaultBaseManager implements Task boolean lx213, boolean lx214, boolean lx215, boolean hj101, boolean hj102, boolean hj103, boolean hj104, boolean hj105, boolean hj106, boolean hj107, boolean lk601, boolean lk602, boolean lk603, boolean lk604, boolean lk605, String des) { - if(waveDocTask(pickTicketId)) { - throw new BusinessException("该单号已经在波次中,不能单独下发!"); - } +// if(waveDocTask(pickTicketId)) { +// throw new BusinessException("该单号已经在波次中,不能单独下发!"); +// } if(upapickticket(pickTicketId)) { throw new BusinessException("该单号未全部分配,不能单独下发!"); } @@ -226,6 +226,7 @@ public class DefaultTaskIssuedManager extends DefaultBaseManager implements Task task.setStrBill1(UserHolder.getUser().getName()); task.setDateBill1(new Date()); task.setAgvStatus(1); + task.setWaveDoc(null); commonDao.store(task); } } @@ -404,6 +405,7 @@ public class DefaultTaskIssuedManager extends DefaultBaseManager implements Task task.setStrBill1(UserHolder.getUser().getName()); task.setDateBill1(new Date()); task.setAgvStatus(1); + task.setWaveDoc(null); commonDao.store(task); } } @@ -481,6 +483,7 @@ public class DefaultTaskIssuedManager extends DefaultBaseManager implements Task task.setStrBill1(UserHolder.getUser().getName()); task.setDateBill1(new Date()); task.setAgvStatus(1); + task.setWaveDoc(null); commonDao.store(task); } } @@ -512,6 +515,7 @@ public class DefaultTaskIssuedManager extends DefaultBaseManager implements Task task.setDateBill1(new Date()); task.setYc_qty(task.getPlanQuantityMU());//下发数量 task.setAgvStatus(1); + task.setWaveDoc(null); commonDao.store(task); } } diff --git a/src/main/java/com/dev/swms/server/service/shipping/pojo/DefaultWaveDocManager.java b/src/main/java/com/dev/swms/server/service/shipping/pojo/DefaultWaveDocManager.java index 7b5f4ed..fe0e9a5 100644 --- a/src/main/java/com/dev/swms/server/service/shipping/pojo/DefaultWaveDocManager.java +++ b/src/main/java/com/dev/swms/server/service/shipping/pojo/DefaultWaveDocManager.java @@ -2422,14 +2422,13 @@ public class DefaultWaveDocManager extends DefaultBaseManager implements @Override public void hotWaveDoc(Date date1,Date date2 ,Integer longtiem,Integer lxqQty,Integer hjqQty,Integer lkqQty,boolean ddq,String pickCode ,boolean ddq1,boolean ddq2,boolean ddq3,boolean ddq4,boolean ddq5,boolean ddq6,boolean ddq7,boolean ddq8,boolean ddq9,Integer taskQty,boolean beUrgent) { - synchronized (DefaultWaveDocManager.class) { +// synchronized (DefaultWaveDocManager.class) { - SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd"); +// SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd"); Date date=new Date(); - logger.info(date); // 1000*60*20,小于20分钟。 if(!hotWave&&date.getTime()-hotWaveDate.getTime()<1200000) { - throw new BusinessException("其它人正在创建波次,请稍后"); + throw new BusinessException("其他人正在创建波次,请稍后"); } hotWave=false; List PickTicketDetailIds=null; @@ -2494,10 +2493,10 @@ public class DefaultWaveDocManager extends DefaultBaseManager implements + " where 1=1 and ptd.newLotInfo.propC2 not in("+hqlmave+") " + " and ptd.pickTicket.billType.name='工单出库' "; if(date1==null){ - sql2+=" and CONVERT(varchar(100),ptd.pickTicket.orderDate, 23)<='"+sdf.format(date2)+"' "; + sql2+=" and CONVERT(varchar(100),ptd.pickTicket.orderDate, 23)<='"+DateUtil.formatDateYMDToStr(date2)+"' "; }else{ - sql2+= " and CONVERT(varchar(100),ptd.pickTicket.orderDate, 23)>='"+sdf.format(date1)+"' "; - sql2+= " and CONVERT(varchar(100),ptd.pickTicket.orderDate, 23)<='"+sdf.format(date2)+"' "; + sql2+= " and CONVERT(varchar(100),ptd.pickTicket.orderDate, 23)>='"+DateUtil.formatDateYMDToStr(date1)+"' "; + sql2+= " and CONVERT(varchar(100),ptd.pickTicket.orderDate, 23)<='"+DateUtil.formatDateYMDToStr(date2)+"' "; } sql2+= " and ptd.orderQuantity>=ptd.allocatedQuantity " + " and ptd.pickedQuantity=0 and ptd.shippedQuantity=0 " @@ -2703,16 +2702,13 @@ public class DefaultWaveDocManager extends DefaultBaseManager implements pickTicketManager.addTaskToWaveDocDetail(Tasks, date1, date2, longtiem, lxqQty, hjqQty, lkqQty, ddq9, pickCode, taskQty,0); } - try { + hotWave=true; - hotWaveDate=sdf.parse("2023-02-02"); - } catch (ParseException e) { - hotWave=true; - } + hotWaveDate=DateUtil.formatStrToDateYMD("2023-02-02"); + // autoAllocator.initiandcallAGV(waveDoc.getId(), lxq, hjq, lkq);//下发任务 // } - } } 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 e4887d4..764bf8a 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 @@ -30,6 +30,7 @@ import org.springframework.web.context.support.WebApplicationContextUtils; import com.dev.energy.server.dao.CommonDao; import com.dev.energy.server.model.EntityFactory; import com.dev.energy.server.util.DateUtil; +import com.dev.energy.server.web.security.UserHolder; import com.dev.swms.server.model.base.ContainerType; import com.dev.swms.server.model.base.Equipment; import com.dev.swms.server.model.base.Item; @@ -140,10 +141,13 @@ public class ASNReceiveServlet extends HttpServlet { String type = json.has("type")?json.getString("type"):"1"; JSONObject resultJson = new JSONObject(); if("scanItemBarCode".equals(methodType)){ + //收货整理查询 String asn_code = json.has("asn_code")?json.getString("asn_code"):""; String item_code = json.has("item_code")?json.getString("item_code"):""; +// logger.info("-----------itemCode="+item_code+"-0000--OPEN"); resultJson=app.scanItemBarCode(asn_code, item_code,type,workerId, wId); +// logger.info("-----------itemCode="+item_code+"-0000--END"); } else if("scanItemSN".equals(methodType)){ //收货整理序列号查询 String asn_code = json.has("asn_code")?json.getString("asn_code"):""; @@ -877,7 +881,6 @@ public class ASNReceiveServlet extends HttpServlet { ASNDetail ad=commonDao.load(ASNDetail.class, asnDetailId); Item item=commonDao.load(Item.class, ad.getItem().getId()); item.setWeight(weight); -// item.setSuggest(item.getWeight()/specs); BigDecimal bg1 = new BigDecimal(item.getWeight()/specs); double f2 = bg1.setScale(3, BigDecimal.ROUND_HALF_UP).doubleValue(); if(f2<0.001){ @@ -952,7 +955,7 @@ public class ASNReceiveServlet extends HttpServlet { resultJson.put("msg", msg); return resultJson; } - public synchronized JSONObject receiving(String mac,Long pqty,String asnDetailId,String serials,Date receiveDate,long locId, + public JSONObject receiving(String mac,Long pqty,String asnDetailId,String serials,Date receiveDate,long locId, long z_id,long s_id,double receivedQuantity,long userId,long warehouseId,CommonDao commonDao, String lp1,String lp2){ JSONObject resultJson = new JSONObject(); @@ -962,6 +965,10 @@ public class ASNReceiveServlet extends HttpServlet { boolean agv=true; if (userId > 0) { if (warehouseId > 0) { + logger.info(asnDetailId+"--整理+"+new Date()); +// List p2s=commonDao.findByQuery("select ad.lotInfo.propC2 from ASNDetail ad " +// + "where ad.id in ("+asnDetailId+") group by ad.lotInfo.propC2 "); + if(z_id==1763&&locId==0) { status = "2"; msg = "料箱区,必须扫描料箱格口码!"; @@ -978,8 +985,7 @@ public class ASNReceiveServlet extends HttpServlet { resultJson.put("data", data); return resultJson; }else { - List p2s=commonDao.findByQuery("select ad.lotInfo.propC2 from ASNDetail ad " - + "where ad.id in ("+asnDetailId+") group by ad.lotInfo.propC2 "); + /** 2025-05-06注释 if(p2s.size()>1) { status = "2"; msg = " 容器不能LOC混放! "; @@ -988,6 +994,7 @@ public class ASNReceiveServlet extends HttpServlet { resultJson.put("data", data); return resultJson; } + */ } Stock stock =commonDao.load(Stock.class, s_id);//容器 if(stock!=null) { @@ -1006,9 +1013,11 @@ public class ASNReceiveServlet extends HttpServlet { } } } + logger.info(asnDetailId+"--整理+"+new Date()); + /** 2025-05-06注释 if(stock!=null) { - List p2s=commonDao.findByQuery("select ad.lotInfo.propC2 from ASNDetail ad " - + "where ad.id in ("+asnDetailId+") group by ad.lotInfo.propC2 "); +// List p2s=commonDao.findByQuery("select ad.lotInfo.propC2 from ASNDetail ad " +// + "where ad.id in ("+asnDetailId+") group by ad.lotInfo.propC2 "); if(p2s.size()>1) { status = "2"; msg = " 容器不能LOC混放! "; @@ -1034,6 +1043,7 @@ public class ASNReceiveServlet extends HttpServlet { } } } + */ //走序列号收货 if(serials!=null&&serials.length()>0){ List result = Arrays.asList(serials.split(",")); @@ -1077,9 +1087,9 @@ public class ASNReceiveServlet extends HttpServlet { msg = "容器码不存在,请重新扫描!"; }else { if(z_id==1766) { - List locs=commonDao.findByQuery(" from Location l where l.stock.id="+stock.getId()+" and l.code='"+stock.getLP()+"'"); + List locs=commonDao.findByQuery("select l.id from Location l where l.stock.id="+stock.getId()+" and l.code='"+stock.getLP()+"'"); if(locs.size()>0) { - locId=locs.get(0).getId(); + locId=locs.get(0); }else { status = "2"; msg = "堆垛库,扫描的容器错误!"; @@ -1093,6 +1103,7 @@ public class ASNReceiveServlet extends HttpServlet { ASNManager asnManager = (ASNManager) ac.getBean("asnManager"); List asnds=new ArrayList(); asnds.add(ad.getId()); + logger.info(asnDetailId+"--整理+"+new Date()); try{ asnManager.receiveGoods(asnds, receiveDate, userId, locId, z_id, ad.getExpectedQuantity()-ad.getReceivedQuantity(), s_id,pqty,mac, stock==null?"":stock.getLP(), agv); @@ -1111,7 +1122,7 @@ public class ASNReceiveServlet extends HttpServlet { } }else{ - + logger.info(asnDetailId+"--整理1--+"+new Date()); Worker w= commonDao.load(Worker.class, userId); List result = Arrays.asList(asnDetailId.split(",")); double quantity=0; @@ -1179,7 +1190,7 @@ public class ASNReceiveServlet extends HttpServlet { } } - + logger.info(asnDetailId+"--整理1--1+"+new Date()); ASNManager asnManager = (ASNManager) ac.getBean("asnManager"); List asnds=new ArrayList(); asnds.add(ad.getId()); @@ -1258,7 +1269,7 @@ public class ASNReceiveServlet extends HttpServlet { asnManager.receiveGoods(asnds, receiveDate, userId, locId, z_id, qty, s_id,pqty, mac,stock==null?"":stock.getLP(), agv); msg="收货成功"; status="1"; - + logger.info(asnDetailId+"--整理1--2+"+new Date()); }catch(Exception e) { msg=e.toString(); status="0"; @@ -1278,6 +1289,7 @@ public class ASNReceiveServlet extends HttpServlet { status = "2"; msg = "无用户信息!"; } + logger.info(asnDetailId+"--整理1--3+"+new Date()); resultJson.put("status", status); resultJson.put("msg", msg); resultJson.put("data", data); @@ -1298,6 +1310,8 @@ public class ASNReceiveServlet extends HttpServlet { Warehouse warehouse=commonDao.load(Warehouse.class, warehouseId);//仓库 if(ad!=null) { ad.setStrBill(true); + ad.setRelatedBill5(w.getName()); + ad.setDeliveryDate(new Date()); commonDao.store(ad); status="1"; } @@ -1637,26 +1651,56 @@ public class ASNReceiveServlet extends HttpServlet { List Inventorys=commonDao.findByQuery(" from Inventory inv where inv.id in ("+invIds.toString()+") "); ItemKey ik=null; Location lc=null; + String barcode=""; if(Inventorys.size()>0) { Inventory iv=Inventorys.get(0); lc=commonDao.load(Location.class, iv.getLocation().getId()); ik=commonDao.load(ItemKey.class, iv.getItemKey().getId()); } if(ik!=null&&lc!=null) { - String wsql="select sum(r.receivedQuantity-r.shippedQuantity) from ReceivingInventory r where r.itemKey.item.id= " - + ik.getItem().getId()+" and r.location.id="+lc.getId() - +" and r.strBill1='"+ncrCode+"' and r.receivedQuantity>r.shippedQuantity"; - List rdsqty=commonDao.findByQuery(wsql); - if(rdsqty.size()>0) { - double qys=rdsqty.get(0); - if(quantity>qys) { - flag=0; - msg=msg+ncrCode+"库存数"+qys; + + if(serials!=null&&serials.length()>0) { + List result = Arrays.asList(serials.split(",")); + int sh=result.size(); + for(String serial:result){ + barcode+="'"+serial+"',"; } + if(barcode.length()>1) { + barcode.substring(0, barcode.length()-1); + String wsql="select r.barCode from ReceivingInventory r where r.itemKey.item.id= " + + ik.getItem().getId()+" and r.location.id="+lc.getId() + +" and r.strBill1='"+ncrCode+"' and r.receivedQuantity>r.shippedQuantity " + + " and r.barCode in("+barcode+") "; + List rdsqty=commonDao.findByQuery(wsql); + if(rdsqty.size()>0) { + int qys=rdsqty.size(); + if(quantity>qys) { + flag=0; + msg=msg+barcode+"序列号,库存数错误"+qys; + } + }else { + flag=0; + msg=msg+ncrCode+"号输入错误,序列号"+barcode; + } + } + }else { - flag=0; - msg=msg+ncrCode+"号输入错误"; + String wsql="select sum(r.receivedQuantity-r.shippedQuantity) from ReceivingInventory r where r.itemKey.item.id= " + + ik.getItem().getId()+" and r.location.id="+lc.getId() + +" and r.strBill1='"+ncrCode+"' and r.receivedQuantity>r.shippedQuantity "; + List rdsqty=commonDao.findByQuery(wsql); + if(rdsqty.size()>0) { + double qys=rdsqty.get(0); + if(quantity>qys) { + flag=0; + msg=msg+ncrCode+"库存数"+qys; + } + }else { + flag=0; + msg=msg+ncrCode+"号输入错误"; + } } + } } } @@ -2540,7 +2584,7 @@ public class ASNReceiveServlet extends HttpServlet { } msg="该容器已绑定"+codes+"槽位!"; }else{ - List invs=commonDao.findByQuery(" from Inventory sw where sw.qtyOfMasterPack>0 and sw.LP.id="+s1.getId()+" "); + List invs=commonDao.findByQuery("select sw.id from Inventory sw where sw.quantity>0 and sw.LP.id="+s1.getId()+" "); if(invs.size()>0) { msg="该容器有库存不能绑定"; }else { diff --git a/src/main/java/com/dev/swms/server/web/servlet/ImageQueryServlet.java b/src/main/java/com/dev/swms/server/web/servlet/ImageQueryServlet.java new file mode 100644 index 0000000..640df35 --- /dev/null +++ b/src/main/java/com/dev/swms/server/web/servlet/ImageQueryServlet.java @@ -0,0 +1,174 @@ +package com.dev.swms.server.web.servlet; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +import javax.servlet.ServletConfig; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.commons.lang.StringUtils; +import org.hibernate.Query; +import org.hibernate.Session; +import org.springframework.context.ApplicationContext; +import org.springframework.orm.hibernate3.support.HibernateDaoSupport; +import org.springframework.web.context.support.WebApplicationContextUtils; + +import com.dev.energy.server.dao.CommonDao; +import com.dev.swms.server.model.base.ImageObj; +import com.dev.swms.server.model.fee.Fee; + + +/** + * 托信息查询; + * @author zcz + * @create 2016年6月7日18:05:36 + */ +public class ImageQueryServlet extends HttpServlet { + private static final long serialVersionUID = 1L; + protected static ApplicationContext ac; + /** + * Constructor of the object. + */ + public ImageQueryServlet() { + super(); + } + + public void init(ServletConfig sc) throws ServletException { + super.init(sc); + ac = WebApplicationContextUtils.getRequiredWebApplicationContext(sc.getServletContext()); + } + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + // TODO Auto-generated method stub + this.doPost(request, response); + } + + /** + * The doPost method of the servlet.
+ * + * This method is called when a form has its tag value method equals to post. + * + * @param request the request send by the client to the server + * @param response the response send by the server to the client + * @throws ServletException if an error occurred + * @throws IOException if an error occurred + */ + public void doPost(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + CommonDao commonDao = (CommonDao) ac.getBean("commonDao"); + Session session = ((HibernateDaoSupport)commonDao).getSessionFactory().openSession(); + + String type; + String id; + int currentPage; + int pageSize; + List imageObjs; + int recordTotal; + int totalPage; + try { + request.setCharacterEncoding("utf-8"); + response.setCharacterEncoding("utf-8"); + type = StringUtils.trimToEmpty(request.getParameter("type")); + String[] t = type.split(","); + id = StringUtils.trimToEmpty(request.getParameter("aorptid")); + + String hql="select f.id,f.remark as FILE_URL,f.viewName as VIEW_NAME,f.fileUrl as furl," + + "f.imageType from SignFile f "; + + String hql_="select count(*) from SignFile f where f.objectType='"+type+"' and f.objectId="+id; + + if(type.equals("D")){ + hql+=" where f.id="+id; + }else if(type.equals("OAP")){ + Fee f=commonDao.load(Fee.class, Long.parseLong(id)); + //订单:关务-CUSTOMSORDER;箱单-INVOICEBOX;仓库:asn-CHECKRELEA;PickTicket-PickTicket + List signFileId = commonDao.findByQuery(" select sf.id from SignFile sf where sf.viewName=:viewName and sf.objectType in('CustomsOrder','InvoiceBox','CHECKRELEA','PickTicket')", + new String[] { "viewName"},new Object[] {""}); + if(signFileId.size()>0){ + String ids=StringUtils.strip(signFileId.toString(),"[]"); + hql+="where f.id in ("+ids+")"; + }else{ + hql+="where f.id is null"; + } + }else{ + hql+="where f.objectType='"+type+"' and f.objectId="+id; + } + + + currentPage = Integer.parseInt(request.getParameter("currentPage")==null?"1":request.getParameter("currentPage")); + pageSize = Integer.parseInt(request.getParameter("pageSize")==null?"1":request.getParameter("pageSize")); + Query query = session.createQuery(hql); + query.setFirstResult((currentPage-1)*pageSize); + query.setMaxResults(pageSize); + List fs= (List)query.list(); + + imageObjs = new ArrayList(); + + for (int i = 0; i < fs.size(); i++) { + Object[] obj = (Object[]) fs.get(i); + ImageObj imageObj = new ImageObj(); + imageObj.setId((Long) obj[0]); + String url=(String) obj[1]; + System.out.println((String) obj[1]); + imageObj.setFileUrl(url); + if(url.indexOf(".pdf")>0||url.indexOf(".PDF")>0){ + imageObj.setImageType("2"); +// imageObj.setFileUrl((String) obj[3]); + }else{ + imageObj.setImageType("1"); + } + imageObjs.add(imageObj); + } + Query query_ = session.createQuery(hql); + List list = query_.list(); + recordTotal = list.size(); + + int pageNo = 1; + +// String query = request.getParameter("query"); + String offset = request.getParameter("pager.offset"); + if(offset != null){ + try{ + pageNo = Integer.valueOf(offset)/ pageSize + 1; + if(pageNo <=0) + pageNo = 1; + }catch(Exception e){ + pageNo = 1; + } + } + if("false".equals(query)){//分页; + }else{ + pageNo = 1; + } + totalPage = recordTotal/pageSize; + if(recordTotal%pageSize!=0){ + totalPage+=1; + } + request.setAttribute("list", imageObjs); + request.setAttribute("pageSize", pageSize); + request.setAttribute("recordTotal", recordTotal); + request.setAttribute("currentPage", currentPage); + request.setAttribute("totalPage", totalPage); + request.setAttribute("aorptid", id); + request.setAttribute("type",type); + request.getRequestDispatcher("imageView.jsp").forward(request, response); + } catch (Exception e) { + e.printStackTrace(); + }finally{ + session.close(); + } + + } + + /** + * Initialization of the servlet.
+ * + * @throws ServletException if an error occurs + */ + public void init() throws ServletException { + // Put your code here + } + +} diff --git a/src/main/java/com/dev/swms/server/web/servlet/MoveServlet.java b/src/main/java/com/dev/swms/server/web/servlet/MoveServlet.java index cabe9cf..543f29b 100644 --- a/src/main/java/com/dev/swms/server/web/servlet/MoveServlet.java +++ b/src/main/java/com/dev/swms/server/web/servlet/MoveServlet.java @@ -146,8 +146,6 @@ public class MoveServlet extends HttpServlet { String stockCode =json.has("stockCode")?json.getString("stockCode"):""; resultJson=app.queryStockPutList(stockCode, workerId, wId); } - - PrintWriter out = null; try { // response.setContentType(resultJson.toString()); diff --git a/src/main/java/com/dev/swms/server/web/servlet/ReadWeightServlet.java b/src/main/java/com/dev/swms/server/web/servlet/ReadWeightServlet.java index 5309fb1..c427f20 100644 --- a/src/main/java/com/dev/swms/server/web/servlet/ReadWeightServlet.java +++ b/src/main/java/com/dev/swms/server/web/servlet/ReadWeightServlet.java @@ -1,8 +1,16 @@ package com.dev.swms.server.web.servlet; import java.io.BufferedReader; +import java.io.File; import java.io.IOException; +import java.io.InputStream; import java.io.InputStreamReader; +import java.io.PrintWriter; +import java.util.Date; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; import javax.servlet.ServletConfig; import javax.servlet.ServletException; @@ -12,11 +20,23 @@ import javax.servlet.http.HttpServletResponse; import net.sf.json.JSONObject; +import org.apache.commons.fileupload.FileItem; +import org.apache.commons.fileupload.disk.DiskFileItemFactory; +import org.apache.commons.fileupload.servlet.ServletFileUpload; import org.apache.commons.httpclient.HttpClient; import org.springframework.context.ApplicationContext; import org.springframework.web.context.support.WebApplicationContextUtils; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.MultipartHttpServletRequest; +import com.dev.energy.server.dao.CommonDao; +import com.dev.energy.server.model.Entity; +import com.dev.swms.server.model.base.Worker; +import com.dev.swms.server.model.interfaceLog.InterfaceLog; +import com.dev.swms.server.service.interfaceLog.ImageFileManager; import com.dev.swms.server.service.interfaceLog.InterfaceManager; +import com.dev.swms.server.service.interfaceLog.QueryAppManager; + import org.apache.log4j.Logger; public class ReadWeightServlet extends HttpServlet{ private static Logger logger = Logger.getLogger(ReadWeightServlet.class); @@ -36,23 +56,7 @@ public class ReadWeightServlet extends HttpServlet{ */ @SuppressWarnings("unchecked") public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - - response.setContentType("application/json"); - response.setCharacterEncoding("UTF-8"); - // 返回JSON数据 - JSONObject resultObject = new JSONObject(); - // 获取post提交的回复案件的信息 - String postResult = reqMailbox(request); - String result=""; - if(postResult!=null&&!"".equals(postResult)){ - InterfaceManager app = (InterfaceManager) ac.getBean("interfaceManager"); - app.storeInterfaceLog("","WMS", "YC", "称重", postResult, null); - }else{ - result="空的传值"; - } - //实现逻辑... - response.getOutputStream().write(result.toString().getBytes("UTF-8")); - + this.doPost(request, response); } /** @@ -78,8 +82,162 @@ public class ReadWeightServlet extends HttpServlet{ * 跳转到Get方法 */ public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - logger.info("称重"); - doGet(request, response); + logger.info("==========app========"+new Date()); + request.setCharacterEncoding("UTF-8"); + CommonDao commonDao = (CommonDao) ac.getBean("commonDao"); +// QueryAppManager app = (QueryAppManager) ac.getBean("queryAppManager"); + JSONObject resultJson = new JSONObject(); + String returnCode="500"; + String msg=""; + String status="0"; + InterfaceManager app12 = (InterfaceManager) ac.getBean("interfaceManager"); + InterfaceLog log=new InterfaceLog(); + try { + DiskFileItemFactory factory = new DiskFileItemFactory(); + logger.info("==========app========"+request.toString()+"---"+new Date()); + ServletFileUpload upload = new ServletFileUpload(factory); + upload.setHeaderEncoding("UTF-8"); + List items=upload.parseRequest(request); + Map params = new HashMap(); + for(Object object:items){ + FileItem fileItem = (FileItem) object; + if (fileItem.isFormField()) { + logger.info("KEY="+fileItem.getFieldName()+"--V-"+fileItem); + params.put(fileItem.getFieldName(), fileItem.getString("utf-8")); + //如果你页面编码是utf-8的 + } + } + log= app12.storeInterfaceLog("整理称重","WMSItem", "YC", "称重", params.toString(), null); + logger.info("==========app1========"+params.toString()+"---"+new Date()); + String methodType = params.get("methodType").toString()==null?"":params.get("methodType").toString(); + String objectType = "ItemPicture"; + String taskCode = params.containsKey("taskCode")?params.get("taskCode").toString():""; + + String itemCode =params.containsKey("itemCode")?params.get("itemCode").toString():""; + String weight =params.containsKey("weight")?params.get("weight").toString():""; + String length =params.containsKey("length")?params.get("length").toString():""; + String width =params.containsKey("width")?params.get("width").toString():""; + String height =params.containsKey("height")?params.get("height").toString():""; +// String fileImage =json.has("fileImage")?json.getString("fileImage"):""; + String packNumber =params.containsKey("packNumber")?params.get("packNumber").toString():""; + String fileDateTime =params.containsKey("fileDateTime")?params.get("fileDateTime").toString():""; + + if(methodType==null||methodType.equals("")) { + msg=msg+methodType+"不能空"; + } + if(itemCode==null||itemCode.equals("")) { + msg=msg+itemCode+"不能空"; + } + if(weight==null||weight.equals("")) { + msg=msg+weight+"不能空"; + } + //上传图片 + if(msg.equals("")&&"picturesUpload".equals(methodType)){ + List listLong= commonDao.findByQuery("select i.id from Item i " + + "where i.code='"+itemCode.trim()+"'"); + long ad_id = 0L; + if(listLong.size()>0) { + ad_id=listLong.get(0); + }else { + msg=itemCode+"不存在"; + } + + if(msg.equals("")){ + String longName=""; + Worker worker = commonDao.get(Worker.class,1080L); + if(worker!=null){ + longName=worker.getName(); + ImageFileManager imageFileManager = (ImageFileManager) ac.getBean("imageFileManager"); + for(FileItem item:items){ + if(!item.isFormField()){ + String name = item.getName(); + if (name != null && name.length()>0) { + try { + name = name.substring(name.lastIndexOf(File.separator) + 1);//文件名 + InputStream inputStream = item.getInputStream(); + + imageFileManager.importImageItem(ad_id,inputStream, weight, length, + width, height, packNumber, fileDateTime, taskCode, + objectType,name,longName); + status="1"; + msg="上传成功"; + returnCode="200"; + } catch (Exception e) { + msg=e.getMessage(); + } + } + } + } + }else{ + msg="用户不存在!"; + } + } + }else if(msg.equals("")&&"AppItemImage".equals(methodType)){ + //app上传图片 + String specs =params.containsKey("specs")?params.get("specs").toString():""; + List listLong= commonDao.findByQuery("select i.id from Item i " + + "where i.code='"+itemCode.trim()+"'"); + long ad_id = 0L; + if(listLong.size()>0) { + ad_id=listLong.get(0); + }else { + msg=itemCode+"不存在"; + } + + if(msg.equals("")){ + String longName=""; + Worker worker = commonDao.get(Worker.class,1080L); + if(worker!=null){ + ImageFileManager imageFileManager = (ImageFileManager) ac.getBean("imageFileManager"); + longName=worker.getName(); + for(FileItem item:items){ + if(!item.isFormField()){ + String name = item.getName(); + if (name != null && name.length()>0) { + try { + name = name.substring(name.lastIndexOf(File.separator) + 1);//文件名 + InputStream inputStream = item.getInputStream(); + imageFileManager.importImageItem(ad_id,inputStream, weight, length, + width, height, specs, fileDateTime, taskCode, + objectType,name,longName); + status="1"; + msg="上传成功"; + returnCode="200"; + } catch (Exception e) { + msg=e.getMessage(); + } + } + } + } + }else{ + msg="用户不存在!"; + } + } + + }else { + + } + + }catch (Exception e){ + msg=e.toString(); + } + resultJson.put("returnCode", returnCode); + resultJson.put("returnFlag", status); + resultJson.put("returnDesc", msg); + resultJson.put("resultInfo", ""); + logger.info(new Date()+"result========="+resultJson.toString()); + PrintWriter out = null; + try { + response.setContentType(resultJson.toString()); + response.setCharacterEncoding("UTF-8"); + out = response.getWriter(); + out.print(resultJson.toString()); + app12.updateResponse(log,"" , resultJson.toString()); + } catch (IOException e) { + e.printStackTrace(); + } finally { + out.close(); + } } } diff --git a/src/main/java/com/dev/swms/server/web/servlet/SWMSLoginServlet.java b/src/main/java/com/dev/swms/server/web/servlet/SWMSLoginServlet.java index 03c7ada..b1c8b41 100644 --- a/src/main/java/com/dev/swms/server/web/servlet/SWMSLoginServlet.java +++ b/src/main/java/com/dev/swms/server/web/servlet/SWMSLoginServlet.java @@ -81,7 +81,7 @@ public class SWMSLoginServlet extends LoginServlet { session.setAttribute(LOCALE,locale);//当前语言环境 session.setAttribute(Constant.MODULE , "e2wms"); // SecurityContextHolder.addSecurityContext(req.getSession()); - } + } private Warehouse queryWarehouse(String loginName) { WarehouseManager warehouseManager = (WarehouseManager) ac.getBean("warehouseManager"); diff --git a/src/main/java/serviceContext.xml b/src/main/java/serviceContext.xml index d49eda8..dcb93b1 100644 --- a/src/main/java/serviceContext.xml +++ b/src/main/java/serviceContext.xml @@ -753,6 +753,9 @@ + + + @@ -1414,6 +1417,9 @@ + + + diff --git a/src/test/yao/2025.sql b/src/test/yao/2025.sql index c4595b7..9386e95 100644 --- a/src/test/yao/2025.sql +++ b/src/test/yao/2025.sql @@ -24,7 +24,7 @@ CREATE TABLE WorkOrderAllocationInfo ( WorkOrderNumber NVARCHAR(50), LineNumber INT, MaterialNumber NVARCHAR(50), - Quantity INT, + Quantity float, Remarks NVARCHAR(200), LocationNumber NVARCHAR(50), Factory NVARCHAR(50), @@ -35,13 +35,13 @@ GO -----------2025-04-02 -ALTER TABLE ITEM_KEY add PROP_LC5 varchar(50) COLLATE Chinese_PRC_CI_AS NULL; +ALTER TABLE ITEM_KEY add PROP_LC5 varchar(250) COLLATE Chinese_PRC_CI_AS NULL; GO -ALTER TABLE ITEM_KEY add PROP_LC6 varchar(50) COLLATE Chinese_PRC_CI_AS NULL; +ALTER TABLE ITEM_KEY add PROP_LC6 varchar(250) COLLATE Chinese_PRC_CI_AS NULL; GO -ALTER TABLE ASN_DETAIL add PROP_LC5 varchar(50) COLLATE Chinese_PRC_CI_AS NULL; +ALTER TABLE ASN_DETAIL add PROP_LC5 varchar(250) COLLATE Chinese_PRC_CI_AS NULL; GO -ALTER TABLE ASN_DETAIL add PROP_LC6 varchar(50) COLLATE Chinese_PRC_CI_AS NULL; +ALTER TABLE ASN_DETAIL add PROP_LC6 varchar(250) COLLATE Chinese_PRC_CI_AS NULL; GO @@ -81,6 +81,63 @@ UPDATE STATISTICS ITEM; UPDATE STATISTICS TASK; UPDATE STATISTICS INVENTORY; - +--------2025-04-25 ALTER TABLE TASK add item_Code varchar(50) COLLATE Chinese_PRC_CI_AS NULL; -GO \ No newline at end of file +GO + +ALTER TABLE SIGN_FILE add LENGTH float(20) NULL; +GO +ALTER TABLE SIGN_FILE add WIDTH float(20) NULL; +GO +ALTER TABLE SIGN_FILE add HEIGHT float(20) NULL; +GO +ALTER TABLE SIGN_FILE add WEIGHT float(20) NULL; +GO +ALTER TABLE SIGN_FILE add VOLUME float(20) NULL; +GO +ALTER TABLE SIGN_FILE add PACK_NUMBER int NULL; +GO +update SIGN_FILE set LENGTH=0 where LENGTH is null; +GO +update SIGN_FILE set WIDTH=0 where WIDTH is null; +GO +update SIGN_FILE set HEIGHT=0 where HEIGHT is null; +GO +update SIGN_FILE set WEIGHT=0 where WEIGHT is null; +GO +update SIGN_FILE set VOLUME=0 where VOLUME is null; +GO +update SIGN_FILE set PACK_NUMBER=0 where PACK_NUMBER is null; +GO + +--------2025-05-06 +ALTER TABLE Item add be_Image_File tinyint NULL; +GO +update Item set be_Image_File=0 where be_Image_File is null; +GO + + +CREATE NONCLUSTERED INDEX [IDX_INVENTORY_STOCK_ID] +ON [dbo].[INVENTORY] ( + [LP] ASC +) +----非空索引 +CREATE INDEX FK_default_Warehouse_Area_ID_Null ON Item (default_Warehouse_Area_ID) WHERE default_Warehouse_Area_ID IS NULL; + +CREATE INDEX FK_default_Warehouse_Area_ID_Null ON Item (default_Warehouse_Area_ID) WHERE default_Warehouse_Area_ID IS NULL; + +---//修改字段类型 +ALTER TABLE Employees +ALTER COLUMN Name VARCHAR(30); + +ALTER TABLE INTERFACE_LOG +ALTER COLUMN REQUEST VARCHAR(200); +ALTER TABLE INTERFACE_LOG +ALTER COLUMN FILE_NAME VARCHAR(200); +---修改字段名 +EXEC sp_rename 'ITEM_KEY.PROP_LC5', 'PROP_LC10', 'COLUMN'; + + +-------2025-05-23 +ALTER TABLE INVENTORY add Item_Code varchar(100) COLLATE Chinese_PRC_CI_AS NULL; + diff --git a/src/webapp/WEB-INF/classes/config/origen/base/maintainItemPicturePage.xml b/src/webapp/WEB-INF/classes/config/origen/base/maintainItemPicturePage.xml new file mode 100644 index 0000000..82f0503 --- /dev/null +++ b/src/webapp/WEB-INF/classes/config/origen/base/maintainItemPicturePage.xml @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/webapp/WEB-INF/classes/config/origen/base/maintainLocationPage.xml b/src/webapp/WEB-INF/classes/config/origen/base/maintainLocationPage.xml index 5bcbeae..cfb1a00 100644 --- a/src/webapp/WEB-INF/classes/config/origen/base/maintainLocationPage.xml +++ b/src/webapp/WEB-INF/classes/config/origen/base/maintainLocationPage.xml @@ -258,7 +258,6 @@ - diff --git a/src/webapp/WEB-INF/classes/config/origen/base/maintainPlantLocationPage.xml b/src/webapp/WEB-INF/classes/config/origen/base/maintainPlantLocationPage.xml index b531147..08ec48f 100644 --- a/src/webapp/WEB-INF/classes/config/origen/base/maintainPlantLocationPage.xml +++ b/src/webapp/WEB-INF/classes/config/origen/base/maintainPlantLocationPage.xml @@ -12,7 +12,15 @@ plantInfo.code from PlantInfo plantInfo where 1=1 order by plantInfo.name asc ]]> - + + + + @@ -33,6 +41,7 @@ where 1=1 /~carrierType.disabled: and pl.disabled = {carrierType.disabled}~/ /~carrierType.code: and pl.plantInfo.code like {carrierType.code}~/ + /~pl.code: and pl.code like {pl.code}~/ ]]> diff --git a/src/webapp/WEB-INF/classes/config/origen/menuConfig.xml b/src/webapp/WEB-INF/classes/config/origen/menuConfig.xml index 44f9aa6..cfb2c77 100644 --- a/src/webapp/WEB-INF/classes/config/origen/menuConfig.xml +++ b/src/webapp/WEB-INF/classes/config/origen/menuConfig.xml @@ -14,6 +14,7 @@ + diff --git a/src/webapp/WEB-INF/classes/config/origen/putaway/maintainLibraryTaskPage.xml b/src/webapp/WEB-INF/classes/config/origen/putaway/maintainLibraryTaskPage.xml index 5bd8a76..710c052 100644 --- a/src/webapp/WEB-INF/classes/config/origen/putaway/maintainLibraryTaskPage.xml +++ b/src/webapp/WEB-INF/classes/config/origen/putaway/maintainLibraryTaskPage.xml @@ -44,7 +44,6 @@ - diff --git a/src/webapp/WEB-INF/classes/config/origen/receiving/editReceiveGoodsPage.xml b/src/webapp/WEB-INF/classes/config/origen/receiving/editReceiveGoodsPage.xml index 19f4062..4d10133 100644 --- a/src/webapp/WEB-INF/classes/config/origen/receiving/editReceiveGoodsPage.xml +++ b/src/webapp/WEB-INF/classes/config/origen/receiving/editReceiveGoodsPage.xml @@ -96,7 +96,7 @@ - diff --git a/src/webapp/WEB-INF/classes/config/origen/receiving/maintainASNDetailPage.xml b/src/webapp/WEB-INF/classes/config/origen/receiving/maintainASNDetailPage.xml index 5c43ab0..784d7ac 100644 --- a/src/webapp/WEB-INF/classes/config/origen/receiving/maintainASNDetailPage.xml +++ b/src/webapp/WEB-INF/classes/config/origen/receiving/maintainASNDetailPage.xml @@ -88,6 +88,7 @@ ad.strBill11, ad.lotInfo.propC2, ad.lotInfo.propC9, + ad.strBill2, ad.expectedQuantity, ad.ftl_qty, ad.receivedQuantity, @@ -162,6 +163,8 @@ horizonAlign="center" /> + - - - - - + + + diff --git a/src/webapp/WEB-INF/classes/dataSourceContext.xml b/src/webapp/WEB-INF/classes/dataSourceContext.xml index fa7344c..8330dcf 100644 --- a/src/webapp/WEB-INF/classes/dataSourceContext.xml +++ b/src/webapp/WEB-INF/classes/dataSourceContext.xml @@ -30,9 +30,9 @@ jdbc:sqlserver://47.103.100.52:1433;DatabaseName=zwlgtest - + WMSDB - wmsdb + diff --git a/src/webapp/WEB-INF/classes/hibernate.properties b/src/webapp/WEB-INF/classes/hibernate.properties index c391706..232c417 100644 --- a/src/webapp/WEB-INF/classes/hibernate.properties +++ b/src/webapp/WEB-INF/classes/hibernate.properties @@ -22,7 +22,7 @@ hibernate.dialect=com.dev.swms.server.utils.MSSQLDialect #hibernate.dialect=org.hibernate.dialect.OracleDialect #hibernate.dialect=org.hibernate.dialect.Oracle9Dialect -hibernate.show_sql=true +hibernate.show_sql=false hibernate.format_sql=false hibernate.hbm2ddl.auto=none ldxt.bz=0 diff --git a/src/webapp/WEB-INF/web.xml b/src/webapp/WEB-INF/web.xml index 32f9411..a54d47c 100644 --- a/src/webapp/WEB-INF/web.xml +++ b/src/webapp/WEB-INF/web.xml @@ -419,6 +419,11 @@ libraryTaskServlet com.dev.swms.server.web.servlet.LibraryTaskServlet + + imageQueryServlet + com.dev.swms.server.web.servlet.ImageQueryServlet + 1 + asnImageServlet *.asnImageServlet @@ -492,8 +497,10 @@ loginService *.login - - + + imageQueryServlet + /iqs + warehouseService diff --git a/src/webapp/imageView.jsp b/src/webapp/imageView.jsp new file mode 100644 index 0000000..5b279ce --- /dev/null +++ b/src/webapp/imageView.jsp @@ -0,0 +1,127 @@ +<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" isELIgnored="false"%> +<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> + + + + +中微 + + + + + +<% + // 获取请求的上下文 + String context = request.getContextPath(); +%> + + + + +
+ +
+ +
+ + + + + + + +<%-- --%> +<%-- --%> + +<%-- --%> + + + +<%-- --%> + +<%-- --%> + + + + + + + +
${elt.id } ${elt.imageType}${elt.fileUrl}${elt.fileUrl}
+总共:${recordTotal}条记录 +首页 +上一页 +下一页 +尾页 + +
+ + + + \ No newline at end of file