Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/foreigntousseapplication/ForeignTousseApplication.java =================================================================== diff -u -r12581 -r14018 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/foreigntousseapplication/ForeignTousseApplication.java (.../ForeignTousseApplication.java) (revision 12581) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/foreigntousseapplication/ForeignTousseApplication.java (.../ForeignTousseApplication.java) (revision 14018) @@ -23,6 +23,10 @@ @Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE) public class ForeignTousseApplication extends InvoicePlan implements AclFieldsObject { + + public static final String ACTION_TYPE_CONFIRM_RECEIVE = "确认接受"; + public static final String ACTION_TYPE_CONFIRM_RECYCLE = "确认回收"; + public static final String ACTION_TYPE_CONFIRM_RETURN = "确认归还"; private String clinicNumber;// 诊疗号 Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/supplier/action/SupplierAction.java =================================================================== diff -u -r12331 -r14018 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/supplier/action/SupplierAction.java (.../SupplierAction.java) (revision 12331) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/supplier/action/SupplierAction.java (.../SupplierAction.java) (revision 14018) @@ -11,6 +11,7 @@ import javax.servlet.http.HttpServletResponse; +import net.sf.json.JSONArray; import net.sf.json.JSONObject; import net.sf.json.JsonConfig; import net.sf.json.util.PropertyFilter; @@ -157,6 +158,30 @@ e.printStackTrace(); } } + + public void getCompanyList(){ + + String searchString = StrutsParamUtils.getPraramValue("searchString", ""); + //供应商类型 + String type = StrutsParamUtils.getPraramValue("type", ""); + List list = supplierManager.getSupplierList(type, searchString); + JSONArray array = new JSONArray(); + if(list != null){ + for (Supplier supplier : list) { + JSONObject obj = new JSONObject(); + obj.put("id", supplier.getId()); + obj.put("companyName", supplier.getCompanyName()); + array.add(obj); + } + } + HttpServletResponse response = StrutsParamUtils.getResponse(); + try { + response.setCharacterEncoding("utf-8"); + response.getWriter().print(array.toString()); + } catch (IOException e) { + e.printStackTrace(); + } + } /** * 获取外来器械供应室Json字符串 * @return Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/supplier/service/SupplierManagerImpl.java =================================================================== diff -u -r12331 -r14018 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/supplier/service/SupplierManagerImpl.java (.../SupplierManagerImpl.java) (revision 12331) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/supplier/service/SupplierManagerImpl.java (.../SupplierManagerImpl.java) (revision 14018) @@ -187,4 +187,13 @@ return JSONObject.fromObject(map); } + @Override + public List getSupplierList(String type, String searchString) { + String sql = createQuerySQL(searchString); + if(StringUtils.isNotBlank(type)){ + sql += " and po.rentTousse = '" + type + "'"; + } + return objectDao.findBySql(Supplier.class.getSimpleName(), sql); + } + } Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/foreigntousseapplication/service/ForeignTousseApplicationManager.java =================================================================== diff -u -r12331 -r14018 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/foreigntousseapplication/service/ForeignTousseApplicationManager.java (.../ForeignTousseApplicationManager.java) (revision 12331) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/foreigntousseapplication/service/ForeignTousseApplicationManager.java (.../ForeignTousseApplicationManager.java) (revision 14018) @@ -24,7 +24,9 @@ public TousseItem getForeignTousseItemById(String id); - public void saveOrUpdate(ForeignTousseApplication foreignTousseApplication,String foreignTousseTreeData); + public void saveOrUpdate(ForeignTousseApplication foreignTousseApplication, + String foreignTousseTreeData, String actionType, + String basketBarcode); public List findForeignTousseApplication(String tousseName,String supplierName); Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/foreigntousseapplication/service/ForeignTousseApplicationManagerImpl.java =================================================================== diff -u -r13914 -r14018 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/foreigntousseapplication/service/ForeignTousseApplicationManagerImpl.java (.../ForeignTousseApplicationManagerImpl.java) (revision 13914) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/foreigntousseapplication/service/ForeignTousseApplicationManagerImpl.java (.../ForeignTousseApplicationManagerImpl.java) (revision 14018) @@ -1,32 +1,46 @@ package com.forgon.disinfectsystem.foreigntousseapplication.service; +import java.text.ParseException; import java.util.ArrayList; +import java.util.Calendar; +import java.util.Date; import java.util.HashSet; import java.util.List; import java.util.Set; +import net.sf.json.JSONArray; import net.sf.json.JSONObject; import org.apache.commons.lang.StringUtils; import org.hibernate.Query; import org.hibernate.Session; +import com.forgon.Constants; import com.forgon.directory.model.OrgUnit; import com.forgon.directory.service.OrgUnitManager; -import com.forgon.disinfectsystem.basedatamanager.supplier.service.SupplierManager; +import com.forgon.disinfectsystem.basedata.becleanitem.service.BeCleanItemManager; +import com.forgon.disinfectsystem.basedatamanager.container.service.ContainerManager; import com.forgon.disinfectsystem.basedatamanager.supplyroomconfig.service.SupplyRoomConfigManager; import com.forgon.disinfectsystem.common.CssdUtils; +import com.forgon.disinfectsystem.entity.basedatamanager.container.Container; import com.forgon.disinfectsystem.entity.basedatamanager.materialinstance.MaterialInstance; -import com.forgon.disinfectsystem.entity.basedatamanager.supplier.Supplier; import com.forgon.disinfectsystem.entity.basedatamanager.supplyroomconfig.SupplyRoomConfig; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseDefinition; +import com.forgon.disinfectsystem.entity.becleanitem.ClassifiedItem; +import com.forgon.disinfectsystem.entity.becleanitem.ClassifyBasket; import com.forgon.disinfectsystem.entity.foreigntousseapplication.ForeignTousseApplication; +import com.forgon.disinfectsystem.entity.invoicemanager.InvoicePlan; +import com.forgon.disinfectsystem.entity.packing.PackingTask; import com.forgon.disinfectsystem.entity.tousseitem.TousseItem; +import com.forgon.disinfectsystem.packing.service.PackingManager; import com.forgon.disinfectsystem.tousse.materialinstance.service.MaterialInstanceManager; import com.forgon.disinfectsystem.tousse.toussedefinition.service.TousseDefinitionManager; import com.forgon.security.service.AclTools; +import com.forgon.serialnumber.model.SerialNum; +import com.forgon.serialnumber.service.SerialNumManager; import com.forgon.tools.GB2Alpha; import com.forgon.tools.GB2WB; +import com.forgon.tools.StrutsParamUtils; import com.forgon.tools.db.DatabaseUtil; import com.forgon.tools.hibernate.ObjectDao; @@ -40,16 +54,38 @@ private ObjectDao objectDao; - private SupplierManager supplierManager; - private OrgUnitManager orgUnitManager; private TousseDefinitionManager tousseDefinitionManager; private MaterialInstanceManager materialInstanceManager; private SupplyRoomConfigManager supplyRoomConfigManager; + + private SerialNumManager serialNumManager; + + private PackingManager packingManager; + + private BeCleanItemManager beCleanItemManager; + + private ContainerManager containerManager; + + public void setContainerManager(ContainerManager containerManager) { + this.containerManager = containerManager; + } + public void setPackingManager(PackingManager packingManager) { + this.packingManager = packingManager; + } + + public void setBeCleanItemManager(BeCleanItemManager beCleanItemManager) { + this.beCleanItemManager = beCleanItemManager; + } + + public void setSerialNumManager(SerialNumManager serialNumManager) { + this.serialNumManager = serialNumManager; + } + public void setSupplyRoomConfigManager( SupplyRoomConfigManager supplyRoomConfigManager) { this.supplyRoomConfigManager = supplyRoomConfigManager; @@ -69,10 +105,6 @@ this.orgUnitManager = orgUnitManager; } - public void setSupplierManager(SupplierManager supplierManager) { - this.supplierManager = supplierManager; - } - public void setObjectDao(ObjectDao objectDao) { this.objectDao = objectDao; } @@ -174,40 +206,140 @@ } @Override - public void saveOrUpdate(ForeignTousseApplication foreignTousseApplication, - String foreignTousseTreeData) { - try { - //这里装的是新的材料集合,无论是第一次保存还是第二次保存,该集合里始终装的是新修改的的材料 + public void saveOrUpdate(ForeignTousseApplication application, + String foreignTousseTreeData,String actionType,String basketBarcode) { + + SupplyRoomConfig systemParams = supplyRoomConfigManager + .getSystemParamsObj(); + if (application.getId() == null) { + application.setApplicationTime(Calendar.getInstance().getTime()); + application.setSerialNumber(serialNumManager + .getSerialNumberStr(SerialNum.TYPE_RECYCLINGAPPLICATION)); + application.setHandleDepart(systemParams + .getDptNameOfForeignTousse()); + application.setHandleDepartCoding(systemParams + .getDptCodeOfForeignTousse()); + application.setSequence(supplyRoomConfigManager + .getOrgUnitSequence(application.getDepartCoding())); + } + if(StringUtils.isBlank(foreignTousseTreeData)){ + throw new RuntimeException("外来器械申请单无物品申请!"); + } + + saveOrUpdate(application); + + JSONArray jsonArray = JSONArray.fromObject(foreignTousseTreeData); + + setForeignTousseDefinition(application,jsonArray, systemParams); + + saveOrUpdateForeignTousseApplication(application,jsonArray); + + if(ForeignTousseApplication.ACTION_TYPE_CONFIRM_RECEIVE.equals(actionType)){ - // 修改明细信息,仍然保留的外来器械包明细记录的ID集合 - List existForeignTousseItemIds = new ArrayList(); + application.setReceiveTime(new Date()); + application.setPackageStatus(ForeignTousseApplication.APPLICATION_STATUS_SIGNED); + application.setRecyclingStatus(InvoicePlan.RECYCLINGSTATUS_RECYCLED); + application.setOrderByFiled(InvoicePlan.DELIVER_DELIVERED); + Container container = getContaner(basketBarcode); + List tousseItems = application.getApplicationItems(); + for (TousseItem tousseItem : tousseItems) { + tousseItem.setRecyclingAmount(tousseItem.getAmount()); + // 待分类的 外来包 + TousseDefinition tousseDefinition = tousseDefinitionManager + .getForeignTousseDefinitionByTousseItem(tousseItem); + if(tousseDefinition == null){ + throw new RuntimeException(tousseItem.getTousseName() + ",定义已经不存在!"); + } + + //将器械包放入篮筐 + addTousseIntoBasket(application, tousseDefinition, + tousseItem.getAmount(), container); + + // 装配任务 + packingManager.createPackingTask(tousseDefinition, + tousseItem.getAmount(), application.getId(), + PackingTask.TASK_APPLICATION, basketBarcode, + container.getContainerName(), application.getDepart()); + } + }else if(ForeignTousseApplication.ACTION_TYPE_CONFIRM_RECYCLE.equals(actionType)){ + application.setRecylingTime(new Date()); + application.setPackageStatus(ForeignTousseApplication.APPLICATION_STATUS_RECYCLING); + application.setRecyclingStatus(InvoicePlan.RECYCLINGSTATUS_RECYCLED); + application.setOrderByFiled(InvoicePlan.DELIVER_DELIVERED); + Container container = getContaner(basketBarcode); + List tousseItems = application.getApplicationItems(); + for (TousseItem tousseItem : tousseItems) { + // 待分类的 外来包 + TousseDefinition tousseDefinition = tousseDefinitionManager + .getForeignTousseDefinitionByTousseItem(tousseItem); + if(tousseDefinition == null){ + throw new RuntimeException(tousseItem.getTousseName() + ",定义已经不存在!"); + } + addTousseIntoBasket(application, tousseDefinition, + tousseItem.getAmount(), container); + } - // 要申请的外来器械包信息,包括id,包名,供应商,数量 - // 截取器械包信息内容 - String foreignTousseItemStr = foreignTousseTreeData.substring(0, - foreignTousseTreeData.indexOf(",[")); + }else if(ForeignTousseApplication.ACTION_TYPE_CONFIRM_RETURN.equals(actionType)){ + application.setReturnTime(new Date()); + application.setPackageStatus(ForeignTousseApplication.APPLICATION_STATUS_RETRUN); + }else{ + application.setOperationTime(new Date()); + } + + } + + private Container getContaner(String basketBarcode) { + if(StringUtils.isBlank(basketBarcode)){ + throw new RuntimeException("请扫描篮筐条码!"); + } + Container container = containerManager + .getContainerByBarcode(basketBarcode); + if(container == null){ + throw new RuntimeException(basketBarcode + ",篮筐条码以不存在!"); + } + return container; + } + + + private void addTousseIntoBasket( + ForeignTousseApplication foreignTousseApplication, + TousseDefinition tousseDefinition,Integer amount, Container container) { + if (StringUtils.isNotBlank(container.getBarcode())) { + //根据篮筐条码查找没洗过的篮筐 + ClassifyBasket classifyBasket = beCleanItemManager + .getUnWashedBasketByBarcode(container.getBarcode()); + if (classifyBasket == null) { + classifyBasket = new ClassifyBasket(); + classifyBasket.setContainerBarcode(container.getBarcode()); + classifyBasket.setClassfiedItems(new HashSet()); + } + ClassifiedItem item = new ClassifiedItem(); + item.setAmount(amount); + item.setName(tousseDefinition.getName()); + item.setItemType(ClassifiedItem.TYPE_FOREIGN_TOUSSE); + item.setClassifyBasket(classifyBasket); + item.setOrgUnitName(foreignTousseApplication.getDepart()); + item.setTousseDefinition(tousseDefinition); + item.setTousseDefinitionID(tousseDefinition.getId()); + item.setInvoicePlanID(foreignTousseApplication.getId()); + classifyBasket.getClassfiedItems().add(item); + classifyBasket.getContainerBarcode(); + beCleanItemManager.saveOrUpdate(classifyBasket); + classifyBasket.setContainerName(container.getContainerName()); + //篮筐状态更改为清洗装载 + container.setStatus(Container.CONTAINER_STATUS_WASHLOADING); + containerManager.saveOrUpdate(container); - //这个呢,就是中括号里面的东西,就是申请的材料、数量、是否植入物等信息 - String foreignMateritalStr = foreignTousseTreeData - .substring(foreignTousseTreeData.indexOf("[") + 1, - foreignTousseTreeData.indexOf("]")); - - // 分割成器械包信息字符串数组 - String[] foreignTousseItemArr = foreignTousseItemStr.split(","); - String id = foreignTousseItemArr[0]; - SupplyRoomConfig config = supplyRoomConfigManager.getSystemParamsObj(); - - //为外来器械申请单设置外来器械包、权限。若是修改,则删除旧的外来器械包【TousseItem】 - saveOrUpdateForeignTousseApplication(foreignTousseApplication, - existForeignTousseItemIds,foreignTousseItemArr, id); - - // 处理外来器械包定义里的明细信息,即"[]"里的内容,这里的内容需要保存到外来器械包定义明细信息 - setForeignTousseDefinition(foreignTousseApplication, - foreignMateritalStr, foreignTousseItemArr, config); - } catch (Exception e) { - e.printStackTrace(); + String remark = foreignTousseApplication.getRemark(); + if(StringUtils.isBlank(remark)){ + remark = container.getBarcode(); + }else{ + remark += ";" + container.getBarcode(); + } + foreignTousseApplication.setRemark(remark); } } + /** * 为外来器械申请单设置外来器械包、权限。若是修改,则删除旧的外来器械包【TousseItem】 * @param foreignTousseApplication @@ -219,69 +351,43 @@ */ private void saveOrUpdateForeignTousseApplication( ForeignTousseApplication foreignTousseApplication, - List existForeignTousseItemIds, - String[] foreignTousseItemArr, String id) { - // 新的TousseItem + JSONArray jsonArray) { List foreignTousseItems = new ArrayList(); - - //这里保存修改后要删除的东西(第一次保存只有二个材料,第二次修改时删了其中一个,那么删掉的那个就放在这个集合里) - List deleteForeignTousseItems = new ArrayList(); SupplyRoomConfig cfg = supplyRoomConfigManager.getSystemParamsObj(); Double price = 0.0; if(cfg != null){ price = cfg.getForeignToussePrice(); } - if (StringUtils.isNotBlank(id)) { - TousseItem tousseItem = null; - //重要说明:之前只要前台传过来的itemid值为0时,我们就认为这是新添加的item, - //但是这样的话,如果前台添加了多条item的话,item的id肯定都为0, - //因为item里面有一个是否植入物的单选框,它要求item的id不能一样,所以就产生了矛盾。 - //为了解决这个问题,我们约定即使item的id值不为0,如果根据id查询出来的tousseitem为空, - //那我们仍然认为该item是新加的 - if ("0".equals(id)) { - tousseItem = new TousseItem(); - } else { - tousseItem = getForeignTousseItemById(id); - //如果根据id查询出来的tousseitem为空,那我们仍然认为该item是新加的 - if(tousseItem == null){ - tousseItem = new TousseItem(); + for(int i = 0;i < jsonArray.size();i++){ + JSONObject obj = jsonArray.optJSONObject(i); + if(obj != null){ + String tousseItemId = obj.optString("tousseItemId"); + TousseItem tousseItem = null; + if(DatabaseUtil.isPoIdValid(tousseItemId)){ + tousseItem = getForeignTousseItemById(tousseItemId); }else{ - existForeignTousseItemIds.add(tousseItem.getId()); + tousseItem = new TousseItem(); } - } - tousseItem.setTousseName(foreignTousseItemArr[1]); - tousseItem.setSupplierName(foreignTousseItemArr[2]); - tousseItem.setAmount(1); - tousseItem.setPrice(price); - tousseItem.setRowPrice(price); - tousseItem.setDiposable(TousseItem.DIPOSABLE_NO); - tousseItem.setTousseType(TousseDefinition.PACKAGE_TYPE_FOREIGN); - tousseItem.setInvoicePlan(foreignTousseApplication); - foreignTousseItems.add(tousseItem); - } - - //以下代码块是当修改外来器械包申请单时才会执行 - if (foreignTousseApplication != null - && DatabaseUtil.isPoIdValid(foreignTousseApplication.getId())) { - List oldForeignTousseItems = foreignTousseApplication - .getApplicationItems(); - for (TousseItem tousseItem : oldForeignTousseItems) { - if (!existForeignTousseItemIds.contains(tousseItem.getId())) { - deleteForeignTousseItems.add(tousseItem); + if(obj.optInt("amount") <= 0){ + throw new RuntimeException("外来器械数量错误!"); } + tousseItem.setTousseName(obj.optString("tousseName")); + tousseItem.setSupplierName(obj.optString("supplierName")); + tousseItem.setAmount(obj.optInt("amount")); + tousseItem.setPrice(price); + tousseItem.setRowPrice(price * tousseItem.getAmount()); + tousseItem.setDiposable(TousseItem.DIPOSABLE_NO); + tousseItem.setTousseType(TousseDefinition.PACKAGE_TYPE_FOREIGN); + tousseItem.setInvoicePlan(foreignTousseApplication); + tousseItem.setTousseDefinitionId(obj.optLong("tousseDefinitionId")); + tousseItem.setInvoicePlanID(foreignTousseApplication.getId()); + foreignTousseItems.add(tousseItem); + foreignTousseApplication.setTousseName(tousseItem.getTousseName()); } } //为外来器械申请单设置科室查看权限 setReaders(foreignTousseApplication); - foreignTousseApplication.setApplicationItems(foreignTousseItems); - saveOrUpdate(foreignTousseApplication); - - //这里就是删除旧的材料啦 - if (deleteForeignTousseItems != null - && deleteForeignTousseItems.size() > 0) { - objectDao.deleteAll(deleteForeignTousseItems); - } } /** @@ -318,57 +424,44 @@ foreignTousseApplication.setReaders(readers); } - /** - * 处理外来器械包定义里的明细信息,即"[]"里的内容,这里的内容需要保存到外来器械包定义明细信息 - * 设置申请的外来器械包材料信息 - * - * @param foreignTousseApplication 外来申请单 - * @param foreignTousseItemAndMateritalStr 整个外来申请单的包名和材料名的字符串,从前台传过来的 - * @param foreignTousseItemArr 要申请的外来器械包信息,包括id,包名,供应商,数量 - */ - public TousseDefinition setForeignTousseDefinition( + public void setForeignTousseDefinition( ForeignTousseApplication foreignTousseApplication, - String foreignMateritalStr, - String[] foreignTousseItemArr, SupplyRoomConfig supplyRoomConfig) { - String[] foreignMateritalArr = foreignMateritalStr.split(";"); - String supplierName = foreignTousseItemArr[2]; - String tousseName = foreignTousseItemArr[1]; - Long appid = foreignTousseApplication.getId(); - // 根据外来器械包名称,和申请单ID,以及供应商查找 - TousseDefinition tousseDefinition = tousseDefinitionManager - .getForeignTousseDefinitionByNameAPPIDAndSupplierName(tousseName,appid.toString(), - supplierName); - // 根据包名和材料集合,查找是否已经存在对应的包,如果有那么直接使用已有的包定义。 + JSONArray jsonArray, SupplyRoomConfig config) { - // 外来器械供应商 - Supplier supplier = supplierManager - .getSupplierByName(supplierName); - - // 记录申请的包 - double price = 0; - // 修改外来包价格 - try { - price = Double.parseDouble(foreignTousseItemArr[4]); - } catch (Exception e) { - } - // 已存在的外来器械包明细信息 - if (tousseDefinition != null) { - if (supplier != null) {// 供货商不一定存在,但是扔需要保存供货商名称 - tousseDefinition.setSupplierName(supplier.getCompanyName()); - } - List foreignMaterialDefinitions = new ArrayList(); - // 记录没有删除的材料id - List existforeignMaterialDefinitionIds = new ArrayList(); - for (String foreignMateritalDetailStr : foreignMateritalArr) { - if (foreignMateritalDetailStr.length() > 0) { - String[] foreignMateritalDetailArr = foreignMateritalDetailStr - .split(","); + for(int i = 0;i < jsonArray.size();i++){ + JSONObject obj = jsonArray.optJSONObject(i); + String tousseName = obj.optString("tousseName"); + String supplierName = obj.optString("supplierName"); + Double price = obj.optDouble("price"); + Long appid = foreignTousseApplication.getId(); + // 根据外来器械包名称,和申请单ID,以及供应商查找 + TousseDefinition tousseDefinition = tousseDefinitionManager + .getForeignTousseDefinitionByNameAPPIDAndSupplierName(tousseName,appid.toString(), + supplierName); + // 已存在的外来器械包明细信息 + if (tousseDefinition != null) { + tousseDefinition.setSupplierName(supplierName); + List foreignMaterialDefinitions = new ArrayList(); + // 记录没有删除的材料id + List existforeignMaterialDefinitionIds = new ArrayList(); + JSONArray materialsJsonArray = obj.optJSONArray("materials"); + for (int n = 0; n < materialsJsonArray.size(); n++) { + JSONObject materialJson = materialsJsonArray.optJSONObject(n); + String materialInstanceId = materialJson.optString("materialInstanceId"); + String materialName = materialJson.optString("materialName"); + Integer amount = materialJson.optInt("amount"); + if(amount == null || amount == 0){ + throw new RuntimeException("材料数量必须大于0!"); + } + String includeImplant = materialJson.optString("includeImplant"); + Integer usedAmountOfIncludeImplant = materialJson.optInt("usedAmountOfIncludeImplant"); + String minDismantleAmount = materialJson.optString("minDismantleAmount"); MaterialInstance materialInstance = null;// 包的材料 - if ("0".equals(foreignMateritalDetailArr[0])) { + if (StringUtils.isBlank(materialInstanceId)) { materialInstance = new MaterialInstance(); } else { materialInstance = materialInstanceManager - .getMaterialInstanceById(foreignMateritalDetailArr[0]); + .getMaterialInstanceById(materialInstanceId); //如果根据id没有找到材料,我们仍然认为是新增加的 if(materialInstance != null){ existforeignMaterialDefinitionIds.add(materialInstance @@ -378,108 +471,70 @@ } } materialInstance - .setMaterialName(foreignMateritalDetailArr[1]); - materialInstance.setCount(Integer - .parseInt(foreignMateritalDetailArr[2])); - materialInstance - .setIncludeImplant(foreignMateritalDetailArr[3]); - //设置植入物使用数量 - if(foreignMateritalDetailArr.length >=5){ - if(StringUtils.isNotBlank(foreignMateritalDetailArr[4]) && !foreignMateritalDetailArr[4].equals("undefined")){ - materialInstance - .setUsedAmountOfIncludeImplant(Integer.valueOf(foreignMateritalDetailArr[4])); - }else{ - materialInstance - .setUsedAmountOfIncludeImplant(0); - } - } - if(foreignMateritalDetailArr.length == 6){ - materialInstance.setMinDismantleAmount(foreignMateritalDetailArr[5]); - } + .setMaterialName(materialName); + materialInstance.setCount(amount); + materialInstance.setIncludeImplant(includeImplant); + materialInstance.setUsedAmountOfIncludeImplant(usedAmountOfIncludeImplant); + materialInstance.setMinDismantleAmount(minDismantleAmount); materialInstance.setTousse(tousseDefinition); foreignMaterialDefinitions.add(materialInstance); } - } - List deleteForeignMaterialDefinitions = new ArrayList(); - // 记录需要删的材料 - List oldForeignMaterialDefinitions = tousseDefinition - .getMaterialInstances(); - for (MaterialInstance oldForeignMaterialDefinition : oldForeignMaterialDefinitions) { - if (!existforeignMaterialDefinitionIds - .contains(oldForeignMaterialDefinition.getId())) { - deleteForeignMaterialDefinitions - .add(oldForeignMaterialDefinition); + List deleteForeignMaterialDefinitions = new ArrayList(); + // 记录需要删的材料 + List oldForeignMaterialDefinitions = tousseDefinition + .getMaterialInstances(); + for (MaterialInstance oldForeignMaterialDefinition : oldForeignMaterialDefinitions) { + if (!existforeignMaterialDefinitionIds + .contains(oldForeignMaterialDefinition.getId())) { + deleteForeignMaterialDefinitions + .add(oldForeignMaterialDefinition); + } } - } - tousseDefinition.setMaterialInstances(foreignMaterialDefinitions); - objectDao.deleteAll(deleteForeignMaterialDefinitions); - } else {// 新的外来器械包信息 - tousseDefinition = new TousseDefinition(); - tousseDefinition.setName(tousseName); - tousseDefinition.setInvoicePlanID(appid); - tousseDefinition.setForDisplay(false); - //TODO:工作量统计方式,需要增加全局变量设置默认值 - tousseDefinition - .setWorkLoadStatisticalMethod(TousseDefinition.WORKLOAD_STATISTICAL_METHOD_MATERIAL_AND_DIPOSABLES); - tousseDefinition.setSupplierName(supplierName); - tousseDefinition.setTousseType(TousseDefinition.PACKAGE_TYPE_FOREIGN); - - // 默认 装配组 - tousseDefinition.setTaskGroup(supplyRoomConfig.getDefalutTaskGroup()); - //默认处理科室代码 - tousseDefinition - .setHandlerDepartCode(supplyRoomConfig - .getDptCodeOfForeignTousse()); - //默认处理科室名称 - tousseDefinition - .setHandlerDepartName(supplyRoomConfig - .getDptNameOfForeignTousse()); - if (supplier != null) { - tousseDefinition.setSupplierName(supplier.getCompanyName()); - } - List foreignMaterialDefinitions = new ArrayList(); - for (String foreignMateritalDetailStr : foreignMateritalArr) { - if (foreignMateritalDetailStr.length() > 0) { - String[] miStrArray = foreignMateritalDetailStr - .split(","); + tousseDefinition.setMaterialInstances(foreignMaterialDefinitions); + objectDao.deleteAll(deleteForeignMaterialDefinitions); + } else {// 新的外来器械包信息 + tousseDefinition = new TousseDefinition(); + tousseDefinition.setName(tousseName); + tousseDefinition.setInvoicePlanID(appid); + tousseDefinition.setForDisplay(false); + tousseDefinition.setWorkLoadStatisticalMethod(TousseDefinition.WORKLOAD_STATISTICAL_METHOD_MATERIAL_AND_DIPOSABLES); + tousseDefinition.setSupplierName(supplierName); + tousseDefinition.setTousseType(TousseDefinition.PACKAGE_TYPE_FOREIGN); + + tousseDefinition.setTaskGroup(config.getDefalutTaskGroup()); + tousseDefinition.setHandlerDepartCode(config + .getDptCodeOfForeignTousse()); + tousseDefinition.setHandlerDepartName(config + .getDptNameOfForeignTousse()); + tousseDefinition.setSupplierName(supplierName); + List foreignMaterialDefinitions = new ArrayList(); + + JSONArray materialsJsonArray = obj.optJSONArray("materials"); + for (int n = 0; n < materialsJsonArray.size(); n++) { + JSONObject materialJson = materialsJsonArray.optJSONObject(n); + String materialName = materialJson.optString("materialName"); + Integer amount = materialJson.optInt("amount"); + String includeImplant = materialJson.optString("includeImplant"); + String minDismantleAmount = materialJson.optString("minDismantleAmount"); MaterialInstance mi = new MaterialInstance(); - mi.setMaterialName(miStrArray[1]); - mi.setCount(Integer.parseInt(miStrArray[2])); - String includeStr = miStrArray[3]; - if (StringUtils.isNotBlank(includeStr) - && includeStr.equals(MaterialInstance.INCLUDE_IMPLANT)) { - tousseDefinition.setIncludeImplant(TousseDefinition.INCLUDE_IMPLANT); - } - mi.setIncludeImplant(miStrArray[3]); - if(miStrArray.length == 6){ - mi.setMinDismantleAmount(miStrArray[5]); - } + mi.setMaterialName(materialName); + mi.setCount(amount); + tousseDefinition.setIncludeImplant(TousseDefinition.INCLUDE_IMPLANT); + mi.setIncludeImplant(includeImplant); + mi.setMinDismantleAmount(minDismantleAmount); mi.setTousse(tousseDefinition); foreignMaterialDefinitions.add(mi); } + tousseDefinition.setMaterialInstances(foreignMaterialDefinitions); } - tousseDefinition.setMaterialInstances(foreignMaterialDefinitions); + tousseDefinition.setPrice(price==0?config.getForeignToussePrice():price); + tousseDefinitionManager.saveOrUpdate(tousseDefinition); + + tousseDefinition.setAncestorID(tousseDefinition.getId()); + + obj.put("tousseDefinitionId", tousseDefinition.getId()); } - tousseDefinition.setPrice(price==0?supplyRoomConfig.getForeignToussePrice():price); - tousseDefinitionManager.saveOrUpdate(tousseDefinition); - tousseDefinition.setAncestorID(tousseDefinition.getId()); - // 修改申请单器械包名字 - List appItems = foreignTousseApplication - .getApplicationItems(); - if (appItems != null && appItems.size() > 0) { - appItems.get(0).setTousseName(tousseDefinition.getName()); - } - foreignTousseApplication.setTousseName(tousseDefinition.getName()); - objectDao.saveOrUpdate(foreignTousseApplication); - // 为tousseitem关联包定义id,以及申请单id - List applicationItems = foreignTousseApplication.getApplicationItems(); - for (TousseItem tousseItem : applicationItems) { - tousseItem.setTousseDefinitionId(tousseDefinition.getId()); - tousseItem.setInvoicePlanID(appid); - objectDao.saveOrUpdate(tousseItem); - } - return tousseDefinition; } @Override Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/foreigntousseapplication/action/ForeignTousseApplicationAction.java =================================================================== diff -u -r13853 -r14018 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/foreigntousseapplication/action/ForeignTousseApplicationAction.java (.../ForeignTousseApplicationAction.java) (revision 13853) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/foreigntousseapplication/action/ForeignTousseApplicationAction.java (.../ForeignTousseApplicationAction.java) (revision 14018) @@ -4,7 +4,6 @@ import java.io.PrintWriter; import java.text.ParseException; import java.text.SimpleDateFormat; -import java.util.Calendar; import java.util.Date; import java.util.HashMap; import java.util.HashSet; @@ -17,10 +16,10 @@ import org.apache.struts2.convention.annotation.Action; import org.apache.struts2.convention.annotation.Namespace; import org.apache.struts2.convention.annotation.ParentPackage; +import com.forgon.Constants; import com.forgon.directory.acegi.tools.AcegiHelper; import com.forgon.disinfectsystem.basedata.becleanitem.service.BeCleanItemManager; import com.forgon.disinfectsystem.basedatamanager.container.service.ContainerManager; -import com.forgon.disinfectsystem.basedatamanager.supplyroomconfig.service.SupplyRoomConfigManager; import com.forgon.disinfectsystem.entity.basedatamanager.container.Container; import com.forgon.disinfectsystem.entity.basedatamanager.foreigntoussedefinition.ForeignTousseDefinition; import com.forgon.disinfectsystem.entity.basedatamanager.materialinstance.MaterialInstance; @@ -36,12 +35,9 @@ import com.forgon.disinfectsystem.packing.service.PackingManager; import com.forgon.disinfectsystem.tousse.materialinstance.service.MaterialInstanceManager; import com.forgon.disinfectsystem.tousse.toussedefinition.service.TousseDefinitionManager; -import com.forgon.serialnumber.model.SerialNum; -import com.forgon.serialnumber.service.SerialNumManager; import com.forgon.systemsetting.model.HttpOption; import com.forgon.systemsetting.service.HttpOptionManager; import com.forgon.tools.StrutsParamUtils; -import com.forgon.tools.db.DatabaseUtil; import com.forgon.tools.json.JSONUtil; import com.opensymphony.xwork2.ModelDriven; import com.opensymphony.xwork2.Preparable; @@ -61,19 +57,14 @@ private ForeignTousseApplicationManager foreignTousseApplicationManager; - private BeCleanItemManager beCleanItemManager; private TousseDefinitionManager tousseDefinitionManager; private PackingManager packingManager; - private SerialNumManager serialNumManager; - private ContainerManager containerManager; - private SupplyRoomConfigManager supplyRoomConfigManager; - private HttpOptionManager httpOptionManager; private MaterialInstanceManager materialInstanceManager; @@ -91,10 +82,6 @@ this.containerManager = containerManager; } - public void setSerialNumManager(SerialNumManager serialNumManager) { - this.serialNumManager = serialNumManager; - } - public void setPackingManager(PackingManager packingManager) { this.packingManager = packingManager; } @@ -113,11 +100,6 @@ this.foreignTousseApplicationManager = foreignTousseApplicationManager; } - public void setSupplyRoomConfigManager( - SupplyRoomConfigManager supplyRoomConfigManager) { - this.supplyRoomConfigManager = supplyRoomConfigManager; - } - public String deleteForeignTousseApplication() { String ids = StrutsParamUtils.getPraramValue("ids", ""); if (StringUtils.isNotBlank(ids)) { @@ -173,57 +155,60 @@ for (TousseItem tousseItem : tousseItems) { String tousseName = tousseItem.getTousseName(); TousseDefinition td = tousseDefinitionManager.getForeignTousseDefinitionByTousseItem(tousseItem); - - JSONObject jsonobj = new JSONObject(); - jsonobj.put("id", tousseItem.getId()); - jsonobj.put("tousseName", tousseName); - jsonobj.put("supplierName", tousseItem.getSupplierName()); - jsonobj.put("amount", tousseItem.getAmount()); - jsonobj.put("includeImplant", ""); - jsonobj.put("price", td.getPrice() == null ? 0 : td.getPrice()); - jsonobj.put("type", "tousse"); - jsonobj.put("uiProvider", "col"); - jsonobj.put("cls", "master-task"); - jsonobj.put("iconCls", "task-folder"); - JSONArray children = new JSONArray(); - - List fmd = td.getMaterialInstances(); - if (fmd != null) { - for (int i = 0; i < fmd.size(); i++) { - MaterialInstance mi = fmd.get(i); - String usedAmountOfIncludeImplantStr = ""; - String implantAmountOfUseRecord = ""; - //如果是植入物 - if (mi.getIncludeImplant().equals("是")) { - usedAmountOfIncludeImplantStr = (mi - .getUsedAmountOfIncludeImplant() == null ? "0" - : "" + mi.getUsedAmountOfIncludeImplant()); - - implantAmountOfUseRecord = (mi - .getImplantAmountOfUseRecord() == null ? "0" - : ("" + mi.getImplantAmountOfUseRecord())); - - if("true".equals(confirmRecycleStr)){ - usedAmountOfIncludeImplantStr = implantAmountOfUseRecord; + if(td != null){ + JSONObject jsonobj = new JSONObject(); + jsonobj.put("id", tousseItem.getId()); + jsonobj.put("tousseName", tousseName); + jsonobj.put("tousseDefinitionId", td.getId()); + jsonobj.put("supplierName", tousseItem.getSupplierName()); + jsonobj.put("amount", tousseItem.getAmount()); + jsonobj.put("includeImplant", ""); + jsonobj.put("price", td.getPrice() == null ? 0 : td.getPrice()); + jsonobj.put("type", "tousse"); + jsonobj.put("uiProvider", "col"); + jsonobj.put("cls", "master-task"); + jsonobj.put("iconCls", "task-folder"); + jsonobj.put("expanded", true); + JSONArray children = new JSONArray(); + + List fmd = td.getMaterialInstances(); + if (fmd != null) { + for (int i = 0; i < fmd.size(); i++) { + MaterialInstance mi = fmd.get(i); + String usedAmountOfIncludeImplantStr = ""; + String implantAmountOfUseRecord = ""; + //如果是植入物 + if ("是".equals(mi.getIncludeImplant())) { + usedAmountOfIncludeImplantStr = (mi + .getUsedAmountOfIncludeImplant() == null ? "0" + : "" + mi.getUsedAmountOfIncludeImplant()); + + implantAmountOfUseRecord = (mi + .getImplantAmountOfUseRecord() == null ? "0" + : ("" + mi.getImplantAmountOfUseRecord())); + + if("true".equals(confirmRecycleStr)){ + usedAmountOfIncludeImplantStr = implantAmountOfUseRecord; + } } + JSONObject obj = new JSONObject(); + obj.put("id", mi.getId()); + obj.put("tousseName", mi.getMaterialName()); + obj.put("includeImplant", mi.getIncludeImplant()); + 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); + obj.put("iconCls", "task"); + children.add(obj); } - JSONObject obj = new JSONObject(); - obj.put("id", mi.getId()); - obj.put("tousseName", mi.getMaterialName()); - obj.put("includeImplant", mi.getIncludeImplant()); - 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); - obj.put("iconCls", "task"); - children.add(obj); } + jsonobj.put("children", children); + jsonArray.add(jsonobj); } - jsonobj.put("children", children); - jsonArray.add(jsonobj); } } responsePrint(jsonArray.toString()); @@ -266,338 +251,33 @@ responsePrint("{success:" + success + ",msg:\"" + (success ? "保存成功" : "保存失败!") + "\"}"); } - /** - * 外来器械包申请单保存(第一步) - * - * @return - */ public String saveForeignTousseApplication() { HttpServletResponse response = StrutsParamUtils.getResponse(); response.setCharacterEncoding("UTF-8"); PrintWriter out; - // 设置时间格式 - // 外来器械材料明细 - String foreignTousseTreeData = StrutsParamUtils.getPraramValue( - "foreignTousseTreeData", ""); - + String foreignTousseInfo = StrutsParamUtils.getPraramValue("foreignTousseInfo", ""); + String actionType = StrutsParamUtils.getPraramValue("actionType", ""); + String barcodeStr = StrutsParamUtils.getPraramValue("barcodeStr", ""); + boolean success = true; + String msg = "保存成功!"; try { - //id为空,说明是新增 - if (foreignTousseApplication.getId() == null) { - foreignTousseApplication.setApplicationTime(Calendar - .getInstance().getTime()); - foreignTousseApplication - .setSerialNumber(serialNumManager - .getSerialNumberStr(SerialNum.TYPE_RECYCLINGAPPLICATION)); - foreignTousseApplication.setHandleDepart(supplyRoomConfigManager.getSystemParamsObj().getDptNameOfForeignTousse()); - foreignTousseApplication.setHandleDepartCoding(supplyRoomConfigManager.getSystemParamsObj().getDptCodeOfForeignTousse()); - // 设置回收单与发货单的科室排序顺序 - foreignTousseApplication.setSequence(supplyRoomConfigManager - .getOrgUnitSequence(foreignTousseApplication - .getDepartCoding())); - } else {//id不为空,说明是修改 - String applicationTimeStr = StrutsParamUtils.getPraramValue( - "applicationTime", - com.forgon.Constants.SIMPLEDATEFORMAT_YYYYMMDDHHMM.format(Calendar.getInstance().getTime())); - foreignTousseApplication.setApplicationTime(com.forgon.Constants.SIMPLEDATEFORMAT_YYYYMMDDHHMM - .parse(applicationTimeStr)); - } - // 手术时间 - String operationTimeStr = StrutsParamUtils.getPraramValue( - "operationTime", ""); - if (StringUtils.isNotBlank(operationTimeStr)) { - foreignTousseApplication - .setOperationTime(com.forgon.Constants.SIMPLEDATEFORMAT_YYYYMMDDHHMM - .parse(operationTimeStr)); - } + foreignTousseApplicationManager.saveOrUpdate(foreignTousseApplication, foreignTousseInfo,actionType,barcodeStr); - foreignTousseApplicationManager.saveOrUpdate( - foreignTousseApplication, foreignTousseTreeData); - - out = response.getWriter(); - out.print("{success:true,message:'保存成功'}"); - out.close(); - } catch (IOException e) { - e.printStackTrace(); - } catch (ParseException e) { - e.printStackTrace(); + } catch (Exception e) { + success = true; + msg = e.getMessage(); } - return null; - } - - /** - * 外来器械包确认接收(第二步) - * - * @return - */ - public String saveForeignTousseApplicationFromRecyclingRocord() { - HttpServletResponse response = StrutsParamUtils.getResponse(); - response.setCharacterEncoding("UTF-8"); - PrintWriter out; - - String foreignTousseTreeData = StrutsParamUtils.getPraramValue( - "foreignTousseTreeData", ""); - // 接受人、时间 - SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm"); - String applicationTimeStr = StrutsParamUtils.getPraramValue( - "applicationTime", dateFormat.format(new Date())); - String receiveTime = StrutsParamUtils.getPraramValue("receiveTime", - dateFormat.format(new Date())); - //从前台传过来的篮筐条码 - String barcodeStr = StrutsParamUtils.getPraramValue( - "barcodeStr", ""); - //从前台传过来的篮筐名称 - String claassifyBasketName = StrutsParamUtils.getPraramValue( - "claassifyBasketName", ""); try { - // 修改申请单信息 - if(foreignTousseApplication.getApplicationTime()==null){ - foreignTousseApplication.setApplicationTime(dateFormat - .parse(applicationTimeStr)); - } - foreignTousseApplication.setReceiveTime(dateFormat - .parse(receiveTime)); - //接受时,外来包状态就应该是“已接收”状态了 - foreignTousseApplication - .setPackageStatus(ForeignTousseApplication.APPLICATION_STATUS_SIGNED); - // 修改回收数量 - List tousseItems = foreignTousseApplication - .getApplicationItems(); - if(tousseItems != null){ - for (TousseItem tousseItem : tousseItems) { - tousseItem.setRecyclingAmount(tousseItem.getAmount()); - } - } - //设置申请单的回收状态为“已回收”,方便在回收界面根据此回收状态过滤 - foreignTousseApplication.setRecyclingStatus(InvoicePlan.RECYCLINGSTATUS_RECYCLED); - foreignTousseApplication.setOrderByFiled(InvoicePlan.DELIVER_DELIVERED); - foreignTousseApplicationManager.saveOrUpdate( - foreignTousseApplication, foreignTousseTreeData); - // 生成清洗分类、装配任务 - addTousseIntoBasketAndGeneratePaskingTask(foreignTousseApplication, barcodeStr,claassifyBasketName,true); out = response.getWriter(); - out.print("{success:true,message:'保存成功'}"); + out.print("{success:" + success + ",message:'" + msg + "'}"); out.close(); } catch (IOException e) { e.printStackTrace(); - } catch (ParseException e) { - e.printStackTrace(); } return null; } /** - * 根据外来器械申请单,将申请的物品放入篮筐,并生成外来器械的装配任务 - * @param foreignTousseApplication 外来申请单 - * 2014-8-13 - * @author liujie - */ - private void addTousseIntoBasketAndGeneratePaskingTask( - ForeignTousseApplication foreignTousseApplication, - String barcodeStr, String claassifyBasketName,boolean addPackingTask) { - // 要申请的东西 - List tousseItems = foreignTousseApplication - .getApplicationItems(); - String barcode0 = barcodeStr.split(";")[0]; - String basketName0 = claassifyBasketName.split(";")[0]; - for (TousseItem tousseItem : tousseItems) { - // 待分类的 外来包 - String tousseName = tousseItem.getTousseName(); - String supplierName = tousseItem.getSupplierName(); - TousseDefinition tousseDefinition = null; - if (StringUtils.isNotBlank(tousseName) - && StringUtils.isNotBlank(supplierName)) { - // 根据器械包名和器械的供应商名查询外来器械包定义 - tousseDefinition = tousseDefinitionManager - .getForeignTousseDefinitionByTousseItem(tousseItem); - } - //将器械包放入篮筐 - addTousseIntoBasket(foreignTousseApplication, tousseDefinition, - barcodeStr, claassifyBasketName); - - // 装配任务 - if(addPackingTask){ - packingManager.createPackingTask(tousseDefinition, - tousseItem.getAmount(), - foreignTousseApplication.getId(), - PackingTask.TASK_RECYCLINGRECORD, barcode0, - basketName0,foreignTousseApplication.getDepart()); - } - } - } - - /** - * - * @param foreignTousseApplication 外来申请单 - * @param tousseDefinition 器械包实体 - * @param barcodeStr 篮筐条码 - * @param claassifyBasketName 篮筐名称 - * @serialData 2014-8-13 - * @author liujie - */ - private void addTousseIntoBasket( - ForeignTousseApplication foreignTousseApplication, - TousseDefinition tousseDefinition, String barcodeStr, - String claassifyBasketName) { - if (StringUtils.isNotBlank(barcodeStr)) { - //根据篮筐条码查找没洗过的篮筐 - ClassifyBasket classifyBasket = beCleanItemManager - .getUnWashedBasketByBarcode(barcodeStr); - if (classifyBasket == null) { - classifyBasket = new ClassifyBasket(); - classifyBasket.setContainerName(claassifyBasketName); - classifyBasket.setContainerBarcode(barcodeStr); - classifyBasket - .setClassfiedItems(new HashSet()); - } - ClassifiedItem item = new ClassifiedItem(); - item.setAmount(1); - item.setName(tousseDefinition.getName()); - item.setItemType(ClassifiedItem.TYPE_FOREIGN_TOUSSE); - item.setClassifyBasket(classifyBasket); - item.setOrgUnitName(foreignTousseApplication.getDepart()); - item.setTousseDefinition(tousseDefinition); - item.setTousseDefinitionID(tousseDefinition.getId()); - item.setInvoicePlanID(foreignTousseApplication.getId()); -// item.setRecyclingRecordId(foreignTousseApplication.getId()); - classifyBasket.getClassfiedItems().add(item); - classifyBasket.getContainerBarcode(); - beCleanItemManager.saveOrUpdate(classifyBasket); - //修改篮筐状态 - String[] containerBarcodeArray = barcodeStr.split(";"); - //对于重置的篮筐classifyBaske可能不是new出来的,所以也需要重新设置状态 - for (String containerBarcode : containerBarcodeArray) { - Container container = containerManager - .getContainerByBarcode(containerBarcode); - //篮筐状态更改为清洗装载 - container - .setStatus(Container.CONTAINER_STATUS_WASHLOADING); - containerManager.saveOrUpdate(container); - } - - String remark = foreignTousseApplication.getRemark(); - if(StringUtils.isBlank(remark)){ - remark = barcodeStr; - }else{ - remark += ";" + barcodeStr; - } - foreignTousseApplication.setRemark(remark); - } - } - - /** - * 外来器械包使用后回收(第三步)(俗称二次回收~~~~) - * - * @return - */ - public String saveForeignTousseApplicationFromRecycling() { - HttpServletResponse response = StrutsParamUtils.getResponse(); - response.setCharacterEncoding("UTF-8"); - PrintWriter out; - // 接受人、时间 - SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm"); - String recyclingTime = StrutsParamUtils.getPraramValue("recyclingTime", - dateFormat.format(new Date())); - String receiveTime = StrutsParamUtils.getPraramValue( - "receiveTime", dateFormat.format(new Date())); - String applicationTimeStr = StrutsParamUtils.getPraramValue( - "applicationTime", dateFormat.format(new Date())); - String foreignTousseTreeData = StrutsParamUtils.getPraramValue( - "foreignTousseTreeData", ""); - - //从前台传过来的篮筐条码 - String barcodeStr = StrutsParamUtils.getPraramValue( - "barcodeStr", ""); - //从前台传过来的篮筐名称 - String claassifyBasketName = StrutsParamUtils.getPraramValue( - "claassifyBasketName", ""); - try { - // 生成清洗分类 - List tousseItems = foreignTousseApplication - .getApplicationItems(); - for (TousseItem tousseItem : tousseItems) { - // 待分类的 外来包 - String tousseName = tousseItem.getTousseName(); - String supplierName = tousseItem.getSupplierName(); - BeCleanItem beCleanItem = beCleanItemManager.getBeCleanItem( - tousseName, supplierName); - TousseDefinition tousseDefinition = null; - if (StringUtils.isNotBlank(tousseName) - && StringUtils.isNotBlank(supplierName)) { - tousseDefinition = tousseDefinitionManager - .getForeignTousseDefinitionByTousseItem(tousseItem); - } - if (beCleanItem == null) { - beCleanItem = new BeCleanItem(); - beCleanItem.setItemType(BeCleanItem.TYPE_FOREIGNTOUSSE); - beCleanItem.setTousseDefinition(tousseDefinition); - beCleanItem.setCount(tousseItem.getAmount()); - beCleanItem.setOrgUnitCoding(AcegiHelper.getLoginUser() - .getOrgUnitCodingFromSupplyRoomConfig()); - } else { - beCleanItem.setCount(beCleanItem.getCount() - + tousseItem.getAmount()); - } - - beCleanItemManager.saveOrUpdate(beCleanItem); - } - - // 修改申请单信息 - foreignTousseApplication.setRecylingTime(dateFormat.parse(recyclingTime)); - if(foreignTousseApplication.getReceiveTime()==null){ - foreignTousseApplication.setReceiveTime(dateFormat.parse(receiveTime)); - } - if(foreignTousseApplication.getApplicationTime()==null){ - foreignTousseApplication.setApplicationTime(dateFormat.parse(applicationTimeStr)); - } - foreignTousseApplication - .setPackageStatus(ForeignTousseApplication.APPLICATION_STATUS_RECYCLING); - //设置申请单的回收状态为待回收,方便在回收界面根据此回收状态过滤 - foreignTousseApplication.setRecyclingStatus(InvoicePlan.RECYCLINGSTATUS_RECYCLED); - foreignTousseApplication.setOrderByFiled(InvoicePlan.DELIVER_DELIVERED); - foreignTousseApplicationManager - .saveOrUpdate(foreignTousseApplication,foreignTousseTreeData); - addTousseIntoBasketAndGeneratePaskingTask(foreignTousseApplication, barcodeStr,claassifyBasketName,false); - out = response.getWriter(); - out.print("{success:true,message:'保存成功'}"); - out.close(); - } catch (IOException e) { - e.printStackTrace(); - } catch (ParseException e) { - e.printStackTrace(); - } - return null; - } - - /** - * 外来器械包归还(第四步) - * - * @return - */ - public String returnForeignTousseApplication() { - HttpServletResponse response = StrutsParamUtils.getResponse(); - response.setCharacterEncoding("UTF-8"); - PrintWriter out; - SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm"); - String returnTime = StrutsParamUtils.getPraramValue("returnTime", - dateFormat.format(new Date())); - try { - // 修改申请单信息 - foreignTousseApplication.setReturnTime(dateFormat.parse(returnTime)); - foreignTousseApplication.setPackageStatus(ForeignTousseApplication.APPLICATION_STATUS_RETRUN); - foreignTousseApplicationManager - .saveOrUpdate(foreignTousseApplication); - - out = response.getWriter(); - out.print("{success:true,message:'保存成功'}"); - out.close(); - } catch (Exception e) { - e.printStackTrace(); - } - - return null; - } - - /** * 加载申请单 * @return * 2014-8-13 Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/supplier/service/SupplierManager.java =================================================================== diff -u -r12331 -r14018 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/supplier/service/SupplierManager.java (.../SupplierManager.java) (revision 12331) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/supplier/service/SupplierManager.java (.../SupplierManager.java) (revision 14018) @@ -33,4 +33,6 @@ public JSONObject searchSupplier(String inputText,String type); public String getSupplierByType(String type, String searchString, String returnFields); + + public List getSupplierList(String type, String searchString); }