You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

216 lines
8.4 KiB
Java

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;
}
}