package com.longrise.LEAP.FISP.BLL.DealData;
import java.io.FileOutputStream;
import java.io.IOException;
import java.math.BigDecimal;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.Hashtable;
import java.util.List;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import com.longrise.LEAP.BLL.LEAPBLLBaseService;
import com.longrise.LEAP.Base.Global;
import com.longrise.LEAP.Base.DAL.Transaction;
import com.longrise.LEAP.Base.Objects.EntitySet;
import com.longrise.LEAP.Base.Objects.ResultSet;
import com.longrise.LEAP.FISP.BLL.BaseDataManager.BaseData;
import com.longrise.LEAP.FISP.BLL.BaseDataManager.CalculationInfo;
import com.longrise.LEAP.FISP.BLL.InsManager.InsGroupManager;
import com.longrise.LEAP.FISP.BO.carinsbasecaridnozone;
import com.longrise.LEAP.FISP.BO.carinsbaseinsurancecode;
import com.longrise.LEAP.FISP.BO.carinsbaseinsurancecodesubclass;
import com.longrise.LEAP.FISP.BO.carinscarcollection;
import com.longrise.LEAP.FISP.BO.carinsdatacarinfo;
import com.longrise.LEAP.FISP.BO.carinsdatacarperson;
import com.longrise.LEAP.FISP.BO.carinsdatadetailmodel;
import com.longrise.LEAP.FISP.BO.carinsdatainsurancepolicy;
import com.longrise.LEAP.FISP.BO.carinsdatapolicyinsurancecode;
import com.longrise.LEAP.FISP.BO.carinsmessagesample;
import com.longrise.LEAP.FISP.BO.carinsmessagetask;
import com.longrise.LEAP.FISP.BO.carparameters;
import com.longrise.LEAP.FISP.BO.company;
import com.longrise.LEAP.FISP.BO.selectinscode;
import com.longrise.LEAP.FISP.BO.viewcarinsinsinfo;
import fisp.webservice.BBWebserviceClass;
public class DealData extends LEAPBLLBaseService {
public boolean SaveCarInfo11(carinsdatacarperson person, selectinscode _sc,
carparameters _sp, carinsdatacarinfo carinfo_) {
Transaction trans = null;
try {
trans = Global.getInstance().getDataSource("FISP")
.createTransaction();
if (carinfo_ != null) {
Global.getInstance().getDataSource("FISP").Insert(carinfo_,
trans);
}
if (person != null) {
Global.getInstance().getDataSource("FISP")
.Insert(person, trans);
}
trans.commit();
carinsdatainsurancepolicy _insp = new carinsdatainsurancepolicy();
if (_sc != null) {
_insp.setpolicycarpersonid(person.getid());
_insp.setcarinfoid(carinfo_.getid());
String groupinsid = InsGroupManager.getInsureGroupid(_sp, _sc);
_insp.setinsgrouptype(groupinsid);
_insp.setagentserviceid("");// 代理人
_insp.setamountpaid(BigDecimal.valueOf(_sc.getpayall()));
_insp.setcarimage("");// 復印件
_insp.setcommission(BigDecimal.valueOf(_sc.getdisall()
- _sc.getpayall()));
_insp.setdiscountpremium(BigDecimal.valueOf(_sc.getdisall()));
_insp.setpremium(BigDecimal.valueOf(0));
_insp.setsalemanid("");// 业务员
_insp.setzoneno(BigDecimal.valueOf(0));// 業務員區域
_insp.setorgno("");// 保險人
_insp.setstateid(0);
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = df.parse(_sp.getcommercebegin());
Calendar C = Calendar.getInstance();
C.setTime(date);
C.add(C.YEAR, 1);
C.add(C.DATE, -1);
_insp.seteffectivedatebegin(date);// 生效開始時間
_insp.seteffectivedateend(C.getTime());// 保單到期時間
_insp
.setsingleinsuranceseriesno(getDateTimeString("yyyyMMddHHmmssSS"));
Global.getInstance().getDataSource("FISP").Insert(_insp, trans);
for (int i = 0; i < _sc.getinsurcode().length; i++) {
if (_sc.getinsurcode()[i].getpremium() > 0) {
carinsdatapolicyinsurancecode _carcode = new carinsdatapolicyinsurancecode();
if (_sc.getinsurcode()[i].getsuminsured() == null) {
_carcode.setamount(BigDecimal.valueOf(0));
} else {
_carcode.setamount(BigDecimal.valueOf(_sc
.getinsurcode()[i].getsuminsured()));
}
_carcode.setdiscountpremium(BigDecimal.valueOf(_sc
.getinsurcode()[i].getpremium().doubleValue()
* _sc.getinsurcode()[i].getdiscountrate()));
_carcode.setpremium(BigDecimal.valueOf(_sc
.getinsurcode()[i].getpremium().doubleValue()));
_carcode.setremark(_sc.getinsurcode()[i]
.getdiscountrate().toString());
_carcode.setinsurancecodename(_sc.getinsurcode()[i]
.getgeneraname());
_carcode.setinsurancecodeid(_sc.getinsurcode()[i]
.getinsurancecodeid());
_carcode.setsubclassid(_sc.getinsurcode()[i]
.getsubclassid());
_carcode.setinsurancepolicyid(_insp.getid());
Global.getInstance().getDataSource("FISP").Insert(
_carcode, trans);
}
}
}
trans.commit();
return true;
} catch (Exception e) {
Global.getInstance().LogError(this, e);
trans.rollback();
return false;
}
}
public carinscarcollection SaveCarInfo(carinscarcollection carCollection,
selectinscode _sc, carparameters _sp) {
if (carCollection == null)
return null;
try {
if (carCollection.getCarInfo() != null) {
if (carCollection.getCarInfo().getid() != null) {
Global.getInstance().getDataSource("FISP").Update(
carCollection.getCarInfo());
} else {
Global.getInstance().getDataSource("FISP").Insert(
carCollection.getCarInfo());
carCollection.setCarInfo(carCollection.getCarInfo());
}
}
if (carCollection.getCarPerson() != null) {
if (carCollection.getCarPerson().getid() != null) {
Global.getInstance().getDataSource("FISP").Update(
carCollection.getCarPerson());
} else {
Global.getInstance().getDataSource("FISP").Insert(
carCollection.getCarPerson());
carCollection.setCarPerson(carCollection.getCarPerson());
}
}
if (carCollection.getInsPolicy() != null) {
carCollection.getInsPolicy().setpolicycarpersonid(
carCollection.getCarPerson().getid());
carCollection.getInsPolicy().setcarinfoid(
carCollection.getCarInfo().getid());
String groupinsid = InsGroupManager.getInsureGroupid(_sp, _sc);
carCollection.getInsPolicy().setinsgrouptype(groupinsid);
carCollection.getInsPolicy().setamountpaid(
BigDecimal.valueOf(_sc.getpayall()));
carCollection.getInsPolicy().setcommission(
BigDecimal.valueOf(_sc.getdisall() - _sc.getpayall()));
carCollection.getInsPolicy().setdiscountpremium(
BigDecimal.valueOf(_sc.getdisall()));
carCollection.getInsPolicy().setpremium(BigDecimal.valueOf(0));
carCollection.getInsPolicy().setinsuredate(new Date());
// carCollection.getInsPolicy().setagentserviceid("");//代理人
// carCollection.getInsPolicy().setcarimage(carCollection.getInsPolicy().getcarimage());//復印件
// BigDecimal
// l=carCollection.getInsPolicy().getdiscountpremium()/0.8;
// carCollection.getInsPolicy().setpremium(BigDecimal.valueOf(0));
// carCollection.getInsPolicy().setsalemanid("");//业务员
// carCollection.getInsPolicy().setzoneno(BigDecimal.valueOf(0));//業務員區域
// carCollection.getInsPolicy().setorgno("");//保險人
// carCollection.getInsPolicy().setstateid(0);
// DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// Date date =
// df.parse(carCollection.getInsPolicy().geteffectivedatebegin());
Calendar C = Calendar.getInstance();
C.setTime(carCollection.getInsPolicy().geteffectivedatebegin());
C.add(C.YEAR, 1);
C.add(C.DATE, -1);
// carCollection.getInsPolicy().seteffectivedatebegin(date);//生效開始時間
carCollection.getInsPolicy().seteffectivedateend(C.getTime());// 保單到期時間
String noice = " ";
if (_sc.getmessagenotic() != null) {
if (_sc.getmessagenotic().length != 0) {
for (int i = 0; i < _sc.getmessagenotic().length; i++) {
noice += _sc.getmessagenotic()[i];
}
}
}
carCollection.getInsPolicy().setremark(noice);
if (carCollection.getInsPolicy().getid() != null) {
Global.getInstance().getDataSource("FISP").Update(
carCollection.getInsPolicy());
} else {
carCollection.getInsPolicy().setsingleinsuranceseriesno(
getDateTimeString("yyyyMMddHHmmssSS"));
Global.getInstance().getDataSource("FISP").Insert(
carCollection.getInsPolicy());
carCollection.setInsPolicy(carCollection.getInsPolicy());
}
}
carinsdatapolicyinsurancecode carcode[] = null;
carinsdatapolicyinsurancecode _carcode = null;
if (carCollection.getInsCode().length != 0) {
// carcode = new
// carinsdatapolicyinsurancecode[carCollection.getInsCode().length];
if (carCollection.getInsPolicy() != null) {
Global.getInstance().getDataSource("FISP").ExecuteNonQuery(
"