📄 rwglclrwbaseblh.java
字号:
package gov.gdlt.ssgly.taxcore.taxblh.rwgl;
import java.math.BigDecimal;
import java.util.ArrayList;
import gov.gdlt.ssgly.taxcore.comm.blh.BaseBizLogicHandler;
import gov.gdlt.ssgly.taxcore.comm.event.ResponseEvent;
import gov.gdlt.ssgly.taxcore.comm.log.LogWritter;
import gov.gdlt.ssgly.taxcore.comm.exception.TaxBaseSystemException;
import gov.gdlt.ssgly.taxcore.comm.exception.TaxBaseBizException;
import gov.gdlt.ssgly.taxcore.taxdao.rwgl.workflow.SsglyWorkFlow;
import gov.gdlt.ssgly.taxcore.taxevent.rwgl.*;
import gov.gdlt.ssgly.taxcore.comm.event.RequestEvent;
import gov.gdlt.ssgly.taxcore.taxdao.rwgl.RWGLrwjlDAO;
import gov.gdlt.ssgly.taxcore.taxevent.jkyj.JKYJckyjxxReqEvent;
import gov.gdlt.ssgly.taxcore.taxblh.jkyj.JKYJckyjxxBLH;
import gov.gdlt.ssgly.taxcore.taxdao.rwgl.RWGLspecialDAO;
import gov.gdlt.ssgly.taxcore.taxdao.flgl.FLGLflxxDAO;
import gov.gdlt.ssgly.taxcore.taxdao.xtfl.XTFLflDAO;
import gov.gdlt.ssgly.taxcore.comm.util.StringUtils;
import gov.gdlt.ssgly.taxcore.taxdao.rwgl.*;
import gov.gdlt.ssgly.taxcore.comm.config.ApplicationContext;
import gov.gdlt.ssgly.taxcore.taxblh.gzda.TaskManagerImpl;
import gov.gdlt.ssgly.taxcore.taxblh.wdsc.qtwdsc.WDSCqtwdscBLH;
/**
* <p>Title: </p>
*
* <p>Description: 广东地税税收管理员工作平台</p>
*
* <p>Copyright: Copyright (c) 2005 广东省地方税务局,广州市地方税务局</p>
*
* <p>Company: 广州地税</p>
*
* @author 王隽
* @version 1.0
*/
public class RWGLclrwBaseBLH extends BaseBizLogicHandler {
public RWGLclrwBaseBLH() {
}
////////////////// 抽象方法实现 /////////////////////
/**
* validateData 实现具体的业务数据规则校验
* req : RequestEvent, 客户端请求数具
* conn : Connection 数据库连结
* 返回:boolean true:数据校验成功 false:数据校验不成功
*/
protected ResponseEvent validateData(RequestEvent req) throws
Exception {
LogWritter.sysDebug("got session");
ResponseEvent res = new ResponseEvent();
return res;
}
/**
* 此方法实现了业务逻辑的处理过程,处理具体业务逻辑的过程中,
* 在出现异常的时侯, 必须向上抛出异常,异常的处理在
* BaseBizLogicHandler实现异常的处理,事务处理和日志的记录;具体要的异常的定义根据
* 具体的业务来确定。返回的参数的对象类型必须是ResponseEvent类型的对象实例,
* 如果捕捉到业务上的异常,并对具体的业务的异常进行处理,如根据TaxBaseBizException
* 以及它的扩展类的异常,写应用日志信息,异常捕获后,相应地要向上抛以下几种异常
* 1.TaxBaseSystemException
* 2.TaxBaseBizException
* 3.Throwable
* 输入参数:
* req : RequestEvent, 客户端请求的数据对象实例
* conn : Connection 数据库的连接句柄
* 返回:ResponseEvent 返回给客户端的数据对象实例
*/
protected ResponseEvent performTask(RequestEvent req) throws
TaxBaseSystemException, TaxBaseBizException {
String dealMethod = req.getDealMethod(); //业务处理标志
ResponseEvent resEvn = new ResponseEvent(); //创建ResponseEvent对象resEvn
//强制造型转换
RWGLclrwReqEvent reqEvent = (RWGLclrwReqEvent) req;
// if ("getFsdx".equals(dealMethod)) {
// resEvn = this.getFsdx(reqEvent);
// }else
if ("save".equals(dealMethod)){
resEvn=this.save(reqEvent);
}else
if ("send".equals(dealMethod)){
resEvn=this.send(reqEvent);
}else
if ("getRwmx".equals(dealMethod)){
resEvn=this.getRwmxxx(reqEvent);
}else
if ("getRwmxAll".equals(dealMethod)){
resEvn=this.getRwmxAll(reqEvent);
}else
if ("getSpecial".equals(dealMethod)){
resEvn=this.getSpecial(reqEvent);
}
return resEvn;
}
// /** 已停用
// * 获取可发送的对象列表
// * @param req RWGLclrwReqEvent
// * @return ResponseEvent
// */
// private ResponseEvent getFsdx(RWGLclrwReqEvent req){
// RWGLclrwResEvent resEvn = new RWGLclrwResEvent(); //创建ResponseEvent对象resEvn
// String blfs_dm=req.getBlfs_dm();
// BigDecimal rw_xh=req.getRw_xh();
// String swry_dm=req.getSwry_dm();
// resEvn.setFsdxVO(SsglyWorkFlow.getFsdx(swry_dm,rw_xh,blfs_dm));
// return resEvn;
// }
/**
* 执行任务的保存功能
* @param req RWGLclrwReqEvent
* @return ResponseEvent
*/
private ResponseEvent save(RWGLclrwReqEvent req){
RWGLclrwResEvent resEvn = new RWGLclrwResEvent(); //创建ResponseEvent对象resEvn
String swry_dm=req.getSwry_dm();
RWGLrwmxVO rwmx=req.getRwmxVO();
int rows=SsglyWorkFlow.save(swry_dm,rwmx);
if (rows==1){
resEvn.setRepCode("0");
}else{
resEvn.setRepCode("-1");
}
return resEvn;
}
/**
* 发送任务给下一人
* @param req RWGLclrwReqEvent
* @return ResponseEvent
*/
private ResponseEvent send(RWGLclrwReqEvent req) throws TaxBaseBizException,
TaxBaseSystemException {
RWGLclrwResEvent resEvn = (RWGLclrwResEvent)save(req); //创建ResponseEvent对象resEvn
BigDecimal rw_xh=req.getRw_xh();
String swry_dm=req.getSwry_dm();
RWGLfsdxVO fsdx=req.getFsdx();
String clfs=fsdx.getLzfs_dm();
if (clfs.equals("16")){
//如果是回退到上一人,则执行以下操作
int rows=SsglyWorkFlow.turnBack(rw_xh,swry_dm);
if (rows==1) resEvn.setRepCode("0");
else resEvn.setRepCode("1");
}else{
//如果属于发送操作,则执行以下操作
String jsz_dm = fsdx.getSwry_dm();
String jsz_lx;
LogWritter.sysDebug("BLH ready to send " + rw_xh + ". clfs=" + clfs +
" jszdm=" + jsz_dm);
if (jsz_dm == null) {
jsz_lx = "2";
jsz_dm = clfs;
} else {
jsz_lx = "1";
}
ArrayList list = SsglyWorkFlow.send(rw_xh, swry_dm, clfs, jsz_lx,
jsz_dm);
int errCode=1;
LogWritter.sysDebug("需后续处理的任务共"+list.size()+"个");
for (int i = 0; i < list.size(); i++) {
rw_xh = (BigDecimal) list.get(i);
RWGLrwmxVO rwmx = SsglyWorkFlow.getRwmx(rw_xh);
errCode=bjRw(rw_xh, swry_dm, rwmx);
if (errCode==-1) LogWritter.sysDebug("任务rwxh="+rw_xh+"处理失败!");
else LogWritter.sysDebug("任务rwxh="+rw_xh+"处理完毕");
}
String xbzList=req.getXbzList();
if (xbzList!=null && !xbzList.equals("")){
list=StringUtils.convertStrToArrayList(xbzList,";;");
rw_xh=req.getRw_xh();
BigDecimal bz_xh=req.getRwmxVO().getBz_xh();
for (int i=0;i<list.size();i++){
jsz_dm=(String)list.get(i);
if (jsz_dm==null || jsz_dm.length()<10) {
LogWritter.sysDebug("协办人代码"+jsz_dm+"异常,不创建协办步骤");
continue;
}
errCode=SsglyWorkFlow.createXbz(rw_xh,bz_xh,jsz_dm);
if (errCode==ApplicationContext.RET_FAIL) LogWritter.sysDebug("发送协办步骤失败:rwxh="+rw_xh);
}
LogWritter.sysDebug("协办步骤创建完毕!");
}
}
if (req.isSms()){
RWGLrwmxVO rwmx=req.getRwmxVO();
SmsDao sd=new SmsDao();
BigDecimal fl_xh=rwmx.getFl_xh();
if(fl_xh!=null){
//String content_fl="关于您的"+rwmx.getRwxl_mc()+"事项,我局的处理意见如下:"+rwmx.getBlyj()+"---"+req.getSwjg_mc();
String content_fl=rwmx.getBlyj()+"--"+req.getSwjg_mc();
sd.SendMsgByfldm(fl_xh,content_fl,req);
}
if(rwmx.getNsrList()!=null && rwmx.getNsrList().size()>0){
//String content="关于您的"+rwmx.getRwxl_mc()+"事项,我局的处理意见如下:"+rwmx.getBlyj()+"---"+req.getSwjg_mc();
String content=rwmx.getBlyj()+"--"+req.getSwjg_mc();
sd.SendMsgByNsrnbm(rwmx.getNsrList(),content,req);
}
}
return resEvn;
}
/**
* 办结任务的操作,根据任务的不同,可重写此方法
* @param rw_xh BigDecimal
* @param swry_dm String
* @return int
*/
protected int bjRw(BigDecimal rw_xh,String swry_dm,RWGLrwmxVO rwmx) throws
TaxBaseSystemException, TaxBaseBizException {
if (rwmx.getRwlx_dm().equals("01")) { //任务是分户管理
String from = rwmx.getProperty("from");
String to = rwmx.getProperty("to");
String rwxl=rwmx.getRwxl_dm();
String nsrnbm=rwmx.getProperty("nsrnbm");
LogWritter.sysDebug("准备执行任务"+rw_xh+"的分户管理,任务小类:"+rwxl+" 纳税人:"+nsrnbm+" 移出类:"+from+" 移入类:"+to);
if (from.equals("") || to.equals("") || rwxl.equals("") || rwxl==null || nsrnbm.equals("")) return -1;
//根据不同的任务小类,进行不同的操作
if (rwxl.equals("0101") || rwxl.equals("0102") || rwxl.equals("0120")){
String old_fldm, new_fldm, old_ryorjg, new_ryorjg;
int p;
p = from.indexOf("0");
if (p < 0) { //not found
p = 4;
}
old_fldm = from.substring(0, p);
old_ryorjg = from.substring(p);
p = to.indexOf("0");
if (p < 0) { //not found
p = 4;
}
new_fldm = to.substring(0, p);
new_ryorjg = to.substring(p);
//调分类管理接口
FLGLflxxDAO flxxDAO = new FLGLflxxDAO();
flxxDAO.setO_fldm(old_fldm);
flxxDAO.setO_lyorjg(old_ryorjg);
flxxDAO.setN_fldm(new_fldm);
flxxDAO.setN_lyorjg(new_ryorjg);
flxxDAO.setS_nsrnbm(nsrnbm);
LogWritter.sysDebug("调用分类管理接口进行分户:old_fldm="+old_fldm+" old_jgrydm="+old_ryorjg+" new_fldm="+new_fldm+" new_jgrydm="+new_ryorjg+" nsrnbm="+nsrnbm);
flxxDAO.p_flgl_movensr();
RWGLspecialDAO specialDAO=new RWGLspecialDAO();
RWGLspecialDataVO specialData=new RWGLspecialDataVO();
specialData.setSpecialNumber2(new BigDecimal(nsrnbm));
specialData.setSqlName("getNsrss");
specialData.setSqlOperation("select");
specialData=specialDAO.dealSpecialOperation(specialData);
String nsrss=specialData.getSpecialString1();
if (!nsrss.equals(to)){
LogWritter.sysDebug("业户转移失败,当前所在:"+nsrss);
return -1;
}
//如果属于移入任务,并且移入对象是机构,则生成下级机构的业户移入任务
if (!(rwxl.equals("0101") || rwxl.equals("0120")) || new_ryorjg.substring(0,2).equals("02")){
LogWritter.sysDebug("业户转移成功");
return 1;
}
LogWritter.sysDebug("业户已经移入到相关机构,开始自动生成下级机构的移入任务");
RWGLjhrwVO jhrw=new RWGLjhrwVO();
jhrw.setCbbm_dm(new_ryorjg.substring(2));
jhrw.setJhxdry_dm(swry_dm);
jhrw.setNsrnbm(rwmx.getNsrnbm());
jhrw.setRwlx_dm(rwmx.getRwlx_dm());
jhrw.setRwxl_dm(rwmx.getRwxl_dm());
jhrw.setRwms(rwmx.getRwms());
rwmx.setProperty("from",to);
rwmx.removeProperty("to");
jhrw.setRwmxxx(rwmx.getRwmxxx());
if (rwmx.getRwyxjb().equals("重要"))jhrw.setRwyxjb("1");
else jhrw.setRwyxjb("2");
jhrw.setYdqd_sj(rwmx.getJb_sj());
jhrw.setZzyq(rwmx.getZzyq());
BigDecimal jh_xh=SsglyWorkFlow.newJhap(jhrw);
if (jh_xh==null){
LogWritter.sysDebug("自动生成下级机构的移入任务失败!");
return 1;
}
LogWritter.sysDebug("已生成下级机构移入计划,计划序号:"+jh_xh);
BigDecimal newRwxh=SsglyWorkFlow.startWorkFlow(jh_xh);
if (newRwxh==null) LogWritter.sysDebug("无法启动计划任务");
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -