Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/departmentapplicationtemplate/service/DepartmentAppTemplateManager.java =================================================================== diff -u -r22708 -r29041 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/departmentapplicationtemplate/service/DepartmentAppTemplateManager.java (.../DepartmentAppTemplateManager.java) (revision 22708) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/departmentapplicationtemplate/service/DepartmentAppTemplateManager.java (.../DepartmentAppTemplateManager.java) (revision 29041) @@ -11,13 +11,16 @@ import com.forgon.disinfectsystem.entity.basedatamanager.departmentapplicationtemplate.TousseDefinitionTemplateItem; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseDefinition; import com.forgon.disinfectsystem.entity.tousseitem.TousseItem; +import com.forgon.tools.hibernate.BasePoManager; -public interface DepartmentAppTemplateManager { +public interface DepartmentAppTemplateManager extends BasePoManager { public boolean verifyAppTemplate(String id,String name); public DepartmentAppTemplate getAppTemplateById(String id); - + + public List getAppTemplateListByIds(String ids); + public DepartmentAppTemplate getAppTemplateByTitle(String title); public void saveDepartmentAppTemplate(DepartmentAppTemplate d); Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/departmentapplicationtemplate/service/DepartmentAppTemplateManagerImpl.java =================================================================== diff -u -r28958 -r29041 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/departmentapplicationtemplate/service/DepartmentAppTemplateManagerImpl.java (.../DepartmentAppTemplateManagerImpl.java) (revision 28958) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/departmentapplicationtemplate/service/DepartmentAppTemplateManagerImpl.java (.../DepartmentAppTemplateManagerImpl.java) (revision 29041) @@ -3,6 +3,7 @@ import java.sql.ResultSet; import java.util.ArrayList; import java.util.Calendar; +import java.util.Collection; import java.util.Collections; import java.util.Comparator; import java.util.Date; @@ -39,14 +40,14 @@ import com.forgon.exception.SystemException; import com.forgon.tools.MathTools; import com.forgon.tools.db.DatabaseUtil; +import com.forgon.tools.hibernate.BasePoManagerImpl; import com.forgon.tools.hibernate.ObjectDao; import com.forgon.tools.string.StringTools; import com.forgon.tools.util.SqlUtils; -public class DepartmentAppTemplateManagerImpl implements +public class DepartmentAppTemplateManagerImpl extends BasePoManagerImpl implements DepartmentAppTemplateManager { - private ObjectDao objectDao; private DiposableGoodBatchStockManager diposableGoodBatchStockManager; private TousseDefinitionManager tousseDefinitionManager; @@ -81,6 +82,10 @@ this.dateQueryAdapter = dateQueryAdapter; } + public DepartmentAppTemplateManagerImpl() { + super(DepartmentAppTemplate.class); + } + @Override public boolean verifyAppTemplate(String id, String name) { String sql = "where po.title = '" + name + "'"; @@ -103,6 +108,19 @@ } @Override + public List getAppTemplateListByIds(String ids) { + if(StringUtils.isNotBlank(ids)){ + String[] idArray = ids.split(","); + Collection idCollection = new ArrayList(); + for (String id : idArray) { + idCollection.add(Long.parseLong(id)); + } + return getCollection(idCollection); + } + return null; + } + + @Override public void saveDepartmentAppTemplate(DepartmentAppTemplate d) { if(d != null){ objectDao.saveOrUpdate(d); @@ -142,7 +160,7 @@ String sql = String.format("where po.orgUnitCode like '%s' " + "or po.orgUnitCode like '%s' " + "or po.orgUnitCode like '%s' " - + "or po.orgUnitCode like '%s'", departmentCode, departmentCode+",%", "%,"+departmentCode, "%,"+departmentCode+",%"); + + "or po.orgUnitCode like '%s' order by (case when sequence is null then 0 else sequence end)", departmentCode, departmentCode+",%", "%,"+departmentCode, "%,"+departmentCode+",%"); List list = objectDao.findBySql(DepartmentAppTemplate.class.getSimpleName(), sql); if(list != null && list.size() > 0){ List returnList = new ArrayList(); @@ -326,8 +344,26 @@ json.put("minUnit", disposableGoods.getUnit()); json.put("transferScale", disposableGoods.getTransferScale()); } - //设置模板里的默认数量 - json.put("count", item.getAmount()); + Integer amount = item.getAmount(); + if(amount != null && amount.intValue() > 0){ + //设置模板里的默认数量 + json.put("count", amount); + try{ + double price = json.optDouble("price"); + if(price > 0){ + Double totalPrice = MathTools.mul(amount, price).doubleValue(); + Integer transferScale = disposableGoods.getTransferScale(); + if(transferScale != null && transferScale.intValue() > 0){ + totalPrice = MathTools.mul(totalPrice, transferScale).doubleValue(); + } + //设置模板里的小计(数量 * 转换系数 * 单价) + json.put("totalPrice", totalPrice); + } + }catch(Exception e){ + e.printStackTrace(); + } + } + if (jsonArray.contains(json) == false){ jsonArray.add(json); } Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/action/RecyclingApplicationAction.java =================================================================== diff -u -r28946 -r29041 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/action/RecyclingApplicationAction.java (.../RecyclingApplicationAction.java) (revision 28946) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/action/RecyclingApplicationAction.java (.../RecyclingApplicationAction.java) (revision 29041) @@ -432,8 +432,8 @@ //根据申请单类型来设置物品类型,用于后面filterGoodByType()方法来过滤对应的物品 String goodType = tousseDefinitionHelper.setGoodTypeByFormType(applicationFormType); // 模板Id - String templateId = StrutsParamUtils.getPraramValue("templateId", null); - templateId = DatabaseUtil.isPoIdValid(templateId) ? templateId : null; + String templateIds = StrutsParamUtils.getPraramValue("templateId", null); + //templateIds = DatabaseUtil.isPoIdValid(templateIds) ? templateIds : null; // 申请单Id,如果申请单id为空则表示新建申请单,加载模板时需要加载对应物品的默认申请数量.否则不加载否认申请数量(GDSZYY-15 科室申领模板增加物品默认申请数量的功能) String applicationId = StrutsParamUtils.getPraramValue("id", null); //是否需要清空模板物品的默认数量(打开已有申请单的场景) @@ -488,12 +488,18 @@ } List templates = null; - if (StringUtils.isNotBlank(templateId)) { + if (StringUtils.isNotBlank(templateIds)) { templates = new ArrayList(); - DepartmentAppTemplate template = departmentAppTemplateManager.getAppTemplateById(templateId); - templates.add(template); + List templateList = departmentAppTemplateManager.getAppTemplateListByIds(templateIds); + if(CollectionUtils.isNotEmpty(templateList)){ + templates.addAll(templateList); + } } else { - templates = departmentAppTemplateManager.getDepartmentAppTemplates(orgunitCodes); + if(CssdUtils.getSystemSetConfigByNameBool("notLoadApplyTemplateWhenCreateDeptApplication")){ + templates = new ArrayList(); + }else{ + templates = departmentAppTemplateManager.getDepartmentAppTemplates(orgunitCodes); + } } double disposableFloatPercent = supplyRoomConfigManager.getDisposableGoodsFluctuationDoubleByOrgUnitCoding(settleAccountsDepartCoding); //一次性物品的浮动系数