fix 81608 企标/国标/外标--新增/编辑,字段输入代码,提示数据库异常

This commit is contained in:
lijiarao
2024-02-07 11:50:34 +08:00
parent 79e8a5c7bd
commit d20f3ee520
4 changed files with 82 additions and 31 deletions
@@ -1,6 +1,8 @@
package com.jero.modules.laws.common.mapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.modules.activiti.process.projectstandard.vo.StandardSelectionVO;
import com.jero.modules.laws.common.vo.ManyStandardSelectionBox;
@@ -79,9 +81,9 @@ public interface LawsCommonMapper {
* @Date: 2023/8/24 15:00
* @Description: 编辑数据
**/
int commonEdit(@org.apache.ibatis.annotations.Param("tableName") String tableName,
@org.apache.ibatis.annotations.Param("updateSql") String updateSql,
@org.apache.ibatis.annotations.Param("id") String id);
int commonEdit(@Param("tableName") String tableName,
@Param(Constants.WRAPPER) UpdateWrapper updateWrapper,
@Param("id") String id);
IPage<ManyStandardSelectionBox> getManyStandardSelectionBox(Page<ManyStandardSelectionBox> page,
@Param("vo") ManyStandardSelectionBoxVO selectionBoxVO);
@@ -43,7 +43,7 @@
<update id="commonEdit">
UPDATE ${tableName}
SET ${updateSql}
set ${ew.sqlSet}
WHERE id = #{id}
</update>
@@ -6,6 +6,7 @@ import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -24,6 +25,7 @@ import com.jero.modules.laws.common.util.ImportUtil;
import com.jero.modules.laws.common.vo.LawsDictModel;
import com.jero.modules.laws.common.vo.ManyStandardSelectionBox;
import com.jero.modules.laws.common.vo.ManyStandardSelectionBoxVO;
import com.jero.modules.laws.documenttool.entity.LawsDocumentSplit;
import com.jero.modules.laws.documenttool.mapper.DocumentSplitMapper;
import com.jero.modules.laws.enterprise.entity.EnterpriseStandardAuthDept;
import com.jero.modules.laws.enterprise.entity.EnterpriseStandardInspectContent;
@@ -678,7 +680,11 @@ public class LawsCommonServiceImpl implements ILawsCommonService {
StringBuilder valuesBuilder = new StringBuilder();
// 对默认的字段赋值
String existId = parameterMap.get(FieldCommon.ID) == null ? "" : parameterMap.get(FieldCommon.ID).toString();
String id = getCommonInsertValue(fieldsBuilder, valuesBuilder, existId);
//先新增后面在编辑
String id = executeInsertByModel(module);
// 更新语句
UpdateWrapper updateWrapper = new UpdateWrapper();
updateWrapper.eq("id",id);
// 拼接要添加的数据
for (Map.Entry<String, Object> entryMap : parameterMap.entrySet()) {
String key = entryMap.getKey();
@@ -688,11 +694,13 @@ public class LawsCommonServiceImpl implements ILawsCommonService {
}
// 如果value不为null和"",则拼接查询条件
if (StringUtils.isNotBlank(value)) {
jointInsertFieldAndValue(fieldList, fieldsBuilder, valuesBuilder, key, value, id, standardNumber);
jointInsertFieldAndValue(fieldList, key, value, id, standardNumber,updateWrapper);
}
}
// 操作数据库进行新增数据
lawsCommonMapper.commonAdd(tableName, fieldsBuilder.toString(), valuesBuilder.toString());
//lawsCommonMapper.commonAdd(tableName, fieldsBuilder.toString(), valuesBuilder.toString());
//根据类型更新数据
executeUpdateWrapperByModel(module,updateWrapper);
// 对标准体系做处理
lawsNodeRelationService.addRelation(standardSystem, standardNumber, id);
@@ -822,7 +830,8 @@ public class LawsCommonServiceImpl implements ILawsCommonService {
StringBuilder recordBuffer = new StringBuilder();
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String now = dateFormat.format(new Date());
Date date = new Date();
String now = dateFormat.format(date);
recordBuffer.append(loginUser.calcNameWorkNo() + " " + now + " 修改" +
standardNumber + "" + standardName + "");
String oldStr = recordBuffer.toString();
@@ -836,11 +845,14 @@ public class LawsCommonServiceImpl implements ILawsCommonService {
.equals(lawsTag.getIsShowFormCreate())).collect(Collectors.toList());
// 更新语句
StringBuilder updateBuilder = new StringBuilder();
UpdateWrapper updateWrapper = new UpdateWrapper();
updateWrapper.eq("id",id);
// 拼接默认的更新语句
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
updateBuilder.append("update_time = " + FieldCommon.STR_TO_DATE_PREFIX + sdf.format(new Date()) + "','%Y-%m-%d %H:%i:%s')," +
" update_by = " + "'" + sysUser.getUsername() + "'");
updateWrapper.set("update_time",date);
updateWrapper.set("update_By",sysUser.getUsername());
// 封装参数的更新语句
for (Map.Entry<String, Object> entryMap : parameterMap.entrySet()) {
String key = entryMap.getKey();
@@ -853,10 +865,13 @@ public class LawsCommonServiceImpl implements ILawsCommonService {
addUpdateRecord(fieldList, oldDataMap, recordBuffer, null, key, value);
// 拼接更新sql语句
jointUpdateFieldAndValue(fieldList, updateBuilder, key, value, id, standardNumber);
jointUpdateFieldAndValue(fieldList, updateWrapper, key, value, id, standardNumber);
}
// 操作数据库进行更新数据
lawsCommonMapper.commonEdit(tableName, updateBuilder.toString(), id);
//lawsDomesticStandardService.update(updateWrapper);
//根据类型更新数据
executeUpdateWrapperByModel(module,updateWrapper);
//lawsCommonMapper.commonEdit(tableName, updateWrapper, id);
// 如果修改了内容
String content = recordBuffer.toString();
if (!oldStr.equals(content)) {
@@ -884,6 +899,38 @@ public class LawsCommonServiceImpl implements ILawsCommonService {
return ResultCommon.OK;
}
private void executeUpdateWrapperByModel(String module, UpdateWrapper updateWrapper) {
if (TableNameEnum.DOMESTIC_REGULATIONS.getValue().equals(module)){
lawsDomesticStandardService.update(updateWrapper);
}else if (TableNameEnum.FOREIGN_REGULATIONS.getValue().equals(module)){
lawsOverseasStandardService.update(updateWrapper);
}else if (TableNameEnum.ENTERPRISE_STANDARDS.getValue().equals(module)){
lawsEnterpriseStandardService.update(updateWrapper);
}else if (TableNameEnum.DOCUMENT_SPLIT.getValue().equals(module)){
documentSplitMapper.update(null,updateWrapper);
}
}
private String executeInsertByModel(String module) {
if (TableNameEnum.DOMESTIC_REGULATIONS.getValue().equals(module)){
LawsDomesticStandard lawsDomesticStandard = new LawsDomesticStandard();
lawsDomesticStandardService.save(lawsDomesticStandard);
return lawsDomesticStandard.getId();
}else if (TableNameEnum.FOREIGN_REGULATIONS.getValue().equals(module)){
LawsOverseasStandard lawsOverseasStandard = new LawsOverseasStandard();
lawsOverseasStandardService.save(lawsOverseasStandard);
return lawsOverseasStandard.getId();
}else if (TableNameEnum.ENTERPRISE_STANDARDS.getValue().equals(module)){
LawsEnterpriseStandard lawsEnterpriseStandard = new LawsEnterpriseStandard();
lawsEnterpriseStandardService.save(lawsEnterpriseStandard);
return lawsEnterpriseStandard.getId();
}else {
LawsDocumentSplit lawsDocumentSplit = new LawsDocumentSplit();
documentSplitMapper.insert(lawsDocumentSplit);
return lawsDocumentSplit.getId();
}
}
/**
* @Author: liao
* @Date: 2023/9/19 11:53
@@ -1730,16 +1777,16 @@ public class LawsCommonServiceImpl implements ILawsCommonService {
* @Date: 2023/8/24 9:53
* @Description: 拼接添加字段和数据值
**/
private void jointInsertFieldAndValue(List<LawsTag> fieldList, StringBuilder fieldsBuilder,
StringBuilder valuesBuilder, String key, String value,
String id, String standardNumber) {
private void jointInsertFieldAndValue(List<LawsTag> fieldList,
String key, String value,
String id, String standardNumber, UpdateWrapper updateWrapper) {
if (FieldCommon.SPECIFIC_UPDATE_FIELD.contains(key)) {
// 特殊字段不做新增sql
return;
}
for (LawsTag lawsTag : fieldList) {
if (key.equals(lawsTag.getDbFieldName())) {
jointInsertFieldSetValue(lawsTag, fieldsBuilder, valuesBuilder, key, value, id, standardNumber);
jointInsertFieldSetValue(lawsTag, key, value, id, standardNumber,updateWrapper);
}
}
// 如果是标准编号
@@ -1749,9 +1796,8 @@ public class LawsCommonServiceImpl implements ILawsCommonService {
// 如果新增表单里面没有标准编号,则手动添加
if (CollectionUtils.isEmpty(standardNumberList)) {
// 拼接新增字段
fieldsBuilder.append("," + key);
// 对数据值做格式处理
valuesBuilder.append(",'" + value + "'");
updateWrapper.set(key, value);
}
}
}
@@ -1761,16 +1807,16 @@ public class LawsCommonServiceImpl implements ILawsCommonService {
* @Date: 2023/9/25 9:49
* @Description: 新增字段设置value
**/
private void jointInsertFieldSetValue(LawsTag lawsTag, StringBuilder fieldsBuilder,
StringBuilder valuesBuilder, String key, String value,
String id, String standardNumber) {
private void jointInsertFieldSetValue(LawsTag lawsTag,
String key, String value,
String id, String standardNumber, UpdateWrapper updateWrapper) {
if (LawsFieldTypeEnum.FILE_UP.getValue().equals(lawsTag.getFieldShowType())) {
updateOSSFile(key, value, id, standardNumber);
} else {
// 拼接新增字段
fieldsBuilder.append("," + key);
// 对数据值做格式处理
valuesBuilder.append("," + setValue(lawsTag.getFieldShowType(), value));
String setValue = setValue(lawsTag.getFieldShowType(), value);
updateWrapper.set(key,setValue);
}
}
@@ -1845,7 +1891,7 @@ public class LawsCommonServiceImpl implements ILawsCommonService {
* @Date: 2023/8/24 9:53
* @Description: 拼接更新语句字段和数据值
**/
private void jointUpdateFieldAndValue(List<LawsTag> fieldList, StringBuilder updateBuilder,
private void jointUpdateFieldAndValue(List<LawsTag> fieldList, UpdateWrapper updateWrapper,
String key, String value, String id, String standardNumber) {
if (FieldCommon.SPECIFIC_UPDATE_FIELD.contains(key)) {
// 特殊字段不做更新sql
@@ -1853,7 +1899,7 @@ public class LawsCommonServiceImpl implements ILawsCommonService {
}
for (LawsTag lawsTag : fieldList) {
if (key.equals(lawsTag.getDbFieldName())) {
jointUpdateFieldSetValue(lawsTag, updateBuilder, key, value, id, standardNumber);
jointUpdateFieldSetValue(lawsTag, updateWrapper, key, value, id, standardNumber);
}
}
}
@@ -1863,14 +1909,15 @@ public class LawsCommonServiceImpl implements ILawsCommonService {
* @Date: 2023/9/25 10:32
* @Description: 设置更新语句value
**/
private void jointUpdateFieldSetValue(LawsTag lawsTag, StringBuilder updateBuilder,
private void jointUpdateFieldSetValue(LawsTag lawsTag, UpdateWrapper updateWrapper,
String key, String value, String id, String standardNumber) {
if (LawsFieldTypeEnum.FILE_UP.getValue().equals(lawsTag.getFieldShowType())) {
removeOSSFile(key, id);
updateOSSFile(key, value, id, standardNumber);
} else {
// 做格式处理
updateBuilder.append("," + key + " = " + setValue(lawsTag.getFieldShowType(), value));
String setValue = setValue(lawsTag.getFieldShowType(), value);
updateWrapper.set(key , setValue);
}
}
@@ -1884,14 +1931,15 @@ public class LawsCommonServiceImpl implements ILawsCommonService {
// 如果是单日期格式,做格式处理
if (StringUtils.isBlank(value)) {
value = null;
} else {
value = FieldCommon.STR_TO_DATE_PREFIX + value + FieldCommon.STR_TO_DATE_SUFFIX;
}
//else {
// value = FieldCommon.STR_TO_DATE_PREFIX + value + FieldCommon.STR_TO_DATE_SUFFIX;
//}
} else {
// 如果是多日期格式做处理
value = processDateManyTypeValue(value, fieldShowType);
// 字符串做处理
value = "'" + value + "'";
//value = "'" + value + "'";
}
return value;
}
@@ -1,6 +1,7 @@
package com.jero.modules.laws.documenttool.mapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -18,7 +19,7 @@ import java.util.Map;
* @Date: 2023/10/12/23:03
* @Description: 文档拆分
*/
public interface DocumentSplitMapper {
public interface DocumentSplitMapper extends BaseMapper<LawsDocumentSplit> {
/**
* 文档拆分-分页列表查询
* @param page