Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/tousseitem/TousseItem.java =================================================================== diff -u -r12581 -r12590 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/tousseitem/TousseItem.java (.../TousseItem.java) (revision 12581) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/tousseitem/TousseItem.java (.../TousseItem.java) (revision 12590) @@ -419,5 +419,13 @@ public void setIsApplyEntireTousse(String isApplyEntireTousse) { this.isApplyEntireTousse = isApplyEntireTousse; } + + public Long getInvoicePlanID() { + return invoicePlanID; + } + + public void setInvoicePlanID(Long invoicePlanID) { + this.invoicePlanID = invoicePlanID; + } } Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/action/TousseInstanceAction.java =================================================================== diff -u -r12553 -r12590 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/action/TousseInstanceAction.java (.../TousseInstanceAction.java) (revision 12553) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/action/TousseInstanceAction.java (.../TousseInstanceAction.java) (revision 12590) @@ -144,69 +144,19 @@ } - // 签收器械包 + /** + * 签收器械包 + */ public void signTousseInstanceByBarcode(){ String barcode = StrutsParamUtils.getPraramValue("barcode", null); - String msg = "没有找到对应的器械包"; - String objStr = ""; - boolean success = false; - JSONObject json = new JSONObject(); - - if (StringUtils.isNotBlank(barcode)) { - TousseInstance tousseInstance = tousseInstanceManager.getTousseInstanceByBarcode(barcode); - if(tousseInstance != null){ - if (TousseDefinition.PACKAGE_TYPE_DISINFECTION.equals(tousseInstance.getTousseDefinition().getTousseType())){ - msg = "不能签收消毒物品"; - }else{ - String currentUserOrgUnitCoding = AcegiHelper - .getLoginUser().getCurrentOrgUnitCode(); - String location = tousseInstance.getLocation(); - String locationForDisplay = tousseInstance - .getLocationForDisplay(); + String result = tousseInstanceManager.singTousseInstanceByBarcode(barcode); - SimpleDateFormat dateFormat = new SimpleDateFormat( - "yyyy-MM-dd HH:mm:ss"); - SimpleDateFormat dateFormat2 = new SimpleDateFormat( - "yyyy-MM-dd"); - if (StringUtils.isNotBlank(location) - && !currentUserOrgUnitCoding.equals(location)) { - msg = "该器械包属于" + locationForDisplay + ",不能被签收"; - } else { - String status = tousseInstance.getStatus(); - if (StringUtils.isNotBlank(tousseInstance - .getSignedUser())) { - msg = "该器械包已签收,不能重复签收"; - } else { - if (!TousseInstance.STATUS_SHIPPED.equals(status)) { - msg = "器械包状态为" + status + ",不能签收"; - } else { - String loginUserFullName = AcegiHelper - .getLoginUserFullName(); - tousseInstance.setSignedDate(new Date()); - tousseInstance.setSignedUser(loginUserFullName); - tousseInstance - .setStatus(TousseInstance.STATUS_SIGNED); - tousseInstanceManager - .saveOrUpdate(tousseInstance); - success = true; - - } - } - } - objStr = barcodeTableManager.tousseInstance2MyJsonObj( - dateFormat, dateFormat2, tousseInstance); - } - } - json.put("success", success); - json.put("msg", msg); - json.put("instance", objStr); - } HttpServletResponse response = StrutsParamUtils.getResponse(); response.setCharacterEncoding("UTF-8"); PrintWriter out; try { out = response.getWriter(); - out.print(json.toString()); + out.print(result); out.close(); } catch (IOException e) { e.printStackTrace(); @@ -230,74 +180,6 @@ } } - /** - * 使用记录 扫入条码 查找条码对应的器械包及其材料 - * - * @return - */ - public String getTousseInstance() { - JSONObject obj = new JSONObject(); - if (StringUtils.isNotBlank(barcode)) { - TousseInstance ti = tousseInstanceManager - .getTousseInstanceByBarcode(barcode); - if (ti != null) { - // 检测该器械包有没有被召回 - if (!tousseInstanceManager - .checkTousseInstanceHasRecallByTousseInstanceId(ti - .getId())) { - Date validUntil = ti.getValidUntil(); - String validUntilStr = ""; - if (validUntil != null){ - validUntilStr = new SimpleDateFormat("yyyy-MM-dd") - .format(validUntil); - } - TousseDefinition td = ti.getTousseDefinition(); - String tousseDefinitionName = ""; - String tousseType = ""; - JSONArray materialArray = new JSONArray(); - if (td != null) { - tousseType = td.getTousseType(); - tousseDefinitionName = td.getName(); - List materialInstances = td - .getMaterialInstances(); - if (materialInstances != null) { - for (MaterialInstance meterial : materialInstances) { - JSONObject jsonObj = new JSONObject(); - jsonObj.put("materialName", meterial.getMaterialName()); - jsonObj.put("count", meterial.getCount()); - materialArray.add(jsonObj); - } - } - } - obj.put("id", ti.getId()); - obj.put("barcode", ti.getBarcode()); - obj.put("tousseDefinitionName", tousseDefinitionName); - obj.put("showTousseName", ti.getShowTousseName()); - obj.put("packageType", ti.getPackageType()); - obj.put("validUntil", validUntilStr); - obj.put("status", ti.getStatus()); - obj.put("locationForDisplay", ti.getLocationForDisplay()); - obj.put("materials", materialArray); - obj.put("foreignTousseApp_id", ti.getForeignTousseApp_id()); - obj.put("tousseType", tousseType); - } else { - obj.put("msg", "该器械包不能被使用,已被召回!"); - } - } - } - HttpServletResponse response = StrutsParamUtils.getResponse(); - response.setCharacterEncoding("UTF-8"); - PrintWriter out; - try { - out = response.getWriter(); - out.print(obj.toString()); - out.close(); - } catch (IOException e) { - e.printStackTrace(); - } - return null; - } - public void loadTousseInstance() { StrutsParamUtils.getResponse().setCharacterEncoding("UTF-8"); Map map = new HashMap(); @@ -1046,58 +928,12 @@ @SuppressWarnings({ "static-access"}) public void loadTodaySignedTousse(){ - Date today = new Date(); - - int tousseAmount = 0; - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); - String todayStart = sdf.format(today)+" 00:00:00"; - String todayEnd = sdf.format(today)+" 23:59:59"; String departCode = acegiHelper.getLoginUser().getCurrentOrgUnitCode(); String departName = acegiHelper.getLoginUser().getCurrentOrgUnitName(); - String hql = "select tousseName,count(*) from TousseInstance where signedDate between " - + dateQueryAdapter.dateAdapter(todayStart) - + " and " - + dateQueryAdapter.dateAdapter(todayEnd) - + " and location = '" - + departCode + "' group by tousseName"; - ResultSet rs = objectDao.executeSql(hql); - - Map map = new HashMap(); - - if(rs != null){ - try { - while(rs.next()){ - String name = rs.getString(1); - int sum = rs.getInt(2); - map.put(name, sum); - tousseAmount += sum; - } - } catch (SQLException e) { - e.printStackTrace(); - }finally { - DatabaseUtil.closeResultSetAndStatement(rs); - } - } - JSONArray array = new JSONArray(); + String jsonStr = tousseInstanceManager.getTodaySignedTousseInstance(departCode, departName); - - for (Map.Entry entry : map.entrySet()) { - JSONObject obj = new JSONObject(); - obj.put("tousseName", entry.getKey()); - obj.put("amount", entry.getValue()); - array.add(obj); - } - - JSONObject obj = new JSONObject(); - - obj.put("departName", departName); - obj.put("tousseAmount", tousseAmount); - obj.put("data", array); - HttpServletResponse res = StrutsParamUtils.getResponse(); res.setCharacterEncoding("UTF-8"); - - String jsonStr = obj.toString(); try { res.getWriter().print(jsonStr); } catch (IOException e) { Index: ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/vo/ExpressRecyclingVo.java =================================================================== diff -u -r12331 -r12590 --- ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/vo/ExpressRecyclingVo.java (.../ExpressRecyclingVo.java) (revision 12331) +++ ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/vo/ExpressRecyclingVo.java (.../ExpressRecyclingVo.java) (revision 12590) @@ -24,6 +24,8 @@ private String isCleanedEntirely; + private String isApplyEntireTousse; + private Integer prepareRecycleAmount;//预回收数量 public String getDepart() { @@ -95,7 +97,13 @@ public void setPrepareRecycleAmount(Integer prepareRecycleAmount) { this.prepareRecycleAmount = prepareRecycleAmount; } + + public String getIsApplyEntireTousse() { + return isApplyEntireTousse; + } + + public void setIsApplyEntireTousse(String isApplyEntireTousse) { + this.isApplyEntireTousse = isApplyEntireTousse; + } - - } Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/foreigntousseapplication/service/ForeignTousseApplicationManagerImpl.java =================================================================== diff -u -r12332 -r12590 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/foreigntousseapplication/service/ForeignTousseApplicationManagerImpl.java (.../ForeignTousseApplicationManagerImpl.java) (revision 12332) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/foreigntousseapplication/service/ForeignTousseApplicationManagerImpl.java (.../ForeignTousseApplicationManagerImpl.java) (revision 12590) @@ -417,7 +417,7 @@ } else {// 新的外来器械包信息 tousseDefinition = new TousseDefinition(); tousseDefinition.setName(tousseName); - tousseDefinition.setInvoicePlanID(appid); + tousseDefinition.setRecyclingApplicationID(appid); tousseDefinition.setForDisplay(false); //TODO:工作量统计方式,需要增加全局变量设置默认值 tousseDefinition Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/action/CustomRecyclingApplicationAction.java =================================================================== diff -u -r12332 -r12590 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/action/CustomRecyclingApplicationAction.java (.../CustomRecyclingApplicationAction.java) (revision 12332) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/action/CustomRecyclingApplicationAction.java (.../CustomRecyclingApplicationAction.java) (revision 12590) @@ -139,7 +139,7 @@ } tousseDefinition.setName(tousseName); - tousseDefinition.setInvoicePlanID(appid); + tousseDefinition.setRecyclingApplicationID(appid); tousseDefinition.setSpelling(GB2Alpha.string2Alpha(name)); tousseDefinition.setWbCode(GB2WB.getWBCode(name)); tousseDefinition.setTousseType(TousseDefinition.PACKAGE_TYPE_CUSTOM); Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java =================================================================== diff -u -r12553 -r12590 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java (.../PackingManagerImpl.java) (revision 12553) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java (.../PackingManagerImpl.java) (revision 12590) @@ -3,6 +3,7 @@ import java.lang.reflect.InvocationTargetException; import java.sql.ResultSet; import java.sql.SQLException; +import java.sql.Statement; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; @@ -231,14 +232,11 @@ @Override public void delete(PackingTask task) { - String userName = AcegiHelper.getLoginUser().getUserFullName(); - String dateTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss") - .format(new Date()); - String description = userName + "在" + dateTime + "删除装配任务[id:" + String description = "删除装配任务[id:" + task.getId() + ",名称:" + task.getTousseDefinition().getName() + ",数量:" + task.getAmount() + "]"; objectDao.delete(task); - appLogManager.saveLog(dateTime, userName, Log.MODEL_PACKING, + appLogManager.saveLog(AcegiHelper.getLoginUser(), Log.MODEL_PACKING, Log.TYPE_DELETE, description); // 删除相关的 if (task != null) { @@ -1005,13 +1003,110 @@ return packingTask; } + /** + * 获取待补充的回收误差 + * @return + */ + private Map> loadWaitSupplementRecyclingErrors(){ + String sql = "select * from RecyclingError po where po.type = '" + RecyclingError.TYPE_PACKINGTASK + + "' and po.amount != po.unconfirmedAmount and po.amount != po.additionalAmount"; + ResultSet rs = objectDao.executeSql(sql); + Map> map = new HashMap>(); + try { + while(rs.next()){ + Long id = rs.getLong("id"); + Integer amount = rs.getInt("amount"); + Integer unconfirmedAmount = rs.getInt("unconfirmedAmount"); + String errorType = rs.getString("errorType"); + String materialName = rs.getString("materialName"); + Integer additionalAmount = rs.getInt("additionalAmount"); + String departCodeForId = rs.getString("departCodeForId"); + Long packingTaskId = rs.getLong("packingTask_ID"); + String lostIDCardInstanceBarcode = rs.getString("lostIDCardInstanceBarcode"); + RecyclingError vo = new RecyclingError(); + vo.setId(id); + vo.setAmount(amount - unconfirmedAmount); + vo.setErrorType(errorType); + vo.setUnconfirmedAmount(0); + vo.setMaterialName(materialName); + vo.setAdditionalAmount(additionalAmount); + vo.setDepartCodeForId(departCodeForId); + vo.setLostIDCardInstanceBarcode(lostIDCardInstanceBarcode); + List errors = map.get(packingTaskId); + if(errors == null){ + errors = new ArrayList(); + map.put(packingTaskId, errors); + } + errors.add(vo); + } + } catch (SQLException e) { + e.printStackTrace(); + } finally{ + try { + Statement s = rs.getStatement(); + rs.close(); + s.close(); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return map; + } + + + /** + * 获取待补充的报损器械 + * @return + */ + private Map> loadWaitSupplementRecyclingDamages(){ + String sql = "select packingTask_ID,id,materialName,amount,additionalAmount from RecyclingDamageItem po " + + "where po.packingTask_ID is not null and po.amount != po.additionalAmount"; + ResultSet rs = objectDao.executeSql(sql); + Map> map = new HashMap>(); + try { + while(rs.next()){ + Long packingTaskId = rs.getLong(1); + Long id = rs.getLong(2); + String materialName = rs.getString(3); + Integer amount = rs.getInt(4); + Integer additionalAmount = rs.getInt(5); + + RecyclingDamageItem vo = new RecyclingDamageItem(); + vo.setId(id); + vo.setAmount(amount - (additionalAmount == null ? 0 : additionalAmount)); + vo.setMaterialName(materialName); + List damages = map.get(packingTaskId); + if(damages == null){ + damages = new ArrayList(); + map.put(packingTaskId, damages); + } + damages.add(vo); + } + } catch (SQLException e) { + e.printStackTrace(); + } finally{ + try { + Statement s = rs.getStatement(); + rs.close(); + s.close(); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return map; + } + @Override public String getWaitPackingTaskJson(String taskGroup, String basketBarcode) { List taskVos = new ArrayList(); if (StringUtils.isNotBlank(taskGroup)) { List taskList = findPackingTask(taskGroup,basketBarcode); Map taskMap = new HashMap(); if (taskList != null) { + + Map> errorsMap = loadWaitSupplementRecyclingErrors(); + Map> damagesMap = loadWaitSupplementRecyclingDamages(); + for (Object[] result : taskList) { PackingTask task = (PackingTask)result[0]; @@ -1079,48 +1174,17 @@ itemVo.setSupplierName(td.getSupplierName()); itemVo.setTaskType(task.getTaskType()); - - // 以下的2个循环比较慢,最好去掉 - for (RecyclingError error : task.getErrors()) { - if (error.getAmount().intValue() == error - .getUnconfirmedAmount().intValue()) { - continue; - } - if (error.getAmount().intValue() == error - .getAdditionalAmount().intValue()) { - continue; - } - RecyclingError errorVo = new RecyclingError(); - errorVo.setId(error.getId()); - errorVo.setAmount(error.getAmount() - - error.getUnconfirmedAmount()); - errorVo.setErrorType(error.getErrorType()); - errorVo.setUnconfirmedAmount(0); - errorVo.setMaterialName(error.getMaterialName()); - errorVo.setAdditionalAmount(error.getAdditionalAmount()); - errorVo.setDepartCodeForId(error.getDepartCodeForId()); - errorVo.setLostIDCardInstanceBarcode(error - .getLostIDCardInstanceBarcode()); + List errorList = errorsMap.get(task.getId()); + if(errorList != null && errorList.size() > 0){ itemVo.setReplenishMaterils(true); vo.setReplenishMaterils(true); - itemVo.getErrors().add(errorVo); + itemVo.getErrors().addAll(errorList); } - for (RecyclingDamageItem damageItem : task - .getRecyclingDamages()) { - Integer addmount = damageItem.getAdditionalAmount(); - if (damageItem.getAmount().intValue() == addmount - .intValue()) { - continue; - } - RecyclingDamageItem newRamageItem = new RecyclingDamageItem(); - newRamageItem.setId(damageItem.getId()); - newRamageItem.setAmount(damageItem.getAmount() - - (addmount == null ? 0 : addmount)); - newRamageItem.setMaterialName(damageItem - .getMaterialName()); + List damages = damagesMap.get(task.getId()); + if(damages != null && damages.size() > 0){ itemVo.setReplenishMaterils(true); vo.setReplenishMaterils(true); - itemVo.getDamages().add(newRamageItem); + itemVo.getDamages().addAll(damages); } } } @@ -1393,12 +1457,13 @@ boolean isDisinfectionGoods = false; JSONArray disinfectItemArray = new JSONArray(); - // 审核的是消毒物品 + TousseDefinition td = tousseInstance .getTousseDefinition(); String tousseType = td.getTousseType(); + // 审核的是消毒物品 if (TousseDefinition.PACKAGE_TYPE_DISINFECTION .equals(tousseType)) { isDisinfectionGoods = true; @@ -1490,6 +1555,10 @@ } } + if (TousseDefinition.STR_NO.equals(td.getIsReview())){ + isReview = false; + } + String bigPackage = td.getIsBigPackage(); String fixedBarcode = ""; if (!isTraceable) { @@ -1518,6 +1587,7 @@ tousseInstance.setValidUntil(validUntil); tousseInstance.setWarningUntil(warningUntil); + } long foreignTousseApp_id = 0; @@ -1545,15 +1615,21 @@ } } - JSONObject obj = CssdUtils.getTousseObjForPrint(tousseName, + JSONObject tdJson = new JSONObject(); + //如果配置为需要打印材料时 + if(TousseDefinition.STR_YES.equals(td.getIsPrint()) && TousseDefinition.STR_YES.equals(td.getIsPrintMaterialForPacking())){ + tdJson = getTousseDefinitionJson(td); + } + + JSONObject obj = CssdUtils.getTousseObjForPrint(tousseName,tdJson, barcodeArray, virtualBasketSeqNumArray, tousseType, packageType, sterilingType, tousseInstance.getSterilizerName(), tousseInstance.getSterileFrequency(), isPrintUserName, tousseInstance.getOperator(), tousseInstance.getOperatorCode(), tousseInstance.getReviewer(), tousseInstance.getReviewerCode(), validUntilDateToPrint, - sterileDateToPrint,tousseInstance.getOperationTime(), + sterileDateToPrint,markTousse, tousseInstance.getOperationTime(), isDisinfectionGoods, - isDisinfectionGoodsPrintExpirationDate, isPrint, + isDisinfectionGoodsPrintExpirationDate, isPrint, isReview, isTraceable, bigPackage, fixedBarcode, disinfectItemArray, foreignTousseApp_id, supplierName, toolAndImplantAmount.optInt("toolAmount"), @@ -1796,6 +1872,13 @@ tousseInstanceManager.saveOrUpdate(tousseInstance); + JSONObject tdJson = new JSONObject(); + //如果配置为需要打印材料时 + if(TousseDefinition.STR_YES.equals(td.getIsPrint()) && TousseDefinition.STR_YES.equals(td.getIsPrintMaterialForPacking())){ + tdJson = getTousseDefinitionJson(td); + } + + tousse.put("tousseDefintion", tdJson); tousse.put("sterilizerName", sterilizer); tousse.put("sterileFrequency", frequency); tousse.put("barcode", tousseInstance.getBarcode()); @@ -1897,8 +1980,9 @@ boolean isDefined = expirationObj.optBoolean("isDefined"); if (isDefined){ - validUntilDateToPrint = expirationObj.optString("expirationDateTime"); - sterileDateToPrint = expirationObj.optString("sterileDateTime"); + validUntilDateToPrint = expirationObj.optString("expirationDate"); + sterileDateToPrint = expirationObj.optString("sterileDate"); + markTousse = expirationObj.optBoolean("markTousse"); validUntil = (Date)JSONObject.toBean(expirationObj.optJSONObject("validUntil"), Date.class); warningUntil = (Date)JSONObject.toBean(expirationObj.optJSONObject("warningUntil"), Date.class); @@ -1935,16 +2019,32 @@ boolean isPrint = true; boolean isPrintOrg = false; boolean isTraceable = true; + boolean isReview = true; boolean isDisinfectionGoods = false;// 是否为消毒物品 JSONArray materialsJsonArray = new JSONArray(); // 消毒物品明细 boolean isDisinfectionGoodsPrintExpirationDate = false;// 消毒物品是否打印失效期 + JSONObject tdJson = new JSONObject(); + JSONArray barcodeArray = new JSONArray(); JSONArray virtualSeqNumArray = new JSONArray();// 待打印的虚拟篮筐序列号集合 JSONArray departmentArray = new JSONArray(); ForeignTousseApplication foreignTousseApplication = null; + + //器械包定义的json转换属性过滤 + /*JsonConfig cfg = new JsonConfig(); + cfg.setJsonPropertyFilter(new PropertyFilter() { + @Override + public boolean apply(Object source, String name, Object value) { + if(name.equals("materialInstances")||name.equals("diposableGoodsItems")) { + return true; + } else { + return false; + } + } + });*/ Map packingTaskMap = new HashMap(); for (PackingTask packingTask : packingTasks) { @@ -1976,7 +2076,7 @@ // 外来器械包(未拆分成多个包) if (TousseDefinition.PACKAGE_TYPE_FOREIGN .equals(tousseType)) { - Long foreignTousseApplicationID = td.getInvoicePlanID(); + Long foreignTousseApplicationID = td.getRecyclingApplicationID(); foreignTousseApplication = (ForeignTousseApplication) objectDao.getByProperty( ForeignTousseApplication.class.getSimpleName(), "id",foreignTousseApplicationID); } @@ -2064,6 +2164,11 @@ isPrintOrg = true; } } + // 如果器械包定义设置不审核,则将对应的变量设置为false + if (TousseDefinition.STR_NO.equals(td.getIsReview())) { + isReview = false; + } + // logger.debug("Thread " + // Thread.currentThread().getName() + ",准备批量装配器械包:" // + tousseName); @@ -2136,7 +2241,9 @@ JSONObject obj = CssdUtils.getTousseObjForPrint( - tousse.optString("tousseName"), arr, arrSeqNum, + tousse.optString("tousseName"), + tousse.optJSONObject("tousseDefinition"), + arr, arrSeqNum, tousseType, tousse.optString("packingType"), sterilingType, @@ -2146,10 +2253,11 @@ operatorCode, reviewer, reviewerCode, tousse.optString("validDate"), tousse.optString("sterilizationDate"), + tousse.optBoolean("markTousse"), packingDate, isDisinfectionGoods, isDisinfectionGoodsPrintExpirationDate, - isPrint, isTraceable, + isPrint, isReview, isTraceable, tousse.optString("bigPackage"), fixedBarcode, tousse.optJSONArray("materialsJsonArray"), @@ -2206,17 +2314,18 @@ String department = String.valueOf(departmentArray.get(i)); JSONObject obj = CssdUtils.getTousseObjForPrint( - tousseName, subBarcodeArray, subVirtualSeqNumArray, tousseType, + tousseName, tdJson, subBarcodeArray, subVirtualSeqNumArray, tousseType, packageType, sterilingType, sterilizerName, sterileFrequency, isPrintUserName, operator, operatorCode, reviewer, reviewerCode, validUntilDateToPrint, sterileDateToPrint, + markTousse, packingDate, isDisinfectionGoods, isDisinfectionGoodsPrintExpirationDate, - isPrint, isTraceable, isBigPackage, + isPrint, isReview, isTraceable, isBigPackage, fixedBarcode, materialsJsonArray, foreignTousseApp_id,supplierName, toolAndImplantAmount.optInt("toolAmount"), Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManagerImpl.java =================================================================== diff -u -r12553 -r12590 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManagerImpl.java (.../RecyclingApplicationManagerImpl.java) (revision 12553) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManagerImpl.java (.../RecyclingApplicationManagerImpl.java) (revision 12590) @@ -626,7 +626,7 @@ } if (td == null) { td = new TousseDefinition(); - td.setInvoicePlanID(appid); + td.setRecyclingApplicationID(appid); } td.setHandlerDepartCode(btd.getHandlerDepartCode()); td.setHandlerDepartName(btd.getHandlerDepartName()); @@ -3428,12 +3428,12 @@ TousseDefinition td = tousseDefinitionManager.getTousseDefinitionByNameTypeAndAPPID(t_definition_name, TousseDefinition.PACKAGE_TYPE_DISINFECTION, appid.toString()); if (td == null) { td = new TousseDefinition(); - td.setInvoicePlanID(appid); + td.setRecyclingApplicationID(appid); } if(StringUtils.isNotBlank(t_tousseItem_id)){ td.setParentID(Long.valueOf(t_tousseItem_id));// 父亲id,页面选择的那个包定义 } - td.setAncestorID(ancestorTD.getId());// 祖先id,器械包定义管理那里看到的 + td.setParentID(ancestorTD.getId());// 祖先id,器械包定义管理那里看到的 td.setHandlerDepartCode(ancestorTD.getHandlerDepartCode()); td.setHandlerDepartName(ancestorTD.getHandlerDepartName()); td.setForDisplay(false); @@ -3456,9 +3456,9 @@ td.setTaskGroup(ancestorTD.getTaskGroup()); td.setMaterialUsebasketAmount(ancestorTD.getMaterialUsebasketAmount()); //是否打印科室属性设置 - td.setIsPrintOrg(parentTD.getIsPrintOrg()); + td.setIsPrintOrg(ancestorTD.getIsPrintOrg()); //是否打印材料属性设置 - td.setIsPrintMaterialForPacking(parentTD.getIsPrintMaterialForPacking()); + td.setIsPrintMaterialForPacking(ancestorTD.getIsPrintMaterialForPacking()); List diposableGoodsItems = new ArrayList(); for (DiposableGoodsInstance item : ancestorTD .getDiposableGoodsItems()) { Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/departmentapplicationtemplate/service/DepartmentAppTemplateManagerImpl.java =================================================================== diff -u -r12337 -r12590 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/departmentapplicationtemplate/service/DepartmentAppTemplateManagerImpl.java (.../DepartmentAppTemplateManagerImpl.java) (revision 12337) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/departmentapplicationtemplate/service/DepartmentAppTemplateManagerImpl.java (.../DepartmentAppTemplateManagerImpl.java) (revision 12590) @@ -254,7 +254,7 @@ String totalPriceStr = ""; Double price = 0d; - String isCleanedEntirely = "否"; + String isApplyEntireTousse = "否"; boolean isLeaf = true; @@ -280,7 +280,7 @@ tousseType = tdOfTousseItem.getTousseType(); - isCleanedEntirely = tdOfTousseItem.getIsCleanedEntirely(); + isApplyEntireTousse = tdOfTousseItem.getIsApplyEntireTousse(); if (tousseItem == null){ @@ -297,7 +297,7 @@ // 如果是新申请单,并且该消毒物品是整包清洗,则计算整包的单价,否则不需要 if (tousseItem == null){ - if ("是".equals(isCleanedEntirely)){ + if ("是".equals(isApplyEntireTousse)){ price = 0d; for (int i = 0; i < materialsJsonArray.size(); i++) { JSONObject obj = (JSONObject) materialsJsonArray.get(i); @@ -322,7 +322,7 @@ json.put("id", itemId); json.put("tousseDefinitionID", tdOfTousseItem.getId()); json.put("tousseType", tousseType); - json.put("isCleanedEntirely", isCleanedEntirely); + json.put("isApplyEntireTousse", isApplyEntireTousse); json.put("name", tousseName); json.put("unit", unit); json.put("count", amountStr); Index: ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/action/RecyclingRecordAction.java =================================================================== diff -u -r12560 -r12590 --- ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/action/RecyclingRecordAction.java (.../RecyclingRecordAction.java) (revision 12560) +++ ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/action/RecyclingRecordAction.java (.../RecyclingRecordAction.java) (revision 12590) @@ -14,14 +14,17 @@ import java.util.Iterator; import java.util.List; import java.util.Map; + import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; + import net.sf.json.JSONArray; import net.sf.json.JSONObject; import net.sf.json.JsonConfig; import net.sf.json.util.CycleDetectionStrategy; import net.sf.json.util.PropertyFilter; + import org.apache.commons.collections4.map.HashedMap; import org.apache.commons.collections4.map.MultiValueMap; import org.apache.commons.lang.StringUtils; @@ -31,6 +34,7 @@ import org.apache.struts2.convention.annotation.ParentPackage; import org.apache.struts2.convention.annotation.Result; import org.apache.struts2.convention.annotation.Results; + import com.forgon.Constants; import com.forgon.databaseadapter.service.DateQueryAdapter; import com.forgon.directory.acegi.tools.AcegiHelper; @@ -1088,9 +1092,11 @@ vo.setPrepareRecycleAmount(ti.getPrepareRecycleAmount()); if(td != null){ vo.setIsCleanedEntirely(td.getIsCleanedEntirely()); + vo.setIsApplyEntireTousse(td.getIsApplyEntireTousse()); vo.setTousseType(td.getTousseType()); }else{ vo.setIsCleanedEntirely("是"); + vo.setIsApplyEntireTousse("是"); } quickRecyclingList.add(vo); } Index: ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java =================================================================== diff -u -r12560 -r12590 --- ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java (.../RecyclingRecordManagerImpl.java) (revision 12560) +++ ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java (.../RecyclingRecordManagerImpl.java) (revision 12590) @@ -863,10 +863,7 @@ private void addLogInfo(List tousseJson, Long recordId) { if (tousseJson.size() > 0) { - String dateTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss") - .format(new Date()); - String username = AcegiHelper.getLoginUserFullName(); - appLogManager.saveLog(dateTime, username, + appLogManager.saveLog(AcegiHelper.getLoginUser(), Log.MODEL_RECYCLINGRECORD, "U", "id:" + recordId + ",data:" + tousseJson.toString()); } Index: ssts-operationmonitor/src/main/java/com/forgon/disinfectsystem/supplyroomcontrol/service/SupplyRoomControlManagerImpl.java =================================================================== diff -u -r12386 -r12590 --- ssts-operationmonitor/src/main/java/com/forgon/disinfectsystem/supplyroomcontrol/service/SupplyRoomControlManagerImpl.java (.../SupplyRoomControlManagerImpl.java) (revision 12386) +++ ssts-operationmonitor/src/main/java/com/forgon/disinfectsystem/supplyroomcontrol/service/SupplyRoomControlManagerImpl.java (.../SupplyRoomControlManagerImpl.java) (revision 12590) @@ -12,11 +12,13 @@ import java.util.List; import java.util.Map; import java.util.Map.Entry; + import org.apache.commons.lang.StringUtils; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.poifs.filesystem.POIFSFileSystem; + import com.forgon.databaseadapter.service.DateQueryAdapter; import com.forgon.directory.acegi.tools.AcegiHelper; import com.forgon.disinfectsystem.basedatamanager.supplyroomconfig.service.SupplyRoomConfigManager; Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/dwr/table/TousseInstanceTableManager.java =================================================================== diff -u -r12531 -r12590 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/dwr/table/TousseInstanceTableManager.java (.../TousseInstanceTableManager.java) (revision 12531) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/dwr/table/TousseInstanceTableManager.java (.../TousseInstanceTableManager.java) (revision 12590) @@ -10,7 +10,6 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.Set; import net.sf.json.JSONArray; import net.sf.json.JSONObject; @@ -35,8 +34,6 @@ import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseDefinition; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseInstance; import com.forgon.disinfectsystem.entity.idcardinstance.IDCardInstance; -import com.forgon.disinfectsystem.entity.packing.PackingRecord; -import com.forgon.disinfectsystem.entity.packing.ReviewedBasket; import com.forgon.disinfectsystem.entity.systemwarning.SystemWarningItemVO; import com.forgon.disinfectsystem.packing.service.PackingManager; import com.forgon.disinfectsystem.tousse.toussedefinition.service.TousseDefinitionManager; Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/toussedefinition/TousseInstance.java =================================================================== diff -u -r12581 -r12590 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/toussedefinition/TousseInstance.java (.../TousseInstance.java) (revision 12581) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/toussedefinition/TousseInstance.java (.../TousseInstance.java) (revision 12590) @@ -836,6 +836,10 @@ //降序 return ((TousseInstance)arg0).getId().compareTo(this.getId()); } + + public Long getInvoicePlanID() { + return invoicePlanID; + } public void setInvoicePlanID(Long invoicePlanID) { this.invoicePlanID = invoicePlanID; Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/foreigntousseapplication/action/ForeignTousseApplicationAction.java =================================================================== diff -u -r12332 -r12590 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/foreigntousseapplication/action/ForeignTousseApplicationAction.java (.../ForeignTousseApplicationAction.java) (revision 12332) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/foreigntousseapplication/action/ForeignTousseApplicationAction.java (.../ForeignTousseApplicationAction.java) (revision 12590) @@ -10,17 +10,13 @@ import java.util.HashSet; import java.util.List; import java.util.Map; - import javax.servlet.http.HttpServletResponse; - import net.sf.json.JSONArray; import net.sf.json.JSONObject; - import org.apache.commons.lang.StringUtils; import org.apache.struts2.convention.annotation.Action; import org.apache.struts2.convention.annotation.Namespace; import org.apache.struts2.convention.annotation.ParentPackage; - import com.forgon.directory.acegi.tools.AcegiHelper; import com.forgon.disinfectsystem.basedata.becleanitem.service.BeCleanItemManager; import com.forgon.disinfectsystem.basedatamanager.container.service.ContainerManager; @@ -217,6 +213,7 @@ obj.put("amount", mi.getCount()); obj.put("usedAmountOfIncludeImplant",usedAmountOfIncludeImplantStr); obj.put("implantAmountOfUseRecord",implantAmountOfUseRecord); + obj.put("minDismantleAmount",mi.getMinDismantleAmount()); obj.put("type", "material"); obj.put("uiProvider", "col"); obj.put("leaf", true);