Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManager.java =================================================================== diff -u -r22574 -r22654 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManager.java (.../PackingManager.java) (revision 22574) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManager.java (.../PackingManager.java) (revision 22654) @@ -152,6 +152,8 @@ public String updateTousseInstanceForModifyPackingRecord(String modificationInfo, String tousseInstanceJson); + public List getPackingTaskListByIDCardInstanceID( + Long idCardInstanceID); public String getIDCardInfoForPackingView(String barcode); public String packingTousse_TRANS_REQUIRED(String params,HttpSession session) ; Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java =================================================================== diff -u -r22653 -r22654 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java (.../PackingManagerImpl.java) (revision 22653) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java (.../PackingManagerImpl.java) (revision 22654) @@ -2617,7 +2617,7 @@ return idCardDefinitionUseAmount; } - + @Override public List getPackingTaskListByIDCardInstanceID( Long idCardInstanceID) { if (idCardInstanceID == null) { Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/dwr/table/PackingTableManager.java =================================================================== diff -u -r22642 -r22654 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/dwr/table/PackingTableManager.java (.../PackingTableManager.java) (revision 22642) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/dwr/table/PackingTableManager.java (.../PackingTableManager.java) (revision 22654) @@ -12,6 +12,7 @@ import net.sf.json.JSONArray; import net.sf.json.JSONObject; +import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; @@ -37,7 +38,9 @@ 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.PackingTask; import com.forgon.disinfectsystem.expirationdateinfo.service.ExpirationDateInfoManager; +import com.forgon.disinfectsystem.idcarddefinition.service.IDCardDefinitionManager; import com.forgon.disinfectsystem.idcardinstance.service.IDCardInstanceManager; import com.forgon.disinfectsystem.idcardinstance.util.IDCardInstanceUtils; import com.forgon.disinfectsystem.packing.service.PackingManager; @@ -84,6 +87,7 @@ private TaskGroupManager taskGroupManager; + private IDCardDefinitionManager idCardDefinitionManager; private IDCardInstanceManager idCardInstanceManager; private SterilisationManager sterilisationManager; @@ -104,6 +108,11 @@ this.taskGroupManager = taskGroupManager; } + public void setIdCardDefinitionManager( + IDCardDefinitionManager idCardDefinitionManager) { + this.idCardDefinitionManager = idCardDefinitionManager; + } + public void setIdCardInstanceManager(IDCardInstanceManager idCardInstanceManager) { this.idCardInstanceManager = idCardInstanceManager; } @@ -608,7 +617,32 @@ jsonObj.put("endDateTime", endDateTime); return jsonObj.toString(); } - + public String getIDCardInfo(String barcode) { + JSONObject obj = new JSONObject(); + JSONUtil.addSuccess(obj, false); + BarcodeDevice barcodeDevice = barcodeManager + .getBarcodeByBarcode(barcode); + if (barcodeDevice == null) { + JSONUtil.addMessage(obj, "未找到该条码对象"); + return obj.toString(); + } + if (!(barcodeDevice instanceof IDCardInstance)) { + JSONUtil.addMessage(obj, "请扫描标识牌条码"); + return obj.toString(); + } + IDCardInstance idCardInstance = (IDCardInstance)barcodeDevice; + // 获取装配任务 + List packingTaskList = packingManager.getPackingTaskListByIDCardInstanceID(idCardInstance + .getId()); + if(CollectionUtils.isNotEmpty(packingTaskList)){ + JSONUtil.addMessage(obj, "该标识牌已存在装配任务,不能自定义装配,请在装配界面进行操作"); + return obj.toString(); + } + String json = idCardDefinitionManager + .getAvailableDefinitionByBarcode(barcode); + obj = JSONObject.fromObject(json); + return obj.toString(); + } public String getIDCardInfoForPackingView(String barcode) { return packingManager.getIDCardInfoForPackingView(barcode); } @@ -656,6 +690,13 @@ throw new RuntimeException(String.format("未找到标识牌绑定的实例!", barcode)); } + // 获取装配任务 + List packingTaskList = packingManager.getPackingTaskListByIDCardInstanceID(idCardInstance + .getId()); + if(CollectionUtils.isNotEmpty(packingTaskList)){ + throw new RuntimeException(String.format("该标识牌已存在装配任务,不能自定义装配,请在装配界面进行操作!", + barcode)); + } TousseDefinition tousseDefinition = tousseInstance.getTousseDefinition(); obj.put("barcode", tousseInstance.getBarcode()); obj.put("tousseDefinitionId", tousseDefinition.getId()); Index: ssts-idcard/src/main/java/com/forgon/disinfectsystem/idcarddefinition/service/IDCardDefinitionManagerImpl.java =================================================================== diff -u -r20632 -r22654 --- ssts-idcard/src/main/java/com/forgon/disinfectsystem/idcarddefinition/service/IDCardDefinitionManagerImpl.java (.../IDCardDefinitionManagerImpl.java) (revision 20632) +++ ssts-idcard/src/main/java/com/forgon/disinfectsystem/idcarddefinition/service/IDCardDefinitionManagerImpl.java (.../IDCardDefinitionManagerImpl.java) (revision 22654) @@ -142,6 +142,8 @@ String errorMsg = ""; BarcodeDevice barcodeDevice = barcodeManager .getBarcodeByBarcode(idCardInstanceBarcode); + + JSONUtil.addSuccess(returnObj, false); if (barcodeDevice != null && barcodeDevice instanceof IDCardInstance) { IDCardInstance idCardInstance = (IDCardInstance) barcodeDevice; try { @@ -164,15 +166,18 @@ wci.put("tousseDefinition", tousseDefinitionObj); returnObj.put("idCard", wci); + JSONUtil.addSuccess(returnObj, true); } catch (Exception e) { errorMsg = String.format("标识牌%s不可使用,原因(%s) !", idCardInstanceBarcode, e.getMessage()); + JSONUtil.addMessage(returnObj, errorMsg); } } else { errorCode = Constants.ERROR_CODE_NOT_FOUND; errorMsg = "没有该条码的标识牌"; + JSONUtil.addMessage(returnObj, errorMsg); } returnObj.put("errorCode", errorCode); Index: ssts-web/src/main/webapp/disinfectsystem/packing/directPacking.js =================================================================== diff -u -r21674 -r22654 --- ssts-web/src/main/webapp/disinfectsystem/packing/directPacking.js (.../directPacking.js) (revision 21674) +++ ssts-web/src/main/webapp/disinfectsystem/packing/directPacking.js (.../directPacking.js) (revision 22654) @@ -98,9 +98,9 @@ function loadIdCardByBarcode(barcodeField){ var barcode = barcodeField.getValue(); - IDCardDefinitionTableManager.getAvailableDefinitionByBarcode(barcode,function(resultJsonStr){ + PackingTableManager.getIDCardInfo(barcode,function(resultJsonStr){ var tousseInfo = JSON.parse(resultJsonStr); - if(isUndefinedOrNullOrEmpty(tousseInfo.errorMsg)){ + if(tousseInfo.success){ var tousseId = tousseInfo.idCard.tousseDefinition.id; var tousseName = tousseInfo.idCard.tousseDefinition.name; var tousseType = tousseInfo.idCard.tousseDefinition.tousseType; @@ -123,7 +123,7 @@ } else { - showResult(tousseInfo.errorMsg); + showResult(tousseInfo.message); Ext.getCmp('idCardName').setValue(); } }); @@ -132,9 +132,9 @@ function loadIdCardByScanBarcode(barcode ,isNeedIdCard){ - IDCardDefinitionTableManager.getAvailableDefinitionByBarcode(barcode,function(resultJsonStr){ + PackingTableManager.getIDCardInfo(barcode,function(resultJsonStr){ var tousseInfo = JSON.parse(resultJsonStr); - if(isUndefinedOrNullOrEmpty(tousseInfo.errorMsg)){ + if(tousseInfo.success){ var tousseName = tousseInfo.idCard.tousseDefinition.name; Ext.getCmp('idCardBarcode').setValue(tousseInfo.idCard.id); Ext.getCmp('idCardDefinitionId').setValue(tousseInfo.idCard.idCardDefinitionId);