Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/position/service/PositionManager.java =================================================================== diff -u -r15219 -r15396 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/position/service/PositionManager.java (.../PositionManager.java) (revision 15219) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/position/service/PositionManager.java (.../PositionManager.java) (revision 15396) @@ -2,19 +2,16 @@ import java.util.List; +import net.sf.json.JSONObject; + import com.forgon.disinfectsystem.entity.basedatamanager.position.Position; +import com.forgon.tools.hibernate.BasePoManager; /** * @author JC 2016.09.29 */ -public interface PositionManager { - - public void saveOrUpdate(Position position); - - public Position getPositionById(String id); - - public void deletePositionById(String id); +public interface PositionManager extends BasePoManager { /** * 根据名称,判断位置是否存在,忽略id存在的那条数据 */ @@ -30,4 +27,18 @@ */ public Position getPositionByBarcode(String barcode); + /** + * 获取位置的json形式 + * @param barcode 条码 + * @param isWashPosition 是否是清洗记录位置的一个标志,true表示是清洗记录位置,false表示是灭菌记录位置 + * @return + */ + public JSONObject getPositionJsonType(String barcode,Boolean isWashPosition); + /** + * 将位置转换为json格式 + * @param position + * @param isWashPosition + * @return + */ + public JSONObject getPositionJsonType(Position position,Boolean isWashPosition); } Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/position/Position.java =================================================================== diff -u -r15219 -r15396 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/position/Position.java (.../Position.java) (revision 15219) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/position/Position.java (.../Position.java) (revision 15396) @@ -57,4 +57,18 @@ public void setRemark(String remark) { this.remark = remark; } + /** + * 判断是不是清洗机位置 + * @return + */ + public boolean rinserPosition(){ + return "清洗机".equals(positionType); + } + /** + * 判断是不是灭菌炉位置 + * @return + */ + public boolean sterilizerPosition(){ + return "灭菌炉".equals(positionType); + } } Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/position/service/PositionManagerImpl.java =================================================================== diff -u -r15219 -r15396 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/position/service/PositionManagerImpl.java (.../PositionManagerImpl.java) (revision 15219) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/position/service/PositionManagerImpl.java (.../PositionManagerImpl.java) (revision 15396) @@ -2,35 +2,25 @@ import java.util.List; +import net.sf.json.JSONObject; + import org.apache.commons.lang.StringUtils; import com.forgon.disinfectsystem.entity.basedatamanager.position.Position; +import com.forgon.tools.hibernate.BasePoManagerImpl; import com.forgon.tools.hibernate.ObjectDao; +import com.forgon.tools.json.JSONUtil; /** * @author JC 2016.09.29 */ -public class PositionManagerImpl implements PositionManager { +public class PositionManagerImpl extends BasePoManagerImpl implements PositionManager { - private ObjectDao objectDao; - - public void setObjectDao(ObjectDao objectDao) { - this.objectDao = objectDao; + public PositionManagerImpl() { + super(Position.class); } - public void saveOrUpdate(Position position) { - objectDao.saveOrUpdate(position); - } - - public Position getPositionById(String id) { - return (Position) objectDao.getByProperty(Position.class - .getSimpleName(), "id", Long.valueOf(id)); - } - - public void deletePositionById(String id) { - objectDao.delete(getPositionById(id)); - } /** * 根据名称,判断位置是否存在,忽略id存在的那条数据 */ @@ -62,4 +52,37 @@ .getSimpleName(), "barcode", barcode); return ps; } + + @Override + public JSONObject getPositionJsonType(String barcode, Boolean isWashPosition) { + Position ps = null; + if(StringUtils.isBlank(barcode)){ + return JSONUtil.buildJsonObject(false, "条码不能为空"); + }else{ + ps = getPositionByBarcode(barcode); + return getPositionJsonType(ps,isWashPosition); + } + } + @Override + public JSONObject getPositionJsonType(Position position,Boolean isWashPosition){ + boolean success = false; + String message = null; + if(position == null){ + message = "找不到位置信息!"; + }else if(isWashPosition && !position.rinserPosition()){ + message = "请扫描清洗机的位置!"; + }else if(!isWashPosition && !position.sterilizerPosition()){ + message = "请扫描灭菌炉的位置!"; + }else{ + success = true; + message = "获取位置成功!"; + } + JSONObject json = JSONUtil.buildJsonObject(success, message); + if(success){ + json.put("name", position.getPositionName()); + json.put("barcode", position.getBarcode()); + json.put("type", "position"); + } + return json; + } } Index: ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/service/WashAndDisinfectRecordManagerImpl.java =================================================================== diff -u -r15324 -r15396 --- ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/service/WashAndDisinfectRecordManagerImpl.java (.../WashAndDisinfectRecordManagerImpl.java) (revision 15324) +++ ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/service/WashAndDisinfectRecordManagerImpl.java (.../WashAndDisinfectRecordManagerImpl.java) (revision 15396) @@ -13,23 +13,27 @@ import java.util.List; import java.util.Map; import java.util.Set; + import net.sf.json.JSONArray; import net.sf.json.JSONObject; import net.sf.json.util.JSONBuilder; import net.sf.json.util.JSONStringer; + import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.ListUtils; import org.apache.commons.collections4.SetUtils; import org.apache.commons.lang.StringUtils; import org.hibernate.Query; import org.hibernate.Session; + import com.forgon.Constants; import com.forgon.databaseadapter.service.DateQueryAdapter; import com.forgon.directory.acegi.tools.AcegiHelper; import com.forgon.directory.model.BarcodeDevice; import com.forgon.disinfectsystem.barcode.service.BarcodeManager; import com.forgon.disinfectsystem.basedata.becleanitem.service.BeCleanItemManager; import com.forgon.disinfectsystem.basedatamanager.container.service.ContainerManager; +import com.forgon.disinfectsystem.basedatamanager.position.service.PositionManager; import com.forgon.disinfectsystem.basedatamanager.reportoption.GoodsOptionManager; import com.forgon.disinfectsystem.basedatamanager.rinser.service.RinserManager; import com.forgon.disinfectsystem.basedatamanager.supplyroomconfig.service.SupplyRoomConfigManager; @@ -38,6 +42,7 @@ import com.forgon.disinfectsystem.entity.basedatamanager.container.Container; import com.forgon.disinfectsystem.entity.basedatamanager.materialdefinition.MaterialDefinition; import com.forgon.disinfectsystem.entity.basedatamanager.materialinstance.MaterialInstance; +import com.forgon.disinfectsystem.entity.basedatamanager.position.Position; import com.forgon.disinfectsystem.entity.basedatamanager.reportoption.GoodsOption; import com.forgon.disinfectsystem.entity.basedatamanager.rinser.Rinser; import com.forgon.disinfectsystem.entity.basedatamanager.supplyroomconfig.SupplyRoomConfig; @@ -86,6 +91,12 @@ private ContainerManager containerManager; + private PositionManager positionManager; + + public void setPositionManager(PositionManager positionManager) { + this.positionManager = positionManager; + } + public void setContainerManager(ContainerManager containerManager) { this.containerManager = containerManager; } @@ -939,6 +950,13 @@ userObj.addProperty("fullName", user.getFullName()); jsonObj.add("data", userObj); return jsonObj.toString(); + } else if(barcodeDevice instanceof Position){ + Position ps = (Position)barcodeDevice; + if(ps.rinserPosition()){ + return positionManager.getPositionJsonType(ps,true).toString(); + }else{ + return JSONUtil.buildErrorMsgJsonResult("请扫描清洗机的位置!"); + } }else { return JSONUtil.buildErrorMsgJsonResult("条码无效"); } @@ -995,6 +1013,7 @@ containerJSONObj.put("name", classifyBasket.getContainerName()); containerJSONObj.put("personInCharge", classifyBasket.getPersonInCharge()); containerJSONObj.put("personInChargeCode", classifyBasket.getPersonInChargeCode()); + containerJSONObj.put("position", classifyBasket.getPosition()); result.put("container", containerJSONObj); JSONArray itemAmountInfoJSONArray = new JSONArray(); Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/position/dwr/table/PositionTableManager.java =================================================================== diff -u -r15219 -r15396 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/position/dwr/table/PositionTableManager.java (.../PositionTableManager.java) (revision 15219) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/position/dwr/table/PositionTableManager.java (.../PositionTableManager.java) (revision 15396) @@ -40,31 +40,7 @@ * @param isWashPosition */ public String getPositionNameByBarcode(String barcode,Boolean isWashPosition){ - String name = ""; - if(StringUtils.isBlank(barcode)){ - return name; - } - Position ps = positionManager.getPositionByBarcode(barcode); - JSONObject obj = new JSONObject(); - if(ps == null){ - obj.put("success", false); - obj.put("message", "找不到位置信息!"); - return obj.toString(); - } - if(isWashPosition && !"清洗机".equals(ps.getPositionType())){ - obj.put("success", false); - obj.put("message", "请扫描清洗机的位置!"); - return obj.toString(); - } - if(!isWashPosition && !"灭菌炉".equals(ps.getPositionType())){ - obj.put("success", false); - obj.put("message", "请扫描灭菌炉的位置!"); - return obj.toString(); - } - obj.put("success", true); - obj.put("name", ps.getPositionName()); - obj.put("message", "获取位置成功!"); - return obj.toString(); + return positionManager.getPositionJsonType(barcode, isWashPosition).toString(); } } Index: ssts-webservice/src/main/java/com/forgon/disinfectsystem/webservice/service/ServiceManagerImpl.java =================================================================== diff -u -r15363 -r15396 --- ssts-webservice/src/main/java/com/forgon/disinfectsystem/webservice/service/ServiceManagerImpl.java (.../ServiceManagerImpl.java) (revision 15363) +++ ssts-webservice/src/main/java/com/forgon/disinfectsystem/webservice/service/ServiceManagerImpl.java (.../ServiceManagerImpl.java) (revision 15396) @@ -9,6 +9,7 @@ import java.util.Collection; import java.util.Collections; import java.util.Date; +import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; @@ -49,6 +50,7 @@ import com.forgon.disinfectsystem.basedata.becleanitem.service.BeCleanItemManager; import com.forgon.disinfectsystem.basedatamanager.container.service.ReviewedBasketManager; import com.forgon.disinfectsystem.basedatamanager.departmentgroup.service.DepartmentGroupManager; +import com.forgon.disinfectsystem.basedatamanager.position.service.PositionManager; import com.forgon.disinfectsystem.basedatamanager.rinser.service.RinserManager; import com.forgon.disinfectsystem.basedatamanager.sterilisation.service.SterilisationManager; import com.forgon.disinfectsystem.basedatamanager.supplyroomconfig.service.SupplyRoomConfigManager; @@ -63,6 +65,7 @@ import com.forgon.disinfectsystem.entity.assestmanagement.ExpensiveDisposablegoods; import com.forgon.disinfectsystem.entity.basedatamanager.container.Container; import com.forgon.disinfectsystem.entity.basedatamanager.materialinstance.MaterialInstance; +import com.forgon.disinfectsystem.entity.basedatamanager.position.Position; import com.forgon.disinfectsystem.entity.basedatamanager.sterilisation.Sterilisation; import com.forgon.disinfectsystem.entity.basedatamanager.sterilizer.Sterilizer; import com.forgon.disinfectsystem.entity.basedatamanager.taskGroup.TaskGroup; @@ -187,6 +190,7 @@ private DepartmentGroupManager departmentGroupManager; private TousseTransitionItemManager tousseTransitionItemManager; private TousseTransitionRecordManager tousseTransitionRecordManager; + private PositionManager positionManager; public void setPackingManager(PackingManager packingManager) { @@ -345,6 +349,10 @@ this.tousseTransitionRecordManager = tousseTransitionRecordManager; } + public void setPositionManager(PositionManager positionManager) { + this.positionManager = positionManager; + } + @Override public String invoke(String remoteAddr, String jsonParams) { JSONObject jsonObject = null; @@ -1373,7 +1381,7 @@ _defaultDateJsonValueProcessor3); final String[] retainPropertys = { "id", "tousseDefinition", "tousseName", "barcode", "validUntil", "sterilingType", - "orgUnitCoding", "orgUnitName" }; + "orgUnitCoding", "orgUnitName","sterilizerPosition" }; PropertyFilter filter = new PropertyFilter() { @Override public boolean apply(Object source, String name, Object value) { @@ -1740,6 +1748,27 @@ .endObject().toString(); } + public String washRecordPositionConfiged(JSONObject params){ + boolean haveRinserPosition = Boolean.parseBoolean(StringTools.defaultIfEmpty(CssdUtils.getSystemSetConfigByName("haveRinserPosition"),"false")); + boolean wrRecordScanPosition = Boolean.parseBoolean(StringTools.defaultIfEmpty(CssdUtils.getSystemSetConfigByName("wrRecordScanPosition"),"false")); + JSONObject json = JSONUtil.buildJsonObject(true); + json.put("showPosition", haveRinserPosition); + json.put("forceScanPositin", wrRecordScanPosition); + return json.toString(); + } + /** + * 灭菌记录是否配置了灭菌炉位置 + * @param params + * @return + */ + public String sterileRecordPositionConfiged(JSONObject params){ + boolean haveSterilizerPosition = Boolean.parseBoolean(StringTools.defaultIfEmpty(CssdUtils.getSystemSetConfigByName("haveSterilizerPosition"),"false")); + boolean stRecordScanPosition = Boolean.parseBoolean(StringTools.defaultIfEmpty(CssdUtils.getSystemSetConfigByName("stRecordScanPosition"),"false")); + JSONObject json = JSONUtil.buildJsonObject(true); + json.put("showPosition", haveSterilizerPosition); + json.put("forceScanPositin", stRecordScanPosition); + return json.toString(); + } // 在灭菌装载的上下文,根据条码获取信息 @SuppressWarnings("unchecked") public String getInfoByBarcode_SterileLoading(JSONObject params) { @@ -2098,7 +2127,9 @@ .value("tousseInstanceList").key("data") .value(datasJSONArray).endObject().toString(); - } else { + } else if(barcodeDevice instanceof Position){ + return positionManager.getPositionJsonType((Position)barcodeDevice, false).toString(); + } else { return JSONUtil.buildErrorMsgJsonResult("条码无效"); } } @@ -2111,6 +2142,7 @@ .getBarcode()); containerJSONObj.put("name", reviewedBasket.getContainer() .getContainerName()); + containerJSONObj.put("position", reviewedBasket.getSterilizerPosition()); result.put("container", containerJSONObj); List vos = tousseInstanceManager @@ -2179,6 +2211,7 @@ .optJSONArray("containerBarcodes"); JSONArray tousseInstanceBarcodeJsonArray = params .optJSONArray("tousseInstanceBarcodes"); + JSONArray barcodePositionArray = params.optJSONArray("barcodePosition"); if (sterileRecordJsonObj == null) { return JSONUtil.buildErrorMsgJsonResult("缺失参数sterileRecord"); } @@ -2213,9 +2246,19 @@ tousseInstanceBarcodeJsonArray.toString(), new TypeToken>() { }.getType()); - + Map barcodePosition = new HashMap(); + if(CollectionUtils.isNotEmpty(barcodePositionArray)){ + for(int i = 0; i < barcodePositionArray.size();++i){ + JSONObject json = barcodePositionArray.getJSONObject(i); + if(json != null){ + String barcode = json.getString("barcode"); + String position = json.getString("position"); + barcodePosition.put(barcode, position); + } + } + } Map result = sterilizationRecordManager.saveOrUpdateSterilizationRecord( - sterileRecord, tousseInstanceBarcodes, containerBarcodes, null); + sterileRecord, tousseInstanceBarcodes, containerBarcodes,null,barcodePosition); return new JSONStringer().object().key("success").value(result.get("success")).key("error").value(result.get("error")) .endObject().toString(); } Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/position/action/PositionAction.java =================================================================== diff -u -r15219 -r15396 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/position/action/PositionAction.java (.../PositionAction.java) (revision 15219) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/position/action/PositionAction.java (.../PositionAction.java) (revision 15396) @@ -1,12 +1,7 @@ package com.forgon.disinfectsystem.basedatamanager.position.action; -import java.io.IOException; import java.util.HashMap; import java.util.Map; -import java.util.Set; - -import javax.servlet.http.HttpServletResponse; - import net.sf.json.JSONObject; import net.sf.json.JsonConfig; import net.sf.json.util.PropertyFilter; @@ -22,6 +17,9 @@ import com.forgon.serialnumber.model.SerialNum; import com.forgon.serialnumber.service.SerialNumManager; 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.opensymphony.xwork2.ModelDriven; import com.opensymphony.xwork2.Preparable; @@ -56,41 +54,28 @@ public String validate(){ String id = StrutsParamUtils.getPraramValue("validateId",null); String name = StrutsParamUtils.getPraramValue("valifateName",null); - String message = "{success:true,message:'验证成功',stauts:1}"; boolean result = positionManager.verifyPosition(id,name); if(!result){ - message = "{success:false,message:'已存在相同名称的清洗机位置',stauts:0}";; + StrutsResponseUtils.output(JSONUtil.addProperty(JSONUtil.buildJsonObject(false,"已存在相同名称的清洗机位置"),"stauts",0)); + }else{ + StrutsResponseUtils.output(JSONUtil.addProperty(JSONUtil.buildJsonObject(true,"验证成功"),"stauts",1)); } - HttpServletResponse httpServletResponse = StrutsParamUtils - .getResponse(); - httpServletResponse.setContentType("text/html;charset=UTF-8"); - try { - httpServletResponse.getWriter().print(message); - } catch (IOException e) { - e.printStackTrace(); - } return null; } public String savePosition() { if (position != null) { try{ position.setType(BarcodeDevice.BARCODE_TYPE_POSITION); - //设置条码 - String barcode = position.getBarcode(); - if(StringUtils.isBlank(position.getBarcode())){ - barcode = serialNumManager.getSerialNumberStr(SerialNum.TYPE_BARCODE); - position.setBarcode(barcode); - } - positionManager.saveOrUpdate(position); - //返回条码、供页面打印 - HttpServletResponse httpServletResponse = StrutsParamUtils - .getResponse(); - try { - httpServletResponse.getWriter().print("{success:true,barcode:'"+barcode+"'}"); - } catch (IOException e) { - e.printStackTrace(); - } + //设置条码 + String barcode = position.getBarcode(); + if(StringUtils.isBlank(position.getBarcode())){ + barcode = serialNumManager.getSerialNumberStr(SerialNum.TYPE_BARCODE); + position.setBarcode(barcode); + } + positionManager.save(position); + //返回条码、供页面打印 + StrutsResponseUtils.output(JSONUtil.addProperty(JSONUtil.buildJsonObject(true),"barcode",barcode)); }catch (Exception e) { e.printStackTrace(); } @@ -100,31 +85,23 @@ public void deletePosition() { String idStr = StrutsParamUtils.getPraramValue("ids", ""); - String message = ""; + boolean success = false; try { if (StringUtils.isNotBlank(idStr)) { String[] str = idStr.split(";"); for (String id : str) { - positionManager.deletePositionById(id); - message = "{success:true}"; + positionManager.delete(id); } + success = true; } } catch (Exception e) { - message = "{success:false}"; + success = false; e.printStackTrace(); } - HttpServletResponse httpServletResponse = StrutsParamUtils - .getResponse(); - httpServletResponse.setCharacterEncoding("UTF-8"); - try { - httpServletResponse.getWriter().print(message); - } catch (IOException e) { - e.printStackTrace(); - } + StrutsResponseUtils.output(success); } public void loadPosition() { - StrutsParamUtils.getResponse().setCharacterEncoding("UTF-8"); JsonConfig config = new JsonConfig(); PropertyFilter propertyFilter = new JsonPropertyFilter(new String[] {"rinsers"}); config.setJsonPropertyFilter(propertyFilter); @@ -134,68 +111,17 @@ map.put("data", position); try { JSONObject jsonObject = JSONObject.fromObject(map, config); - String jsonStr = jsonObject.toString(); - StrutsParamUtils.getResponse().getWriter().println(jsonStr); + StrutsResponseUtils.output(jsonObject); } catch (Exception e) { e.printStackTrace(); } } - -// public void findCleanMethodArr() { -// List list = cleanMethodManager.getAllCleanMethod(); -// StringBuffer buff = new StringBuffer("["); -// if (list != null && list.size() > 0) { -// for (int i = 0; i < list.size(); i++) { -// CleanMethod cleanMethod = list.get(i); -// if (buff.length() > 1) { -// buff.append(","); -// } -// buff.append("['").append(cleanMethod.getId()).append("','") -// .append(cleanMethod.getCleanMethod()).append("'") -// .append(cleanMethod.getBarcode()).append("',") -// .append(cleanMethod.getCleanMinutes()) -// .append("]"); -// } -// } -// buff.append("]"); -// HttpServletResponse response = StrutsParamUtils.getResponse(); -// try { -// response.setCharacterEncoding("utf-8"); -// response.getWriter().print(buff.toString()); -// } catch (IOException e) { -// e.printStackTrace(); -// } -// } - -// public void findCleanMethodArrClone() { -// List list = rinserPositionManager.getAllRinserPosition(); -// StringBuffer buff = new StringBuffer("["); -// if (list != null && list.size() > 0) { -// for (int i = 0; i < list.size(); i++) { -// RinserPosition rinserPosition = list.get(i); -// if (buff.length() > 1) { -// buff.append(","); -// } -// buff.append("['").append(rinserPosition.getId()).append("','") -// .append(rinserPosition.getPositionName().replaceAll("\\s", "")).append("'") -// .append("]"); -// } -// } -// buff.append("]"); -// HttpServletResponse response = StrutsParamUtils.getResponse(); -// try { -// response.setCharacterEncoding("utf-8"); -// response.getWriter().print(buff.toString()); -// } catch (IOException e) { -// e.printStackTrace(); -// } -// } public void iniInfo() { String id = StrutsParamUtils.getPraramValue("id", ""); - if (StringUtils.isNotBlank(id) && !id.equals("0")) { - position = positionManager.getPositionById(id); + if (DatabaseUtil.isPoIdValid(id)) { + position = positionManager.get(id); } else { position = new Position(); }