Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/action/TousseDefinitionAction.java =================================================================== diff -u -r27114 -r27572 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/action/TousseDefinitionAction.java (.../TousseDefinitionAction.java) (revision 27114) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/action/TousseDefinitionAction.java (.../TousseDefinitionAction.java) (revision 27572) @@ -2021,6 +2021,25 @@ } /** + * 根据申请的物品获取主绑定物品集合 + */ + public void getMainBindGoods() { + Long goodId = StrutsParamUtils.getPraramLongValue("goodId", null); + try { + JSONArray jsonArray = tousseDefinitionManager.getMainBindGoods(goodId); + if (jsonArray != null) { + StrutsResponseUtils.output(true,jsonArray); + } + JSONObject json = new JSONObject(); + JSONUtil.addLogProperty(json, "返回值", jsonArray); + appLogManager.saveLog(AcegiHelper.getLoginUser(), Log.MODEL_GoodsBinding, Log.TYPE_QUERY, json); + } catch (Exception e) { + logger.error(e, e); + StrutsResponseUtils.output(false, "绑定失败!\n" + e.getMessage()); + } + } + + /** * 构建BindGoodVo对象. * @return */ Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManager.java =================================================================== diff -u -r26871 -r27572 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManager.java (.../TousseDefinitionManager.java) (revision 26871) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManager.java (.../TousseDefinitionManager.java) (revision 27572) @@ -777,4 +777,11 @@ * @return */ public TousseDefinition getTousseDefinitionByFixedBarcode(String fixedBarcode); + + /** + * 根据物品id获取主绑定物品 + * @param goodId + * @return + */ + public JSONArray getMainBindGoods(Long goodId); } Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManagerImpl.java =================================================================== diff -u -r27531 -r27572 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManagerImpl.java (.../TousseDefinitionManagerImpl.java) (revision 27531) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManagerImpl.java (.../TousseDefinitionManagerImpl.java) (revision 27572) @@ -3540,10 +3540,11 @@ msgId.setText("BS546"); Element msgName = head.addElement("msgName"); msgName.setText("器械包字典信息"); + // 消毒供应标识是S052,手麻标识是S037 Element sourceSysCode = head.addElement("sourceSysCode"); - sourceSysCode.setText("消毒供应系统"); + sourceSysCode.setText("S052"); Element targetSysCode = head.addElement("targetSysCode"); - targetSysCode.setText("手麻系统"); + targetSysCode.setText("S037"); Element createTime = head.addElement("createTime"); createTime.setText(DateTools.getFormatDateStr(new Date(), "yyyyMMddHHmmss")); @@ -3802,6 +3803,12 @@ jsonObject.put("urgentLevelId", bindGoodVo.getUrgentLevelId()); } jsonObject.put("urgentAmount", bindUrgengAmount); + // 区分主绑定物品和次绑定物品(针对双向绑定的情况,非双向绑定时都为次绑定物品) + if (GoodType.MAIN.equals(type)) { + jsonObject.put("goodType", GoodType.SECOND); + } else if (GoodType.SECOND.equals(type)) { + jsonObject.put("goodType", GoodType.MAIN); + } jsonArray.add(jsonObject); } } @@ -3859,7 +3866,47 @@ iterateHandleBindGoods(jsonArray, bindGoodVo, GoodType.SECOND, settleAccountsDepartCoding, handleDepartCode, showReferencePrice, showExternalCodeOfDisposableGoods); return jsonArray; } + + @SuppressWarnings("unchecked") @Override + public JSONArray getMainBindGoods(Long goodId) { + if(!DatabaseUtil.isPoIdValid(goodId)){ + throw new RuntimeException("参数goodId无效!"); + } + JSONArray jsonArray = new JSONArray(); + List goods = new ArrayList(); + StringBuilder hql = new StringBuilder("from GoodsBindingConfig po where 1 = 1"); + hql.append(String.format(" and po.secondaryGoodId = %d", goodId)); + goods = objectDao.findByHql(hql.toString()); + if (CollectionUtils.isNotEmpty(goods)) { + //迭代查找出来的list,并计算应该绑定的数量 + for (GoodsBindingConfig good : goods) { + Long id = good.getMainGoodId(); + Map jsonObject = new HashMap(); + if (StringTools.isBlank(good.getMainGoodType())) { + throw new RuntimeException("数据异常!"); + } else if (StringTools.equals(good.getMainGoodType(), DisposableGoods.TYPE_NAME)) { + DisposableGoods disposableGoods = diposableGoodsManager.get(id); + if (disposableGoods != null) { + jsonObject.put("id", disposableGoods.getId()); + jsonObject.put("name", disposableGoods.getName()); + jsonObject.put("goodType", DisposableGoods.TYPE_NAME); + } + } else { + TousseDefinition td = get(id); + jsonObject.put("id", td.getId()); + jsonObject.put("name", td.getName()); + jsonObject.put("goodType", td.getTousseType()); + } + jsonObject.put("bidirectional", good.bidirection()); + jsonArray.add(jsonObject); + } + return jsonArray; + } + return null; + } + + @Override public TousseDefinition findByAncestorId(Collection tds,Long ancestorId){ if(CollectionUtils.isNotEmpty(tds)){ for(TousseDefinition td : tds){