Merge branch 'kjs' of http://ufidahz.com.cn:9015/root/kangarooDataCenterV3 into kjs
# Conflicts: # webapp/src/main/java/com/hzya/frame/webapp/entrance/controler/EntranceController.java
This commit is contained in:
commit
1885e7f670
|
@ -0,0 +1,111 @@
|
|||
package com.hzya.frame.plugin.kjs.plugin;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.hzya.frame.base.PluginBaseEntity;
|
||||
import com.hzya.frame.plugin.kjs.service.IDingTalkInitService;
|
||||
import com.hzya.frame.web.entity.BaseResult;
|
||||
import com.hzya.frame.web.entity.JsonResultEntity;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
/**
|
||||
* @Description 钉钉组织架构初始化
|
||||
* @Author xiangerlin
|
||||
* @Date 2024/9/2 16:19
|
||||
**/
|
||||
public class DingTalkInitPluginInitializer extends PluginBaseEntity {
|
||||
Logger logger = LoggerFactory.getLogger(getClass());
|
||||
|
||||
@Autowired
|
||||
private IDingTalkInitService dingTalkService;
|
||||
/***
|
||||
* 插件初始化方法
|
||||
* @Author 👻👻👻👻👻👻👻👻 gjh
|
||||
* @Date 2023-08-02 10:48
|
||||
* @Param []
|
||||
* @return void
|
||||
**/
|
||||
@Override
|
||||
public void initialize() {
|
||||
logger.info(getPluginLabel() + "執行初始化方法initialize()");
|
||||
}
|
||||
|
||||
/****
|
||||
* 插件销毁方法
|
||||
* @author 👻👻👻👻👻👻👻👻 gjh
|
||||
* @date 2023-08-02 10:48
|
||||
* @return void
|
||||
**/
|
||||
@Override
|
||||
public void destroy() {
|
||||
logger.info(getPluginLabel() + "執行銷毀方法destroy()");
|
||||
}
|
||||
|
||||
/****
|
||||
* 插件的ID
|
||||
* @author 👻👻👻👻👻👻👻👻 gjh
|
||||
* @date 2023-08-02 10:48
|
||||
* @return void
|
||||
**/
|
||||
@Override
|
||||
public String getPluginId() {
|
||||
return "kjsDingTalkInitPlugin";
|
||||
}
|
||||
|
||||
/****
|
||||
* 插件的名称
|
||||
* @author 👻👻👻👻👻👻👻👻 gjh
|
||||
* @date 2023-08-02 10:48
|
||||
* @return void
|
||||
**/
|
||||
@Override
|
||||
public String getPluginName() {
|
||||
return "kjs钉钉部门人员初始化插件";
|
||||
}
|
||||
|
||||
/****
|
||||
* 插件的显示值
|
||||
* @author 👻👻👻👻👻👻👻👻 gjh
|
||||
* @date 2023-08-02 10:48
|
||||
* @return void
|
||||
**/
|
||||
@Override
|
||||
public String getPluginLabel() {
|
||||
return "kjs钉钉部门人员初始化插件";
|
||||
}
|
||||
|
||||
/***
|
||||
* 插件类型 1、场景插件
|
||||
* @Author 👻👻👻👻👻👻👻👻 gjh
|
||||
* @Date 2023-08-02 14:01
|
||||
* @Param []
|
||||
* @return java.lang.String
|
||||
**/
|
||||
@Override
|
||||
public String getPluginType() {
|
||||
return "1";
|
||||
}
|
||||
|
||||
/***
|
||||
* 执行业务代码
|
||||
* @Author 👻👻👻👻👻👻👻👻 gjh
|
||||
* @Date 2023-08-07 11:20
|
||||
* @param requestJson 执行业务代码的参数
|
||||
* @return void
|
||||
**/
|
||||
@Override
|
||||
public JsonResultEntity executeBusiness(JSONObject requestJson) throws Exception {
|
||||
logger.info("开始执行"+getPluginName()+requestJson.toString());
|
||||
new Thread(()->{
|
||||
String type = requestJson.getString("type");
|
||||
Long deptId = requestJson.getLong("deptId");
|
||||
if ("dept".equals(type)){
|
||||
dingTalkService.deptInit(deptId);
|
||||
}else if ("user".equals(type)){
|
||||
dingTalkService.userInit(deptId);
|
||||
}
|
||||
}).start();
|
||||
return BaseResult.getSuccessMessageEntity("成功");
|
||||
}
|
||||
}
|
|
@ -10,8 +10,10 @@ import com.dingtalk.api.response.OapiV2UserGetResponse;
|
|||
import com.dingtalk.open.app.api.message.GenericOpenDingTalkEvent;
|
||||
import com.hzya.frame.dingtalk.enums.OrgEventEnum;
|
||||
import com.hzya.frame.dingtalk.service.IDingTalkService;
|
||||
import com.hzya.frame.uuid.UUIDUtils;
|
||||
import com.hzya.frame.web.entity.BaseResult;
|
||||
import com.hzya.frame.web.entity.JsonResultEntity;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
@ -19,9 +21,8 @@ import shade.com.alibaba.fastjson2.JSONArray;
|
|||
import shade.com.alibaba.fastjson2.JSONObject;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.HashMap;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @Description 通讯录事件订阅消费者
|
||||
|
@ -31,30 +32,30 @@ import java.util.Map;
|
|||
public class GenericEventConsumer {
|
||||
Logger logger = LoggerFactory.getLogger(getClass());
|
||||
//中台应用
|
||||
private static final String APPCODE = "800004";
|
||||
private static final String URL = "http://127.0.0.1:9999/kangarooDataCenterV3/entranceController/externalCallInterface";
|
||||
public static final String APPCODE = "800004";
|
||||
public static final String URL = "http://127.0.0.1:9999/kangarooDataCenterV3/entranceController/externalCallInterface";
|
||||
//中台 publicKey
|
||||
private static final String PUBLICKEY = "ZJYAWb7lhAUTYqekPkU+uHJv1/ObJxb7dT7sD8HPRDGAgyhCe7eDIk+3zDUT+v578prj";
|
||||
public static final String PUBLICKEY = "ZJYAWb7lhAUTYqekPkU+uHJv1/ObJxb7dT7sD8HPRDGAgyhCe7eDIk+3zDUT+v578prj";
|
||||
//中台secretKey
|
||||
private static final String SECRETKEY = "fviZnLBsQUAGF8w8FSOdJi7XlIm/XAZclMxRagDLfTyJFlvnIBF3w66Hrpfzs8cYj3JzOP8MtA1LSGvL+2BWG8c/o7DKi92S4mr3zcGearA=";
|
||||
public static final String SECRETKEY = "fviZnLBsQUAGF8w8FSOdJi7XlIm/XAZclMxRagDLfTyJFlvnIBF3w66Hrpfzs8cYj3JzOP8MtA1LSGvL+2BWG8c/o7DKi92S4mr3zcGearA=";
|
||||
//mdm通用新增接口编码
|
||||
private static final String MDMADDCODE = "8000040022";
|
||||
public static final String MDMADDCODE = "8000040022";
|
||||
//mdm通用删除接口编码
|
||||
private static final String MDMREMOVECODE = "8000040024";
|
||||
public static final String MDMREMOVECODE = "8000040024";
|
||||
//主数据人员钉钉档案编码
|
||||
private static final String DDUSERMDMCODE = "10015";
|
||||
public static final String DDUSERMDMCODE = "10015";
|
||||
//主数据钉钉部门档案编码
|
||||
private static final String DDDEPTMDMCODE = "10016";
|
||||
public static final String DDDEPTMDMCODE = "10016";
|
||||
//钉钉应用编码
|
||||
private static final String DDAPPCODE = "800005";
|
||||
public static final String DDAPPCODE = "800005";
|
||||
//钉钉 publicKey
|
||||
private static final String DDPUBLICKEY = "ZJYAn/EBWEhLUMezDLU4iZ1vTO9kc6pM6XrYLajnqnK60Q9Ce7eDIk+3zDUT+v578prj";
|
||||
public static final String DDPUBLICKEY = "ZJYAn/EBWEhLUMezDLU4iZ1vTO9kc6pM6XrYLajnqnK60Q9Ce7eDIk+3zDUT+v578prj";
|
||||
//钉钉secretKey
|
||||
private static final String DDSECRETKEY = "ctMIYyauwoKSFeU4tg5gH1aWC/3OJK6HsKJrSR0oyDmdmdvRNgdoTzX0C1OQ+whrj3JzOP8MtA1LSGvL+2BWG8c/o7DKi92S4mr3zcGearA=";
|
||||
public static final String DDSECRETKEY = "ctMIYyauwoKSFeU4tg5gH1aWC/3OJK6HsKJrSR0oyDmdmdvRNgdoTzX0C1OQ+whrj3JzOP8MtA1LSGvL+2BWG8c/o7DKi92S4mr3zcGearA=";
|
||||
//获取钉钉用户详情接口编码
|
||||
private static final String GETUSERAPPCODE="8000050001";
|
||||
public static final String GETUSERAPPCODE="8000050001";
|
||||
//获取钉钉部门详情接口编码
|
||||
private static final String GETDETPAPPCODE="8000050002";
|
||||
public static final String GETDETPAPPCODE="8000050002";
|
||||
/**
|
||||
* 消费通讯录事件订阅消息
|
||||
*
|
||||
|
@ -100,7 +101,7 @@ public class GenericEventConsumer {
|
|||
//获取用户详情
|
||||
String userRes = getUserById(String.valueOf(userIds.get(i)));
|
||||
//保存钉钉用户到mdm
|
||||
String userMdmRes = createUser(userRes);
|
||||
String userMdmRes = createUser(userRes,eventType);
|
||||
}
|
||||
}else if ("dept".equals(type)){
|
||||
JSONArray deptIdArr = bizData.getJSONArray("deptId");
|
||||
|
@ -153,46 +154,83 @@ public class GenericEventConsumer {
|
|||
}
|
||||
|
||||
//保存用户到mdm
|
||||
private static String createUser(String userRes) {
|
||||
private String createUser(String userRes,String eventType) {
|
||||
JsonResultEntity jsonResult = JSONObject.parseObject(userRes,JsonResultEntity.class);
|
||||
if (jsonResult.isFlag()){
|
||||
shade.com.alibaba.fastjson2.JSONObject attribute = (shade.com.alibaba.fastjson2.JSONObject) jsonResult.getAttribute();
|
||||
String attrStr = attribute.toString();
|
||||
OapiV2UserGetResponse rsp = JSONObject.parseObject(attrStr, OapiV2UserGetResponse.class);
|
||||
if (rsp.isSuccess()){
|
||||
OapiV2UserGetResponse.UserGetResponse userInfo = rsp.getResult();
|
||||
String result = attribute.getString("result");
|
||||
OapiV2UserGetResponse.UserGetResponse userInfo = com.alibaba.fastjson.JSONObject.parseObject(result,OapiV2UserGetResponse.UserGetResponse.class);
|
||||
//OapiV2UserGetResponse.UserGetResponse userInfo = dingtalkService.getUserById(userIds.getString(i));
|
||||
Map<String,Object> mdmMap = new LinkedHashMap<>();
|
||||
mdmMap.put("mdmCode",DDUSERMDMCODE);
|
||||
mdmMap.put("optionName","系统管理员");
|
||||
Map<String,Object> userMap = new LinkedHashMap<>();
|
||||
userMap.put("data_id", userInfo.getUserid());
|
||||
userMap.put("unionid",userInfo.getUnionid());
|
||||
userMap.put("userid",userInfo.getUserid());
|
||||
userMap.put("name",userInfo.getName());
|
||||
userMap.put("mobile",userInfo.getMobile());
|
||||
userMap.put("job_number",userInfo.getJobNumber());
|
||||
userMap.put("title",userInfo.getTitle());
|
||||
userMap.put("email",userInfo.getEmail());
|
||||
userMap.put("org_email",userInfo.getOrgEmail());
|
||||
if (null != userInfo.getHiredDate()){
|
||||
userMap.put("hired_date", DateUtil.date(userInfo.getHiredDate()));
|
||||
}
|
||||
mdmMap.put("mdm_dd_user",userMap);
|
||||
//保存到人员主数据
|
||||
Map<String, String> headerMap = MapBuilder.<String, String>create(true)
|
||||
.put("apiCode", MDMADDCODE)//中台接口
|
||||
.put("publicKey",DDPUBLICKEY)//钉钉应用
|
||||
.put("secretKey",DDSECRETKEY)//钉钉应用
|
||||
.put("appId",APPCODE)//中台应用
|
||||
.build();
|
||||
String body = HttpRequest.post(URL).addHeaders(headerMap).body(com.alibaba.fastjson.JSONObject.toJSONString(mdmMap)).timeout(60000).execute().body();
|
||||
return body;
|
||||
createMdmUser(eventType, userInfo);
|
||||
// return body;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public void createMdmUser(String eventType, OapiV2UserGetResponse.UserGetResponse userInfo) {
|
||||
Map<String,Object> mdmMap = new LinkedHashMap<>();
|
||||
mdmMap.put("mdmCode",DDUSERMDMCODE);
|
||||
mdmMap.put("optionName","系统管理员");
|
||||
Map<String,Object> userMap = new LinkedHashMap<>();
|
||||
userMap.put("data_id", userInfo.getUserid());
|
||||
userMap.put("unionid", userInfo.getUnionid());
|
||||
userMap.put("userid", userInfo.getUserid());
|
||||
userMap.put("name", userInfo.getName());
|
||||
userMap.put("mobile", userInfo.getMobile());
|
||||
userMap.put("job_number", userInfo.getJobNumber());
|
||||
userMap.put("title", userInfo.getTitle());
|
||||
userMap.put("email", userInfo.getEmail());
|
||||
userMap.put("org_email", userInfo.getOrgEmail());
|
||||
userMap.put("event_type", eventType);
|
||||
userMap.put("dept_id_list", userInfo.getDeptIdList());
|
||||
if (null != userInfo.getHiredDate()){
|
||||
userMap.put("hired_date", DateUtil.format(DateUtil.date(userInfo.getHiredDate()),"yyyy-MM-dd"));
|
||||
}
|
||||
List<Map<String,Object>> postList = new LinkedList<>();
|
||||
//处理职位信息
|
||||
List<OapiV2UserGetResponse.DeptPosition> deptPositionList = userInfo.getDeptPositionList();
|
||||
if (CollectionUtils.isNotEmpty(deptPositionList) && deptPositionList.size()>1){
|
||||
//用stream方式给deptOrderList排序,排序字段为order
|
||||
List<OapiV2UserGetResponse.DeptOrder> deptOrderList = userInfo.getDeptOrderList();
|
||||
// 使用Stream API对deptOrderList按order字段排序
|
||||
List<OapiV2UserGetResponse.DeptOrder> sortedDeptOrderList = deptOrderList.stream()
|
||||
.sorted(Comparator.comparing(OapiV2UserGetResponse.DeptOrder::getOrder))
|
||||
.collect(Collectors.toList());
|
||||
for (OapiV2UserGetResponse.DeptOrder deptOrder : sortedDeptOrderList) {
|
||||
for (OapiV2UserGetResponse.DeptPosition deptPosition : deptPositionList) {
|
||||
if (deptPosition.getDeptId().equals(deptOrder.getDeptId())){
|
||||
Map<String,Object> positionMap = new LinkedHashMap<>();
|
||||
positionMap.put("dept_id",deptPosition.getDeptId());
|
||||
positionMap.put("title",deptPosition.getTitle());
|
||||
postList.add(positionMap);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}else if (CollectionUtils.isNotEmpty(deptPositionList) && deptPositionList.size() == 1){
|
||||
OapiV2UserGetResponse.DeptPosition deptPosition = deptPositionList.get(0);
|
||||
Map<String,Object> positionMap = new LinkedHashMap<>();
|
||||
positionMap.put("dept_id",deptPosition.getDeptId());
|
||||
positionMap.put("title",StrUtil.isEmpty(deptPosition.getTitle()) ? userInfo.getTitle():deptPosition.getTitle());
|
||||
positionMap.put("data_id", UUIDUtils.getUUID());
|
||||
postList.add(positionMap);
|
||||
}
|
||||
mdmMap.put("mdm_dd_user",userMap);
|
||||
mdmMap.put("mdm_dd_user_position",postList);
|
||||
//保存到人员主数据
|
||||
Map<String, String> headerMap = MapBuilder.<String, String>create(true)
|
||||
.put("apiCode", MDMADDCODE)//中台接口
|
||||
.put("publicKey",DDPUBLICKEY)//钉钉应用
|
||||
.put("secretKey",DDSECRETKEY)//钉钉应用
|
||||
.put("appId",APPCODE)//中台应用
|
||||
.build();
|
||||
String body = HttpRequest.post(URL).addHeaders(headerMap).body(com.alibaba.fastjson.JSONObject.toJSONString(mdmMap)).timeout(60000).execute().body();
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存部门到mdm
|
||||
* @param deptRes
|
||||
|
@ -203,8 +241,6 @@ public class GenericEventConsumer {
|
|||
JsonResultEntity jsonResult = JSONObject.parseObject(deptRes,JsonResultEntity.class);
|
||||
if (jsonResult.isFlag()){
|
||||
shade.com.alibaba.fastjson2.JSONObject attribute = (shade.com.alibaba.fastjson2.JSONObject) jsonResult.getAttribute();
|
||||
String attrStr = attribute.toString();
|
||||
OapiV2DepartmentGetResponse rsp = JSONObject.parseObject(attrStr,OapiV2DepartmentGetResponse.class);
|
||||
String result = attribute.getString("result");
|
||||
OapiV2DepartmentGetResponse.DeptGetResponse deptInfo = com.alibaba.fastjson.JSONObject.parseObject(result,OapiV2DepartmentGetResponse.DeptGetResponse.class);
|
||||
//OapiV2DepartmentGetResponse.DeptGetResponse deptInfo = dingtalkService.getDeptById(deptIdArr.getLong(i));
|
||||
|
|
|
@ -0,0 +1,23 @@
|
|||
package com.hzya.frame.plugin.kjs.service;
|
||||
|
||||
/**
|
||||
* @Description 钉钉部门、人员初始化
|
||||
* @Author xiangerlin
|
||||
* @Date 2024/9/2 16:24
|
||||
**/
|
||||
public interface IDingTalkInitService {
|
||||
/**
|
||||
* 部门初始化,仅初始化部门
|
||||
* 这里只会用一次,所以直接调用钉钉原生接口
|
||||
* @return
|
||||
*/
|
||||
String deptInit(Long deptId);
|
||||
|
||||
/**
|
||||
* 部门、人员初始化
|
||||
* 这里只会用一次,所以直接调用钉钉原生接口
|
||||
* @param deptId 部门id
|
||||
* @return
|
||||
*/
|
||||
String userInit(Long deptId);
|
||||
}
|
|
@ -81,12 +81,12 @@ public class DeliveryOrderPluginServiceImpl extends KjsPluginBaseService impleme
|
|||
DeliveryOrderDTO deliveryOrderDTO = DeliveryMapper.INSTANCE.deliveryEntityToDto(order);
|
||||
//发货单表体entity转dto
|
||||
List<DeliveryDetailDTO> deliveryDetailList = DeliveryMapper.INSTANCE.deliveryDetailListToDto(detailList);
|
||||
deliveryOrderDTO.setItesm(deliveryDetailList);
|
||||
deliveryOrderDTO.setItems(deliveryDetailList);
|
||||
String reqParams = JSONObject.toJSONString(deliveryOrderDTO);
|
||||
logger.info("发货单请求参数:{}",reqParams);
|
||||
//调用wms接口
|
||||
Map<String, String> headerMap = MapBuilder.<String, String>create(true)
|
||||
.put("apiCode", "8000080006")
|
||||
.put("apiCode", "8000080008")
|
||||
.put("publicKey","ZJYAWb7lhAUTYqekPkU+uHJv1/ObJxb7dT7sD8HPRDGAgyhCe7eDIk+3zDUT+v578prj")
|
||||
.put("secretKey","fviZnLBsQUAGF8w8FSOdJi7XlIm/XAZclMxRagDLfTyJFlvnIBF3w66Hrpfzs8cYj3JzOP8MtA1LSGvL+2BWG8c/o7DKi92S4mr3zcGearA=")
|
||||
.put("appId","800008")
|
||||
|
|
|
@ -0,0 +1,135 @@
|
|||
package com.hzya.frame.plugin.kjs.service.impl;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.map.MapBuilder;
|
||||
import cn.hutool.http.HttpRequest;
|
||||
import com.dingtalk.api.DefaultDingTalkClient;
|
||||
import com.dingtalk.api.DingTalkClient;
|
||||
import com.dingtalk.api.request.OapiV2DepartmentListsubRequest;
|
||||
import com.dingtalk.api.request.OapiV2UserListRequest;
|
||||
import com.dingtalk.api.response.OapiV2DepartmentGetResponse;
|
||||
import com.dingtalk.api.response.OapiV2DepartmentListsubResponse;
|
||||
import com.dingtalk.api.response.OapiV2UserGetResponse;
|
||||
import com.dingtalk.api.response.OapiV2UserListResponse;
|
||||
import com.hzya.frame.dingtalk.enums.OrgEventEnum;
|
||||
import com.hzya.frame.dingtalk.service.IDingTalkService;
|
||||
import com.hzya.frame.dingtalk.util.DingTalkAccessToken;
|
||||
import com.hzya.frame.plugin.kjs.service.GenericEventConsumer;
|
||||
import com.hzya.frame.plugin.kjs.service.IDingTalkInitService;
|
||||
import com.taobao.api.ApiException;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* @Description 钉钉部门、人员初始化
|
||||
* @Author xiangerlin
|
||||
* @Date 2024/9/2 16:24
|
||||
**/
|
||||
public class DingTalkInitServiceImpl implements IDingTalkInitService {
|
||||
@Value("${dingtalk.appKey}")
|
||||
private String appKey;
|
||||
@Value("${dingtalk.appSecret}")
|
||||
private String appSecret;
|
||||
|
||||
@Autowired
|
||||
private IDingTalkService dingTalkService;
|
||||
|
||||
@Autowired
|
||||
private GenericEventConsumer commonEventConsumer;
|
||||
|
||||
/**
|
||||
* 部门初始化,仅初始化部门
|
||||
* 这里只会用一次,所以直接调用钉钉原生接口
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public String deptInit(Long deptId) {
|
||||
List<Long> deptIdList = new LinkedList<>();
|
||||
List<OapiV2DepartmentListsubResponse.DeptBaseResponse> deptBaseResponseList = new LinkedList<>();
|
||||
recursiveDept(deptId, appKey, appSecret,deptIdList,deptBaseResponseList);
|
||||
System.out.println(deptIdList.size());
|
||||
if (CollectionUtils.isNotEmpty(deptIdList) && deptIdList.size() == deptBaseResponseList.size()){
|
||||
for (OapiV2DepartmentListsubResponse.DeptBaseResponse resp : deptBaseResponseList) {
|
||||
Map<String,Object> mdmMap = new LinkedHashMap<>();
|
||||
mdmMap.put("mdmCode",GenericEventConsumer.DDDEPTMDMCODE);
|
||||
mdmMap.put("optionName","系统管理员");
|
||||
Map<String,Object> deptMap = new LinkedHashMap<>();
|
||||
deptMap.put("dept_id",resp.getDeptId());
|
||||
deptMap.put("data_id",resp.getDeptId());
|
||||
deptMap.put("name",resp.getName());
|
||||
deptMap.put("parent_id",resp.getParentId());
|
||||
mdmMap.put("mdm_dd_dept",deptMap);
|
||||
//保存部门到主数据
|
||||
Map<String, String> headerMap = MapBuilder.<String, String>create(true)
|
||||
.put("apiCode", GenericEventConsumer.MDMADDCODE)//中台接口
|
||||
.put("publicKey",GenericEventConsumer.DDPUBLICKEY)//钉钉应用
|
||||
.put("secretKey",GenericEventConsumer.DDSECRETKEY)//钉钉应用
|
||||
.put("appId",GenericEventConsumer.APPCODE)//中台应用
|
||||
.build();
|
||||
String body = HttpRequest.post(GenericEventConsumer.URL).addHeaders(headerMap).body(com.alibaba.fastjson.JSONObject.toJSONString(mdmMap)).timeout(60000).execute().body();
|
||||
System.out.println(body);
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private void queryPageUser(OapiV2UserListRequest req,List<OapiV2UserListResponse.ListUserResponse> userList) {
|
||||
boolean hasMore = true;
|
||||
do {
|
||||
hasMore = false;
|
||||
OapiV2UserListResponse.PageResult pageResult = dingTalkService.getUserListByDeptId(req, appKey, appSecret);
|
||||
hasMore = pageResult.getHasMore();
|
||||
req.setCursor(pageResult.getNextCursor());
|
||||
userList.addAll(pageResult.getList());
|
||||
}while (hasMore);
|
||||
}
|
||||
|
||||
/**
|
||||
* 人员初始化
|
||||
* @param deptId 部门id
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public String userInit(Long deptId) {
|
||||
List<Long> deptIdList = new LinkedList<>();
|
||||
List<OapiV2DepartmentListsubResponse.DeptBaseResponse> deptBaseResponseList = new LinkedList<>();
|
||||
recursiveDept(deptId, appKey, appSecret,deptIdList,deptBaseResponseList);
|
||||
System.out.println(deptIdList.size());
|
||||
if (CollectionUtils.isNotEmpty(deptIdList)){
|
||||
for (Long id : deptIdList) {
|
||||
List<OapiV2UserListResponse.ListUserResponse> userList = new LinkedList<>();
|
||||
//查询部门下人员信息
|
||||
OapiV2UserListRequest req = new OapiV2UserListRequest();
|
||||
req.setDeptId(id);
|
||||
req.setCursor(0L);
|
||||
queryPageUser(req,userList);
|
||||
if (CollectionUtils.isNotEmpty(userList)){
|
||||
for (OapiV2UserListResponse.ListUserResponse resp : userList) {
|
||||
//查询user详情
|
||||
OapiV2UserGetResponse.UserGetResponse userGetResponse = dingTalkService.getUserById(resp.getUserid(), appKey, appSecret);
|
||||
commonEventConsumer.createMdmUser(OrgEventEnum.USER_MODIFY_ORG.getCode(), userGetResponse);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private void recursiveDept(Long deptId,String appKey,String appSecret,List<Long> deptIdList,List<OapiV2DepartmentListsubResponse.DeptBaseResponse> deptBaseResponseList){
|
||||
if (deptId.longValue() != 1L){
|
||||
deptIdList.add(deptId);
|
||||
}
|
||||
//1、查询部门档案
|
||||
List<OapiV2DepartmentListsubResponse.DeptBaseResponse> deptList = dingTalkService.getDeptList(deptId, appKey, appSecret);
|
||||
if (CollectionUtils.isNotEmpty(deptList)){
|
||||
for (OapiV2DepartmentListsubResponse.DeptBaseResponse deptBaseResponse : deptList) {
|
||||
System.out.println(deptBaseResponse.getName());
|
||||
deptBaseResponseList.add(deptBaseResponse);
|
||||
recursiveDept(deptBaseResponse.getDeptId(),appKey,appSecret,deptIdList,deptBaseResponseList);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -51,6 +51,7 @@ public class KjsPluginBaseService {
|
|||
taskLivingDetailsService.saveLogToFail(taskLivingDetail);
|
||||
}
|
||||
}else {
|
||||
taskLivingDetail.setId(integration_task_living_details_id);
|
||||
if (flag){
|
||||
//如果是重试 成功调这个方法
|
||||
taskLivingDetailsService.saveLogFailToSuccess(taskLivingDetail);
|
||||
|
|
|
@ -75,17 +75,21 @@ public class MomOrderPluginServiceImpl extends KjsPluginBaseService implements I
|
|||
//查询生产订单明细表
|
||||
MomOrderDetailEntity detailEntity = new MomOrderDetailEntity();
|
||||
detailEntity.setMoId(order.getMoId());
|
||||
if (StrUtil.isEmpty(id)){
|
||||
detailEntity.setStartTime(startTime);
|
||||
detailEntity.setEndTime(endTime);
|
||||
}
|
||||
detailEntity.setDataSourceCode(datasourceCode);
|
||||
List<MomOrderDetailEntity> detailList = momOrderDetailService.query(detailEntity);
|
||||
//表头转换dto
|
||||
MomOrderDTO momOrderDTO = MomOrderMapper.INSTANCE.momOrderEntityToDto(order);
|
||||
//表体转换dto
|
||||
List<MomOrderDetailDTO> momOrderDetailList = MomOrderMapper.INSTANCE.momOrderDetailListToDto(detailList);
|
||||
momOrderDTO.setItesm(momOrderDetailList);
|
||||
momOrderDTO.setItems(momOrderDetailList);
|
||||
String reqParam = JSONObject.toJSONString(momOrderDTO);
|
||||
logger.info("u8生产订单传wms请求参数:{}",reqParam);
|
||||
logger.info("u8生产订单传wms请求参数:{}",reqParam);
|
||||
Map<String, String> headerMap = MapBuilder.<String, String>create(true)
|
||||
.put("apiCode", "8000080006")
|
||||
.put("apiCode", "8000080007")
|
||||
.put("publicKey","ZJYAWb7lhAUTYqekPkU+uHJv1/ObJxb7dT7sD8HPRDGAgyhCe7eDIk+3zDUT+v578prj")
|
||||
.put("secretKey","fviZnLBsQUAGF8w8FSOdJi7XlIm/XAZclMxRagDLfTyJFlvnIBF3w66Hrpfzs8cYj3JzOP8MtA1LSGvL+2BWG8c/o7DKi92S4mr3zcGearA=")
|
||||
.put("appId","800008")
|
||||
|
|
|
@ -5,19 +5,22 @@ logging:
|
|||
root: info
|
||||
encodings: UTF-8
|
||||
file:
|
||||
# 日志保存路径
|
||||
path: /Users/apple/Desktop/log/local
|
||||
# 日志保存路径
|
||||
path: /Users/xiangerlin/work/app/logs/kjs
|
||||
spring:
|
||||
datasource:
|
||||
dynamic:
|
||||
datasource:
|
||||
master:
|
||||
url: jdbc:mysql://ufidahz.com.cn:9014/businesscenter?serverTimezone=UTC&useUnicode=true&characterEncoding=UTF8&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowLoadLocalInfile=false&autoReconnect=true&failOverReadOnly=false&connectTimeout=30000&socketTimeout=30000&autoReconnectForPools=true
|
||||
url: jdbc:mysql://ufidahz.com.cn:9014/businesscenter_kjs?serverTimezone=UTC&useUnicode=true&characterEncoding=UTF8&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowLoadLocalInfile=false&autoReconnect=true&failOverReadOnly=false&connectTimeout=30000&socketTimeout=30000&autoReconnectForPools=true
|
||||
username: root
|
||||
password: 62e4295b615a30dbf3b8ee96f41c820b
|
||||
driver-class-name: com.mysql.jdbc.Driver # 3.2.0开始支持SPI可省略此配置
|
||||
savefile:
|
||||
# 文件保存路径
|
||||
path: /Users/apple/Desktop/log/local
|
||||
zt:
|
||||
url: http://127.0.0.1:9999/kangarooDataCenterV3/entranceController/externalCallInterface
|
||||
# 文件保存路径
|
||||
path: /Users/xiangerlin/work/app/file/kjs
|
||||
dingtalk:
|
||||
appKey: dingq3vbsswvyujiuwa7
|
||||
appSecret: m4IRNcKQn-W9QBLERHWt0iW2hSirvxPS684xiNw-4QFMNg2gsBCur9T4QMvvAR4I
|
||||
appId: dd39187a-079a-466c-b4b7-9ef3172e9e61
|
||||
agentId: 3209295620 appkey:dingbltm9wszcl7hoxyg
|
||||
|
|
|
@ -3,4 +3,5 @@
|
|||
<beans default-autowire="byName">
|
||||
<bean name="deliveryOrderPluginInitializer" class="com.hzya.frame.plugin.kjs.plugin.DeliveryOrderPluginInitializer" />
|
||||
<bean name="momOrderPluginInitializer" class="com.hzya.frame.plugin.kjs.plugin.MomOrderPluginInitializer" />
|
||||
<bean name="dingTalkInitPluginInitializer" class="com.hzya.frame.plugin.kjs.plugin.DingTalkInitPluginInitializer" />
|
||||
</beans>
|
||||
|
|
|
@ -5,4 +5,5 @@
|
|||
<bean name="momOrderPluginServiceImpl" class="com.hzya.frame.plugin.kjs.service.impl.MomOrderPluginServiceImpl" />
|
||||
<bean name="kjsPluginBaseService" class="com.hzya.frame.plugin.kjs.service.impl.KjsPluginBaseService" />
|
||||
<bean name="genericEventConsumer" class="com.hzya.frame.plugin.kjs.service.GenericEventConsumer" />
|
||||
<bean name="dingTalkInitServiceImpl" class="com.hzya.frame.plugin.kjs.service.impl.DingTalkInitServiceImpl" />
|
||||
</beans>
|
||||
|
|
|
@ -15,6 +15,7 @@ import com.hzya.frame.cbs8.util.CbsAccessToken;
|
|||
import com.hzya.frame.plugin.cbs8.plugin.PayApplyPluginInitializer;
|
||||
import com.hzya.frame.plugin.cbs8.plugin.PayResultPluginInitializer;
|
||||
import com.hzya.frame.plugin.cbs8.plugin.TransactionDetailPluginInitializer;
|
||||
import com.hzya.frame.plugin.kjs.service.IDingTalkInitService;
|
||||
import com.hzya.frame.plugin.seeyonExt.plugin.SeeyonExtPluginInitializer;
|
||||
import com.hzya.frame.seeyon.cbs8.entity.PaymentEntity;
|
||||
import com.hzya.frame.seeyon.cbs8.service.IPaymentService;
|
||||
|
@ -65,7 +66,14 @@ public class temButtom {
|
|||
private TransactionDetailPluginInitializer transactionDetailPluginInitializer;
|
||||
@Autowired
|
||||
private PayResultPluginInitializer payResultPluginInitializer;
|
||||
@Autowired
|
||||
private IDingTalkInitService dingTalkInitService;
|
||||
|
||||
|
||||
@Test
|
||||
public void dingTest(){
|
||||
String s = dingTalkInitService.deptInit(1L);
|
||||
}
|
||||
@Test
|
||||
public void cbs8PluginTest(){
|
||||
try {
|
||||
|
|
|
@ -52,6 +52,7 @@ public class GroovyUtil {
|
|||
throw new BaseSystemException(e);
|
||||
}
|
||||
Object returnObj = groovyObject.invokeMethod("execute",parameterJson);
|
||||
logger.info("脚本参数:{}",parameterJson);
|
||||
logger.info("执行脚本结束:"+returnObj);
|
||||
return returnObj;
|
||||
}
|
||||
|
|
|
@ -1,7 +1,12 @@
|
|||
package com.hzya.frame.dingtalk.service;
|
||||
|
||||
import com.dingtalk.api.request.OapiV2UserListRequest;
|
||||
import com.dingtalk.api.response.OapiV2DepartmentGetResponse;
|
||||
import com.dingtalk.api.response.OapiV2DepartmentListsubResponse;
|
||||
import com.dingtalk.api.response.OapiV2UserGetResponse;
|
||||
import com.dingtalk.api.response.OapiV2UserListResponse;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Description 钉钉service
|
||||
|
@ -26,6 +31,14 @@ public interface IDingTalkService {
|
|||
*/
|
||||
OapiV2UserGetResponse.UserGetResponse getUserById(String userId);
|
||||
|
||||
/**
|
||||
* 获取部门用户列表
|
||||
* @param req 请求参数
|
||||
* @param appKey
|
||||
* @param appSecret
|
||||
* @return
|
||||
*/
|
||||
OapiV2UserListResponse.PageResult getUserListByDeptId(OapiV2UserListRequest req, String appKey, String appSecret);
|
||||
/**
|
||||
* 根据部门id获取部门详情
|
||||
* @param deptId 钉钉部门id
|
||||
|
@ -41,4 +54,13 @@ public interface IDingTalkService {
|
|||
* @return
|
||||
*/
|
||||
OapiV2DepartmentGetResponse.DeptGetResponse getDeptById(Long deptId);
|
||||
|
||||
/**
|
||||
* 获取部门列表,此接口只会返回下一级部门信息
|
||||
* @param deptId 部门id,如果不传则查询一级部门
|
||||
* @param appKey
|
||||
* @param appSecret
|
||||
* @return
|
||||
*/
|
||||
List<OapiV2DepartmentListsubResponse.DeptBaseResponse> getDeptList(Long deptId,String appKey,String appSecret);
|
||||
}
|
||||
|
|
|
@ -28,7 +28,7 @@ import java.util.stream.Stream;
|
|||
* @Author xiangerlin
|
||||
* @Date 2024/8/28 14:25
|
||||
**/
|
||||
@Service
|
||||
@Service(value = "dingTalkExtService")
|
||||
public class DingTalkExtServiceImpl implements IDingTalkExtService {
|
||||
|
||||
|
||||
|
|
|
@ -4,9 +4,13 @@ import com.alibaba.fastjson.JSONObject;
|
|||
import com.dingtalk.api.DefaultDingTalkClient;
|
||||
import com.dingtalk.api.DingTalkClient;
|
||||
import com.dingtalk.api.request.OapiV2DepartmentGetRequest;
|
||||
import com.dingtalk.api.request.OapiV2DepartmentListsubRequest;
|
||||
import com.dingtalk.api.request.OapiV2UserGetRequest;
|
||||
import com.dingtalk.api.request.OapiV2UserListRequest;
|
||||
import com.dingtalk.api.response.OapiV2DepartmentGetResponse;
|
||||
import com.dingtalk.api.response.OapiV2DepartmentListsubResponse;
|
||||
import com.dingtalk.api.response.OapiV2UserGetResponse;
|
||||
import com.dingtalk.api.response.OapiV2UserListResponse;
|
||||
import com.hzya.frame.dingtalk.service.IDingTalkService;
|
||||
import com.hzya.frame.dingtalk.util.DingTalkAccessToken;
|
||||
import org.slf4j.Logger;
|
||||
|
@ -14,12 +18,14 @@ import org.slf4j.LoggerFactory;
|
|||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Description 钉钉service
|
||||
* @Author xiangerlin
|
||||
* @Date 2024/8/27 16:17
|
||||
**/
|
||||
@Service
|
||||
@Service(value = "dingTalkService")
|
||||
public class DingTalkServiceImpl implements IDingTalkService {
|
||||
Logger logger = LoggerFactory.getLogger(getClass());
|
||||
@Value("${dingtalk.appKey:}")
|
||||
|
@ -67,6 +73,30 @@ public class DingTalkServiceImpl implements IDingTalkService {
|
|||
return getUserById(userId,dAppKey,dAppSecret);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取部门用户列表
|
||||
*
|
||||
* @param req 请求参数
|
||||
* @param appKey
|
||||
* @param appSecret
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public OapiV2UserListResponse.PageResult getUserListByDeptId(OapiV2UserListRequest req, String appKey, String appSecret) {
|
||||
try {
|
||||
DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/v2/user/list");
|
||||
req.setSize(100L);//每页最大只能查100条
|
||||
req.setOrderField("modify_desc");
|
||||
req.setContainAccessLimit(false);
|
||||
req.setLanguage("zh_CN");
|
||||
OapiV2UserListResponse rsp = client.execute(req, DingTalkAccessToken.getAccessToken(appKey,appSecret));
|
||||
OapiV2UserListResponse.PageResult result = rsp.getResult();
|
||||
return result;
|
||||
}catch (Exception e){
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据部门id获取部门详情
|
||||
|
@ -107,4 +137,28 @@ public class DingTalkServiceImpl implements IDingTalkService {
|
|||
return getDeptById(deptId,dAppKey,dAppSecret);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取部门列表,此接口只会返回下一级部门信息
|
||||
* @param deptId 部门id,如果不传则查询一级部门
|
||||
* @param appKey
|
||||
* @param appSecret
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public List<OapiV2DepartmentListsubResponse.DeptBaseResponse> getDeptList(Long deptId,String appKey,String appSecret) {
|
||||
try {
|
||||
DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/v2/department/listsub");
|
||||
OapiV2DepartmentListsubRequest req = new OapiV2DepartmentListsubRequest();
|
||||
req.setDeptId(deptId);
|
||||
req.setLanguage("zh_CN");
|
||||
OapiV2DepartmentListsubResponse rsp = client.execute(req, DingTalkAccessToken.getAccessToken(appKey,appSecret));
|
||||
if (rsp.isSuccess()){
|
||||
List<OapiV2DepartmentListsubResponse.DeptBaseResponse> result = rsp.getResult();
|
||||
return result;
|
||||
}
|
||||
}catch (Exception e){
|
||||
logger.error("获取部门列表接口出错:{}",e);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -345,7 +345,7 @@ where id = #{id}
|
|||
`sts` varchar(1) DEFAULT NULL COMMENT '状态(Y正常N删除)',
|
||||
`org_id` varchar(50) DEFAULT NULL COMMENT '组织机构ID',
|
||||
`company_id` varchar(50) DEFAULT NULL COMMENT '公司id',
|
||||
`data_id` varchar(100) DEFAULT NULL COMMENT 'data_id',
|
||||
`data_id` varchar(100) DEFAULT NULL COMMENT 'data_id'
|
||||
</when>
|
||||
<when test="tableType == '2'.toString()">
|
||||
`id` varchar(50) NOT NULL COMMENT '唯一标识码',
|
||||
|
|
|
@ -6,11 +6,11 @@ import java.util.List;
|
|||
import java.util.Map;
|
||||
|
||||
/**
|
||||
*
|
||||
*
|
||||
* @content 通用数据实体类
|
||||
* @Param
|
||||
* @Return
|
||||
* @Author hecan
|
||||
* @Param
|
||||
* @Return
|
||||
* @Author hecan
|
||||
* @Date 2024/5/7 15:50
|
||||
* **/
|
||||
public class ComparisonEntity extends BaseEntity {
|
||||
|
@ -52,6 +52,27 @@ public class ComparisonEntity extends BaseEntity {
|
|||
private List<String> fields;
|
||||
private List<String> returnField;
|
||||
|
||||
/** 显示类型 1、树2、列表*/
|
||||
private String viewName;
|
||||
//下级结构树
|
||||
private List<ComparisonEntity> comparisonEntities;
|
||||
|
||||
public List<ComparisonEntity> getComparisonEntities() {
|
||||
return comparisonEntities;
|
||||
}
|
||||
|
||||
public void setComparisonEntities(List<ComparisonEntity> comparisonEntities) {
|
||||
this.comparisonEntities = comparisonEntities;
|
||||
}
|
||||
|
||||
public String getViewName() {
|
||||
return viewName;
|
||||
}
|
||||
|
||||
public void setViewName(String viewName) {
|
||||
this.viewName = viewName;
|
||||
}
|
||||
|
||||
public List<String> getReturnField() {
|
||||
return returnField;
|
||||
}
|
||||
|
|
|
@ -35,7 +35,7 @@
|
|||
from ${dbName} a
|
||||
<trim prefix="where" prefixOverrides="and">
|
||||
<foreach collection="map.entrySet()" item="value" index="key">
|
||||
and ${key} like concat('%',#{value},'%')
|
||||
and ${key} = #{value}
|
||||
</foreach>
|
||||
and sts='Y' and (data_status='Y' or data_status='F')
|
||||
</trim>
|
||||
|
|
|
@ -407,8 +407,8 @@ public class MasterDataServiceImpl extends BaseService<ComparisonEntity, String>
|
|||
public SysExtensionApiEntity sign(SysExtensionApiEntity entity) {
|
||||
long timestamp = System.currentTimeMillis();
|
||||
Map<String, String> headers = entity.getHeaders();
|
||||
String publicKey = "ZJYAWb7lhAUTYqekPkU+uHJv1/ObJxb7dT7sD8HPRDGAgyhCe7eDIk+3zDUT+v578prj";
|
||||
String secretKey = "fviZnLBsQUAGF8w8FSOdJi7XlIm/XAZclMxRagDLfTyJFlvnIBF3w66Hrpfzs8cYj3JzOP8MtA1LSGvL+2BWG8c/o7DKi92S4mr3zcGearA=";
|
||||
String publicKey = "ZJYADDkrTSpTOC";
|
||||
String secretKey = "mbDdHdv7dwaR";
|
||||
headers.put("publicKey",publicKey);
|
||||
headers.put("secretKey",secretKey);
|
||||
headers.put("timestamp",String.valueOf(timestamp));
|
||||
|
|
|
@ -1,15 +1,17 @@
|
|||
package com.hzya.frame.sysnew.comparison.service.impl;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.dynamic.datasource.annotation.DS;
|
||||
import com.github.pagehelper.PageInfo;
|
||||
import com.hzya.frame.basedao.service.impl.BaseService;
|
||||
import com.hzya.frame.mdm.mdmModule.dao.IMdmModuleDao;
|
||||
import com.hzya.frame.mdm.mdmModule.entity.MdmModuleEntity;
|
||||
import com.hzya.frame.mdm.mdmModuleDb.entity.MdmModuleDbEntity;
|
||||
import com.hzya.frame.mdm.mdmModuleDbFileds.entity.MdmModuleDbFiledsEntity;
|
||||
import com.hzya.frame.mdm.mdmModuleView.dao.IMdmModuleViewDao;
|
||||
import com.hzya.frame.mdm.mdmModuleView.entity.MdmModuleViewEntity;
|
||||
import com.hzya.frame.mdm.service.impl.MdmServiceCache;
|
||||
import com.hzya.frame.sysnew.application.entity.SysApplicationEntity;
|
||||
import com.hzya.frame.sysnew.application.entity.SysExtensionApiEntity;
|
||||
|
@ -20,15 +22,10 @@ import com.hzya.frame.sysnew.comparison.entity.ComparisonDetailsEntity;
|
|||
import com.hzya.frame.sysnew.comparison.entity.ComparisonEntity;
|
||||
import com.hzya.frame.sysnew.comparison.service.IComparisonService;
|
||||
import com.hzya.frame.uuid.UUIDLong;
|
||||
import com.hzya.frame.uuid.UUIDUtils;
|
||||
import com.hzya.frame.web.entity.BaseEntity;
|
||||
import com.hzya.frame.web.entity.BaseResult;
|
||||
import com.hzya.frame.web.entity.JsonResultEntity;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.apache.ivy.Main;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import sun.java2d.pipe.AAShapePipe;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
@ -49,6 +46,9 @@ public class ComparisonServiceImpl extends BaseService<ComparisonEntity, String>
|
|||
@Autowired
|
||||
private MdmServiceCache mdmServiceCache;
|
||||
|
||||
@Autowired
|
||||
private IMdmModuleViewDao mdmModuleViewDao;
|
||||
|
||||
@Autowired
|
||||
public void setGeneralDataDao(IComparisonDao dao) {
|
||||
this.comparisonDao = dao;
|
||||
|
@ -105,6 +105,12 @@ public class ComparisonServiceImpl extends BaseService<ComparisonEntity, String>
|
|||
comparisonEntity.setFields(fields);
|
||||
//查询主表数据
|
||||
List<Map<String,Object>> comparisonEntitiePages = comparisonDao.queryComparisonPage(comparisonEntity);
|
||||
|
||||
//递归查询组织树
|
||||
if(map.get("viewName").equals("1")){
|
||||
return recursiveQueryComparison(comparisonEntitiePages,comparisonEntity);
|
||||
}
|
||||
|
||||
if(CollectionUtils.isNotEmpty(comparisonEntitiePages)){
|
||||
for (Map<String, Object> comparisonEntitiePage : comparisonEntitiePages) {
|
||||
JSONObject jsonObjects=new JSONObject();
|
||||
|
@ -150,21 +156,21 @@ public class ComparisonServiceImpl extends BaseService<ComparisonEntity, String>
|
|||
}
|
||||
ComparisonEntity comparisonEntity = jsonObject.toJavaObject(ComparisonEntity.class);
|
||||
ComparisonDetailsEntity comparisonDetailsEntity=new ComparisonDetailsEntity();
|
||||
List<ComparisonEntity> comparisonEntities=new ArrayList<>();
|
||||
List<ComparisonEntity> comparisonEntities=new ArrayList<>();
|
||||
String uuid= String.valueOf(UUIDLong.longUUID());
|
||||
try {
|
||||
//根据主数据编码查询表名称,字段名称等信息 10001
|
||||
// comparisonEntities = comparisonDao.queryComparison(comparisonEntity);
|
||||
try {
|
||||
//根据主数据编码查询表名称,字段名称等信息 10001
|
||||
// comparisonEntities = comparisonDao.queryComparison(comparisonEntity);
|
||||
|
||||
//comparisonEntities=getComparisonEntity(comparisonEntity);
|
||||
comparisonEntities=getComparisonEntityCache(comparisonEntity,"main");
|
||||
}catch (Exception e){
|
||||
logger.info("根据主数据编码查询信息错误:{}",e.getMessage());
|
||||
return BaseResult.getFailureMessageEntity("保存失败");
|
||||
}
|
||||
JSONObject jsonObjectMain=new JSONObject();
|
||||
JSONArray jsonArray=new JSONArray();
|
||||
List<JSONArray> arrayList=new ArrayList<>();
|
||||
//comparisonEntities=getComparisonEntity(comparisonEntity);
|
||||
comparisonEntities=getComparisonEntityCache(comparisonEntity,"main");
|
||||
}catch (Exception e){
|
||||
logger.info("根据主数据编码查询信息错误:{}",e.getMessage());
|
||||
return BaseResult.getFailureMessageEntity("保存失败");
|
||||
}
|
||||
JSONObject jsonObjectMain=new JSONObject();
|
||||
JSONArray jsonArray=new JSONArray();
|
||||
List<JSONArray> arrayList=new ArrayList<>();
|
||||
|
||||
String tableName=null;
|
||||
//根据dbtype和dbname分组,拿到表名称和表类型
|
||||
|
@ -176,192 +182,213 @@ public class ComparisonServiceImpl extends BaseService<ComparisonEntity, String>
|
|||
// keyPairs 得值为键值对,键是表名称,值是类型,避免多个子表得键一样,比如:mdm_customer:1,mdm_customer_bank:2,mdm_customer_option_log:2
|
||||
for (Map.Entry<String, String> keyPair : keyPairs) {
|
||||
//如果是1,就是主表,根据查询出来得主表是否是传输传递得主表
|
||||
if(keyPair.getValue().equals("1")){
|
||||
String main = jsonObject.getString(keyPair.getKey());
|
||||
tableName=keyPair.getKey();
|
||||
if(main!=null){
|
||||
jsonObjectMain = JSONObject.parseObject(main);
|
||||
if(!checkStr(jsonObjectMain.getString("data_id"))){
|
||||
//保存操作日志
|
||||
controlsLogDaoimpl.saveControlsLog(uuid,jsonObject.getString("appName"),jsonObject.getString("appCode"),jsonObject.toJSONString(),"接口新增",jsonObject.getString("optionName"),tableName+"_option_log","2");
|
||||
return BaseResult.getFailureMessageEntity("新增时候主表data_id不能为空");
|
||||
}
|
||||
}
|
||||
}
|
||||
if(keyPair.getValue().equals("1")){
|
||||
String main = jsonObject.getString(keyPair.getKey());
|
||||
tableName=keyPair.getKey();
|
||||
if(main!=null){
|
||||
jsonObjectMain = JSONObject.parseObject(main);
|
||||
if(!checkStr(jsonObjectMain.getString("data_id"))){
|
||||
//保存操作日志
|
||||
controlsLogDaoimpl.saveControlsLog(uuid,jsonObject.getString("appName"),jsonObject.getString("appCode"),jsonObject.toJSONString(),"接口新增",jsonObject.getString("optionName"),tableName+"_option_log","2");
|
||||
return BaseResult.getFailureMessageEntity("新增时候主表data_id不能为空");
|
||||
}
|
||||
}
|
||||
}
|
||||
//如果是2,就是明细表,根据查询出来得子表是否是传输传递得子表
|
||||
if(keyPair.getValue().equals("2")){
|
||||
jsonArray= jsonObject.getJSONArray(keyPair.getKey());
|
||||
if(jsonArray!= null) {
|
||||
for (int i = 0; i < jsonArray.size(); i++) {
|
||||
JSONObject jsonObjectDetails = jsonArray.getJSONObject(i);
|
||||
jsonObjectDetails.put("table_name", keyPair.getKey());
|
||||
if(!checkStr(jsonObjectDetails.getString("data_id"))){
|
||||
//保存操作日志
|
||||
controlsLogDaoimpl.saveControlsLog(uuid,jsonObject.getString("appName"),jsonObject.getString("appCode"),jsonObject.toJSONString(),"接口新增",jsonObject.getString("optionName"),tableName+"_option_log","2");
|
||||
return BaseResult.getFailureMessageEntity("新增时候明细data_id不能为空");
|
||||
}
|
||||
}
|
||||
arrayList.add(jsonArray);
|
||||
}
|
||||
}
|
||||
if(keyPair.getValue().equals("2")){
|
||||
jsonArray= jsonObject.getJSONArray(keyPair.getKey());
|
||||
if(jsonArray!= null) {
|
||||
for (int i = 0; i < jsonArray.size(); i++) {
|
||||
JSONObject jsonObjectDetails = jsonArray.getJSONObject(i);
|
||||
jsonObjectDetails.put("table_name", keyPair.getKey());
|
||||
if(!checkStr(jsonObjectDetails.getString("data_id"))){
|
||||
//保存操作日志
|
||||
controlsLogDaoimpl.saveControlsLog(uuid,jsonObject.getString("appName"),jsonObject.getString("appCode"),jsonObject.toJSONString(),"接口新增",jsonObject.getString("optionName"),tableName+"_option_log","2");
|
||||
return BaseResult.getFailureMessageEntity("新增时候明细data_id不能为空");
|
||||
}
|
||||
}
|
||||
arrayList.add(jsonArray);
|
||||
}
|
||||
}
|
||||
}
|
||||
if(jsonObjectMain!=null && jsonObjectMain.size()>0) {
|
||||
Map<String, Object> map = new HashMap<>();//将主表数据存到map中
|
||||
List<List<Map<String, Object>>> mapDetails = new ArrayList<>();//将子表数据存到map中
|
||||
if (comparisonEntities != null && comparisonEntities.size() > 0) {
|
||||
map = spliceMainMap(comparisonEntities, jsonObjectMain, map, comparisonEntity, comparisonDetailsEntity);
|
||||
Map<String, Object> map = new HashMap<>();//将主表数据存到map中
|
||||
List<List<Map<String, Object>>> mapDetails = new ArrayList<>();//将子表数据存到map中
|
||||
if (comparisonEntities != null && comparisonEntities.size() > 0) {
|
||||
map = spliceMainMap(comparisonEntities, jsonObjectMain, map, comparisonEntity, comparisonDetailsEntity);
|
||||
|
||||
//根据data_id判断数据是否已经保存在相关表中,避免重复保存
|
||||
List<String> fields = getFields(comparisonEntity);
|
||||
Map<String, Object> mapDataId = new HashMap<>();
|
||||
mapDataId.put("data_id", jsonObjectMain.getString("data_id"));
|
||||
ComparisonEntity comparisonDataId = new ComparisonEntity();
|
||||
comparisonDataId.setMap(mapDataId);
|
||||
comparisonDataId.setDbName(comparisonEntity.getDbName());
|
||||
comparisonDataId.setFields(fields);
|
||||
List<Map<String, Object>> listDataId = comparisonDao.queryComparisonPage(comparisonDataId);
|
||||
if (CollectionUtils.isNotEmpty(listDataId)) {
|
||||
//return BaseResult.getFailureMessageEntity(comparisonEntity.getDbName()+"表中已经存在data_id为:"+jsonObjectMain.getString("data_id")+"的数据");
|
||||
return updateEntity(json);
|
||||
} else {
|
||||
//判断输入的主表字段是否是必填项
|
||||
for (ComparisonEntity entity : comparisonEntities) {
|
||||
//如果必填字段不为空
|
||||
if (entity.getRuleValue() != null && entity.getDbType().equals("1")) {
|
||||
//如果值为空,说明没有传这个字段或者这个字段的值为空
|
||||
if (jsonObjectMain.getString(entity.getEnName()) == null || jsonObjectMain.getString(entity.getEnName()).equals("")) {
|
||||
//保存操作日志
|
||||
controlsLogDaoimpl.saveControlsLog(uuid, jsonObject.getString("appName"), jsonObject.getString("appCode"), jsonObject.toJSONString(), "接口新增", jsonObject.getString("optionName"), tableName + "_option_log", "2");
|
||||
return BaseResult.getFailureMessageEntity(entity.getDbName() + "表的" + entity.getEnName() + "字段不能为空");
|
||||
}
|
||||
}
|
||||
}
|
||||
//根据data_id判断数据是否已经保存在相关表中,避免重复保存
|
||||
List<String> fields = getFields(comparisonEntity);
|
||||
Map<String, Object> mapDataId = new HashMap<>();
|
||||
mapDataId.put("data_id", jsonObjectMain.getString("data_id"));
|
||||
ComparisonEntity comparisonDataId = new ComparisonEntity();
|
||||
comparisonDataId.setMap(mapDataId);
|
||||
comparisonDataId.setDbName(comparisonEntity.getDbName());
|
||||
comparisonDataId.setFields(fields);
|
||||
List<Map<String, Object>> listDataId = comparisonDao.queryComparisonPage(comparisonDataId);
|
||||
if (CollectionUtils.isNotEmpty(listDataId)) {
|
||||
//return BaseResult.getFailureMessageEntity(comparisonEntity.getDbName()+"表中已经存在data_id为:"+jsonObjectMain.getString("data_id")+"的数据");
|
||||
return updateEntity(json);
|
||||
} else {
|
||||
|
||||
map.put("id", uuid);
|
||||
map.put("create_user_id", "c796fd9ba4c9f5ff3cc2fa41a040e443");
|
||||
map.put("modify_user_id", "c796fd9ba4c9f5ff3cc2fa41a040e443");
|
||||
map.put("org_id", "0");
|
||||
map.put("create_time", new Date());
|
||||
map.put("modify_time", new Date());
|
||||
map.put("sts", "Y");
|
||||
map.put("data_status", "Y");//新增状态
|
||||
map.put("add_status", "0");//新增状态
|
||||
map.put("update_status", "1");//修改状态
|
||||
map.put("delete_status", "1");//删除状态
|
||||
ComparisonEntity comparisonEntityRule = comparisonEntities.get(0);
|
||||
//查询单据规则 只查询主表得,明细表不用
|
||||
try {
|
||||
ComparisonEntity comparisonEntityRules = comparisonDao.queryComparisonById(comparisonEntityRule);
|
||||
String documentRule = comparisonEntityRules.getDocumentRule();//"KH-2024-05-30-1";
|
||||
logger.info("通用数据保存接口中根据mId查询出来的单据规则为:{}", documentRule);
|
||||
if (documentRule != null) {
|
||||
//获取规则前缀 CK
|
||||
String rulePrefix = documentRule.substring(0, documentRule.indexOf("-"));
|
||||
//获取规则中间日期 yyyy-MM-dd
|
||||
String ruleDate = documentRule.substring(documentRule.indexOf("-") + 1, documentRule.lastIndexOf("-"));
|
||||
String ruleMiddle = getRuleDate(ruleDate);
|
||||
//获取规则后缀
|
||||
String ruleSuffixLength = documentRule.substring(documentRule.lastIndexOf("-") + 1);
|
||||
int ruleSuffix = ruleSuffixLength.length();
|
||||
//生成单据规则
|
||||
comparisonEntityRule.setRulePrefix(rulePrefix);
|
||||
comparisonEntityRule.setRuleMiddle(ruleMiddle);
|
||||
comparisonEntityRule.setRuleSuffix(ruleSuffix);
|
||||
try {
|
||||
//新生成单据规则保存到数据库
|
||||
ComparisonEntity comparisonEntityRuleGz = comparisonDao.queryComparisonRule(comparisonEntityRule);
|
||||
map.put("document_rule", comparisonEntityRuleGz.getDocumentRule());//单据规则
|
||||
map.put("document_rule_num", comparisonEntityRuleGz.getDocumentRuleNum());//单据规则流水号
|
||||
comparisonEntityRule.setMap(map);
|
||||
} catch (Exception e) {
|
||||
logger.info("保存通用数据时候生成单据规则错误:{}", e.getMessage());
|
||||
//保存操作日志
|
||||
controlsLogDaoimpl.saveControlsLog(uuid, jsonObject.getString("appName"), jsonObject.getString("appCode"), jsonObject.toJSONString(), "接口新增", jsonObject.getString("optionName"), tableName + "_option_log", "2");
|
||||
//如果是树形结构,查询不存在,新增时候需要得到parent_id,根据parent_id查询data_id是否有,之后将查询得父id设置到mdm_up_id中
|
||||
if(comparisonEntities.get(0).getViewName().equals("1")){
|
||||
List<String> fieldParent = getFields(comparisonEntity);
|
||||
Map<String, Object> mapParentId = new HashMap<>();
|
||||
mapDataId.put("data_id", jsonObjectMain.getString("parent_id"));
|
||||
ComparisonEntity comparisonParentId = new ComparisonEntity();
|
||||
comparisonParentId.setMap(mapParentId);
|
||||
comparisonParentId.setDbName(comparisonEntity.getDbName());
|
||||
comparisonParentId.setFields(fieldParent);
|
||||
List<Map<String, Object>> listParentId = comparisonDao.queryComparisonPage(comparisonDataId);
|
||||
//如果根据parentid查询数据不为空,将dataid为parenti得id值设置到mdm_up_id中
|
||||
if(CollectionUtils.isNotEmpty(listParentId)){
|
||||
if(null != listParentId.get(0).get("mdm_up_id")){
|
||||
map.put("mdm_up_id",listParentId.get(0).get("mdm_up_id")+","+listParentId.get(0).get("id"));
|
||||
}else{
|
||||
map.put("mdm_up_id",listParentId.get(0).get("id"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return BaseResult.getFailureMessageEntity("保存失败");
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
logger.info("通用数据保存接口中查询单据规则错误:{}", e.getMessage());
|
||||
//保存操作日志
|
||||
controlsLogDaoimpl.saveControlsLog(uuid, jsonObject.getString("appName"), jsonObject.getString("appCode"), jsonObject.toJSONString(), "接口新增", jsonObject.getString("optionName"), tableName + "_option_log", "2");
|
||||
//判断输入的主表字段是否是必填项
|
||||
for (ComparisonEntity entity : comparisonEntities) {
|
||||
//如果必填字段不为空
|
||||
if (entity.getRuleValue() != null && entity.getDbType().equals("1")) {
|
||||
//如果值为空,说明没有传这个字段或者这个字段的值为空
|
||||
if (jsonObjectMain.getString(entity.getEnName()) == null || jsonObjectMain.getString(entity.getEnName()).equals("")) {
|
||||
//保存操作日志
|
||||
controlsLogDaoimpl.saveControlsLog(uuid, jsonObject.getString("appName"), jsonObject.getString("appCode"), jsonObject.toJSONString(), "接口新增", jsonObject.getString("optionName"), tableName + "_option_log", "2");
|
||||
return BaseResult.getFailureMessageEntity(entity.getDbName() + "表的" + entity.getEnName() + "字段不能为空");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return BaseResult.getFailureMessageEntity("保存失败");
|
||||
}
|
||||
try {
|
||||
List<JSONObject> list = new ArrayList<>();
|
||||
JSONObject jsonObjectList = new JSONObject();
|
||||
map.put("id", uuid);
|
||||
map.put("create_user_id", "c796fd9ba4c9f5ff3cc2fa41a040e443");
|
||||
map.put("modify_user_id", "c796fd9ba4c9f5ff3cc2fa41a040e443");
|
||||
map.put("org_id", "0");
|
||||
map.put("create_time", new Date());
|
||||
map.put("modify_time", new Date());
|
||||
map.put("sts", "Y");
|
||||
map.put("data_status", "Y");//新增状态
|
||||
map.put("add_status", "0");//新增状态
|
||||
map.put("update_status", "1");//修改状态
|
||||
map.put("delete_status", "1");//删除状态
|
||||
ComparisonEntity comparisonEntityRule = comparisonEntities.get(0);
|
||||
//查询单据规则 只查询主表得,明细表不用
|
||||
try {
|
||||
ComparisonEntity comparisonEntityRules = comparisonDao.queryComparisonById(comparisonEntityRule);
|
||||
String documentRule = comparisonEntityRules.getDocumentRule();//"KH-2024-05-30-1";
|
||||
logger.info("通用数据保存接口中根据mId查询出来的单据规则为:{}", documentRule);
|
||||
if (documentRule != null) {
|
||||
//获取规则前缀 CK
|
||||
String rulePrefix = documentRule.substring(0, documentRule.indexOf("-"));
|
||||
//获取规则中间日期 yyyy-MM-dd
|
||||
String ruleDate = documentRule.substring(documentRule.indexOf("-") + 1, documentRule.lastIndexOf("-"));
|
||||
String ruleMiddle = getRuleDate(ruleDate);
|
||||
//获取规则后缀
|
||||
String ruleSuffixLength = documentRule.substring(documentRule.lastIndexOf("-") + 1);
|
||||
int ruleSuffix = ruleSuffixLength.length();
|
||||
//生成单据规则
|
||||
comparisonEntityRule.setRulePrefix(rulePrefix);
|
||||
comparisonEntityRule.setRuleMiddle(ruleMiddle);
|
||||
comparisonEntityRule.setRuleSuffix(ruleSuffix);
|
||||
try {
|
||||
//新生成单据规则保存到数据库
|
||||
ComparisonEntity comparisonEntityRuleGz = comparisonDao.queryComparisonRule(comparisonEntityRule);
|
||||
map.put("document_rule", comparisonEntityRuleGz.getDocumentRule());//单据规则
|
||||
map.put("document_rule_num", comparisonEntityRuleGz.getDocumentRuleNum());//单据规则流水号
|
||||
comparisonEntityRule.setMap(map);
|
||||
} catch (Exception e) {
|
||||
logger.info("保存通用数据时候生成单据规则错误:{}", e.getMessage());
|
||||
//保存操作日志
|
||||
controlsLogDaoimpl.saveControlsLog(uuid, jsonObject.getString("appName"), jsonObject.getString("appCode"), jsonObject.toJSONString(), "接口新增", jsonObject.getString("optionName"), tableName + "_option_log", "2");
|
||||
|
||||
//判断明细表字段是否是必填项
|
||||
if (arrayList != null && arrayList.size() > 0) {
|
||||
for (JSONArray jsonArrayDetails : arrayList) {
|
||||
for (Object object : jsonArrayDetails) {
|
||||
JSONObject jsonObjectDetails = (JSONObject) JSON.toJSON(object);
|
||||
for (ComparisonEntity entity : comparisonEntities) {
|
||||
if (entity.getRuleValue() != null && entity.getDbType().equals("2")) {
|
||||
//如果值为空,说明没有传这个字段或者这个字段的值为空
|
||||
if (jsonObjectDetails.getString(entity.getEnName()) == null || jsonObjectDetails.getString(entity.getEnName()).equals("")) {
|
||||
//保存操作日志
|
||||
controlsLogDaoimpl.saveControlsLog(uuid, jsonObject.getString("appName"), jsonObject.getString("appCode"), jsonObject.toJSONString(), "接口新增", jsonObject.getString("optionName"), tableName + "_option_log", "2");
|
||||
return BaseResult.getFailureMessageEntity(entity.getDbName() + "表的" + entity.getEnName() + "字段不能为空");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return BaseResult.getFailureMessageEntity("保存失败");
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
logger.info("通用数据保存接口中查询单据规则错误:{}", e.getMessage());
|
||||
//保存操作日志
|
||||
controlsLogDaoimpl.saveControlsLog(uuid, jsonObject.getString("appName"), jsonObject.getString("appCode"), jsonObject.toJSONString(), "接口新增", jsonObject.getString("optionName"), tableName + "_option_log", "2");
|
||||
|
||||
//保存主表数据
|
||||
ComparisonEntity comparisonEntityOne = comparisonDao.saveComparison(comparisonEntityRule);
|
||||
jsonObjectList.put(comparisonEntityOne.getDbName(), map);
|
||||
//保存子表数据
|
||||
if (arrayList != null && arrayList.size() > 0) {
|
||||
mapDetails = spliceDetailMap(comparisonEntities, mapDetails, arrayList);
|
||||
if (mapDetails.size() > 0 && mapDetails != null) {
|
||||
for (List<Map<String, Object>> mapDetail : mapDetails) {
|
||||
for (Map<String, Object> stringObjectMap : mapDetail) {
|
||||
stringObjectMap.put("id", UUIDLong.longUUID());
|
||||
stringObjectMap.put("formmain_id", uuid);
|
||||
stringObjectMap.put("create_user_id", "c796fd9ba4c9f5ff3cc2fa41a040e443");
|
||||
stringObjectMap.put("modify_user_id", "c796fd9ba4c9f5ff3cc2fa41a040e443");
|
||||
stringObjectMap.put("org_id", "0");
|
||||
stringObjectMap.put("create_time", new Date());
|
||||
stringObjectMap.put("modify_time", new Date());
|
||||
stringObjectMap.put("sts", "Y");
|
||||
stringObjectMap.put("data_status", "Y");//新增状态
|
||||
comparisonDetailsEntity.setMapDetails(stringObjectMap);
|
||||
comparisonDetailsEntity.setDbName(String.valueOf(stringObjectMap.get("table_name")));
|
||||
stringObjectMap.remove("table_name");
|
||||
ComparisonDetailsEntity comparisonDetailsEntityOne = comparisonDetailsDao.saveComparisonDetails(comparisonDetailsEntity);
|
||||
comparisonEntityOne.setComparisonDetailsEntity(comparisonDetailsEntityOne);
|
||||
//保存操作日志
|
||||
//controlsLogDaoimpl.saveControlsLog(uuidDetail,jsonObject.getString("appName"),jsonObject.getString("appCode"),jsonObject.toJSONString(),"接口新增",jsonObject.getString("optionName"),comparisonDetailsEntity.getDbName()+"_option_log");
|
||||
}
|
||||
}
|
||||
jsonObjectList.put(comparisonDetailsEntity.getDbName(), mapDetails);
|
||||
}
|
||||
} else {
|
||||
jsonObjectList.put(comparisonDetailsEntity.getDbName(), new ArrayList<>());
|
||||
}
|
||||
jsonObjectList.remove(null);
|
||||
list.add(jsonObjectList);
|
||||
//保存操作日志
|
||||
controlsLogDaoimpl.saveControlsLog(uuid, jsonObject.getString("appName"), jsonObject.getString("appCode"), jsonObject.toJSONString(), "接口新增", jsonObject.getString("optionName"), tableName + "_option_log", "1");
|
||||
JSONObject json1 = new JSONObject();
|
||||
json1.put("status", "200");
|
||||
json1.put("list", list);
|
||||
return json1;
|
||||
} catch (Exception e) {
|
||||
logger.info("保存通用数据时候错误:{}", e.getMessage());
|
||||
//保存操作日志
|
||||
controlsLogDaoimpl.saveControlsLog(uuid, jsonObject.getString("appName"), jsonObject.getString("appCode"), jsonObject.toJSONString(), "接口新增", jsonObject.getString("optionName"), tableName + "_option_log", "2");
|
||||
return BaseResult.getFailureMessageEntity("保存失败");
|
||||
}
|
||||
try {
|
||||
List<JSONObject> list = new ArrayList<>();
|
||||
JSONObject jsonObjectList = new JSONObject();
|
||||
|
||||
return BaseResult.getFailureMessageEntity("保存失败");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return BaseResult.getFailureMessageEntity("查询失败","请检查传递参数");
|
||||
//判断明细表字段是否是必填项
|
||||
if (arrayList != null && arrayList.size() > 0) {
|
||||
for (JSONArray jsonArrayDetails : arrayList) {
|
||||
for (Object object : jsonArrayDetails) {
|
||||
JSONObject jsonObjectDetails = (JSONObject) JSON.toJSON(object);
|
||||
for (ComparisonEntity entity : comparisonEntities) {
|
||||
if (entity.getRuleValue() != null && entity.getDbType().equals("2")) {
|
||||
//如果值为空,说明没有传这个字段或者这个字段的值为空
|
||||
if (jsonObjectDetails.getString(entity.getEnName()) == null || jsonObjectDetails.getString(entity.getEnName()).equals("")) {
|
||||
//保存操作日志
|
||||
controlsLogDaoimpl.saveControlsLog(uuid, jsonObject.getString("appName"), jsonObject.getString("appCode"), jsonObject.toJSONString(), "接口新增", jsonObject.getString("optionName"), tableName + "_option_log", "2");
|
||||
return BaseResult.getFailureMessageEntity(entity.getDbName() + "表的" + entity.getEnName() + "字段不能为空");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//保存主表数据
|
||||
ComparisonEntity comparisonEntityOne = comparisonDao.saveComparison(comparisonEntityRule);
|
||||
jsonObjectList.put(comparisonEntityOne.getDbName(), map);
|
||||
//保存子表数据
|
||||
if (arrayList != null && arrayList.size() > 0) {
|
||||
mapDetails = spliceDetailMap(comparisonEntities, mapDetails, arrayList);
|
||||
if (mapDetails.size() > 0 && mapDetails != null) {
|
||||
for (List<Map<String, Object>> mapDetail : mapDetails) {
|
||||
for (Map<String, Object> stringObjectMap : mapDetail) {
|
||||
stringObjectMap.put("id", UUIDLong.longUUID());
|
||||
stringObjectMap.put("formmain_id", uuid);
|
||||
stringObjectMap.put("create_user_id", "c796fd9ba4c9f5ff3cc2fa41a040e443");
|
||||
stringObjectMap.put("modify_user_id", "c796fd9ba4c9f5ff3cc2fa41a040e443");
|
||||
stringObjectMap.put("org_id", "0");
|
||||
stringObjectMap.put("create_time", new Date());
|
||||
stringObjectMap.put("modify_time", new Date());
|
||||
stringObjectMap.put("sts", "Y");
|
||||
stringObjectMap.put("data_status", "Y");//新增状态
|
||||
comparisonDetailsEntity.setMapDetails(stringObjectMap);
|
||||
comparisonDetailsEntity.setDbName(String.valueOf(stringObjectMap.get("table_name")));
|
||||
stringObjectMap.remove("table_name");
|
||||
ComparisonDetailsEntity comparisonDetailsEntityOne = comparisonDetailsDao.saveComparisonDetails(comparisonDetailsEntity);
|
||||
comparisonEntityOne.setComparisonDetailsEntity(comparisonDetailsEntityOne);
|
||||
//保存操作日志
|
||||
//controlsLogDaoimpl.saveControlsLog(uuidDetail,jsonObject.getString("appName"),jsonObject.getString("appCode"),jsonObject.toJSONString(),"接口新增",jsonObject.getString("optionName"),comparisonDetailsEntity.getDbName()+"_option_log");
|
||||
}
|
||||
}
|
||||
jsonObjectList.put(comparisonDetailsEntity.getDbName(), mapDetails);
|
||||
}
|
||||
} else {
|
||||
jsonObjectList.put(comparisonDetailsEntity.getDbName(), new ArrayList<>());
|
||||
}
|
||||
jsonObjectList.remove(null);
|
||||
list.add(jsonObjectList);
|
||||
//保存操作日志
|
||||
controlsLogDaoimpl.saveControlsLog(uuid, jsonObject.getString("appName"), jsonObject.getString("appCode"), jsonObject.toJSONString(), "接口新增", jsonObject.getString("optionName"), tableName + "_option_log", "1");
|
||||
JSONObject json1 = new JSONObject();
|
||||
json1.put("status", "200");
|
||||
json1.put("list", list);
|
||||
return json1;
|
||||
} catch (Exception e) {
|
||||
logger.info("保存通用数据时候错误:{}", e.getMessage());
|
||||
//保存操作日志
|
||||
controlsLogDaoimpl.saveControlsLog(uuid, jsonObject.getString("appName"), jsonObject.getString("appCode"), jsonObject.toJSONString(), "接口新增", jsonObject.getString("optionName"), tableName + "_option_log", "2");
|
||||
|
||||
return BaseResult.getFailureMessageEntity("保存失败");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return BaseResult.getFailureMessageEntity("保存失败","请检查传递参数");
|
||||
}
|
||||
|
||||
//更新通用数据数据
|
||||
|
@ -382,7 +409,7 @@ public class ComparisonServiceImpl extends BaseService<ComparisonEntity, String>
|
|||
List<ComparisonEntity> comparisonEntities=new ArrayList<>();
|
||||
//根据主数据编码查询表名称,字段名称等信息 10001
|
||||
try {
|
||||
// comparisonEntities = comparisonDao.queryComparison(comparisonEntity);
|
||||
// comparisonEntities = comparisonDao.queryComparison(comparisonEntity);
|
||||
|
||||
//comparisonEntities=getComparisonEntity(comparisonEntity);
|
||||
comparisonEntities=getComparisonEntityCache(comparisonEntity,"main");
|
||||
|
@ -440,6 +467,26 @@ public class ComparisonServiceImpl extends BaseService<ComparisonEntity, String>
|
|||
if(CollectionUtils.isEmpty(comparisonEntitiePages)){
|
||||
return BaseResult.getFailureMessageEntity("根据data_id查询id数据为空,请检查data_id");
|
||||
}
|
||||
|
||||
//判断是否是树形结构
|
||||
if(comparisonEntities.get(0).getViewName().equals("1")){
|
||||
//根据data_id查询出parent_id,再根据parent_id得值查询data_id字段中为这个得值,如果有,将data_id为parent_id得id值保存到mdm_up_id中
|
||||
Map<String,Object> mapParent=new HashMap<>();
|
||||
mapParent.put("data_id",comparisonEntitiePages.get(0).get("parent_id"));
|
||||
ComparisonEntity comparisonParent=new ComparisonEntity();
|
||||
comparisonParent.setDbName(comparisonEntity.getDbName());
|
||||
comparisonParent.setMap(mapParent);
|
||||
comparisonParent.setFields(fields);
|
||||
List<Map<String,Object>> comparisonEntitieParent = comparisonDao.queryComparisonPage(comparisonParent);
|
||||
if(!CollectionUtils.isEmpty(comparisonEntitieParent)){
|
||||
if(null != comparisonEntitieParent.get(0).get("mdm_up_id")){
|
||||
map.put("mdm_up_id",comparisonEntitieParent.get(0).get("mdm_up_id")+","+comparisonEntitieParent.get(0).get("id"));
|
||||
}else{
|
||||
map.put("mdm_up_id",comparisonEntitieParent.get(0).get("id"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
String id = String.valueOf(comparisonEntitiePages.get(0).get("id"));
|
||||
map.put("create_user_id", "c796fd9ba4c9f5ff3cc2fa41a040e443");
|
||||
map.put("modify_user_id", "c796fd9ba4c9f5ff3cc2fa41a040e443");
|
||||
|
@ -500,7 +547,7 @@ public class ComparisonServiceImpl extends BaseService<ComparisonEntity, String>
|
|||
return BaseResult.getFailureMessageEntity("更新失败");
|
||||
}
|
||||
}
|
||||
return BaseResult.getFailureMessageEntity("查询失败","请检查传递参数");
|
||||
return BaseResult.getFailureMessageEntity("更新失败","请检查传递参数");
|
||||
}
|
||||
|
||||
private List<String> getFields(ComparisonEntity comparisonEntity) {
|
||||
|
@ -527,7 +574,7 @@ public class ComparisonServiceImpl extends BaseService<ComparisonEntity, String>
|
|||
List<ComparisonEntity> comparisonEntities=new ArrayList<>();
|
||||
//根据主数据编码查询表名称,字段名称等信息 10001
|
||||
try {
|
||||
// comparisonEntities = comparisonDao.queryComparison(comparisonEntity);
|
||||
// comparisonEntities = comparisonDao.queryComparison(comparisonEntity);
|
||||
|
||||
//comparisonEntities=getComparisonEntity(comparisonEntity);
|
||||
comparisonEntities=getComparisonEntityCache(comparisonEntity,"main");
|
||||
|
@ -583,6 +630,12 @@ public class ComparisonServiceImpl extends BaseService<ComparisonEntity, String>
|
|||
if(CollectionUtils.isEmpty(comparisonEntitiePages)){
|
||||
return BaseResult.getFailureMessageEntity("根据data_id查询id数据为空,请检查data_id");
|
||||
}
|
||||
|
||||
//递归删除树结构 1.树 2.列表
|
||||
if(map.get("viewName").equals("1")){
|
||||
return recursiveDeleteComparison(comparisonEntitiePages,comparisonEntity);
|
||||
}
|
||||
|
||||
String id = String.valueOf(comparisonEntitiePages.get(0).get("id"));
|
||||
|
||||
map.remove("id");
|
||||
|
@ -612,7 +665,59 @@ public class ComparisonServiceImpl extends BaseService<ComparisonEntity, String>
|
|||
return BaseResult.getFailureMessageEntity("删除失败");
|
||||
}
|
||||
}
|
||||
return BaseResult.getFailureMessageEntity("查询失败","请检查传递参数");
|
||||
return BaseResult.getFailureMessageEntity("删除失败","请检查传递参数");
|
||||
}
|
||||
|
||||
//递归删除组织树
|
||||
private Object recursiveDeleteComparison(List<Map<String,Object>> list,ComparisonEntity comparisonEntity){
|
||||
for(int i=0;i<list.size();i++){
|
||||
List<String> fields = getFields(comparisonEntity);
|
||||
Map<String,Object> mapId=new HashMap<>();
|
||||
mapId.put("mdm_up_id",list.get(0).get("id"));
|
||||
ComparisonEntity comparison=new ComparisonEntity();
|
||||
comparison.setDbName(comparisonEntity.getDbName());
|
||||
comparison.setMap(mapId);
|
||||
comparison.setFields(fields);
|
||||
List<Map<String,Object>> comparisonEntitiePages = comparisonDao.queryComparisonPage(comparison);
|
||||
if(CollectionUtils.isNotEmpty(comparisonEntitiePages)){
|
||||
recursiveDeleteComparison(comparisonEntitiePages,comparisonEntity);
|
||||
}
|
||||
comparisonEntity.setId(String.valueOf(list.get(0).get("id")));
|
||||
Integer integer = comparisonDao.deleteComparison(comparisonEntity);
|
||||
JSONObject json1 = new JSONObject();
|
||||
json1.put("status","200");
|
||||
json1.put("integer",integer);
|
||||
return json1;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
//递归查询组织树
|
||||
private Object recursiveQueryComparison(List<Map<String,Object>> list,ComparisonEntity comparisonEntity){
|
||||
if(CollectionUtils.isNotEmpty(list)) {
|
||||
for (int i = 0; i < list.size(); i++) {
|
||||
List<String> fields = getFields(comparisonEntity);
|
||||
Map<String,Object> mapId=new HashMap<>();
|
||||
mapId.put("mdm_up_id",list.get(0).get("id"));
|
||||
ComparisonEntity comparison=new ComparisonEntity();
|
||||
comparison.setDbName(comparisonEntity.getDbName());
|
||||
comparison.setMap(mapId);
|
||||
comparison.setFields(fields);
|
||||
List<Map<String,Object>> comparisonEntitiePages = comparisonDao.queryComparisonPage(comparison);
|
||||
if(CollectionUtils.isNotEmpty(comparisonEntitiePages)){
|
||||
recursiveQueryComparison(comparisonEntitiePages,comparisonEntity);
|
||||
for (Map<String, Object> map : list) {
|
||||
map.put("comparisonEntities",comparisonEntitiePages);
|
||||
}
|
||||
}
|
||||
PageInfo pageInfo = new PageInfo(list);
|
||||
JSONObject json1=new JSONObject();
|
||||
json1.put("status","200");
|
||||
json1.put("pageInfo",pageInfo);
|
||||
return json1;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
//根据应用key和应用密钥获取应用编码和应用名称
|
||||
|
@ -704,6 +809,11 @@ public class ComparisonServiceImpl extends BaseService<ComparisonEntity, String>
|
|||
comparisonEntity.setmId(mdmModuleEntity.getId());
|
||||
List<ComparisonEntity> comparisonEntitiesFieldRule = comparisonDao.queryComparisonBymdmIdDbIdFiledId(comparisonEntity);
|
||||
|
||||
//根据mdm_module得id判断是树结构还是列表结构
|
||||
MdmModuleViewEntity mdmModuleViewEntity=new MdmModuleViewEntity();
|
||||
mdmModuleViewEntity.setMdmId(mdmModuleEntity.getId());
|
||||
List<MdmModuleViewEntity> mdmModuleViewEntities = mdmModuleViewDao.query(mdmModuleViewEntity);
|
||||
|
||||
//根据mdm_id查询mdm_module_db的信息
|
||||
MdmModuleDbEntity mdmModuleDbEntity = new MdmModuleDbEntity();
|
||||
mdmModuleDbEntity.setMdmId(mdmModuleEntity.getId());
|
||||
|
@ -736,6 +846,7 @@ public class ComparisonServiceImpl extends BaseService<ComparisonEntity, String>
|
|||
comparisonEntityFile.setmId(mdmModuleEntity.getId());
|
||||
comparisonEntityFile.setMdmName(mdmModuleEntity.getMdmName());
|
||||
comparisonEntityFile.setMdmCode(String.valueOf(mdmModuleEntity.getMdmCode()));
|
||||
comparisonEntityFile.setViewName(CollectionUtils.isNotEmpty(mdmModuleViewEntities)?mdmModuleViewEntities.get(0).getViewName():null);
|
||||
if(CollectionUtils.isNotEmpty(comparisonEntitiesFieldRule)){
|
||||
for (ComparisonEntity entity : comparisonEntitiesFieldRule) {
|
||||
if(entity.getEnName().equals(moduleDbFiledsEntity.getEnName()) && entity.getDbType().equals(moduleDbEntity.getDbType())){
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package com.hzya.frame.sysnew.grovy.service.impl;
|
||||
|
||||
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.hzya.frame.sysnew.application.entity.SysExtensionApiEntity;
|
||||
import com.hzya.frame.sysnew.grovy.service.IGroovyIntegrationService;
|
||||
|
@ -34,9 +35,9 @@ public class GroovyIntegrationServiceImpl implements IGroovyIntegrationService {
|
|||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
java.lang.String str = "{\"data\":{\"document_rule\":\"KH-2024-08-22-00002\",\"create_user_id\":\"1\",\"create_time\":1724309574000,\"company_id\":\"Y\",\"ccusname\":\"测试客户名称\",\"modify_time\":1724309574000,\"ccccode\":\"FL01\",\"ccuscode\":\"K20240001\",\"document_rule_num\":2,\"mdm_customer_bank\":[{\"bdefaultaccount\":\"Y\",\"create_user_id\":\"1\",\"cbname\":\"开户银行\",\"cbankcode\":\"会稽山\",\"formmain_id\":\"cd3136d204084769b5991a4f276c69c4\",\"create_time\":1724309575000,\"company_id\":\"0\",\"modify_time\":1724309575000,\"cankcode\":\"所属银行\",\"sts\":\"Y\",\"cbaccount\":\"1381278236781283\",\"org_id\":\"0\",\"id\":\"dda3ab07459744fda9981b31b57d3e3a\",\"data_status\":\"Y\",\"modify_user_id\":\"1\",\"sorts\":2}],\"cccname\":\"内部客户\",\"add_status\":\"0\",\"update_status\":\"1\",\"sts\":\"Y\",\"delete_status\":\"1\",\"org_id\":\"Y\",\"id\":\"cd3136d204084769b5991a4f276c69c4\",\"ccusabbname\":\"测试客户名称\",\"data_status\":\"Y\",\"modify_user_id\":\"1\",\"sorts\":2},\"query\":\"[]\",\"header\":\"[]\",\"body\":\"[{\\\"id\\\":\\\"aaa28f22-d14f-481e-8c0f-1027204c3597\\\",\\\"parameterName\\\":\\\"body\\\",\\\"first\\\":true}]\"}";
|
||||
java.lang.String str = "{\"data\":{\"document_rule\":\"DDUSER-2024-09-04-00007\",\"create_user_id\":\"c796fd9ba4c9f5ff3cc2fa41a040e443\",\"unionid\":\"2fkFIWM9iSJAcLxiimUZdUWwiEiE\",\"create_time\":1725413884000,\"modify_time\":1725413884000,\"title\":\"高级软件工程师\",\"hired_date\":1677600000000,\"userid\":\"023822475524346736\",\"document_rule_num\":7,\"add_status\":\"0\",\"update_status\":\"1\",\"event_type\":\"user_modify_org\",\"sts\":\"Y\",\"data_id\":\"023822475524346736\",\"delete_status\":\"1\",\"org_id\":\"0\",\"mdm_dd_user_position\":[{\"create_user_id\":\"c796fd9ba4c9f5ff3cc2fa41a040e443\",\"formmain_id\":\"8740260843790486508\",\"create_time\":1725413884000,\"modify_time\":1725413884000,\"title\":\"高级软件工程师\",\"sts\":\"Y\",\"data_id\":\"5a79ab0bd206414aab97087915e6488a\",\"org_id\":\"0\",\"id\":\"-5911347781273497855\",\"data_status\":\"Y\",\"modify_user_id\":\"c796fd9ba4c9f5ff3cc2fa41a040e443\",\"dept_id\":\"66631023\",\"sorts\":7}],\"name\":\"徐新璐\",\"dept_id_list\":\"[66631023]\",\"id\":\"8740260843790486508\",\"job_number\":\"2176\",\"data_status\":\"Y\",\"modify_user_id\":\"c796fd9ba4c9f5ff3cc2fa41a040e443\",\"sorts\":446},\"query\":\"[]\",\"header\":\"[]\",\"body\":\"[{\\\"id\\\":\\\"e5faa5a5-8de4-45d4-bfa9-de80497cb222\\\",\\\"parameterName\\\":\\\"body\\\",\\\"first\\\":true}]\"}";
|
||||
A88772 s = new A88772();
|
||||
s.execute(str);
|
||||
System.out.println(s.execute(str));
|
||||
}
|
||||
|
||||
static class A88772 {
|
||||
|
@ -45,40 +46,27 @@ public class GroovyIntegrationServiceImpl implements IGroovyIntegrationService {
|
|||
com.alibaba.fastjson.JSONObject bodys = new com.alibaba.fastjson.JSONObject();
|
||||
com.alibaba.fastjson.JSONObject reqData = com.alibaba.fastjson.JSON.parseObject(jsonStr);
|
||||
com.alibaba.fastjson.JSONObject data = reqData.getJSONObject("data");
|
||||
com.alibaba.fastjson.JSONObject mdmCustomer = new com.alibaba.fastjson.JSONObject();
|
||||
com.alibaba.fastjson.JSONArray mdmCustomerBankAll = new com.alibaba.fastjson.JSONArray();
|
||||
mdmCustomer.put("ccuscode",data.getString("ccuscode"));
|
||||
mdmCustomer.put("ccusname",data.getString("ccusname"));
|
||||
mdmCustomer.put("ccusabbname",data.getString("ccusabbname"));
|
||||
mdmCustomer.put("ccccode",data.getString("ccccode"));
|
||||
mdmCustomer.put("cccname",data.getString("cccname"));
|
||||
mdmCustomer.put("ccusmngtypecode",data.getString("ccusmngtypecode"));
|
||||
mdmCustomer.put("ccusmngtypename",data.getString("ccusmngtypename"));
|
||||
mdmCustomer.put("ccusregcode",data.getString("ccusregcode"));
|
||||
mdmCustomer.put("ccuslperson",data.getString("ccuslperson"));
|
||||
mdmCustomer.put("cinvoicecompany",data.getString("cinvoicecompany"));
|
||||
mdmCustomer.put("ccdefine21",data.getString("ccdefine21"));
|
||||
mdmCustomer.put("ccdefine8",data.getString("ccdefine8"));
|
||||
mdmCustomer.put("ccdefine7",data.getString("ccdefine7"));
|
||||
mdmCustomer.put("ccdefine5",data.getString("ccdefine5"));
|
||||
mdmCustomer.put("ccdefine3",data.getString("ccdefine3"));
|
||||
mdmCustomer.put("dataStatus",data.getString("datastatus"));
|
||||
com.alibaba.fastjson.JSONArray mdmCustomerBank = data.getJSONArray("mdm_customer_bank");
|
||||
if(null != mdmCustomerBank && mdmCustomerBank.size()>0){
|
||||
for(Object bankObj : mdmCustomerBank){
|
||||
com.alibaba.fastjson.JSONObject bank = com.alibaba.fastjson.JSONObject.parseObject(bankObj.toString());
|
||||
com.alibaba.fastjson.JSONObject mdmCustomerObj = new com.alibaba.fastjson.JSONObject();
|
||||
mdmCustomerObj.put("cankcode",bank.getString("cankcode"));
|
||||
mdmCustomerObj.put("cbname",bank.getString("cbname"));
|
||||
mdmCustomerObj.put("cbaccount",bank.getString("cbaccount"));
|
||||
mdmCustomerObj.put("cbankcode",bank.getString("cbankcode"));
|
||||
mdmCustomerObj.put("formmain_id",bank.getString("formmain_id"));
|
||||
mdmCustomerObj.put("bdefaultaccount",bank.getString("bdefaultaccount"));
|
||||
mdmCustomerBankAll.add(mdmCustomerObj);
|
||||
com.alibaba.fastjson.JSONObject mdmUser = new com.alibaba.fastjson.JSONObject();
|
||||
mdmUser.put("userid",data.getString("userid"));
|
||||
mdmUser.put("name",data.getString("name"));
|
||||
mdmUser.put("mobile",data.getString("mobile"));
|
||||
mdmUser.put("job_number",data.getString("job_number"));
|
||||
mdmUser.put("title",data.getString("title"));
|
||||
mdmUser.put("dept_id_list",data.getString("dept_id_list"));
|
||||
mdmUser.put("dataStatus",data.getString("event_type"));
|
||||
com.alibaba.fastjson.JSONArray array = data.getJSONArray("mdm_dd_user_position");
|
||||
com.alibaba.fastjson.JSONArray postArray = new com.alibaba.fastjson.JSONArray();
|
||||
if (null != array && array.size() > 0){
|
||||
for (int i=0; i<array.size();i++) {
|
||||
com.alibaba.fastjson.JSONObject jsonObject = array.getJSONObject(i);
|
||||
com.alibaba.fastjson.JSONObject post = new com.alibaba.fastjson.JSONObject();
|
||||
post.put("dept_id",jsonObject.getString("dept_id"));
|
||||
post.put("title",jsonObject.getString("title"));
|
||||
postArray.add(post);
|
||||
}
|
||||
}
|
||||
bodys.put("mdm_customer", mdmCustomer);
|
||||
bodys.put("mdm_customer_bank", mdmCustomerBankAll);
|
||||
mdmUser.put("items",postArray);
|
||||
bodys.put("mdm_dd_user",mdmUser);
|
||||
returnObject.put("bodys",bodys.toJSONString());
|
||||
return returnObject.toJSONString();
|
||||
|
||||
|
|
|
@ -47,7 +47,7 @@ public class DeliveryOrderDTO {
|
|||
private String cmemo;
|
||||
//子表
|
||||
@JSONField(ordinal = 12)
|
||||
private List<DeliveryDetailDTO> itesm;
|
||||
private List<DeliveryDetailDTO> items;
|
||||
|
||||
public String getDlid() {
|
||||
return dlid;
|
||||
|
@ -145,11 +145,11 @@ public class DeliveryOrderDTO {
|
|||
this.cmemo = cmemo;
|
||||
}
|
||||
|
||||
public List<DeliveryDetailDTO> getItesm() {
|
||||
return itesm;
|
||||
public List<DeliveryDetailDTO> getItems() {
|
||||
return items;
|
||||
}
|
||||
|
||||
public void setItesm(List<DeliveryDetailDTO> itesm) {
|
||||
this.itesm = itesm;
|
||||
public void setItems(List<DeliveryDetailDTO> items) {
|
||||
this.items = items;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -45,14 +45,16 @@ public class DeliveryOrderEntity extends BaseEntity {
|
|||
private String pushFlagField;
|
||||
//帐套名
|
||||
private String dbname;
|
||||
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private String startTime;//定时任务执行时传入的开始时间
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private String endTime;//定时任务执行时传入的结束时间
|
||||
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
//最后操作时间, isnull(dmodifysystime,dcreatesystime)
|
||||
private String lasttime;
|
||||
public String getDlid() {
|
||||
return dlid;
|
||||
}
|
||||
|
@ -203,4 +205,11 @@ public class DeliveryOrderEntity extends BaseEntity {
|
|||
public void setEndTime(String endTime) {
|
||||
this.endTime = endTime;
|
||||
}
|
||||
public String getLasttime() {
|
||||
return lasttime;
|
||||
}
|
||||
|
||||
public void setLasttime(String lasttime) {
|
||||
this.lasttime = lasttime;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -47,8 +47,8 @@
|
|||
<if test="ccusname != null and ccusname !='' "> and ccusname = #{ccusname} </if>
|
||||
<if test="csocode != null and csocode !='' "> and csocode = #{csocode} </if>
|
||||
<if test="bReturnFlag != null and bReturnFlag !='' "> and bReturnFlag = #{bReturnFlag} </if>
|
||||
<if test="startTime != null and startTime !='' "> and dmodifysystime >= #{startTime} </if>
|
||||
<if test="endTime != null and endTime !='' "><![CDATA[ and dmodifysystime < #{endTime} ]]> </if>
|
||||
<if test="startTime != null and startTime !='' "> and lasttime >= #{startTime} </if>
|
||||
<if test="endTime != null and endTime !='' "><![CDATA[ and lasttime < #{endTime} ]]> </if>
|
||||
and cVerifier is not null
|
||||
</trim>
|
||||
order by dlid
|
||||
|
|
|
@ -25,7 +25,7 @@ public class MomOrderDTO {
|
|||
private String createuser;
|
||||
//表体
|
||||
@JSONField(ordinal = 5)
|
||||
private List<MomOrderDetailDTO> itesm;
|
||||
private List<MomOrderDetailDTO> items;
|
||||
public String getMoId() {
|
||||
return moId;
|
||||
}
|
||||
|
@ -58,11 +58,11 @@ public class MomOrderDTO {
|
|||
this.createuser = createuser;
|
||||
}
|
||||
|
||||
public List<MomOrderDetailDTO> getItesm() {
|
||||
return itesm;
|
||||
public List<MomOrderDetailDTO> getItems() {
|
||||
return items;
|
||||
}
|
||||
|
||||
public void setItesm(List<MomOrderDetailDTO> itesm) {
|
||||
this.itesm = itesm;
|
||||
public void setItems(List<MomOrderDetailDTO> items) {
|
||||
this.items = items;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -30,6 +30,9 @@ public class MomOrderDetailDTO {
|
|||
@JSONField(ordinal = 7)
|
||||
private String mdeptcode;
|
||||
|
||||
//行号
|
||||
@JSONField(ordinal = 8)
|
||||
private String sortSeq;
|
||||
public String getCinvcode() {
|
||||
return cinvcode;
|
||||
}
|
||||
|
@ -85,4 +88,12 @@ public class MomOrderDetailDTO {
|
|||
public void setMdeptcode(String mdeptcode) {
|
||||
this.mdeptcode = mdeptcode;
|
||||
}
|
||||
|
||||
public String getSortSeq() {
|
||||
return sortSeq;
|
||||
}
|
||||
|
||||
public void setSortSeq(String sortSeq) {
|
||||
this.sortSeq = sortSeq;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
package com.hzya.frame.u8.production.entity;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.hzya.frame.web.entity.BaseEntity;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
/**
|
||||
* @Description u8生产订单表体 mom_orderdetail
|
||||
|
@ -24,10 +26,19 @@ public class MomOrderDetailEntity extends BaseEntity {
|
|||
private String mdeptname;
|
||||
//部门编码
|
||||
private String mdeptcode;
|
||||
//行号
|
||||
private String sortSeq;
|
||||
//审核人
|
||||
private String relsUser;
|
||||
//审核时间
|
||||
private String relsTime;
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private String startTime;//定时任务执行时传入的开始时间
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private String endTime;//定时任务执行时传入的结束时间
|
||||
|
||||
public String getMoId() {
|
||||
return moId;
|
||||
}
|
||||
|
@ -107,4 +118,28 @@ public class MomOrderDetailEntity extends BaseEntity {
|
|||
public void setRelsTime(String relsTime) {
|
||||
this.relsTime = relsTime;
|
||||
}
|
||||
|
||||
public String getStartTime() {
|
||||
return startTime;
|
||||
}
|
||||
|
||||
public void setStartTime(String startTime) {
|
||||
this.startTime = startTime;
|
||||
}
|
||||
|
||||
public String getEndTime() {
|
||||
return endTime;
|
||||
}
|
||||
|
||||
public void setEndTime(String endTime) {
|
||||
this.endTime = endTime;
|
||||
}
|
||||
|
||||
public String getSortSeq() {
|
||||
return sortSeq;
|
||||
}
|
||||
|
||||
public void setSortSeq(String sortSeq) {
|
||||
this.sortSeq = sortSeq;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
<result property="auxqty" column="auxqty" />
|
||||
<result property="mdeptname" column="mdeptname" />
|
||||
<result property="mdeptcode" column="mdeptcode" />
|
||||
<result property="sortSeq" column="sortSeq" />
|
||||
<result property="relsUser" column="relsUser" />
|
||||
<result property="relsTime" column="relsTime" />
|
||||
</resultMap>
|
||||
|
@ -22,6 +23,7 @@
|
|||
auxqty,
|
||||
mdeptname,
|
||||
mdeptcode,
|
||||
sortSeq,
|
||||
relsUser,
|
||||
relsTime
|
||||
</sql>
|
||||
|
@ -34,6 +36,8 @@
|
|||
<if test="moId != null ">moId= #{moId} </if>
|
||||
<if test="cinvcode != null and cinvcode !='' "> and cinvcode = #{cinvcode} </if>
|
||||
<if test="cinvname != null and cinvname !='' "> and cinvname = #{cinvname} </if>
|
||||
<if test="startTime != null and startTime !='' "> and relsTime >= #{startTime} </if>
|
||||
<if test="endTime != null and endTime !='' "><![CDATA[ and relsTime < #{endTime} ]]> </if>
|
||||
</trim>
|
||||
order by moId
|
||||
</select>
|
||||
|
|
|
@ -34,6 +34,11 @@ public class MomOrderEntity extends BaseEntity {
|
|||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private String endTime;//定时任务执行时传入的结束时间
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
//最后操作时间, isnull(dmodifysystime,dcreatesystime)
|
||||
private String lasttime;
|
||||
|
||||
public String getMoId() {
|
||||
return moId;
|
||||
}
|
||||
|
@ -120,4 +125,12 @@ public class MomOrderEntity extends BaseEntity {
|
|||
public void setEndTime(String endTime) {
|
||||
this.endTime = endTime;
|
||||
}
|
||||
|
||||
public String getLasttime() {
|
||||
return lasttime;
|
||||
}
|
||||
|
||||
public void setLasttime(String lasttime) {
|
||||
this.lasttime = lasttime;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -27,8 +27,8 @@
|
|||
<trim prefix="where" prefixOverrides="and">
|
||||
<if test="moId != null ">moId= #{moId} </if>
|
||||
<if test="mocode != null and mocode !='' "> and mocode = #{mocode} </if>
|
||||
<if test="startTime != null and startTime !='' "> and modifytime >= #{startTime} </if>
|
||||
<if test="endTime != null and endTime !='' "><![CDATA[ and modifytime < #{endTime} ]]> </if>
|
||||
<if test="startTime != null and startTime !='' "> and lasttime >= #{startTime} </if>
|
||||
<if test="endTime != null and endTime !='' "><![CDATA[ and lasttime < #{endTime} ]]> </if>
|
||||
</trim>
|
||||
order by moId
|
||||
</select>
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
package com.hzya.frame.webapp.entrance.controler;
|
||||
|
||||
import cn.hutool.extra.servlet.ServletUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.hzya.frame.bip.v3.v2207.service.IBipSsoService;
|
||||
import com.hzya.frame.sysnew.application.service.ISysApplicationService;
|
||||
import com.hzya.frame.sys.entity.EsbReturnEntity;
|
||||
|
@ -35,8 +34,18 @@ import javax.servlet.ServletRequest;
|
|||
import javax.servlet.ServletResponse;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.File;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.nio.file.Paths;
|
||||
import java.nio.file.StandardCopyOption;
|
||||
import java.util.Enumeration;
|
||||
import java.util.zip.ZipEntry;
|
||||
import java.util.zip.ZipFile;
|
||||
|
||||
/**
|
||||
* @Content程序唯一入口controller
|
||||
|
@ -112,12 +121,43 @@ public class EntranceController {
|
|||
logger.info("-------------------结束调用上传文件upload接口-------------------");
|
||||
return jsonResultEntity;
|
||||
}
|
||||
/**
|
||||
* 根据文件保存的新名称下载文件
|
||||
*
|
||||
* @param fileSaveName
|
||||
* @return
|
||||
*/
|
||||
|
||||
@RequestMapping(value = "/pluginfileUpload", method = RequestMethod.POST)
|
||||
@ResponseBody
|
||||
public JsonResultEntity pluginfileUpload(MultipartFile file, FileUploadDto entity,String pluginPackageName, ServletRequest servletRequest, ServletResponse servletResponse) {
|
||||
JsonResultEntity jsonResultEntity = null;
|
||||
logger.info("-------------------开始调用上传插件附件upload接口-------------------");
|
||||
try {
|
||||
jsonResultEntity = entranceService.pluginfileUpload(file, entity,pluginPackageName,servletRequest,servletResponse);
|
||||
} catch (Exception e) {
|
||||
jsonResultEntity = BaseResult.getFailureMessageEntity(e.getMessage());
|
||||
}
|
||||
logger.info("-------------------结束调用上传插件附件upload接口-------------------");
|
||||
return jsonResultEntity;
|
||||
}
|
||||
|
||||
@ResponseBody
|
||||
@RequestMapping(value = "/pluginZipUpdate")
|
||||
public JsonResultEntity pluginZipUpate(FileUploadDto fileUploadDto){
|
||||
JsonResultEntity jsonResultEntity = null;
|
||||
logger.info("-------------------开始调用插件更新接口-------------------");
|
||||
try{
|
||||
jsonResultEntity = entranceService.pluginZipUpate(fileUploadDto);
|
||||
} catch (Exception e) {
|
||||
jsonResultEntity = BaseResult.getFailureMessageEntity(e.getMessage());
|
||||
}
|
||||
logger.info("-------------------结束调用插件更新接口------------------");
|
||||
return jsonResultEntity;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 根据文件保存的新名称下载文件
|
||||
*
|
||||
* @param fileSaveName
|
||||
* @return
|
||||
*/
|
||||
@RequestMapping(value = "/option/fileDownload")
|
||||
public ResponseEntity<byte[]> fileDownload(String fileSaveName) {
|
||||
ResponseEntity<byte[]> responseEntity = null;
|
||||
|
|
Loading…
Reference in New Issue