长春一汽项目复盘
原创约 5302 字大约 18 分钟...
167-长春一汽项目复盘.md
注意
本博文仅供学术研究和交流参考,严禁将其用于商业用途。如因违规使用产生的任何法律问题,使用者需自行负责。
新建车辆档案信息基础资料
新建的操作步骤省略,虽然我也踩过许多坑,但那是菜鸟坑,多给老鸟同事带来些麻烦以及被多骂几次自然就会了, 故不作此记录,值得友善提醒的就是多次确定需求是对少走弯路是有帮助的。最终实现效果如下图所示:

可抵押状态变更
需求: 选择(可多选)车辆信息,校验是否可抵押字段为‘是’或者全为‘否’的,如果全为是或全为‘否’,则修改可抵押状态。
实现效果
- 如下图所示:通过点击对应的按钮则可对下面所选择的一列或多列的抵押状态进行更改

实现步骤
- 添加按钮








- 重写功能操作按钮对应的函数
/**
* output package name
*/
import java.awt.event.ActionEvent;
import java.util.ArrayList;
import com.kingdee.eas.custom.basedata.vehiclefileinfo.VehicleFileInfoFactory;
/**
* <p>Title: VehicleFileInfoListUI</p>
* <p>
* Description:
* </p>
* <p>Copyright: Copyright (c) 2019</p>
* @author xx
* @date 2019-12-6
* @version 1.0
*/
public class VehicleFileInfoListUI extends AbstractVehicleFileInfoListUI
{
/**
* (non-Javadoc)
* <p>Title: btnMortgageStatus_actionPerformed</p>
* <p>
* Description:
* 可抵押状态变更
* </p>
* <p>Copyright: Copyright (c) 2019</p>
* @author xx
* @date 2019-12-16
* @param e
* @throws Exception
* @see com.kingdee.eas.custom.basedata.vehiclefileinfo.client.AbstractVehicleFileInfoListUI#btnMortgageStatus_actionPerformed(java.awt.event.ActionEvent)
*/
@Override
protected void btnMortgageStatus_actionPerformed(ActionEvent e)
throws Exception {
super.btnMortgageStatus_actionPerformed(e);
ArrayList selectedIdValues = getSelectedIdValues();//获取当前选中行的id集合
for (int i = 0; i < selectedIdValues.size(); i++) {
VehicleFileInfoFactory.getRemoteInstance().setMortagage((String)selectedIdValues.get(i));
}
refreshList();//更新界面
}
}
package com.kingdee.eas.custom.basedata.vehiclefileinfo.app;
import java.sql.SQLException;
import org.apache.log4j.Logger;
import com.kingdee.bos.BOSException;
import com.kingdee.bos.Context;
import com.kingdee.bos.dao.IObjectPK;
import com.kingdee.bos.dao.IObjectValue;
import com.kingdee.bos.util.BOSUuid;
import com.kingdee.eas.common.EASBizException;
import com.kingdee.eas.custom.basedata.vehiclefileinfo.VehicleFileInfoInfo;
import com.kingdee.eas.util.app.DbUtil;
import com.kingdee.jdbc.rowset.IRowSet;
import com.kingdee.util.NumericExceptionSubItem;
/**
* <p>Title: VehicleFileInfoControllerBean</p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2019</p>
* @author xx
* @date 2019-12-13
* @version 1.0
*/
public class VehicleFileInfoControllerBean extends AbstractVehicleFileInfoControllerBean
{
private static Logger logger =
Logger.getLogger("com.kingdee.eas.custom.basedata.vehiclefileinfo.app.VehicleFileInfoControllerBean");
/**
* (non-Javadoc)
* <p>Title: setMortagage</p>
* <p>Description: 更改是否抵押的值</p>
* <p>Copyright: Copyright (c) 2019</p>
* @author xx
* @date 2019-12-16
* @param ctx
* @param id
* @throws BOSException
* @see com.kingdee.eas.custom.basedata.vehiclefileinfo.app.AbstractVehicleFileInfoControllerBean#setMortagage(com.kingdee.bos.Context, java.lang.String)
*/
@Override
public void setMortagage(Context ctx, String id) throws BOSException {
super.setMortagage(ctx, id);
String sql_findMortgage = "select cfmortgage from CT_VEH_VehicleFileInfo where fid = " + "'" + id + "'";
IRowSet rowset = DbUtil.executeQuery(ctx, sql_findMortgage);
Integer cfmortgage = 0;
try {
if(rowset.next()){
cfmortgage = rowset.getInt("cfmortgage");
}else {
throw new EASBizException(new NumericExceptionSubItem("119", "没有查到抵押状态"));
}
} catch (SQLException e) {
try {
throw new EASBizException(new NumericExceptionSubItem("119", "没有查到抵押状态"));
} catch (EASBizException e1) {
e1.printStackTrace();
}
} catch (EASBizException e) {
e.printStackTrace();
}
if(cfmortgage == 0){
cfmortgage = 1;
}else {
cfmortgage = 0;
}
String sql = "update CT_VEH_VehicleFileInfo set cfmortgage = " + cfmortgage + "where fid = " + "'" + id + "'";
DbUtil.execute(ctx, sql);
}
}
导入功能
需求:新增导入功能,可导入车辆档案信息。
实现效果
- 如下图所示:









实现步骤
- 新建一个导入类,以备后续后用

package com.kingdee.eas.custom.basedata.vehiclefileinfo.app;
/**
* <p>Title: VehicleBaseDataImport</p>
* <p>
* Description:车辆档案信息导入
* 备注:不管你取什么名字,请记得继承AbstractDataTransmission这个类,
* 并按照提示重写对应的类
* </p>
* <p>Copyright: Copyright (c) 2019</p>
* @author xx
* @date 2019-12-16
* @version 1.0
*/
public class VehicleBaseDataImport extends AbstractDataTransmission{
}
- 管理员用户登录,设置引入引出模板管理。




- 编码
package com.kingdee.eas.custom.basedata.vehiclefileinfo.app;
import java.sql.SQLException;
import java.util.Hashtable;
import java.util.Map;
import com.kingdee.bos.BOSException;
import com.kingdee.bos.Context;
import com.kingdee.bos.dao.ormapping.ObjectUuidPK;
import com.kingdee.eas.base.codingrule.CodingRuleManagerFactory;
import com.kingdee.eas.base.codingrule.ICodingRuleManager;
import com.kingdee.eas.basedata.master.auxacct.GeneralAsstActTypeFactory;
import com.kingdee.eas.basedata.master.auxacct.GeneralAsstActTypeInfo;
import com.kingdee.eas.basedata.org.CompanyOrgUnitFactory;
import com.kingdee.eas.basedata.org.CompanyOrgUnitInfo;
import com.kingdee.eas.common.EASBizException;
import com.kingdee.eas.cp.bc.VehicleBaseDataFactory;
import com.kingdee.eas.custom.basedata.vehiclefileinfo.VehicleFileInfoFactory;
import com.kingdee.eas.custom.basedata.vehiclefileinfo.VehicleFileInfoInfo;
import com.kingdee.eas.custom.basedata.vehiclefileinfo.VehicleSourceEnum;
import com.kingdee.eas.custom.basedata.vehiclefileinfo.VehicleStatusEnum;
import com.kingdee.eas.framework.CoreBaseInfo;
import com.kingdee.eas.framework.ICoreBase;
import com.kingdee.eas.mm.project.ProjectFactory;
import com.kingdee.eas.mm.project.ProjectInfo;
import com.kingdee.eas.tools.datatask.AbstractDataTransmission;
import com.kingdee.eas.tools.datatask.core.TaskExternalException;
import com.kingdee.eas.tools.datatask.runtime.DataToken;
import com.kingdee.eas.util.app.ContextUtil;
import com.kingdee.eas.util.app.DbUtil;
import com.kingdee.jdbc.rowset.IRowSet;
/**
* <p>Title: VehicleBaseDataImport</p>
* <p>
* Description:车辆档案信息导入
* </p>
* <p>Copyright: Copyright (c) 2019</p>
* @author xx
* @date 2019-12-16
* @version 1.0
*/
public class VehicleBaseDataImport extends AbstractDataTransmission{
/**
* (non-Javadoc)
* <p>Title: getController</p>
* <p>
* Description:
* 用来取得实例接口的,为类中需要的地方调用,比如submit()方法
* </p>
* <p>Copyright: Copyright (c) 2019</p>
* @author xx
* @date 2019-12-18
* @param arg0
* @return
* @throws TaskExternalException
* @see com.kingdee.eas.tools.datatask.AbstractDataTransmission#getController(com.kingdee.bos.Context)
*/
@Override
protected ICoreBase getController(Context ctx)
throws TaskExternalException {
ICoreBase iCoreBase = null;
try {
iCoreBase = VehicleBaseDataFactory.getLocalInstance(ctx);
} catch (BOSException e) {
e.printStackTrace();
throw new TaskExternalException("",e);
}
return iCoreBase;
}
/**
* (non-Javadoc)
* <p>Title: getSubmitType</p>
* <p>
* Description:
* 获取excel表格数据的方式:
* int 1 表示一次全部获取(在取数据时,使用for循环)
* int 0 表示只获取一条数据(每次只有一条数据,不需要for循环)
* 将excel中的行一次性打包成Map结构来导入还是每次读一行,反映到当前类中就是
* transmit(Hashtable hasData,Context ctx) 方法的hsData参数,
* 1为全部一次,0为每次一行,可以看到当前的类中覆盖了父类方法,
* 设为1,表示一次返回所有的
* </p>
* <p>Copyright: Copyright (c) 2019</p>
* @author xx
* @date 2019-12-18
* @return
* @see com.kingdee.eas.tools.datatask.AbstractDataTransmission#getSubmitType()
*/
@Override
public int getSubmitType() {
return 1;
}
/**
* (non-Javadoc)
* <p>Title: transmit</p>
* <p>
* Description:
* 这是从excel中读入数据后第一个调的方法,
* hsData参数中就是从excel中读入的数据,
* 如果是一次性读入所有的数据,
* 则hsData中是key从Integer型的1、2、3等等行,
* 每行取出来就是excel中对应行的Map结构数据,
* 然后在这个方法中你可以对传回来的数据做任何的处理,
* 目的是要构造出单据的info,
* 当然其中要包含分录,
* 具体可以读此代码,
* 在当前类中,程序增加了transmitHead(Hashtable lineData,Context ctx)
* 和transmitEntry(Hashtable hsData,Context ctx)两个方法,
* 分别处理单据头和单据体的构造,
* 在构造info的过程中,
* 如果是自有属性,
* 基本上转换成对应类型即可,
* 如果是连接属性,
* 那么一般excel中填入的都是编码,
* 程序中要按编码取出其Info对象,
* 比如transmitHead(...)方法中的“storageOrgUnit”属性
* 2019/12/20备注:
* hsData是父类负责循环,每次只有一条数据,则子类不需要写循环
* </p>
* <p>Copyright: Copyright (c) 2019</p>
* @author xx
* @date 2019-12-18
* @param hsData
* @param ctx
* @return
* @throws TaskExternalException
* @deprecated
* @see com.kingdee.eas.tools.datatask.AbstractDataTransmission#transmit(java.util.Hashtable, com.kingdee.bos.Context)
*/
@Override
public CoreBaseInfo transmit(Hashtable hsData, Context ctx)
throws TaskExternalException {
if(hsData.size() == 0){
throw new Error("当前模板中没有数据,请根据要求填充模板数据!");
}else {
Map lineData = (Map) hsData.get(0);
if(!isSltImportUpdate()){
try {
addNewAccount(lineData,ctx,0);
} catch (Exception e) {
e.printStackTrace();
throw new Error("导入数据失败! \n错误信息: \n" + e.getMessage());
}
}
}
return null;
}
/**
* <p>Title: addNewAccount</p>
* <p>
* Description:
* 将读取的数据存入数据库
* </p>
* <p>Copyright: Copyright (c) 2019</p>
* @author xx
* @date 2019-12-19
* @param lineData 一行excel数据
* @param ctx
* @param index 索引
* @version 1.0
* @throws BOSException
* @throws EASBizException
* @throws SQLException
*/
@SuppressWarnings("null")
private void addNewAccount(Map lineData, Context ctx, int index) throws EASBizException, BOSException, SQLException {
VehicleFileInfoInfo info = new VehicleFileInfoInfo();
//所属组织_编码 FSubordOrganization_number T_ORG_Company 必录
Object companyOrgUnit = ((DataToken)lineData.get("FSubordOrganization_number")).data;
CompanyOrgUnitInfo companyOrgUnitInfo = null;
if(companyOrgUnit != null && !"".equals(companyOrgUnit.toString())){
String infoValue = getFidByNumber(ctx,"T_ORG_Company",companyOrgUnit.toString());
if(infoValue != null && !"".equals(infoValue)){
companyOrgUnitInfo = CompanyOrgUnitFactory.getLocalInstance(ctx).getCompanyOrgUnitInfo(new ObjectUuidPK(infoValue));
}else {
throw new Error("数据库中不存在字段FSubordOrganization_number(所属组织_编码),值为"+companyOrgUnit.toString()+"对应的数据对象。");
}
}
//所属项目 FSubordProject_number T_MM_Project Project 必录
Object projectOrgUnit = ((DataToken)lineData.get("FSubordProject_number")).data;
ProjectInfo projectInfo = null;
if(projectOrgUnit !=null && !"".equals(projectOrgUnit)){
String infoValue = getFidByNumber(ctx, "T_MM_Project", projectOrgUnit.toString());
if(infoValue != null && !"".equals(infoValue)){
projectInfo = ProjectFactory.getLocalInstance(ctx).getProjectInfo(new ObjectUuidPK(infoValue));
}else {
throw new Error("数据库中不存在字段FSubordProject_number(所属项目 _编码),值为"+projectInfo.toString()+"对应的数据对象。");
}
}
//业务类型 FBusinessType_number T_BD_GeneralAsstActType GeneralAsstActType 自定义核算项目 必录
Object generalAsstActTypeOrgUnit = ((DataToken)lineData.get("FBusinessType_number")).data;
GeneralAsstActTypeInfo genaInfo = null;
if(generalAsstActTypeOrgUnit != null && !"".equals(generalAsstActTypeOrgUnit)){
String infoValue = customProject(ctx, "T_BD_GeneralAsstActType", generalAsstActTypeOrgUnit.toString(), " and FGROUPID = 'I3Xhd/enSnCFu6oqj15XbwXSzQw=' ");
if(infoValue != null && !"".equals(infoValue)){
genaInfo = GeneralAsstActTypeFactory.getLocalInstance(ctx).getGeneralAsstActTypeInfo(new ObjectUuidPK(infoValue));
}else {
throw new Error("数据库中不存在字段 FBusinessType_number(业务类型 _编码),值为"+genaInfo.toString()+"对应的数据对象。");
}
}
//车辆型号 FVehicleModel_number T_BD_GeneralAsstActType GeneralAsstActType 因为都是自定义核算项目 所以以上边的一样 必录
Object gen = ((DataToken)lineData.get("FVehicleModel_number")).data;
GeneralAsstActTypeInfo genaInfo2 = null;
if(gen != null && !"".equals(gen)){
String infoValue = customProject(ctx, "T_BD_GeneralAsstActType", gen.toString(), " and FGROUPID = 'vTXo14YdSLet3zn3ITUyMgXSzQw=' ");
if(infoValue != null && !"".equals(infoValue)){
genaInfo2 = GeneralAsstActTypeFactory.getLocalInstance(ctx).getGeneralAsstActTypeInfo(new ObjectUuidPK(infoValue));
}else {
throw new Error("数据库中不存在字段 FVehicleModel_number(车辆型号 _编码),值为"+genaInfo2.toString()+"对应的数据对象。");
}
}
//车辆编号
String FVehicleNum = (String) ((DataToken)lineData.get("FVehicleNum")).data;
//名称
String FName_l2 = (String) ((DataToken)lineData.get("FName_l2")).data;
//外观颜色
String FAppearColor = (String) ((DataToken)lineData.get("FAppearColor")).data;
//内观颜色
String FInnerColor = (String) ((DataToken)lineData.get("FInnerColor")).data;
//发动机号
String FEngineNum = (String) ((DataToken)lineData.get("FEngineNum")).data;
//车牌号码
String FLicensePlateNum = (String) ((DataToken)lineData.get("FLicensePlateNum")).data;
//登记单位
String FRegisUnit = (String) ((DataToken)lineData.get("FRegisUnit")).data;
//合同编号
String FContractNum = (String) ((DataToken)lineData.get("FContractNum")).data;
//行驶证编码
String FDrilicenCode = (String) ((DataToken)lineData.get("FDrilicenCode")).data;
//登记证书编号
String FRegisCertNum = (String) ((DataToken)lineData.get("FRegisCertNum")).data;
//车辆状态 001/002/003 可用/报废/运营
@SuppressWarnings("unused")
VehicleStatusEnum FVehicleStatus = null;
FVehicleStatus = veVehicleStatus(lineData, "FVehicleStatus");
//车辆来源 001 融资合同 002借款合同
@SuppressWarnings("unused")
VehicleSourceEnum FVehicleSource = null;
FVehicleSource = veVehicleSource(lineData, "FVehicleSource");
//车架号 唯一
@SuppressWarnings("unused")
String FChassisNum = null;
if(!veVehicleNum(ctx, lineData, (String) ((DataToken)lineData.get("FChassisNum")).data)){
throw new Error("车架号必须唯一!");
}else {
FChassisNum = (String) ((DataToken)lineData.get("FChassisNum")).data;
}
//是否抵押 1是0否 Boolean类型
Boolean FMortgage = resultBoolean(true, lineData, "FMortgage");
//是否启用 1是0否 Boolean类型
Boolean FIsEnabled = resultBoolean(false, lineData, "FIsEnabled");
info.setSubordOrganization(companyOrgUnitInfo);//插入所属组织
info.setSubordProject(projectInfo);//插入所属项目
info.setBusinessType(genaInfo);//业务类型
info.setVehicleModel(genaInfo2);//车辆型号
info.setVehicleNum(FVehicleNum);//车辆编号
info.setVehicleStatus(FVehicleStatus);//车辆状态 枚举
info.setVehicleSource(FVehicleSource);//车辆来源 枚举
info.setChassisNum(FChassisNum);//车架号
info.setName(FName_l2);//名称
info.setAppearColor(FAppearColor);//外观颜色
info.setInnerColor(FInnerColor);//内观颜色
info.setEngineNum(FEngineNum);//发动机号
info.setLicensePlateNum(FLicensePlateNum);//车牌号码
info.setRegisUnit(FRegisUnit);//登录单位
info.setContractNum(FContractNum);//合同编号
info.setMortgage(FMortgage);//是否抵押
info.setIsEnabled(FIsEnabled);//是否启用
info.setDrilicenCode(FDrilicenCode);//行驶证编码
info.setRegisCertNum(FRegisCertNum);//登记证书编号
//编码规则生成的编码
ICodingRuleManager iCodingRuleManager = CodingRuleManagerFactory.getLocalInstance(ctx);
String number = iCodingRuleManager.getNumber(info, ContextUtil.getCurrentOrgUnit(ctx).getId().toString());
info.setVehicleNum(number);//设置编码
info.setNumber(number);//设置编码
VehicleFileInfoFactory.getLocalInstance(ctx).addnew(info);
}
/**
*
* <p>Title: customProject</p>
* <p>
* Description:
* 自定义核算项目条件过滤
* </p>
* <p>Copyright: Copyright (c) 2019</p>
* @author xx
* @date 2019-12-20
* @param ctx
* @param tableName
* @param number
* @param otherCondition
* @return
* @throws BOSException
* @throws SQLException
* @version 1.0
*/
private String customProject(Context ctx,String tableName,String number,String otherCondition) throws BOSException, SQLException{
String sql = "select fid from " + tableName + " where fnumber = '" + number + "'" ;
if(!otherCondition.equals("") && otherCondition != null){
sql += otherCondition;
}
IRowSet executeSql = DbUtil.executeQuery(ctx, sql);
if(executeSql.next()){
return executeSql.getString("fid") != null ? executeSql.getString("fid") : null;
}else {
return null;
}
}
/**
* <p>Title: veVehicleSource</p>
* <p>
* Description:
* 验证车辆来源
* </p>
* <p>Copyright: Copyright (c) 2019</p>
* @author xx
* @date 2019-12-19
* @param lineData
* @param colName
* @return
* @version 1.0
*/
private VehicleSourceEnum veVehicleSource(Map lineData,String colName){
String FVehicleSource = (String) ((DataToken)lineData.get(colName)).data;
if(FVehicleSource.equals(VehicleSourceEnum.FINACONTRACT_VALUE)){
return VehicleSourceEnum.finaContract;
}
else if(FVehicleSource.equals(VehicleSourceEnum.LOANCONTRACT_VALUE)){
return VehicleSourceEnum.loanContract;
}else{
throw new Error(colName + "输入的值不符合规范!");
}
}
/**
* <p>Title: veVehicleStatus</p>
* <p>
* Description:
* 验证车辆状态
* </p>
* <p>Copyright: Copyright (c) 2019</p>
* @author xx
* @date 2019-12-19
* @param lineData
* @param colName
* @return
* @version 1.0
*/
private VehicleStatusEnum veVehicleStatus(Map lineData,String colName){
String FVehicleStatus = (String) ((DataToken)lineData.get(colName)).data;
if(FVehicleStatus.equals(VehicleStatusEnum.AVAILABLE_VALUE)){
return VehicleStatusEnum.available;
}
else if(FVehicleStatus.equals(VehicleStatusEnum.SCRAP_VALUE)){
return VehicleStatusEnum.scrap;
}
else if(FVehicleStatus.equals(VehicleStatusEnum.INOPERATION_VALUE)){
return VehicleStatusEnum.inOperation;
}else{
throw new Error(colName + "输入的值不符合规范!");
}
}
/**
* <p>Title: veVehicleNum</p>
* <p>
* Description:
* 验证车架号是否唯一
* </p>
* <p>Copyright: Copyright (c) 2019</p>
* @author xx
* @date 2019-12-19
* @param ctx
* @param lineData
* @param FChassisNum
* @return
* @throws BOSException
* @throws SQLException
* @version 1.0
*/
private Boolean veVehicleNum(Context ctx,Map lineData,String FChassisNum) throws BOSException, SQLException{
String sql = "select fid from CT_VEH_VehicleFileInfo where CFChassisNum = '" + FChassisNum + "'";
IRowSet executeSql = DbUtil.executeQuery(ctx, sql);
if(executeSql.next()){
return false;
}else {
return true;
}
}
/**
* <p>Title: resultBoolean</p>
* <p>
* Description:
* 读取excel列数据将其转换成boolean类型数据返回
* </p>
* <p>Copyright: Copyright (c) 2019</p>
* @author xx
* @date 2019-12-19
* @param defaultInt
* @param lineData
* @param colName
* @return
* @version 1.0
*/
private Boolean resultBoolean(Boolean defaultInt,Map lineData,String colName){
Boolean resultBoolean = defaultInt;//默认值
String str = (String) ((DataToken)lineData.get(colName)).data;
if(str.equals("1") || str.equals("0")){
if(str.equals("1")){
resultBoolean = true;
}
if(str.equals("0")){
resultBoolean = false;
}
}else {
throw new Error("FMortgage 输入的值不符合规范1!");
}
return resultBoolean;
}
/**
* <p>Title: getFidByNumber</p>
* <p>
* Description:
* 判断对应数据表中是否有这个F7,根据编码获取id
* </p>
* <p>Copyright: Copyright (c) 2019</p>
* @author xx
* @date 2019-12-19
* @param ctx
* @param tableName
* @param number
* @return
* @throws SQLException
* @throws BOSException
* @version 1.0
*/
private String getFidByNumber(Context ctx, String tableName, String number) throws SQLException, BOSException {
String sql = "select fid from " + tableName + " where fnumber = '" + number + "'";
IRowSet executeSql = DbUtil.executeQuery(ctx, sql);
if(executeSql.next()){
return executeSql.getString("fid") != null ? executeSql.getString("fid") : null;
}else {
return null;
}
}
/**
* (non-Javadoc)
* <p>Title: submit</p>
* <p>
* Description:
* 这个方法是用来提交transmit()返回的Info对象的
* 重定此方法则不需要调用父类方法
* </p>
* <p>Copyright: Copyright (c) 2019</p>
* @author xx
* @date 2019-12-19
* @param arg0
* @param arg1
* @throws TaskExternalException
* @see com.kingdee.eas.tools.datatask.AbstractDataTransmission#submit(com.kingdee.eas.framework.CoreBaseInfo, com.kingdee.bos.Context)
*/
@Override
public void submit(CoreBaseInfo arg0, Context arg1)
throws TaskExternalException {
}
}
package com.kingdee.eas.custom.basedata.vehiclefileinfo.app;
import java.sql.SQLException;
import org.apache.log4j.Logger;
import com.kingdee.bos.BOSException;
import com.kingdee.bos.Context;
import com.kingdee.bos.dao.IObjectPK;
import com.kingdee.bos.dao.IObjectValue;
import com.kingdee.bos.util.BOSUuid;
import com.kingdee.eas.common.EASBizException;
import com.kingdee.eas.custom.basedata.vehiclefileinfo.VehicleFileInfoInfo;
import com.kingdee.eas.util.app.DbUtil;
import com.kingdee.jdbc.rowset.IRowSet;
import com.kingdee.util.NumericExceptionSubItem;
/**
* <p>Title: VehicleFileInfoControllerBean</p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2019</p>
* @author xx
* @date 2019-12-13
* @version 1.0
*/
public class VehicleFileInfoControllerBean extends AbstractVehicleFileInfoControllerBean
{
private static Logger logger =
Logger.getLogger("com.kingdee.eas.custom.basedata.vehiclefileinfo.app.VehicleFileInfoControllerBean");
/**
* (non-Javadoc)
* <p>Title: _submit</p>
* <p>
* Description:
* 1. 实现保存时车架号必须唯一的过滤功能
* </p>
* <p>Copyright: Copyright (c) 2019</p>
* @author xx
* @date 2019-12-13
* @param ctx
* @param model
* @return
* @throws BOSException
* @throws EASBizException
* @see com.kingdee.eas.framework.app.DataBaseControllerBean#_submit(com.kingdee.bos.Context, com.kingdee.bos.dao.IObjectValue)
*/
@Override
protected IObjectPK _submit(Context ctx, IObjectValue model)
throws BOSException, EASBizException {
// 转换为车辆档案信息对象
VehicleFileInfoInfo info = (VehicleFileInfoInfo) model;
onlyColVal(ctx, model, "CT_VEH_VehicleFileInfo", "CFChassisNum", info.getChassisNum(), "车架号", info.getId());
return super._submit(ctx, model);
}
/**
* <p>Title: onlyColVal</p>
* <p>
* Description:
* 验证某一字段是否唯一包含新增与修改验证
* </p>
* <p>Copyright: Copyright (c) 2019</p>
* @author xx
* @date 2019-12-20
* @param ctx
* @param model
* @param tabName 表名
* @param colName 列名
* @param colVal 列值
* @param ErrMs 错误信息
* @param uuid id值
* @throws EASBizException
* @version 1.0
*/
private void onlyColVal(Context ctx, IObjectValue model,String tabName,String colName,String colVal,String ErrMs,BOSUuid uuid) throws EASBizException{
// 转换为车辆档案信息对象
VehicleFileInfoInfo info = (VehicleFileInfoInfo) model;
// 查询数据库中是否有当前对象中的车架号信息
String sql = "select fid from " + tabName +" where " + colName + " = '" + colVal + "'";
try {
IRowSet rowset = DbUtil.executeQuery(ctx, sql);
if (rowset.next()) {
if(info.getId().equals("") || info.getId() == null){
//进入则为新增
// 存在,即抛出异常
throw new EASBizException(new NumericExceptionSubItem("110", ErrMs + "不能重复!"));
}else{
//否则则为修改 修改时判断车架号与自己不相比较,但得与其它比较
String editSql = "select * from " + tabName + " where fid <> '" +uuid+"'";
IRowSet rowset2 = DbUtil.executeQuery(ctx, editSql);
while (rowset2.next()) {
if(info.getChassisNum().equals(rowset2.getString(colName))){
throw new EASBizException(new NumericExceptionSubItem("110", ErrMs + "不能重复!"));
}
}
}
}
} catch (BOSException e) {
// 抛出异常
throw new EASBizException(new NumericExceptionSubItem("110", "查询"+ErrMs+"是否存在错误,错误信息:\n" + e.getLocalizedMessage()));
} catch (SQLException e) {
// 抛出异常
throw new EASBizException(new NumericExceptionSubItem("110", "查询"+ErrMs+"是否存在错误,错误信息:\n" + e.getLocalizedMessage()));
}
}
/**
* (non-Javadoc)
* <p>Title: setMortagage</p>
* <p>Description: 更改是否抵押的值</p>
* <p>Copyright: Copyright (c) 2019</p>
* @author xx
* @date 2019-12-16
* @param ctx
* @param id
* @throws BOSException
* @see com.kingdee.eas.custom.basedata.vehiclefileinfo.app.AbstractVehicleFileInfoControllerBean#setMortagage(com.kingdee.bos.Context, java.lang.String)
*/
@Override
public void setMortagage(Context ctx, String id) throws BOSException {
super.setMortagage(ctx, id);
String sql_findMortgage = "select cfmortgage from CT_VEH_VehicleFileInfo where fid = " + "'" + id + "'";
IRowSet rowset = DbUtil.executeQuery(ctx, sql_findMortgage);
Integer cfmortgage = 0;
try {
if(rowset.next()){
cfmortgage = rowset.getInt("cfmortgage");
}else {
throw new EASBizException(new NumericExceptionSubItem("119", "没有查到抵押状态"));
}
} catch (SQLException e) {
try {
throw new EASBizException(new NumericExceptionSubItem("119", "没有查到抵押状态"));
} catch (EASBizException e1) {
e1.printStackTrace();
}
} catch (EASBizException e) {
e.printStackTrace();
}
if(cfmortgage == 0){
cfmortgage = 1;
}else {
cfmortgage = 0;
}
String sql = "update CT_VEH_VehicleFileInfo set cfmortgage = " + cfmortgage + "where fid = " + "'" + id + "'";
DbUtil.execute(ctx, sql);
}
}
/**
* output package name
*/
package com.kingdee.eas.custom.basedata.vehiclefileinfo.client;
import java.awt.event.ActionEvent;
import java.util.ArrayList;
import org.apache.log4j.Logger;
import com.kingdee.bos.ui.face.CoreUIObject;
import com.kingdee.eas.custom.basedata.vehiclefileinfo.VehicleFileInfoFactory;
import com.kingdee.eas.tools.datatask.DatataskParameter;
/**
* <p>Title: VehicleFileInfoListUI</p>
* <p>
* Description:
* </p>
* <p>Copyright: Copyright (c) 2019</p>
* @author xx
* @date 2019-12-6
* @version 1.0
*/
public class VehicleFileInfoListUI extends AbstractVehicleFileInfoListUI
{
/**
* logger 日志对象
*/
private static final Logger logger = CoreUIObject.getLogger(VehicleFileInfoListUI.class);
/**
* <p>Title: </p>
* <p>Description: 映射表查看</p>
* <p>Copyright: Copyright (c) 2019</p>
* @author xx
* @date 2019-12-16
* @throws Exception
* @version 1.0
*/
public VehicleFileInfoListUI() throws Exception
{
super();
}
/**
* (non-Javadoc)
* <p>Title: onLoad</p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2019</p>
* @author xx
* @date 2019-12-18
* @throws Exception
* @see com.kingdee.eas.st.common.client.STBaseDataListUI#onLoad()
*/
@Override
public void onLoad() throws Exception {
// System.setProperty("EAS_HOME", "Q://yq205//runtime"); //本地环境需要无需提交
super.onLoad();
menuItemImportData.setEnabled(true);
menuItemImportData.setVisible(true);
}
/**
* (non-Javadoc)
* <p>Title: getImportParam</p>
* <p>Description:导入功能 </p>
* <p>Copyright: Copyright (c) 2019</p>
* @author xx
* @date 2019-12-16
* @return paramList 参数集合
* @see com.kingdee.eas.st.common.client.STBaseDataListUI#getImportParam()
*/
protected ArrayList<DatataskParameter> getImportParam(){
DatataskParameter param = new DatataskParameter();
String solutionName = "eas.10fm.vehicleBasedata";//更改路径
param.solutionName = solutionName;
param.alias = "车辆档案信息";//页签
ArrayList<DatataskParameter> paramList = new ArrayList<DatataskParameter>();
paramList.add(param);
return paramList;
}
/**
* (non-Javadoc)
* <p>Title: getExportParam</p>
* <p>
* Description:
* 导出功能
* </p>
* <p>Copyright: Copyright (c) 2019</p>
* @author xx
* @date 2019-12-18
* @return
* @see com.kingdee.eas.st.common.client.STBaseDataListUI#getExportParam()
*/
protected ArrayList getExportParam(){
DatataskParameter param = new DatataskParameter();
param.solutionName = "eas.10fm.vehicleBasedata";
param.alias = "车辆档案信息";//页签
param.varList = new ArrayList();
param.datataskMode = 1;
ArrayList paramList = new ArrayList();
paramList.add(param);
return paramList;
}
}
代码 String solutionName = "eas.10fm.vehicleBasedata";路径来源

注本地测试需要如下此代码放开,其路径为listui onload方法第一行,根据不同项目灵活变动
System.setProperty("EAS_HOME", "Q://yq205//runtime");
其它编码
/**
* output package name
*/
package com.kingdee.eas.custom.basedata.vehiclefileinfo.client;
import org.apache.log4j.Logger;
import com.kingdee.bos.BOSException;
import com.kingdee.bos.ctrl.extendcontrols.KDBizPromptBox;
import com.kingdee.bos.metadata.entity.EntityViewInfo;
import com.kingdee.bos.metadata.entity.FilterInfo;
import com.kingdee.bos.metadata.entity.FilterItemInfo;
import com.kingdee.bos.metadata.query.util.CompareType;
import com.kingdee.bos.ui.face.CoreUIObject;
import com.kingdee.eas.base.codingrule.CodingRuleManagerFactory;
import com.kingdee.eas.base.codingrule.ICodingRuleManager;
import com.kingdee.eas.basedata.master.auxacct.AuxAccountUtils;
import com.kingdee.eas.basedata.master.auxacct.GeneralAsstActTypeGroupCollection;
import com.kingdee.eas.basedata.master.auxacct.GeneralAsstActTypeGroupFactory;
import com.kingdee.eas.basedata.master.auxacct.GeneralAsstActTypeGroupInfo;
import com.kingdee.eas.basedata.org.CompanyOrgUnitInfo;
import com.kingdee.eas.basedata.org.OrgType;
import com.kingdee.eas.common.client.SysContext;
import com.kingdee.eas.custom.basedata.vehiclefileinfo.VehicleStatusEnum;
import com.kingdee.eas.util.SysUtil;
import com.kingdee.eas.util.client.MsgBox;
/**
* <p>Title: VehicleFileInfoEditUI</p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2019</p>
* @author xx
* @date 2019-12-6
* @version 1.0
*/
public class VehicleFileInfoEditUI extends AbstractVehicleFileInfoEditUI
{
private static final Logger logger = CoreUIObject.getLogger(VehicleFileInfoEditUI.class);
/**
* output class constructor
*/
public VehicleFileInfoEditUI() throws Exception
{
super();
}
/**
* output getBizInterface method
*/
protected com.kingdee.eas.framework.ICoreBase getBizInterface() throws Exception
{
return com.kingdee.eas.custom.basedata.vehiclefileinfo.VehicleFileInfoFactory.getRemoteInstance();
}
/**
* (non-Javadoc)
* <p>Title: createNewData</p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2019</p>
* @author xx
* @date 2019-12-9
* @return
* @see com.kingdee.eas.custom.basedata.vehiclefileinfo.client.AbstractVehicleFileInfoEditUI#createNewData()
*/
protected com.kingdee.bos.dao.IObjectValue createNewData()
{
com.kingdee.eas.custom.basedata.vehiclefileinfo.VehicleFileInfoInfo objectValue =
new com.kingdee.eas.custom.basedata.vehiclefileinfo.VehicleFileInfoInfo();
objectValue.setCreator(
(com.kingdee.eas.base.permission.UserInfo)
(com.kingdee.eas.common.client.SysContext.getSysContext().getCurrentUser()));
try {
//编码规则生成的编码
ICodingRuleManager iCodingRuleManager = CodingRuleManagerFactory.getRemoteInstance();
String number = iCodingRuleManager.getNumber(objectValue, "");
objectValue.setNumber(number);//为原车辆编号赋值
objectValue.setVehicleNum(number);//为自定义车辆编号赋值
objectValue.setVehicleStatus(VehicleStatusEnum.available);//为车辆状态赋值
objectValue.setMortgage(true);//为是否抵押赋值
/**
* 为所属组织赋值,
* 判断其是否为财务组织,
* 若为财务组织则显示,
* 否则不显示并且不可保存
*
* getBoolean("isBizUnit")
* 判断是否为业务单元
*/
if(SysContext.getSysContext().getCurrentOrgUnit(OrgType.getEnum("Company")) != null
&& SysContext.getSysContext().getCurrentOrgUnit(OrgType.getEnum("Company")).getBoolean("isBizUnit")){
objectValue.setSubordOrganization((CompanyOrgUnitInfo) SysContext.getSysContext().
getCurrentOrgUnit(OrgType.getEnum("Company")));
}
} catch (Exception e) {
MsgBox.showWarning("初始状态不正确!");
SysUtil.abort();//停掉前台的方法
}
return objectValue;
}
/**
* <p>Title: setAsstActTypeFilter</p>
* <p>Description: 过滤自定义核算项目</p>
* <p>Copyright: Copyright (c) 2019</p>
* @author xx
* @date 2019-12-12
* @param prmt
* @param number
* @throws BOSException
* @version 1.0
*/
private void setAsstActTypeFilter(KDBizPromptBox prmt,String number) throws BOSException{
FilterInfo filter = new FilterInfo();
filter.getFilterItems().add(new FilterItemInfo("number",number,CompareType.EQUALS));
EntityViewInfo view = new EntityViewInfo();
view.setFilter(filter);
GeneralAsstActTypeGroupCollection col = GeneralAsstActTypeGroupFactory.getRemoteInstance().getGeneralAsstActTypeGroupCollection(view);
if(col.size() > 0){
GeneralAsstActTypeGroupInfo generalAsstActTypeGroupInfo = col.get(0);
String fid = generalAsstActTypeGroupInfo.getId().toString();
AuxAccountUtils.assignGeneralBizPromptBox(prmt, fid, false, this);
}
}
@Override
public void onLoad() throws Exception {
prmtsubordOrganization.setDisplayFormat("$name");//所属组织--更改因F7时选择字段错误的bug
prmtbusinessType.setDisplayFormat("$name");//业务类形--更改因F7时选择字段错误的bug
prmtsubordProject.setDisplayFormat("$name");//所属项目--更改因F7时选择字段错误的bug
prmtvehicleModel.setDisplayFormat("$name");//车辆型号--更改因F7时选择字段错误的bug
super.onLoad();
//业务类型过滤
setAsstActTypeFilter(prmtbusinessType, "YQ-0006");
//车辆型号过滤
setAsstActTypeFilter(prmtvehicleModel, "80002");
}
}
融资租赁合同导入
- 配置导入模板字段
- 路径: 系统平台 --> 业务工具 --> 引入引出管理 --> 引入引出模板管理

- 模板目录编辑

- 新建导入类
package com.kingdee.eas.custom.bill.leaseconbill.app;
import com.kingdee.bos.Context;
import com.kingdee.eas.framework.ICoreBase;
import com.kingdee.eas.tools.datatask.AbstractDataTransmission;
import com.kingdee.eas.tools.datatask.core.TaskExternalException;
/**
* <p>Title: </p>
* <p>
* Description:
* 融资租赁合同导入类
* </p>
* <p>Copyright: Copyright (c) 2020</p>
* @author DZ_yanb
* @date 2020-5-18 下午03:02:12
* @version 1.0
*/
public class LeaseConBillDataImport extends AbstractDataTransmission{
/**
* <p>Title: </p>
* <p>
* Description:
* </p>
* <p>Copyright: Copyright (c) 2020</p>
* @author DZ_yanb
* @date 2020-5-18 下午03:03:25
* @param param the bare_field_name
* @param arg0
* @return
* @throws TaskExternalException
* @see com.kingdee.eas.tools.datatask.AbstractDataTransmission#getController(com.kingdee.bos.Context)
* @version 1.0
*/
@Override
protected ICoreBase getController(Context arg0)
throws TaskExternalException {
return null;
}
}
- 新增模板编辑
- 规则定义
遇到的bug
- 车辆档案信息点击新增时报错信息如下


解决方法



保存后启用规则即可
- 引入引出模板配置完成后点击引出模板之后报如下错误

错误信息:null
错误详细堆栈信息:java.lang.ExceptionInInitializerError: null
at: com.kingdee.eas.tools.datatask.client.FileSelector.show(FileSelector.java:160)
at: com.kingdee.eas.tools.datatask.client.AbstractTemplateExport.getFilePath(AbstractTemplateExport.java:23)
at: com.kingdee.eas.tools.datatask.client.TemplateExport.export(TemplateExport.java:167)
at: com.kingdee.eas.tools.datatask.client.DIETemplateListUI.actionExportTemplate_actionPerformed(DIETemplateListUI.java:136)
at: sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at: sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at: sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at: java.lang.reflect.Method.invoke(Method.java:597)
at: com.kingdee.bos.ui.face.ItemAction.reflectPerformAction(ItemAction.java:439)
at: com.kingdee.bos.ui.face.ItemAction.innerActionPerformed(ItemAction.java:397)
at: com.kingdee.eas.tools.datatask.client.AbstractDIETemplateListUI$ActionExportTemplate.actionPerformed(AbstractDIETemplateListUI.java:764)
at: com.kingdee.bos.appframework.client.servicebinding.ActionProxy.actionPerformedInvoke(ActionProxy.java:188)
at: com.kingdee.bos.appframework.client.servicebinding.ActionProxy.actionPerformed(ActionProxy.java:112)
at: javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at: com.kingdee.bos.ctrl.swing.KDWorkButton.fireActionPerformed(KDWorkButton.java:567)
at: javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at: javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at: javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at: javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at: java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:272)
at: java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:272)
at: java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:272)
at: java.awt.Component.processMouseEvent(Component.java:6267)
at: javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at: com.kingdee.bos.ctrl.swing.KDWorkButton.processMouseEvent(KDWorkButton.java:898)
at: java.awt.Component.processEvent(Component.java:6032)
at: java.awt.Container.processEvent(Container.java:2041)
at: java.awt.Component.dispatchEventImpl(Component.java:4630)
at: java.awt.Container.dispatchEventImpl(Container.java:2099)
at: java.awt.Component.dispatchEvent(Component.java:4460)
at: java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
at: java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
at: java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
at: java.awt.Container.dispatchEventImpl(Container.java:2085)
at: java.awt.Window.dispatchEventImpl(Window.java:2478)
at: java.awt.Component.dispatchEvent(Component.java:4460)
at: java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at: com.kingdee.bos.invokecounter.RPCLogEventQueue.dispatchEvent(RPCLogEventQueue.java:176)
at: sun.reflect.GeneratedMethodAccessor17.invoke(Unknown Source)
at: sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at: java.lang.reflect.Method.invoke(Method.java:597)
at: com.kingdee.eas.client.recorder.UserInputEventQueue.myDispatchEvent(UserInputEventQueue.java:126)
at: com.kingdee.eas.client.recorder.UserInputEventQueue.dispatchEvent(UserInputEventQueue.java:59)
at: java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at: java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at: java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at: java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at: java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at: java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
java.lang.NullPointerException: null
at: com.kingdee.eas.tools.datatask.util.GlobalFunction.<clinit>(GlobalFunction.java:57)
at: com.kingdee.eas.tools.datatask.client.FileSelector.show(FileSelector.java:160)
at: com.kingdee.eas.tools.datatask.client.AbstractTemplateExport.getFilePath(AbstractTemplateExport.java:23)
at: com.kingdee.eas.tools.datatask.client.TemplateExport.export(TemplateExport.java:167)
at: com.kingdee.eas.tools.datatask.client.DIETemplateListUI.actionExportTemplate_actionPerformed(DIETemplateListUI.java:136)
at: sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at: sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at: sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at: java.lang.reflect.Method.invoke(Method.java:597)
at: com.kingdee.bos.ui.face.ItemAction.reflectPerformAction(ItemAction.java:439)
at: com.kingdee.bos.ui.face.ItemAction.innerActionPerformed(ItemAction.java:397)
at: com.kingdee.eas.tools.datatask.client.AbstractDIETemplateListUI$ActionExportTemplate.actionPerformed(AbstractDIETemplateListUI.java:764)
at: com.kingdee.bos.appframework.client.servicebinding.ActionProxy.actionPerformedInvoke(ActionProxy.java:188)
at: com.kingdee.bos.appframework.client.servicebinding.ActionProxy.actionPerformed(ActionProxy.java:112)
at: javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at: com.kingdee.bos.ctrl.swing.KDWorkButton.fireActionPerformed(KDWorkButton.java:567)
at: javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at: javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at: javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at: javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at: java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:272)
at: java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:272)
at: java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:272)
at: java.awt.Component.processMouseEvent(Component.java:6267)
at: javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at: com.kingdee.bos.ctrl.swing.KDWorkButton.processMouseEvent(KDWorkButton.java:898)
at: java.awt.Component.processEvent(Component.java:6032)
at: java.awt.Container.processEvent(Container.java:2041)
at: java.awt.Component.dispatchEventImpl(Component.java:4630)
at: java.awt.Container.dispatchEventImpl(Container.java:2099)
at: java.awt.Component.dispatchEvent(Component.java:4460)
at: java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
at: java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
at: java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
at: java.awt.Container.dispatchEventImpl(Container.java:2085)
at: java.awt.Window.dispatchEventImpl(Window.java:2478)
at: java.awt.Component.dispatchEvent(Component.java:4460)
at: java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at: com.kingdee.bos.invokecounter.RPCLogEventQueue.dispatchEvent(RPCLogEventQueue.java:176)
at: sun.reflect.GeneratedMethodAccessor17.invoke(Unknown Source)
at: sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at: java.lang.reflect.Method.invoke(Method.java:597)
at: com.kingdee.eas.client.recorder.UserInputEventQueue.myDispatchEvent(UserInputEventQueue.java:126)
at: com.kingdee.eas.client.recorder.UserInputEventQueue.dispatchEvent(UserInputEventQueue.java:59)
at: java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at: java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at: java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at: java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at: java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at: java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

错误信息:Could not initialize class com.kingdee.eas.tools.datatask.util.GlobalFunction
错误详细堆栈信息:java.lang.NoClassDefFoundError: Could not initialize class com.kingdee.eas.tools.datatask.util.GlobalFunction
at: com.kingdee.eas.tools.datatask.client.FileSelector.show(FileSelector.java:160)
at: com.kingdee.eas.tools.datatask.client.AbstractTemplateExport.getFilePath(AbstractTemplateExport.java:23)
at: com.kingdee.eas.tools.datatask.client.TemplateExport.export(TemplateExport.java:167)
at: com.kingdee.eas.tools.datatask.client.DIETemplateListUI.actionExportTemplate_actionPerformed(DIETemplateListUI.java:136)
at: sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at: sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at: sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at: java.lang.reflect.Method.invoke(Method.java:597)
at: com.kingdee.bos.ui.face.ItemAction.reflectPerformAction(ItemAction.java:439)
at: com.kingdee.bos.ui.face.ItemAction.innerActionPerformed(ItemAction.java:397)
at: com.kingdee.eas.tools.datatask.client.AbstractDIETemplateListUI$ActionExportTemplate.actionPerformed(AbstractDIETemplateListUI.java:764)
at: com.kingdee.bos.appframework.client.servicebinding.ActionProxy.actionPerformedInvoke(ActionProxy.java:188)
at: com.kingdee.bos.appframework.client.servicebinding.ActionProxy.actionPerformed(ActionProxy.java:112)
at: javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at: com.kingdee.bos.ctrl.swing.KDWorkButton.fireActionPerformed(KDWorkButton.java:567)
at: javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at: javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at: javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at: javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at: java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:272)
at: java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:272)
at: java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:272)
at: java.awt.Component.processMouseEvent(Component.java:6267)
at: javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at: com.kingdee.bos.ctrl.swing.KDWorkButton.processMouseEvent(KDWorkButton.java:898)
at: java.awt.Component.processEvent(Component.java:6032)
at: java.awt.Container.processEvent(Container.java:2041)
at: java.awt.Component.dispatchEventImpl(Component.java:4630)
at: java.awt.Container.dispatchEventImpl(Container.java:2099)
at: java.awt.Component.dispatchEvent(Component.java:4460)
at: java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
at: java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
at: java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
at: java.awt.Container.dispatchEventImpl(Container.java:2085)
at: java.awt.Window.dispatchEventImpl(Window.java:2478)
at: java.awt.Component.dispatchEvent(Component.java:4460)
at: java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at: com.kingdee.bos.invokecounter.RPCLogEventQueue.dispatchEvent(RPCLogEventQueue.java:176)
at: sun.reflect.GeneratedMethodAccessor17.invoke(Unknown Source)
at: sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at: java.lang.reflect.Method.invoke(Method.java:597)
at: com.kingdee.eas.client.recorder.UserInputEventQueue.myDispatchEvent(UserInputEventQueue.java:126)
at: com.kingdee.eas.client.recorder.UserInputEventQueue.dispatchEvent(UserInputEventQueue.java:59)
at: java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at: java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at: java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at: java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at: java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at: java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
解决方法


融资租赁合同多页签导入功能







分割线
相关信息
以上就是我关于 长春一汽项目复盘 知识点整理与总结的全部内容,希望对你有帮助。。。。。。。
Powered by Waline v2.15.4