| | |
| | | pageEncoding="UTF-8"%> |
| | | <%@page import="com.yc.sdk.shopping.util.SettingKey"%> |
| | | <%@page import="com.yc.factory.FactoryBean"%> |
| | | <%@page import="java.util.List"%> |
| | | <%@page import="java.util.Map"%> |
| | | <%@page import="com.yc.multiData.SpObserver"%> |
| | | <%@page import="java.text.SimpleDateFormat"%> |
| | | <%@page import="java.util.Date"%> |
| | | <%@page import="com.yc.utils.SessionKey"%> |
| | | <%@page import="com.yc.sdk.shopping.action.Maintaince"%> |
| | | <%@page import="com.yc.service.user.UserAccountServiceIfc"%> |
| | | <%@page import="com.yc.entity.UserAccountEntity"%> |
| | | <%@page import="com.yc.entity.DataSourceEntity"%> |
| | | <%@page import="com.yc.multiData.MultiDataSource"%> |
| | | <%@ page import="org.apache.commons.lang3.StringUtils" %> |
| | | <%@ page import="com.yc.service.BaseService" %> |
| | | <%@ page import="com.yc.utils.SessionKey" %> |
| | | |
| | | <% |
| | | String hostUrl = SettingKey.getHostUrl(request) ; |
| | | DataSourceEntity dataSourceEntity = MultiDataSource.getDataSourceMap( request) ; |
| | | BaseService baseService = (BaseService) FactoryBean.getBean("BaseService"); |
| | | String deLiUserCode = baseService.getSimpleJdbcTemplate().queryForObject("set nocount on \n select DeLiUserCode from _sysuser where userCode=?", String.class,request.getSession().getAttribute(SessionKey.USERCODE)); |
| | | %> |
| | | <!DOCTYPE html > |
| | | <html> |
| | |
| | | <div class="" id="collapse-messages"><div class="panel-body"></div></div> |
| | | <div class="row"> |
| | | <div id="content" class="col-sm-12"> |
| | | <h1>德立营销系统账号绑定与解绑[<%=dataSourceEntity.getDeliUserCode()==null?"未绑定账号":dataSourceEntity.getDeliUserCode()%>]</h1><br> |
| | | <h1>德立营销系统账号绑定与解绑[<%=deLiUserCode==null?"未绑定账号":deLiUserCode%>]</h1><br> |
| | | <fieldset> |
| | | <div class="form-group required"> |
| | | <label class="col-sm-2 control-label" for="userName">账号:</label> |
| | |
| | | </div> |
| | | </body> |
| | | <script type="application/x-javascript"> |
| | | var isbind=<%=StringUtils.isNotBlank(dataSourceEntity.getDeliUserId())?true:false%>;//是否已绑定了账号 |
| | | var isbind=<%=StringUtils.isNotBlank(deLiUserCode)?true:false%>;//是否已绑定了账号 |
| | | $('#button-bind').attr("disabled",isbind); |
| | | $('#button-unbind').attr("disabled",!isbind); |
| | | $(document).delegate('#button-bind', 'click', function() { |
| | |
| | | $.get("/deli/bindUserAccount.do?userPass=" + userPass + "&userName=" + userName, function (data) { |
| | | if (data != null) { |
| | | alert(data.msg);//回调提示 |
| | | location.reload(); |
| | | } |
| | | }); |
| | | } |
| | |
| | | $.get("/deli/unbindUserAccount.do?userPass=" + userPass + "&userName=" + userName, function (data) { |
| | | if (data != null) { |
| | | alert(data.msg);//回调提示 |
| | | location.reload(); |
| | | } |
| | | }); |
| | | } |
| | |
| | | import com.yc.open.deli.service.v2.DeLiIfc; |
| | | import com.yc.open.init.InitSystemTaks; |
| | | import com.yc.open.init.Task; |
| | | import com.yc.open.mutual.schedule.GateEntity; |
| | | import com.yc.open.utils.ApiUtils; |
| | | import com.yc.open.utils.CallBackMessageToObject; |
| | | import com.yc.sdk.weixincp.util.UploadFiles; |
| | | import com.yc.sdk.weixinmp.util.MD5Util; |
| | | import com.yc.service.BaseService; |
| | | import com.yc.service.build.type.T_22_Ifc; |
| | | import com.yc.service.panel.SqlDBHelperIfc; |
| | | import com.yc.service.upload.AttachmentIfc; |
| | |
| | | import org.slf4j.LoggerFactory; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.dao.DataAccessException; |
| | | import org.springframework.util.FileCopyUtils; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.RequestMethod; |
| | | import org.springframework.web.bind.annotation.ResponseBody; |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | |
| | | import javax.servlet.http.Cookie; |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import java.io.IOException; |
| | | import java.io.InputStream; |
| | | import java.net.HttpURLConnection; |
| | | import java.net.URL; |
| | | import java.net.URLDecoder; |
| | | import java.util.*; |
| | | import java.util.concurrent.ConcurrentHashMap; |
| | |
| | | |
| | | /** |
| | | * 生成数字签名及相关的公共参数 |
| | | * @param request |
| | | * |
| | | * @param entity |
| | | * @return URl的query字符串 |
| | | */ |
| | | |
| | | public String getSignByDeLi(Task task, String data,String dbid) throws Exception { |
| | | public String getSignByDeLi(Task task, String data, GateEntity entity) throws Exception { |
| | | |
| | | ConcurrentHashMap<String,String> concurrentHashMap=new ConcurrentHashMap(); |
| | | //post需要提交的数据 |
| | |
| | | concurrentHashMap.putIfAbsent("timestamp",timestamp+""); |
| | | concurrentHashMap.putIfAbsent("nonce",nonce); |
| | | //取accesskey,secretkey |
| | | DataSourceEntity dataSourceEntity = MultiDataSource.getDataSourceMap(dbid); |
| | | DataSourceEntity dataSourceEntity = MultiDataSource.getDataSourceMap(entity.getDbid()); |
| | | String accessKey=dataSourceEntity.getSystemAccessKey(); |
| | | String outUserID=dataSourceEntity.getDeliUserId(); |
| | | //取当前用户绑定的德立账号 |
| | | String outUserID=null; |
| | | try { |
| | | SpObserver.setDBtoInstance("_" + entity.getDbid()); |
| | | BaseService baseService = (BaseService) FactoryBean.getBean("BaseService"); |
| | | outUserID =baseService.getSimpleJdbcTemplate().queryForObject("set nocount on \n select DeLiUserId from _sysuser where usercode=? and isnull(inActive,0)=0",String.class,entity.getUserCode()); |
| | | if(StringUtils.isBlank(outUserID)){ |
| | | throw new ApplicationException(entity.getUserCode()+"未绑定德立账号,DeLiUserId不能为空"); |
| | | } |
| | | }catch (Exception e){ |
| | | throw e; |
| | | }finally { |
| | | SpObserver.setDBtoInstance(); |
| | | } |
| | | concurrentHashMap.putIfAbsent("outUserID",outUserID); |
| | | concurrentHashMap.putIfAbsent("accesskey",MD5Util.string2MD5(accessKey)); |
| | | String sign= ApiUtils.SignRequest(concurrentHashMap,task.getAppSecret()); |
| | |
| | | if("{}".equals(callBackMessageToObject.getData())&&callBackMessageToObject.getState()==0){ |
| | | return callMsg.sendSuccessMessage("返回数据结果为空"); |
| | | }else{ |
| | | //成功则写入数据源表和更新内存中的数据源 |
| | | DataSourceEntity dataSource=MultiDataSource.getDataSourceMap(dbid+""); |
| | | dataSource.setDeliUserCode(((Map)callBackMessageToObject.getData()).get("userName")+""); |
| | | dataSource.setDeliUserId(((Map)callBackMessageToObject.getData()).get("outUserID")+""); |
| | | try{ |
| | | SpObserver.setDBtoDemo(); |
| | | mDeLiIfc.bindUserAccount(dataSource); |
| | | SpObserver.setDBtoInstance("_"+dbid); |
| | | mDeLiIfc.bindUserAccount((Map)callBackMessageToObject.getData(),request.getSession().getAttribute(SessionKey.USERCODE)+""); |
| | | return callMsg.sendSuccessMessage("绑定成功"); |
| | | }catch(Exception ex){ |
| | | return callMsg.sendErrorMessage(this.getErrorMsg(ex)); |
| | |
| | | if("{}".equals(callBackMessageToObject.getData())&&callBackMessageToObject.getState()==0){ |
| | | return callMsg.sendSuccessMessage("返回数据结果为空"); |
| | | }else{ |
| | | //成功则写入数据源表和更新内存中的数据源 |
| | | DataSourceEntity dataSource=MultiDataSource.getDataSourceMap(dbid+""); |
| | | dataSource.setDeliUserCode(((Map)callBackMessageToObject.getData()).get("userName")+""); |
| | | dataSource.setDeliUserId(((Map)callBackMessageToObject.getData()).get("outUserID")+""); |
| | | try{ |
| | | SpObserver.setDBtoDemo(); |
| | | mDeLiIfc.unbindUserAccount(dataSource); |
| | | SpObserver.setDBtoInstance("_"+dbid); |
| | | mDeLiIfc.unbindUserAccount(request.getSession().getAttribute(SessionKey.USERCODE)+""); |
| | | return callMsg.sendSuccessMessage("解绑成功"); |
| | | }catch(Exception ex){ |
| | | return callMsg.sendErrorMessage(this.getErrorMsg(ex)); |
| | |
| | | String data=GridUtils.toJson(t640109Entity); |
| | | //request.setAttribute("isPublic",1);//转换成公用key |
| | | Task task=InitSystemTaks.getTaskByIsOpenURL(dbid+"","OP0046",130301);//取130301设置的密钥 |
| | | String query=this.getSignByDeLi(task,data,dbid+""); |
| | | GateEntity entity=new GateEntity(); |
| | | entity.setDbid(dbid+""); |
| | | entity.setUserCode(request.getSession().getAttribute(SessionKey.USERCODE)+""); |
| | | String query=this.getSignByDeLi(task,data,entity); |
| | | String url=Constant.T640109_PUSH_NEW_URL; |
| | | if("复测".equals(t640109Entity.getCustomer().getDocType())){ |
| | | url= Constant.T640110_PUSH_NEW_URL; |
| | |
| | | OrderReturnEntity result = this.deliIfc.getT130301(entity, task); |
| | | if (result != null) { |
| | | String data = GridUtils.toJson(result); |
| | | String url = task.getApiUrl() + deliController.getSignByDeLi(task, data, entity.getDbid()); |
| | | String url = task.getApiUrl() + deliController.getSignByDeLi(task, data, entity); |
| | | String msg = deliController.doPostByParameter(url, data); |
| | | log.info("msg:" + msg); |
| | | DeliCallBackMessage callBackMessage = JSON.parseObject(msg, DeliCallBackMessage.class); |
| | |
| | | if (entity.getFormid() == 150201) { |
| | | threadPoolExecutor.execute(new T150201Thread(entity, deLiIfc, deliController)); |
| | | } |
| | | if (entity.getFormid() == 150206) { |
| | | threadPoolExecutor.execute(new T150206Thread(entity, deLiIfc, deliController)); |
| | | } |
| | | if (entity.getFormid() == 640115) { |
| | | threadPoolExecutor.execute(new T640115Thread(entity, deLiIfc, deliController)); |
| | | threadPoolExecutor.execute(new Get640115Thread(entity, deLiIfc, deliController)); |
| | |
| | | @Override |
| | | public void run() { |
| | | try { |
| | | SpObserver.setDBtoInstance("_"+entity.getDbid());//固定取onbus系统 |
| | | //判断德立设置的SystemAccessKey是否正确及outUserID是否为空 |
| | | DataSourceEntity dataSourceEntity = MultiDataSource.getDataSourceMap(entity.getDbid()); |
| | | String accessKey=dataSourceEntity.getSystemAccessKey(); |
| | | String outUserID=dataSourceEntity.getDeliUserId(); |
| | | if(StringUtils.isBlank(outUserID)){ |
| | | throw new ApplicationException("outUserID不能为空,请先绑定德立账号[快捷->德立账号绑定]"); |
| | | } |
| | | |
| | | SpObserver.setDBtoInstance("_"+entity.getDbid()); |
| | | DeliSchedule deliSchedule = (DeliSchedule) FactoryBean.getBean("deliSchedule"); |
| | | deliSchedule.pushData(entity); |
| | | } catch (Exception ex) { |
| | |
| | | SpObserver.setDBtoInstance(); |
| | | } |
| | | } |
| | | |
| | | |
| | | } |
| | |
| | | Get640115Entity result = this.deliIfc.getT640115V2(entity, task); |
| | | if (result != null) { |
| | | String data = GridUtils.toJson(result); |
| | | String url = task.getApiUrl() + deliController.getSignByDeLi(task, data, entity.getDbid()); |
| | | String url = task.getApiUrl() + deliController.getSignByDeLi(task, data, entity); |
| | | String msg = deliController.doPostByParameter(url, data); |
| | | DeliCallBackMessage callBackMessage = JSON.parseObject(msg, DeliCallBackMessage.class); |
| | | if (callBackMessage != null) { |
| | |
| | | List<T120201Entity> result = this.deliIfc.getT120201List(entity.getDocCode(),task); |
| | | if (result != null && result.size() > 0) { |
| | | String data = GridUtils.toJson(result); |
| | | String url = task.getApiUrl()+ deliController.getSignByDeLi(task,data,entity.getDbid()); |
| | | String url = task.getApiUrl()+ deliController.getSignByDeLi(task,data,entity); |
| | | String msg= deliController.doPostByParameter(url, data); |
| | | List<DeliCallBackMessage> callBackMessage=JSON.parseArray(msg,DeliCallBackMessage.class); |
| | | callBackMessage= callBackMessage.stream().map(x->{ |
| | |
| | | List<T130301Entity> result = this.deliIfc.getT130301List(entity.getDocCode(), task); |
| | | if (result != null && result.size() > 0) { |
| | | String data = GridUtils.toJson(result); |
| | | String url = task.getApiUrl() + deliController.getSignByDeLi(task, data, entity.getDbid()); |
| | | String url = task.getApiUrl() + deliController.getSignByDeLi(task, data, entity); |
| | | String msg = deliController.doPostByParameter(url, data); |
| | | log.info("msg:" + msg); |
| | | DeliCallBackMessage callBackMessage = JSON.parseObject(msg, DeliCallBackMessage.class); |
| | |
| | | T150201Entity result = this.deliIfc.getT150201(entity.getDocCode(),task,entity.getDbid()); |
| | | if (result != null) { |
| | | String data = GridUtils.toJson(result); |
| | | String url = task.getApiUrl()+ deliController.getSignByDeLi(task,data,entity.getDbid()); |
| | | String url = task.getApiUrl()+ deliController.getSignByDeLi(task,data,entity); |
| | | String msg= deliController.doPostByParameter(url, data); |
| | | DeliCallBackMessage callBackMessage=JSON.parseObject(msg,DeliCallBackMessage.class); |
| | | if(callBackMessage.getState()==0) { |
New file |
| | |
| | | package com.yc.open.deli.schedule.v2; |
| | | |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.yc.action.grid.GridUtils; |
| | | import com.yc.factory.FactoryBean; |
| | | import com.yc.multiData.SpObserver; |
| | | import com.yc.open.deli.controller.DeliController; |
| | | import com.yc.open.deli.entity.DeliCallBackMessage; |
| | | import com.yc.open.deli.entity.T110562Entity; |
| | | import com.yc.open.deli.entity.T110565Entity; |
| | | import com.yc.open.deli.entity.T150201Entity; |
| | | import com.yc.open.deli.service.PostDataBaseService; |
| | | import com.yc.open.deli.service.v2.DeLiIfc; |
| | | import com.yc.open.init.BaseGate; |
| | | import com.yc.open.init.Task; |
| | | import com.yc.open.mutual.schedule.GateEntity; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * 推送预付款单 |
| | | */ |
| | | public class T150206Thread extends BaseGate implements Runnable { |
| | | protected final Logger log = LoggerFactory.getLogger(this.getClass()); |
| | | private static String TASKID = "OP0068"; |
| | | private GateEntity entity; |
| | | DeLiIfc deliIfc; |
| | | DeliController deliController; |
| | | |
| | | public T150206Thread(GateEntity entity, DeLiIfc deliIfc, DeliController deliController) { |
| | | this.entity = entity; |
| | | this.deliIfc = deliIfc; |
| | | this.deliController = deliController; |
| | | } |
| | | |
| | | @Override |
| | | public void run() { |
| | | try { |
| | | SpObserver.setDBtoInstance("_" + entity.getDbid()); |
| | | Task task = checkPoint(entity, TASKID); |
| | | //满足条件才执行 |
| | | if (task != null && task.getResult() == 1) { |
| | | this.deliIfc.getDeliCvent(entity); |
| | | T150201Entity result = this.deliIfc.getT150206(entity.getDocCode(),task,entity.getDbid()); |
| | | if (result != null) { |
| | | String data = GridUtils.toJson(result); |
| | | String url = task.getApiUrl()+ deliController.getSignByDeLi(task,data,entity); |
| | | String msg= deliController.doPostByParameter(url, data); |
| | | DeliCallBackMessage callBackMessage=JSON.parseObject(msg,DeliCallBackMessage.class); |
| | | if(callBackMessage.getState()==0) { |
| | | callBackMessage.setMsg("推送成功"); |
| | | } |
| | | List<DeliCallBackMessage> list=new ArrayList<>(); |
| | | list.add(callBackMessage); |
| | | updateState(list,result); |
| | | } |
| | | } |
| | | } catch (Exception ex) { |
| | | ex.printStackTrace(); |
| | | deliController.sendErrorLog(entity.getFormid(), entity.getDocCode(), ex); |
| | | log.error(ex.getMessage()); |
| | | } finally { |
| | | SpObserver.setDBtoInstance(); |
| | | } |
| | | } |
| | | |
| | | private void updateState(List<DeliCallBackMessage> callBackMessages, T150201Entity t150201Entity) { |
| | | if (callBackMessages != null && callBackMessages.size() > 0) { |
| | | List<T110562Entity> t110562Entities = new ArrayList<>(); |
| | | StringBuilder sb=new StringBuilder(); |
| | | for (DeliCallBackMessage deliCallBackMessage : callBackMessages) { |
| | | t110562Entities.add(new T110562Entity(150206, |
| | | t150201Entity.getDocCode(), |
| | | 10, |
| | | null, |
| | | null, |
| | | null, |
| | | null, |
| | | null, |
| | | 0, |
| | | 0, |
| | | 0, |
| | | null, |
| | | null, |
| | | t150201Entity.getHDMemo(), |
| | | deliCallBackMessage.getState(), |
| | | 1, |
| | | deliCallBackMessage.getMsg() |
| | | )); |
| | | |
| | | //更新到对应单据表 |
| | | sb.append(" set nocount on \n update a set a.DeLi_PushStatus="+(deliCallBackMessage.getState()==0?1:0)+",a.DeLi_PushDate=getdate(),a.DeLi_PushTimes=isnull(a.DeLi_PushTimes,0)+1,a.DeLi_PushMsg='"+deliCallBackMessage.getMsg()+"' from t150206H a where a.doccode='"+t150201Entity.getDocCode()+"'\n"); |
| | | |
| | | |
| | | } |
| | | try { |
| | | SpObserver.setDBtoInstance("_"+entity.getDbid()); |
| | | PostDataBaseService mPostDataBaseService= (PostDataBaseService)FactoryBean.getBean("postDataBaseService"); |
| | | int updateCount = mPostDataBaseService.getSimpleJdbcTemplate().queryForObject(sb.toString() + " \n select @@rowcount;", Integer.class); |
| | | if(updateCount<=0){ |
| | | log.error("德立预付款单-->更新出错【"+sb.toString()+"】"); |
| | | } |
| | | mPostDataBaseService.doLogBy110562(t110562Entities); |
| | | String docCode=t150201Entity.getDocCode(); |
| | | String rowid=null; |
| | | mPostDataBaseService.doLogBy110565(new T110565Entity( |
| | | 150206, |
| | | docCode, |
| | | rowid, |
| | | "推送预付款单150206", |
| | | GridUtils.toJson(t150201Entity) |
| | | )); |
| | | }catch (Exception ex){ |
| | | log.error("德立预付款单-->"+ex.getMessage()); |
| | | }finally { |
| | | SpObserver.setDBtoInstance(); |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | |
| | | List<T170139Entity> result = this.deliIfc.getT170139List(entity.getDocCode(),task,entity.getDbid()); |
| | | if (result != null && result.size() > 0) { |
| | | String data = GridUtils.toJson(result); |
| | | String url = task.getApiUrl()+ deliController.getSignByDeLi(task,data,entity.getDbid()); |
| | | String url = task.getApiUrl()+ deliController.getSignByDeLi(task,data,entity); |
| | | String msg= deliController.doPostByParameter(url, data); |
| | | List<DeliCallBackMessage> callBackMessage=JSON.parseArray(msg,DeliCallBackMessage.class); |
| | | callBackMessage= callBackMessage.stream().map(x->{ |
| | |
| | | List<T640109Entity> result = this.deliIfc.getT640109(entity.getDocCode(),task); |
| | | if (result != null && result.size() > 0) { |
| | | String data = GridUtils.toJson(result); |
| | | String url = task.getApiUrl()+ deliController.getSignByDeLi(task,data,entity.getDbid()); |
| | | String url = task.getApiUrl()+ deliController.getSignByDeLi(task,data,entity); |
| | | String msg= deliController.doPostByParameter(url, data); |
| | | List<DeliCallBackMessage> callBackMessage=JSON.parseArray(msg,DeliCallBackMessage.class); |
| | | callBackMessage= callBackMessage.stream().map(x->{ |
| | |
| | | T640115Entity result = this.deliIfc.getT640115(entity.getDocCode(), task, entity.getDbid()); |
| | | if (result != null) { |
| | | String data = GridUtils.toJson(result); |
| | | String url = task.getApiUrl() + deliController.getSignByDeLi(task, data, entity.getDbid()); |
| | | String url = task.getApiUrl() + deliController.getSignByDeLi(task, data, entity); |
| | | String msg = deliController.doPostByParameter(url, data); |
| | | DeliCallBackMessage callBackMessage = JSON.parseObject(msg, DeliCallBackMessage.class); |
| | | if (callBackMessage != null) { |
| | |
| | | List<T640201Entity> result = this.deliIfc.getT640201List(entity.getDocCode(),task); |
| | | if (result != null && result.size() > 0) { |
| | | String data = GridUtils.toJson(result); |
| | | String url = task.getApiUrl()+ deliController.getSignByDeLi(task,data,entity.getDbid()); |
| | | String url = task.getApiUrl()+ deliController.getSignByDeLi(task,data,entity); |
| | | String msg= deliController.doPostByParameter(url, data); |
| | | List<DeliCallBackMessage> callBackMessage=JSON.parseArray(msg,DeliCallBackMessage.class); |
| | | callBackMessage= callBackMessage.stream().map(x->{ |
| | |
| | | |
| | | public CanelEntity getCanelEntityByTableName(String hdtable,String dttable,String doccode,int formid); |
| | | |
| | | Integer bindUserAccount(DataSourceEntity dataSource); |
| | | Integer unbindUserAccount(DataSourceEntity dataSource); |
| | | Integer bindUserAccount(Map map,String userCode); |
| | | Integer unbindUserAccount(String userCode); |
| | | |
| | | T150201Entity getT150201(String docCode, Task task,String dbid); |
| | | |
| | | T150201Entity getT150206(String docCode, Task task,String dbid); |
| | | T640115Entity getT640115(String docCode, Task task,String dbid); |
| | | Get640115Entity getT640115V2(GateEntity entity, Task task); |
| | | |
| | |
| | | " and a.DocStatus=@mydocStatus \n" + |
| | | " and a.DocCode=@myDocCode \n" + |
| | | " and isnull(e.vndcode,'') = @DefaultVndCode \n" + |
| | | " and exists(select 1 from t120201D t where t.doccode=b.SoDoccode and isnull(t.DeLi_PushStatus,0)=1) \n" + |
| | | " order by a.doccode asc,b.DocItem asc \n" + |
| | | " open mycurDeli \n" + |
| | | " fetch next from mycurDeli into @docCode,@docDate,@docType,@factoryNumber,\n" + |
| | |
| | | |
| | | @Override |
| | | @Transactional |
| | | public Integer bindUserAccount(DataSourceEntity dataSource) { |
| | | return this.jdbcTemplate.update("set nocount on \n update a set a.DeliUserCode =? , a.DeliUserId =? from gsystem a where id=?", dataSource.getDeliUserCode(), dataSource.getDeliUserId(), dataSource.getDbId()); |
| | | public Integer bindUserAccount(Map map,String userCode) { |
| | | return this.jdbcTemplate.update("set nocount on \n update a set a.DeliUserCode =? , a.DeliUserId =?,a.DeLiCShopCode=?,a.DeLiCShopName=? from _sysuser a where a.userCode=?", map.get("userName"), map.get("outUserID"), map.get("ccCode"), map.get("ccName"),userCode); |
| | | } |
| | | |
| | | @Override |
| | | @Transactional |
| | | public Integer unbindUserAccount(DataSourceEntity dataSource) { |
| | | return this.jdbcTemplate.update("set nocount on \n update a set a.DeliUserCode =null , a.DeliUserId =null from gsystem a where id=?", dataSource.getDbId()); |
| | | public Integer unbindUserAccount(String userCode) { |
| | | return this.jdbcTemplate.update("set nocount on \n update a set a.DeliUserCode =null , a.DeliUserId =null,a.DeLiCShopCode=null,a.DeLiCShopName=null from _sysuser a where a.userCode=?", userCode); |
| | | } |
| | | |
| | | @Override |
| | |
| | | } |
| | | return t150201Entity; |
| | | } |
| | | @Override |
| | | public T150201Entity getT150206(String docCode, Task task, String dbid) { |
| | | List<T150201TempEntity> list = this.jdbcTemplate.query("set nocount on \n" + |
| | | " declare @DefaultVndCode varchar(50),@DefaultVndName varchar(50) \n" + |
| | | " select top 1 @DefaultVndCode = a.DefaultVndCode ,@DefaultVndName = b.vndName \n" + |
| | | " from t110561 a left join t110302 b on a.DefaultVndCode = b.vndCode \n" + |
| | | " if isnull(@DefaultVndCode,'') = '' \n" + |
| | | " begin \n" + |
| | | " raiserror('请在 110561 功能号中维护【缺省供应商编号】',16,1) \n" + |
| | | " return \n" + |
| | | " end \n" + |
| | | " select b.docCode,convert(varchar(10), b.docdate,120) as docDate,b.ccCode,b.ccName,b.vndCode,b.vndName,b.hDMemo,b.amount as totalAmount,b.bankCode,b.bankName,b.bankAccount,b.uploads,c.UserName as remitter,c.tel as remitterTel,(select isnull(a.BankCode,'') from t110706 a join t110702 b on a.Acctcode = b.Acctcode where a.subacctcode=d.AccountCode) as AccountCode,(select isnull(a.subacctname,'') from t110706 a join t110702 b on a.Acctcode = b.Acctcode where a.subacctcode=d.AccountCode) as AccountName,d.Amount,d.BankDocCode " + |
| | | " from t150206H b \n" + |
| | | " left join _sys_loginuser c on c.usercode=replace(b.CurChecked,',','') \n" + |
| | | " left join t150348 d on d.Doccode=b.DocCode \n" + |
| | | " where b.DocCode=? and isnull(b.VndCode,'')=@DefaultVndCode", new BeanPropertyRowMapper(T150201TempEntity.class), docCode); |
| | | T150201Entity t150201Entity = null; |
| | | if (list != null && list.size() > 0) { |
| | | t150201Entity = new T150201Entity(); |
| | | List<T150348Entity> t150348Entities = new ArrayList<>(); |
| | | |
| | | int i = 0; |
| | | for (T150201TempEntity x : list) { |
| | | List<DeliFileEntity> uploads = new ArrayList<>(); |
| | | T150348Entity t150348Entity = new T150348Entity(); |
| | | t150348Entity.setAmount(x.getAmount()); |
| | | t150348Entity.setBankDocCode(x.getBankDocCode()); |
| | | t150348Entity.setAccountName(x.getAccountName()); |
| | | t150348Entity.setAccountCode(x.getAccountCode()); |
| | | if (StringUtils.isNotBlank(x.getUploads())) { |
| | | //取出附件拼接url需要的数据 |
| | | final List<com.yc.open.mutual.entity.AttachmentEntity> attachmentInfo = mutualServiceIfc.getAttachmentInfo(x.getUploads(), task.getAffectedFormId(), "uploads", 0); |
| | | if (attachmentInfo != null && attachmentInfo.size() > 0) { |
| | | for (AttachmentEntity entity : attachmentInfo) { |
| | | DeliFileEntity deliFileEntity=new DeliFileEntity(); |
| | | String url = AttachmentConfig.get("attachment.server") + "/uploads/attachment/" + dbid + "/" + entity.getFormid() + "/" + entity.getUnid() + "@p@" + entity.getSeq() + "." + entity.getFileType(); |
| | | deliFileEntity.setUrl(url); |
| | | deliFileEntity.setFileName(entity.getOriginalFileName()); |
| | | uploads.add(deliFileEntity); |
| | | } |
| | | } |
| | | t150348Entity.setUploads(uploads); |
| | | }else { |
| | | t150348Entity.setUploads(new ArrayList<DeliFileEntity>()); |
| | | } |
| | | t150348Entities.add(t150348Entity); |
| | | if (i == 0) { |
| | | t150201Entity.setDocCode(x.getDocCode()); |
| | | t150201Entity.setDocDate(x.getDocDate()); |
| | | t150201Entity.setCcCode(x.getCcCode()); |
| | | t150201Entity.setCcName(x.getCcName()); |
| | | t150201Entity.setVndCode(x.getVndCode()); |
| | | t150201Entity.setVndName(x.getVndName()); |
| | | t150201Entity.setHDMemo(x.getHDMemo()); |
| | | t150201Entity.setTotalAmount(x.getTotalAmount()); |
| | | t150201Entity.setBankCode(x.getBankCode()); |
| | | t150201Entity.setBankName(x.getBankName()); |
| | | t150201Entity.setBankAccount(x.getBankAccount()); |
| | | t150201Entity.setRemitter(x.getRemitter()); |
| | | t150201Entity.setRemitterTel(x.getRemitterTel()); |
| | | } |
| | | |
| | | i++; |
| | | } |
| | | ; |
| | | t150201Entity.setRemittanceList(t150348Entities); |
| | | } |
| | | return t150201Entity; |
| | | } |
| | | } |
| | |
| | | import com.yc.open.mutual.entity.OnlineMessageEntity; |
| | | import com.yc.open.ufida.schedule.UfIdaGate; |
| | | import com.yc.open.wms.schedule.WMSThread; |
| | | import com.yc.service.impl.BaseDoIfc; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | |
| | | protected final Logger log = LoggerFactory.getLogger(this.getClass()); |
| | | @Autowired |
| | | ThreadPoolTaskExecutor threadPoolExecutor; |
| | | |
| | | @Autowired |
| | | BaseDoIfc baseDoIfc; |
| | | public void enterGate(GateEntity entity) throws Exception{ |
| | | DataSourceEntity dataSourceEntity = MultiDataSource.getDataSourceMap(entity.getDbid()); |
| | | //不是OA审核按钮不执行 |
| | |
| | | threadPoolExecutor.execute(new MutualThread(entity)); |
| | | //----德立推送 |
| | | if("deli".equalsIgnoreCase(dataSourceEntity.getDockingSystem())) { |
| | | //推送前判断相关配置是否正确 |
| | | checkDeliConfig(entity); |
| | | threadPoolExecutor.execute(new DeliThread(entity)); |
| | | } |
| | | //----订货帮 |
| | |
| | | public void enterGateByOnlineMessages(OnlineMessageEntity entity) throws Exception{ |
| | | threadPoolExecutor.execute(new OnLineMessagesThread(entity)); |
| | | } |
| | | |
| | | private void checkDeliConfig(GateEntity entity){ |
| | | //TODO 德立新增推送需要在这里增加相关的功能号 |
| | | if(!";130301;120201;170139;640109;640201;150201;640115;150206;".contains(";"+entity.getFormid()+";")) { |
| | | return;//不是推送的功能号不执行检查 |
| | | } |
| | | DataSourceEntity dataSourceEntity = MultiDataSource.getDataSourceMap(entity.getDbid()); |
| | | String sql="declare @UserCode varchar(50) = '"+entity.getUserCode()+"',@cVenCode varchar(20) = '"+dataSourceEntity.getSystemAccessKey()+"'\n" + |
| | | "declare @UserName varchar(80),@CcCode varchar(20),@CcName varchar(50)\n" + |
| | | "declare @DeLiUserCode varchar(50),@DeLiUserId varchar(50)\n" + |
| | | "declare @DeLiCShopCode varchar(50),@DeLiCShopName varchar(80)\n" + |
| | | "declare @CShopCode varchar(50),@CShopName varchar(80),@TempCcCode varchar(20)\n" + |
| | | "declare @Msg varchar(2000)='',@State int = 0\n" + |
| | | "select @UserName = a.UserName,@CcCode = a.CcCode ,@CcName = b.ccName,\n" + |
| | | " @DeLiCShopCode=a.DeLiCShopCode,@DeLiCShopName=a.DeLiCShopName,\n" + |
| | | " @DeLiUserCode = a.DeLiUserCode,@DeLiUserId = a.DeLiUserId\n" + |
| | | "from _sysUser a \n" + |
| | | "left join t110601 b on a.cccode = b.ccCode\n" + |
| | | "where a.UserCode = @UserCode \n" + |
| | | "if @@ROWCOUNT = 0\n" + |
| | | "begin\n" + |
| | | " select @Msg = '不存在ERP系统登录用户【'+isnull(@UserCode,'')+ '】'\n" + |
| | | " raiserror(@Msg,16,1)\n" + |
| | | " return\n" + |
| | | "end \n" + |
| | | "if isnull(@DeLiUserCode,'') = '' or isnull(@DeLiUserId,'') = ''\n" + |
| | | "begin\n" + |
| | | " select @Msg = '当前用户【'+ isnull(@UserName,'') + '】还未绑定德立营销系统,请先绑定然后再重试此操作!'\n" + |
| | | " raiserror(@Msg,16,1)\n" + |
| | | " return\n" + |
| | | "end \n" + |
| | | "select @CShopCode = CShopCode,@CShopName =CShopName ,@TempCcCode = CcCode\n" + |
| | | "from t110606 where @cVenCode = cVenCode and CShopCode = @DeLiCShopCode \n" + |
| | | "if @@ROWCOUNT = 0\n" + |
| | | "begin\n" + |
| | | " insert into t110606(ccCode,ccName,cVenCode,cVenName,cShopCode,cshopName)\n" + |
| | | " values(@CcCode,@CcName,@cVenCode,'',@DeLiCShopCode,@DeLiCShopName)\n" + |
| | | " select @TempCcCode = @CcCode,@CShopCode=@CcCode,@CShopName = @CcName\n" + |
| | | "end\n" + |
| | | "if isnull(@TempCcCode,'') = ''\n" + |
| | | "begin\n" + |
| | | " update a set CcCode = @CcCode from t110606 a \n" + |
| | | " where @cVenCode = cVenCode and CShopCode = @DeLiCShopCode \n" + |
| | | " set @TempCcCode = @CcCode \n" + |
| | | "end \n" + |
| | | "if isnull(@TempCcCode,'') <> isnull(@CcCode,'')\n" + |
| | | "begin\n" + |
| | | " select @Msg = 'ERP系统中的门店与德立系统中门店名称不一致,以下任一方法均可解决:1.将ERP系统中所属门店改为【'+isnull(@CShopName,'')+'】;2.登录德立营销系统,修改所属门店为【'+isnull(@CcName,'') + '】。修改完成后请再重试此操作!'\n" + |
| | | " raiserror(@Msg,16,1)\n" + |
| | | " return\n" + |
| | | "end"; |
| | | baseDoIfc.doExecute(sql); |
| | | } |
| | | } |