This commit is contained in:
lvleigang 2024-06-24 11:57:44 +08:00
commit 467b162b0d
8 changed files with 322 additions and 55 deletions

View File

@ -0,0 +1,74 @@
package com.hzya.frame.seeyon.cap4.form.dto;
import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import java.util.List;
/**
* @Description 无流程表单批量保存请求参数
* @Author xiangerlin
* @Date 2024/1/8 11:18
**/
public class FormDTO {
@JSONField(ordinal = 4)
private String formCode;//模版编号
@JSONField(ordinal = 5)
private String loginName;//模版编号
@JSONField(ordinal = 2)
private String rightId;//权限id找到无流程表单点新增弹出的窗口上会有这个参数
@JSONField(ordinal = 3)
private List<FormDataDTO> dataList;//导入的数据
@JSONField(ordinal = 1)
private String[] uniqueFiled;//更新用的唯一标识
@JSONField(ordinal = 6)
private Boolean doTrigger;//是否执行触发(Since V8.0sp2),测试中发现传了这个参数会报错
public String getFormCode() {
return formCode;
}
public void setFormCode(String formCode) {
this.formCode = formCode;
}
public String getLoginName() {
return loginName;
}
public void setLoginName(String loginName) {
this.loginName = loginName;
}
public String getRightId() {
return rightId;
}
public void setRightId(String rightId) {
this.rightId = rightId;
}
public List<FormDataDTO> getDataList() {
return dataList;
}
public void setDataList(List<FormDataDTO> dataList) {
this.dataList = dataList;
}
public String[] getUniqueFiled() {
return uniqueFiled;
}
public void setUniqueFiled(String[] uniqueFiled) {
this.uniqueFiled = uniqueFiled;
}
public Boolean getDoTrigger() {
return doTrigger;
}
public void setDoTrigger(Boolean doTrigger) {
this.doTrigger = doTrigger;
}
}

View File

@ -0,0 +1,36 @@
package com.hzya.frame.seeyon.cap4.form.dto;
import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import java.util.List;
/**
* @Description dataList节点
* @Author xiangerlin
* @Date 2024/1/8 11:26
**/
public class FormDataDTO {
@JSONField(ordinal = 1)
private MasterTableDTO masterTable;//主表数据
@JSONField(ordinal = 2)
private List<SubTableDTO> subTables;//子表数据
//private List<> attachmentInfos;//附件列表
public MasterTableDTO getMasterTable() {
return masterTable;
}
public void setMasterTable(MasterTableDTO masterTable) {
this.masterTable = masterTable;
}
public List<SubTableDTO> getSubTables() {
return subTables;
}
public void setSubTables(List<SubTableDTO> subTables) {
this.subTables = subTables;
}
}

View File

@ -0,0 +1,45 @@
package com.hzya.frame.seeyon.cap4.form.dto;
import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import java.util.List;
/**
* @Description 主表数据
* @Author xiangerlin
* @Date 2024/1/8 11:29
**/
public class MasterTableDTO {
@JSONField(ordinal = 1)
private String name;//表名
@JSONField(ordinal = 2)
private RecordDTO record;//数据
@JSONField(ordinal = 3)
private List<String> changedFields;//需要计算的字段
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public RecordDTO getRecord() {
return record;
}
public void setRecord(RecordDTO record) {
this.record = record;
}
public List<String> getChangedFields() {
return changedFields;
}
public void setChangedFields(List<String> changedFields) {
this.changedFields = changedFields;
}
}

View File

@ -0,0 +1,34 @@
package com.hzya.frame.seeyon.cap4.form.dto;
import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import java.util.List;
/**
* @Description record节点
* @Author xiangerlin
* @Date 2024/1/8 11:31
**/
public class RecordDTO {
@JSONField(ordinal = 1)
private long id;//数据id测试中发现新增时这个参数随便填写 不影响导入
@JSONField(ordinal = 2)
private List<RecordFieldDTO> fields;//字段列表
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public List<RecordFieldDTO> getFields() {
return fields;
}
public void setFields(List<RecordFieldDTO> fields) {
this.fields = fields;
}
}

View File

@ -0,0 +1,52 @@
package com.hzya.frame.seeyon.cap4.form.dto;
import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
/**
* @Description masterTablerecordfields的结构
* @Author xiangerlin
* @Date 2024/1/8 11:32
**/
public class RecordFieldDTO {
@JSONField(ordinal = 1)
private String name;//数据域名称 ,fieldxxxx
@JSONField(ordinal = 2)
private String value;//数据值优先
@JSONField(ordinal = 3)
private String showValue;//显示值
public RecordFieldDTO() {
}
public RecordFieldDTO(String name, String value, String showValue) {
this.name = name;
this.value = value;
this.showValue = showValue;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
public String getShowValue() {
return showValue;
}
public void setShowValue(String showValue) {
this.showValue = showValue;
}
}

View File

@ -0,0 +1,9 @@
package com.hzya.frame.seeyon.cap4.form.dto;
/**
* @Description 子表数据
* @Author xiangerlin
* @Date 2024/1/8 11:29
**/
public class SubTableDTO {
}

View File

@ -48,7 +48,7 @@
${key} =#{value}
</foreach>
</set>
where formmain_id=#{formmainId} and sts='Y'
where id=#{id} and sts='Y'
</update>
<!-- 多条件逻辑删除 -->

View File

@ -135,9 +135,6 @@ public class ComparisonServiceImpl extends BaseService<ComparisonEntity, String>
if (!checkStr(jsonObject.getString("optionName"))) {
return BaseResult.getFailureMessageEntity("操作人为空");
}
/*if (!checkStr(jsonObject.getString("rulePrefix"))) {
return BaseResult.getFailureMessageEntity("规则为空");
}*/
ComparisonEntity comparisonEntity = jsonObject.toJavaObject(ComparisonEntity.class);
ComparisonDetailsEntity comparisonDetailsEntity=new ComparisonDetailsEntity();
List<ComparisonEntity> comparisonEntities=new ArrayList<>();
@ -156,10 +153,9 @@ public class ComparisonServiceImpl extends BaseService<ComparisonEntity, String>
JSONObject jsonObjectMain = JSONObject.parseObject(main);
if(jsonObjectMain != null ) {
Map<String, Object> map = new HashMap<>();//将主表数据存到map中
Map<String, Object> mapDetails = new HashMap<>();//将子表数据存到map中
List<Map<String, Object>> mapDetails = new ArrayList<>();//将子表数据存到map中
if (comparisonEntities != null && comparisonEntities.size() > 0) {
map = spliceMainMap(comparisonEntities, jsonObjectMain, map, comparisonEntity);
mapDetails = spliceDetailMap(comparisonEntities, mapDetails, comparisonDetailsEntity, jsonArray);
map = spliceMainMap(comparisonEntities, jsonObjectMain, map, comparisonEntity,comparisonDetailsEntity);
String uuid = null;
if (jsonObjectMain.getString("id") == null) {
uuid = UUIDUtils.getUUID();
@ -182,8 +178,7 @@ public class ComparisonServiceImpl extends BaseService<ComparisonEntity, String>
//查询单据规则 只查询主表得明细表不用
try {
ComparisonEntity comparisonEntityRules = comparisonDao.queryComparisonById(comparisonEntityRule);
String documentRule = comparisonEntityRules.getDocumentRule();
; //"KH-2024-05-30-1";
String documentRule = comparisonEntityRules.getDocumentRule();//"KH-2024-05-30-1";
logger.info("通用数据保存接口中根据mId查询出来的单据规则为:{}", documentRule);
if (documentRule != null) {
//获取规则前缀 CK
@ -214,30 +209,41 @@ public class ComparisonServiceImpl extends BaseService<ComparisonEntity, String>
return BaseResult.getFailureMessageEntity("保存失败");
}
try {
List<JSONObject> list=new ArrayList<>();
JSONObject jsonObjectList=new JSONObject();
//保存主表数据
ComparisonEntity comparisonEntityOne = comparisonDao.saveComparison(comparisonEntityRule);
jsonObjectList.put(comparisonEntityOne.getDbName(),map);
//保存子表数据
if (mapDetails != null && mapDetails.size() > 0) {
String uuidDetail = UUIDUtils.getUUID();
mapDetails.put("id", uuidDetail);
mapDetails.put("formmain_id", uuid);
mapDetails.put("create_user_id", "c796fd9ba4c9f5ff3cc2fa41a040e443");
mapDetails.put("modify_user_id", "c796fd9ba4c9f5ff3cc2fa41a040e443");
mapDetails.put("org_id", "0");
mapDetails.put("create_time", new Date());
mapDetails.put("modify_time", new Date());
mapDetails.put("sts", "Y");
mapDetails.put("data_status","Y");//新增状态
comparisonDetailsEntity.setMapDetails(mapDetails);
ComparisonDetailsEntity comparisonDetailsEntityOne = comparisonDetailsDao.saveComparisonDetails(comparisonDetailsEntity);
//comparisonEntityOne.setComparisonDetailsEntity(comparisonDetailsEntityOne);
map.put("details",mapDetails);
//保存操作日志
//controlsLogDaoimpl.saveControlsLog(uuidDetail,jsonObject.getString("appName"),jsonObject.getString("appCode"),jsonObject.toJSONString(),"接口新增",jsonObject.getString("optionName"),comparisonDetailsEntity.getDbName()+"_option_log");
if (jsonArray != null && jsonArray.size() > 0) {
mapDetails = spliceDetailMap(comparisonEntities, mapDetails, jsonArray);
if(mapDetails.size()>0 && mapDetails!=null){
for (Map<String, Object> mapDetail : mapDetails) {
String uuidDetail = UUIDUtils.getUUID();
mapDetail.put("id", uuidDetail);
mapDetail.put("formmain_id", uuid);
mapDetail.put("create_user_id", "c796fd9ba4c9f5ff3cc2fa41a040e443");
mapDetail.put("modify_user_id", "c796fd9ba4c9f5ff3cc2fa41a040e443");
mapDetail.put("org_id", "0");
mapDetail.put("create_time", new Date());
mapDetail.put("modify_time", new Date());
mapDetail.put("sts", "Y");
mapDetail.put("data_status","Y");//新增状态
comparisonDetailsEntity.setMapDetails(mapDetail);
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<>());
}
list.add(jsonObjectList);
//保存操作日志
controlsLogDaoimpl.saveControlsLog(uuid,jsonObject.getString("appName"),jsonObject.getString("appCode"),jsonObject.toJSONString(),"接口新增",jsonObject.getString("optionName"),comparisonEntityRule.getDbName()+"_option_log");
return BaseResult.getSuccessMessageEntity("保存成功", map);
return BaseResult.getSuccessMessageEntity("保存成功", list);
} catch (Exception e) {
logger.info("保存通用数据时候错误:{}", e.getMessage());
return BaseResult.getFailureMessageEntity("保存失败");
@ -279,10 +285,9 @@ public class ComparisonServiceImpl extends BaseService<ComparisonEntity, String>
return BaseResult.getFailureMessageEntity("更新失败");
}
Map<String,Object> map=new HashMap<>();//将主表数据存到map中
Map<String,Object> mapDetails=new HashMap<>();//将子表数据存到map中
List<Map<String,Object>> mapDetails=new ArrayList<>();//将子表数据存到map中
if(comparisonEntities !=null && comparisonEntities.size()>0) {
map=spliceMainMap(comparisonEntities,jsonObjectMain,map,comparisonEntity);
mapDetails=spliceDetailMap(comparisonEntities,mapDetails,comparisonDetailsEntity,jsonArray);
map=spliceMainMap(comparisonEntities,jsonObjectMain,map,comparisonEntity,comparisonDetailsEntity);
map.put("create_user_id", "c796fd9ba4c9f5ff3cc2fa41a040e443");
map.put("modify_user_id", "c796fd9ba4c9f5ff3cc2fa41a040e443");
map.put("org_id", "0");
@ -303,26 +308,37 @@ public class ComparisonServiceImpl extends BaseService<ComparisonEntity, String>
return BaseResult.getFailureMessageEntity("更新失败",e.getMessage());
}*/
try {
List<JSONObject> jsonObjects=new ArrayList<>();
JSONObject jsonObjectList=new JSONObject();
//保存主表数据
Integer integer = comparisonDao.updateComparisonByType(comparisonEntity);
if (integer > 0) {
jsonObjectList.put(comparisonEntity.getDbName(),map);
if (integer>0) {
//保存子表数据
if (mapDetails != null && mapDetails.size() > 0) {
mapDetails.put("create_user_id", "c796fd9ba4c9f5ff3cc2fa41a040e443");
mapDetails.put("modify_user_id", "c796fd9ba4c9f5ff3cc2fa41a040e443");
mapDetails.put("org_id", "0");
mapDetails.put("modify_time", new Date());
mapDetails.put("sts", "Y");
mapDetails.put("data_status","F");//数据状态
comparisonDetailsEntity.setFormmainId(jsonObjectMain.getString("id"));
comparisonDetailsEntity.setMapDetails(mapDetails);
comparisonDetailsDao.updateComparisonDetailsByType(comparisonDetailsEntity);
//保存操作日志
// controlsLogDaoimpl.saveControlsLog(comparisonDetailsEntity.getId(),jsonObject.getString("appName"),jsonObject.getString("appCode"),jsonObject.toJSONString(),"接口更新",jsonObject.getString("optionName"),comparisonDetailsEntity.getDbName()+"_option_log");
if (jsonArray != null && jsonArray.size() > 0) {
mapDetails=spliceDetailMap(comparisonEntities,mapDetails,jsonArray);
for (Map<String, Object> mapDetail : mapDetails) {
mapDetail.put("create_user_id", "c796fd9ba4c9f5ff3cc2fa41a040e443");
mapDetail.put("modify_user_id", "c796fd9ba4c9f5ff3cc2fa41a040e443");
mapDetail.put("org_id", "0");
mapDetail.put("modify_time", new Date());
mapDetail.put("sts", "Y");
mapDetail.put("data_status","F");//数据状态
//comparisonDetailsEntity.setFormmainId(jsonObjectMain.getString("id"));
comparisonDetailsEntity.setId(String.valueOf(mapDetail.get("id")));
comparisonDetailsEntity.setMapDetails(mapDetail);
comparisonDetailsDao.updateComparisonDetailsByType(comparisonDetailsEntity);
//保存操作日志
// controlsLogDaoimpl.saveControlsLog(comparisonDetailsEntity.getId(),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<>());
}
jsonObjects.add(jsonObjectList);
//保存操作日志
controlsLogDaoimpl.saveControlsLog(comparisonEntity.getId(),jsonObject.getString("appName"),jsonObject.getString("appCode"),jsonObject.toJSONString(),"接口更新",jsonObject.getString("optionName"),comparisonEntity.getDbName()+"_option_log");
return BaseResult.getSuccessMessageEntity("更新成功", integer);
return BaseResult.getSuccessMessageEntity("更新成功", jsonObjects);
}else{
return BaseResult.getFailureMessageEntity("更新失败");
}
@ -436,7 +452,7 @@ public class ComparisonServiceImpl extends BaseService<ComparisonEntity, String>
}
//得到主表数据
private Map<String,Object> spliceMainMap(List<ComparisonEntity> comparisonEntities,JSONObject jsonObjectMain,Map<String, Object> map,ComparisonEntity comparisonEntity){
private Map<String,Object> spliceMainMap(List<ComparisonEntity> comparisonEntities,JSONObject jsonObjectMain,Map<String, Object> map,ComparisonEntity comparisonEntity,ComparisonDetailsEntity comparisonDetailsEntity){
for (ComparisonEntity entity : comparisonEntities) {
//遍历主表下面的所有key,字段名
for (String key : jsonObjectMain.keySet()) {
@ -447,27 +463,29 @@ public class ComparisonServiceImpl extends BaseService<ComparisonEntity, String>
map.put(key, jsonObjectMain.getString(key));
}
}
if(entity.getDbType().equals("2")){
comparisonDetailsEntity.setDbName(entity.getDbName());
}
}
}
return map;
}
//得到明细表数据
private Map<String,Object> spliceDetailMap(List<ComparisonEntity> comparisonEntities,Map<String, Object> mapDetails,ComparisonDetailsEntity comparisonDetailsEntity,JSONArray jsonArray){
private List<Map<String, Object>> spliceDetailMap(List<ComparisonEntity> comparisonEntities,List<Map<String, Object>> mapDetails,JSONArray jsonArray){
if (jsonArray != null && jsonArray.size() > 0) {
for (Object object : jsonArray) {
JSONObject jsonObjectDetails = (JSONObject) JSON.toJSON(object);
for (ComparisonEntity entity : comparisonEntities) {
//遍历主表下面的所有key,字段名
for (String key : jsonObjectDetails.keySet()) {
if (entity.getDbType().equals("2")) {
comparisonDetailsEntity.setDbName(entity.getDbName());
if(entity.getEnName().equals(key)){
mapDetails.put(key, jsonObjectDetails.getString(key));
}
JSONObject jsonObject=new JSONObject();
//遍历主表下面的所有key,字段名
for (String key : jsonObjectDetails.keySet()) {
for (ComparisonEntity entity : comparisonEntities) {
if (entity.getDbType().equals("2") && entity.getEnName().equals(key)) {
jsonObject.put(key,jsonObjectDetails.getString(key));
}
}
}
mapDetails.add(jsonObject);
}
}
return mapDetails;
@ -518,7 +536,6 @@ public class ComparisonServiceImpl extends BaseService<ComparisonEntity, String>
}
break;
case "option":
//获取主表和明细表的字段信息
if(moduleDbEntity.getDbType().equals("3")){
MdmModuleDbFiledsEntity mdmModuleDbFiledsEntity=new MdmModuleDbFiledsEntity();
mdmModuleDbFiledsEntity.setDbId(moduleDbEntity.getId());