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 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 cgddDetail1Beans) { writeLog("createWorkFlowBySAP"); writeLog("client:"+client); Message message = new Message(); RecordSet rs = new RecordSet(); WorkflowCreateHandler workflowCreateHandler = new WorkflowCreateHandler(); Map requestMap = new HashMap(); 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; } }