Index: ssts-web/src/main/webapp/disinfectsystem/config/dgsdbzxyy/config.js =================================================================== diff -u -r39629 -r40478 --- ssts-web/src/main/webapp/disinfectsystem/config/dgsdbzxyy/config.js (.../config.js) (revision 39629) +++ ssts-web/src/main/webapp/disinfectsystem/config/dgsdbzxyy/config.js (.../config.js) (revision 40478) @@ -279,7 +279,7 @@ //启用明细核算月报的扩展查询项 enableExtendedQueryItemsOfDetailedAccountingMonthlyReport:["sterilizationProgram"], //启用可登记合格的质量监测功能 - enableRecordsQualifiedOfQualityMonitoringFunction:true, + enableRecordsQualifiedOfQualityMonitoringFunction:1, //外来器械申请时显示原始包定义还是显示最近一次申请的包定义 isShowForeignTousseAncestorDefinitionForApply:true, // 是否启用默认满意度选项功能 Index: ssts-web/src/main/webapp/disinfectsystem/config/bjdwljzqjyy/config.js =================================================================== diff -u -r39030 -r40478 --- ssts-web/src/main/webapp/disinfectsystem/config/bjdwljzqjyy/config.js (.../config.js) (revision 39030) +++ ssts-web/src/main/webapp/disinfectsystem/config/bjdwljzqjyy/config.js (.../config.js) (revision 40478) @@ -204,7 +204,7 @@ //申请单列表和发货单列表按申请单类型过滤 accordingToApplyTypeFilter:true, //启用可登记合格的质量监测功能 - enableRecordsQualifiedOfQualityMonitoringFunction:true, + enableRecordsQualifiedOfQualityMonitoringFunction:1, //自定义设备维护表单 isDeviceMaintenanceCus:true, //供应室数据隔离模块 Index: forgon-tools/src/main/java/com/forgon/Constants.java =================================================================== diff -u -r40457 -r40478 --- forgon-tools/src/main/java/com/forgon/Constants.java (.../Constants.java) (revision 40457) +++ forgon-tools/src/main/java/com/forgon/Constants.java (.../Constants.java) (revision 40478) @@ -29,7 +29,7 @@ "4.9.63","4.9.64","4.9.65","4.9.66","4.9.67","4.9.68","4.9.69","4.9.70","4.9.71","4.9.72","4.9.73","4.9.74","4.9.75","4.9.76","4.9.77","4.9.78","4.9.79","4.9.80","4.9.81","4.9.82","4.9.83","4.9.84","4.9.85", "4.9.86","4.9.87","4.9.88","4.9.89","4.9.90","4.9.91","4.9.92","4.9.93","4.9.94","4.9.95","4.9.96","4.9.97","4.9.98","4.9.99","5.0.0","5.0.1","5.0.2","5.0.3","5.0.4","5.0.5","5.0.6","5.0.7", "5.0.8","5.0.9","5.0.10","5.0.11","5.0.12","5.0.13","5.0.14","5.0.15","5.0.16","5.0.17","5.0.18","5.0.19","5.0.20","5.0.21","5.0.22","5.0.23","5.0.24","5.0.25","5.0.26","5.0.27","5.0.28","5.0.29","5.0.30","5.0.31", - "5.0.32","5.0.33","5.0.34","5.0.35","5.0.36","5.0.37","5.0.38","5.0.39","5.0.40","5.0.41","5.0.42","5.0.43","5.0.44","5.0.45"}; + "5.0.32","5.0.33","5.0.34","5.0.35","5.0.36","5.0.37","5.0.38","5.0.39","5.0.40","5.0.41","5.0.42","5.0.43","5.0.44","5.0.45","5.0.46"}; // 版本列表(4.0版本升级4.1版需要分两步:先从4.0升到4.1.0、然后从4.1.0升级4.1最新版本) /*public final static String[] SOFTWARE_VERSION_ARRAY = new String[] { Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/vo/QualityMonitoringGoodsVo.java =================================================================== diff -u --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/vo/QualityMonitoringGoodsVo.java (revision 0) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/vo/QualityMonitoringGoodsVo.java (revision 40478) @@ -0,0 +1,77 @@ +package com.forgon.disinfectsystem.vo; + +/** + * 质量监测记录vo + */ +public class QualityMonitoringGoodsVo { + + private Long id; + /** + * 抽检器械材料名称 + */ + private String material; + /** + * 抽检器械包名称 + */ + private String tousseName; + /** + * 抽检器械包定义id + */ + private Long tousseDefinitionId; + /** + * 质量监测记录id + */ + private Long qualityMonitoringInstance_id; + /** + * 序号 + */ + private Integer orderNumber; + /** + * 类型:质量监测/定期监测 + */ + private String type; + + public Long getId() { + return id; + } + public void setId(Long id) { + this.id = id; + } + public String getMaterial() { + return material; + } + public void setMaterial(String material) { + this.material = material; + } + public String getTousseName() { + return tousseName; + } + public void setTousseName(String tousseName) { + this.tousseName = tousseName; + } + public Long getTousseDefinitionId() { + return tousseDefinitionId; + } + public void setTousseDefinitionId(Long tousseDefinitionId) { + this.tousseDefinitionId = tousseDefinitionId; + } + public Long getQualityMonitoringInstance_id() { + return qualityMonitoringInstance_id; + } + public void setQualityMonitoringInstance_id(Long qualityMonitoringInstance_id) { + this.qualityMonitoringInstance_id = qualityMonitoringInstance_id; + } + public Integer getOrderNumber() { + return orderNumber; + } + public void setOrderNumber(Integer orderNumber) { + this.orderNumber = orderNumber; + } + public String getType() { + return type; + } + public void setType(String type) { + this.type = type; + } + +} Index: ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/basic/service/MaintainManagerImpl.java =================================================================== diff -u -r40302 -r40478 --- ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/basic/service/MaintainManagerImpl.java (.../MaintainManagerImpl.java) (revision 40302) +++ ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/basic/service/MaintainManagerImpl.java (.../MaintainManagerImpl.java) (revision 40478) @@ -19,12 +19,14 @@ import java.util.LinkedList; import java.util.List; import java.util.Map; +import java.util.Map.Entry; import java.util.Set; import javax.script.ScriptEngine; import javax.script.ScriptEngineManager; import org.apache.commons.beanutils.BeanUtils; +import org.apache.commons.collections.MapUtils; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.time.DateUtils; @@ -207,6 +209,7 @@ import com.forgon.disinfectsystem.tousse.materialdefinition.service.MaterialDefinitionManager; import com.forgon.disinfectsystem.tousse.toussedefinition.service.TousseDefinitionManager; import com.forgon.disinfectsystem.tousse.toussedefinition.service.TousseInstanceManager; +import com.forgon.disinfectsystem.vo.QualityMonitoringGoodsVo; import com.forgon.security.model.Operation; import com.forgon.security.model.Role; import com.forgon.serialnumber.model.SerialNum; @@ -1595,11 +1598,142 @@ case "5.0.31_5.0.32": UpdateData_5_0_31_5_0_32(updateDataContext); break; + case "5.0.45_5.0.46": + UpdateData_5_0_45_5_0_46(updateDataContext); + break; } return false; } /** + * 将“器械包条码”和“抽检器械”进行上下级关联HZSRMYY-84 + * @param updateDataContext + */ + private void UpdateData_5_0_45_5_0_46(UpdateDataContext updateDataContext) { + //根据质量监测记录id分组 + Map> qmiIdQualityMonitoringGoodsMap = getQualityMonitoringInstanceIdQualityMonitoringGoodsMap(); + if(MapUtils.isEmpty(qmiIdQualityMonitoringGoodsMap)){ + return; + } + //抽检器械关联抽检器械包 + Map idParentIdMap = getQualityMonitoringInstanceIdParentIdMap(qmiIdQualityMonitoringGoodsMap); + if(MapUtils.isEmpty(idParentIdMap)){ + return; + } + for (Entry idParentIdMapEntry : idParentIdMap.entrySet()) { + if(DatabaseUtil.isPoIdValid(idParentIdMapEntry.getKey()) + && DatabaseUtil.isPoIdValid(idParentIdMapEntry.getValue())){ + objectDao.excuteSQL(String.format("update %s set parentId = %s where id = %s ", QualityMonitoringGoods.class.getSimpleName(), idParentIdMapEntry.getValue(), idParentIdMapEntry.getKey())); + } + } + } + + /** + * 抽检器械关联抽检器械包 + * @param qmiIdQualityMonitoringGoodsMap 质量监测记录id及抽检器械/器械包的map + * @return + */ + private Map getQualityMonitoringInstanceIdParentIdMap(Map> qmiIdQualityMonitoringGoodsMap) { + Map idParentIdMap = new HashMap(); + if(MapUtils.isEmpty(qmiIdQualityMonitoringGoodsMap)){ + return idParentIdMap; + } + for (Entry> qmiIdQualityMonitoringGoodsMapEntry : qmiIdQualityMonitoringGoodsMap.entrySet()) { + List qmgList = qmiIdQualityMonitoringGoodsMapEntry.getValue(); + if(CollectionUtils.isEmpty(qmgList) || qmgList.size() == 1){ + continue; + } + for(int i=0;i> getQualityMonitoringInstanceIdQualityMonitoringGoodsMap() { + + Map> qualityMonitoringInstanceIdQualityMonitoringGoodsMap = new HashMap>(); + + //查询parentId没有值的抽检器械 + StringBuffer sqlBuffer = new StringBuffer(); + sqlBuffer.append("select qmg.qualityMonitoringInstance_id, qmi.type, qmg.id, qmg.material, qmg.tousseDefinitionId, qmg.tousseName, qmg.orderNumber from "); + sqlBuffer.append(QualityMonitoringGoods.class.getSimpleName()); + sqlBuffer.append(" qmg join "); + sqlBuffer.append(QualityMonitoringInstance.class.getSimpleName()); + sqlBuffer.append(" qmi on qmi.id = qmg.qualityMonitoringInstance_id "); + sqlBuffer.append(" where qmi.id not in (select qualityMonitoringInstance_id from " + QualityMonitoringGoods.class.getSimpleName() + " where parentId is not null) "); + sqlBuffer.append(" order by qmg.qualityMonitoringInstance_id, qmg.orderNumber "); + + ResultSet rs = null; + try { + rs = objectDao.executeSql(sqlBuffer.toString()); + while(rs.next()){ + Long qualityMonitoringInstance_id = rs.getLong("qualityMonitoringInstance_id"); + String type = rs.getString("type"); + Long id = rs.getLong("id"); + String material = rs.getString("material"); + Long tousseDefinitionId = rs.getLong("tousseDefinitionId"); + String tousseName = rs.getString("tousseName"); + Integer orderNumber = rs.getInt("orderNumber"); + + QualityMonitoringGoodsVo qmg = new QualityMonitoringGoodsVo(); + qmg.setId(id); + qmg.setMaterial(material); + qmg.setTousseName(tousseName); + qmg.setTousseDefinitionId(tousseDefinitionId); + qmg.setType(type); + qmg.setOrderNumber(orderNumber); + qmg.setQualityMonitoringInstance_id(qualityMonitoringInstance_id); + + List qualityMonitoringGoodsMapList = qualityMonitoringInstanceIdQualityMonitoringGoodsMap.get(qualityMonitoringInstance_id); + if(qualityMonitoringGoodsMapList == null){ + qualityMonitoringGoodsMapList = new ArrayList(); + } + qualityMonitoringGoodsMapList.add(qmg); + + qualityMonitoringInstanceIdQualityMonitoringGoodsMap.put(qualityMonitoringInstance_id, qualityMonitoringGoodsMapList); + } + } catch (Exception e) { + e.printStackTrace(); + } finally { + DatabaseUtil.closeResultSetAndStatement(rs); + } + + return qualityMonitoringInstanceIdQualityMonitoringGoodsMap; + } + + /** * 满意度调查表SSZXYY-18 * @param updateDataContext */ Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/qualitymonitoringmanager/qualitymonitoring/QualityMonitoringGoods.java =================================================================== diff -u -r40326 -r40478 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/qualitymonitoringmanager/qualitymonitoring/QualityMonitoringGoods.java (.../QualityMonitoringGoods.java) (revision 40326) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/qualitymonitoringmanager/qualitymonitoring/QualityMonitoringGoods.java (.../QualityMonitoringGoods.java) (revision 40478) @@ -95,6 +95,12 @@ */ private QualityMonitoringInstance qualityMonitoringInstance; + /** + * 父节点id + * 用于抽检器械关联抽检器械包HZSRMYY-89 + */ + private Long parentId; + @Id @GeneratedValue(strategy = GenerationType.AUTO) public Long getId() { @@ -193,4 +199,12 @@ this.qualityMonitoringInstance = qualityMonitoringInstance; } + public Long getParentId() { + return parentId; + } + + public void setParentId(Long parentId) { + this.parentId = parentId; + } + } Index: ssts-qualitymon/src/main/java/com/forgon/disinfectsystem/qualitymonitoring/instance/service/QualityMonitoringInstanceManagerImpl.java =================================================================== diff -u -r40326 -r40478 --- ssts-qualitymon/src/main/java/com/forgon/disinfectsystem/qualitymonitoring/instance/service/QualityMonitoringInstanceManagerImpl.java (.../QualityMonitoringInstanceManagerImpl.java) (revision 40326) +++ ssts-qualitymon/src/main/java/com/forgon/disinfectsystem/qualitymonitoring/instance/service/QualityMonitoringInstanceManagerImpl.java (.../QualityMonitoringInstanceManagerImpl.java) (revision 40478) @@ -13,6 +13,7 @@ import java.util.LinkedList; import java.util.List; import java.util.Map; +import java.util.Map.Entry; import java.util.Set; import java.util.stream.Collectors; @@ -73,6 +74,7 @@ import com.forgon.log.model.Log; import com.forgon.log.service.LogManager; import com.forgon.reflect.ReflectUtil; +import com.forgon.tools.MathTools; import com.forgon.tools.StrutsParamUtils; import com.forgon.tools.date.DateTools; import com.forgon.tools.db.DatabaseUtil; @@ -396,6 +398,13 @@ } qmInstance.setQualityMonitoringGoodsList(qmds); } + //抽检器械关联抽检器械包 + if(StringUtils.equals(qmInstance.getType(), FormDefinition.FOMRTYPE_QUALITYMONITORING)){ + updateQualityMonitoringGoodsParentId(qmInstance, requestParams); + }else if(StringUtils.equals(qmInstance.getType(), FormDefinition.FOMRTYPE_PERIODICMONITORING)){ + updatePreiodicMonitoringGoodsParentId(qmInstance); + } + if("0".equals(formDefinitionId)){ // 是'无',直接保存 objectDao.saveOrUpdate(qmInstance); @@ -415,6 +424,48 @@ } /** + * 质量监测记录,抽检包内材料器械包关联抽检器械包 + * @param qmInstance 质量监测记录 + * @param requestParams 参数map + */ + private void updateQualityMonitoringGoodsParentId(QualityMonitoringInstance qmInstance, Map requestParams) { + if(qmInstance == null || MapUtils.isEmpty(requestParams) || StringUtils.isBlank(requestParams.get("parentOrderNumberMap")) || CollectionUtils.isEmpty(qmInstance.getQualityMonitoringGoodsList())){ + return; + } + JSONArray parentOrderNumberMapJsonArray = JSONArray.fromObject(requestParams.get("parentOrderNumberMap")); + if(parentOrderNumberMapJsonArray == null || parentOrderNumberMapJsonArray.size() == 0){ + return; + } + Map parentOrderNumberMap = new HashMap(); + for (Object object : parentOrderNumberMapJsonArray) { + JSONObject json = (JSONObject) object; + for(Object orderNumberObj : json.keySet()){ + String orderNumber = (String) orderNumberObj; + String parentOrderNUmber = json.optString(orderNumber); + if(DatabaseUtil.isPoIdValid(orderNumber) + && DatabaseUtil.isPoIdValid(parentOrderNUmber)){ + parentOrderNumberMap.put(Integer.valueOf(orderNumber), Integer.valueOf(parentOrderNUmber)); + } + } + } + if(MapUtils.isEmpty(parentOrderNumberMap)){ + return; + } + List qualityMonitoringGoodsList = qmInstance.getQualityMonitoringGoodsList(); + Map orderNumberIdMap = new HashMap(); + for (QualityMonitoringGoods qualityMonitoringGoods : qualityMonitoringGoodsList) { + orderNumberIdMap.put(qualityMonitoringGoods.getOrderNumber(), qualityMonitoringGoods.getId()); + } + for (QualityMonitoringGoods qualityMonitoringGoods : qualityMonitoringGoodsList) { + Integer parentOrderNumber = parentOrderNumberMap.get(qualityMonitoringGoods.getOrderNumber()); + Long parentId = orderNumberIdMap.get(parentOrderNumber); + if(DatabaseUtil.isPoIdValid(parentId)){ + qualityMonitoringGoods.setParentId(parentId); + } + } + } + + /** * 根据名称查询材料定义 * @param name 材料名称 * @return @@ -426,7 +477,17 @@ JSONObject obj = CssdUtils.getGoodsNameAndSp(name); String tempName = obj.optString("materialName"); String specification = obj.optString("specification"); - return materialDefinitionManager.getMaterialDefinitionByName(tempName, specification); + + String sql = " where 1=1 "; + if (StringUtils.isNotBlank(tempName)) { + sql += " and po.name = '" + tempName + "'"; + } + if (StringUtils.isNotBlank(specification)) { + sql += " and po.specification = '" + specification + "'"; + } else { + sql += " and (po.specification = '' or po.specification is null) "; + } + return (MaterialDefinition) objectDao.getBySql(MaterialDefinition.class.getSimpleName(), sql); } /** @@ -769,14 +830,11 @@ return; } String material = formOptionMaterialGoods.getMaterial(); - JSONObject obj = CssdUtils.getGoodsNameAndSp(material); - String name = obj.optString("materialName"); - String sp = obj.optString("specification"); - MaterialDefinition materialDefinition = materialDefinitionManager.getMaterialDefinitionByNameAndspecification(name, sp); + MaterialDefinition materialDefinition = getMaterialDefinitionByName(material); if(materialDefinition != null){ formOptionMaterialGoods.setMaterialDefinitionId(materialDefinition.getId()); }else{ - throw new SystemException(String.format("不存在名称为:%s,规格为:%s的材料", name, sp)); + throw new SystemException(String.format("不存在名称为:%s的材料", material)); } } @@ -1223,6 +1281,22 @@ String washStatus = requestParams.get("washStatus"); //清洗记录的状态,清洗中断 boolean saved = qmInstance != null && DatabaseUtil.isPoIdValid(qmInstance.getId()); //记录原来是否已经保存过 + //登记为“合格”的质量监测记录中,“器械包信息”区域中除了登记器械包信息外,其他的功能包括”重新回收”、“重新装配”、“废弃条码”等功能都不能进行勾选使用;HZSRMYY-89 + int enableRecordsQualifiedOfQualityMonitoringFunction = ConfigUtils.getSystemSetConfigByNameInt("enableRecordsQualifiedOfQualityMonitoringFunction", 0); + if(enableRecordsQualifiedOfQualityMonitoringFunction == 2 + && StringUtils.equals(qmInstance.getIsQualified(), Constants.STR_YES) + && StringUtils.equals(qmInstance.getType(), FormDefinition.FOMRTYPE_QUALITYMONITORING)){ + if(isRecycle){ + throw new SystemException("登记为“合格”的质量监测记录,不允许重新回收器械包"); + } + if(isRepacking){ + throw new SystemException("登记为“合格”的质量监测记录,不允许重新装配器械包"); + } + if(isDiscard){ + throw new SystemException("登记为“合格”的质量监测记录,不允许废弃条码"); + } + } + /** * 1、不需要登录系统录质量监测时所选的供应室 */ @@ -1919,19 +1993,7 @@ boolean success = true; String message = "保存成功!"; //保存成功的监测记录 - List saveQualityMonitoringInstanceList = new ArrayList(); - //启用可登记合格的质量监测功能BJCYZXYYY-10 - boolean enableRecordsQualifiedOfQualityMonitoringFunction = - ConfigUtils.getSystemSetConfigByNameBool("enableRecordsQualifiedOfQualityMonitoringFunction"); - if(StringUtils.equals(qualityMonitoringInstance.getIsQualified(), Constants.STR_YES) - && enableRecordsQualifiedOfQualityMonitoringFunction){ - //只保存一个监测记录 - saveQualityMonitoringInstance_internal(qualityMonitoringInstance, map); - saveQualityMonitoringInstanceList.add(qualityMonitoringInstance); - }else{ - //一次性保存多个监测记录,而且抽检器械和监测项不能都为空 - saveQualityMonitoringInstanceList = bathSaveQualityMonitoringInstance_internal(qualityMonitoringInstance, map); - } + List saveQualityMonitoringInstanceList = bathSaveQualityMonitoringInstance_internal(qualityMonitoringInstance, map); JSONObject result = new JSONObject(); result.put("success", success); result.put("message", message); @@ -1954,21 +2016,29 @@ */ private List bathSaveQualityMonitoringInstance_internal(QualityMonitoringInstance qualityMonitoringInstance, Map map) { + + // 填写了多少个监测元素信息(抽检器械和监测项),就要保存多少条质量监测监测记录 + List saveQualityMonitoringInstanceList = new ArrayList(); + //启用可登记合格的质量监测功能BJCYZXYYY-10 + //【质量监测管理】登记为合格时也要支持录入器械包信息(非必填)HZSRMYY-89 + //enableRecordsQualifiedOfQualityMonitoringFunction=1时,登记为合格时,不允许录入抽检器械包和抽检器械;登记为不合格时,抽检器械包和抽检器械不能为空; + //enableRecordsQualifiedOfQualityMonitoringFunction=2时,登记为合格时,允许录入抽检器械包和抽检器械或者抽检器械包和抽检器械为空;登记为不合格时,抽检器械包和抽检器械不能为空; + //enableRecordsQualifiedOfQualityMonitoringFunction=0时,抽检器械包和抽检器械不能为空; + int enableRecordsQualifiedOfQualityMonitoringFunction = ConfigUtils.getSystemSetConfigByNameInt("enableRecordsQualifiedOfQualityMonitoringFunction", 0); // 抽检器械包和抽检器械,以及和抽检器械包和抽检器械关联的检测项 String tousseMaterialInstanceInfo = map.get("tousseMaterialInstanceInfo"); JSONObject tousseMaterialInstanceJSON = JSONObject.fromObject(tousseMaterialInstanceInfo); - if(tousseMaterialInstanceJSON == null){ + JSONArray tousseInstanceInfos = null; + if(tousseMaterialInstanceJSON == null + || (tousseInstanceInfos = tousseMaterialInstanceJSON.optJSONArray("tousseInstanceInfos")) == null + || tousseInstanceInfos.size() == 0){ throw new RuntimeException("抽检器械和监测项不能都为空"); } - JSONArray tousseInstanceInfos = tousseMaterialInstanceJSON.optJSONArray("tousseInstanceInfos"); - if(tousseInstanceInfos == null || tousseInstanceInfos.size() == 0){ - throw new RuntimeException("抽检器械和监测项不能都为空"); - } //不开启配置项,“合格信息”默认都是否,都是需要录入监测项的 - qualityMonitoringInstance.setIsQualified(Constants.STR_NO); - - // 填写了多少个监测元素信息(抽检器械和监测项),就要保存多少条质量监测监测记录 - List saveQualityMonitoringInstanceList = new ArrayList(); + if(enableRecordsQualifiedOfQualityMonitoringFunction == 0){ + qualityMonitoringInstance.setIsQualified(Constants.STR_NO); + } + for(int i=0 ; i parentOrderNumberMap = new HashMap(); JSONArray tousseBags = tousseInstanceInfos.optJSONObject(i).optJSONArray("tousseBags"); if(tousseBags != null && tousseBags.size() > 0){ for(int j=0;j qualityMonitoringGoodsList = qualityMonitoringInstance.getQualityMonitoringGoodsList(); + if(CollectionUtils.isEmpty(qualityMonitoringGoodsList) || qualityMonitoringGoodsList.size() == 1){ + return; + } + Map> parentIdQualityMonitoringGoodsListMap = new HashMap>(); + + qualityMonitoringGoodsList = qualityMonitoringGoodsList.stream() + .sorted(Comparator.comparingInt(QualityMonitoringGoods::getOrderNumber)) + .collect(Collectors.toList()); + + for(int i=0;i mapQualityMonitoringGoodsList = parentIdQualityMonitoringGoodsListMap.get(tousseQualityMonitoringGoods.getId()); + if(mapQualityMonitoringGoodsList == null){ + mapQualityMonitoringGoodsList = new ArrayList(); + } + mapQualityMonitoringGoodsList.add(materialQualityMonitoringGoods); + parentIdQualityMonitoringGoodsListMap.put(tousseQualityMonitoringGoods.getId(), mapQualityMonitoringGoodsList); + } + } + + if(MapUtils.isEmpty(parentIdQualityMonitoringGoodsListMap)){ + return; + } + + for (Entry> qualityMonitoringGoodsEntry : parentIdQualityMonitoringGoodsListMap.entrySet()) { + Long parentId = qualityMonitoringGoodsEntry.getKey(); + List qualityMonitoringGoodsListLoop = qualityMonitoringGoodsEntry.getValue(); + if(CollectionUtils.isEmpty(qualityMonitoringGoodsListLoop) || !DatabaseUtil.isPoIdValid(parentId)){ + continue; + } + for (QualityMonitoringGoods qualityMonitoringGoods : qualityMonitoringGoodsListLoop) { + qualityMonitoringGoods.setParentId(parentId); + objectDao.saveOrUpdate(qualityMonitoringGoods); + } + } + + } + @Override public JSONObject getTousseInstanceRepacking(String barcodes) { Index: ssts-web/src/main/webapp/disinfectsystem/config/bjcyzxyyy/config.js =================================================================== diff -u -r37494 -r40478 --- ssts-web/src/main/webapp/disinfectsystem/config/bjcyzxyyy/config.js (.../config.js) (revision 37494) +++ ssts-web/src/main/webapp/disinfectsystem/config/bjcyzxyyy/config.js (.../config.js) (revision 40478) @@ -204,7 +204,7 @@ //申请单列表和发货单列表按申请单类型过滤 accordingToApplyTypeFilter:true, //启用可登记合格的质量监测功能 - enableRecordsQualifiedOfQualityMonitoringFunction:true, + enableRecordsQualifiedOfQualityMonitoringFunction:1, //自定义设备维护表单 isDeviceMaintenanceCus:true, //打开外来器械桌面图标 Index: ssts-web/src/main/webapp/disinfectsystem/config/hzszxrmyy/config.js =================================================================== diff -u -r40475 -r40478 --- ssts-web/src/main/webapp/disinfectsystem/config/hzszxrmyy/config.js (.../config.js) (revision 40475) +++ ssts-web/src/main/webapp/disinfectsystem/config/hzszxrmyy/config.js (.../config.js) (revision 40478) @@ -127,7 +127,7 @@ //启用清洗器械工作量及不合格率月报中统计包内材料数量的功能 enableCountToussesMaterialsDuringWashWorkloadReport:true, //启用可登记合格的质量监测功能 - enableRecordsQualifiedOfQualityMonitoringFunction:true + enableRecordsQualifiedOfQualityMonitoringFunction:2 //质量监测单的表单字段必填项配置 //notAllowBlankFieldsOfQualityMonitoring:['responsiblePerson']