diff --git a/docs/databases/table_create_rms.sql b/docs/databases/table_create_rms.sql index bd8cc41e..859c2bdd 100644 --- a/docs/databases/table_create_rms.sql +++ b/docs/databases/table_create_rms.sql @@ -123,4 +123,109 @@ CREATE TABLE `risk_blacklist` ( `objectSid` varchar(64) DEFAULT NULL COMMENT '风险对象Sid', `objectType` int(11) DEFAULT NULL COMMENT '风险对象类型1.供应商2.仓库3.门店', PRIMARY KEY (`id`) USING BTREE -) ENGINE=InnoDB COMMENT='风险黑名单'; \ No newline at end of file +) ENGINE=InnoDB COMMENT='风险黑名单'; + + + +DROP TABLE IF EXISTS `business_risk_data`; +CREATE TABLE `business_risk_data` ( + `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'id', + `sid` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT 'sid', + `lockVersion` int(11) NULL DEFAULT 0 COMMENT '版本锁', + `createTime` timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间', + `modifyTime` timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '修改时间', + `isEnable` int(11) NULL DEFAULT 1 COMMENT '是否可用:1可用,0不可用', + `state` int(11) NULL DEFAULT 1 COMMENT '状态', + `isDelete` int(11) NULL DEFAULT 0 COMMENT '是否删除:0未删除,1已删除', + `remarks` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '备注', + `createBySid` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '创建人sid', + `updateBySid` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '修改人sid', + `addReason` varchar(300) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '列入经营异常名录原因', + `addDate` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '列入日期', + `romoveReason` varchar(256) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '移出经营异常名录原因(保留字段)', + `removeDate` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '移出日期(保留字段)', + `decisionOffice` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '作出决定机关', + `removeDecisionOffice` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '移出决定机关(保留字段)', + `buSid` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '企业时间Sid', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '任务执行数据表' ROW_FORMAT = Dynamic; + +SET FOREIGN_KEY_CHECKS = 1; + +DROP TABLE IF EXISTS `business_risk_date`; +CREATE TABLE `business_risk_date` ( + `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'id', + `sid` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT 'sid', + `lockVersion` int(11) NULL DEFAULT 0 COMMENT '版本锁', + `createTime` timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间', + `modifyTime` timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '修改时间', + `isEnable` int(11) NULL DEFAULT 1 COMMENT '是否可用:1可用,0不可用', + `state` int(11) NULL DEFAULT 1 COMMENT '状态', + `isDelete` int(11) NULL DEFAULT 0 COMMENT '是否删除:0未删除,1已删除', + `remarks` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '备注', + `createBySid` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '创建人sid', + `updateBySid` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '修改人sid', + `executionTime` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '执行时间', + `businessName` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '企业名称', + `OrderNumber` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '订单编号', + `verifyResult` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '风险编码 0代表无1代表有', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 10 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '任务执行时间表' ROW_FORMAT = Dynamic; + +SET FOREIGN_KEY_CHECKS = 1; + +DROP TABLE IF EXISTS `enterprise_information`; +CREATE TABLE `enterprise_information` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `sid` varchar(255) CHARACTER SET utf8 COLLATE utf8_croatian_ci NOT NULL COMMENT 'ids', + `enterpriseName` varchar(255) CHARACTER SET utf8 COLLATE utf8_croatian_ci NULL DEFAULT NULL COMMENT '企业名称', + `enterpriseAbbreviation` varchar(255) CHARACTER SET utf8 COLLATE utf8_croatian_ci NULL DEFAULT NULL COMMENT '企业简称', + `bankAccount` varchar(255) CHARACTER SET utf8 COLLATE utf8_croatian_ci NULL DEFAULT NULL COMMENT '银行账户', + `accountNumber` varchar(255) CHARACTER SET utf8 COLLATE utf8_croatian_ci NULL DEFAULT NULL COMMENT '账号', + `openingBankName` varchar(255) CHARACTER SET utf8 COLLATE utf8_croatian_ci NULL DEFAULT NULL COMMENT '开户行', + `juridicalPerson` varchar(255) CHARACTER SET utf8 COLLATE utf8_croatian_ci NULL DEFAULT NULL COMMENT '法人', + `businessLicenseNumber` varchar(255) CHARACTER SET utf8 COLLATE utf8_croatian_ci NULL DEFAULT NULL COMMENT '营业执照号', + `address` varchar(255) CHARACTER SET utf8 COLLATE utf8_croatian_ci NULL DEFAULT NULL COMMENT '地址', + `province` varchar(255) CHARACTER SET utf8 COLLATE utf8_croatian_ci NULL DEFAULT NULL COMMENT '省', + `city` varchar(255) CHARACTER SET utf8 COLLATE utf8_croatian_ci NULL DEFAULT NULL COMMENT '市', + `county` varchar(255) CHARACTER SET utf8 COLLATE utf8_croatian_ci NULL DEFAULT NULL COMMENT '区', + `contacts` varchar(255) CHARACTER SET utf8 COLLATE utf8_croatian_ci NULL DEFAULT NULL COMMENT '联系人', + `telephone` varchar(255) CHARACTER SET utf8 COLLATE utf8_croatian_ci NULL DEFAULT NULL COMMENT '电话', + `lockVersion` int(11) NULL DEFAULT 0 COMMENT '版本锁', + `createTime` timestamp(0) NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间', + `modifyTime` timestamp(0) NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '修改时间', + `isEnable` int(11) NULL DEFAULT 1 COMMENT '是否可用:1可用,0不可用', + `state` int(11) NULL DEFAULT 1 COMMENT '状态', + `isDelete` int(11) NULL DEFAULT 0 COMMENT '是否删除:0未删除,1已删除', + `remarks` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '备注', + `createBySid` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '创建人sid', + `updateBySid` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '修改人sid', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 14 CHARACTER SET = utf8 COLLATE = utf8_croatian_ci COMMENT = '企业信息' ROW_FORMAT = DYNAMIC; + +SET FOREIGN_KEY_CHECKS = 1; + + +DROP TABLE IF EXISTS `push_information`; +CREATE TABLE `push_information` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `sid` varchar(255) CHARACTER SET utf8 COLLATE utf8_croatian_ci NOT NULL COMMENT 'sid', + `lockVersion` int(11) NULL DEFAULT 0 COMMENT '版本锁', + `createTime` timestamp(0) NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间', + `modifyTime` timestamp(0) NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '修改时间', + `isEnable` int(11) NULL DEFAULT 1 COMMENT '是否可用:1可用,0不可用', + `state` int(11) NULL DEFAULT 1 COMMENT '状态', + `isDelete` int(11) NULL DEFAULT 0 COMMENT '是否删除:0未删除,1已删除', + `remarks` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '备注', + `createBySid` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '创建人sid', + `updateBySid` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '修改人sid', + `enterpriseName` varchar(255) CHARACTER SET utf8 COLLATE utf8_croatian_ci NULL DEFAULT NULL COMMENT '企业名称', + `contacts` varchar(255) CHARACTER SET utf8 COLLATE utf8_croatian_ci NULL DEFAULT NULL COMMENT '联系人', + `telephone` varchar(255) CHARACTER SET utf8 COLLATE utf8_croatian_ci NULL DEFAULT NULL COMMENT '电话', + `openId` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '微信公众号唯一标识', + `bankAccount` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '银行账号', + `openingBankName` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '开户行', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 12 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '推送人员表' ROW_FORMAT = Dynamic; + +SET FOREIGN_KEY_CHECKS = 1; \ No newline at end of file diff --git a/yxt_supervise/supervise-rms/supervise-rms-api/src/main/java/com/supervise/rms/api/wechat/TemplateData.java b/yxt_supervise/supervise-rms/supervise-rms-api/src/main/java/com/supervise/rms/api/wechat/TemplateData.java new file mode 100644 index 00000000..e08a392a --- /dev/null +++ b/yxt_supervise/supervise-rms/supervise-rms-api/src/main/java/com/supervise/rms/api/wechat/TemplateData.java @@ -0,0 +1,36 @@ +package com.supervise.rms.api.wechat; + +import lombok.Data; + +/** + * @author feikefei + * @create 2023-06-08-9:17 + */ +@Data +public class TemplateData { + private String value; + private String color; + + public TemplateData(String value) { + this.value = value; + color = "#FF0000"; + } + + public TemplateData(String value, String color) { + this.value = value; + this.color = color; + } + + public String getValue() { + return value; + } + public void setValue(String value) { + this.value = value; + } + public String getColor() { + return color; + } + public void setColor(String color) { + this.color = color; + } +} diff --git a/yxt_supervise/supervise-rms/supervise-rms-api/src/main/java/com/supervise/rms/api/wechat/WeChatTemplateMsg.java b/yxt_supervise/supervise-rms/supervise-rms-api/src/main/java/com/supervise/rms/api/wechat/WeChatTemplateMsg.java new file mode 100644 index 00000000..c6cf807f --- /dev/null +++ b/yxt_supervise/supervise-rms/supervise-rms-api/src/main/java/com/supervise/rms/api/wechat/WeChatTemplateMsg.java @@ -0,0 +1,56 @@ +package com.supervise.rms.api.wechat; + +import lombok.Data; + +import java.util.HashMap; +import java.util.Map; + +/** + * @author feikefei + * @create 2023-06-08-9:17 + */ +@Data +public class WeChatTemplateMsg { + private String template_id; + private String touser; + private String url; + + private String client_msg_id; + + Map miniprogram = new HashMap<>(); + + //private Miniprogram miniprogram; + private String topcolor; + private Map data; + + public String getTemplate_id() { + return template_id; + } + public void setTemplate_id(String template_id) { + this.template_id = template_id; + } + public String getTouser() { + return touser; + } + public void setTouser(String touser) { + this.touser = touser; + } + public String getUrl() { + return url; + } + public void setUrl(String url) { + this.url = url; + } + public String getTopcolor() { + return topcolor; + } + public void setTopcolor(String topcolor) { + this.topcolor = topcolor; + } + public Map getData() { + return data; + } + public void setData(Map data) { + this.data = data; + } +} diff --git a/yxt_supervise/supervise-rms/supervise-rms-biz/src/main/java/com/supervise/rms/biz/wechat/WechatRest.java b/yxt_supervise/supervise-rms/supervise-rms-biz/src/main/java/com/supervise/rms/biz/wechat/WechatRest.java new file mode 100644 index 00000000..35bc6783 --- /dev/null +++ b/yxt_supervise/supervise-rms/supervise-rms-biz/src/main/java/com/supervise/rms/biz/wechat/WechatRest.java @@ -0,0 +1,152 @@ +package com.supervise.rms.biz.wechat; + +import com.alibaba.fastjson.JSONObject; +import com.supervise.rms.api.businessriskdate.BusinessRiskDate; +import com.supervise.rms.api.pusinformation.PushInformation; +import com.supervise.rms.api.wechat.TemplateData; +import com.supervise.rms.api.wechat.WeChatTemplateMsg; +import com.supervise.rms.biz.businessriskdate.BusinessRiskDateService; +import com.supervise.rms.biz.pusinformation.PushInformationService; +import io.swagger.annotations.Api; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.client.RestTemplate; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @author feikefei + * @create 2023-06-08-10:17 + */ +@Api(tags = "测试") +@RestController +@RequestMapping("v1/wechat") +public class WechatRest { + @Autowired + private PushInformationService pushInformationService; + @Autowired + private BusinessRiskDateService businessRiskDateService; + @Value("${wechat.appId}") + private String appId; + @Value("${wechat.sppSecret}") + private String sppSecret; + @Value("${wechat.WX_URL_ACCESS_TOKEN}") + private String WX_URL_ACCESS_TOKEN; + @Value("${wechat.WX_URL_MESSAGE_SEND}") + private String WX_URL_MESSAGE_SEND; + + //0 30 9 ? * 2 每周一九点半 + @PostMapping("/sendMessage") + public void sendMessage(@RequestBody WeChatTemplateMsg data) throws Exception { + String t = "imkugi6AM3SgT-GUciOMlkhPQUbfAiooDWxslzgO4Lc"; + String accessToken = getAccessToken(appId,sppSecret); + String wxUrl = WX_URL_MESSAGE_SEND.replace("ACCESS_TOKEN", accessToken); + //查询库中openId + List pushInformations = pushInformationService.selectPushInformationList(); + for (PushInformation pushInformation : pushInformations) { + //查询库中查询到所有企业的信息 + List businessRiskDate = businessRiskDateService.selectBusinessRiskDateByName(pushInformation.getEnterpriseName()); + BusinessRiskDate riskDate = businessRiskDate.get(0); + RestTemplate restTemplate = new RestTemplate(); + Map sendBody = new HashMap<>(); + setTemplateStyle(riskDate,sendBody,t,wxUrl,pushInformation,restTemplate,riskDate.getVerifyResult(),businessRiskDate); + } +// String openId="o7sGD6r8GP3VEjA9iJz3us6Xg0aM"; +// // 模板参数 +// Map sendMag = new HashMap(); +// // openId代表一个唯一微信用户,即微信消息的接收人 +// //String openId = "oLcw_5ti_iJpwibmL0QxfK2ZG9qQ"; +// // 公众号的模板id(也有相应的接口可以查询到) +// String templateId = "fVgBuwpLC43YkeGWfl1Vw0mW0Qu5WP2giD77TfKAEc4"; +//// String t = "EOXA31TBtu_v8wHRq4OBo2kTUeBtiIOi4MIEpWNP4bM"; +// // 微信的基础accessToken +//// String accessToken = getAccessToken(appId,sppSecret); +//// String wxUrl = WX_URL_MESSAGE_SEND.replace("ACCESS_TOKEN", accessToken); +// /** +// * 其他模板可以从模板库中自己添加 +// * 模板ID +// * B0YStqTYdjHhY9Da9Sy2NM7HXxxxxxxxxxxxxxx +// * 开发者调用模板消息接口时需提供模板ID +// * 标题 +// * 产品兑付成功提醒 +// * 行业 +// * 金融业 - 证券|基金|理财|信托 +// * 详细内容 +// * {{first.DATA}} +// * 产品名称:{{keyword1.DATA}} +// * 当期兑付本金:{{keyword2.DATA}} +// * 当期兑付利息:{{keyword3.DATA}} +// * 已兑付期数:{{keyword4.DATA}} +// * 兑付日期:{{keyword5.DATA}} +// * {{remark.DATA}} +// */ +// sendMag.put("buName", new TemplateData("石家庄瀚川商贸有限公司")); +// sendMag.put("addReason", new TemplateData("未依照《企业信息公示暂行条例》第八条规定的期限公示年度报告的")); +// sendMag.put("addDate", new TemplateData("2017-07-03 00:00:00")); +// sendMag.put("romoveReason", new TemplateData("")); +// sendMag.put("removeDate", new TemplateData("")); +// sendMag.put("decisionOffice", new TemplateData("监督管理局")); +// sendMag.put("removeDecisionOffice", new TemplateData("123456")); +//// Map miniprogram = new HashMap<>(); +//// miniprogram.put("appid","wx0f6062989ab28c91"); +//// miniprogram.put("pagepath","pages/index/index"); +// RestTemplate restTemplate = new RestTemplate(); +// //拼接base参数 +// Map sendBody = new HashMap<>(); +//// sendBody.put("miniprogram",miniprogram); +// sendBody.put("touser", openId); // openId +// sendBody.put("url", "www.baidu.com"); // 点击模板信息跳转地址 +// sendBody.put("topcolor", "#FF0000"); // 顶色 +// sendBody.put("data", sendMag); // 模板参数 +// sendBody.put("template_id", t);// 模板Id +// +// ResponseEntity forEntity = restTemplate.postForEntity(wxUrl, sendBody, String.class); +// JSONObject jsonObject = JSONObject.parseObject(forEntity.getBody()); +// String messageCode = jsonObject.getString("errcode"); +// String msgId = jsonObject.getString("msgid"); +// System.out.println("messageCode : " + messageCode + ", msgId: " +msgId); +// //return forEntity.getBody(); + } + + public String getAccessToken(String appId,String appsecret){ + String url = WX_URL_ACCESS_TOKEN.replace("APPID", appId).replace("APPSECRET", appsecret); + RestTemplate restTemplate=new RestTemplate(); + String re= restTemplate.getForObject(url,String.class); + JSONObject jsonObject= JSONObject.parseObject(re); + String at=jsonObject.getString("access_token"); + return at; + } + + public void setTemplateStyle(BusinessRiskDate riskDate, Map sendBody,String t,String wxUrl,PushInformation pushInformation,RestTemplate restTemplate,String verifyResult,List businessRiskDate){ + Map sendMag = new HashMap<>(); + sendMag.put("thing2", new TemplateData(riskDate.getBusinessName())); + if (verifyResult.equals("0")){ + sendMag.put("thing5", new TemplateData("该公司暂无风险")); + }else { + sendMag.put("thing5", new TemplateData("该企业有"+businessRiskDate.size())+"条风险"); + } + sendMag.put("time6", new TemplateData(riskDate.getExecutionTime())); + Map miniprogram = new HashMap<>(); + miniprogram.put("appid","wx11565021714ba796"); + miniprogram.put("pagepath","pages/index/enterpriseRisk?id=1111"); + //拼接base参数 ?businessName="+riskDate.getBusinessName()+"&executionTime="+riskDate.getExecutionTime() + sendBody.put("miniprogram",miniprogram); + sendBody.put("touser", pushInformation.getOpenId()); // openId + sendBody.put("url", ""); // 点击模板信息跳转地址 + sendBody.put("topcolor", "#FF0000"); // 顶色 + sendBody.put("data", sendMag); // 模板参数 + sendBody.put("template_id", t);// 模板Id + ResponseEntity forEntity = restTemplate.postForEntity(wxUrl, sendBody, String.class); + JSONObject jsonObject = JSONObject.parseObject(forEntity.getBody()); + String messageCode = jsonObject.getString("errcode"); + String msgId = jsonObject.getString("msgid"); + System.out.println("messageCode : " + messageCode + ", msgId: " +msgId); + } +}