Index: ssts-web/src/main/webapp/disinfectsystem/borrow/borrowingTousseView.jsp =================================================================== diff -u -r23264 -r23873 --- ssts-web/src/main/webapp/disinfectsystem/borrow/borrowingTousseView.jsp (.../borrowingTousseView.jsp) (revision 23264) +++ ssts-web/src/main/webapp/disinfectsystem/borrow/borrowingTousseView.jsp (.../borrowingTousseView.jsp) (revision 23873) @@ -99,7 +99,6 @@ var today = '<%=request.getAttribute("today")%>'; var tousseType_tousse = '<%=TousseDefinition.PACKAGE_TYPE_INSIDE%>'; - @@ -119,7 +118,8 @@ - + + Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/result/LoadTousseLeaseItemsResultBuilder.java =================================================================== diff -u -r23404 -r23873 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/result/LoadTousseLeaseItemsResultBuilder.java (.../LoadTousseLeaseItemsResultBuilder.java) (revision 23404) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/result/LoadTousseLeaseItemsResultBuilder.java (.../LoadTousseLeaseItemsResultBuilder.java) (revision 23873) @@ -1,6 +1,20 @@ package com.forgon.disinfectsystem.recyclingapplication.result; -import com.forgon.disinfectsystem.common.CssdUtils; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import net.sf.json.JSONArray; +import net.sf.json.JSONObject; + +import org.apache.commons.collections4.MapUtils; +import org.apache.commons.lang3.ObjectUtils; +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseDefinition; import com.forgon.disinfectsystem.entity.invoicemanager.Invoice; import com.forgon.disinfectsystem.entity.invoicemanager.InvoiceItem; import com.forgon.disinfectsystem.entity.invoicemanager.InvoicePlan; @@ -9,23 +23,10 @@ import com.forgon.disinfectsystem.entity.recyclingrecord.RecyclingRecord; import com.forgon.disinfectsystem.entity.tousseitem.TousseItem; import com.forgon.disinfectsystem.recyclingapplication.service.RecyclingApplicationManager; +import com.forgon.disinfectsystem.tousse.toussedefinition.service.TousseDefinitionManager; import com.forgon.tools.hibernate.ObjectDao; import com.forgon.tools.util.ForgonDateUtils; -import net.sf.json.JSONArray; -import net.sf.json.JSONObject; - -import org.apache.commons.collections4.MapUtils; -import org.apache.commons.lang3.ObjectUtils; -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.Set; - /** * @author zhonghaowen * @apiNote 点开借物单,查看里面的发货,归还详情结果构造类 @@ -39,11 +40,14 @@ private ObjectDao objectDao; + private TousseDefinitionManager tousseDefinitionManager; + protected Logger logger = Logger.getLogger(this.getClass()); - public LoadTousseLeaseItemsResultBuilder(RecyclingApplicationManager recyclingApplicationManager, ObjectDao objectDao) { + public LoadTousseLeaseItemsResultBuilder(RecyclingApplicationManager recyclingApplicationManager, ObjectDao objectDao,TousseDefinitionManager tousseDefinitionManager) { this.recyclingApplicationManager = recyclingApplicationManager; this.objectDao = objectDao; + this.tousseDefinitionManager=tousseDefinitionManager; } /** @@ -97,6 +101,10 @@ parent.put("type", "申请借物"); parent.put("amount", tousseItem.getAmount()); parent.put("price", tousseItem.getPrice()); + //simon-add:根据tousseItem查找借出价格。 + Long id=tousseItem.getTousseDefinitionId(); + TousseDefinition tousseDefinition = tousseDefinitionManager.getTousseDefinitionByTousseItem(tousseItem); + parent.put("borrowPrice", tousseDefinition.getBorrowPrice()); parent.put("rowPrice", tousseItem.getRowPrice()); parent.put("time", dateFormat.format(recyclingApplication.getApplicationTime())); parent.put("uiProvider", "col"); @@ -254,6 +262,8 @@ json.put("type", "发货"); json.put("amount", invoiceItem.getAmount()); json.put("time", dateFormat.format(invoice.getSendTime())); + //simon-add:借出价格,根据包定义获取借出价格。 +// json.put("borrowPrice", ); this.buildLeafNode(json, children); break; } Index: ssts-web/src/main/webapp/disinfectsystem/borrow/borrowingTousseView.js =================================================================== diff -u -r23577 -r23873 --- ssts-web/src/main/webapp/disinfectsystem/borrow/borrowingTousseView.js (.../borrowingTousseView.js) (revision 23577) +++ ssts-web/src/main/webapp/disinfectsystem/borrow/borrowingTousseView.js (.../borrowingTousseView.js) (revision 23873) @@ -17,6 +17,36 @@ return true; } + +//simon-add:查看收费单即打印预览 +function viewBorrowCharge(id){ + if(id==null){ + id=0; + } + printBorrowChargeById(id,1); +} + +//simon-add:按天收费时--批量打印收费单 +function printBorrowCharges(grid){ + var records = grid.getSelectionModel().getSelections(); + if (records.length == 0) { + showResult("请选择要打印的" + entityName + "单!"); + return false; + } + + for(var i=0;i"; } - + + //simon-add:打印此单,需要满足两个个条件:1.借物单已部分发货;2.借物单全部发货 + if ((returnStatusArr[1] == returnStatus) ||( returnStatusArr[2] == returnStatus)){ + returnButton += ""; + } + return inoviceButton + returnButton; } },{id : 'operationRemark',header : "备注",dataIndex : 'remark'} @@ -386,7 +414,17 @@ handler : function() { printBorrowApplication(grid); } - },'-', { + }, + '-',{ + text : '打印收费单', + iconCls : 'icon_print', + id : 'endBtn', + hidden : SSTS_Invoice_End, + handler : function() { + printBorrowCharges(grid); + } + }, + '-', { text : '批量审核借物单', iconCls : 'btn_ext_application_edit', id : 'confirmBtn', Index: ssts-web/src/main/webapp/disinfectsystem/print/printApplicationGoods.js =================================================================== diff -u -r23739 -r23873 --- ssts-web/src/main/webapp/disinfectsystem/print/printApplicationGoods.js (.../printApplicationGoods.js) (revision 23739) +++ ssts-web/src/main/webapp/disinfectsystem/print/printApplicationGoods.js (.../printApplicationGoods.js) (revision 23873) @@ -167,7 +167,7 @@ * @param isBatchPrint 是否是批量打印,如果是批量打印,将根据后台传过来的summary中的printTemplate属性重新设置formTypeOfPrinted。printTemplate的默认值为invoicePlan */ function printByJsonPrintObject(printObj, msgBox, isNotSupplyRoomUser,printType,isBatchPrint){ - + var totalPageAmount = printObj.totalPageAmount; var count = 0; for (var i=0;i" + +"" + +"类别" + +"序号" + +"名称" + +"规格" + +"借出总数" + +"已归还数量" + +"未还数量" + +"借出天数" + +"截止目前借出天数" + +"借出单价(元/天)" + +"金额(元)" + +"" + +""; + + //遍历已归还信息数组 + for(var v=0;v"; + if(v==0){ + tableHtml=tableHtml+"已还";//"+alreadyReturn.length+" + } + tableHtml=tableHtml+""+(v+1)+"" + +""+alreadyReturn[v].tousseName+"" + +"" + +""+alreadyReturn[v].lendAmount+"" + +""+alreadyReturn[v].returnAmount+"" + +"" + +""+alreadyReturn[v].lendDays+"" + +"" + +""+alreadyReturn[v].price+"" + +""+alreadyReturn[v].totalPrice+"" + +""; + sum=sum+alreadyReturn[v].totalPrice; + } + + //遍历未归还信息数组 + for(var v=0;v0){ + tableHtml=tableHtml+""; + if(v==0){ + tableHtml=tableHtml+"未还"; + } + tableHtml=tableHtml+""+(v+1)+"" + +""+remainReturn[v].tousseName+"" + +"" + +""+remainReturn[v].lendAmount+"" + +"" + +""+remainReturn[v].remainAmount+"" + +"" + +""+remainReturn[v].remainDays+"" + +""+remainReturn[v].price+"" + +""+remainReturn[v].totalPrice+"" + +""; + sum=sum+remainReturn[v].totalPrice; + } + } + + //合计:金额 + tableHtml=tableHtml+"" + +"合计" + +"" + +"" + +"" + +"" + +"" + +"" + +"" + +"" + +"" + +""+Math.floor((sum)*10)/10+"" + +""; + + //2、按次收费模式的收费单格式 + var totalAmountPerUse=0; + var tableHtml1="" + +"" + +"" + +"" + +"" + +"" + +"" + +"" + +"" + +"" + +""; + + for(var v=0;v" + +"" + +"" + +"" + +"" + +"" + +"" + +""; + totalAmountPerUse=totalAmountPerUse+alreadyReturn[v].totalPrice; + } + + //合计:金额 + tableHtml1=tableHtml1+"" + +"" + +"" + +"" + +"" + +"" + +"" + +"
序号名称规格借出数量借出单价(元)金额(元)
"+(v+1)+""+alreadyReturn[v].tousseName+""+alreadyReturn[v].lendAmount+""+alreadyReturn[v].price+""+alreadyReturn[v].price*alreadyReturn[v].lendAmount+"
合计"+Math.floor((totalAmountPerUse)*100)/100+"
"; + + //部门 + var depart=otherMsg.depart; + //仓库 + var wareHouse=otherMsg.wareHouse; + //打印时间 + var time= new Date(); + //制单人 + var applicant=otherMsg.applicant; + //处理科室 + var handleDepart=otherMsg.handleDepart; + + var head='

贵港市人民医院('+handleDepart+')借物收费单

' + +'
部门:'+depart+'仓库:' + +''+wareHouse+'
' + +'
备注:
'; + + + var footer='
打印时间:'+dateToStr(time)+'' + +'科室确认人:' + +'制单人:'+applicant+'
'; + +'
'; + + LODOP.SET_PRINT_STYLE("ItemType",1); + LODOP.ADD_PRINT_HTM('0.2cm','0.5cm',"23cm","3cm",head); + + LODOP.SET_PRINT_STYLE("ItemType",1); + LODOP.ADD_PRINT_HTM('8.5cm','0.5cm',"23cm","2cm",footer); + + LODOP.SET_PRINT_STYLE("ItemType", 2); + LODOP.SET_PRINT_STYLE("FontSize", 8); + LODOP.ADD_PRINT_TEXT('8.7cm','21cm',"RightMargin:0.5cm","BottomMargin:1cm", "第#页/共&页"); + + LODOP.SET_PRINT_STYLE("ItemType",4); + //判断收费模式 + if(sstsConfig.isBorrowChargeByDayAndShow){ + LODOP.ADD_PRINT_TABLE('2.5cm','0.5cm',"RightMargin:0.2cm","5cm",tableHtml); + }else{ + LODOP.ADD_PRINT_TABLE('2.5cm','0.5cm',"RightMargin:0.2cm","5cm",tableHtml1); + } + + if(printType == 0){//直接打印 + LODOP.PRINT(); + }else{//打印预览 + LODOP.SET_SHOW_MODE("HIDE_PAPER_BOARD",1); + LODOP.PREVIEW(); + } +}; + + +//将字符串形式日期转化成Date形式 +function revertDate(dateStr){ + //此处转换的字符串形式为2018-07-05 19:48 + var array=dateStr.split(' '); + var dateArray=array[0].split('-'); + var timeArray=array[1].split(':'); + var year=parseInt(dateArray[0]); + var month=parseInt(dateArray[1])-1; + var day=parseInt(dateArray[2]); + var hour=parseInt(timeArray[0]); + var min=parseInt(timeArray[1]); + var sec=0; + if(timeArray.length>2){ + sec=parseInt(timeArray[2]); + } + var date=new Date(); + date.setFullYear(year); + date.setMonth(month); + date.setDate(day); + date.setHours(hour); + date.setMinutes(min); + date.setSeconds(sec); + return date; +} + +function dateToStr(datetime){ + + var year = datetime.getFullYear(); + var month = datetime.getMonth()+1; + var date = datetime.getDate(); + var hour = datetime.getHours(); + var minutes = datetime.getMinutes(); + var second = datetime.getSeconds(); + + if(month<10){ + month = "0" + month; + } + if(date<10){ + date = "0" + date; + } + if(hour <10){ + hour = "0" + hour; + } + if(minutes <10){ + minutes = "0" + minutes; + } + if(second <10){ + second = "0" + second ; + } + + var time = year+"-"+month+"-"+date+" "+hour+":"+minutes+":"+second; //2009-06-12 17:18:05 + return time; + } + + + + Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManager.java =================================================================== diff -u -r23746 -r23873 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManager.java (.../RecyclingApplicationManager.java) (revision 23746) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManager.java (.../RecyclingApplicationManager.java) (revision 23873) @@ -14,6 +14,7 @@ import com.forgon.directory.model.OrgUnit; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseDefinition; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseInstance; +import com.forgon.disinfectsystem.entity.invoicemanager.Invoice; import com.forgon.disinfectsystem.entity.invoicemanager.InvoicePlan; import com.forgon.disinfectsystem.entity.recyclingapplication.RecyclingApplication; import com.forgon.disinfectsystem.entity.recyclingrecord.RecyclingRecord; @@ -450,4 +451,10 @@ * @return */ public String[] batchPrint(String batchId, JSONObject printScope, List printSummaryList); + /** + * simon-add:根据申请单ID获取发货单 + * @param applicationId + * @return + */ + public List getInvoicesByApplicationId(String applicationId); } Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/action/RecyclingApplicationAction.java =================================================================== diff -u -r23852 -r23873 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/action/RecyclingApplicationAction.java (.../RecyclingApplicationAction.java) (revision 23852) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/action/RecyclingApplicationAction.java (.../RecyclingApplicationAction.java) (revision 23873) @@ -9,6 +9,7 @@ import java.util.Collection; import java.util.Date; import java.util.HashMap; +import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Map; @@ -35,12 +36,14 @@ import org.apache.struts2.convention.annotation.Namespace; import org.apache.struts2.convention.annotation.ParentPackage; +import com.alibaba.fastjson.JSON; import com.beust.jcommander.ParameterException; import com.forgon.directory.acegi.tools.AcegiHelper; import com.forgon.directory.model.CssdServiceDepts; import com.forgon.directory.model.OrgUnit; import com.forgon.directory.service.OrgUnitManager; import com.forgon.disinfectsystem.basedatamanager.supplyroomconfig.service.SupplyRoomConfigManager; +import com.forgon.disinfectsystem.basedatamanager.warehouse.service.WareHouseManager; import com.forgon.disinfectsystem.common.Constants; import com.forgon.disinfectsystem.common.CssdUtils; import com.forgon.disinfectsystem.departmentapplicationtemplate.service.DepartmentAppTemplateManager; @@ -106,7 +109,7 @@ protected Logger logger = Logger.getLogger(this.getClass()); private RecyclingApplication recyclingApplication = new RecyclingApplication(); - + private RecyclingApplicationVo oldRecyclingApplication; private String ids; @@ -141,7 +144,16 @@ private ApplicationLogManager applicationLogManager; private OrgUnitManager orgUnitManager; + + private WareHouseManager wareHouseManager; +// private InvoiceManager invoiceManager; + + + public void setWareHouseManager(WareHouseManager wareHouseManager) { + this.wareHouseManager = wareHouseManager; + } + public void setOrgUnitManager(OrgUnitManager orgUnitManager) { this.orgUnitManager = orgUnitManager; } @@ -669,7 +681,7 @@ */ public void loadTousseLeaseItems() { try { - LoadTousseLeaseItemsResultBuilder resultBuilder = new LoadTousseLeaseItemsResultBuilder(recyclingApplicationManager, objectDao); + LoadTousseLeaseItemsResultBuilder resultBuilder = new LoadTousseLeaseItemsResultBuilder(recyclingApplicationManager, objectDao,tousseDefinitionManager); JSONArray result = resultBuilder.buildLoadTousseLeaseItems(recyclingApplication); StrutsResponseUtils.output(result); } @@ -678,7 +690,46 @@ StrutsResponseUtils.output(false, e.getMessage()); } } + + /** + * simon-add:加载借物单收费信息 + */ + public void loadBrrowCharge(){ + String borrowApplicationId = StrutsParamUtils.getPraramValue("applicationId", null); + //根据borrowApplicationId,得到recyclingApplication + RecyclingApplication recyclingApplication=recyclingApplicationManager.getRecyclingApplicationById(borrowApplicationId); + //根据申请单ID获取发货单 + List invoiceList=recyclingApplicationManager.getInvoicesByApplicationId(borrowApplicationId); +// List wareHouseList =wareHouseManager.getWareHouseListByUnitCode(recyclingApplication.getHandleDepartCoding()); + String wareHouseName=""; + Set wareHouseNameSet=new HashSet(); + if(invoiceList.size()>0){ + for(Invoice w:invoiceList){ + wareHouseNameSet.add(w.getSourceWarehouseName()); + } + } + + for(String wn:wareHouseNameSet){ + wareHouseName=wareHouseName+wn; + } + + String str="{applicant:\'"+recyclingApplication.getApplicant()+"\',depart:\'"+recyclingApplication.getDepart() + +"\',handleDepart:\'"+recyclingApplication.getHandleDepart()+"\',wareHouse:\'"+wareHouseName.substring(0,wareHouseName.length())+"\'}"; + try { + LoadTousseLeaseItemsResultBuilder resultBuilder = new LoadTousseLeaseItemsResultBuilder(recyclingApplicationManager, objectDao,tousseDefinitionManager); + JSONArray table = resultBuilder.buildLoadTousseLeaseItems(recyclingApplication); + String result="{table:"+table+",otherMsg:"+JSON.parse(str)+"}"; + StrutsResponseUtils.output(JSON.parse(result)); + } + catch (Exception e) { + logger.error(e, e); + StrutsResponseUtils.output(false, e.getMessage()); + } + + } + + /** * 加载科室申请的器械包模板 * 同时加载了已经申请的物品信息,根据传入的申请单的id。// terry kwan, 2015-03-01 @@ -1674,7 +1725,6 @@ proj.setProjCode("ccc"); proj.setProjName("333"); projList.add(proj);*/ - out = response.getWriter(); // out.print("{\"data\":" + JSONArray.fromObject(projList) + "}"); out.print(JSONArray.fromObject(projList)); @@ -1866,5 +1916,5 @@ StrutsResponseUtils.output(result); } } - + } Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManagerImpl.java =================================================================== diff -u -r23825 -r23873 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManagerImpl.java (.../RecyclingApplicationManagerImpl.java) (revision 23825) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManagerImpl.java (.../RecyclingApplicationManagerImpl.java) (revision 23873) @@ -126,10 +126,10 @@ import com.forgon.treenode.model.THTreeNode; import com.forgon.workflow.service.WorkFlowApprovalTaskManager; import com.google.common.collect.Maps; - + /** * @author songwei 2012-3-23 下午16:59:34 - */ + */ public class RecyclingApplicationManagerImpl extends BasePoManagerImpl implements RecyclingApplicationManager { private static final Logger logger = Logger @@ -341,7 +341,8 @@ } return null; } - + + @Override public InvoicePlan getRecyclingApplicationByIdForRecycle(String id) { return (InvoicePlan) objectDao @@ -813,7 +814,7 @@ tousseItem.setUrgentAmount(item.getUrgentAmount()); tousseIdAndMap.put(td.getId(),tousseItem); } - } + } /** * 如果是消毒物品,则生成消毒物品包定义 * @param application @@ -6527,4 +6528,16 @@ //下面调用的方法已经按id升序排列 return tousseItemManager.getByHqlForUpdate(condition); } + /** + *simon-add:根据申请单ID获取发货单 + */ + @Override + public List getInvoicesByApplicationId(String applicationId) { + String sql = " where po.invoicePlan.id =" + applicationId + + " order by po.id desc"; + List list = objectDao.findBySql(Invoice.class.getSimpleName(),sql); + return list; + } + + }