|
|
|
|
package weaver.interfaces.zlldjcws.cgdd.service.impl;
|
|
|
|
|
|
|
|
|
|
import com.weaver.general.BaseBean;
|
|
|
|
|
import com.weaver.general.Util;
|
|
|
|
|
import org.apache.commons.lang.StringUtils;
|
|
|
|
|
import weaver.conn.RecordSet;
|
|
|
|
|
import weaver.interfaces.zlldjcws.util.Message;
|
|
|
|
|
import weaver.interfaces.zlldjcws.util.WorkflowCreateHandler;
|
|
|
|
|
import weaver.interfaces.zlldjcws.cgdd.bean.CgddBean;
|
|
|
|
|
import weaver.interfaces.zlldjcws.cgdd.bean.CgddDetail1Bean;
|
|
|
|
|
import weaver.interfaces.zlldjcws.cgdd.service.LdCgddService;
|
|
|
|
|
|
|
|
|
|
import javax.ejb.Stateless;
|
|
|
|
|
import javax.jws.WebMethod;
|
|
|
|
|
import javax.jws.WebParam;
|
|
|
|
|
import javax.jws.WebService;
|
|
|
|
|
import java.util.HashMap;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.Map;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @author ZhangLei
|
|
|
|
|
* @date 2021/8/2
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Stateless(mappedName = "LdCgddServiceImpl")
|
|
|
|
|
@WebService(serviceName = "LdCgddServiceImpl")
|
|
|
|
|
public class LdCgddServiceImpl extends BaseBean implements LdCgddService {
|
|
|
|
|
private static String IsNextFlow = "1";
|
|
|
|
|
private String WorkFlowId = getPropValue("CGDD_WORKFLOW", "WORKFLOWID");
|
|
|
|
|
|
|
|
|
|
@WebMethod
|
|
|
|
|
@Override
|
|
|
|
|
public Message createModeData(@WebParam(name="client")String client, @WebParam(name="cgddBean") CgddBean cgddBean) {
|
|
|
|
|
writeLog("client:" + client);
|
|
|
|
|
writeLog("主表信息:");
|
|
|
|
|
writeLog("ebeln:" + cgddBean.getEbeln());
|
|
|
|
|
|
|
|
|
|
writeLog("bedat:" + cgddBean.getBedat());
|
|
|
|
|
writeLog("bsart:" + cgddBean.getBsart());
|
|
|
|
|
writeLog("lifnr:" + cgddBean.getLifnr());
|
|
|
|
|
writeLog("ekorg:" + cgddBean.getEkorg());
|
|
|
|
|
writeLog("ekgekgrp:" + cgddBean.getEkgrp());
|
|
|
|
|
writeLog("bukrs:" + cgddBean.getBukrs());
|
|
|
|
|
writeLog("frgke:" + cgddBean.getFrgke());
|
|
|
|
|
writeLog("zflag:" + cgddBean.getZflag());
|
|
|
|
|
writeLog("zspbs:" + cgddBean.getZspbs());
|
|
|
|
|
writeLog("creator:" + cgddBean.getCreator());
|
|
|
|
|
List<CgddDetail1Bean> cgddDetail1Beans = cgddBean.getCgddDetail1Beans();
|
|
|
|
|
writeLog("明细表信息:(明细表数据共有" + cgddDetail1Beans.size() + "行数据)");
|
|
|
|
|
if (cgddDetail1Beans.size() > 0) {
|
|
|
|
|
for (CgddDetail1Bean cgddDetail1Bean : cgddDetail1Beans) {
|
|
|
|
|
if (cgddDetail1Bean != null) {
|
|
|
|
|
writeLog(cgddDetail1Bean.toString());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return createWorkFlowBySAP(client,cgddBean, cgddDetail1Beans);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/***
|
|
|
|
|
*
|
|
|
|
|
* @param cgddBean
|
|
|
|
|
* @param cgddDetail1Beans
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
public Message createWorkFlowBySAP(String client,CgddBean cgddBean, List<CgddDetail1Bean> cgddDetail1Beans) {
|
|
|
|
|
writeLog("createWorkFlowBySAP");
|
|
|
|
|
writeLog("client:"+client);
|
|
|
|
|
Message message = new Message();
|
|
|
|
|
|
|
|
|
|
RecordSet rs = new RecordSet();
|
|
|
|
|
|
|
|
|
|
WorkflowCreateHandler workflowCreateHandler = new WorkflowCreateHandler();
|
|
|
|
|
Map<String, String> requestMap = new HashMap<String, String>();
|
|
|
|
|
|
|
|
|
|
String creatorId = cgddBean.getEkgrp();//创建人id
|
|
|
|
|
writeLog("creatorId:"+creatorId);
|
|
|
|
|
String EBELN = cgddBean.getEbeln();
|
|
|
|
|
String ZFLAG = cgddBean.getZflag();
|
|
|
|
|
writeLog("ZFLAG:"+ZFLAG);
|
|
|
|
|
|
|
|
|
|
if(StringUtils.isEmpty(client)){
|
|
|
|
|
message.setFlag("E");
|
|
|
|
|
message.setMessage("client为空,无法判断接口环境");
|
|
|
|
|
message.setId("-300");
|
|
|
|
|
writeLog("此时的Message信息是:" + message.toString());
|
|
|
|
|
return message;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
requestMap.put("client", client);
|
|
|
|
|
|
|
|
|
|
if (!"".equals(creatorId))
|
|
|
|
|
{
|
|
|
|
|
requestMap.put("EBELN".toLowerCase(), cgddBean.getEbeln());
|
|
|
|
|
if(!"".equals(cgddBean.getBedat()) && cgddBean.getBedat() !=null){
|
|
|
|
|
String bedat = cgddBean.getBedat();
|
|
|
|
|
String bedatnew = bedat.substring(0,4)+"-"+bedat.substring(4,6)+"-"+bedat.substring(6,8);
|
|
|
|
|
requestMap.put("BEDAT".toLowerCase(), bedatnew);
|
|
|
|
|
}
|
|
|
|
|
if(!"".equals(cgddBean.getBsart()) && cgddBean.getBsart() !=null){
|
|
|
|
|
requestMap.put("BSART".toLowerCase(), cgddBean.getBsart());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(!"".equals(cgddBean.getLifnr()) && cgddBean.getLifnr() !=null){
|
|
|
|
|
requestMap.put("LIFNR".toLowerCase(), cgddBean.getLifnr());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(!"".equals(cgddBean.getEkorg()) && cgddBean.getEkorg() !=null){
|
|
|
|
|
requestMap.put("EKORG".toLowerCase(), cgddBean.getEkorg());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(!"".equals(cgddBean.getEkgrp()) && cgddBean.getEkgrp() !=null){
|
|
|
|
|
requestMap.put("EKGRP".toLowerCase(), cgddBean.getEkgrp());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(!"".equals(cgddBean.getBukrs()) && cgddBean.getBukrs() !=null){
|
|
|
|
|
requestMap.put("BUKRS".toLowerCase(), cgddBean.getBukrs());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(!"".equals(cgddBean.getFrgke()) && cgddBean.getFrgke() !=null){
|
|
|
|
|
requestMap.put("FRGKE".toLowerCase(), cgddBean.getFrgke());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(!"".equals(cgddBean.getZflag()) && cgddBean.getZflag() !=null){
|
|
|
|
|
requestMap.put("ZFLAG".toLowerCase(), cgddBean.getZflag());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(!"".equals(cgddBean.getZspbs()) && cgddBean.getZspbs() !=null){
|
|
|
|
|
requestMap.put("ZSPBS".toLowerCase(), cgddBean.getZspbs());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(!"".equals(cgddBean.getHeadtxt()) && cgddBean.getHeadtxt() !=null){
|
|
|
|
|
requestMap.put("HEADTXT".toLowerCase(), cgddBean.getHeadtxt());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
String sql = " select cgzdyry from uf_ekgrp where cgz='"+creatorId+"' and client='"+client+"' and (scbs is null or scbs<>0) " ;
|
|
|
|
|
writeLog("sql:"+sql);
|
|
|
|
|
rs.execute(sql);
|
|
|
|
|
int bool = 0;
|
|
|
|
|
if(rs.next()) {
|
|
|
|
|
creatorId = Util.null2String(rs.getString("cgzdyry"));
|
|
|
|
|
writeLog("cgzdyry:"+creatorId);
|
|
|
|
|
bool++;
|
|
|
|
|
}
|
|
|
|
|
writeLog("creatorId:"+creatorId);
|
|
|
|
|
|
|
|
|
|
if(bool == 0) {
|
|
|
|
|
writeLog("code:-300");
|
|
|
|
|
message.setFlag("E");
|
|
|
|
|
message.setId("-300");
|
|
|
|
|
message.setMessage("创建人OA系统不存在!");
|
|
|
|
|
return message;
|
|
|
|
|
}
|
|
|
|
|
writeLog("creator:" + creatorId);
|
|
|
|
|
} else {
|
|
|
|
|
writeLog("creator:--300");
|
|
|
|
|
message.setFlag("E");
|
|
|
|
|
message.setMessage("缺少创建人");
|
|
|
|
|
message.setId("-300");
|
|
|
|
|
writeLog("此时的Message信息是:" + message.toString());
|
|
|
|
|
return message;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
String formtable = workflowCreateHandler.getFormTableByWorkflowId(WorkFlowId);
|
|
|
|
|
if("1".equals(ZFLAG)){
|
|
|
|
|
message = workflowCreateHandler.createNewWorkflow(WorkFlowId,IsNextFlow,creatorId,formtable, requestMap, cgddDetail1Beans);
|
|
|
|
|
|
|
|
|
|
}else if("2".equals(ZFLAG)){
|
|
|
|
|
String lcid = "" ;
|
|
|
|
|
String sql = " select max(requestid) as requestid from "+formtable+" where EBELN='"+EBELN+"' and client='"+client+"'" ;
|
|
|
|
|
rs.execute(sql);
|
|
|
|
|
if(rs.next()){
|
|
|
|
|
lcid = Util.null2String(rs.getString("requestid"));
|
|
|
|
|
}
|
|
|
|
|
if(!"".equals(lcid))
|
|
|
|
|
{
|
|
|
|
|
String currentnodetype = "" ;
|
|
|
|
|
sql = " select currentnodetype from workflow_requestbase where requestid="+lcid ;
|
|
|
|
|
rs.execute(sql);
|
|
|
|
|
if(rs.next()){
|
|
|
|
|
currentnodetype = Util.null2String(rs.getString("currentnodetype"));
|
|
|
|
|
}
|
|
|
|
|
if(!"3".equals(currentnodetype)){
|
|
|
|
|
message = workflowCreateHandler.updateWorkflowBySap(lcid,formtable, requestMap, cgddDetail1Beans);
|
|
|
|
|
}else{
|
|
|
|
|
message.setFlag("E");
|
|
|
|
|
message.setId("-500");
|
|
|
|
|
message.setMessage("流程已归档,无法修改");
|
|
|
|
|
}
|
|
|
|
|
}else{
|
|
|
|
|
message.setFlag("E");
|
|
|
|
|
message.setId("-500");
|
|
|
|
|
message.setMessage("根据采购凭证编号:"+EBELN+",未找到对应的审批流程");
|
|
|
|
|
}
|
|
|
|
|
}else if("4".equals(ZFLAG)){
|
|
|
|
|
requestMap.put("cxcx","4");
|
|
|
|
|
message = workflowCreateHandler.createNewWorkflow(WorkFlowId,IsNextFlow,creatorId,formtable, requestMap, cgddDetail1Beans);
|
|
|
|
|
}
|
|
|
|
|
}catch (Exception e){
|
|
|
|
|
message.setFlag("E");
|
|
|
|
|
message.setId("-400");
|
|
|
|
|
message.setMessage("创建流程异常");
|
|
|
|
|
}
|
|
|
|
|
writeLog("此时的Message信息是:" + message);
|
|
|
|
|
return message;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|