2019-12-24 14:58:51 +08:00

218 lines
6.7 KiB
Java

package com.amarsoft.app.als.image;
import java.util.ArrayList;
import java.util.List;
import jbo.app.BUSINESS_CONTRACT;
//import jbo.image.DOCUMENT_CATALOG;
//import jbo.image.DOCUMENT_DATA;
//import jbo.image.DOCUMENT_RECORD;
import com.amarsoft.app.als.image.tool.ImageConstant;
import com.amarsoft.app.als.sys.tools.JBOHelper;
import com.amarsoft.app.als.sys.tools.StringTool;
import com.amarsoft.are.jbo.BizObject;
import com.amarsoft.are.jbo.JBOException;
import com.amarsoft.are.jbo.JBOFactory;
import com.amarsoft.are.lang.StringX;
import com.amarsoft.dict.als.manage.NameManager;
import com.amarsoft.web.ui.OHTMLTreeView;
/**
* 获取展示影像树图的sql语句
* @author ghShi
* @since 2014/04/22
*
*/
public class ImageSevice {
public static void initTreeView(OHTMLTreeView tviTemp, String objectType, String objectNo) throws JBOException {
String jboSql = "select RecordNo, SortNo, DocName, Attribute1, ImageID from O where RecordNo in ("+getSqlFormatOfIn(objectType, objectNo)+") order by SortNo";
@SuppressWarnings("unchecked")
List<BizObject> bos = JBOFactory.getBizObjectManager("jbo.image.DOCUMENT_DATA").createQuery(jboSql).getResultList(false);
for(BizObject bo : bos){
String sID = bo.getAttribute("SortNo").getString();
String sParentID = "root";
String sName = bo.getAttribute("DocName").getString();
String sValue = bo.getAttribute("ImageID").getString();
if(objectType.equals(ImageConstant.IMAGE_PHASE_AF))
sID = bo.getAttribute("RecordNo").getString() + sID;
if("1".equals(bo.getAttribute("Attribute1").getString()))
sName += "(*)";
tviTemp.insertPage(sID, sParentID, sName, sValue, "", 0, "");
}
tviTemp.packUpItems();
}
/**
* 获取展示影像树图的sql语句
* @param objectType
* @param objectNo
* @return
*/
public static String getSqlTreeView(String objectType, String objectNo){
//如果为批复阶段,则查询申请阶段的影像。
if (objectType.equals(ImageConstant.IMAGE_PHASE_BAP)){
objectType = ImageConstant.IMAGE_PHASE_BA;
// objectNo = StringTool.getBASerialNo(objectNo);
}
String getSqlTreeView = "from o where RecordNo in (";
getSqlTreeView += getSqlFormatOfIn(objectType, objectNo);
return getSqlTreeView + " )";
}
/**
* 把影像记录转化成'a','b','c'格式
* @param objectType
* @param objectNo
* @return
*/
public static String getSqlFormatOfIn(String objectType, String objectNo){
String recordSqlFormatOfIn = "";
if (objectType.equals(ImageConstant.IMAGE_PHASE_AF)){
//贷后阶段需要展示申请、合同、和出账阶段的所有影像。
recordSqlFormatOfIn += StringTool.getSqlFormatOfIn(getRecordNoList(objectNo));
}else{
//申请、合同和出账阶段仅展示当前阶段的影像【其中批复阶段查看申请阶段的影像】
recordSqlFormatOfIn += "'" + getRecordNo(objectNo, objectType) + "'";
}
return recordSqlFormatOfIn;
}
/**
* 贷后阶段时,查找该本业务所有的影像记录;
* 业务主要在申请,合同和出账时,存在影像记录。
* @param objectNo
* @return
*/
public static List<String> getRecordNoList(String contractSerialNo){
List<String> recordNoList = new ArrayList<String>();
/* //获取申请流水号
String baSerialNo = StringTool.getBASerialNo(StringTool.getBAPSerialNo(contractSerialNo));
//添加申请阶段的影像记录。
recordNoList.add(getRecordNo(baSerialNo, ImageConstant.IMAGE_PHASE_BA));
//添加合同阶段的影像记录。
recordNoList.add(getRecordNo(contractSerialNo, ImageConstant.IMAGE_PHASE_BC));
//获取出账流水号
List<String> bplist = StringTool.getBPSerialNo(contractSerialNo);
for (String bpSerialNo : bplist)
//添加出账阶段的影像记录。
recordNoList.add(getRecordNo(bpSerialNo, ImageConstant.IMAGE_PHASE_BP));*/
return recordNoList;
}
/**
* 贷后阶段时,查找该本业务所有的影像记录;
* 条形码,同一笔业务的所有影像记录对应的唯一标示。
* @param objectNo
* @return
*/
public static List<String> getRecordNoList2(String contractSerialNo){
List<String> recordNoList = new ArrayList<String>();
BizObject bcBiz = JBOHelper.querySingle(BUSINESS_CONTRACT.CLASS_NAME, "SerialNo=:SerialNo", contractSerialNo);
String barCode = JBOHelper.getAttribute(bcBiz, "BarCode").toString();
List<BizObject> recordlist = JBOHelper.queryList("jbo.image.DOCUMENT_RECORD",
"BarCode=:BarCode", barCode);
for (BizObject record : recordlist)
recordNoList.add(JBOHelper.getAttribute(record, "SerialNo").toString());
return recordNoList;
}
/**
* 获取某阶段的影像记录。
* @param objectNos
* @param objectType
* @return
*/
public static String getRecordNo(String objectNo, String objectType){
String recordNo = "";
BizObject record = JBOHelper.querySingle("jbo.image.DOCUMENT_RECORD",
"ObjectNo=:ObjectNo and ObjectType=:ObjectType", objectNo, objectType);
if(record != null) recordNo =JBOHelper.getAttribute(record, "SerialNo").toString();
if(recordNo == null) recordNo = "";
return recordNo;
}
/**
* 判断当前阶段是否存在影像记录
* @param objectNo
* @param objectType
* @return
*/
public static boolean isExistDocRecord(String objectNo, String objectType){
if (StringX.isEmpty(getRecordNo(objectNo, objectType))){
return false;
}
return true;
}
/**
* 影像配置-判断影像案卷主键是否冲突
* @param objectNo
* @param objectType
* @return
*/
public static boolean isExistDocCatalog(String dirNo){
BizObject catalog = JBOHelper.querySingle("jbo.image.DOCUMENT_CATALOG",
"DirNo=:DirNo", dirNo);
if(catalog != null){
return true;
}
return false;
}
/**
* 影像配置-判断某机构的某中业务品种是否已经存在影像案卷信息
* @param objectNo
* @param objectType
* @return
*/
public static boolean isExistDocCatalog(String orgID, String productID, String dirNo){
BizObject catalog = JBOHelper.querySingle("jbo.image.DOCUMENT_CATALOG",
"DirNo <> '" + dirNo + "' and IsInUse='1' and SuitProduct like '%," + productID + ",%' and SuitOrg like '%," + orgID + ",%'");
if(catalog != null){
return true;
}
return false;
}
/**
* 影像配置-判断某机构的某中业务品种是否已经存在影像案卷信息
* @param objectNo
* @param objectType
* @return
* @throws Exception
*/
public static String checkDocCatalog(String orgIDList, String productIDList, String dirNo, String format) throws Exception{
String returnString = "";
String productString = "";
String orgIDs[] = orgIDList.split(format);
String productIDs[] = productIDList.split(format);
for (String orgID : orgIDs){
if(StringX.isEmpty(orgID)) continue;
productString = "";
for(String productID : productIDs){
if(StringX.isEmpty(productID)) continue;
if(isExistDocCatalog(orgID, productID, dirNo))
productString += "{" +NameManager.getBusinessName(productID) + "}";
}
if(!StringX.isEmpty(productString))
returnString += NameManager.getOrgName(orgID) + "已存在" + productString + "的影像案卷;\n";
}
return returnString;
}
}