Index: ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java =================================================================== diff -u -r25374 -r25376 --- ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java (.../RecyclingRecordManagerImpl.java) (revision 25374) +++ ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java (.../RecyclingRecordManagerImpl.java) (revision 25376) @@ -8,6 +8,7 @@ import java.util.Calendar; import java.util.Collection; import java.util.Collections; +import java.util.Comparator; import java.util.Date; import java.util.HashMap; import java.util.HashSet; @@ -20,6 +21,8 @@ import net.sf.json.JSONArray; import net.sf.json.JSONObject; +import net.sf.json.JsonConfig; +import net.sf.json.util.CycleDetectionStrategy; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.Predicate; @@ -4574,4 +4577,115 @@ } return showDepart; } + + private void setRecyclingRecordData(RecyclingRecord recyclingRecord){ + if (recyclingRecord != null && recyclingRecord.getItems() != null) { + for (RecyclingItem item : recyclingRecord.getItems()) { + TousseDefinition td = tousseDefinitionManager + .getTousseDefinitionByName(item.getTousseName()); + if (td != null) { + List errors = item.getRecyclingErrors(); + if (errors != null && errors.size() > 0 + && td.getMaterialInstances() != null) { + for (MaterialErrorDamageDetail error : errors) { + if (error.isIDCard()) { + error.setAmountPerTousse(1); + } else { + for (MaterialInstance mi : td + .getMaterialInstances()) { + MaterialDefinition md = mi + .getMaterialDefinition(); + + String materialName = CssdUtils.getMaterialName(md); + if (StringUtils.equals(materialName, + error.getMaterialName())) { + error.setAmountPerTousse(mi.getCount()); + break; + } + } + } + } + } + } + } + } + for (ClassifyBasket basket : recyclingRecord.getClassifyBaskets()) { + RecyclingBasketSequence seq = classifyBasketRecyclingSequenceManager.get(recyclingRecord.getId(), basket.getId()); + if(seq != null){ + basket.setSequence(seq.getSequence()); + } + // 把数据加载出来否则页面不能拿到item对象 + Set cis = basket.getClassfiedItems(); + if(CollectionUtils.isNotEmpty(cis)){ + Set tdids = cis.stream().map(p->p.getTousseDefinitionID()).collect(Collectors.toSet()); + if(CollectionUtils.isNotEmpty(tdids)){ + List tds = tousseDefinitionManager.getCollection(tdids); + for(ClassifiedItem ci : cis){ + if(ci.getTousseDefinition() == null){ + ci.setTousseDefinition(IDOperators.find(tds, ci.getTousseDefinitionID())); + } + } + } + } + } + } + + private JSONObject recyclingRecordToJson(RecyclingRecord recyclingRecord){ + setRecyclingRecordData(recyclingRecord); + + JsonConfig config = new JsonConfig(); + config.setExcludes(new String[] { "toussePackingTeachingImage", + "recyclingRecords", "recyclingRecord", "tousseItem", + "washAndDisinfectRecords", "materialInstances", + "diposableGoodsItems", "invoice", "image", "images", + "invoicePlan", "fieldHandler", "handler", + "idCardDefinitions", "hibernateLazyInitializer", + "recyclingApplications", "parent", "classifyBasket" }); + config.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT); + Collections.sort(recyclingRecord.getItems(),new Comparator() { + @Override + public int compare(RecyclingItem b1, + RecyclingItem b2) { + return b2.getId().compareTo( + b1.getId()); + } + }); + return JSONObject.fromObject(recyclingRecord, config); + } + public String getRecyclingRecordById(String id) { + RecyclingRecord recyclingRecord = get(id); + String json = ""; + try { + JSONObject obj = recyclingRecordToJson(recyclingRecord); + json = obj.toString(); + } catch (Exception e) { + e.printStackTrace(); + } + return json; + } + + /** + * 获取所有已清点的回收数据. + * @return + */ + public String getAllTalliedRecyclingRecords() { + JSONArray array = new JSONArray(); + String hql = String + .format(" select distinct po from %s po inner join fetch po.items where po.recyclingApplication.recyclingStatus=%s", + RecyclingRecord.class.getSimpleName(), + InvoicePlan.RECYCLINGSTATUS_TALLIED); + List list = objectDao.findByHql(hql); + if (list != null) { + for (RecyclingRecord recyclingRecord : list) { + try { + JSONObject obj = recyclingRecordToJson(recyclingRecord); + array.add(obj); + } catch (Exception e) { + e.printStackTrace(); + } + } + + } + return array.toString(); + } } Index: ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/dwr/table/RecyclingRecordTableManager.java =================================================================== diff -u -r23839 -r25376 --- ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/dwr/table/RecyclingRecordTableManager.java (.../RecyclingRecordTableManager.java) (revision 23839) +++ ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/dwr/table/RecyclingRecordTableManager.java (.../RecyclingRecordTableManager.java) (revision 25376) @@ -5,20 +5,14 @@ import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; -import java.util.Collections; -import java.util.Comparator; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Set; -import java.util.stream.Collectors; import net.sf.json.JSONArray; import net.sf.json.JSONObject; -import net.sf.json.JsonConfig; -import net.sf.json.util.CycleDetectionStrategy; -import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; @@ -29,19 +23,11 @@ import com.forgon.directory.acegi.tools.AcegiHelper; import com.forgon.disinfectsystem.basedata.becleanitem.service.ClassifyBasketManager; import com.forgon.disinfectsystem.basedatamanager.supplyroomconfig.service.SupplyRoomConfigManager; -import com.forgon.disinfectsystem.common.CssdUtils; -import com.forgon.disinfectsystem.entity.basedatamanager.materialdefinition.MaterialDefinition; -import com.forgon.disinfectsystem.entity.basedatamanager.materialinstance.MaterialInstance; import com.forgon.disinfectsystem.entity.basedatamanager.supplyroomconfig.SupplyRoomConfig; -import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseDefinition; import com.forgon.disinfectsystem.entity.becleanitem.ClassifiedItem; import com.forgon.disinfectsystem.entity.becleanitem.ClassifyBasket; import com.forgon.disinfectsystem.entity.invoicemanager.InvoicePlan; -import com.forgon.disinfectsystem.entity.materialerrordamage.MaterialErrorDamageDetail; -import com.forgon.disinfectsystem.entity.recyclingrecord.RecyclingBasketSequence; -import com.forgon.disinfectsystem.entity.recyclingrecord.RecyclingItem; import com.forgon.disinfectsystem.entity.recyclingrecord.RecyclingRecord; -import com.forgon.disinfectsystem.idpredicate.IDOperators; import com.forgon.disinfectsystem.packing.service.ClassifyBasketRecyclingSequenceManager; import com.forgon.disinfectsystem.recyclingapplication.vo.ApplicationItemVO; import com.forgon.disinfectsystem.recyclingrecord.service.RecyclingRecordManager; @@ -256,82 +242,16 @@ * @return */ public String getRecyclingRecordById(String id) { - RecyclingRecord recyclingRecord = recyclingRecordManager.get(id); - if (recyclingRecord != null && recyclingRecord.getItems() != null) { - for (RecyclingItem item : recyclingRecord.getItems()) { - TousseDefinition td = tousseDefinitionManager - .getTousseDefinitionByName(item.getTousseName()); - if (td != null) { - List errors = item.getRecyclingErrors(); - if (errors != null && errors.size() > 0 - && td.getMaterialInstances() != null) { - for (MaterialErrorDamageDetail error : errors) { - if (error.isIDCard()) { - error.setAmountPerTousse(1); - } else { - for (MaterialInstance mi : td - .getMaterialInstances()) { - MaterialDefinition md = mi - .getMaterialDefinition(); - - String materialName = CssdUtils.getMaterialName(md); - if (StringUtils.equals(materialName, - error.getMaterialName())) { - error.setAmountPerTousse(mi.getCount()); - break; - } - } - } - } - } - } - } - } - for (ClassifyBasket basket : recyclingRecord.getClassifyBaskets()) { - RecyclingBasketSequence seq = classifyBasketRecyclingSequenceManager.get(recyclingRecord.getId(), basket.getId()); - if(seq != null){ - basket.setSequence(seq.getSequence()); - } - // 把数据加载出来否则页面不能拿到item对象 - Set cis = basket.getClassfiedItems(); - if(CollectionUtils.isNotEmpty(cis)){ - Set tdids = cis.stream().map(p->p.getTousseDefinitionID()).collect(Collectors.toSet()); - if(CollectionUtils.isNotEmpty(tdids)){ - List tds = tousseDefinitionManager.getCollection(tdids); - for(ClassifiedItem ci : cis){ - if(ci.getTousseDefinition() == null){ - ci.setTousseDefinition(IDOperators.find(tds, ci.getTousseDefinitionID())); - } - } - } - } - } - - String json = ""; - try { - JsonConfig config = new JsonConfig(); - config.setExcludes(new String[] { "toussePackingTeachingImage", - "recyclingRecords", "recyclingRecord", "tousseItem", - "washAndDisinfectRecords", "materialInstances", - "diposableGoodsItems", "invoice", "image", "images", - "invoicePlan", "fieldHandler", "handler", - "idCardDefinitions", "hibernateLazyInitializer", - "recyclingApplications", "parent", "classifyBasket" }); - config.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT); - Collections.sort(recyclingRecord.getItems(),new Comparator() { - @Override - public int compare(RecyclingItem b1, - RecyclingItem b2) { - return b2.getId().compareTo( - b1.getId()); - } - }); - json = JSONObject.fromObject(recyclingRecord, config).toString(); - } catch (Exception e) { - e.printStackTrace(); - } - return json; + return recyclingRecordManager.getRecyclingRecordById(id); } + + /** + * 获取所有已清点的回收数据. + * @return + */ + public String getAllTalliedRecyclingRecords() { + return recyclingRecordManager.getAllTalliedRecyclingRecords(); + } public List findApplicationItemVOListByRecyclingRecordId( String id) { Index: ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManager.java =================================================================== diff -u -r24795 -r25376 --- ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManager.java (.../RecyclingRecordManager.java) (revision 24795) +++ ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManager.java (.../RecyclingRecordManager.java) (revision 25376) @@ -9,7 +9,6 @@ import com.forgon.disinfectsystem.recyclingrecord.vo.CustomIntoBasket; import com.forgon.disinfectsystem.recyclingrecord.vo.RecyclingBasketItemVo; import com.forgon.disinfectsystem.recyclingrecord.vo.RecyclingContext; -import com.forgon.disinfectsystem.recyclingrecord.vo.RecyclingPrintData; import com.forgon.disinfectsystem.recyclingrecord.vo.UrgentTousseItem; import com.forgon.tools.hibernate.BasePoManager; @@ -97,4 +96,7 @@ */ public void canAddThisBasketItem(String materialInstanceId, List baskets, String tousseIntoBasketInfo,Long recyclingApplicationId); + + public String getRecyclingRecordById(String id); + public String getAllTalliedRecyclingRecords(); } Index: ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/action/RecyclingRecordAction.java =================================================================== diff -u -r25344 -r25376 --- ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/action/RecyclingRecordAction.java (.../RecyclingRecordAction.java) (revision 25344) +++ ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/action/RecyclingRecordAction.java (.../RecyclingRecordAction.java) (revision 25376) @@ -3303,5 +3303,13 @@ } StrutsResponseUtils.output(result); } + + /** + * 获取所有已清点的回收数据. + * @return + */ + public void getAllTalliedRecyclingRecords() { + StrutsResponseUtils.output(recyclingRecordManager.getAllTalliedRecyclingRecords()); + } }