158 lines
4.6 KiB
Java
158 lines
4.6 KiB
Java
package com.amarsoft.app.als.image;
|
|
|
|
import java.util.List;
|
|
|
|
import jbo.image.DOCUMENT_CATALOG;
|
|
import jbo.image.DOCUMENT_DATA;
|
|
import jbo.image.DOCUMENT_LIBRARY;
|
|
import jbo.image.DOCUMENT_RECORD;
|
|
|
|
import com.amarsoft.app.als.credit.model.CreditObjectAction;
|
|
import com.amarsoft.app.als.image.tool.ImageConstant;
|
|
import com.amarsoft.app.als.sys.tools.JBOHelper;
|
|
import com.amarsoft.are.ARE;
|
|
import com.amarsoft.are.jbo.BizObject;
|
|
import com.amarsoft.are.jbo.BizObjectManager;
|
|
import com.amarsoft.are.jbo.JBOFactory;
|
|
import com.amarsoft.are.jbo.JBOTransaction;
|
|
import com.amarsoft.are.lang.StringX;
|
|
import com.amarsoft.awe.util.DBKeyHelp;
|
|
/**
|
|
* 影像扫描时,需要先初始化影像信息,如果存在则不再初始化。
|
|
* @author ghShi
|
|
* @since 2014/04/18
|
|
*
|
|
*/
|
|
public class InitImageInfo {
|
|
private String objectNo; //业务对象编号
|
|
private String objectType; //业务类型
|
|
private String barCode; //条形码
|
|
private JBOTransaction tx;
|
|
|
|
public String initApplyImage(JBOTransaction tx) throws Exception{
|
|
this.tx = tx;
|
|
|
|
//如果已存在影像信息,则不再进行初始化
|
|
if (ImageSevice.isExistDocRecord(objectNo, objectType))
|
|
return "true";
|
|
|
|
//如果匹配到案卷,则进行初始化
|
|
if (getRecordBiz() != null){
|
|
initDocumentRecord(getRecordBiz());
|
|
return "true";
|
|
}
|
|
|
|
return "false";
|
|
}
|
|
|
|
/**
|
|
* 是否存在影像
|
|
* @param tx
|
|
* @return
|
|
* @throws Exception
|
|
*/
|
|
public String isExistDocRecord(JBOTransaction tx) throws Exception{
|
|
if (ImageSevice.isExistDocRecord(objectNo, objectType))
|
|
return "true";
|
|
|
|
return "false";
|
|
}
|
|
|
|
/**
|
|
* 匹配影像案卷信息,现已业务品种和经办机构作为过滤条件
|
|
* @return
|
|
*/
|
|
private BizObject getRecordBiz(){
|
|
CreditObjectAction cobj = new CreditObjectAction(objectNo, objectType);
|
|
BizObject biz = cobj.creditObject;
|
|
this.barCode = JBOHelper.getAttribute(biz, "BarCode").toString();
|
|
|
|
String productID = JBOHelper.getAttribute(biz, "BusinessType").toString();
|
|
String orgID = JBOHelper.getAttribute(biz, "OperateOrgID").toString();
|
|
if(StringX.isEmpty(orgID))
|
|
orgID = JBOHelper.getAttribute(biz, "InputOrgID").toString();
|
|
|
|
/**
|
|
* 如果找不到符合的影像案卷,则默认使用通用案卷。
|
|
*/
|
|
BizObject defaultDir = JBOHelper.querySingle(DOCUMENT_CATALOG.CLASS_NAME, "DirNo=:DirNo",ImageConstant.DEFAULT_DIR);
|
|
if(StringX.isEmpty(productID) || StringX.isEmpty(orgID)){
|
|
ARE.getLog().error("没有初始化产品或机构信息!");
|
|
} else {
|
|
//获取匹配的影像案卷
|
|
List<BizObject> bizlist = JBOHelper.queryList(DOCUMENT_CATALOG.CLASS_NAME,
|
|
"IsInUse='1' and SuitProduct like '%," + productID + ",%' " +
|
|
"and SuitOrg like '%," + orgID + ",%'");
|
|
|
|
//有且仅有一个可匹配的影像案卷
|
|
if (bizlist.size() == 1){
|
|
defaultDir = bizlist.get(0);
|
|
} else if(bizlist.size() == 0){
|
|
ARE.getLog().error("不存在符合当前场景的影像案卷!");
|
|
} else {
|
|
ARE.getLog().error("存在多个符合当前场景的影像案卷!");
|
|
}
|
|
}
|
|
|
|
return defaultDir;
|
|
}
|
|
|
|
/**
|
|
* 初始化影像案卷信息
|
|
* @param dirBo
|
|
* @throws Exception
|
|
*/
|
|
private void initDocumentRecord(BizObject dirBo) throws Exception{
|
|
BizObjectManager bm = JBOFactory.getBizObjectManager(DOCUMENT_RECORD.CLASS_NAME);
|
|
tx.join(bm);
|
|
BizObject recordBo = bm.newObject();
|
|
String recordNo = DBKeyHelp.getSerialNo(ImageConstant.DOCUMENT_RECORD, "SerialNo", "");
|
|
recordBo.setAttributesValue(dirBo);
|
|
recordBo.setAttributeValue("SerialNo", recordNo);
|
|
recordBo.setAttributeValue("ObjectNo", objectNo);
|
|
recordBo.setAttributeValue("ObjectType", objectType);
|
|
recordBo.setAttributeValue("BarCode", barCode);
|
|
bm.saveObject(recordBo);
|
|
|
|
initDocumentData(recordNo, JBOHelper.getAttribute(dirBo, "DirNo").toString());
|
|
}
|
|
|
|
/**
|
|
* 初始化影像文件信息
|
|
* @param recordNo
|
|
* @param dirNo
|
|
* @throws Exception
|
|
*/
|
|
private void initDocumentData(String recordNo, String dirNo) throws Exception{
|
|
BizObjectManager bm = JBOFactory.getBizObjectManager(DOCUMENT_DATA.CLASS_NAME);
|
|
tx.join(bm);
|
|
BizObject dataBo;
|
|
|
|
List<BizObject> doclib = JBOHelper.queryList(DOCUMENT_LIBRARY.CLASS_NAME, "DirNo=:DirNo and DocType=:DocType and IsInUse='1'", dirNo, objectType);
|
|
for(BizObject bo : doclib){
|
|
String dataSerialNo = DBKeyHelp.getSerialNo(ImageConstant.DOCUMENT_DATA, "SerialNo", "");
|
|
dataBo = bm.newObject();
|
|
dataBo.setAttributesValue(bo);
|
|
dataBo.setAttributeValue("SerialNo", dataSerialNo);
|
|
dataBo.setAttributeValue("ImageID", dataSerialNo);
|
|
dataBo.setAttributeValue("RecordNo", recordNo);
|
|
bm.saveObject(dataBo);
|
|
}
|
|
}
|
|
|
|
public String getObjectNo() {
|
|
return objectNo;
|
|
}
|
|
|
|
public void setObjectNo(String objectNo) {
|
|
this.objectNo = objectNo;
|
|
}
|
|
|
|
public String getObjectType() {
|
|
return objectType;
|
|
}
|
|
|
|
public void setObjectType(String objectType) {
|
|
this.objectType = objectType;
|
|
}
|
|
} |