Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManager.java =================================================================== diff -u -r32330 -r32882 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManager.java (.../RecyclingApplicationManager.java) (revision 32330) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManager.java (.../RecyclingApplicationManager.java) (revision 32882) @@ -366,11 +366,6 @@ public void updateRecyclingStatus(Long useRecordId); /** - * 根据使用记录转换的申请单的回收状态集合,联动修改使用记录的回收状态 SZSZLYY-31 - * @param useRecordId - */ - public void updateRecyclingStatusByInvoicePlanRecyclingStatus(Long useRecordId); - /** * 根据器械包实例id来查找借物单(借物单状态不为已终止)的id * @param tousseInstanceId 器械包实例id * @return 返回借物单的id,如果是null则表示没找到 Index: ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java =================================================================== diff -u -r32827 -r32882 --- ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java (.../RecyclingRecordManagerImpl.java) (revision 32827) +++ ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java (.../RecyclingRecordManagerImpl.java) (revision 32882) @@ -490,7 +490,6 @@ } } } - updateRecyclingStatusByInvoicePlanRecyclingStatus(recyclingRecord.getRecyclingApplication()); //器械包加急处理 setRecyclingItemUrgentAmount(urgentTousseItems, items,true); Map tousseIdToRecyclingItemIdMap = new HashMap(); @@ -556,27 +555,6 @@ } } /** - * 根据使用记录转换的申请单的回收状态集合,联动修改使用记录的回收状态 SZSZLYY-31 - * @param recyclingApplication - */ - private void updateRecyclingStatusByInvoicePlanRecyclingStatus(InvoicePlan recyclingApplication){ - if(recyclingApplication == null){ - return; - } - if(recyclingApplication instanceof RecyclingApplication){ - RecyclingApplication ra = (RecyclingApplication)recyclingApplication; - if(ra.getUseRecord() != null){ - recyclingApplicationManager.updateRecyclingStatusByInvoicePlanRecyclingStatus(ra.getUseRecord().getId()); - } - }else if(recyclingApplication instanceof ForeignTousseApplication){ - ForeignTousseApplication fta = (ForeignTousseApplication)recyclingApplication; - if(fta.getUseRecord() != null){ - recyclingApplicationManager.updateRecyclingStatusByInvoicePlanRecyclingStatus(fta.getUseRecord().getId()); - } - } - - } - /** * * 保存修改回收数量的日志 * @param oldRecyclingAmount 修改前数量 Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManagerImpl.java =================================================================== diff -u -r32669 -r32882 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManagerImpl.java (.../RecyclingApplicationManagerImpl.java) (revision 32669) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManagerImpl.java (.../RecyclingApplicationManagerImpl.java) (revision 32882) @@ -4219,57 +4219,6 @@ } objectDao.saveOrUpdate(useRecord); } - /** - * 根据使用记录转换的申请单的回收状态集合,联动修改使用记录的回收状态 SZSZLYY-31 - * @param useRecordId 使用记录id - */ - @Override - public void updateRecyclingStatusByInvoicePlanRecyclingStatus(Long useRecordId){ - UseRecord useRecord = (UseRecord) objectDao.getById(UseRecord.class.getSimpleName(), useRecordId); - List recyclingApplications = objectDao.findByHql("select po from " + RecyclingApplication.class.getSimpleName() + " po where useRecord.id="+ useRecordId); - List foreignTousseApplications = objectDao.findByHql("select po from " + ForeignTousseApplication.class.getSimpleName() + " po where useRecord.id=" + useRecordId); - Set recyclingStatusSet = new HashSet(); - if(CollectionUtils.isNotEmpty(recyclingApplications)){ - for (RecyclingApplication ra : recyclingApplications) { - if(StringUtils.isBlank(ra.getRecyclingStatus())){ - continue; - } - recyclingStatusSet.add(ra.getRecyclingStatus()); - } - } - if(CollectionUtils.isNotEmpty(foreignTousseApplications)){ - for (ForeignTousseApplication fta : foreignTousseApplications) { - if(StringUtils.isBlank(fta.getRecyclingStatus())){ - continue; - } - if(InvoicePlan.RECYCLINGSTATUS_SECRECYCLED.equals(fta.getRecyclingStatus())){ - recyclingStatusSet.add(InvoicePlan.RECYCLINGSTATUS_RECYCLED); - }else{ - recyclingStatusSet.add(fta.getRecyclingStatus()); - } - } - } - if(CollectionUtils.isEmpty(recyclingStatusSet)){ - return; - } - int size = recyclingStatusSet.size(); - if(size == 1 && recyclingStatusSet.contains(InvoicePlan.RECYCLINGSTATUS_AWAITRECYCLE)){ - useRecord.setRecyclingStatus(UseRecord.RECYCLINGSTATUS_AWAITRECYCLE); - }else if(size == 1 && recyclingStatusSet.contains(InvoicePlan.RECYCLINGSTATUS_RECYCLED)){ - useRecord.setRecyclingStatus(UseRecord.RECYCLINGSTATUS_RECYCLED); - }else if(size == 1 && recyclingStatusSet.contains(InvoicePlan.STATUS_END)){ - useRecord.setRecyclingStatus(InvoicePlan.STATUS_END); - }else if(size == 1 && recyclingStatusSet.contains(InvoicePlan.RECYCLINGSTATUS_PARTRECYCLE)){ - useRecord.setRecyclingStatus(UseRecord.RECYCLINGSTATUS_PARTRECYCLE); - }else if(size == 2 && recyclingStatusSet.contains(InvoicePlan.RECYCLINGSTATUS_AWAITRECYCLE) && recyclingStatusSet.contains(InvoicePlan.STATUS_END)){ - useRecord.setRecyclingStatus(UseRecord.RECYCLINGSTATUS_AWAITRECYCLE); - }else if(size == 2 && recyclingStatusSet.contains(InvoicePlan.RECYCLINGSTATUS_RECYCLED) && recyclingStatusSet.contains(InvoicePlan.STATUS_END)){ - useRecord.setRecyclingStatus(UseRecord.RECYCLINGSTATUS_RECYCLED); - }else{ - useRecord.setRecyclingStatus(UseRecord.RECYCLINGSTATUS_PARTRECYCLE); - } - objectDao.saveOrUpdate(useRecord); - } private List getPrintTousseItems(List tousseTypes, String departCode,JSONObject printScope) { boolean repeatTodayPrintTousseItem = printScope != null?printScope.optBoolean("reprintTodayPrintedTousseItem"):false;//是否重复打印当天已经打印的包 String repeatSql = "1=2"; Index: ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/dwr/table/UseRecordTableManager.java =================================================================== diff -u -r32697 -r32882 --- ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/dwr/table/UseRecordTableManager.java (.../UseRecordTableManager.java) (revision 32697) +++ ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/dwr/table/UseRecordTableManager.java (.../UseRecordTableManager.java) (revision 32882) @@ -32,6 +32,7 @@ import com.forgon.security.service.OperationManager; import com.forgon.timeout.service.TimeoutManager; import com.forgon.tools.date.DateTools; +import com.forgon.tools.db.DatabaseUtil; import com.forgon.tools.json.JSONUtil; /** @@ -209,19 +210,11 @@ //设置使用记录转申请单超时提醒状态,超时的使用记录将【录入时间】列的背景颜色显示为红色DGSETYY-13 returnJson = setUnRecycleUseRecordWarnStatus(returnJson, new Date()); - //设置【病人所在科室】列CDSLQYQYYY-101 - returnJson = setDepartNameOfpatient(returnJson, new Date()); - + //修改返回信息 比如设置【病人所在科室】列CDSLQYQYYY-101 设置回收状态 + returnJson = updateReturnJson(returnJson, new Date()); return returnJson; } - - /** - * 设置【病人所在科室】列CDSLQYQYYY-101 - * @param returnJson - * @param date - * @return - */ - private String setDepartNameOfpatient(String returnJson, Date date) { + private String updateReturnJson(String returnJson, Date date){ JSONObject jsonData = JSONObject.fromObject(returnJson); JSONArray rowsJSONArray = jsonData.optJSONArray(JSONUtil.JSON_KEY_ROWS); if(CollectionUtils.isNotEmpty(rowsJSONArray)){ @@ -251,6 +244,13 @@ if(orgUnit != null){ data.put("departNameOfpatient", orgUnit.getName()); } + Long useRecordId = data.optLong("id"); + if(DatabaseUtil.isPoIdValid(useRecordId)){ + String recyclingStatus = useRecordManager.calcRecyclingStatusByInvoicePlanRecyclingStatus(useRecordId); + if(StringUtils.isNotBlank(recyclingStatus)){ + data.put("recyclingStatus", recyclingStatus); + } + } newRowsJSONArray.add(data); } jsonData.put(JSONUtil.JSON_KEY_ROWS,newRowsJSONArray); Index: ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/service/UseRecordManager.java =================================================================== diff -u -r31935 -r32882 --- ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/service/UseRecordManager.java (.../UseRecordManager.java) (revision 31935) +++ ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/service/UseRecordManager.java (.../UseRecordManager.java) (revision 32882) @@ -406,5 +406,10 @@ * 定时推送使用记录 */ public void timingPushUseRecord(); - + /** + * 根据使用记录转换的申请单的回收状态计算使用记录的回收状态 + * @param useRecordId + * @return + */ + public String calcRecyclingStatusByInvoicePlanRecyclingStatus(Long useRecordId); } Index: ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/service/UseRecordManagerImpl.java =================================================================== diff -u -r32848 -r32882 --- ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/service/UseRecordManagerImpl.java (.../UseRecordManagerImpl.java) (revision 32848) +++ ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/service/UseRecordManagerImpl.java (.../UseRecordManagerImpl.java) (revision 32882) @@ -20,7 +20,6 @@ import java.util.LinkedHashSet; import java.util.List; import java.util.Map; -import java.util.Map.Entry; import java.util.Set; import java.util.stream.Collectors; @@ -75,7 +74,6 @@ import com.forgon.disinfectsystem.entity.assestmanagement.DiposableGoodsInstance; import com.forgon.disinfectsystem.entity.assestmanagement.DisposableGoods; import com.forgon.disinfectsystem.entity.assestmanagement.DisposableGoodsBatch; -import com.forgon.disinfectsystem.entity.assestmanagement.DisposableGoodsBatchStock; import com.forgon.disinfectsystem.entity.assestmanagement.DisposableGoodsIdentification; import com.forgon.disinfectsystem.entity.assestmanagement.ExpensiveDisposablegoods; import com.forgon.disinfectsystem.entity.assestmanagement.ExpensiveGoods; @@ -10353,5 +10351,50 @@ this.pushUseRecord(useRecord); } } - + @Override + public String calcRecyclingStatusByInvoicePlanRecyclingStatus( + Long useRecordId) { + List recyclingApplications = objectDao.findByHql("select po from " + RecyclingApplication.class.getSimpleName() + " po where useRecord.id="+ useRecordId); + List foreignTousseApplications = objectDao.findByHql("select po from " + ForeignTousseApplication.class.getSimpleName() + " po where useRecord.id=" + useRecordId); + Set recyclingStatusSet = new HashSet(); + if(CollectionUtils.isNotEmpty(recyclingApplications)){ + for (RecyclingApplication ra : recyclingApplications) { + if(StringUtils.isBlank(ra.getRecyclingStatus())){ + continue; + } + recyclingStatusSet.add(ra.getRecyclingStatus()); + } + } + if(CollectionUtils.isNotEmpty(foreignTousseApplications)){ + for (ForeignTousseApplication fta : foreignTousseApplications) { + if(StringUtils.isBlank(fta.getRecyclingStatus())){ + continue; + } + if(InvoicePlan.RECYCLINGSTATUS_SECRECYCLED.equals(fta.getRecyclingStatus())){ + recyclingStatusSet.add(InvoicePlan.RECYCLINGSTATUS_RECYCLED); + }else{ + recyclingStatusSet.add(fta.getRecyclingStatus()); + } + } + } + if(CollectionUtils.isEmpty(recyclingStatusSet)){ + return null; + } + int size = recyclingStatusSet.size(); + if(size == 1 && recyclingStatusSet.contains(InvoicePlan.RECYCLINGSTATUS_AWAITRECYCLE)){ + return UseRecord.RECYCLINGSTATUS_AWAITRECYCLE; + }else if(size == 1 && recyclingStatusSet.contains(InvoicePlan.RECYCLINGSTATUS_RECYCLED)){ + return UseRecord.RECYCLINGSTATUS_RECYCLED; + }else if(size == 1 && recyclingStatusSet.contains(InvoicePlan.STATUS_END)){ + return InvoicePlan.STATUS_END; + }else if(size == 1 && recyclingStatusSet.contains(InvoicePlan.RECYCLINGSTATUS_PARTRECYCLE)){ + return UseRecord.RECYCLINGSTATUS_PARTRECYCLE; + }else if(size == 2 && recyclingStatusSet.contains(InvoicePlan.RECYCLINGSTATUS_AWAITRECYCLE) && recyclingStatusSet.contains(InvoicePlan.STATUS_END)){ + return UseRecord.RECYCLINGSTATUS_AWAITRECYCLE; + }else if(size == 2 && recyclingStatusSet.contains(InvoicePlan.RECYCLINGSTATUS_RECYCLED) && recyclingStatusSet.contains(InvoicePlan.STATUS_END)){ + return UseRecord.RECYCLINGSTATUS_RECYCLED; + }else{ + return UseRecord.RECYCLINGSTATUS_PARTRECYCLE; + } + } }