Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/signRecord/service/SignRecordManagerImpl.java
===================================================================
diff -u -r22240 -r22254
--- ssts-tousse/src/main/java/com/forgon/disinfectsystem/signRecord/service/SignRecordManagerImpl.java (.../SignRecordManagerImpl.java) (revision 22240)
+++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/signRecord/service/SignRecordManagerImpl.java (.../SignRecordManagerImpl.java) (revision 22254)
@@ -12,6 +12,7 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.stream.Collectors;
import net.sf.json.JSONObject;
@@ -27,6 +28,8 @@
import com.forgon.disinfectsystem.entity.basedatamanager.signRecord.SignRecord;
import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseDefinition;
import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseInstance;
+import com.forgon.disinfectsystem.entity.sterilizationTransition.SterilizationTransitionItem;
+import com.forgon.disinfectsystem.signRecord.vo.SignRecordPrintTousseVo;
import com.forgon.disinfectsystem.signRecord.vo.SignRecordVo;
import com.forgon.disinfectsystem.tousse.toussedefinition.service.TousseInstanceManager;
import com.forgon.exception.SystemException;
@@ -372,4 +375,45 @@
}
return "";
}
+
+ @Override
+ public List getSignRecordPrintItem(
+ Long signRecordId) {
+ if(DatabaseUtil.isPoIdValid(signRecordId)){
+ List tis = tousseInstanceManager.getByProperty("signRecordId", signRecordId, "tousseName");
+ if(CollectionUtils.isEmpty(tis)){
+ throw new SystemException("未获取到签收记录对应的包实例");
+ }
+ List tiIds = tis.stream().map(ti->ti.getId()).collect(Collectors.toList());
+ List transitionItems = objectDao.getCollection(SterilizationTransitionItem.class.getSimpleName(), "tousseInstanceId", tiIds);
+ List vos = new ArrayList<>();
+ for(TousseInstance ti : tis){
+ SignRecordPrintTousseVo vo = new SignRecordPrintTousseVo();
+ vo.setBarcode(ti.getBarcode());
+ vo.setInvoiceSender(ti.getInvoiceSender());
+ vo.setInvoiceSendTime(ti.getInvoiceSendTime());
+ vo.setOperationTime(ti.getOperationTime());
+ vo.setOperator(ti.getOperator());
+ vo.setSterileEndTime(ti.getSterileEndTime());
+ vo.setSterileFrequency(ti.getSterileFrequency());
+ vo.setSterilizationUser(ti.getSterilizationUser());
+ vo.setSterilizerName(ti.getSterilizerName());
+ vo.setTousseName(ti.getTousseName());
+
+ SterilizationTransitionItem tItem = CollectionUtils.find(transitionItems, new Predicate(){
+ @Override
+ public boolean evaluate(SterilizationTransitionItem object) {
+ return object != null && MathTools.valueEquals(object.getTousseInstanceId(), ti.getId());
+ }});
+ if(tItem != null && tItem.getSterilizationTransition() != null){
+ vo.setTakeover(tItem.getSterilizationTransition().getTakeover());
+ vo.setTransitionTime(tItem.getSterilizationTransition().getTransitionTime());
+ }
+ vos.add(vo);
+ }
+ return vos;
+ }else{
+ throw new SystemException("签收记录id非法");
+ }
+ }
}
Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/signRecord/action/signRecordAction.java
===================================================================
diff -u -r22229 -r22254
--- ssts-tousse/src/main/java/com/forgon/disinfectsystem/signRecord/action/signRecordAction.java (.../signRecordAction.java) (revision 22229)
+++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/signRecord/action/signRecordAction.java (.../signRecordAction.java) (revision 22254)
@@ -8,6 +8,8 @@
import javax.servlet.http.HttpServletResponse;
+import net.sf.json.JSONObject;
+
import org.apache.log4j.Logger;
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Namespace;
@@ -16,7 +18,12 @@
import com.forgon.directory.acegi.tools.AcegiHelper;
import com.forgon.disinfectsystem.entity.basedatamanager.signRecord.SignRecord;
import com.forgon.disinfectsystem.signRecord.service.SignRecordManager;
+import com.forgon.disinfectsystem.signRecord.vo.SignRecordPrintTousseVo;
+import com.forgon.exception.SystemException;
+import com.forgon.exception.service.ExceptionHandler;
import com.forgon.tools.StrutsParamUtils;
+import com.forgon.tools.StrutsResponseUtils;
+import com.forgon.tools.json.JSONUtil;
import com.forgon.tools.util.PageUtil;
@ParentPackage(value = "default")
@@ -29,7 +36,13 @@
private SignRecordManager signRecordManager;
- public SignRecordManager getSignRecordManager() {
+ private ExceptionHandler exceptionHandler;
+
+ public void setExceptionHandler(ExceptionHandler exceptionHandler) {
+ this.exceptionHandler = exceptionHandler;
+ }
+
+ public SignRecordManager getSignRecordManager() {
return signRecordManager;
}
@@ -97,4 +110,21 @@
}
}
+ public void loadPrintData(){
+ try{
+ Long signRecordId = StrutsParamUtils.getPraramLongValue("signRecordId", 0L);
+ SignRecord signRecord = signRecordManager.get(signRecordId);
+ if(signRecord == null){
+ throw new SystemException("未获取到对应的签收记录");
+ }
+ List vos = signRecordManager.getSignRecordPrintItem(signRecordId);
+ JSONObject json = JSONUtil.toJsonObjectWithJsonlib(signRecord, null);
+ JSONUtil.addSuccess(json, true);
+ json.put("goods", JSONUtil.toJsonArrayWithJsonlib(vos, null));
+ StrutsResponseUtils.output(json);
+ }catch(Exception e){
+ exceptionHandler.handleException(StrutsParamUtils.getResponse(), e);
+ }
+ }
+
}
Index: forgon-tools/src/main/java/com/forgon/tools/hibernate/ObjectDao.java
===================================================================
diff -u -r22164 -r22254
--- forgon-tools/src/main/java/com/forgon/tools/hibernate/ObjectDao.java (.../ObjectDao.java) (revision 22164)
+++ forgon-tools/src/main/java/com/forgon/tools/hibernate/ObjectDao.java (.../ObjectDao.java) (revision 22254)
@@ -53,6 +53,19 @@
public List findByProperty(String objectPOName,String propertyName,String propertyValue);
public List findByProperty_ForUpdate(String objectPOName,String propertyName,Object propertyValue);
+ /**
+ * 根据属性查找对象并排序
+ * @param objectPOName PO名称
+ * @param propertyName po属性名
+ * @param propertyValue po属性的值,如果为null,则查找属性值为null的对象
+ * @param update 是否加锁
+ * @param firstIndex 分页的第一个数据
+ * @param maxResults 分布的记录条数,如果为0则不分页
+ * @param orderField 排序子句
+ * @return
+ */
+ public List findByProperty(String objectPOName,String propertyName,Object propertyValue,boolean update,
+ int firstIndex,int maxResults,final String orderField);
/**
* 根据hql的where子句获取对象集合(如果查不到返回一个空的List).
Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/signRecord/SignRecord.java
===================================================================
diff -u -r22240 -r22254
--- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/signRecord/SignRecord.java (.../SignRecord.java) (revision 22240)
+++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/signRecord/SignRecord.java (.../SignRecord.java) (revision 22254)
@@ -102,12 +102,4 @@
public void setSignAmount(int signAmount) {
this.signAmount = signAmount;
}
-
-
-
-
-
-
-
-
}
Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/signRecord/vo/SignRecordPrintTousseVo.java
===================================================================
diff -u
--- ssts-tousse/src/main/java/com/forgon/disinfectsystem/signRecord/vo/SignRecordPrintTousseVo.java (revision 0)
+++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/signRecord/vo/SignRecordPrintTousseVo.java (revision 22254)
@@ -0,0 +1,131 @@
+package com.forgon.disinfectsystem.signRecord.vo;
+
+import java.util.Date;
+
+/**
+ * 签收记录打印的包实例vo
+ * @author kzh
+ *
+ */
+public class SignRecordPrintTousseVo {
+ /**
+ * 器械包名称
+ */
+ private String tousseName;
+ /**
+ * 器械包条码
+ */
+ private String barcode;
+ /**
+ * 装配时间
+ */
+ private Date operationTime;
+ /**
+ * 配包人
+ */
+ private String operator;
+ /**
+ * 灭菌交接时间
+ */
+ private Date transitionTime;
+ /**
+ * 接收人名称
+ */
+ private String takeover;
+ /**
+ * 灭菌结束时间
+ */
+ private String sterileEndTime = "";
+ /**
+ * 灭菌员
+ */
+ private String sterilizationUser = "";
+ /**
+ * 灭菌炉名称
+ */
+ private String sterilizerName = "";
+ /**
+ * 灭菌炉次
+ */
+ private String sterileFrequency = "";
+ /**
+ * 发货时间
+ */
+ private Date invoiceSendTime;
+ /**
+ * 发货员
+ */
+ private String invoiceSender = "";
+ public String getTousseName() {
+ return tousseName;
+ }
+ public String getBarcode() {
+ return barcode;
+ }
+ public Date getOperationTime() {
+ return operationTime;
+ }
+ public String getOperator() {
+ return operator;
+ }
+ public Date getTransitionTime() {
+ return transitionTime;
+ }
+ public String getTakeover() {
+ return takeover;
+ }
+ public String getSterileEndTime() {
+ return sterileEndTime;
+ }
+ public String getSterilizationUser() {
+ return sterilizationUser;
+ }
+ public String getSterilizerName() {
+ return sterilizerName;
+ }
+ public String getSterileFrequency() {
+ return sterileFrequency;
+ }
+ public Date getInvoiceSendTime() {
+ return invoiceSendTime;
+ }
+ public String getInvoiceSender() {
+ return invoiceSender;
+ }
+ public void setTousseName(String tousseName) {
+ this.tousseName = tousseName;
+ }
+ public void setBarcode(String barcode) {
+ this.barcode = barcode;
+ }
+ public void setOperationTime(Date operationTime) {
+ this.operationTime = operationTime;
+ }
+ public void setOperator(String operator) {
+ this.operator = operator;
+ }
+ public void setTransitionTime(Date transitionTime) {
+ this.transitionTime = transitionTime;
+ }
+ public void setTakeover(String takeover) {
+ this.takeover = takeover;
+ }
+ public void setSterileEndTime(String sterileEndTime) {
+ this.sterileEndTime = sterileEndTime;
+ }
+ public void setSterilizationUser(String sterilizationUser) {
+ this.sterilizationUser = sterilizationUser;
+ }
+ public void setSterilizerName(String sterilizerName) {
+ this.sterilizerName = sterilizerName;
+ }
+ public void setSterileFrequency(String sterileFrequency) {
+ this.sterileFrequency = sterileFrequency;
+ }
+ public void setInvoiceSendTime(Date invoiceSendTime) {
+ this.invoiceSendTime = invoiceSendTime;
+ }
+ public void setInvoiceSender(String invoiceSender) {
+ this.invoiceSender = invoiceSender;
+ }
+}
Index: ssts-web/src/main/webapp/disinfectsystem/print/print.js
===================================================================
diff -u -r22206 -r22254
--- ssts-web/src/main/webapp/disinfectsystem/print/print.js (.../print.js) (revision 22206)
+++ ssts-web/src/main/webapp/disinfectsystem/print/print.js (.../print.js) (revision 22254)
@@ -1652,6 +1652,19 @@
}
}
}
+/**
+ * 打印签收单。
+ * @param recyclingPrintDatas
+ */
+function doPrintSignRecord(printObject){
+ if(printObject){
+ formTypeOfPrinted = "signRecordDetail";
+ setPrinterByConfig();
+ setGoodsInfos(printObject);
+ print2(printObject);
+ LODOP.PRINT();
+ }
+}
// 外部代理灭菌申请单
function printForeignProxyDisinfectionApplicationInfo(foreignProxyDisinfectionApplicationObj,printType) {
formTypeOfPrinted = "foreignProxyDisinfectionApplication";
Index: ssts-web/src/main/webapp/disinfectsystem/invoice/signRecord.js
===================================================================
diff -u -r22238 -r22254
--- ssts-web/src/main/webapp/disinfectsystem/invoice/signRecord.js (.../signRecord.js) (revision 22238)
+++ ssts-web/src/main/webapp/disinfectsystem/invoice/signRecord.js (.../signRecord.js) (revision 22254)
@@ -60,7 +60,10 @@
field : 'id',
align : 'center',
formatter : function(value, row, index) {// 自定义显示标签
- return ''
+ + ' ';
}
@@ -197,3 +200,45 @@
;
}
+/**
+ * 打印签收记录
+ * @param signRecordId
+ */
+//是否正在打印
+var printing = false;
+function printSignRecord(thiz,signRecordId){
+ if(printing){
+ jShowResult('正在打印,请稍候重试');
+ return false;
+ }
+ thiz.disabled=true;
+ printing = true;
+ $.ajax({
+ url : WWWROOT + "/disinfectSystem/signRecordAction!loadPrintData.do",
+ type : "POST",
+ timeout : 30000,
+ dataType :'json',
+ data : {
+ signRecordId : signRecordId
+ },
+ success : function(result) {
+ if(result.success){
+ doPrintSignRecord(result);
+ jShowResult('打印成功');
+ }else{
+ jShowResult(result.message);
+ }
+ thiz.disabled=false;
+ printing = false;
+ },
+ error: function(x, t, m) {
+ if(t == "timeout") {
+ jShowResult("提交超时,请重试");
+ } else {
+ jShowResult(t);
+ }
+ thiz.disabled=false;
+ printing = false;
+ }
+ });
+}
Index: forgon-tools/src/main/java/com/forgon/tools/hibernate/BasePoManagerImpl.java
===================================================================
diff -u -r20493 -r22254
--- forgon-tools/src/main/java/com/forgon/tools/hibernate/BasePoManagerImpl.java (.../BasePoManagerImpl.java) (revision 20493)
+++ forgon-tools/src/main/java/com/forgon/tools/hibernate/BasePoManagerImpl.java (.../BasePoManagerImpl.java) (revision 22254)
@@ -182,8 +182,17 @@
}
return null;
}
+ @Override
+ public List getByProperty(String property, Long value, String orderBy) {
+ return objectDao.findByProperty(poName, property, value, false, 0, 0, orderBy);
+ }
@Override
+ public List getByPropertyForUpdate(String property, Long value,
+ String orderBy) {
+ return objectDao.findByProperty(poName, property, value, true, 0, 0, orderBy);
+ }
+ @Override
public List getByPropertyForUpdate(String property,Object value){
return objectDao.findByProperty_ForUpdate(poName,property,value);
}
Index: ssts-web/src/main/webapp/disinfectsystem/config/zsyy/print/printConfig.js
===================================================================
diff -u -r22204 -r22254
--- ssts-web/src/main/webapp/disinfectsystem/config/zsyy/print/printConfig.js (.../printConfig.js) (revision 22204)
+++ ssts-web/src/main/webapp/disinfectsystem/config/zsyy/print/printConfig.js (.../printConfig.js) (revision 22254)
@@ -86,7 +86,43 @@
]
}
}
-
+var signRecordDetailConfig = {
+ fixed:true,
+ headerFooter : [
+ // 页眉名称
+ {label : "手术室物品签收记录", dataIndex : '', fontSize : 15, position : ["0.3cm","37%","99%",5]},
+ {label : "签收时间:", dataIndex : 'signDate', fontSize : 9, position : ["1cm","2%","99%",5]},
+ {label : "仪器班签收人:", dataIndex : '', fontSize : 9, position : ["1.4cm","2%","90%",5]},
+ {label : "供应室交接人:", dataIndex : '', fontSize : 9, position : ["1.4cm","45%","90%",5]},
+ {label : "签收总数:", dataIndex : 'signAmount', fontSize : 9, position : ["1.4cm","80%","90%",5]}
+ ],
+ currentPageNumber : {label : "第#页", fontSize : 9, position : ["1cm","80%","90%",5]},
+ totalPageAmount : {label : "共&页", fontSize : 9, position : ["1cm","85%","90%",5]},
+ goodsTable :{
+ rowHeight : 20,
+ //position : ["50","1%","96%","6.0cm"],
+ fontSize:12,
+ position : ["1.9cm","0.2cm","99%","27cm"],
+ headRepeat : true,
+ donotPrintTotal:true,//不打印合计
+ columns : [
+ {header : "序号", dataIndex : 'serialNumber', width : 60, align : 'center'},
+ {header : "物品名称", dataIndex : 'tousseName', width : 100, align : 'center'},
+ //{header : "出库仓库", dataIndex : 'warehouseName', width : 60, align : 'center'},
+ {header : "条码", dataIndex : 'barcode', width : 60, align : 'center'},
+ {header : "装配时间", dataIndex : 'operationTime', width : 60, align : 'center'},
+ {header : "装配员", dataIndex : 'operator', width : 60, align : 'center'},
+ {header : "与消毒员交接时间", dataIndex : 'transitionTime', width : 60, align : 'center'},
+ {header : "灭菌接收员", dataIndex : 'takeover', width : 60, align : 'center'},
+ {header : "灭菌时间", dataIndex : 'sterileEndTime', width : 60, align : 'center'},
+ {header : "灭菌员", dataIndex : 'sterilizationUser', width : 60, align : 'center'},
+ {header : "灭菌炉", dataIndex : 'sterilizerName', width : 100, align : 'center'},
+ {header : "炉次", dataIndex : 'sterileFrequency', width : 40, align : 'center'},
+ {header : "发放时间", dataIndex : 'invoiceSendTime', width : 60, align : 'center'},
+ {header : "发放员", dataIndex : 'invoiceSender', width : 60, align : 'center'}
+ ]
+ }
+}
var appropriationListConfig = {
headerFooter : [
// 页眉名称
@@ -1932,5 +1968,7 @@
//调拨出库单
appropriationOutList : appropriationOutListConfig,
//灭菌交接记录单
- sterilizationTransitionRecord:sterilizationTransitionRecordConfig
+ sterilizationTransitionRecord:sterilizationTransitionRecordConfig,
+ //签收记录打印。
+ signRecordDetail : signRecordDetailConfig
};
Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/signRecord/service/SignRecordManager.java
===================================================================
diff -u -r22236 -r22254
--- ssts-tousse/src/main/java/com/forgon/disinfectsystem/signRecord/service/SignRecordManager.java (.../SignRecordManager.java) (revision 22236)
+++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/signRecord/service/SignRecordManager.java (.../SignRecordManager.java) (revision 22254)
@@ -6,6 +6,7 @@
import java.util.Map;
import com.forgon.disinfectsystem.entity.basedatamanager.signRecord.SignRecord;
+import com.forgon.disinfectsystem.signRecord.vo.SignRecordPrintTousseVo;
import com.forgon.disinfectsystem.signRecord.vo.SignRecordVo;
import com.forgon.tools.hibernate.BasePoManager;
@@ -41,6 +42,12 @@
* @param parseLong
*/
List