Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/vo/DisposableGoodsItemUsageVo.java =================================================================== diff -u --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/vo/DisposableGoodsItemUsageVo.java (revision 0) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/vo/DisposableGoodsItemUsageVo.java (revision 39657) @@ -0,0 +1,92 @@ +package com.forgon.disinfectsystem.vo; + +import java.sql.Date; + +/** + * 一次性物品历史使用量(GZFDZL-157) + * @author Administrator + * + */ +public class DisposableGoodsItemUsageVo { + /**一次性物品定义id*/ + private Long id; + /**名称*/ + private String name; + /**规格*/ + private String specification; + /**使用数量*/ + private Long amount; + /**物资编码*/ + private String inventorySerialNumber; + /**使用时间*/ + private Date usageTime; + /**使用科室编码*/ + private String clinicOrgUnitCode; + /**使用科室名称*/ + private String clinicOrgUnitName; + /**一次性物品定义id(返回至前端时用到,和外部视图对接时采用物资编码字段进行匹配)*/ + private Long diposableGoodsId; + + public Long getId() { + return id; + } + public void setId(Long id) { + this.id = id; + } + public String getName() { + return name; + } + public void setName(String name) { + this.name = name; + } + public String getSpecification() { + return specification; + } + public void setSpecification(String specification) { + this.specification = specification; + } + public Long getAmount() { + return amount; + } + public void setAmount(Long amount) { + this.amount = amount; + } + /** + * 一次性物品使用数量,直接取amount字段的值 + * @return + */ + public Long getUseAmount(){ + return amount; + } + public String getInventorySerialNumber() { + return inventorySerialNumber; + } + public void setInventorySerialNumber(String inventorySerialNumber) { + this.inventorySerialNumber = inventorySerialNumber; + } + public Long getDiposableGoodsId() { + return diposableGoodsId; + } + public void setDiposableGoodsId(Long diposableGoodsId) { + this.diposableGoodsId = diposableGoodsId; + } + public Date getUsageTime() { + return usageTime; + } + public void setUsageTime(Date usageTime) { + this.usageTime = usageTime; + } + public String getClinicOrgUnitCode() { + return clinicOrgUnitCode; + } + public void setClinicOrgUnitCode(String clinicOrgUnitCode) { + this.clinicOrgUnitCode = clinicOrgUnitCode; + } + public String getClinicOrgUnitName() { + return clinicOrgUnitName; + } + public void setClinicOrgUnitName(String clinicOrgUnitName) { + this.clinicOrgUnitName = clinicOrgUnitName; + } + +} Index: ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/DiposableGoodsManager.java =================================================================== diff -u -r38500 -r39657 --- ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/DiposableGoodsManager.java (.../DiposableGoodsManager.java) (revision 38500) +++ ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/DiposableGoodsManager.java (.../DiposableGoodsManager.java) (revision 39657) @@ -19,6 +19,7 @@ import com.forgon.disinfectsystem.entity.assestmanagement.ExpensiveDisposablegoods; import com.forgon.disinfectsystem.entity.invoicemanager.InvoicePlan; import com.forgon.disinfectsystem.inventorymanagement.model.Inventory; +import com.forgon.disinfectsystem.vo.DisposableGoodsItemUsageVo; import com.forgon.disinfectsystem.vo.PriceAmount; import com.forgon.tools.hibernate.BasePoManager; @@ -396,4 +397,17 @@ * 推送一次性物品定义 */ public void pushDisposableGoods(); + + /** + * 根据科室编码、一次性物品定义id、开始时间与结束时间查询一次性物品使用量(GZFDZL-157) + * 接口定义为默认实现方法(返回空数组),需要重写(可以由不同项目具体的实现类(也可以是MyBatis方式重写))的项目自行进行重写 + * @param departCode 科室编码 + * @param diposableGoodsIds 一次性物品定义id,为多个值时,用逗号分隔 + * @param startDate 开始时间 + * @param endDate 结束时间 + * @return + */ + public List getDisposableGoodsUseAmountByDiposableGoodsIds(String departCode,String diposableGoodsIds, + String startDate,String endDate); + } Index: ssts-web/src/main/webapp/disinfectsystem/config/gzfdzl/interfaces/mybatis/DisposableGoodsItemUsageMapper.xml =================================================================== diff -u --- ssts-web/src/main/webapp/disinfectsystem/config/gzfdzl/interfaces/mybatis/DisposableGoodsItemUsageMapper.xml (revision 0) +++ ssts-web/src/main/webapp/disinfectsystem/config/gzfdzl/interfaces/mybatis/DisposableGoodsItemUsageMapper.xml (revision 39657) @@ -0,0 +1,37 @@ + + + + + + + + \ No newline at end of file Index: ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/DiposableGoodsManagerImpl.java =================================================================== diff -u -r39631 -r39657 --- ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/DiposableGoodsManagerImpl.java (.../DiposableGoodsManagerImpl.java) (revision 39631) +++ ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/DiposableGoodsManagerImpl.java (.../DiposableGoodsManagerImpl.java) (revision 39657) @@ -8,6 +8,7 @@ import java.sql.SQLException; import java.text.SimpleDateFormat; import java.util.ArrayList; +import java.util.Arrays; import java.util.Calendar; import java.util.Collection; import java.util.Collections; @@ -31,6 +32,7 @@ import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections4.MapUtils; +import org.apache.commons.lang.ArrayUtils; import org.apache.commons.lang.StringUtils; import org.apache.commons.lang3.ObjectUtils; import org.apache.log4j.Logger; @@ -89,6 +91,7 @@ import com.forgon.disinfectsystem.entity.tousseitem.TousseItem; import com.forgon.disinfectsystem.inventorymanagement.dao.InventoryDao; import com.forgon.disinfectsystem.inventorymanagement.model.Inventory; +import com.forgon.disinfectsystem.vo.DisposableGoodsItemUsageVo; import com.forgon.disinfectsystem.vo.PriceAmount; import com.forgon.exception.SystemException; import com.forgon.log.service.LogManager; @@ -108,6 +111,7 @@ import com.forgon.tools.hibernate.BasePoManagerImpl; import com.forgon.tools.json.JSONUtil; import com.forgon.tools.string.StringTools; +import com.forgon.tools.util.ForgonDateUtils; import com.forgon.tools.util.SqlUtils; public class DiposableGoodsManagerImpl extends BasePoManagerImpl implements DiposableGoodsManager { @@ -3622,4 +3626,39 @@ } disposableGoodsSyncDao.pushDisposableGoods(disposableGoodsList); } + + @Override + public List getDisposableGoodsUseAmountByDiposableGoodsIds( + String departCode, String diposableGoodsIds, String startDate, + String endDate) { + if(StringUtils.isBlank(diposableGoodsIds)){ + return new ArrayList(); + } + List disposableGoodsList = getCollection(diposableGoodsIds, com.forgon.Constants.IDS_SEPARATOR_COMMA); + if(CollectionUtils.isEmpty(disposableGoodsList)){ + return new ArrayList(); + } + //过滤掉高值耗材 + List inventorySerialNumberList = disposableGoodsList.stream().filter(dg -> { + return !dg.expensiveDiposablegoods() && StringUtils.isNotBlank(dg.getInventorySerialNumber()); + }).map(DisposableGoods::getInventorySerialNumber).collect(Collectors.toList()); + //较验日期格式 + Date startDateObject = StringUtils.isBlank(startDate) ? null : ForgonDateUtils.safelyParseDate(startDate); + Date endDateObject = StringUtils.isBlank(endDate) ? null : ForgonDateUtils.safelyParseDate(endDate); + DisposableGoodsItemUsageVo[] result = inventoryDao.getDisposableGoodsItemUsageVoList(departCode, inventorySerialNumberList, + startDateObject, endDateObject); + if(ArrayUtils.isNotEmpty(result)){ + Map map = new HashMap(); + disposableGoodsList.stream().forEach(dg -> { + map.put(dg.getInventorySerialNumber(), dg.getId()); + }); + List list = Arrays.asList(result); + for(DisposableGoodsItemUsageVo vo : list){ + vo.setDiposableGoodsId(map.get(vo.getInventorySerialNumber())); + } + return Arrays.asList(result); + } + return new ArrayList(); + } + } Index: ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/controller/DisposableGoodsController.java =================================================================== diff -u -r25105 -r39657 --- ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/controller/DisposableGoodsController.java (.../DisposableGoodsController.java) (revision 25105) +++ ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/controller/DisposableGoodsController.java (.../DisposableGoodsController.java) (revision 39657) @@ -18,6 +18,8 @@ import com.forgon.disinfectsystem.diposablegoods.service.DiposableGoodsManager; import com.forgon.disinfectsystem.entity.assestmanagement.DisposableGoods; +import com.forgon.disinfectsystem.vo.DisposableGoodsItemUsageVo; +import com.forgon.exception.SystemException; import com.forgon.tools.Constants; import com.forgon.tools.json.JSONUtil; import com.forgon.util.StringUtil; @@ -63,4 +65,30 @@ return result.toString(); } + /** + * 一次性物品历史使用量接口(GZFDZL-157) + * @param departCode 科室编码 + * @param diposableGoodsIds 一次性物品定义id,多个值采用逗号分隔.输入参数示例:"1,2,3,4" + * @param startDate 开始时间 + * @param endDate 结束时间 + * @return 返回格式示例{"success":true,"rows":[{"diposableGoodsIds": 132,"useAmount": 5000},{}...]} + * @return + */ + @RequestMapping(value = "/getDisposableGoodsUseAmountByDiposableGoodsIds" , method = RequestMethod.GET) + public String getDisposableGoodsUseAmountByDiposableGoodsIds(String departCode,String diposableGoodsIds,String startDate,String endDate){ + JSONObject result = JSONUtil.buildJsonObject(false); + try{ + List list = diposableGoodsManager.getDisposableGoodsUseAmountByDiposableGoodsIds(departCode, diposableGoodsIds, startDate, endDate); + JSONUtil.addRowsProperty(result, JSONArray.fromObject(list)); + JSONUtil.addSuccess(result, true); + }catch(SystemException e){ + e.printStackTrace(); + JSONUtil.addMessage(result, e.getMessage()); + }catch(Exception e){ + e.printStackTrace(); + JSONUtil.addMessage(result, "操作失败"); + } + return result.toString(); + } + } Index: ssts-datasync/src/main/java/com/forgon/disinfectsystem/inventorymanagement/dao/InventoryDao.java =================================================================== diff -u -r36645 -r39657 --- ssts-datasync/src/main/java/com/forgon/disinfectsystem/inventorymanagement/dao/InventoryDao.java (.../InventoryDao.java) (revision 36645) +++ ssts-datasync/src/main/java/com/forgon/disinfectsystem/inventorymanagement/dao/InventoryDao.java (.../InventoryDao.java) (revision 39657) @@ -8,6 +8,7 @@ import com.forgon.disinfectsystem.inventorymanagement.model.Inventory; import com.forgon.disinfectsystem.inventorymanagement.model.StorageEntry; import com.forgon.disinfectsystem.inventorymanagement.model.StorageEntryItem; +import com.forgon.disinfectsystem.vo.DisposableGoodsItemUsageVo; public interface InventoryDao extends UpdateEntryDao { @@ -181,4 +182,18 @@ */ public Inventory getInventory(String inventorySerialNumber, String specification); + /** + * 根据科室编码、一次性物品物资编码集合、开始时间与结束时间查询一次性物品使用量(GZFDZL-157) + * 接口定义为默认实现方法(返回空数组),需要重写(可以由不同项目具体的实现类(也可以是MyBatis方式重写))的项目自行进行重写 + * @param departCode 科室编码 + * @param inventorySerialNumberList 一次性物品物资编码集合 + * @param startDate 开始时间 + * @param endDate 结束时间 + * @return + */ + public default DisposableGoodsItemUsageVo[] getDisposableGoodsItemUsageVoList(@Param("departCode") String departCode, + @Param("inventorySerialNumberList") List inventorySerialNumberList,@Param("startDate") Date startDate,@Param("endDate") Date endDate){ + return new DisposableGoodsItemUsageVo[0]; + } + } Index: ssts-web/src/main/webapp/disinfectsystem/config/gzfdzl/spring/applicationContext-his-gzfdzl.xml =================================================================== diff -u -r28574 -r39657 --- ssts-web/src/main/webapp/disinfectsystem/config/gzfdzl/spring/applicationContext-his-gzfdzl.xml (.../applicationContext-his-gzfdzl.xml) (revision 28574) +++ ssts-web/src/main/webapp/disinfectsystem/config/gzfdzl/spring/applicationContext-his-gzfdzl.xml (.../applicationContext-his-gzfdzl.xml) (revision 39657) @@ -80,4 +80,17 @@ + + + + + + + + + + + + \ No newline at end of file