Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/packing/PackingRecord.java =================================================================== diff -u -r21552 -r21804 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/packing/PackingRecord.java (.../PackingRecord.java) (revision 21552) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/packing/PackingRecord.java (.../PackingRecord.java) (revision 21804) @@ -5,6 +5,7 @@ import java.util.List; import java.util.Map; +import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; @@ -182,6 +183,8 @@ this.doctor = doctor; } +// @Lob + @Column(length=8000) public String getForeignMaterialsAmount() { return foreignMaterialsAmount; } @@ -206,6 +209,8 @@ this.tousseName = tousseName; } +// @Lob + @Column(length=8000) public String getSplitTousseName() { return splitTousseName; } Index: ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/basic/service/MaintainManagerImpl.java =================================================================== diff -u -r21408 -r21804 --- ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/basic/service/MaintainManagerImpl.java (.../MaintainManagerImpl.java) (revision 21408) +++ ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/basic/service/MaintainManagerImpl.java (.../MaintainManagerImpl.java) (revision 21804) @@ -1054,7 +1054,7 @@ UpdateData_4_8_9_4_9_0(updateDataContext); break; case "4.9.4_4.9.5": - UpdateData_4_9_4_4_9_5(updateDataContext); + UpdateData_4_9_4_4_9_5_new(updateDataContext); break; } return false; @@ -1973,6 +1973,102 @@ } dataUpdater.logInfo(msg); } + // 中大附一装配记录优化 + private void UpdateData_4_9_4_4_9_5_new(UpdateDataContext updateDataContext) { + DataUpdater dataUpdater = updateDataContext.getDataUpdater(); + String msg = null; + msg = String + .format("已执行方法(%s.%s)!", MaintainManagerImpl.class.getName(), + "UpdateData_4_9_4_4_9_5()"); + try { + int start = 0; + int pageSize = 100; + while(true){ + String sql = String.format(" where po.tousseType='%s' ", TousseDefinition.PACKAGE_TYPE_FOREIGN); + List packingRecordList = objectDao.findBySql(PackingRecord.class.getSimpleName(), sql, start, pageSize, "po.id asc "); + if(CollectionUtils.isEmpty(packingRecordList)){ + break; + } + for (PackingRecord packingRecord : packingRecordList) { + Long tousseDefinitionId = packingRecord.getTousseDefinitionId(); + if(!DatabaseUtil.isPoIdValid(tousseDefinitionId)){ + continue; + } + TousseDefinition tousseDefinition = tousseDefinitionManager.get(tousseDefinitionId); + if(tousseDefinition == null){ + continue; + } + Long foreignTousseApplicationId = tousseDefinition.getInvoicePlanID(); + if(foreignTousseApplicationId == null){ + continue; + } + ForeignTousseApplication foreignTousseApplication = (ForeignTousseApplication) objectDao.getByProperty( + ForeignTousseApplication.class.getSimpleName(), "id",foreignTousseApplicationId); + if(foreignTousseApplication == null){ + continue; + } + List tousseList = packingRecord.getTousseInstanceList(objectDao); + if(CollectionUtils.isEmpty(tousseList)){ + continue; + } + if(foreignTousseApplication != null){ + packingRecord.setSupplierName(foreignTousseApplication.getSupplierName()); + packingRecord.setDoctor(foreignTousseApplication.getDoctor()); + } + packingRecord.setReviewer(tousseList.get(0).getReviewer()); + // 增加拆分名字 + List nameSet = new LinkedList(); + for (TousseInstance tousseInstance : tousseList) { + TousseDefinition tousseInstance_tousseDefinition = tousseInstance.getTousseDefinition(); + if(tousseInstance_tousseDefinition != null && tousseInstance_tousseDefinition.isSplit()){ + nameSet.add(tousseInstance.getTousseName()); + } + } + packingRecord.setSplitTousseName(StringUtils.join(nameSet, ",")); + // 外来器械设置工具和植入物数量信息 + { + int toolAmount = 0; + int implantAmount = 0; + for (TousseInstance tousseInstance : tousseList) { + TousseDefinition tousseInstance_tousseDefinition = tousseInstance.getTousseDefinition(); + if(tousseInstance_tousseDefinition == null){ + continue; + } + List materialInstances = tousseInstance_tousseDefinition.getMaterialInstances(); + if(materialInstances != null){ + for (MaterialInstance materialInstance : materialInstances) { + int amount = materialInstance.getCount(); + if(Constants.STR_YES.equals(materialInstance.materialIsImplant())){ + implantAmount += amount; + }else{ + toolAmount += amount; + } + } + } + + } + List list = new LinkedList(); + if(toolAmount>0){ + list.add(String.format("工具*%s", toolAmount)); + } + if(implantAmount>0){ + list.add(String.format("植入物*%s", implantAmount)); + } + if(list.size() > 0){ + packingRecord.setForeignMaterialsAmount(StringUtils.join(list, "、")); + } + } + objectDao.update(packingRecord); + } + objectDao.clearCache(); + start += pageSize; + } + + } catch (Exception e) { + e.printStackTrace(); + } + dataUpdater.logInfo(msg); + } @Override public void updateForeignTousseInfo() { //外来器械材料定义