新增:责任人导入功能
This commit is contained in:
parent
7f252ad4e0
commit
99e94f7d87
@ -5,6 +5,7 @@ import com.definesys.mpaas.query.db.PageQueryResult;
|
|||||||
import com.xdap.api.moudle.department.pojo.entity.XdapDepartments;
|
import com.xdap.api.moudle.department.pojo.entity.XdapDepartments;
|
||||||
import com.xdap.api.moudle.user.pojo.XdapUsers;
|
import com.xdap.api.moudle.user.pojo.XdapUsers;
|
||||||
import com.xdap.runtime.service.RuntimeDatasourceService;
|
import com.xdap.runtime.service.RuntimeDatasourceService;
|
||||||
|
import com.xdap.self_development.common.MyResponse;
|
||||||
import com.xdap.self_development.controller.form.*;
|
import com.xdap.self_development.controller.form.*;
|
||||||
import com.xdap.self_development.exception.CommonException;
|
import com.xdap.self_development.exception.CommonException;
|
||||||
import com.xdap.self_development.pojo.ResponsiblePerson;
|
import com.xdap.self_development.pojo.ResponsiblePerson;
|
||||||
@ -12,8 +13,10 @@ import com.xdap.self_development.pojo.view.DepartmentUserView;
|
|||||||
import com.xdap.self_development.service.ResponsiblePersonService;
|
import com.xdap.self_development.service.ResponsiblePersonService;
|
||||||
import org.springframework.validation.BindingResult;
|
import org.springframework.validation.BindingResult;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import javax.validation.Valid;
|
import javax.validation.Valid;
|
||||||
import javax.validation.constraints.NotBlank;
|
import javax.validation.constraints.NotBlank;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@ -28,6 +31,36 @@ public class ResponsiblePersonController {
|
|||||||
@Resource
|
@Resource
|
||||||
private ResponsiblePersonService responsiblePersonService;
|
private ResponsiblePersonService responsiblePersonService;
|
||||||
|
|
||||||
|
// 导入责任人
|
||||||
|
@PostMapping("/import")
|
||||||
|
public Response importPerson(
|
||||||
|
@RequestPart("file") MultipartFile file,
|
||||||
|
@RequestPart("userId") String userId
|
||||||
|
) {
|
||||||
|
MyResponse templateImportView = responsiblePersonService.importPerson(file, userId);
|
||||||
|
if (templateImportView.getFlag()) {
|
||||||
|
return Response.error("导入异常").data(templateImportView);
|
||||||
|
} else {
|
||||||
|
return Response.ok().setMessage("导入成功");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 导出责任人
|
||||||
|
@GetMapping("/export")
|
||||||
|
public void exportPerson(
|
||||||
|
HttpServletResponse response
|
||||||
|
) {
|
||||||
|
responsiblePersonService.exportPerson(response);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取导入模板
|
||||||
|
@GetMapping("/getImportTemplate")
|
||||||
|
public void getImportTemplate(
|
||||||
|
HttpServletResponse response
|
||||||
|
) {
|
||||||
|
responsiblePersonService.exportVoidPerson(response);
|
||||||
|
}
|
||||||
|
|
||||||
// 判断是否为责任人
|
// 判断是否为责任人
|
||||||
@GetMapping("/isResponsiblePerson")
|
@GetMapping("/isResponsiblePerson")
|
||||||
public Response isResponsiblePerson(
|
public Response isResponsiblePerson(
|
||||||
|
|||||||
@ -0,0 +1,43 @@
|
|||||||
|
package com.xdap.self_development.listener;
|
||||||
|
|
||||||
|
import com.alibaba.excel.context.AnalysisContext;
|
||||||
|
import com.alibaba.excel.read.listener.ReadListener;
|
||||||
|
import com.xdap.self_development.common.MyResponse;
|
||||||
|
import com.xdap.self_development.pojo.ResponsiblePerson;
|
||||||
|
import com.xdap.self_development.pojo.view.XdapUserView;
|
||||||
|
import com.xdap.self_development.service.ResponsiblePersonService;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class PersonReadListener implements ReadListener<ResponsiblePerson> {
|
||||||
|
MyResponse problems;
|
||||||
|
private final ResponsiblePersonService responsiblePersonService;
|
||||||
|
private List<ResponsiblePerson> cachedDataList;
|
||||||
|
|
||||||
|
public PersonReadListener(ResponsiblePersonService responsiblePersonService, MyResponse problems) {
|
||||||
|
this.problems = problems;
|
||||||
|
this.responsiblePersonService = responsiblePersonService;
|
||||||
|
this.cachedDataList = new ArrayList<>();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void invoke(ResponsiblePerson responsiblePerson, AnalysisContext analysisContext) {
|
||||||
|
XdapUserView user = responsiblePersonService
|
||||||
|
.getUserByDeptAndName(responsiblePerson.getDepartment(), responsiblePerson.getPartsName());
|
||||||
|
if (user == null || user.getUserId() == null) {
|
||||||
|
problems.setFlag(true);
|
||||||
|
problems.getErrors().add("责任人导入失败:" + responsiblePerson.getPartsName() + "无法找到");
|
||||||
|
} else {
|
||||||
|
responsiblePerson.setUserId(user.getUserId());
|
||||||
|
responsiblePerson.setDepartmentId(user.getDepartmentId());
|
||||||
|
cachedDataList.add(responsiblePerson);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void doAfterAllAnalysed(AnalysisContext analysisContext) {
|
||||||
|
responsiblePersonService.importAllPerson(cachedDataList, problems);
|
||||||
|
cachedDataList.clear();
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -1,5 +1,6 @@
|
|||||||
package com.xdap.self_development.pojo;
|
package com.xdap.self_development.pojo;
|
||||||
|
|
||||||
|
import com.alibaba.excel.annotation.ExcelProperty;
|
||||||
import com.definesys.mpaas.query.annotation.*;
|
import com.definesys.mpaas.query.annotation.*;
|
||||||
import com.definesys.mpaas.query.model.MpaasBasePojo;
|
import com.definesys.mpaas.query.model.MpaasBasePojo;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@ -17,11 +18,14 @@ public class ResponsiblePerson extends MpaasBasePojo {
|
|||||||
private String id;
|
private String id;
|
||||||
private String departmentId;
|
private String departmentId;
|
||||||
private String userId;
|
private String userId;
|
||||||
|
@ExcelProperty("责任部门")
|
||||||
private String department;
|
private String department;
|
||||||
|
@ExcelProperty("子系统")
|
||||||
private String subsystem;
|
private String subsystem;
|
||||||
private String partsName;
|
private String partsName;
|
||||||
private Integer personLevel;
|
private Integer personLevel;
|
||||||
|
|
||||||
|
@ExcelProperty("责任人")
|
||||||
@Column(type = ColumnType.CALCULATE)
|
@Column(type = ColumnType.CALCULATE)
|
||||||
private String username;
|
private String username;
|
||||||
}
|
}
|
||||||
@ -0,0 +1,15 @@
|
|||||||
|
package com.xdap.self_development.pojo.view;
|
||||||
|
|
||||||
|
import com.definesys.mpaas.query.annotation.SQL;
|
||||||
|
import com.definesys.mpaas.query.annotation.SQLQuery;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@SQLQuery(value = {
|
||||||
|
@SQL(view = "getUserByDeptAndName",
|
||||||
|
sql = "SELECT xu.id AS userId, xd.id AS departmentId FROM xdap_users xu LEFT JOIN xdap_dept_users xdu ON xu.id = xdu.user_id LEFT JOIN xdap_departments xd ON xdu.department_id = xd.id WHERE xu.username = #username AND xd.structure_name = #department")
|
||||||
|
})
|
||||||
|
@Data
|
||||||
|
public class XdapUserView {
|
||||||
|
private String userId;
|
||||||
|
private String departmentId;
|
||||||
|
}
|
||||||
@ -2,12 +2,17 @@ package com.xdap.self_development.service;
|
|||||||
|
|
||||||
import com.definesys.mpaas.query.db.PageQueryResult;
|
import com.definesys.mpaas.query.db.PageQueryResult;
|
||||||
import com.xdap.api.moudle.user.pojo.XdapUsers;
|
import com.xdap.api.moudle.user.pojo.XdapUsers;
|
||||||
|
import com.xdap.self_development.common.MyResponse;
|
||||||
import com.xdap.self_development.controller.form.*;
|
import com.xdap.self_development.controller.form.*;
|
||||||
import com.xdap.self_development.pojo.ResponsiblePerson;
|
import com.xdap.self_development.pojo.ResponsiblePerson;
|
||||||
|
import com.xdap.self_development.pojo.view.XdapUserView;
|
||||||
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import javax.validation.Valid;
|
import javax.validation.Valid;
|
||||||
import javax.validation.constraints.NotBlank;
|
import javax.validation.constraints.NotBlank;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
public interface ResponsiblePersonService {
|
public interface ResponsiblePersonService {
|
||||||
@ -29,4 +34,14 @@ public interface ResponsiblePersonService {
|
|||||||
|
|
||||||
Set<String> getAllSubsystem();
|
Set<String> getAllSubsystem();
|
||||||
ArrayList<XdapUsers> getUserBydepartment(String dept,String subsystem);
|
ArrayList<XdapUsers> getUserBydepartment(String dept,String subsystem);
|
||||||
|
|
||||||
|
void exportPerson(HttpServletResponse response);
|
||||||
|
|
||||||
|
void exportVoidPerson(HttpServletResponse response);
|
||||||
|
|
||||||
|
MyResponse importPerson(MultipartFile file, String userId);
|
||||||
|
|
||||||
|
XdapUserView getUserByDeptAndName(@NotBlank String dept, @NotBlank String name);
|
||||||
|
|
||||||
|
void importAllPerson(List<ResponsiblePerson> cachedDataList, MyResponse problems);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,19 +1,32 @@
|
|||||||
package com.xdap.self_development.service.impl;
|
package com.xdap.self_development.service.impl;
|
||||||
|
|
||||||
|
import com.alibaba.excel.EasyExcel;
|
||||||
|
import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
|
||||||
import com.definesys.mpaas.query.db.PageQueryResult;
|
import com.definesys.mpaas.query.db.PageQueryResult;
|
||||||
import com.xdap.api.moudle.user.pojo.XdapUsers;
|
import com.xdap.api.moudle.user.pojo.XdapUsers;
|
||||||
import com.xdap.runtime.service.RuntimeDatasourceService;
|
import com.xdap.runtime.service.RuntimeDatasourceService;
|
||||||
|
import com.xdap.self_development.common.MyResponse;
|
||||||
import com.xdap.self_development.config.BusinessDatabase;
|
import com.xdap.self_development.config.BusinessDatabase;
|
||||||
import com.xdap.self_development.controller.form.*;
|
import com.xdap.self_development.controller.form.*;
|
||||||
import com.xdap.self_development.exception.CommonException;
|
import com.xdap.self_development.exception.CommonException;
|
||||||
|
import com.xdap.self_development.listener.PersonReadListener;
|
||||||
import com.xdap.self_development.pojo.Parameter;
|
import com.xdap.self_development.pojo.Parameter;
|
||||||
import com.xdap.self_development.pojo.ResponsiblePerson;
|
import com.xdap.self_development.pojo.ResponsiblePerson;
|
||||||
|
import com.xdap.self_development.pojo.view.XdapUserView;
|
||||||
import com.xdap.self_development.service.ResponsiblePersonService;
|
import com.xdap.self_development.service.ResponsiblePersonService;
|
||||||
import com.xdap.self_development.service.XdapDeptUsersService;
|
import com.xdap.self_development.service.XdapDeptUsersService;
|
||||||
import org.apache.commons.lang3.ObjectUtils;
|
import org.apache.commons.lang3.ObjectUtils;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.InputStream;
|
||||||
|
import java.net.URLEncoder;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
@ -156,4 +169,127 @@ public class ResponsiblePersonServiceImpl implements ResponsiblePersonService {
|
|||||||
}
|
}
|
||||||
return xdapUsers1;
|
return xdapUsers1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void exportPerson(HttpServletResponse response) {
|
||||||
|
String fileName = "部门责任人_" +
|
||||||
|
LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd_HH-mm-ss"));
|
||||||
|
try {
|
||||||
|
String encodedFileName = URLEncoder.encode(fileName, "UTF-8").replaceAll("\\+", "%20");
|
||||||
|
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
|
||||||
|
response.setCharacterEncoding("UTF-8");
|
||||||
|
response.setHeader("Content-Disposition", "attachment;filename*=utf-8''" + encodedFileName + ".xlsx");
|
||||||
|
response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate");
|
||||||
|
response.setHeader("Pragma", "no-cache");
|
||||||
|
response.setDateHeader("Expires", 0);
|
||||||
|
|
||||||
|
List<ResponsiblePerson> list = bd.getBusinessDatabase()
|
||||||
|
.viewQueryMode(true).view("getResponsibleAndName")
|
||||||
|
.setVar("level", 1)
|
||||||
|
.doQuery(ResponsiblePerson.class);
|
||||||
|
|
||||||
|
EasyExcel.write(response.getOutputStream(), ResponsiblePerson.class)
|
||||||
|
.registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
|
||||||
|
.includeColumnFieldNames(getIncludeColumnFieldNames())
|
||||||
|
.sheet("责任人")
|
||||||
|
.doWrite(list);
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new CommonException("导出Excel失败: " + e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void exportVoidPerson(HttpServletResponse response) {
|
||||||
|
String fileName = "部门责任人导入模板_" +
|
||||||
|
LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd_HH-mm-ss"));
|
||||||
|
try {
|
||||||
|
String encodedFileName = URLEncoder.encode(fileName, "UTF-8").replaceAll("\\+", "%20");
|
||||||
|
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
|
||||||
|
response.setCharacterEncoding("UTF-8");
|
||||||
|
response.setHeader("Content-Disposition", "attachment;filename*=utf-8''" + encodedFileName + ".xlsx");
|
||||||
|
response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate");
|
||||||
|
response.setHeader("Pragma", "no-cache");
|
||||||
|
response.setDateHeader("Expires", 0);
|
||||||
|
|
||||||
|
List<ResponsiblePerson> list = new ArrayList<>();
|
||||||
|
list.add(new ResponsiblePerson());
|
||||||
|
|
||||||
|
EasyExcel.write(response.getOutputStream(), ResponsiblePerson.class)
|
||||||
|
.registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
|
||||||
|
.includeColumnFieldNames(getIncludeColumnFieldNames())
|
||||||
|
.sheet("责任人")
|
||||||
|
.doWrite(list);
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new CommonException("导出Excel失败: " + e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public MyResponse importPerson(MultipartFile file, String userId) {
|
||||||
|
// 验证文件是否为工作表
|
||||||
|
if (file == null || file.isEmpty()) {
|
||||||
|
throw new CommonException("文件不能为空");
|
||||||
|
}
|
||||||
|
|
||||||
|
String filename = file.getOriginalFilename();
|
||||||
|
if (filename == null ||
|
||||||
|
!(filename.toLowerCase().endsWith(".xls") ||
|
||||||
|
filename.toLowerCase().endsWith(".xlsx"))) {
|
||||||
|
throw new CommonException("只支持 .xls 或 .xlsx 格式的文件");
|
||||||
|
}
|
||||||
|
MyResponse problems =
|
||||||
|
new MyResponse(false, new ArrayList<>(), new StringBuilder("已完成导入:无"));
|
||||||
|
|
||||||
|
try (InputStream inputStream = file.getInputStream()) {
|
||||||
|
EasyExcel.read(
|
||||||
|
inputStream,
|
||||||
|
Parameter.class,
|
||||||
|
new PersonReadListener(this, problems)
|
||||||
|
).doReadAll();
|
||||||
|
|
||||||
|
} catch (IOException e) {
|
||||||
|
throw new CommonException("读取文件失败");
|
||||||
|
}
|
||||||
|
|
||||||
|
return problems;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public XdapUserView getUserByDeptAndName(String dept, String name) {
|
||||||
|
return bd.getBusinessDatabase()
|
||||||
|
.viewQueryMode(true)
|
||||||
|
.view("getResponsibleAndName")
|
||||||
|
.setVar("department", dept)
|
||||||
|
.setVar("username", name)
|
||||||
|
.doQueryFirst(XdapUserView.class);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
public void importAllPerson(List<ResponsiblePerson> cachedDataList, MyResponse problems) {
|
||||||
|
cachedDataList.forEach(item -> {
|
||||||
|
List<ResponsiblePerson> responsiblePeople = bd.getBusinessDatabase()
|
||||||
|
.eq("department_id", item.getDepartmentId())
|
||||||
|
.eq("subsystem", item.getSubsystem())
|
||||||
|
.eq("personLevel", 1)
|
||||||
|
.doQuery(ResponsiblePerson.class);
|
||||||
|
|
||||||
|
if (!responsiblePeople.isEmpty()) {
|
||||||
|
problems.setFlag(false);
|
||||||
|
problems.getErrors().add("部门:" + item.getDepartment() + "子系统:" + item.getSubsystem() + "已存在责任人");
|
||||||
|
} else {
|
||||||
|
bd.getBusinessDatabase().doInsert(item);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private List<String> getIncludeColumnFieldNames() {
|
||||||
|
List<String> fieldNames = new ArrayList<>();
|
||||||
|
fieldNames.add("department");
|
||||||
|
fieldNames.add("subsystem");
|
||||||
|
fieldNames.add("username");
|
||||||
|
return fieldNames;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -6,7 +6,6 @@ import com.alibaba.excel.write.metadata.WriteSheet;
|
|||||||
import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
|
import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
|
||||||
import com.definesys.mpaas.query.db.PageQueryResult;
|
import com.definesys.mpaas.query.db.PageQueryResult;
|
||||||
import com.xdap.self_development.common.MyResponse;
|
import com.xdap.self_development.common.MyResponse;
|
||||||
import com.xdap.self_development.common.UserPermissionGetter;
|
|
||||||
import com.xdap.self_development.config.BusinessDatabase;
|
import com.xdap.self_development.config.BusinessDatabase;
|
||||||
import com.xdap.self_development.controller.form.*;
|
import com.xdap.self_development.controller.form.*;
|
||||||
import com.xdap.self_development.exception.CommonException;
|
import com.xdap.self_development.exception.CommonException;
|
||||||
@ -39,8 +38,6 @@ import java.util.stream.Collectors;
|
|||||||
public class TemplateServiceImpl implements TemplateService {
|
public class TemplateServiceImpl implements TemplateService {
|
||||||
@Resource
|
@Resource
|
||||||
private BusinessDatabase bd;
|
private BusinessDatabase bd;
|
||||||
@Resource
|
|
||||||
private UserPermissionGetter permissionGetter;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PageQueryResult<Template> getTemplateByCondition(TemplatePageForm form) {
|
public PageQueryResult<Template> getTemplateByCondition(TemplatePageForm form) {
|
||||||
@ -187,13 +184,6 @@ public class TemplateServiceImpl implements TemplateService {
|
|||||||
|
|
||||||
List<Parameter> list;
|
List<Parameter> list;
|
||||||
if (form.isTemplateEmpty()) {
|
if (form.isTemplateEmpty()) {
|
||||||
// list = bd.getBusinessDatabase()
|
|
||||||
// .viewQueryMode(true)
|
|
||||||
// .view("selectParametersByTId")
|
|
||||||
// .setVar("templateId", templateDB.getId())
|
|
||||||
// .select("parameterName", "parameterNumber")
|
|
||||||
// .orderBy("parameterNumber", "asc")
|
|
||||||
// .doQuery(Parameter.class);
|
|
||||||
list = new ArrayList<>();
|
list = new ArrayList<>();
|
||||||
list.add(new Parameter());
|
list.add(new Parameter());
|
||||||
} else {
|
} else {
|
||||||
@ -363,6 +353,7 @@ public class TemplateServiceImpl implements TemplateService {
|
|||||||
Parameter existingParam = existingParamMap.get(key);
|
Parameter existingParam = existingParamMap.get(key);
|
||||||
if (existingParam != null) {
|
if (existingParam != null) {
|
||||||
newParam.setId(existingParam.getId());
|
newParam.setId(existingParam.getId());
|
||||||
|
String datils = getParameterChange(existingParam, newParam);
|
||||||
bd.getBusinessDatabase()
|
bd.getBusinessDatabase()
|
||||||
.eq("id", newParam.getId())
|
.eq("id", newParam.getId())
|
||||||
.doUpdate(newParam);
|
.doUpdate(newParam);
|
||||||
@ -372,7 +363,7 @@ public class TemplateServiceImpl implements TemplateService {
|
|||||||
targetTemplate.getTemplateName(),
|
targetTemplate.getTemplateName(),
|
||||||
targetTemplate.getVersion(),
|
targetTemplate.getVersion(),
|
||||||
newParam.getParameterNumber(),
|
newParam.getParameterNumber(),
|
||||||
"更新参数",
|
datils,
|
||||||
targetTemplate.getId(),
|
targetTemplate.getId(),
|
||||||
existingParam.getId(),
|
existingParam.getId(),
|
||||||
Timestamp.valueOf(LocalDateTime.now()),
|
Timestamp.valueOf(LocalDateTime.now()),
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user