You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
FZ/lis-module-common-bl/src/main/java/com/sinosoft/lis/bl/LCCustomerImpartBL.java

288 lines
9.1 KiB

/*
* <p>ClassName: LCCustomerImpartBL </p>
* <p>Description: LCCustomerImpartSchemaBL类文件 </p>
* <p>Copyright: Copyright (c) 2002</p>
* <p>Company: sinosoft </p>
* @Database: LIS
* @CreateDate:2002-04-01
*/
package com.sinosoft.lis.bl;
import com.sinosoft.lis.i18n.I18nMessage;
import com.sinosoft.lis.db.LBCustomerImpartDB;
import com.sinosoft.lis.db.LCCustomerImpartDB;
import com.sinosoft.lis.pubfun.GlobalInput;
import com.sinosoft.lis.pubfun.MMap;
import com.sinosoft.lis.pubfun.PubFun;
import com.sinosoft.lis.controller.Action;
import com.sinosoft.lis.pubfun.PubSubmit;
import com.sinosoft.lis.schema.LBCustomerImpartSchema;
import com.sinosoft.lis.schema.LCCustomerImpartSchema;
import com.sinosoft.lis.sql.repository.LCCustomerImpartSQL;
import com.sinosoft.lis.vschema.LBCustomerImpartSet;
import com.sinosoft.lis.vschema.LCCustomerImpartSet;
import com.sinosoft.persistence.SQLProxy;
import com.sinosoft.utility.*;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.List;
import java.util.Objects;
import java.util.regex.Pattern;
public class LCCustomerImpartBL {
private static final Logger logger = LoggerFactory.getLogger(LCCustomerImpartBL.class);
private LCCustomerImpartSQL lCCustomerImpartSQL = SQLProxy.getInstance(LCCustomerImpartSQL.class);
/** 投保单号 */
private String grpContNo;
/** 错误处理类,每个需要错误处理的类中都放置该类 */
private CErrors mErrors = new CErrors();
/** 提交数据的容器 */
private MMap mMMap = new MMap();
/** 操作变量 */
private String mOperate;
private String mCurrentDate;
private String mCurrentTime;
/** 传入数据的容器 */
private VData mInputData = new VData();
public LCCustomerImpartBL() {
mCurrentDate = PubFun.getCurrentDate();
mCurrentTime = PubFun.getCurrentTime();
}
// @Constructor
public static LCCustomerImpartSchema get() {
LCCustomerImpartSchema schema = new LCCustomerImpartSchema();
schema.setModifyDate(PubFun.getCurrentDate());
schema.setModifyDate(PubFun.getCurrentTime());
return schema;
}
/**
* 设置默认的字段属性
*/
public static void setDefaultFields(LCCustomerImpartSchema schema) {
schema.setModifyDate(PubFun.getCurrentDate());
schema.setModifyTime(PubFun.getCurrentTime());
}
/**
* 从客户告知表和客户告知备份表读取信息 返回true或false
*/
public static boolean getInfo(LCCustomerImpartSchema schema) {
Reflections tR = new Reflections();
LCCustomerImpartDB tDB = new LCCustomerImpartDB();
tDB.setSchema(schema);
if (!tDB.getInfo()) // 如果查询失败,查询B表
{
LBCustomerImpartDB tDBB = new LBCustomerImpartDB();
LBCustomerImpartSchema tLBCustomerImpartSchema = new LBCustomerImpartSchema();
tR.transFields(tLBCustomerImpartSchema, schema.getSchema());
tDBB.setSchema(tLBCustomerImpartSchema);
if (!tDBB.getInfo()) {
// @@错误处理
CError tError = new CError();
tError.moduleName = "LCCustomerImpartBL";
tError.functionName = "getInfo";
tError.errorMessage(new I18nMessage("没有查询到客户告知表", "LIS-14541"));
schema.mErrors.addOneError(tError);
return false;
} else {
LCCustomerImpartSchema tS = new LCCustomerImpartSchema();
tR.transFields(tS, tDBB.getSchema());
schema.setSchema(tS);
}
} else {
schema.setSchema(tDB.getSchema());
}
return true;
}
/**
* 从客户告知表和客户告知备份表读取信息 返回LCCustomerImpartSet
*
*/
public static LCCustomerImpartSet query(LCCustomerImpartSchema schema) {
Reflections tR = new Reflections();
LCCustomerImpartSet tLCCustomerImpartSet = new LCCustomerImpartSet();
LCCustomerImpartDB tLCCustomerImpartDB = new LCCustomerImpartDB();
tLCCustomerImpartDB.setSchema(schema.getSchema());
tLCCustomerImpartSet = tLCCustomerImpartDB.query();
if (tLCCustomerImpartSet.size() == 0) {
LBCustomerImpartSet tLBCustomerImpartSet = new LBCustomerImpartSet();
LBCustomerImpartDB tLBCustomerImpartDB1 = new LBCustomerImpartDB();
tR.transFields(tLBCustomerImpartDB1.getSchema(), schema.getSchema());
tLBCustomerImpartSet = tLBCustomerImpartDB1.query();
if (tLBCustomerImpartSet.size() == 0) {
// @@错误处理
CError tError = new CError();
tError.moduleName = "LCCustomerImpartBL";
tError.functionName = "query";
tError.errorMessage(new I18nMessage("没有查询到客户告知表", "LIS-14541"));
schema.mErrors.addOneError(tError);
return tLCCustomerImpartSet;
} else {
tLCCustomerImpartSet.add(schema.getSchema());
tR.transFields(tLCCustomerImpartSet, tLBCustomerImpartSet);
}
}
return tLCCustomerImpartSet;
}
/**
* 从客户告知表和客户告知备份表读取信息 返回LCCustomerImpartSet
*
*/
public static LCCustomerImpartSet executeQuery(LCCustomerImpartSchema schema, SQLwithBindVariables sql) {
Reflections tR = new Reflections();
LCCustomerImpartSet tLCCustomerImpartSet = new LCCustomerImpartSet();
LCCustomerImpartDB tLCCustomerImpartDB = new LCCustomerImpartDB();
tLCCustomerImpartDB.setSchema(schema.getSchema());
tLCCustomerImpartSet = tLCCustomerImpartDB.executeQuery(sql);
if (tLCCustomerImpartSet.size() == 0) {
LBCustomerImpartSet tLBCustomerImpartSet = new LBCustomerImpartSet();
LBCustomerImpartDB tLBCustomerImpartDB1 = new LBCustomerImpartDB();
tR.transFields(tLBCustomerImpartDB1.getSchema(), schema.getSchema());
tLBCustomerImpartSet = tLBCustomerImpartDB1.executeQuery(sql);
if (tLBCustomerImpartSet.size() == 0) {
// @@错误处理
CError tError = new CError();
tError.moduleName = "LCCustomerImpartBL";
tError.functionName = "query";
tError.errorMessage(new I18nMessage("没有查询到客户告知表", "LIS-14541"));
schema.mErrors.addOneError(tError);
return tLCCustomerImpartSet;
} else {
tLCCustomerImpartSet.add(schema.getSchema());
tR.transFields(tLCCustomerImpartSet, tLBCustomerImpartSet);
}
}
return tLCCustomerImpartSet;
}
public boolean submitData(List<LCCustomerImpartSchema> list,String operator) {
if (!getInputData(operator)) {
return false;
}
if (!checkData(list)) {
return false;
}
if (!dealData(list)) {
return false;
}
return saveData();
}
private boolean saveData() {
PubSubmit tPubSubmit = new PubSubmit();
mInputData.add(mMMap);
if (!tPubSubmit.submitData(mInputData, Action.INSERT_ACTION)) {
buildError("saveData", new I18nMessage("提交数据失败!", "LIS-08006"));
return false;
}
return true;
}
private boolean dealData(List<LCCustomerImpartSchema> list) {
LCCustomerImpartSchema lcCustomerImpartSchema = list.get(0);
grpContNo = lcCustomerImpartSchema.getGrpContNo();
if (Action.INSERT_ACTION.equals(mOperate)) {
SQLwithBindVariables sqLwithBindVariables = lCCustomerImpartSQL.deleteByGrpContNo(grpContNo);
mMMap.put(sqLwithBindVariables, MMap.Action.DELETE);
for (LCCustomerImpartSchema tLCCustomerImpartSchema : list) {
tLCCustomerImpartSchema.setModifyDate(mCurrentDate);
tLCCustomerImpartSchema.setMakeTime(mCurrentTime);
tLCCustomerImpartSchema.setModifyDate(mCurrentDate);
tLCCustomerImpartSchema.setMakeTime(mCurrentTime);
mMMap.put(tLCCustomerImpartSchema, MMap.Action.INSERT);
}
}
return true;
}
private boolean checkData(List<LCCustomerImpartSchema> list) {
for (LCCustomerImpartSchema tLCCustomerImpartSchema : list) {
String impartCode = tLCCustomerImpartSchema.getImpartCode();
String impartParamModle = tLCCustomerImpartSchema.getImpartParamModle();
if (StringUtils.isNotBlank(impartParamModle) && Objects.equals(impartCode, "A0101")){
String regex = "^\\d+(/\\d+){4}$";
Pattern pattern = Pattern.compile(regex);
if (!pattern.matcher(impartParamModle).matches()){
buildError("checkData",new I18nMessage(impartCode+"参数错误,格式为:参数1/参数2/参数3/参数4/参数5", "LIS-72097"));
return false;
}
}
if (StringUtils.isNotBlank(impartParamModle) && Objects.equals(impartCode, "A01010")){
String regex = "^\\d+(/\\d+)$";
Pattern pattern = Pattern.compile(regex);
if (!pattern.matcher(impartParamModle).matches()){
buildError("checkData",new I18nMessage(impartCode+"参数错误,格式为:参数1/参数2", "LIS-72098"));
return false;
}
}
if (StringUtils.isNotBlank(impartParamModle) && !Objects.equals(impartCode, "A01010") && !Objects.equals(impartCode, "A0101")) {
if (!Objects.equals(impartParamModle, "是") && !Objects.equals(impartParamModle, "否") ){
buildError("checkData",new I18nMessage(impartCode+"参数错误,请填是或否", "LIS-72099"));
return false;
}
}
}
return true;
}
private boolean getInputData(String operator) {
this.mOperate = operator;
return true;
}
public CErrors getErrors() {
return mErrors;
}
/**
* 错误构造方法
* @param tFunctionName
* @param tErrorMessage
*/
private void buildError(String tFunctionName, I18nMessage tErrorMessage) {
CError tCError = new CError();
tCError.moduleName = this.getClass().getSimpleName();
tCError.functionName = tFunctionName;
tCError.errorMessage(tErrorMessage);
mErrors.addOneError(tCError);
}
}