package com.ycsoft.sysmanager.component.config;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import org.springframework.stereotype.Component;
import com.ycsoft.beans.config.TBusiCode;
import com.ycsoft.beans.config.TBusiCodeDoc;
import com.ycsoft.beans.config.TBusiDoc;
import com.ycsoft.beans.config.TBusiFee;
import com.ycsoft.beans.config.TBusiFeeDevice;
import com.ycsoft.beans.config.TBusiFeeStd;
import com.ycsoft.beans.config.TConfigTemplate;
import com.ycsoft.beans.config.TInvoicePrintitem;
import com.ycsoft.beans.config.TOpenTemp;
import com.ycsoft.beans.config.TPrintitem;
import com.ycsoft.beans.config.TProdStatusRent;
import com.ycsoft.beans.config.TStbFilled;
import com.ycsoft.beans.config.TTemplate;
import com.ycsoft.beans.config.TTemplateColumn;
import com.ycsoft.beans.config.TTemplateColumnOptr;
import com.ycsoft.beans.config.TTemplateCounty;
import com.ycsoft.beans.config.TTemplateExcludeCounty;
import com.ycsoft.beans.config.TTemplateFeeStd;
import com.ycsoft.beans.config.TUpdateCfg;
import com.ycsoft.beans.prod.PRes;
import com.ycsoft.beans.system.SItemvalue;
import com.ycsoft.beans.system.SOptr;
import com.ycsoft.beans.system.SSysChange;
import com.ycsoft.beans.task.TBusiCodeTask;
import com.ycsoft.beans.task.TTaskDetailType;
import com.ycsoft.beans.task.TTaskTemplatefile;
import com.ycsoft.business.dao.config.TBusiCodeDao;
import com.ycsoft.business.dao.config.TBusiCodeDocDao;
import com.ycsoft.business.dao.config.TBusiCodeFeeDao;
import com.ycsoft.business.dao.config.TBusiCodeTaskDao;
import com.ycsoft.business.dao.config.TBusiDocDao;
import com.ycsoft.business.dao.config.TBusiFeeDao;
import com.ycsoft.business.dao.config.TBusiFeeDeviceDao;
import com.ycsoft.business.dao.config.TBusiFeeStdDao;
import com.ycsoft.business.dao.config.TConfigDao;
import com.ycsoft.business.dao.config.TConfigTemplateDao;
import com.ycsoft.business.dao.config.TInvoicePrintitemDao;
import com.ycsoft.business.dao.config.TOpenTempDao;
import com.ycsoft.business.dao.config.TPrintitemDao;
import com.ycsoft.business.dao.config.TProdStatusRentDao;
import com.ycsoft.business.dao.config.TStbFilledDao;
import com.ycsoft.business.dao.config.TTemplateColumnDao;
import com.ycsoft.business.dao.config.TTemplateColumnOptrDao;
import com.ycsoft.business.dao.config.TTemplateCountyDao;
import com.ycsoft.business.dao.config.TTemplateDao;
import com.ycsoft.business.dao.config.TTemplateExcludeCountyDao;
import com.ycsoft.business.dao.config.TTemplateFeeStdDao;
import com.ycsoft.business.dao.config.TUpdateCfgDao;
import com.ycsoft.business.dao.prod.PResDao;
import com.ycsoft.business.dao.system.SCountyDao;
import com.ycsoft.business.dao.system.SSysChangeDao;
import com.ycsoft.business.dao.task.TTaskDetailTypeDao;
import com.ycsoft.business.dao.task.TTaskTemplatefileDao;
import com.ycsoft.business.dto.config.TemplateConfigDto;
import com.ycsoft.business.dto.config.TemplateFeeDto;
import com.ycsoft.business.dto.config.TemplateUseDto;
import com.ycsoft.commons.abstracts.BaseComponent;
import com.ycsoft.commons.constants.DataRight;
import com.ycsoft.commons.constants.DictKey;
import com.ycsoft.commons.constants.FuncCode;
import com.ycsoft.commons.constants.SysChangeType;
import com.ycsoft.commons.constants.SystemConstants;
import com.ycsoft.commons.exception.ComponentException;
import com.ycsoft.commons.helper.CollectionHelper;
import com.ycsoft.commons.helper.StringHelper;
import com.ycsoft.commons.store.MemoryDict;
import com.ycsoft.daos.core.JDBCException;
import com.ycsoft.daos.helper.BeanHelper;
import com.ycsoft.sysmanager.dto.tree.TreeDto;
import com.ycsoft.sysmanager.web.commons.interceptor.WebOptr;
/**
* @Description: 模板组件
* @author wqy
* @date Apr 1, 2010 10:07:14 AM
*/
@Component
public class TemplateComponent extends BaseComponent {
private TTemplateDao tTemplateDao;
private TConfigDao tConfigDao;
private TTemplateCountyDao tTemplateCountyDao;
private TBusiCodeDocDao tBusiCodeDocDao;
private TBusiCodeFeeDao tBusiCodeFeeDao;
private TBusiCodeTaskDao tBusiCodeTaskDao;
private TBusiCodeDao tBusiCodeDao;
private TBusiDocDao tBusiDocDao;
private TBusiFeeDao tBusiFeeDao;
private TTaskDetailTypeDao tTaskDetailTypeDao;
private TPrintitemDao tPrintitemDao;
private TInvoicePrintitemDao tInvoicePrintitemDao;
private SCountyDao sCountyDao ;
private TProdStatusRentDao tProdStatusRentDao;
private TUpdateCfgDao tUpdateCfgDao;
private TConfigTemplateDao tConfigTemplateDao;
private TOpenTempDao tOpenTempDao;
private PResDao pResDao;
private TStbFilledDao tStbFilledDao;
private TBusiFeeStdDao tBusiFeeStdDao;
private TBusiFeeDeviceDao tBusiFeeDeviceDao;
private SSysChangeDao sSysChangeDao;
private TTemplateColumnDao tTemplateColumnDao;
private TTemplateColumnOptrDao tTemplateColumnOptrDao;
private TTemplateFeeStdDao tTemplateFeeStdDao;
private TTemplateExcludeCountyDao tTemplateExcludeCountyDao;
private TTaskTemplatefileDao tTaskTemplatefileDao;
public String queryChangeCounty() throws Exception {
return this.queryDataRightCon(WebOptr.getOptr(), DataRight.CHANGE_COUNTY.toString());
}
/**
* 返回模板菜单树
* @param optr
* @return
* @throws Exception
* @throws ComponentException
*/
public List<TreeDto> queryTemplateTree() throws Exception{
String dataRight = queryChangeCounty();
if(WebOptr.getOptr().getCounty_id().equals(SystemConstants.COUNTY_ALL)){
dataRight = " 1=1 ";
}
return tTemplateDao.queryTemplateTree(dataRight);
}
public List<TreeDto> queryFeeTemplateTree(SOptr optr) throws Exception{
String dataRight = this.queryDataRightCon(optr, DataRight.CHANGE_COUNTY.toString());
if(!optr.getCounty_id().equals(optr.getOld_county_id())){
dataRight = " county_id='"+optr.getCounty_id()+"'";
}
return tTemplateDao.queryFeeTemplateTree(optr.getCounty_id(),dataRight,optr.getOptr_id());
}
/**
* @Description:初始化业务
* @return
* @throws Exception
* @return List<TBusiCode>
*/
public List<TBusiCode> querybusi()throws Exception {
return tBusiCodeDao.findAll();
}
/*****************************业务费用****************************/
/**
* 查询费用标准模板数据
* @param templateId
* @return
* @throws JDBCException
*/
public TemplateUseDto queryByTemplateId(String templateId) throws Exception{
List<TBusiFeeStd> feeStdList = this.tBusiFeeStdDao.queryByTemplateId(templateId);
Map<String, List<TBusiFeeDevice>> map = CollectionHelper.converToMap(tBusiFeeDeviceDao.queryModelByStdId(), "fee_std_id");
for (TBusiFeeStd std :feeStdList){
if (StringHelper.isNotEmpty(std.getDevice_type())){
List<TBusiFeeDevice> list = map.get(std.getFee_std_id());
std.setDeviceModelList(CollectionHelper.converValueToList(list, "device_model"));
String itemKey="";
String deviceModels="";
String deviceModelTexts = "";
if (std.getDevice_type().equals(SystemConstants.DEVICE_TYPE_STB))
itemKey=DictKey.STB_MODEL.toString();
else if (std.getDevice_type().equals(SystemConstants.DEVICE_TYPE_CARD))
itemKey=DictKey.CARD_MODEL.toString();
else if (std.getDevice_type().equals(SystemConstants.DEVICE_TYPE_MODEM))
itemKey=DictKey.MODEM_MODEL.toString();
else{
}
for (TBusiFeeDevice model:list){
deviceModels += model.getDevice_model() + ",";
if(StringHelper.isNotEmpty(itemKey)){
deviceModelTexts += MemoryDict.getDictName(itemKey, model.getDevice_model())+",";
}else{
deviceModelTexts += model.getModel_name()+",";
}
}
if (deviceModels.length()>1)
deviceModels.substring(0,deviceModels.length()-1);
std.setDevice_model_text(deviceModelTexts);
std.setDevice_model(deviceModels);
}
}
TemplateUseDto useDto = new TemplateUseDto();
useDto.setFeeStbList(feeStdList);
TTemplateExcludeCounty exculde = tTemplateExcludeCountyDao.query(templateId, WebOptr.getOptr().getCounty_id());
if(exculde != null){
useDto.setIs_include(exculde.getIs_include());
}else{
useDto.setIs_include(SystemConstants.BOOLEAN_TRUE);
}
List<TTemplateColumn> columnList = tTemplateColumnDao.queryColumnByOptrId(
WebOptr.getOptr().getOptr_id(), templateId, "FEE");
if(useDto.getIs_include().equals(SystemConstants.BOOLEAN_FALSE)){
for(TTemplateColumn column : columnList){
if(column.getType().equals("number")){
column.setMin_value(Integer.MIN_VALUE);
column.setMax_value(Integer.MAX_VALUE);
}
}
}
useDto.setColumnList(columnList);
return useDto;
}
public List<TemplateFeeDto> queryFeeTemplateColumn(String templateId, String key) throws Exception {
return tTemplateColumnDao.queryFeeTemplateColumn(templateId, key);
}
public void updateColumn(List<TTemplateColumn> columnList) throws Exception {
tTemplateColumnDao.update(columnList.toArray(new TTemplateColumn[columnList.size()]));
}
/**
* 查找可以配置费用标准的费用,过滤掉已经配置了费用标准的业务费用
* @param templateId
* @return
* @throws Exception
*/
public List<TBusiFee> queryBusiFeeForStdCfg(String templateId, String countyIds)throws Exception{
return this.tBusiFeeStdDao.queryBusiFeeForStdCfg(templateId, countyIds);
}
/**
* 查找费用标准可以选择的设备型号
* @param templateId
* @param deviceBuyMode
* @param deviceType
* @return
* @throws Exception
*/
public List<SItemvalue> qeuryDeviceModelForStdCfg(String templateId,String feeStdId,String deviceBuyMode,String deviceType,String feeId,String[] countyId)throws Exception{
return this.tBusiFeeStdDao.qeuryDeviceModelForStdCfg(templateId, feeStdId,deviceBuyMode, deviceType,feeId,countyId);
}
/**
* 保存或修改一条收费标准
* @param entity
* @throws Exception
*/
public void saveFeeConfig(TBusiFeeStd busiFeeStd,String deviceModelListStr) throws Exception{
//金额以分为单位
if(StringHelper.isNotEmpty(busiFeeStd.getFee_std_id())){//修改
tBusiFeeStdDao.update(busiFeeStd);
if(StringHelper.isNotEmpty(deviceModelListStr)){
tBusiFeeDeviceDao.deleteFeeById(busiFeeStd.getFee_std_id());
}
tTemplateColumnDao.updateColumn(busiFeeStd, WebOptr.getOptr().getOptr_id());
}else{//保存
busiFeeStd.setFee_std_id(tBusiFeeStdDao.getBusiFeeStdID());
busiFeeStd.setOptr_id(WebOptr.getOptr().getOptr_id());
tBusiFeeStdDao.save(busiFeeStd);
this.saveFeeColumn(busiFeeStd, deviceModelListStr);
}
//设备购买方式、型号对应费用
if(StringHelper.isNotEmpty(deviceModelListStr)){
String[] deviceModelList = deviceModelListStr.split(",");
List<TBusiFeeDevice> busiFeeList = new ArrayList<TBusiFeeDevice>();
for(int i=0;i<deviceModelList.length;i++){
TBusiFeeDevice entity = new TBusiFeeDevice();
entity.setFee_std_id(busiFeeStd.getFee_std_id());
entity.setDevice_buy_mode(busiFeeStd.getDevice_buy_mode());
entity.setDevice_type(busiFeeStd.getDevice_type());
entity.setDevice_model(deviceModelList[i]);
busiFeeList.add(entity);
}
tBusiFeeDeviceDao.save(busiFeeList.toArray(new TBusiFeeDevice[busiFeeList.size()]));
}
}
private void saveFeeColumn(TBusiFeeStd busiFeeStd, String deviceModelListStr) throws Exception {
List<TTemplateColumn> columnList = new ArrayList<TTemplateColumn>();
List<TTemplateFeeStd> stdList = new ArrayList<TTemplateFeeStd>();
TTemplateColumn column = new TTemplateColumn();
column.setColumn_id(Integer.parseInt(tTemplateColumnDao.findSequence().toString()));
column.setTemplate_id(busiFeeStd.getTemplate_id());
column.setColumn_name("fee_id");
column.setColumn_text("费用名");
column.setIs_editable(SystemConstants.BOOLEAN_FALSE);
column.setType("string");
column.setOptr_id(WebOptr.getOptr().getOptr_id());
columnList.add(column);
TTemplateFeeStd std = new TTemplateFeeStd();
std.setColumn_id(column.getColumn_id());
std.setFee_std_id(busiFeeStd.getFee_std_id());
stdList.add(std);
column = new TTemplateColumn();
column.setColumn_id(Integer.parseInt(tTemplateColumnDao.findSequence().toString()));
column.setTemplate_id(busiFeeStd.getTemplate_id());
column.setColumn_name("min_value");
column.setColumn_text("最小值");
column.setIs_editable(SystemConstants.BOOLEAN_TRUE);
column.setType("number");
column.setMin_value(busiFeeStd.getMin_value());
column.setMax_value(busiFeeStd.getMax_value());
column.setDefault_value(busiFeeStd.getMin_value());
column.setOptr_id(WebOptr.getOptr().getOptr_id());
columnList.add(column);
std = new TTemplateFeeStd();
std.setColumn_id(column.getColumn_id());
std.setFee_std_id(busiFeeStd.getFee_std_id());
stdList.add(std);
column = new TTemplateColumn();
column.setColumn_id(Integer.parseInt(tTemplateColumnDao.findSequence().toString()));
column.setTemplate_id(busiFeeStd.getTemplate_id());
column.setColumn_name("default_value");
column.setColumn_text("默认值");
column.setIs_editable(SystemConstants.BOOLEAN_TRUE);
column.setType("number");
column.setDefault_value(busiFeeStd.getDefault_value());
column.setOptr_id(WebOptr.getOptr().getOptr_id());
columnList.add(column);
std = new TTemplateFeeStd();
std.setColumn_id(column.getColumn_id());
std.setFee_std_id(busiFeeStd.getFee_std_id());
stdList.add(std);
column = new TTemplateColumn();
column.setColumn_id(Integer.parseInt(tTemplateColumnDao.findSequence().toString()));
column.setTemplate_id(busiFeeStd.getTemplate_id());
column.setColumn_name("max_value");
column.setColumn_text("最大值");
column.setIs_editable(SystemConstants.BOOLEAN_TRUE);
column.setType("number");
column.setMin_value(busiFeeStd.getMin_value());
column.setMax_value(busiFeeStd.getMax_value());
column.setDefault_value(busiFeeStd.getMax_value());
column.setOptr_id(WebOptr.getOptr().getOptr_id());
columnList.add(column);
std = new TTemplateFeeStd();
std.setColumn_id(column.getColumn_id());
std.setFee_std_id(busiFeeStd.getFee_std_id());
stdList.add(std);
if(StringHelper.isNotEmpty(busiFeeStd.getDevice_buy_mode())){
column = new TTemplateColumn();
column.setColumn_id(Integer.parseInt(tTemplateColumnDao.findSequence().toString()));
column.setTemplate_id(busiFeeStd.getTemplate_id());
column.setColumn_name("device_buy_mode");
column.setColumn_text("购买方式");
column.setIs_editable(SystemConstants.BOOLEAN_FALSE);
column.setType("string");
column.setItem_key(DictKey.BUSI_BUY_MODE.toString());
column.setItem_key_text("购买方式");
column.setSelect_value("ALL");
column.setOptr_id(WebOptr.getOptr().getOptr_id());
columnList.add(column);
std = new TTemplateFeeStd();
std.setColumn_id(column.getColumn_id());
std.setFee_std_id(busiFeeStd.getFee_std_id());
stdList.add(std);
}
if(StringHelper.isNotEmpty(busiFeeStd.getDevice_type())){
column = new TTemplateColumn();
column.setColumn_id(Integer.parseInt(tTemplateColumnDao.findSequence().toString()));
column.setTemplate_id(busiFeeStd.getTemplate_id());
column.setColumn_name("device_type");
column.setColumn_text("设备类型");
column.setIs_editable(SystemConstants.BOOLEAN_FALSE);
column.setType("string");
column.setItem_key(DictKey.DEVICE_TYPE.toString());
column.setItem_key_text("设备类型");
column.setSelect_value("ALL");
column.setOptr_id(WebOptr.getOptr().getOptr_id());
columnList.add(column);
std = new TTemplateFeeStd();
std.setColumn_id(column.getColumn_id());
std.setFee_std_id(busiFeeStd.getFee_std_id());
stdList.add(std);
}
if(StringHelper.isNotEmpty(deviceModelListStr)){
String deviceType = busiFeeStd.getDevice_type();
column = new TTemplateColumn();
column.setColumn_id(Integer.parseInt(tTemplateColumnDao.findSequence().toString()));
column.setTemplate_id(busiFeeStd.getTemplate_id());
column.setColumn_name("device_model");
column.setColumn_text("设备型号");
column.setIs_editable(SystemConstants.BOOLEAN_FALSE);
column.setType("string");
if(deviceType.equals(SystemConstants.DEVICE_TYPE_STB)){
column.setItem_key("STB_MODEL");
column.setItem_key_text("机顶盒型号");
}else if(deviceType.equals(SystemConstants.DEVICE_TYPE_CARD)){
column.setItem_key("CARD_MODEL");
column.setItem_key_text("机顶盒型号");
}else if(deviceType.equals(SystemConstants.DEVICE_TYPE_MODEM)){
column.setItem_key("MODEM_MODEL");
column.setItem_key_text("MODEM型号");
}else if(deviceType.equals(SystemConstants.DEVICE_TYPE_FITTING)){
column.setItem_key("FITTING_MODEL");
column.setItem_key_text("器材型号");
}
column.setSelect_value("ALL");
columnList.add(column);
std = new TTemplateFeeStd();
std.setColumn_id(column.getColumn_id());
std.setFee_std_id(busiFeeStd.getFee_std_id());
stdList.add(std);
}
tTemplateColumnDao.save(columnList.toArray(new TTemplateColumn[columnList.size()]));
tTemplateFeeStdDao.save(stdList.toArray(new TTemplateFeeStd[stdList.size()]));
}
public List<TreeDto> queryTemplateOptr(String[] columnIds, String type) throws Exception {
String countyId = WebOptr.getOptr().getCounty_id();
String dataRight = this.queryDataRightCon(WebOptr.getOptr(), DataRight.CHANGE_COUNTY.toString());
List<TreeDto> treeList = new ArrayList<TreeDto>();
//查询需要新增模板权限操作员
if(type.equals("add")){
treeList = sCountyDao.queryAddTemplateOptr(columnIds, countyId, dataRight);
for(TreeDto county : treeList){
county.setChecked(false);
}
}else if(type.equals("edit")){ //修改
treeList = sCountyDao.queryEditTemplateOptr(columnIds, countyId, dataRight);
List<TreeDto> coList = tTemplateColumnOptrDao.queryByColumnIds(columnIds);
for(TreeDto county : treeList){
county.setChecked(false);
for(TreeDto column : coList){
if(county.getId().equals(column.getId())){
county.setChecked(true);
}
}
}
}
return treeList;
}
public void saveTemplateToOptrs(String[] columnIds, String[] optrIds) throws Exception {
tTemplateColumnOptrDao.deleteByOptrIds(optrIds, columnIds);
if(optrIds != null && optrIds.length > 0){
List<TTemplateColumnOptr> list = new ArrayList<TTemplateColumnOptr>();
for(int i=0,len=columnIds.length;i<len;i++){
for(int j=0,len2=optrIds.length;j<len2;j++){
TTemplateColumnOptr co = new TTemplateColumnOptr();
co.setColumn_id(columnIds[i]);
co.setOptr_id(optrIds[j]);
list.add(co);
}
}
if(list.size() > 0){
tTemplateColumnOptrDao.save(list.toArray(new TTemplateColumnOptr[list.size()]));
}
}
}
/**
* 查询单个费用
* @param template_id
* @param fee_std_id
* @return
* @throws Exception
*/
public TBusiFeeStd queryTBusiFeeStd(String template_id,String fee_std_id) throws Exception{
if(StringHelper.isEmpty(fee_std_id)){
return null;
}else{
Map<String,TBusiFeeStd> map=CollectionHelper.converToMapSingle(this.queryByTemplateId(template_id).getFeeStbList(), "fee_std_id");
return map.get(fee_std_id);
}
}
public TBusiFeeStd queryTBusiFeeStd(String fee_std_id) throws Exception{
return this.tBusiFeeStdDao.findByKey(fee_std_id);
}
/**
* 保存费用模板异动
* @param oldbean
* @param newbean
* @throws Exception
*/
public void saveTemplateBsuiFeeChange(String template_id,TBusiFeeStd oldbean,TBusiFeeStd newbean) throws Exception{
String change_text=BeanHelper.beanchange(oldbean, newbean);
if(StringHelper.isNotEmpty(change_text)){
SSysChange change=new SSysChange();
change.setContent(change_text);
change.setChange_type(SysChangeType.TEMPLATE.name());
change.setOptr_id(WebOptr.getOptr().getOptr_id());
change.setKey(template_id);
TTemplate tp=tTemplateDao.findByKey(template_id);
change.setKey_desc(tp.getTemplate_type_text()+"_"+tp.getTemplate_name());
change.setCreate_time(new Date());
change.setChange_desc(oldbean==null?
newbean.getFee_name()+"("+newbean.getFee_std_id()+")"
:oldbean.getFee_name()+"("+oldbean.getFee_std_id()+")");
sSysChangeDao.save(change);
}
}
/**
* 查询模板适用地区
* @param template_id
* @return
* @throws Exception
*/
public List<TTemplateCounty> queryTemplateCountys(String template_id)throws Exception{
return tTemplateCountyDao.queryTemplateCounty(template_id);
}
/**
* 保存使用地区异动
* @throws Exception
*/
public void saveTemplateCountyChange(String templateId, List<TTemplateCounty> oldcountys, List<TTemplateCounty> newcountys) throws Exception{
String change_text=BeanHelper.listchange(oldcountys, newcountys, "county_id");
if(StringHelper.isNotEmpty(change_text)){
SSysChange change=new SSysChange();
change.setContent(change_text);
change.setChange_type(SysChangeType.TEMPLATE.name());
change.setOptr_id(WebOptr.getOptr().getOptr_id());
change.setKey(templateId);
TTemplate tp=tTemplateDao.findByKey(templateId);
change.setKey_desc(tp.getTemplate_type_text()+"_"+tp.getTemplate_name());
change.setCreate_time(new Date());
change.setChange_desc("适用地区异动");
sSysChangeDao.save(change);
}
}
/**
* 非费用模板记录异动
* @param <T>
* @param template_id
* @param oldList
* @param newList
* @param proptyname
* @throws Exception
*/
public <T> void saveTemplateContentChange(String templateId,List<T> oldList,List<T> newList,String...proptyname) throws Exception{
String change_text=BeanHelper.listchange(oldList, newList, proptyname);
if(StringHelper.isNotEmpty(change_text)){
SSysChange change=new SSysChange();
change.setContent(change_text);
change.setChange_type(SysChangeType.TEMPLATE.name());
change.setOptr_id(WebOptr.getOptr().getOptr_id());
change.setKey(templateId);
TTemplate tp=tTemplateDao.findByKey(templateId);
change.setKey_desc(tp.getTemplate_type_text()+"_"+tp.getTemplate_name());
change.setCreate_time(new Date());
change.setChange_desc("模板定义异动");
sSysChangeDao.save(change);
}
}
/**
* 根据费用标准ID删除记录
* @param feeStdId
* @throws JDBCException
*/
public void deleteFeeConfig(String feeStdId) throws Exception{
tBusiFeeStdDao.remove(feeStdId);
tTemplateColumnDao.deleteColumn(feeStdId, WebOptr.getOptr().getOptr_id());
}
/**
* 保存业务费用的地区配置
* @param templateId
* @param templateType
* @param docList
* @param countyIds
* @throws JDBCException
* @throws JDBCException
*/
public void saveFeeTpls(String templateId, String templateType,String[] countyIds) throws JDBCException {
//保存模板地区配置
saveTemplateCountyConfigs(templateId, templateType, countyIds);
}
/*****************************业务单据****************************/
/**
* @Description:查询单据类型
* @return
* @throws Exception
* @return List<TBusiDoc>
*/
public List<TBusiDoc> querydoc()throws Exception {
return tBusiDocDao.querydoc();
}
/**
* 根据模板ID查询业务单据配置
* @author eagle
* @param templateId
* @return
* @throws JDBCException
*/
public List<TBusiCodeDoc> queryDocTpls(String templateId) throws JDBCException{
return tBusiCodeDocDao.queryDocTpls(templateId);
}
/**
* 保存业务单据配置
* @param templateId
* @param templateType
* @param docList
* @param countyIds
* @throws JDBCException
*/
public void saveDocTpls(String templateId,String templateType,List<TBusiCodeDoc> docList,String[] countyIds) throws JDBCException{
//保存模板地区配置
saveTemplateCountyConfigs(templateId, templateType, countyIds);
tBusiCodeDocDao.deleteByTplId(templateId);
tBusiCodeDocDao.save(docList.toArray(new TBusiCodeDoc[docList.size()]));
}
/****************************业务工单****************************/
/**
* 根据模板ID查询业务工单配置
* @param templateId
* @return
* @throws JDBCException
*/
public List<TBusiCodeTask> queryTaskTpls(String templateId) throws JDBCException{
return tBusiCodeTaskDao.queryTaskTpls(templateId);
}
/**
* @Description:查询工单类型
* @return
* @throws Exception
* @return List<TTaskDetailType>
*/
public List<TTaskDetailType> querytask()throws Exception {
return tTaskDetailTypeDao.findAll();
}
/**
* 保存业务工单配置
* @param templateId
* @param templateType
* @param taskList
* @param countyIds
* @throws Exception
*/
public void saveTaskTpls(String templateId,String templateType,List<TBusiCodeTask> taskList,String[] countyIds) throws Exception{
//保存模板地区配置
saveTemplateCountyConfigs(templateId, templateType, countyIds);
List<TTaskTemplatefile> tFileList = new ArrayList<TTaskTemplatefile>();
List<String> list = CollectionHelper.converValueToList(tTaskTemplatefileDao.queryTaskFileById(templateId), "task_detail_type");
for(TBusiCodeTask dto:taskList){
if(list.contains(dto.getDetail_type_id())){
continue;
}
TTaskTemplatefile file = new TTaskTemplatefile();
file.setTemlate_id(templateId);
file.setTask_detail_type(dto.getDetail_type_id());
file.setTemplate_filename("task.xml");
tFileList.add(file);
}
tTaskTemplatefileDao.save(tFileList.toArray(new TTaskTemplatefile[tFileList.size()]));
tBusiCodeTaskDao.deleteByTplId(templateId);
tBusiCodeTaskDao.save(taskList.toArray(new TBusiCodeTask[taskList.size()]));
}
/****************************信息修改****************************/
/**
* 查询跟信息修改相关的业务
* @return
* @throws Exception
*/
public List<TBusiCode> queryBusiForUpdate() throws Exception{
return tBusiCodeDao.queryBusiForUpdate();
}
/**
* 查询信息修改字段名
* @return
* @throws JDBCException
*/
public List<TUpdateCfg> queryFields() throws JDBCException{
return tUpdateCfgDao.queryFields();
}
/**
* 查询信息修改模板数据
* @param templateId
* @return
* @throws JDBCException
*/
public List<TUpdateCfg> queryUpdCfgTpls(String templateId) throws JDBCException{
return tUpdateCfgDao.queryUpdCfgTpls(templateId);
}
/**
* 保存信息修改模板数据
* @param templateId
* @param templateType
* @param invoiceList
* @param countyIds
* @throws JDBCException
*/
public void saveUpdCfgTpls(String templateId,String templateType,List<TUpdateCfg> updList,String[] countyIds) throws JDBCException{
//保存模板地区配置
saveTemplateCountyConfigs(templateId, templateType, countyIds);
tUpdateCfgDao.deleteByTplId(templateId);
tUpdateCfgDao.save(updList.toArray(new TUpdateCfg[updList.size()]));
}
/****************************发票打印****************************/
/**
* 查询发票打印项
*/
public List<TPrintitem> queryPrintItem() throws JDBCException{
return tPrintitemDao.findAll();
}
/**
* 查询发票打印种类
* @return
* @throws JDBCException
*/
public List<TBusiDoc> queryInvoiceType() throws JDBCException{
String countyId = WebOptr.getOptr().getCounty_id();
return tBusiDocDao.queryInvoiceType(countyId);
}
/**
* 查询发票打印模板数据
* @return
* @throws JDBCException
*/
public List<TInvoicePrintitem> queryInvoiceTpls(String templateId) throws JDBCException{
return tInvoicePrintitemDao.queryInvoiceTpls(templateId);
}
/**
* 保存发票打印模板数据
* @param templateId
* @param templateType
* @param invoiceList
* @param countyIds
* @throws JDBCException
*/
public void saveInvoiceTpls(String templateId,String templateType,List<TInvoicePrintitem> invoiceList,String[] countyIds) throws JDBCException{
//保存模板地区配置
saveTemplateCountyConfigs(templateId, templateType, countyIds);
tInvoicePrintitemDao.deleteByTplId(templateId);
tInvoicePrintitemDao.save(invoiceList.toArray(new TInvoicePrintitem[invoiceList.size()]));
}
/****************************计费****************************/
/**
* 查询产品状态
* @return
* @throws JDBCException
*/
public List<TProdStatusRent> queryProdStatus() throws JDBCException{
return tProdStatusRentDao.queryProdStatus();
}
/**
* 查询计费模板数据
* @param templateId
* @return
* @throws JDBCException
*/
public List<TProdStatusRent> queryBillTpls(String templateId) throws JDBCException{
return tTemplateDao.queryBillTpls(templateId);
}
/**
* 保存计费模板数据
* @param templateId
* @param templateType
* @param billList
* @param countyIds
* @throws JDBCException
*/
public void saveBillTpls(String templateId,String templateType,List<TProdStatusRent> billList,String[] countyIds) throws JDBCException{
//保存模板地区配置
saveTemplateCountyConfigs(templateId, templateType, countyIds);
tProdStatusRentDao.deleteByTplId(templateId);
tProdStatusRentDao.save(billList.toArray(new TProdStatusRent[billList.size()]));
}
/****************************配置****************************/
// /**
// * 查询配置种类
// * @return
// * @throws JDBCException
// */
// public List<TTemplateDto> queryConfigs() throws JDBCException{
// return tTemplateDao.queryConfigs();
// }
/**
* 查询配置模板数据
* @param templateId
* @return
* @throws JDBCException
*/
public List<TConfigTemplate> queryConfigTpls(String templateId) throws JDBCException{
return tConfigTemplateDao.queryConfigTpls(templateId);
}
/**
* 保存配置模板数据
* @param templateId
* @param templateType
* @param configList
* @param countyIds
* @throws JDBCException
*/
public void saveConfigTpls(String templateId, String templateType,
List<TConfigTemplate> configList, String[] countyIds, SOptr optr)
throws Exception {
/**
String oweFeeNumber = ""; //修改后值
String preTemplateId = "";
for(TConfigTemplate ct : configList){
if(ct.getConfig_name().equals(TemplateConfigDto.Config.OWE_FEE_NUMBER.toString())){
oweFeeNumber = ct.getConfig_value();
preTemplateId = ct.getTemplate_id();
break;
}
}
String remark = tConfigDao.findByKey(TemplateConfigDto.Config.OWE_FEE_NUMBER.toString()).getRemark();
for(String countyId : countyIds){
TConfigTemplate ct = tConfigTemplateDao.queryConfigByConfigName(
TemplateConfigDto.Config.OWE_FEE_NUMBER.toString(), countyId); //当前值
if(null==ct){
saveOperateLog(FuncCode.OWE_FEE_NUMBER.toString(), preTemplateId, remark + " 修改前天数: ; 修改后天数:" + oweFeeNumber+" 模板ID:"+preTemplateId,
optr);
}else if(!oweFeeNumber.equals(ct.getConfig_value())){
saveOperateLog(FuncCode.OWE_FEE_NUMBER.toString(), ct
.getTemplate_id(), remark + " 修改前天数:" + ct.getConfig_value()+"; 修改后天数:" + oweFeeNumber+" 模板ID:"+preTemplateId,
optr);
}
}**/
//保存模板地区配置
saveTemplateCountyConfigs(templateId, templateType, countyIds);
tConfigTemplateDao.deleteByTplId(templateId);
tConfigTemplateDao.save(configList.toArray(new TConfigTemplate[configList.size()]));
}
/****************************临时授权***************************/
/**
* 查询临时授权配置
*/
public List<TOpenTemp> queryOpenTemps(String templateId) throws JDBCException {
return tOpenTempDao.queryOpenTemps(templateId);
}
/**
* 保存临时授权配置
* @param templateId
* @param templateType
* @param openList
* @param countyIds
* @throws JDBCException
*/
public void saveOpenTemps(String templateId,String templateType,List<TOpenTemp> openList,String[] countyIds) throws JDBCException{
//保存模板地区配置
saveTemplateCountyConfigs(templateId, templateType, countyIds);
tOpenTempDao.deleteByTplId(templateId);
tOpenTempDao.save(openList.toArray(new TOpenTemp[openList.size()]));
}
/****************************机顶盒灌装***************************/
/**
* 查询服务类型为DTV的资源
* @return
* @throws JDBCException
*/
public List<PRes> queryDtvRes() throws Exception {
return pResDao.queryResByServId(SystemConstants.PROD_SERV_ID_DTV,null);
}
/**
* 根据模板ID查询机顶盒灌装数据
* @param templateId
* @return
* @throws JDBCException
*/
public List<TStbFilled> queryStbFilleds(String templateId) throws JDBCException {
return tStbFilledDao.queryStbFilleds(templateId);
}
/**
* 保存机顶盒灌装配置
* @param templateId
* @param templateType
* @param stbList
* @param countyIds
* @throws JDBCException
*/
public void saveStbFilled(String templateId,String templateType,List<TStbFilled> stbList,String[] countyIds) throws JDBCException{
//保存模板地区配置
saveTemplateCountyConfigs(templateId, templateType, countyIds);
tStbFilledDao.deleteByTplId(templateId);
tStbFilledDao.save(stbList.toArray(new TStbFilled[stbList.size()]));
}
/**
* 保存模板地区配置
* @param templateId
* @param templateType
* @param countyIds
* @throws JDBCException
*/
private void saveTemplateCountyConfigs(String templateId,String templateType,String[] countyIds) throws JDBCException{
//根据传过来的countyIds,删除模板类型相同的相关数据和本身数据
sCountyDao.deleteByTplId(templateId);
sCountyDao.deleteByTplType(templateType, countyIds);
List<TTemplateCounty> tplCountyList = new ArrayList<TTemplateCounty>();
for (String element : countyIds) {
if(element.length() > 0){
TTemplateCounty tt = new TTemplateCounty();
tt.setCounty_id(element);
tt.setTemplate_type(templateType);
tt.setTemplate_id(templateId);
tplCountyList.add(tt);
}
}
//保存模板地区选择数据
if(tplCountyList.size() > 0){
tTemplateCountyDao.save(tplCountyList.toArray(new TTemplateCounty[tplCountyList.size()]));
}
}
/**
* 创建新的模板
* @param templateType
* @param templateName
* @param copyTemplateId 用于拷贝模板id
* @param string
* @throws Exception
*/
public TTemplate createTemplate(String templateType,String templateName,String copyTemplateId, String optrId) throws Exception{
TTemplate template = new TTemplate();
template.setTemplate_id(tTemplateDao.getTemplateID());
template.setTemplate_type(templateType);
template.setTemplate_name(templateName);
template.setOptr_id(optrId);
tTemplateDao.save(template);
if(StringHelper.isNotEmpty(copyTemplateId)){
saveCopyTemplateConfig(template.getTemplate_id(),copyTemplateId,templateType);
}
return template;
}
/**
* 保存复制模板配置数据
* @param templateId
* @param templateType
* @param templateList
* @throws JDBCException
*/
private void saveCopyTemplateConfig(String templateId,String copyTemplateId,String templateType) throws Exception{
if(templateType.equals(SystemConstants.TEMPLATE_TYPE_FEE)){//FEE
List<TBusiFeeStd> feeList = queryByTemplateId(copyTemplateId).getFeeStbList();
for(TBusiFeeStd tt : feeList){
List<String> deviceModels = null;
if(StringHelper.isNotEmpty(tt.getDevice_type())){
deviceModels = tt.getDeviceModelList();
}
tt.setTemplate_id(templateId);
tt.setFee_std_id(tBusiFeeStdDao.findSequence().toString());
if(null != deviceModels){
for(String model : deviceModels){
TBusiFeeDevice entity = new TBusiFeeDevice();
entity.setFee_std_id(tt.getFee_std_id());
entity.setDevice_buy_mode(tt.getDevice_buy_mode());
entity.setDevice_model(model);
entity.setDevice_type(tt.getDevice_type());
tBusiFeeDeviceDao.save(entity);
}
}
}
tBusiFeeStdDao.save(feeList.toArray(new TBusiFeeStd[feeList.size()]));
}else if(templateType.equals(SystemConstants.TEMPLATE_TYPE_DOC)){//DOC
List<TBusiCodeDoc> docList = queryDocTpls(copyTemplateId);
for(TBusiCodeDoc tt : docList){
tt.setTemplate_id(templateId);
}
tBusiCodeDocDao.save(docList.toArray(new TBusiCodeDoc[docList.size()]));
}else if(templateType.equals(SystemConstants.TEMPLATE_TYPE_TASK)){//TASK
List<TBusiCodeTask> taskList = queryTaskTpls(copyTemplateId);
for(TBusiCodeTask tt : taskList){
tt.setTemplate_id(templateId);
}
tBusiCodeTaskDao.save(taskList.toArray(new TBusiCodeTask[taskList.size()]));
}else if(templateType.equals(SystemConstants.TEMPLATE_TYPE_UPDPROP)){//UPDPROP
List<TUpdateCfg> updList = queryUpdCfgTpls(copyTemplateId);
for(TUpdateCfg tt : updList){
tt.setTemplate_id(templateId);
}
tUpdateCfgDao.save(updList.toArray(new TUpdateCfg[updList.size()]));
}else if(templateType.equals(SystemConstants.TEMPLATE_TYPE_BILLING)){//BILLING
List<TProdStatusRent> billList = queryBillTpls(copyTemplateId);
for(TProdStatusRent tt : billList){
tt.setTemplate_id(templateId);
}
tProdStatusRentDao.save(billList.toArray(new TProdStatusRent[billList.size()]));
}else if(templateType.equals(SystemConstants.TEMPLATE_TYPE_INVOICE)){//INVOICE
List<TInvoicePrintitem> invoiceList = queryInvoiceTpls(copyTemplateId);
for(TInvoicePrintitem tt : invoiceList){
tt.setTemplate_id(templateId);
}
tInvoicePrintitemDao.save(invoiceList.toArray(new TInvoicePrintitem[invoiceList.size()]));
}else if(templateType.equals(SystemConstants.TEMPLATE_TYPE_CONFIG)){//CONFIG
List<TConfigTemplate> configList = queryConfigTpls(copyTemplateId);
for(TConfigTemplate tt : configList){
tt.setTemplate_id(templateId);
}
tConfigTemplateDao.save(configList.toArray(new TConfigTemplate[configList.size()]));
}else if(templateType.equals(SystemConstants.TEMPLATE_TYPE_OPEN_TEMP)){
TOpenTemp entity = queryOpenTemps(copyTemplateId).get(0);
entity.setTemplate_id(templateId);
tOpenTempDao.save(entity);
}else if(templateType.equals(SystemConstants.TEMPLATE_TYPE_STB_FILLED)){
List<TStbFilled> stbList = queryStbFilleds(copyTemplateId);
for(TStbFilled tt : stbList){
tt.setTemplate_id(templateId);
}
tStbFilledDao.save(stbList.toArray(new TStbFilled[stbList.size()]));
}
}
/**
* 修改模板名字
* @param tt
* @throws JDBCException
*/
public void editTemplate(String templateId,String templateName) throws JDBCException{
TTemplate template = tTemplateDao.findByKey(templateId);
template.setTemplate_name(templateName);
tTemplateDao.update(template);
}
public void deleteTemplate(String templateId) throws JDBCException{
tTemplateDao.remove(templateId);
}
/**
* 根据模板类型查找模板
* @param templateType
* @param optr
* @return
* @throws Exception
*/
public List<TTemplate> queryTplsByType(String templateType, SOptr optr) throws Exception{
return tTemplateDao.queryTplsByType(templateType,optr.getCounty_id());
}
/**
* 根据配置名称和地区查配置
* @param configName
* @param countyId
* @return
* @throws JDBCException
*/
public TConfigTemplate queryConfigByConfigName(String configName,String countyId) throws Exception{
return tConfigTemplateDao.queryConfigByConfigName(configName,countyId);
}
public TTemplateDao getTTemplateDao() {
return tTemplateDao;
}
public void setTTemplateDao(TTemplateDao templateDao) {
tTemplateDao = templateDao;
}
public TTemplateCountyDao getTTemplateCountyDao() {
return tTemplateCountyDao;
}
public void setTTemplateCountyDao(TTemplateCountyDao templateCountyDao) {
tTemplateCountyDao = templateCountyDao;
}
public TBusiCodeDocDao getTBusiCodeDocDao() {
return tBusiCodeDocDao;
}
public void setTBusiCodeDocDao(TBusiCodeDocDao busiCodeDocDao) {
tBusiCodeDocDao = busiCodeDocDao;
}
public TBusiCodeFeeDao getTBusiCodeFeeDao() {
return tBusiCodeFeeDao;
}
public void setTBusiCodeFeeDao(TBusiCodeFeeDao busiCodeFeeDao) {
tBusiCodeFeeDao = busiCodeFeeDao;
}
public TBusiCodeTaskDao getTBusiCodeTaskDao() {
return tBusiCodeTaskDao;
}
public void setTBusiCodeTaskDao(TBusiCodeTaskDao busiCodeTaskDao) {
tBusiCodeTaskDao = busiCodeTaskDao;
}
public TBusiCodeDao getTBusiCodeDao() {
return tBusiCodeDao;
}
public void setTBusiCodeDao(TBusiCodeDao busiCodeDao) {
tBusiCodeDao = busiCodeDao;
}
public TBusiDocDao getTBusiDocDao() {
return tBusiDocDao;
}
public void setTBusiDocDao(TBusiDocDao busiDocDao) {
tBusiDocDao = busiDocDao;
}
public TBusiFeeDao getTBusiFeeDao() {
return tBusiFeeDao;
}
public void setTBusiFeeDao(TBusiFeeDao busiFeeDao) {
tBusiFeeDao = busiFeeDao;
}
public TTaskDetailTypeDao getTTaskDetailTypeDao() {
return tTaskDetailTypeDao;
}
public void setTTaskDetailTypeDao(TTaskDetailTypeDao taskDetailTypeDao) {
tTaskDetailTypeDao = taskDetailTypeDao;
}
public TPrintitemDao getTPrintitemDao() {
return tPrintitemDao;
}
public void setTPrintitemDao(TPrintitemDao printitemDao) {
tPrintitemDao = printitemDao;
}
public TInvoicePrintitemDao getTInvoicePrintitemDao() {
return tInvoicePrintitemDao;
}
public void setTInvoicePrintitemDao(TInvoicePrintitemDao invoicePrintitemDao) {
tInvoicePrintitemDao = invoicePrintitemDao;
}
public SCountyDao getSCountyDao() {
return sCountyDao;
}
public void setSCountyDao(SCountyDao countyDao) {
sCountyDao = countyDao;
}
public TProdStatusRentDao getTProdStatusRentDao() {
return tProdStatusRentDao;
}
public void setTProdStatusRentDao(TProdStatusRentDao prodStatusRentDao) {
tProdStatusRentDao = prodStatusRentDao;
}
public TUpdateCfgDao getTUpdateCfgDao() {
return tUpdateCfgDao;
}
public void setTUpdateCfgDao(TUpdateCfgDao updateCfgDao) {
tUpdateCfgDao = updateCfgDao;
}
public TConfigTemplateDao getTConfigTemplateDao() {
return tConfigTemplateDao;
}
public void setTConfigTemplateDao(TConfigTemplateDao configTemplateDao) {
tConfigTemplateDao = configTemplateDao;
}
public TOpenTempDao getTOpenTempDao() {
return tOpenTempDao;
}
public void setTOpenTempDao(TOpenTempDao openTempDao) {
tOpenTempDao = openTempDao;
}
public PResDao getPResDao() {
return pResDao;
}
public void setPResDao(PResDao resDao) {
pResDao = resDao;
}
public TStbFilledDao getTStbFilledDao() {
return tStbFilledDao;
}
public void setTStbFilledDao(TStbFilledDao stbFilledDao) {
tStbFilledDao = stbFilledDao;
}
public TBusiFeeStdDao getTBusiFeeStdDao() {
return tBusiFeeStdDao;
}
public void setTBusiFeeStdDao(TBusiFeeStdDao busiFeeStdDao) {
tBusiFeeStdDao = busiFeeStdDao;
}
public TBusiFeeDeviceDao getTBusiFeeDeviceDao() {
return tBusiFeeDeviceDao;
}
public void setTBusiFeeDeviceDao(TBusiFeeDeviceDao busiFeeDeviceDao) {
tBusiFeeDeviceDao = busiFeeDeviceDao;
}
public void setTConfigDao(TConfigDao configDao) {
tConfigDao = configDao;
}
public SSysChangeDao getSSysChangeDao() {
return sSysChangeDao;
}
public void setSSysChangeDao(SSysChangeDao sysChangeDao) {
sSysChangeDao = sysChangeDao;
}
public TConfigDao getTConfigDao() {
return tConfigDao;
}
public void setTTemplateColumnDao(TTemplateColumnDao templateColumnDao) {
tTemplateColumnDao = templateColumnDao;
}
public void setTTemplateColumnOptrDao(
TTemplateColumnOptrDao templateColumnOptrDao) {
tTemplateColumnOptrDao = templateColumnOptrDao;
}
public void setTTemplateFeeStdDao(TTemplateFeeStdDao templateFeeStdDao) {
tTemplateFeeStdDao = templateFeeStdDao;
}
public void setTTemplateExcludeCountyDao(
TTemplateExcludeCountyDao templateExcludeCountyDao) {
tTemplateExcludeCountyDao = templateExcludeCountyDao;
}
public void setTTaskTemplatefileDao(TTaskTemplatefileDao taskTemplatefileDao) {
tTaskTemplatefileDao = taskTemplatefileDao;
}
}