parent
							
								
									388587b5e1
								
							
						
					
					
						commit
						b54ec78b91
					
				|  | @ -0,0 +1,39 @@ | ||||||
|  | package tqq9.lc123.cloud.app.plugin.operate.sys; | ||||||
|  | 
 | ||||||
|  | import com.alibaba.fastjson.JSONObject; | ||||||
|  | import kd.bos.dataentity.entity.DynamicObject; | ||||||
|  | import kd.bos.entity.operate.result.OperationResult; | ||||||
|  | import kd.bos.entity.plugin.AbstractOperationServicePlugIn; | ||||||
|  | import kd.bos.entity.plugin.args.AfterOperationArgs; | ||||||
|  | import kd.bos.servicehelper.BusinessDataServiceHelper; | ||||||
|  | import kd.imsc.dmw.utils.StringUtils; | ||||||
|  | import tqq9.lc123.cloud.app.plugin.trd.FWImpl; | ||||||
|  | 
 | ||||||
|  | public class WarehouseAuditOp extends AbstractOperationServicePlugIn { | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public void afterExecuteOperationTransaction(AfterOperationArgs e) { | ||||||
|  |         super.afterExecuteOperationTransaction(e); | ||||||
|  |         OperationResult operationResult = this.getOperationResult(); | ||||||
|  |         if(operationResult.isSuccess()){ | ||||||
|  |             DynamicObject[] dataEntities = e.getDataEntities(); | ||||||
|  |             for (DynamicObject dataEntity : dataEntities) { | ||||||
|  |                 dataEntity = BusinessDataServiceHelper.loadSingle(dataEntity.getPkValue(), dataEntity.getDynamicObjectType().getName()); | ||||||
|  |                 String resultStr = FWImpl.syncWH(dataEntity); | ||||||
|  |                 if(StringUtils.isNotBlank(resultStr)){ | ||||||
|  |                     JSONObject resultJson = JSONObject.parseObject(resultStr); | ||||||
|  |                     String status = resultJson.getString("status"); | ||||||
|  |                     if("1".equals(status)){ | ||||||
|  | 
 | ||||||
|  |                     }else{ | ||||||
|  |                         String msg = resultJson.getString("result"); | ||||||
|  |                     } | ||||||
|  | 
 | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | } | ||||||
|  | @ -0,0 +1,52 @@ | ||||||
|  | package tqq9.lc123.cloud.app.plugin.trd; | ||||||
|  | 
 | ||||||
|  | import com.alibaba.fastjson.JSONObject; | ||||||
|  | import kd.bos.dataentity.entity.DynamicObject; | ||||||
|  | import kd.bos.servicehelper.BusinessDataServiceHelper; | ||||||
|  | import tqq9.lc123.cloud.app.plugin.utils.FWRestfulUtils; | ||||||
|  | 
 | ||||||
|  | import java.text.SimpleDateFormat; | ||||||
|  | import java.util.Date; | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |  * 泛微接口实现,用于后续单独推送的功能实现 | ||||||
|  |  */ | ||||||
|  | public class FWImpl { | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * 推送仓库 | ||||||
|  |      * @param dataEntity | ||||||
|  |      * @return | ||||||
|  |      */ | ||||||
|  |     public static String syncWH(DynamicObject dataEntity) { | ||||||
|  |         String number = dataEntity.getString("number"); | ||||||
|  |         String name = dataEntity.getString("name"); | ||||||
|  |         Date ceatetime = dataEntity.getDate("createtime"); | ||||||
|  |         DynamicObject group = dataEntity.getDynamicObject("group");//分组:实物-1,虚拟-0 | ||||||
|  |         String enable = dataEntity.getString("enable");//使用状态:可用-1,禁用-0 | ||||||
|  |         DynamicObject tqq9_dept = dataEntity.getDynamicObject("tqq9_dept");//部门 | ||||||
|  |         // TODO 根据部门获取泛微的部门ID | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |         DynamicObject creator = dataEntity.getDynamicObject("creator");//创建人 | ||||||
|  |         creator = BusinessDataServiceHelper.loadSingle(creator.getPkValue(), creator.getDynamicObjectType().getName()); | ||||||
|  |         String tqq9_fwuserid = creator.getString("tqq9_fwuserid"); | ||||||
|  |         tqq9_fwuserid = "363"; | ||||||
|  | 
 | ||||||
|  |         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); | ||||||
|  |         String cjsj = sdf.format(ceatetime); | ||||||
|  | 
 | ||||||
|  |         JSONObject mainTable = new JSONObject(); | ||||||
|  |         mainTable.put("ckbm", number); | ||||||
|  |         mainTable.put("ckmc", name); | ||||||
|  |         mainTable.put("cjsj", cjsj); | ||||||
|  |         mainTable.put("zt", Integer.valueOf(enable)); | ||||||
|  |         mainTable.put("cclx", Integer.valueOf(group.getString("number"))); | ||||||
|  |         mainTable.put("bmbm", "5g5be27147e2ff9d"); | ||||||
|  | 
 | ||||||
|  |         FWRestfulUtils fwRestfulUtils = new FWRestfulUtils(); | ||||||
|  |         String resultStr = fwRestfulUtils.doAction("api/cube/restful/interface/saveOrUpdateModeData/CK", mainTable, tqq9_fwuserid); | ||||||
|  |         return resultStr; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | } | ||||||
|  | @ -12,11 +12,11 @@ import java.util.HashMap; | ||||||
| import java.util.Map; | import java.util.Map; | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
|  * 第三方接口调用 |  * 通天晓接口实现 | ||||||
|  */ |  */ | ||||||
| public class TrdInterfaceImpl { | public class TtxImpl { | ||||||
| 
 | 
 | ||||||
|     private static final Log logger = LogFactory.getLog(TrdInterfaceImpl.class); |     private static final Log logger = LogFactory.getLog(TtxImpl.class); | ||||||
| 
 | 
 | ||||||
|     //调用通天晓接口 |     //调用通天晓接口 | ||||||
|     public static JSONObject ttxImpl(String method, String param) throws IOException { |     public static JSONObject ttxImpl(String method, String param) throws IOException { | ||||||
|  | @ -0,0 +1,180 @@ | ||||||
|  | package tqq9.lc123.cloud.app.plugin.utils; | ||||||
|  | 
 | ||||||
|  | import com.alibaba.fastjson.JSON; | ||||||
|  | import com.alibaba.fastjson.JSONObject; | ||||||
|  | import okhttp3.*; | ||||||
|  | import org.apache.http.client.entity.UrlEncodedFormEntity; | ||||||
|  | import org.apache.http.client.methods.CloseableHttpResponse; | ||||||
|  | import org.apache.http.client.methods.HttpPost; | ||||||
|  | import org.apache.http.entity.ContentType; | ||||||
|  | import org.apache.http.entity.StringEntity; | ||||||
|  | import org.apache.http.impl.client.CloseableHttpClient; | ||||||
|  | import org.apache.http.impl.client.HttpClients; | ||||||
|  | import org.apache.http.message.BasicNameValuePair; | ||||||
|  | import org.apache.http.util.EntityUtils; | ||||||
|  | 
 | ||||||
|  | import java.io.IOException; | ||||||
|  | import java.math.BigInteger; | ||||||
|  | import java.security.MessageDigest; | ||||||
|  | import java.security.NoSuchAlgorithmException; | ||||||
|  | import java.sql.Timestamp; | ||||||
|  | import java.util.*; | ||||||
|  | 
 | ||||||
|  | public class FWRestfulUtils { | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      *restful接口调用案例 | ||||||
|  |      *以getModeDataPageList为例 | ||||||
|  |      */ | ||||||
|  |     public String doAction(String url, JSONObject mainTable, String fwuserid){ | ||||||
|  |         String thirdConfigByNumber = ConfigUtils.getThirdConfigByNumber("FW_Main_URL");//获取泛微接口ip、端口号 | ||||||
|  |         String systemid = ConfigUtils.getThirdConfigByNumber("FW_systemid");//获取泛微接口授权用户名、系统标识 | ||||||
|  |         String d_password = ConfigUtils.getThirdConfigByNumber("FW_password");//获取泛微接口授权密码 | ||||||
|  | 
 | ||||||
|  |         CloseableHttpResponse response;// 响应类, | ||||||
|  |         CloseableHttpClient httpClient = HttpClients.createDefault(); | ||||||
|  | 
 | ||||||
|  |         //restful接口url | ||||||
|  |         HttpPost httpPost = new HttpPost(thirdConfigByNumber + url); | ||||||
|  | 
 | ||||||
|  |         //当前日期 | ||||||
|  |         String currentDate = getCurrentDate(); | ||||||
|  |         //当前时间 | ||||||
|  |         String currentTime = getCurrentTime(); | ||||||
|  |         //获取时间戳 | ||||||
|  |         String currentTimeTamp = getTimestamp(); | ||||||
|  | 
 | ||||||
|  |         Map<String, Object> params = new HashMap<>(); | ||||||
|  |         Map<String, Object> dataParam = new HashMap<>(); | ||||||
|  |         Map<String, Object> datajson = new HashMap<>(); | ||||||
|  | 
 | ||||||
|  |         //header | ||||||
|  |         Map<String, Object> header = new HashMap<>(); | ||||||
|  |         header.put("systemid", systemid); | ||||||
|  |         header.put("currentDateTime", currentTimeTamp); | ||||||
|  |         String md5Source = systemid + d_password + currentTimeTamp; | ||||||
|  |         String md5OfStr = getMD5Str(md5Source).toLowerCase(); | ||||||
|  |         //Md5是:系统标识+密码+时间戳 并且md5加密的结果 | ||||||
|  |         header.put("Md5",md5OfStr); | ||||||
|  | 
 | ||||||
|  |         //封装pageinfo | ||||||
|  | //        JSONObject pageInfo = new JSONObject(); | ||||||
|  | //        pageInfo.put("pageNo", 1); | ||||||
|  | //        pageInfo.put("pageSize", 10); | ||||||
|  | //        dataParam.put("pageInfo",pageInfo); | ||||||
|  | 
 | ||||||
|  |         //封装mainTable参数 | ||||||
|  |         dataParam.put("mainTable",mainTable); | ||||||
|  | 
 | ||||||
|  |         //封装operationinfo参数 | ||||||
|  |         JSONObject operationinfo = new JSONObject(); | ||||||
|  |         operationinfo.put("operator", fwuserid); | ||||||
|  |         dataParam.put("operationinfo",operationinfo); | ||||||
|  | 
 | ||||||
|  |         System.out.println("===请求参数dataparam==="+dataParam); | ||||||
|  |         params.put("data",dataParam); | ||||||
|  |         Map<String, Object>[] arr = new Map[1]; | ||||||
|  |         arr[0] = dataParam; | ||||||
|  | 
 | ||||||
|  |         datajson.put("header", header); | ||||||
|  |         datajson.put("data", arr); | ||||||
|  | 
 | ||||||
|  |         //装填参数 | ||||||
|  |         List<BasicNameValuePair> list = new ArrayList<>(); | ||||||
|  |         list.add(new BasicNameValuePair("datajson", JSON.toJSONString(datajson))); | ||||||
|  | 
 | ||||||
|  |         try{ | ||||||
|  |             httpPost.addHeader("Content-Type","application/x-www-form-urlencoded; charset=utf-8"); | ||||||
|  |             httpPost.setEntity(new UrlEncodedFormEntity(list, "UTF-8")); | ||||||
|  |             response = httpClient.execute(httpPost); | ||||||
|  |             if (response != null && response.getEntity() != null) { | ||||||
|  |                 //返回信息 | ||||||
|  |                 String resulString = EntityUtils.toString(response.getEntity()); | ||||||
|  |                 System.out.println("成功"+ resulString); | ||||||
|  |                 return resulString; | ||||||
|  |             }else{ | ||||||
|  |                 System.out.println("获取数据失败,请查看日志"+currentDate+" "+currentTime); | ||||||
|  |             } | ||||||
|  |         }catch (Exception e){ | ||||||
|  |             System.out.println("请求失败"+currentDate+" "+currentTime+"====errormsg:"+e.getMessage()); | ||||||
|  |         } | ||||||
|  |         return null; | ||||||
|  | 
 | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public String getMD5Str(String plainText){ | ||||||
|  |         //定义一个字节数组 | ||||||
|  |         byte[] secretBytes = null; | ||||||
|  |         try { | ||||||
|  |             // 生成一个MD5加密计算摘要 | ||||||
|  |             MessageDigest md = MessageDigest.getInstance("MD5"); | ||||||
|  |             //对字符串进行加密 | ||||||
|  |             md.update(plainText.getBytes()); | ||||||
|  |             //获得加密后的数据 | ||||||
|  |             secretBytes = md.digest(); | ||||||
|  |         } catch (NoSuchAlgorithmException e) { | ||||||
|  |             throw new RuntimeException("没有md5这个算法!"); | ||||||
|  | //            throw new RuntimeException(SystemEnv.getHtmlLabelName(517545,userLanguage)); | ||||||
|  |         } | ||||||
|  |         //将加密后的数据转换为16进制数字 | ||||||
|  |         String md5code = new BigInteger(1, secretBytes).toString(16); | ||||||
|  |         // 如果生成数字未满32位,需要前面补0 | ||||||
|  |         // 不能把变量放到循环条件,值改变之后会导致条件变化。如果生成30位 只能生成31位md5 | ||||||
|  |         int tempIndex = 32 - md5code.length(); | ||||||
|  |         for (int i = 0; i < tempIndex; i++) { | ||||||
|  |             md5code = "0" + md5code; | ||||||
|  |         } | ||||||
|  |         return md5code; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public static String getCurrentTime() { | ||||||
|  |         Date newdate = new Date(); | ||||||
|  |         long datetime = newdate.getTime(); | ||||||
|  |         Timestamp timestamp = new Timestamp(datetime); | ||||||
|  |         String currenttime = (timestamp.toString()).substring(11, 13) + ":" + (timestamp.toString()).substring(14, 16) + ":" | ||||||
|  |                 + (timestamp.toString()).substring(17, 19); | ||||||
|  |         return currenttime; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public static String getCurrentDate() { | ||||||
|  |         Date newdate = new Date(); | ||||||
|  |         long datetime = newdate.getTime(); | ||||||
|  |         Timestamp timestamp = new Timestamp(datetime); | ||||||
|  |         String currentdate = (timestamp.toString()).substring(0, 4) + "-" + (timestamp.toString()).substring(5, 7) + "-" | ||||||
|  |                 + (timestamp.toString()).substring(8, 10); | ||||||
|  |         return currentdate; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * 获取当前日期时间。 YYYY-MM-DD HH:MM:SS | ||||||
|  |      * @return		当前日期时间 | ||||||
|  |      */ | ||||||
|  |     public static String getCurDateTime() { | ||||||
|  |         Date newdate = new Date(); | ||||||
|  |         long datetime = newdate.getTime(); | ||||||
|  |         Timestamp timestamp = new Timestamp(datetime); | ||||||
|  |         return (timestamp.toString()).substring(0, 19); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * 获取时间戳   格式如:19990101235959 | ||||||
|  |      * @return | ||||||
|  |      */ | ||||||
|  |     public static String getTimestamp(){ | ||||||
|  |         return getCurDateTime().replace("-", "").replace(":", "").replace(" ", ""); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public static int getIntValue(String v, int def) { | ||||||
|  |         try { | ||||||
|  |             return Integer.parseInt(v); | ||||||
|  |         } catch (Exception ex) { | ||||||
|  |             return def; | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     public static String null2String(Object s) { | ||||||
|  |         return s == null ? "" : s.toString(); | ||||||
|  | 
 | ||||||
|  |     } | ||||||
|  | } | ||||||
		Loading…
	
		Reference in New Issue