Index: ssts-idcard/src/main/java/com/forgon/disinfectsystem/idcardinstance/action/IDCardInstanceAction.java =================================================================== diff -u -r12331 -r12922 --- ssts-idcard/src/main/java/com/forgon/disinfectsystem/idcardinstance/action/IDCardInstanceAction.java (.../IDCardInstanceAction.java) (revision 12331) +++ ssts-idcard/src/main/java/com/forgon/disinfectsystem/idcardinstance/action/IDCardInstanceAction.java (.../IDCardInstanceAction.java) (revision 12922) @@ -2,12 +2,16 @@ import java.io.IOException; +import org.apache.commons.lang3.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.disinfectsystem.entity.idcardinstance.IDCardInstance; import com.forgon.disinfectsystem.idcardinstance.service.IDCardInstanceManager; import com.forgon.tools.StrutsParamUtils; +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; @ParentPackage(value = "default") @Namespace(value = "/disinfectSystem") @@ -31,5 +35,38 @@ e.printStackTrace(); } } + + /** + * 修改器械包标识牌实例的使用次数 + */ + public void modifyIDCardInstanceUseAmount(){ + String idCardInstanceID = StrutsParamUtils.getPraramValue("id", ""); + String useAmount = StrutsParamUtils.getPraramValue("useAmount", ""); + + StrutsParamUtils.getResponse().setCharacterEncoding("UTF-8"); + String errMsg = ""; + JsonObject json = new JsonObject(); + try { + + IDCardInstance idCardInstance = idCardInstanceManager.getIDCardInstanceByID(idCardInstanceID); + + if (idCardInstance != null && StringUtils.isNumeric(useAmount)){ + + idCardInstanceManager + .modifyIDCardUseAmount(idCardInstance, Long.parseLong(useAmount)); + + } + } catch (Exception e) { + e.printStackTrace(); + errMsg = e.getMessage(); + } + json.addProperty("errMsg", errMsg); + try { + StrutsParamUtils.getResponse().getWriter().println(json.toString()); + } catch (IOException e) { + e.printStackTrace(); + } + } + } Index: ssts-web/src/main/webapp/disinfectsystem/basedatamanager/tousse/idCardForm.js =================================================================== diff -u -r12894 -r12922 --- ssts-web/src/main/webapp/disinfectsystem/basedatamanager/tousse/idCardForm.js (.../idCardForm.js) (revision 12894) +++ ssts-web/src/main/webapp/disinfectsystem/basedatamanager/tousse/idCardForm.js (.../idCardForm.js) (revision 12922) @@ -205,6 +205,12 @@ handler : function() { rebindIDCardInstanceToIDCardDefinition(); } + }, { + text : '修改使用次数', + hidden:forSupplement, + handler : function() { + modifyUseAmountOfIDCardInstance(); + } } ] }); @@ -389,7 +395,7 @@ },{ xtype:'button', text:'丢失打印', - hidden:true, + hidden:false, id : 'printNewBtn', handler : function(){ printNewIDCardInstance(); @@ -700,6 +706,75 @@ selIDCardDefinitionWin.show(); } + function modifyUseAmountOfIDCardInstance(){ + var idCardsRecords = gridPanel.getSelectionModel().getSelections(); + if(idCardsRecords.length == 0){ + showResult("请选择要修改的标识牌!"); + return; + } + if(idCardsRecords.length > 1){ + showResult("一次只能修改一个标识牌!"); + return; + } + for(var i=0;i 0) { - Integer useAmount = 0; + Long useAmount = 0L; String barcode = ""; JSONArray arr = getIDCardInstancesJSONArray(idCardInstances); for (int i = 0; i < arr.size(); i++) { JSONObject o = (JSONObject) arr.get(i); - useAmount += o.optInt("useAmount"); + useAmount += o.optLong("useAmount"); if (IDCardInstance.STATUS_USING.equals(o .optString("status"))) { Index: ssts-idcard/src/main/java/com/forgon/disinfectsystem/idcarddefinition/action/IDCardDefinitionAction.java =================================================================== diff -u -r12331 -r12922 --- ssts-idcard/src/main/java/com/forgon/disinfectsystem/idcarddefinition/action/IDCardDefinitionAction.java (.../IDCardDefinitionAction.java) (revision 12331) +++ ssts-idcard/src/main/java/com/forgon/disinfectsystem/idcarddefinition/action/IDCardDefinitionAction.java (.../IDCardDefinitionAction.java) (revision 12922) @@ -133,7 +133,7 @@ String jsonStr = idCardDefinitionManager .addIDCardInstanceToThisDefinition_TRANS_REQUIRED( tousseDefinitionID, idCardDefinitionID); - json.add("idCardInstance", new JsonParser().parse(jsonStr)); + json = new JsonParser().parse(jsonStr).getAsJsonObject(); } catch (Exception e) { e.printStackTrace(); errMsg = e.getMessage(); Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java =================================================================== diff -u -r12898 -r12922 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java (.../PackingManagerImpl.java) (revision 12898) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java (.../PackingManagerImpl.java) (revision 12922) @@ -2547,7 +2547,15 @@ } tousseInstance.setIdCardInstanceID(idCardInstance.getId()); - long useAmountOfIdCardDef = updateIDCardUseAmount(idCardInstance); + Long useAmount = idCardInstance.getUseAmount(); + if (useAmount != null){ + useAmount += 1; + } + else{ + useAmount = 1L; + } + + long useAmountOfIdCardDef = idCardInstanceManager.modifyIDCardUseAmount(idCardInstance, useAmount); tousseInstance.setUseAmount(useAmountOfIdCardDef); objectDao.saveOrUpdate(tousseInstance); @@ -2573,38 +2581,6 @@ } /** - * 更新标识牌的使用次数,包括标识牌实例和标识牌定义的使用次数 - * @param idCardInstance - * @return 标识牌定义的使用次数 - */ - private long updateIDCardUseAmount(IDCardInstance idCardInstance) { - // 记录标识牌实例的使用次数,绑定一个包实例增加一个 - Long useAmount = idCardInstance.getUseAmount(); - if (useAmount != null){ - useAmount += 1; - } - else{ - useAmount = 1L; - } - idCardInstance.setUseAmount(useAmount); - objectDao.saveOrUpdate(idCardInstance); - - String queryString = "select sum(useAmount) from IDCardInstance po where po.idCardDefinitionID = :id"; - Session session = objectDao.getHibernateSession(); - Query query = session.createQuery(queryString); - query.setParameter("id", idCardInstance.getIdCardDefinitionID()); - - long useAmountOfDef = ((Long)query.uniqueResult()).longValue(); - - // 更新标识牌定义的使用次数 - IDCardDefinition def = idCardInstance.getIDCardDefinition(objectDao); - def.setUseAmount(useAmountOfDef); - objectDao.saveOrUpdate(def); - - return useAmountOfDef; - } - - /** * 批量生成器械包实例,根据参数的数量生成对应数量的实例,并返回条形码与虚拟篮筐编码以及对应的装配任务的部门 * @param operator * @param operatorCode