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

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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