Index: ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/vo/RecyclingRecordVo.java =================================================================== diff -u -r33942 -r34293 --- ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/vo/RecyclingRecordVo.java (.../RecyclingRecordVo.java) (revision 33942) +++ ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/vo/RecyclingRecordVo.java (.../RecyclingRecordVo.java) (revision 34293) @@ -97,9 +97,14 @@ private Integer recyclingTimes; /** * 回收记录存在回收数量小于申请数量的物品(SZSDSRMYY-42 历史回收记录列表的回收单,单上有物品的回收数量小于申请数量时,该回收单在所在行的背景颜色显示为黄色) + * DGSETYY-50 也加了类似的需求 */ private boolean haveUnRecycling; /** + * 回收记录存在回收数量大于申请数量的物品 DGSETYY-50 + */ + private boolean greaterThan; + /** * 特殊感染类型 invoicePlan上的字段 */ private String specialInfection; @@ -229,6 +234,12 @@ public void setSpecialInfection(String specialInfection) { this.specialInfection = specialInfection; } + public boolean isGreaterThan() { + return greaterThan; + } + public void setGreaterThan(boolean greaterThan) { + this.greaterThan = greaterThan; + } } Index: ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordListSqlGenerator.java =================================================================== diff -u -r33942 -r34293 --- ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordListSqlGenerator.java (.../RecyclingRecordListSqlGenerator.java) (revision 33942) +++ ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordListSqlGenerator.java (.../RecyclingRecordListSqlGenerator.java) (revision 34293) @@ -42,11 +42,11 @@ private long end = 0; private String extraQuery; private boolean enableUrgentFunction = false; - private boolean enableHaveUnRecycling = false; + private boolean groupByInvoicePlanId = false; private ObjectDao objectDao; private Integer pageSize; private Set extraQuerys = null; - public RecyclingRecordListSqlGenerator(boolean enableUrgentFunction, InitDbConnection dbConnection,long start,long end,String filterJsonStr, String extraQuery, boolean enableHaveUnRecycling,ObjectDao objectDao, Integer pageSize, Set extraQuerys) { + public RecyclingRecordListSqlGenerator(boolean enableUrgentFunction, InitDbConnection dbConnection,long start,long end,String filterJsonStr, String extraQuery, boolean groupByInvoicePlanId,ObjectDao objectDao, Integer pageSize, Set extraQuerys) { this.pageSize = pageSize; this.objectDao = objectDao; this.dbConnection = dbConnection; @@ -64,7 +64,7 @@ this.extraQuery = extraQuery; } this.enableUrgentFunction = enableUrgentFunction; - this.enableHaveUnRecycling = enableHaveUnRecycling; + this.groupByInvoicePlanId = groupByInvoicePlanId; this.extraQuerys = extraQuerys; } private String buildRecyclingRecordFilterSql(){ @@ -215,7 +215,7 @@ if(this.enableUrgentFunction || extraQuerys != null && extraQuerys.contains("包数")){ joinSqlOfUrgent = " left join UrgentLevel ul on p.urgentLevel_id=ul.id left join RecyclingItem ri on ri.recyclingRecord_id=r.id "; groupBySql = " group by r.id,r.communicationUserCode,r.communicationUserName,r.depart,r.departCode,r.departmentSender,r.operator,r.orgUnitCoding,r.packingTaskSerialNumber,r.recycleAmountNeedConfirm,r.recyclingApplicationType,r.recyclingTime,r.recyclingUser,r.status,r.recyclingApplication_id,p.applicationTime,p.type,p.remark,p.submitTime,p.recyclingStatus,p.specialInfection ,ul.id ,ul.name ,ul.colorCode,ul.colorName,ul.grade,p.operationRoom,p.patient,p.hospitalNumber,p.serialNumber,r.recyclingTimes "; - if(this.enableHaveUnRecycling){ + if(this.groupByInvoicePlanId){ groupBySql += ",p.id "; } } Index: ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java =================================================================== diff -u -r34221 -r34293 --- ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java (.../RecyclingRecordManagerImpl.java) (revision 34221) +++ ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java (.../RecyclingRecordManagerImpl.java) (revision 34293) @@ -5498,17 +5498,29 @@ if(enableUrgentFunction){ extraQuery = ",ul.id ulId,ul.name ulName,ul.colorCode,ul.colorName,ul.grade ulGrade,case when sum(ri.urgentAmount)>0 then 1 else 0 end includingUrgent "; } - if(enableRecyclingRecordBGColorWhenRecycleAmountLessThanApplyAmount){ + boolean confirmRecyclingAmount = CssdUtils.getSystemSetConfigByNameBool("confirmRecyclingAmount", false); + String backgroundColorOfRecyclingRecordWhichRecyclingAmountNotEqualToAppplyAmount = CssdUtils.getSystemSetConfigByName("backgroundColorOfRecyclingRecordWhichRecyclingAmountNotEqualToAppplyAmount"); + boolean groupByInvoicePlanId = false; + if(enableRecyclingRecordBGColorWhenRecycleAmountLessThanApplyAmount || + confirmRecyclingAmount && StringUtils.isNotBlank(backgroundColorOfRecyclingRecordWhichRecyclingAmountNotEqualToAppplyAmount)){ StringBuffer sbf = new StringBuffer(300); sbf.append(",(select count(*) from ") .append(TousseItem.class.getSimpleName()) .append(" ti join ") .append(TousseDefinition.class.getSimpleName()) .append(" td on td.id=ti.tousseDefinitionId where td.isRecycling='是' and ti.recyclingApplication_ID=p.id and (recyclingAmount is null or amount> recyclingAmount)) haveUnRecycling "); + groupByInvoicePlanId = true; + if(confirmRecyclingAmount && StringUtils.isNotBlank(backgroundColorOfRecyclingRecordWhichRecyclingAmountNotEqualToAppplyAmount)){ + sbf.append(",(select count(*) from ") + .append(TousseItem.class.getSimpleName()) + .append(" ti join ") + .append(TousseDefinition.class.getSimpleName()) + .append(" td on td.id=ti.tousseDefinitionId where td.isRecycling='是' and ti.recyclingApplication_ID=p.id and amount recordVos = new ArrayList(); ResultSet rs = objectDao.executeSql(sql); @@ -5565,11 +5577,18 @@ if(showORRoomColumnInHistoryRecyclingRecordList){ record.setOperationRoom(rs.getString("operationRoom")); } - if(enableRecyclingRecordBGColorWhenRecycleAmountLessThanApplyAmount){ + if(enableRecyclingRecordBGColorWhenRecycleAmountLessThanApplyAmount || + confirmRecyclingAmount && StringUtils.isNotBlank(backgroundColorOfRecyclingRecordWhichRecyclingAmountNotEqualToAppplyAmount)){ int haveUnRecycling = rs.getInt("haveUnRecycling"); if(haveUnRecycling > 0){ record.setHaveUnRecycling(true); } + if(confirmRecyclingAmount && StringUtils.isNotBlank(backgroundColorOfRecyclingRecordWhichRecyclingAmountNotEqualToAppplyAmount)){ + int greaterThan = rs.getInt("greaterThan"); + if(greaterThan > 0){ + record.setGreaterThan(true); + } + } } record.setRecyclingStatus(rs.getString("recyclingStatus")); record.setSpecialInfection(rs.getString("specialInfection"));