Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/assestmanagement/DisposableGoodsBatch.java =================================================================== diff -u -r14944 -r15655 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/assestmanagement/DisposableGoodsBatch.java (.../DisposableGoodsBatch.java) (revision 14944) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/assestmanagement/DisposableGoodsBatch.java (.../DisposableGoodsBatch.java) (revision 15655) @@ -2,11 +2,13 @@ import java.util.Comparator; import java.util.Date; + import javax.persistence.CascadeType; import javax.persistence.Entity; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; import javax.persistence.Transient; + import com.forgon.Constants; import com.forgon.directory.model.BarcodeDevice; @@ -44,6 +46,15 @@ */ private Long batchIdFromHisSync; + /** + * 是否已经打印 + */ + private String hasPrinted = Constants.STR_NO; + /** + * 打印时间 + */ + private Date printTime = null; + public static final String EXP_DATE_FORMAT = "yyyy-MM-dd HH:mm:ss"; public static final String[] filterProperties = { "identifications","goodsBatchs","ColumnNameAndPoPropertyNameMap"}; @@ -96,6 +107,9 @@ @Transient // 用于页面显示 public String getExpDateStr() { + if(expDate == null){ + return ""; + } return Constants.FASTDATEFORMAT_YYYYMMDD.format(expDate); } @@ -139,6 +153,22 @@ this.batchIdFromHisSync = batchIdFromHisSync; } + public String getHasPrinted() { + return hasPrinted; + } + + public Date getPrintTime() { + return printTime; + } + + public void setHasPrinted(String hasPrinted) { + this.hasPrinted = hasPrinted; + } + + public void setPrintTime(Date printTime) { + this.printTime = printTime; + } + // 调整库存,只是调整该批次和一次性物品,不整个重新计算 public void adjustAmount(long amountChange){ long amount = this.storage + amountChange; Index: ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/action/GodownEntryAction.java =================================================================== diff -u -r15603 -r15655 --- ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/action/GodownEntryAction.java (.../GodownEntryAction.java) (revision 15603) +++ ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/action/GodownEntryAction.java (.../GodownEntryAction.java) (revision 15655) @@ -45,9 +45,11 @@ import com.forgon.disinfectsystem.entity.tousseitem.TousseItem; import com.forgon.tools.MapTools; import com.forgon.tools.StrutsParamUtils; +import com.forgon.tools.StrutsResponseUtils; import com.forgon.tools.db.DatabaseUtil; import com.forgon.tools.json.JSONUtil; import com.forgon.tools.json.JsonPropertyFilter; +import com.forgon.tools.util.StrutsUtils; import com.opensymphony.xwork2.ModelDriven; @ParentPackage(value = "default") @@ -432,6 +434,7 @@ boolean saveResult = false; try { String id = StrutsParamUtils.getPraramValue("id", ""); + String print = StrutsParamUtils.getPraramValue("print", ""); GodownEntry entry = godownEntry; @@ -446,6 +449,7 @@ entry.setSubType(GodownEntry.SUBTYPE_MANUAL_IN); entry.setOrgUnitCode(AcegiHelper.getCurrentOrgUnitCode()); entry.setOrgUnitName(AcegiHelper.getCurrentOrgUnitName()); + returnMsg.put(print, print); godownEntryManager.saveGodownEntry_TRANS_REQUIRED(entry, returnMsg); } saveResult = true; @@ -523,87 +527,9 @@ public void printSomeGodownEntryItem() { String items = StrutsParamUtils.getPraramValue("items", ""); JSONObject jsonObj = new JSONObject(); - JSONArray jsonArray = new JSONArray(); - jsonObj.put("success", true); - try { - if (StringUtils.isBlank(items)) { - throw new RuntimeException("参数非法,items不能为空!"); - } - JSONArray itemsObj = JSONArray.fromObject(items); - for(int i=0;i expensiveDisposablegoodsList = diposableGoodsManager.getExpensivediposablegoodsByGodownEntryItemId(godownEntryItem.getId()); - if(!CollectionUtils.isEmpty(expensiveDisposablegoodsList)){ - for (ExpensiveDisposablegoods expensiveDisposablegoods : expensiveDisposablegoodsList) { - JSONObject printItemObj = new JSONObject(); - printItemObj.put("fullName", godownEntryItem.getDiposableGoods().getName()); - printItemObj.put("newBatch", godownEntryItem.getNewBatch()); - printItemObj.put("barcode", expensiveDisposablegoods.getBarcode()); - printItemObj.put("expDate", expDateStr); - printItemObj.put("supplierName", supplierName); - printItemObj.put("batchNumber", batchNumber); - printItemObj.put("specification", specification); - printItemObj.put("type", "高值耗材"); - jsonArray.add(printItemObj); - } - }else{ - JSONObject printItemObj = new JSONObject(); - printItemObj.put("fullName", godownEntryItem.getDiposableGoods().getName()); - printItemObj.put("newBatch", godownEntryItem.getNewBatch()); - printItemObj.put("barcode", barcode); - printItemObj.put("expDate", expDateStr); - printItemObj.put("supplierName", supplierName); - printItemObj.put("batchNumber", batchNumber); - printItemObj.put("specification", specification); - printItemObj.put("type", "批次"); - jsonArray.add(printItemObj); - } - } - } catch (Exception e) { - e.printStackTrace(); - jsonObj.put("errorMessage", e.getMessage()); - } - jsonObj.put("items", jsonArray); - HttpServletResponse response = StrutsParamUtils.getResponse(); - response.setCharacterEncoding("UTF-8"); - - try { - PrintWriter out = response.getWriter(); - out.print(jsonObj.toString()); - } catch (Exception e) { - e.printStackTrace(); - } - + godownEntryManager.printSomeGodownEntryItem(items, jsonObj); + StrutsResponseUtils.output(jsonObj); } public String loadGodownEntry() { Index: ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/GodownEntryManagerImpl.java =================================================================== diff -u -r15647 -r15655 --- ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/GodownEntryManagerImpl.java (.../GodownEntryManagerImpl.java) (revision 15647) +++ ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/GodownEntryManagerImpl.java (.../GodownEntryManagerImpl.java) (revision 15655) @@ -1,5 +1,6 @@ package com.forgon.disinfectsystem.diposablegoods.service; +import java.io.PrintWriter; import java.text.ParseException; import java.util.ArrayList; import java.util.Collection; @@ -12,6 +13,8 @@ import java.util.Map; import java.util.Set; +import javax.servlet.http.HttpServletResponse; + import net.sf.json.JSONArray; import net.sf.json.JSONObject; @@ -53,6 +56,7 @@ import com.forgon.disinfectsystem.vo.GodownEntryItemPrintVO; import com.forgon.serialnumber.model.SerialNum; import com.forgon.serialnumber.service.SerialNumManager; +import com.forgon.tools.StrutsParamUtils; import com.forgon.tools.db.DatabaseUtil; import com.forgon.tools.hibernate.ObjectDao; import com.forgon.tools.json.JSONUtil; @@ -404,7 +408,7 @@ saveGodownEntry_internal(godownEntry, warehouseID, warehouseName,idToDisposableGoodsMap, disposableGoodsIDToDisposableGoodsStockMap, idToDisposableGoodsStockMap, idToDisposableGoodsBatchMap, idToDisposableGoodsBatchStockMap, idToIdentificationMap); // 设置GodownEntryItem详细列表 if(godownEntry.manualIn()){ - setReturnDetails(godownEntry, idToDisposableGoodsBatchStockMap,result); + setReturnDetails(godownEntry,idToDisposableGoodsBatchMap, idToDisposableGoodsBatchStockMap,result); } } } @@ -1228,7 +1232,7 @@ // 更新入库单对象 saveOrUpdate(curGodownEntry); // 设置GodownEntryItem详细列表 - setReturnDetails(curGodownEntry, idToDisposableGoodsBatchStockMap,result); + setReturnDetails(curGodownEntry,idToDisposableGoodsBatchMap, idToDisposableGoodsBatchStockMap,result); } /** * 同步入库单、出库单、调拨单的物品的仓库,使之与单的对应属性一致 @@ -1405,12 +1409,13 @@ } } // 设置GodownEntryItem详细列表 TODO 改为json格式 - private void setReturnDetails(GodownEntry entry,Map idToBatchStockMap,Map result){ + private void setReturnDetails(GodownEntry entry,Map idToDisposableGoodsBatchMap,Map idToBatchStockMap,Map result){ JSONArray jsonArray = new JSONArray(); List items = entry.getItemsList(); + Date date = new Date(); for (GodownEntryItem godownEntryItem : items) { String expDateStr = ""; - + Boolean newBatch = godownEntryItem.getNewBatch(); DisposableGoodsStock diposableGoods = godownEntryItem.getDiposableGoods(); Date expDate = godownEntryItem.getExpDate(); if(expDate != null){ @@ -1440,6 +1445,19 @@ if(batchStock != null){ barcode = batchStock.getBarcode(); } + // 更新打印状态 + if(newBatch != null && newBatch){ + Long disposableGoodsBatchId = godownEntryItem.getDisposableGoodsBatchID(); + if(disposableGoodsBatchId != null){ + DisposableGoodsBatch disposableGoodsBatch = diposableGoodsManager.getDisposableGoodsBatchById(disposableGoodsBatchId); + if(disposableGoodsBatch != null){ + disposableGoodsBatch.setHasPrinted(Constants.STR_YES); + disposableGoodsBatch.setPrintTime(date); + objectDao.update(disposableGoodsBatch); + } + } + + } List expensiveDisposablegoodsList = diposableGoodsManager.getExpensivediposablegoodsByGodownEntryItemId(godownEntryItem.getId()); if(!CollectionUtils.isEmpty(expensiveDisposablegoodsList)){ for (ExpensiveDisposablegoods expensiveDisposablegoods : expensiveDisposablegoodsList) { @@ -2573,4 +2591,81 @@ entry.setSubType(subType); } } + + public void printSomeGodownEntryItem(String items,JSONObject jsonObj){ + JSONArray jsonArray = new JSONArray(); + jsonObj.put("success", true); + + try { + if (StringUtils.isBlank(items)) { + throw new RuntimeException("参数非法,items不能为空!"); + } + Date date = new Date(); + JSONArray itemsObj = JSONArray.fromObject(items); + for(int i=0;i expensiveDisposablegoodsList = diposableGoodsManager.getExpensivediposablegoodsByGodownEntryItemId(godownEntryItem.getId()); + if(!CollectionUtils.isEmpty(expensiveDisposablegoodsList)){ + for (ExpensiveDisposablegoods expensiveDisposablegoods : expensiveDisposablegoodsList) { + JSONObject printItemObj = new JSONObject(); + printItemObj.put("fullName", godownEntryItem.getDiposableGoods().getName()); + printItemObj.put("newBatch", godownEntryItem.getNewBatch()); + printItemObj.put("barcode", expensiveDisposablegoods.getBarcode()); + printItemObj.put("expDate", expDateStr); + printItemObj.put("supplierName", supplierName); + printItemObj.put("batchNumber", batchNumber); + printItemObj.put("specification", specification); + printItemObj.put("type", "高值耗材"); + jsonArray.add(printItemObj); + } + }else{ + JSONObject printItemObj = new JSONObject(); + printItemObj.put("fullName", godownEntryItem.getDiposableGoods().getName()); + printItemObj.put("newBatch", godownEntryItem.getNewBatch()); + printItemObj.put("barcode", barcode); + printItemObj.put("expDate", expDateStr); + printItemObj.put("supplierName", supplierName); + printItemObj.put("batchNumber", batchNumber); + printItemObj.put("specification", specification); + printItemObj.put("type", "批次"); + jsonArray.add(printItemObj); + } + } + } catch (Exception e) { + e.printStackTrace(); + jsonObj.put("errorMessage", e.getMessage()); + } + jsonObj.put("items", jsonArray); + } } Index: ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/action/DiposableGoodsAction.java =================================================================== diff -u -r15032 -r15655 --- ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/action/DiposableGoodsAction.java (.../DiposableGoodsAction.java) (revision 15032) +++ ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/action/DiposableGoodsAction.java (.../DiposableGoodsAction.java) (revision 15655) @@ -323,11 +323,11 @@ String disposableGoodsID = StrutsParamUtils.getPraramValue("id", ""); if (StringUtils.isNotBlank(disposableGoodsID) && disposableGoodsID.equals("0") == false) {// 初始化加载的数据 try { - List disposableGoodsBatchStocks = diposableGoodsManager.getDisposableGoodsBatchesByDisposableGoodsID(Long.valueOf(disposableGoodsID)); - if(disposableGoodsBatchStocks == null){ - disposableGoodsBatchStocks = new ArrayList(); + List disposableGoodsBatches = diposableGoodsManager.getDisposableGoodsBatchesByDisposableGoodsID(Long.valueOf(disposableGoodsID)); + if(disposableGoodsBatches == null){ + disposableGoodsBatches = new ArrayList(); } - String jsonString = JSONUtil.toJSONString(disposableGoodsBatchStocks, true); + String jsonString = JSONUtil.toJSONString(disposableGoodsBatches, true); StrutsParamUtils.getResponse().setCharacterEncoding("UTF-8"); StrutsParamUtils.getResponse().getWriter() .println(jsonString); @@ -487,6 +487,65 @@ } } + public void printDisposableGoodsBatchByDisposableGoodsIds() { + String idStr = StrutsParamUtils.getPraramValue("diposableIds", ""); + StringBuffer sb = new StringBuffer(); + if (StringUtils.isNotBlank(idStr)) { + String sql = String.format(" where po.id in(%s)", idStr); + List disposableGoodsList = diposableGoodsManager.getDisposableGoodsBySql(sql); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + Date date = new Date(); + if(disposableGoodsList != null){ + for (DisposableGoods disposableGoods : disposableGoodsList) { + if(disposableGoods.expensiveDiposablegoods()){// 高值耗材的打印 +// continue; + } + + List disposableGoodsBatchList = diposableGoodsManager.getDisposableGoodsBatchesByDisposableGoodsID(disposableGoods.getId()); + if (disposableGoodsBatchList == null) { + continue; + } + for (DisposableGoodsBatch disposableGoodsBatch : disposableGoodsBatchList) { + if (sb.length() > 0) { + sb.append(";"); + } + String expDate = ""; + if (disposableGoodsBatch.getExpDate() != null) { + expDate = sdf.format(disposableGoodsBatch.getExpDate()); + } + // 更新打印状态 + disposableGoodsBatch.setHasPrinted(Constants.STR_YES); + disposableGoodsBatch.setPrintTime(date); + diposableGoodsManager.saveOrUpdate(disposableGoodsBatch); + String specification = ""; + if (disposableGoodsBatch.getDiposableGoods().getSpecification() != null) { + specification = disposableGoodsBatch.getDiposableGoods() + .getSpecification().trim(); + } + + sb.append(disposableGoodsBatch.getDiposableGoods().getName() + + "#&" + disposableGoodsBatch.getBarcode() + "#&" + + expDate + "#&" + disposableGoodsBatch.getSupplierName() + + "#&" + disposableGoodsBatch.getBatchNumber() + "#&" + + specification); + } + + + } + } + } + + HttpServletResponse response = StrutsParamUtils.getResponse(); + response.setCharacterEncoding("UTF-8"); + + try { + PrintWriter out = response.getWriter(); + out.print("{success:true,value:'" + sb.toString() + "'}"); + } catch (IOException e) { + e.printStackTrace(); + } + } + public void printExpensiveDisposableGoodsByDisposableGoodsIds() { String idStr = StrutsParamUtils.getPraramValue("diposableIds", ""); StringBuffer sb = new StringBuffer(); @@ -613,15 +672,24 @@ String items = StrutsParamUtils.getPraramValue("items", ""); StringBuffer buffer = new StringBuffer(); if (StringUtils.isNotBlank(items)) { - for (String item : items.split(";")) { - if (StringUtils.isNotBlank(item)) { - String goodsName = item.split(",")[0]; - String barcode = item.split(",")[1]; - String expDate = item.split(",")[2]; - String supplierName = item.split(",")[3]; - String batchNumber = item.split(",")[4]; - buffer.append(goodsName + "#&" + barcode + "#&" + expDate - + "#&" + supplierName + "#&" + batchNumber + ";"); + Date date = new Date(); + for (String id : items.split(",")) { + if (StringUtils.isNotBlank(id)) { + DisposableGoodsBatch disposableGoodsBatch = diposableGoodsManager.getDisposableGoodsBatchById(Long.valueOf(id)); + if(disposableGoodsBatch == null){ + continue; + } + DisposableGoods diposableGoods = disposableGoodsBatch.getDiposableGoods(); + if(diposableGoods == null){ + continue; + } + String expDate = disposableGoodsBatch.getExpDateStr(); + // 更新打印状态 + disposableGoodsBatch.setHasPrinted(Constants.STR_YES); + disposableGoodsBatch.setPrintTime(date); + diposableGoodsManager.saveOrUpdate(disposableGoodsBatch); + buffer.append(diposableGoods.getShowName() + "#&" + disposableGoodsBatch.getBarcode() + "#&" + expDate + + "#&" + disposableGoodsBatch.getSupplierName() + "#&" + disposableGoodsBatch.getBatchNumber() + ";"); } } String printValue = ""; Index: ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/GodownEntryManager.java =================================================================== diff -u -r15603 -r15655 --- ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/GodownEntryManager.java (.../GodownEntryManager.java) (revision 15603) +++ ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/GodownEntryManager.java (.../GodownEntryManager.java) (revision 15655) @@ -92,4 +92,6 @@ * @param orgUnitCoding 科室编码 */ public void setGodownEntryDefaultWareHouse(GodownEntry entry,String orgUnitCoding); + + public void printSomeGodownEntryItem(String items,JSONObject jsonObj); }