板材、配件修改

This commit is contained in:
lym
2025-02-14 15:15:53 +08:00
parent f08bb046f1
commit 7d142b6afe
19 changed files with 179 additions and 87 deletions
@@ -6,9 +6,11 @@ import com.cf.imes.framework.common.exception.ErrorCode;
* @author there
* 生产管理服务错误码枚举 使用1-004-000-000 段
*/
public interface ErrorCodeConstants {
public class ErrorCodeConstants {
public static final ErrorCode PARTS_NOT_EXISTS = new ErrorCode(1_004_001_000, "配件不存在");
public static final ErrorCode PARTS_GOOD_ID_EXISTS = new ErrorCode(1_004_001_001, "配件标识已存在");
public static final ErrorCode PARTS_GOOD_ID_EXISTS = new ErrorCode(1_004_001_001, "配件编号已存在");
public static final ErrorCode PARTS_UNIT_NOT_NULL = new ErrorCode(1_004_001_002, "配件-组件或五金或封边条,单位禁止为空");
public static final ErrorCode PARTS_EDGE_NOT_NULL = new ErrorCode(1_004_001_003, "配件-封边条颜色、宽厚禁止为空");
}
@@ -12,7 +12,8 @@ public enum CategoryEnum implements ObjectEnum{
ASSEMBLY("组件"),
HARDWARE("五金"),
EDGING("封边条");
EDGING("封边条"),
OTHER("其他");
/**
* 类别名称
@@ -18,35 +18,32 @@ import lombok.experimental.Accessors;
@Accessors(chain = false) // 设置 chain = false,避免用户导入有问题
public class PartsImportExcelVO {
@ExcelProperty("配件编号")
@ExcelProperty("物料编号")
private String goodsId;
@ExcelProperty("复合部件")
private String isComposite;
@ExcelProperty("配件类型")
@ExcelProperty("分类")
private String category;
@ExcelProperty("配件子类")
@ExcelProperty("复合")
private String isComposite;
@ExcelProperty("子类")
private String type;
@ExcelProperty("配件名称")
@ExcelProperty("物料名称")
private String name;
@ExcelProperty("型号")
private String model;
@ExcelProperty("颜色")
private String color;
@ExcelProperty("规格")
private String spec;
@ExcelProperty("材质")
private String material;
@ExcelProperty("单位")
private String unit;
@ExcelProperty("规格")
private String spec;
@ExcelProperty("颜色")
private String color;
@ExcelProperty("品牌")
private String brand;
@@ -54,9 +51,6 @@ public class PartsImportExcelVO {
@ExcelProperty("厂家")
private String factor;
@ExcelProperty("价格")// float(8,3)
private String price;
@ExcelProperty("长度")// float(8,3)
private String length;
@@ -69,6 +63,12 @@ public class PartsImportExcelVO {
@ExcelProperty("备注")
private String remark;
@ExcelProperty("价格")// float(8,3)
private String price;
@ExcelProperty("单位")
private String unit;
@ExcelProperty("上传结果")
private String result;
@@ -20,6 +20,7 @@ public class PartsRespVO {
@Schema(description = "配件 ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "11238")
@ExcelProperty("配件ID")
@ExcelIgnore
private Long id;
@Schema(description = "设计端商品ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "26589")
@@ -26,11 +26,11 @@ public class PartsSaveReqVO {
@Schema(description = "颜色", requiredMode = Schema.RequiredMode.REQUIRED)
@Size(max = 32, message = "颜色长度不能超过32个字符")
@NotEmpty(message = "颜色不能为空")
// @NotEmpty(message = "颜色不能为空")
private String color;
@Schema(description = "材质:颗粒板、欧松板、多层板、生态板、禾香板、密度板、实木、铝蜂窝板、铝塑板", requiredMode = Schema.RequiredMode.REQUIRED)
@NotEmpty(message = "材质:颗粒板、欧松板、多层板、生态板、禾香板、密度板、实木、铝蜂窝板、铝塑板不能为空")
// @NotEmpty(message = "材质:颗粒板、欧松板、多层板、生态板、禾香板、密度板、实木、铝蜂窝板、铝塑板不能为空")
@Size(max = 64, message = "材质长度不能超过64个字符")
private String material;
@@ -45,7 +45,7 @@ public class PartsSaveReqVO {
private String type;
@Schema(description = "型号", requiredMode = Schema.RequiredMode.REQUIRED)
@NotEmpty(message = "型号不能为空")
// @NotEmpty(message = "型号不能为空")
@Size(max = 64, message = "型号长度不能超过64个字符")
private String model;
@@ -78,12 +78,12 @@ public class PartsSaveReqVO {
private String factory;
@Schema(description = "单位", requiredMode = Schema.RequiredMode.REQUIRED)
@NotEmpty(message = "单位不能为空")
// @NotEmpty(message = "单位不能为空")
@Size(max = 32, message = "单位长度不能超过32个字符")
private String unit;
@Schema(description = "是否复合部件:0 否 1 是", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "是否复合部件不能为空")
// @NotNull(message = "是否复合部件不能为空")
private Boolean isComposite;
@Schema(description = "子配件ID列表,复合部件时记录子配件ID,半角逗号分隔", requiredMode = Schema.RequiredMode.REQUIRED, example = "你说的对")
@@ -32,6 +32,7 @@ import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import javax.validation.constraints.NotEmpty;
@Tag(name = "管理后台 - 板材库管理")
@RestController
@@ -113,21 +114,28 @@ public class PlateController {
}
@GetMapping("/get-import-template")
@Operation(summary = "获得导入用户模板")
@Operation(summary = "获得导入板材模板")
// @PreAuthorize("@ss.hasPermission('manage:plate:export')")
@PreAuthorize("@ss.hasAnyPermissions('manage:plate:export','base:plate:export')")
public void importTemplate(HttpServletResponse response) throws IOException {
// 手动创建导出 demo
List<PlateImportExcelVO> list = Arrays.asList(
PlateImportExcelVO.builder().goodsId("SP1123456").goodsName("5mm-多层板-高级灰").material("多层板").width(String.valueOf(1220)).height(String.valueOf(2440))
.thickness(String.valueOf(5)).brand("AAA").spec("2440*1220*5").remark("板材样本").color("高级灰").price("120").texture("").build(),
PlateImportExcelVO.builder().goodsId("SP1123457").goodsName("白玉木兰-欧松板").material("欧松").width(String.valueOf(1220)).height(String.valueOf(2750))
.thickness(String.valueOf(18)).brand("鸿达树").spec("2750*1220*18").remark("测试").color("白玉木兰").price("120").texture("").build()
PlateImportExcelVO.builder().goodsId("BD10010001").goodsName("18mm-多层板-暖白").material("多层板").width(String.valueOf(1220)).height(String.valueOf(2440))
.thickness(String.valueOf(18)).brand("AAA").spec("2440*1220*18").color("暖白").price("120").texture("").build(),
PlateImportExcelVO.builder().goodsId("BD10010002").goodsName("18mm-颗粒板-高级灰").material("多层").width(String.valueOf(1220)).height(String.valueOf(2750))
.thickness(String.valueOf(18)).brand("鸿达树").spec("2750*1220*18").color("高级灰").price("120").texture("").build()
);
// 输出
ExcelUtils.write(response, IMPORT_TEMPLATE, "板材列表", PlateImportExcelVO.class, list);
}
// @GetMapping("/get-import-template")
// @Operation(summary = "获得导入板材模板")
// @Parameter(name = "value", description = "文件类型", required = true, example = "0")
// public void importTemplate(HttpServletResponse response, @RequestParam("value") @NotEmpty(message = "文件路径不能为空") String value) {
// plateService.exportTemplate(response, value);
// }
@PostMapping("/import")
@Operation(summary = "导入板材")
@Parameters({
@@ -1,6 +1,10 @@
package com.cf.imes.module.manage.controller.admin.plate.vo.plate;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.cf.imes.framework.excel.core.annotations.DictFormat;
import com.cf.imes.framework.excel.core.convert.DictConvert;
import com.cf.imes.module.manage.enums.DictTypeConstants;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.AllArgsConstructor;
import lombok.Builder;
@@ -20,45 +24,41 @@ import javax.validation.constraints.NotEmpty;
@Accessors(chain = false) // 设置 chain = false,避免用户导入有问题
public class PlateImportExcelVO {
@ExcelProperty("商品编号")
@NotEmpty(message = "商品编号不能为空")
@ExcelProperty("*物料编号")
@NotEmpty(message = "物料编号不能为空")
private String goodsId;
@ExcelProperty("商品名称")
@NotEmpty(message = "商品名称不能为空")
@ExcelProperty("*物料名称")
@NotEmpty(message = "物料名称不能为空")
private String goodsName;
@ExcelProperty("材质")
@ExcelProperty("*材质")
@NotEmpty(message = "材质不能为空")
private String material;
@ExcelProperty("颜色")
@ExcelProperty("*颜色")
@NotEmpty(message = "颜色不能为空")
private String color;
@ExcelProperty("纹理")
@ExcelProperty(value = "*纹理")
@ColumnWidth(10)
private String texture;
@ExcelProperty("宽度")
@ExcelProperty("*宽度")
@ColumnWidth(10)
@NotEmpty(message = "宽度不能为空")
private String width;
@ExcelProperty("高度")// float(8,3)
@ExcelProperty("*高度")// float(8,3)
@ColumnWidth(10)
@NotEmpty(message = "高度不能为空")
private String height;
@ExcelProperty("厚度")
@ExcelProperty("*厚度")
@ColumnWidth(10)
@NotEmpty(message = "厚度不能为空")
private String thickness;
@ExcelProperty("价格")
@NotEmpty(message = "价格不能为空")
private String price;
@ExcelProperty("品牌")
@NotEmpty(message = "品牌不能为空")
private String brand;
@ExcelProperty("规格")
@NotEmpty(message = "规格不能为空")
private String spec;
@@ -66,13 +66,21 @@ public class PlateImportExcelVO {
@ExcelProperty("备注")
private String remark;
@ExcelProperty("品牌")
@NotEmpty(message = "品牌不能为空")
private String brand;
@ExcelProperty("价格")
@NotEmpty(message = "价格不能为空")
private String price;
@ExcelProperty("上传结果")
private String result;
public boolean isValidGoods() {
return !(goodsId == null || goodsId.isEmpty() || goodsName == null || goodsName.isEmpty() || material == null ||
material.isEmpty() || color == null || color.isEmpty() || width == null ||width.isEmpty() || height == null ||
height.isEmpty() || height == null ||thickness.isEmpty() || brand == null || brand.isEmpty() || spec == null || spec.isEmpty());
height.isEmpty() || height == null ||thickness.isEmpty() );
}
// 数据长度判断
@@ -34,7 +34,7 @@ public class PlateRespVO {
@ExcelProperty("颜色")
private String color;
@Schema(description = "纹理", example = "true")
@Schema(description = "纹理", example = "")
@ExcelProperty(value = "纹理", converter = DictConvert.class)
@DictFormat(DictTypeConstants.PLATE_TEXTURE)
private Boolean texture;
@@ -36,6 +36,7 @@ public class PlateSaveReqVO {
private String color;
@Schema(description = "纹理", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "纹理不能为空")
private Boolean texture;
@Schema(description = "宽度", requiredMode = Schema.RequiredMode.REQUIRED)
@@ -54,6 +55,7 @@ public class PlateSaveReqVO {
private Double thickness;
@Schema(description = "价格", example = "3380")
@NumberValid(name = "价格")
private Double price;
@Schema(description = "品牌")
@@ -67,6 +67,14 @@ public final class PartsExcelListener extends ExcelListener<PartsImportExcelVO>
setter.accept(msg + "不可为空");
this.flag = false;
} else {
isNotEmptyToEnum(getter, setter, msg, enumClass);
}
}
// 不为空,判断枚举值是否正确
private <T extends Enum<T> & ObjectEnum> void isNotEmptyToEnum(Supplier<String> getter, Consumer<String> setter, String msg, Class<T> enumClass) {
String value = getter.get();
if (!StringUtils.isEmpty(value)) {
boolean isValid = false;
for (T enumValue : enumClass.getEnumConstants()) {
if (Objects.equals(enumValue.getValue(), value)) {
@@ -139,16 +147,32 @@ public final class PartsExcelListener extends ExcelListener<PartsImportExcelVO>
*/
@Override
public void invoke(PartsImportExcelVO data, AnalysisContext context) {
isEmptyAndAdd(data::getGoodsId, data::setResult, setResult(data.getResult(), "编号"), 32);
isEmptyAndEnumAdd(data::getIsComposite, data::setResult, setResult(data.getResult(), "是否复合部件"), WhetherEnum.class);
isEmptyAndEnumAdd(data::getCategory, data::setResult, setResult(data.getResult(), "类型"), CategoryEnum.class);
isNotEmptyAndAdd(data::getCategory, data::setResult, setResult(data.getResult(), "类型"),32);
// 一,必须存在且合理
isEmptyAndAdd(data::getGoodsId, data::setResult, setResult(data.getResult(), "物料编号"), 32);
isEmptyAndAdd(data::getName, data::setResult, setResult(data.getResult(), "物料名称"), 64);
isEmptyAndEnumAdd(data::getCategory, data::setResult, setResult(data.getResult(), "分类"), CategoryEnum.class);
isNotEmptyAndAdd(data::getCategory, data::setResult, setResult(data.getResult(), "分类"),32);
// 二,分类,必须存在
if (data.getCategory() != null ) {
if (!CategoryEnum.OTHER.getValue().equals(data.getCategory())) { // 不为其他
isEmpty(data::getUnit, data::setResult, setResult(data.getResult(), "单位"));
if (CategoryEnum.EDGING.getValue().equals(data.getCategory())) { // 为封边
isEmpty(data::getColor, data::setResult, setResult(data.getResult(), "颜色"));
isEmpty(data::getWidth, data::setResult, setResult(data.getResult(), "宽度"));
isEmpty(data::getThickness, data::setResult, setResult(data.getResult(), "厚度"));
}
}
}
// 三,存在则判断是否符合
isNotEmptyToEnum(data::getIsComposite, data::setResult, setResult(data.getResult(), "是否复合部件"), WhetherEnum.class);
isNotEmptyAndAdd(data::getType, data::setResult, setResult(data.getResult(), "子类型"), 64);
isEmptyAndAdd(data::getName, data::setResult, setResult(data.getResult(), "名称"), 64);
isEmptyAndAdd(data::getModel, data::setResult, setResult(data.getResult(), "型号"), 64);
isEmptyAndAdd(data::getColor, data::setResult, setResult(data.getResult(), "颜色"), 64);
isEmptyAndAdd(data::getMaterial, data::setResult, setResult(data.getResult(), "材质"), 64);
isEmptyAndAdd(data::getUnit, data::setResult, setResult(data.getResult(), "单位"), 32);
isNotEmptyAndAdd(data::getModel, data::setResult, setResult(data.getResult(), "型号"), 64);
isNotEmptyAndAdd(data::getColor, data::setResult, setResult(data.getResult(), "颜色"), 64);
isNotEmptyAndAdd(data::getMaterial, data::setResult, setResult(data.getResult(), "材质"), 64);
isNotEmptyAndAdd(data::getUnit, data::setResult, setResult(data.getResult(), "单位"), 32);
isNotEmptyAndAdd(data::getSpec, data::setResult, setResult(data.getResult(), "规格"), 64);
isNotEmptyAndAdd(data::getBrand, data::setResult, setResult(data.getResult(), "品牌"), 64);
isNotEmptyAndAdd(data::getFactor, data::setResult, setResult(data.getResult(), "厂家"), 128);
@@ -158,12 +182,12 @@ public final class PartsExcelListener extends ExcelListener<PartsImportExcelVO>
isNotEmptyAndAdd(data::getRemark, data::setResult, setResult(data.getResult(), "备注"), 255);
// 当为封边的时候,一定需要
if (StringUtils.isNotEmpty(data.getCategory())) {
if (data.getCategory().equals(CategoryEnum.EDGING.getValue())) {
isEmpty(data::getThickness, data::setResult, setResult(data.getResult(), "厚度"));
isEmpty(data::getWidth, data::setResult, setResult(data.getResult(), "宽度"));
}
}
// if (StringUtils.isNotEmpty(data.getCategory())) {
// if (data.getCategory().equals(CategoryEnum.EDGING.getValue())) {
// isEmpty(data::getThickness, data::setResult, setResult(data.getResult(), "厚度"));
// isEmpty(data::getWidth, data::setResult, setResult(data.getResult(), "宽度"));
// }
// }
if (data.getResult() != null)
data.setResult(data.getResult().replace("null,", ""));
@@ -6,6 +6,7 @@ import com.cf.imes.framework.organ.core.context.OrganContextHolder;
import com.cf.imes.module.manage.controller.admin.parts.vo.PartsImportExcelVO;
import com.cf.imes.module.manage.controller.admin.parts.vo.PartsPageReqVO;
import com.cf.imes.module.manage.controller.admin.parts.vo.PartsSaveReqVO;
import com.cf.imes.module.manage.enums.parts.CategoryEnum;
import com.cf.imes.module.manage.util.file.FileHelperUtil;
import com.cf.imes.module.manage.dal.dataobject.parts.PartsDO;
import com.cf.imes.module.manage.dal.mysql.parts.PartsMapper;
@@ -29,8 +30,7 @@ import java.util.List;
import static com.cf.imes.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.cf.imes.framework.security.core.util.SecurityFrameworkUtils.getLoginUser;
import static com.cf.imes.module.manage.enums.ErrorCodeConstants.PARTS_GOOD_ID_EXISTS;
import static com.cf.imes.module.manage.enums.ErrorCodeConstants.PARTS_NOT_EXISTS;
import static com.cf.imes.module.manage.enums.ErrorCodeConstants.*;
/**
@@ -65,9 +65,11 @@ public class PartsServiceImpl implements PartsService {
@OrganIgnore
public Long create(PartsSaveReqVO createReqVO) {
validateFieldExists(createReqVO);
PartsDO partsDO = BeanUtils.toBean(createReqVO, PartsDO.class);
Long organId = getOrganId(BASE_PARTS_CREATE_PERMISSION, getLoginUser().getId(), partsDO.getOrganId());
partsDO.setOrganId(organId).setIsComposite(false);
partsDO.setOrganId(organId).setIsComposite(createReqVO.getIsComposite() != null && createReqVO.getIsComposite());
// 判断是否存在--- goodsId
if (validateExistsByGoodsId(partsDO.getGoodsId(), organId)) {
throw exception(PARTS_GOOD_ID_EXISTS);
@@ -82,6 +84,9 @@ public class PartsServiceImpl implements PartsService {
@OrganIgnore
@Transactional(rollbackFor = Exception.class)
public void update(PartsSaveReqVO updateReqVO) {
validateFieldExists(updateReqVO);
Long organId = getOrganId(BASE_PARTS_UPDATE_PERMISSION, getLoginUser().getId(), updateReqVO.getOrganId());
// 校验id存在
boolean index = validateExistsById(updateReqVO.getId(),organId);
@@ -95,7 +100,7 @@ public class PartsServiceImpl implements PartsService {
throw exception(PARTS_GOOD_ID_EXISTS);
}
// 更新
updateReqVO.setOrganId(organId);
updateReqVO.setOrganId(organId).setIsComposite(updateReqVO.getIsComposite() != null && updateReqVO.getIsComposite());
PartsDO updateObj = BeanUtils.toBean(updateReqVO, PartsDO.class);
partsMapper.updateById(updateObj);
}
@@ -186,10 +191,10 @@ public class PartsServiceImpl implements PartsService {
}
});
// 批量插入,批量更新
if (insertList.size() > 0) {
if (!insertList.isEmpty()) {
partsMapper.insertBatch(insertList);
}
if (updateList.size() > 0) {
if (!updateList.isEmpty()) {
partsMapper.updateBatch(updateList);
}
}
@@ -218,4 +223,20 @@ public class PartsServiceImpl implements PartsService {
return organIdDefault;
}
// 必填字段判断
private void validateFieldExists(PartsSaveReqVO partsSaveReqVO) {
if (!CategoryEnum.OTHER.getValue().equals(partsSaveReqVO.getCategory())) { // 不为其他
if (partsSaveReqVO.getUnit() == null) {
throw exception(PARTS_UNIT_NOT_NULL);
}
if (CategoryEnum.EDGING.getValue().equals(partsSaveReqVO.getCategory())) { // 为封边
if (partsSaveReqVO.getColor() == null || partsSaveReqVO.getWidth() == null || partsSaveReqVO.getThickness() == null) {
throw exception(PARTS_EDGE_NOT_NULL);
}
}
}
}
}
@@ -66,18 +66,19 @@ public final class PlateExcelListener<T> extends AnalysisEventListener<PlateImpo
}
private void checkTexture(String valueCheck, String head, PlateImportExcelVO data) {
String value = valueCheck.trim();
if (value.equals("")) {
if (valueCheck == null || valueCheck.equals("")) {
this.flag = false;
data.setResult(data.getResult() + "," + head + "信息缺少");
} else {
String value = valueCheck.trim();
if (!value.equals("") && !value.equals("")) {
this.flag = false;
data.setResult(data.getResult() + "," + head + "信息有误");
} else if (value.equals("")) {
data.setTexture("true");
data.setTexture("");
} else {
data.setTexture("false");
data.setTexture("");
}
}
}
@@ -1,5 +1,6 @@
package com.cf.imes.module.manage.service.plate;
import java.io.File;
import java.util.*;
import com.cf.imes.module.manage.controller.admin.plate.vo.plate.PlateImportExcelVO;
@@ -8,7 +9,9 @@ import com.cf.imes.module.manage.controller.admin.plate.vo.plate.PlatePageReqVO;
import com.cf.imes.module.manage.controller.admin.plate.vo.plate.PlateSaveReqVO;
import com.cf.imes.module.manage.dal.dataobject.plate.PlateDO;
import com.cf.imes.framework.common.pojo.PageResult;
import org.springframework.boot.system.ApplicationHome;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
/**
@@ -65,12 +68,24 @@ public interface PlateService {
PageResult<PlateDO> getPlatePage(PlatePageReqVO pageReqVO);
/**
* 批量导入用户
* 批量导入板材
*
* @param importUsers 导入用户列表
* @param importUsers 导入板材列表
* @param isUpdateSupport 是否支持更新
* @return 导入结果
*/
PlateImportRespVO importPlateList(List<PlateImportExcelVO> importUsers, boolean isUpdateSupport , Long organId);
/**
* 生产导入文件模板下载
*/
void exportTemplate(HttpServletResponse response, String value);
default String getSavePath() {
ApplicationHome applicationHome = new ApplicationHome(this.getClass());
// 保存目录位置根据项目需求可随意更改
return applicationHome.getDir().getAbsolutePath() + File.separator + "type";
}
}
@@ -11,6 +11,7 @@ import com.cf.imes.module.manage.controller.admin.plate.vo.plate.PlatePageReqVO;
import com.cf.imes.module.manage.controller.admin.plate.vo.plate.PlateSaveReqVO;
import com.cf.imes.module.manage.dal.dataobject.plate.PlateDO;
import com.cf.imes.module.manage.dal.mysql.plate.PlateMapper;
import com.cf.imes.module.manage.util.file.FileHelperUtil;
import com.cf.imes.module.system.api.organ.OrganApi;
import com.cf.imes.module.system.api.permission.PermissionApi;
import com.cf.imes.module.system.enums.ErrorCodeConstants;
@@ -19,6 +20,7 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
@@ -71,11 +73,11 @@ public class PlateServiceImpl implements PlateService {
@Transactional(rollbackFor = Exception.class)
public void updatePlate(PlateSaveReqVO updateReqVO) {
// 校验存在
validatePlateExists(Long.valueOf(updateReqVO.getId()),
getOrganId(BASE_PLATE_UPDATE_PERMISSION, getLoginUser().getId(), updateReqVO.getOrganId()));
Long organId = getOrganId(BASE_PLATE_UPDATE_PERMISSION, getLoginUser().getId(), updateReqVO.getOrganId());
validatePlateExists(Long.valueOf(updateReqVO.getId()), organId);
PlateDO updateObj = BeanUtils.toBean(updateReqVO, PlateDO.class);
// 校验板材goods_id是否相同
if (plateMapper.isByGoodIDAndId(updateReqVO.getGoodsId(), getLoginUser().getId(), Long.valueOf(updateReqVO.getId()))) {
if (plateMapper.isByGoodIDAndId(updateReqVO.getGoodsId(), organId, Long.valueOf(updateReqVO.getId()))) {
throw exception(PLATE_GOODS_ID_NOT_SAME);
}
plateMapper.updateById(updateObj);
@@ -165,6 +167,13 @@ public class PlateServiceImpl implements PlateService {
return respVO;
}
@Override
@OrganIgnore
public void exportTemplate(HttpServletResponse response, String value) {
String rootPath = getSavePath();
FileHelperUtil.getFile(rootPath, response, value);
}
private void validateOrganExists(Long organId) {
CommonResult<Boolean> index = organApi.validOrgan(organId);
if (!index.isSuccess()) {