diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/vehicledomestic/controller/ProcessVehicleDomesticReleaseController.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/vehicledomestic/controller/ProcessVehicleDomesticReleaseController.java index c64094dc..b0af505f 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/vehicledomestic/controller/ProcessVehicleDomesticReleaseController.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/vehicledomestic/controller/ProcessVehicleDomesticReleaseController.java @@ -10,7 +10,9 @@ import com.jero.modules.activiti.process.common.service.ActFlowCommonService; import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO; import com.jero.modules.activiti.process.vehicledomestic.service.IProcessVehicleDomesticReleaseService; import com.jero.modules.activiti.process.vehicledomestic.vo.ProcessVehicleDomesticReleaseVo; +import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; import org.apache.poi.ss.formula.functions.T; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -26,6 +28,8 @@ import javax.servlet.http.HttpServletRequest; * @author sz * @since 2024-09-23 */ +@Slf4j +@Api(tags = "国内整车型号和VIN前八位管控流程 ") @RestController @RequestMapping("/process/vehicle/domestic") public class ProcessVehicleDomesticReleaseController { @@ -100,4 +104,5 @@ public class ProcessVehicleDomesticReleaseController { return Result.OK(processVehicleDomesticReleaseService.getHandleData(taskId)); } + } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/vehicledomestic/service/impl/ProcessVehicleDomesticReleaseServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/vehicledomestic/service/impl/ProcessVehicleDomesticReleaseServiceImpl.java index 8b23cb1a..99d94bcb 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/vehicledomestic/service/impl/ProcessVehicleDomesticReleaseServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/vehicledomestic/service/impl/ProcessVehicleDomesticReleaseServiceImpl.java @@ -3,11 +3,13 @@ package com.jero.modules.activiti.process.vehicledomestic.service.impl; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.jero.common.api.vo.Result; import com.jero.common.api.vo.ResultCommon; import com.jero.common.exception.JeroBootException; import com.jero.common.system.base.controller.JeroController; +import com.jero.common.system.vo.DictModel; import com.jero.common.util.ImportExcelUtil; import com.jero.modules.activiti.common.ActivitiCommon; import com.jero.modules.activiti.entity.ProcessAll; @@ -32,14 +34,18 @@ import com.jero.modules.laws.businessSupport.entity.LawsVehicleDomesticLibrary; import com.jero.modules.laws.businessSupport.entity.LawsVehicleDomesticLibrarySublist; import com.jero.modules.laws.businessSupport.service.ILawsVehicleDomesticLibraryService; import com.jero.modules.laws.businessSupport.service.ILawsVehicleDomesticLibrarySublistService; +import com.jero.modules.laws.common.service.ILawsCommonService; +import com.jero.modules.laws.common.vo.ManyStandardSelectionBox; +import com.jero.modules.laws.common.vo.ManyStandardSelectionBoxVO; +import com.jero.modules.laws.standard.entity.LawsDomesticStandard; import com.jero.modules.sys.utils.UserUtils; +import com.jero.modules.system.service.ISysDictService; import lombok.extern.slf4j.Slf4j; import org.activiti.engine.RuntimeService; import org.activiti.engine.TaskService; import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.task.Task; import org.apache.commons.lang3.StringUtils; -import org.apache.poi.ss.formula.functions.T; import org.jeecgframework.poi.excel.ExcelImportUtil; import org.jeecgframework.poi.excel.def.NormalExcelConstants; import org.jeecgframework.poi.excel.entity.ExportParams; @@ -47,6 +53,7 @@ import org.jeecgframework.poi.excel.entity.ImportParams; import org.jeecgframework.poi.excel.entity.enmus.ExcelType; import org.jeecgframework.poi.excel.view.JeecgEntityExcelView; import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.i18n.LocaleContextHolder; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -58,6 +65,7 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.io.IOException; import java.util.*; +import java.util.function.Consumer; import java.util.stream.Collectors; import static com.jero.modules.activiti.common.ActivitiCommon.PASS; @@ -97,6 +105,10 @@ public class ProcessVehicleDomesticReleaseServiceImpl extends ServiceImpl result = new Result<>(); result.setMessage(msg); result.setSuccess(false); // 前端根据success判断是否通过验证 @@ -496,10 +508,12 @@ public class ProcessVehicleDomesticReleaseServiceImpl extends ServiceImpl 0) { msg.append(msgSub).append(NEWLINE_CHARACTER); } @@ -517,10 +531,12 @@ public class ProcessVehicleDomesticReleaseServiceImpl extends ServiceImpl 0) { msg.append(msgSub).append(NEWLINE_CHARACTER); } @@ -530,6 +546,7 @@ public class ProcessVehicleDomesticReleaseServiceImpl extends ServiceImpl excelList) { + Map mixedModelMap = getDictMap("dvm_mixed_model"); StringBuilder msg = new StringBuilder(); for (int i = 0; i < excelList.size(); i++) { HybridPowerExcel hybridPowerExcel = excelList.get(i); @@ -538,17 +555,17 @@ public class ProcessVehicleDomesticReleaseServiceImpl extends ServiceImpl 0) { msg.append(msgSub).append(NEWLINE_CHARACTER); } @@ -558,85 +575,61 @@ public class ProcessVehicleDomesticReleaseServiceImpl extends ServiceImpl vehicleTypeCodeMap = getDictMap("vm_vehicle_type_code"); + Map powerTypeMap = getDictMap("vm_power_type"); + Map drivingTypeMap = getDictMap("vm_driving_type"); + Map bodyTypeMap = getDictMap("vm_body_type"); + Map fuelTypeListMap = getDictMap("vm_fuel_type");; + Map frontFrontAirbagMap = getDictMap("vm_front_front_airbag"); + Map frontSeatSideAirbagsMap = getDictMap("vm_front_seat_side_airbags"); // 车型代码(必填,下拉单选,来源BOM) if (excelObject instanceof BaseExcel) { BaseExcel baseModel = (BaseExcel) excelObject; - // 车型代码(必填,下拉单选,来源BOM) - if (StringUtils.isBlank(baseModel.getVehicleTypeCode())) { - msgSub.append(getErrorMsg(index, "车型代码不能为空;")); - } - // 动力类型(必填,下拉单选,来源BOM) - if (StringUtils.isBlank(baseModel.getPowerType())) { - msgSub.append(getErrorMsg(index, "动力类型不能为空;")); - } - // 车辆外廓尺寸(必填,手填,长度不超过50) - if (StringUtils.isBlank(baseModel.getCarOutSize())) { - msgSub.append(getErrorMsg(index, "车辆外廓尺寸不能为空;")); - } else if (baseModel.getCarOutSize().length() > 50) { - msgSub.append(getErrorMsg(index, "车辆外廓尺寸长度不能超过50字符;")); - } - // 前后标牌(必填,手填,长度不超过50) - if (StringUtils.isBlank(baseModel.getAroundSignage())) { - msgSub.append(getErrorMsg(index, "前后标牌不能为空;")); - } else if (baseModel.getAroundSignage().length() > 50) { - msgSub.append(getErrorMsg(index, "前后标牌长度不能超过50字符;")); - } - // 整备质量(教练车)(非必填,手填,数字格式,长度不超过50) - if (StringUtils.isNotBlank(baseModel.getVehicleQuality()) && baseModel.getVehicleQuality().length() > 50) { - msgSub.append(getErrorMsg(index, "整备质量长度不能超过50字符;")); - } - // 驱动型式(必填,下拉单选,来源BOM) - if (StringUtils.isBlank(baseModel.getDrivingType())) { - msgSub.append(getErrorMsg(index, "驱动型式不能为空;")); - } - // 车身形式(必填,下拉单选,来源BOM) - if (StringUtils.isBlank(baseModel.getBodyType())) { - msgSub.append(getErrorMsg(index, "车身形式不能为空;")); - } - // 燃料类型(必填,下拉单选,来源BOM) - if (StringUtils.isBlank(baseModel.getFuelType())) { - msgSub.append(getErrorMsg(index, "燃料类型不能为空;")); - } - // 前排正面气囊(必填,下拉单选,来源BOM) - if (StringUtils.isBlank(baseModel.getFrontFrontAirbag())) { - msgSub.append(getErrorMsg(index, "前排正面气囊不能为空;")); - } - // 前排座椅侧气囊(非必填,下拉单选,来源BOM) - if (StringUtils.isBlank(baseModel.getFrontSeatSideAirbags())) { - msgSub.append(getErrorMsg(index, "前排座椅侧气囊不能为空;")); - } + validateAndSetField(index, "车型代码", baseModel.getVehicleTypeCode(), vehicleTypeCodeMap, msgSub, true, baseModel::setVehicleTypeCode); + validateAndSetField(index, "动力类型", baseModel.getPowerType(), powerTypeMap, msgSub, true, baseModel::setPowerType); + validateAndSetField(index, "驱动型式", baseModel.getDrivingType(), drivingTypeMap, msgSub, true, baseModel::setDrivingType); + validateAndSetField(index, "车身形式", baseModel.getBodyType(), bodyTypeMap, msgSub, true, baseModel::setBodyType); + validateAndSetField(index, "燃料类型", baseModel.getFuelType(), fuelTypeListMap, msgSub, true, baseModel::setFuelType); + validateAndSetField(index, "前排正面气囊", baseModel.getFrontFrontAirbag(), frontFrontAirbagMap, msgSub, true, baseModel::setFrontFrontAirbag); + validateAndSetField(index, "前排座椅侧气囊", baseModel.getFrontSeatSideAirbags(), frontSeatSideAirbagsMap, msgSub, false, baseModel::setFrontSeatSideAirbags); + validateField(index, "车辆外廓尺寸", baseModel.getCarOutSize(), msgSub, true, 50); + validateField(index, "前后标牌", baseModel.getAroundSignage(), msgSub, true, 50); + validateField(index, "整备质量(教练车)", baseModel.getVehicleQuality(), msgSub, true, 50); } return msgSub; } // 燃油和混合动力共有字段校验 private StringBuilder validateOilAndHybridFields(Object excelObject, int index, StringBuilder msgSub) { - // 车型代码(必填,下拉单选,来源BOM) + Map engineTypeMap = getDictMap("vm_engine_type"); + Map transmissionTypeMap = getDictMap("vm_transmission_type"); + Map transmissionModelMap = getDictMap("dvm_transmission_model"); + Map engineCapacityMap = getDictMap("vm_engine_capacity"); + Map emissionLevelMap = getDictMap("dvm_emission_level"); if (excelObject instanceof OilAndHybridExcel) { OilAndHybridExcel oilAndHybridExcel = (OilAndHybridExcel) excelObject; - // 发动机型号(必填,下拉单选,来源BOM) - if (StringUtils.isBlank(oilAndHybridExcel.getEngineType())) { - msgSub.append(getErrorMsg(index, "发动机型号不能为空;")); - } - // 变速器型式(必填,下拉单选,来源BOM) - if (StringUtils.isBlank(oilAndHybridExcel.getTransmissionType())) { - msgSub.append(getErrorMsg(index, "变速器型式不能为空;")); - } - // 变速器型号(必填,下拉多选,来源BOM) - if (StringUtils.isBlank(oilAndHybridExcel.getTransmissionModel())) { - msgSub.append(getErrorMsg(index, "变速器型号不能为空;")); - } - // 发动机排量(L)(必填,下拉单选,来源BOM) - if (StringUtils.isBlank(oilAndHybridExcel.getEngineCapacity())) { - msgSub.append(getErrorMsg(index, "发动机排量不能为空;")); - } - // 排放水平(必填,下拉单选,来源BOM) - if (StringUtils.isBlank(oilAndHybridExcel.getEmissionLevel())) { - msgSub.append(getErrorMsg(index, "排放水平不能为空;")); - } - // 油耗阶段(必填,下拉单选) + validateAndSetField(index, "发动机型号", oilAndHybridExcel.getEngineType(), engineTypeMap, msgSub, true, oilAndHybridExcel::setEngineType); + validateAndSetField(index, "变速器型式", oilAndHybridExcel.getTransmissionType(), transmissionTypeMap, msgSub, true, oilAndHybridExcel::setTransmissionType); + validateAndSetField(index, "变速器型号", oilAndHybridExcel.getTransmissionModel(), transmissionModelMap, msgSub, true, oilAndHybridExcel::setTransmissionModel); + validateAndSetField(index, "发动机排量", oilAndHybridExcel.getEngineCapacity(), engineCapacityMap, msgSub, true, oilAndHybridExcel::setEngineCapacity); + validateAndSetField(index, "排放水平", oilAndHybridExcel.getEmissionLevel(), emissionLevelMap, msgSub, true, oilAndHybridExcel::setEmissionLevel); if (StringUtils.isBlank(oilAndHybridExcel.getFuelConsumptionStage())) { - msgSub.append(getErrorMsg(index, "油耗阶段不能为空;")); + msgSub.append(getErrorMsg(index, "油耗阶段不能为空,")); + } else { + // 创建查询对象 + ManyStandardSelectionBoxVO selectionBoxVO = new ManyStandardSelectionBoxVO(); + IPage manyStandardSelectionBox = lawsCommonService.getManyStandardSelectionBox(selectionBoxVO, -1, -1); + List records = manyStandardSelectionBox.getRecords(); + // 校验油耗阶段是否存在于标准编号列表中 + Optional matchingRecord = records.stream() + .filter(record -> Objects.equals(oilAndHybridExcel.getFuelConsumptionStage(), record.getStandardNumber())) + .findFirst(); + // 如果匹配的标准存在,保存对应的id + if (matchingRecord.isPresent()) { + oilAndHybridExcel.setFuelConsumptionStage(matchingRecord.get().getId()); + } else { + msgSub.append(getErrorMsg(index, "油耗阶段不存在,")); + } } } return msgSub; @@ -644,53 +637,22 @@ public class ProcessVehicleDomesticReleaseServiceImpl extends ServiceImpl driveMotorModelMap = getDictMap("vm_driveMotor_model"); + Map driveMotorTypeMap = getDictMap("dvm_drive_motor_type"); + Map powerBatteryModelMap = getDictMap("vm_power_battery_model"); + Map batteryTypeMap = getDictMap("vm_battery_type"); + Map driveMotorPlaceMap = getDictMap("dvm_drive_motor_place"); if (excelObject instanceof ElectricAndHybridExcel) { ElectricAndHybridExcel electricAndHybridExcel = (ElectricAndHybridExcel) excelObject; - // 驱动电机型号(必填,下拉多选,来源BOM) - if (StringUtils.isBlank(electricAndHybridExcel.getDriveMotorModel())) { - msgSub.append(getErrorMsg(index, "驱动电机型号不能为空;")); - } - // 驱动电机峰值功率(必填,手填,长度不超过50) - if (StringUtils.isBlank(electricAndHybridExcel.getDriveMotorPeakPower())) { - msgSub.append(getErrorMsg(index, "驱动电机峰值功率不能为空;")); - } else if (electricAndHybridExcel.getDriveMotorPeakPower().length() > 50) { - msgSub.append(getErrorMsg(index, "驱动电机峰值功率长度不能超过50字符;")); - } - // 驱动电机额定功率(必填,手填,长度不超过50) - if (StringUtils.isBlank(electricAndHybridExcel.getDriveMotorRatedPower())) { - msgSub.append(getErrorMsg(index, "驱动电机额定功率不能为空;")); - } else if (electricAndHybridExcel.getDriveMotorRatedPower().length() > 50) { - msgSub.append(getErrorMsg(index, "驱动电机额定功率长度不能超过50字符;")); - } - // 驱动电机类型(必填,下拉单选,来源BOM) - if (StringUtils.isBlank(electricAndHybridExcel.getDriveMotorType())) { - msgSub.append(getErrorMsg(index, "驱动电机类型不能为空;")); - } - // 动力电池型号(必填,下拉单选,来源BOM) - if (StringUtils.isBlank(electricAndHybridExcel.getPowerBatteryModel())) { - msgSub.append(getErrorMsg(index, "动力电池型号不能为空;")); - } - // 电池类型(必填,下拉单选,来源BOM) - if (StringUtils.isBlank(electricAndHybridExcel.getBatteryType())) { - msgSub.append(getErrorMsg(index, "电池类型不能为空;")); - } - // 动力电池组标称电压(必填,手填,长度不超过50) - if (StringUtils.isBlank(electricAndHybridExcel.getPowerBatteryVoltage())) { - msgSub.append(getErrorMsg(index, "动力电池组标称电压不能为空;")); - } else if (electricAndHybridExcel.getPowerBatteryVoltage().length() > 50) { - msgSub.append(getErrorMsg(index, "动力电池组标称电压长度不能超过50字符;")); - } - // 动力电池组总成标称容量(必填,手填,长度不超过50) - if (StringUtils.isBlank(electricAndHybridExcel.getPowerBatteryVolume())) { - msgSub.append(getErrorMsg(index, "动力电池组总成标称容量不能为空;")); - } else if (electricAndHybridExcel.getPowerBatteryVolume().length() > 50) { - msgSub.append(getErrorMsg(index, "动力电池组总成标称容量长度不能超过50字符;")); - } - // 驱动电机的布置位置(必填,下拉多选,来源BOM) - if (StringUtils.isBlank(electricAndHybridExcel.getDriveMotorPlace())) { - msgSub.append(getErrorMsg(index, "驱动电机的布置位置不能为空;")); - } + validateAndSetField(index, "驱动电机型号", electricAndHybridExcel.getDriveMotorModel(), driveMotorModelMap, msgSub, true, electricAndHybridExcel::setDriveMotorModel); + validateAndSetField(index, "驱动电机类型", electricAndHybridExcel.getDriveMotorType(), driveMotorTypeMap, msgSub, true, electricAndHybridExcel::setDriveMotorType); + validateAndSetField(index, "动力电池型号", electricAndHybridExcel.getPowerBatteryModel(), powerBatteryModelMap, msgSub, true, electricAndHybridExcel::setPowerBatteryModel); + validateAndSetField(index, "电池类型", electricAndHybridExcel.getBatteryType(), batteryTypeMap, msgSub, true, electricAndHybridExcel::setBatteryType); + validateAndSetField(index, "驱动电机的布置位置", electricAndHybridExcel.getDriveMotorPlace(), driveMotorPlaceMap, msgSub, true, electricAndHybridExcel::setDriveMotorPlace); + validateField(index, "动力电池组标称电压", electricAndHybridExcel.getPowerBatteryVoltage(), msgSub, true, 50); + validateField(index, "动力电池组总成标称容量", electricAndHybridExcel.getPowerBatteryVolume(), msgSub, true, 50); + validateField(index, "驱动电机峰值功率", electricAndHybridExcel.getDriveMotorPeakPower(), msgSub, true, 50); + validateField(index, "驱动电机额定功率", electricAndHybridExcel.getDriveMotorRatedPower(), msgSub, true, 50); } return msgSub; } @@ -728,6 +690,38 @@ public class ProcessVehicleDomesticReleaseServiceImpl extends ServiceImpl getDictMap(String dictCode) { + List dictList = sysDictService.getDictItems(dictCode); + return dictList.stream().collect(Collectors.toMap(DictModel::getText, DictModel::getValue)); + } + + private void validateField(int index, String fieldName, String fieldValue, StringBuilder msgSub, boolean isRequired, int maxLength) { + if (isRequired && StringUtils.isBlank(fieldValue)) { + msgSub.append(getErrorMsg(index, fieldName + "不能为空,")); + } else if (fieldValue.length() > maxLength) { + msgSub.append(getErrorMsg(index, fieldName + "字符长度不能超过" + maxLength + ",")); + } + } + + private void validateAndSetField(int index, String fieldName, String fieldValue, Map map, + StringBuilder msgSub, boolean isRequired, Consumer setter) { + // 校验是否必填 + if (StringUtils.isBlank(fieldValue)) { + if (isRequired) { + msgSub.append(getErrorMsg(index, fieldName + "不能为空,")); + } + } else { + // 如果字段有值,检查是否存在于映射中 + String mappedValue = map.get(fieldValue); + if (StringUtils.isBlank(mappedValue)) { + msgSub.append(getErrorMsg(index, fieldName + "不存在,")); + } else { + // 如果存在,调用setter进行设置 + setter.accept(mappedValue); + } + } + } + private String getErrorMsg(int rowIndex, String errorMsg) { return "第" + (rowIndex + 2) + "行" + errorMsg; } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/vehicleinterntional/controller/ProcessVehicleInternationalReleaseController.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/vehicleinterntional/controller/ProcessVehicleInternationalReleaseController.java index 4e99f908..d4878801 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/vehicleinterntional/controller/ProcessVehicleInternationalReleaseController.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/vehicleinterntional/controller/ProcessVehicleInternationalReleaseController.java @@ -10,7 +10,9 @@ import com.jero.modules.activiti.process.common.service.ActFlowCommonService; import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO; import com.jero.modules.activiti.process.vehicleinterntional.service.IProcessVehicleInternationalReleaseService; import com.jero.modules.activiti.process.vehicleinterntional.vo.ProcessVehicleInternationalReleaseVo; +import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; import org.apache.poi.ss.formula.functions.T; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -26,6 +28,8 @@ import javax.servlet.http.HttpServletRequest; * @author sz * @since 2024-09-29 */ +@Slf4j +@Api(tags = "国际整车型号和VIN前八位管控流程 ") @RestController @RequestMapping("/process/vehicle/international") public class ProcessVehicleInternationalReleaseController { diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/vehicleinterntional/service/impl/ProcessVehicleInternationalReleaseServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/vehicleinterntional/service/impl/ProcessVehicleInternationalReleaseServiceImpl.java index 5785a2df..fb12753b 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/vehicleinterntional/service/impl/ProcessVehicleInternationalReleaseServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/vehicleinterntional/service/impl/ProcessVehicleInternationalReleaseServiceImpl.java @@ -8,6 +8,7 @@ import com.jero.common.api.vo.Result; import com.jero.common.api.vo.ResultCommon; import com.jero.common.exception.JeroBootException; import com.jero.common.system.base.controller.JeroController; +import com.jero.common.system.vo.DictModel; import com.jero.common.util.ImportExcelUtil; import com.jero.modules.activiti.common.ActivitiCommon; import com.jero.modules.activiti.entity.ProcessAll; @@ -33,6 +34,7 @@ import com.jero.modules.laws.businessSupport.entity.LawsVehicleInternationalLibr import com.jero.modules.laws.businessSupport.service.ILawsVehicleInternationalLibraryService; import com.jero.modules.laws.businessSupport.service.ILawsVehicleInternationalLibrarySublistService; import com.jero.modules.sys.utils.UserUtils; +import com.jero.modules.system.service.ISysDictService; import org.activiti.engine.RuntimeService; import org.activiti.engine.TaskService; import org.activiti.engine.runtime.ProcessInstance; @@ -55,6 +57,9 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.io.IOException; import java.util.*; +import java.util.function.Consumer; +import java.util.stream.Collectors; + import static com.jero.modules.activiti.common.ActivitiCommon.PASS; /** @@ -86,6 +91,8 @@ public class ProcessVehicleInternationalReleaseServiceImpl extends ServiceImpl

excelList) { StringBuilder msg = new StringBuilder(); + Map vehicleTypeCodeMap = getDictMap("vm_vehicle_type_code"); + Map powerTypeMap = getDictMap("vm_power_type"); + Map engineTypeMap = getDictMap("vm_engine_type"); + Map driveMotorModelMap = getDictMap("vm_driveMotor_model"); + Map powerBatteryModelMap = getDictMap("vm_power_battery_model"); + Map transmissionModelMap = getDictMap("ivm_transmission_model"); + Map bodyTypeMap = getDictMap("vm_body_type"); + Map drivingTypeMap = getDictMap("vm_driving_type"); + Map drivingShaftsNumberMap = getDictMap("ivm_driving_shafts_number"); + Map steeringTypeMap = getDictMap("ivm_steering_type"); + Map seatsNumberMap = getDictMap("ivm_seats_number"); + Map engineWorkingPrincipleMap = getDictMap("ivm_engine_working_principle"); + Map fuelTypeMap = getDictMap("vm_fuel_type"); + Map engineCapacityMap = getDictMap("vm_engine_capacity"); + Map emissionLevelMap = getDictMap("dvm_emission_level"); + Map batteryTypeMap = getDictMap("vm_battery_type"); + Map transmissionTypeMap = getDictMap("vm_transmission_type"); + Map transmissionGearNumberMap = getDictMap("ivm_transmission_gear_number"); + Map ynMap = getDictMap("yn"); + Map frontFrontAirbagMap = getDictMap("vm_front_front_airbag"); + Map frontSeatSideAirbagsMap = getDictMap("vm_front_seat_side_airbags"); + Map salesAreaMap = getDictMap("ivm_sales_area"); + Map brandMap = getDictMap("ivm_brand"); for (int i = 0; i < excelList.size(); i++) { ProcessVehicleInternationalExcelVo excelVo = excelList.get(i); StringBuilder msgSub = new StringBuilder(); - // 校验车型代码 - if (StringUtils.isBlank(excelVo.getVehicleTypeCode())) { - msgSub.append(getErrorMsg(i, "车型代码不能为空;")); - } - // 校验动力类型 - if (StringUtils.isBlank(excelVo.getPowerType())) { - msgSub.append(getErrorMsg(i, "动力类型不能为空;")); - } - // 校验发动机型号 - if (StringUtils.isNotBlank(excelVo.getEngineType())) { - } - // 校验驱动电机型号 - if (StringUtils.isNotBlank(excelVo.getDriveMotorModel())) { - } - // 校验动力电池型号 - if (StringUtils.isNotBlank(excelVo.getPowerBatteryModel())) { - } - // 校验变速器型号 - if (StringUtils.isBlank(excelVo.getTransmissionModel())) { - msgSub.append(getErrorMsg(i, "变速器型号不能为空;")); - } - // 校验车身形式 - if (StringUtils.isBlank(excelVo.getBodyType())) { - msgSub.append(getErrorMsg(i, "车身形式不能为空;")); - } - // 校验驱动形式 - if (StringUtils.isBlank(excelVo.getDrivingType())) { - msgSub.append(getErrorMsg(i, "驱动形式不能为空;")); - } - // 校验驱动轴数量 - if (StringUtils.isBlank(excelVo.getDrivingShaftsNumber())) { - msgSub.append(getErrorMsg(i, "驱动轴数量不能为空;")); - } - // 校验转向型式 - if (StringUtils.isBlank(excelVo.getSteeringType())) { - msgSub.append(getErrorMsg(i, "转向型式不能为空;")); - } - // 校验座位数量 - if (StringUtils.isBlank(excelVo.getSeatsNumber())) { - msgSub.append(getErrorMsg(i, "座位数量不能为空;")); - } - // 校验技术允许最大满载质量(Kg) - if (StringUtils.isBlank(excelVo.getAllowedMaxFullLoad())) { - msgSub.append(getErrorMsg(i, "技术允许最大满载质量(Kg)不能为空;")); - }else if (excelVo.getAllowedMaxFullLoad().length() > 50) { - msgSub.append(getErrorMsg(i, "技术允许最大满载质量(Kg)字符长度不能超过50;")); - } - // 校验车辆外廓尺寸(长x宽X高) - if (StringUtils.isBlank(excelVo.getCarOutSize())) { - msgSub.append(getErrorMsg(i, "校验车辆外廓尺寸(长x宽X高)不能为空;")); - }else if (excelVo.getCarOutSize().length() > 50) { - msgSub.append(getErrorMsg(i, "校验车辆外廓尺寸(长x宽X高)字符长度不能超过50;")); - } - // 校验发动机工作原理 - if (StringUtils.isBlank(excelVo.getEngineWorkingPrinciple())) { - msgSub.append(getErrorMsg(i, "发动机工作原理不能为空;")); - } - // 校验燃料类型 - if (StringUtils.isBlank(excelVo.getFuelType())) { - msgSub.append(getErrorMsg(i, "燃料类型不能为空;")); - } - // 校验发动机排量(L) - if (StringUtils.isNotBlank(excelVo.getEngineCapacity())) { - } - // 校验额定转速(rpm) - if (StringUtils.isNotBlank(excelVo.getRatedSpeed()) && excelVo.getRatedSpeed().length() > 50) { - msgSub.append(getErrorMsg(i, "额定转速(rpm)字符长度不能超过50;")); - } - // 校验发动机最大净功率(kW) - if (StringUtils.isNotBlank(excelVo.getEngineMaxPower()) && excelVo.getEngineMaxPower().length() > 50) { - msgSub.append(getErrorMsg(i, "发动机最大净功率(kw)字符长度不能超过50;")); - } - // 校验驱动电机峰值功率(kW) - if (StringUtils.isNotBlank(excelVo.getDriveMotorPeakPower()) && excelVo.getDriveMotorPeakPower().length() > 50) { - msgSub.append(getErrorMsg(i, "发动机最大净功率(kw)字符长度不能超过50;")); - } - // 校验排放水平 - if (StringUtils.isNotBlank(excelVo.getEmissionLevel())) { - } - // 校验能耗(L/100km or kwh/100km) - if (StringUtils.isBlank(excelVo.getEnergyConsumption())) { - msgSub.append(getErrorMsg(i, "能耗(L/100km or kwh/100km)不能为空;")); - } - // 校验储能装置种类 - if (StringUtils.isNotBlank(excelVo.getEnergyStorageDevices())) { - } - // 校验变速器型式 - if (StringUtils.isBlank(excelVo.getTransmissionType())) { - msgSub.append(getErrorMsg(i, "变速器型式不能为空;")); - } - // 校验变速器档位数 - if (StringUtils.isBlank(excelVo.getTransmissionGearNumber())) { - msgSub.append(getErrorMsg(i, "变速器档位数不能为空;")); - } - // 校验变速器是否带手动模式 - if (StringUtils.isBlank(excelVo.getTransmissionIsHasManual())) { - msgSub.append(getErrorMsg(i, "变速器是否带手动模式不能为空;")); - } - // 校验前排正面气囊 - if (StringUtils.isBlank(excelVo.getFrontFrontAirbag())) { - msgSub.append(getErrorMsg(i, "前排正面气囊不能为空;")); - } - // 校验前排座椅侧气囊 - if (StringUtils.isBlank(excelVo.getFrontSeatSideAirbags())) { - msgSub.append(getErrorMsg(i, "前排座椅侧气囊不能为空;")); - } - //校验销售区域 - if (StringUtils.isBlank(excelVo.getSalesArea())) { - msgSub.append(getErrorMsg(i, "前销售区域不能为空;")); - } - // 校验品牌 - if (StringUtils.isBlank(excelVo.getBrand())) { - msgSub.append(getErrorMsg(i, "品牌不能为空;")); - } + validateAndSetField(i, "车型代码", excelVo.getVehicleTypeCode(), vehicleTypeCodeMap, msgSub, true, excelVo::setVehicleTypeCode); + validateAndSetField(i, "动力类型", excelVo.getPowerType(), powerTypeMap, msgSub, true, excelVo::setPowerType); + validateAndSetField(i, "发动机型号", excelVo.getEngineType(), engineTypeMap, msgSub, false, excelVo::setEngineType); + validateAndSetField(i, "驱动电机型号", excelVo.getDriveMotorModel(), driveMotorModelMap, msgSub, false, excelVo::setDriveMotorModel); + validateAndSetField(i, "动力电池型号", excelVo.getPowerBatteryModel(), powerBatteryModelMap, msgSub, false, excelVo::setPowerBatteryModel); + validateAndSetField(i, "变速器型号", excelVo.getTransmissionModel(), transmissionModelMap, msgSub, true, excelVo::setTransmissionModel); + validateAndSetField(i, "车身形式", excelVo.getBodyType(), bodyTypeMap, msgSub, true, excelVo::setBodyType); + validateAndSetField(i, "驱动形式", excelVo.getDrivingType(), drivingTypeMap, msgSub, true, excelVo::setDrivingType); + validateAndSetField(i, "驱动轴数量", excelVo.getDrivingShaftsNumber(), drivingShaftsNumberMap, msgSub, true, excelVo::setDrivingShaftsNumber); + validateAndSetField(i, "转向型式", excelVo.getSteeringType(), steeringTypeMap, msgSub, true, excelVo::setSteeringType); + validateAndSetField(i, "座位数量", excelVo.getSeatsNumber(), seatsNumberMap, msgSub, true, excelVo::setSeatsNumber); + validateAndSetField(i, "发动机工作原理", excelVo.getEngineWorkingPrinciple(), engineWorkingPrincipleMap, msgSub, true, excelVo::setEngineWorkingPrinciple); + validateAndSetField(i, "燃料类型", excelVo.getFuelType(), fuelTypeMap, msgSub, true, excelVo::setFuelType); + validateAndSetField(i, "发动机排量(L)", excelVo.getEngineCapacity(), engineCapacityMap, msgSub, false, excelVo::setEngineCapacity); + validateAndSetField(i, "排放水平", excelVo.getEmissionLevel(), emissionLevelMap, msgSub, false, excelVo::setEmissionLevel); + validateAndSetField(i, "储能装置种类", excelVo.getEnergyStorageDevices(), batteryTypeMap, msgSub, false, excelVo::setEnergyStorageDevices); + validateAndSetField(i, "变速器型式", excelVo.getTransmissionType(), transmissionTypeMap, msgSub, true, excelVo::setTransmissionType); + validateAndSetField(i, "变速器档位数", excelVo.getTransmissionGearNumber(), transmissionGearNumberMap, msgSub, true, excelVo::setTransmissionGearNumber); + validateAndSetField(i, "变速器是否带手动模式", excelVo.getTransmissionIsHasManual(), ynMap, msgSub, true, excelVo::setTransmissionIsHasManual); + validateAndSetField(i, "前排正面气囊", excelVo.getFrontFrontAirbag(), frontFrontAirbagMap, msgSub, true, excelVo::setFrontFrontAirbag); + validateAndSetField(i, "前排座椅侧气囊", excelVo.getFrontSeatSideAirbags(), frontSeatSideAirbagsMap, msgSub, true, excelVo::setFrontSeatSideAirbags); + validateAndSetField(i, "销售区域", excelVo.getSalesArea(), salesAreaMap, msgSub, true, excelVo::setSalesArea); + validateAndSetField(i, "品牌", excelVo.getBrand(), brandMap, msgSub, true, excelVo::setBrand); + validateField(i, "能耗(L/100km or kwh/100km)", excelVo.getEnergyConsumption(), msgSub, true, 50); + validateField(i, "额定转速(rpm)", excelVo.getRatedSpeed(), msgSub, false, 50); + validateField(i, "发动机最大净功率(kw)", excelVo.getEngineMaxPower(), msgSub, false, 50); + validateField(i, "驱动电机峰值功率(kw)", excelVo.getDriveMotorPeakPower(), msgSub, false, 50); + validateField(i, "技术允许最大满载质量(Kg)", excelVo.getAllowedMaxFullLoad(), msgSub, true, 50); + validateField(i, "车辆外廓尺寸(长x宽x高)", excelVo.getCarOutSize(), msgSub, true, 50); if (msgSub.length() > 0) { msg.append(msgSub).append(NEWLINE_CHARACTER); } @@ -577,6 +522,39 @@ public class ProcessVehicleInternationalReleaseServiceImpl extends ServiceImpl

maxLength) { + msgSub.append(getErrorMsg(index, fieldName + "字符长度不能超过" + maxLength + ",")); + } + } + + private Map getDictMap(String dictCode) { + List dictList = sysDictService.getDictItems(dictCode); + return dictList.stream().collect(Collectors.toMap(DictModel::getText, DictModel::getValue)); + } + + private void validateAndSetField(int index, String fieldName, String fieldValue, Map map, + StringBuilder msgSub, boolean isRequired, Consumer setter) { + // 校验是否必填 + if (StringUtils.isBlank(fieldValue)) { + if (isRequired) { + msgSub.append(getErrorMsg(index, fieldName + "不能为空,")); + } + } else { + // 如果字段有值,检查是否存在于映射中 + String mappedValue = map.get(fieldValue); + if (StringUtils.isBlank(mappedValue)) { + msgSub.append(getErrorMsg(index, fieldName + "不存在,")); + } else { + // 如果存在,调用setter进行设置 + setter.accept(mappedValue); + } + } + } + + // 校验表头 private void excelHeadVerify(Class clazz, MultipartFile file) { try { diff --git a/laws-modules/src/main/java/com/jero/modules/laws/businessSupport/controller/LawsVehicleInternationalLibraryController.java b/laws-modules/src/main/java/com/jero/modules/laws/businessSupport/controller/LawsVehicleInternationalLibraryController.java index 5f082f33..f8c29123 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/businessSupport/controller/LawsVehicleInternationalLibraryController.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/businessSupport/controller/LawsVehicleInternationalLibraryController.java @@ -8,6 +8,7 @@ import com.jero.common.aspect.annotation.Translation; import com.jero.modules.activiti.process.vehicleinterntional.vo.ProcessVehicleInternationalReleaseVo; import com.jero.modules.laws.businessSupport.entity.LawsVehicleInternationalLibrary; import com.jero.modules.laws.businessSupport.service.ILawsVehicleInternationalLibraryService; +import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.*; import org.springframework.web.servlet.ModelAndView; @@ -22,6 +23,7 @@ import javax.servlet.http.HttpServletRequest; * @author sz * @since 2024-09-29 */ +@Api(tags="国际整车型号及VIN前八位管控库") @RestController @RequestMapping("/laws/internationalVehicle/library") public class LawsVehicleInternationalLibraryController { diff --git a/laws-modules/src/main/java/com/jero/modules/laws/businessSupport/service/impl/LawsVehicleInternationalLibraryServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/businessSupport/service/impl/LawsVehicleInternationalLibraryServiceImpl.java index cc772572..9adcfec3 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/businessSupport/service/impl/LawsVehicleInternationalLibraryServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/businessSupport/service/impl/LawsVehicleInternationalLibraryServiceImpl.java @@ -28,6 +28,7 @@ import org.jeecgframework.poi.excel.view.JeecgEntityExcelView; import org.springframework.beans.BeanUtils; import org.springframework.context.i18n.LocaleContextHolder; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import org.springframework.web.servlet.ModelAndView; import javax.annotation.Resource; @@ -44,6 +45,7 @@ import java.util.stream.Collectors; * @since 2024-09-29 */ @Service +@Transactional(rollbackFor = JeroBootException.class) public class LawsVehicleInternationalLibraryServiceImpl extends ServiceImpl implements ILawsVehicleInternationalLibraryService { @Resource diff --git a/laws-modules/src/main/java/com/jero/modules/laws/club/service/impl/LawsClubJoinTeamServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/club/service/impl/LawsClubJoinTeamServiceImpl.java index 606ed525..ac980d0b 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/club/service/impl/LawsClubJoinTeamServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/club/service/impl/LawsClubJoinTeamServiceImpl.java @@ -179,24 +179,24 @@ public class LawsClubJoinTeamServiceImpl extends ServiceImpl().eq(SysUser::getUsername, leadName).eq(SysUser::getRealname,fullName),false); if (Objects.isNull(sysUser)) { - msgSub.append(getErrorMsg(i, "社团职务担任者不存在;")); + msgSub.append(getErrorMsg(i, "社团职务担任者不存在")); }else { lawsClubJoinTeamExcel.setLeadId(sysUser.getId()); } } // 校验入团经费 if (StringUtils.isNotBlank(lawsClubJoinTeamExcel.getJoinCast()) && lawsClubJoinTeamExcel.getJoinCast().length() > 50) { - msgSub.append(getErrorMsg(i, "入团经费长度不能超过50;")); + msgSub.append(getErrorMsg(i, "入团经费长度不能超过50")); } // 校验社团简介 if (StringUtils.isNotBlank(lawsClubJoinTeamExcel.getClubProfile()) && lawsClubJoinTeamExcel.getClubProfile().length() > 500) { - msgSub.append(getErrorMsg(i, "社团简介长度不能超过500;")); + msgSub.append(getErrorMsg(i, "社团简介长度不能超过500")); } // 校验部门名称 if (StringUtils.isNotBlank(lawsClubJoinTeamExcel.getDepartId())) { List sysDepart = sysDepartService.list(new LambdaQueryWrapper().eq(SysDepart::getDepartName, lawsClubJoinTeamExcel.getDepartId())); if (CollectionUtils.isEmpty(sysDepart)) { - msgSub.append(getErrorMsg(i, "部门名称不存在;")); + msgSub.append(getErrorMsg(i, "部门名称不存在")); }else { lawsClubJoinTeamExcel.setDepartId(sysDepart.get(0).getId()); } @@ -205,7 +205,7 @@ public class LawsClubJoinTeamServiceImpl extends ServiceImpl().eq(SysUser::getUsername, proposerName).eq(SysUser::getRealname,fullName),false); if (Objects.isNull(sysUser)) { - msgSub.append(getErrorMsg(i, "申请人不存在;")); + msgSub.append(getErrorMsg(i, "申请人不存在")); }else { lawsClubJoinTeamExcel.setProposerId(sysUser.getId()); } } // 校验秘书处 if (StringUtils.isNotBlank(lawsClubJoinTeamExcel.getSecretariat()) && lawsClubJoinTeamExcel.getSecretariat().length() > 50) { - msgSub.append(getErrorMsg(i, "秘书处长度不能超过50;")); + msgSub.append(getErrorMsg(i, "秘书处长度不能超过50")); } // 校验联系人 if (StringUtils.isNotBlank(lawsClubJoinTeamExcel.getContacts()) && lawsClubJoinTeamExcel.getContacts().length() > 50) { - msgSub.append(getErrorMsg(i, "联系人长度不能超过50;")); + msgSub.append(getErrorMsg(i, "联系人长度不能超过50")); } // 校验备注 if (StringUtils.isNotBlank(lawsClubJoinTeamExcel.getRemark()) && lawsClubJoinTeamExcel.getRemark().length() > 500) { - msgSub.append(getErrorMsg(i, "备注长度不能超过500;")); + msgSub.append(getErrorMsg(i, "备注长度不能超过500")); } if (msgSub.length() > 0) { msg.append(msgSub).append("
"); @@ -256,7 +256,7 @@ public class LawsClubJoinTeamServiceImpl extends ServiceImpl 50) { - msgSub.append(getErrorMsg(i, "会议名称长度不能超过50;")); + msgSub.append(getErrorMsg(i, "会议名称长度不能超过50")); } // 校验会议日期 if (StringUtils.isNotBlank(lawsClubMeetingExcel.getMeetingDate())) { try { LocalDate.parse(lawsClubMeetingExcel.getMeetingDate()); } catch (Exception e) { - msgSub.append(getErrorMsg(i, "会议日期格式不正确;")); + msgSub.append(getErrorMsg(i, "会议日期格式不正确")); } } // 校验会议费用 if (StringUtils.isNotBlank(lawsClubMeetingExcel.getMeetingCost()) && lawsClubMeetingExcel.getMeetingCost().length() > 50) { - msgSub.append(getErrorMsg(i, "会议费用长度不能超过50;")); + msgSub.append(getErrorMsg(i, "会议费用长度不能超过50")); } // 校验线下/线上地点 if (StringUtils.isNotBlank(lawsClubMeetingExcel.getMeetingPlace()) && lawsClubMeetingExcel.getMeetingPlace().length() > 50) { - msgSub.append(getErrorMsg(i, "线下/线上地点长度不能超过50;")); + msgSub.append(getErrorMsg(i, "线下/线上地点长度不能超过50")); } // 校验计划完成日期 if (StringUtils.isNotBlank(lawsClubMeetingExcel.getPlanCompletionDate())) { try { LocalDate.parse(lawsClubMeetingExcel.getPlanCompletionDate()); } catch (Exception e) { - msgSub.append(getErrorMsg(i, "计划完成日期格式不正确;")); + msgSub.append(getErrorMsg(i, "计划完成日期格式不正确")); } } // 校验通知人 @@ -264,7 +264,7 @@ public class LawsClubMeetingServiceImpl extends ServiceImpl().eq(SysUser::getUsername, notifierId).eq(SysUser::getRealname,fullName),false); if (Objects.isNull(sysUser)) { - msgSub.append(getErrorMsg(i, "通知人不存在;")); + msgSub.append(getErrorMsg(i, "通知人不存在")); }else { lawsClubMeetingExcel.setNotifierId(sysUser.getId()); } @@ -273,7 +273,7 @@ public class LawsClubMeetingServiceImpl extends ServiceImpl sysDepart = sysDepartService.list(new LambdaQueryWrapper().eq(SysDepart::getDepartName, lawsClubMeetingExcel.getNotifyDepartId())); if (CollectionUtils.isEmpty(sysDepart)) { - msgSub.append(getErrorMsg(i, "通知部门不存在;")); + msgSub.append(getErrorMsg(i, "通知部门不存在")); }else { lawsClubMeetingExcel.setNotifyDepartId((sysDepart.get(0).getId())); } @@ -282,7 +282,7 @@ public class LawsClubMeetingServiceImpl extends ServiceImpl 50) { - msgSub.append(getErrorMsg(i, "会议组织人长度不能超过50;")); + msgSub.append(getErrorMsg(i, "会议组织人长度不能超过50")); } // 校验会议内容 if (StringUtils.isNotBlank(lawsClubMeetingExcel.getMeetingContent()) && lawsClubMeetingExcel.getMeetingContent().length() > 500) { - msgSub.append(getErrorMsg(i, "会议内容长度不能超过500;")); + msgSub.append(getErrorMsg(i, "会议内容长度不能超过500")); } List meetingMemberList = lawsClubMeetingExcel.getMeetingMemberList(); // 校验参会人员的信息 @@ -313,7 +313,7 @@ public class LawsClubMeetingServiceImpl extends ServiceImpl().eq(SysUser::getUsername, memberId).eq(SysUser::getRealname, fullName),false); if (Objects.isNull(sysUser)) { - msgSub.append(getErrorMsg(i, "参会人员:" + lawsClubMeetingMemberExcel.getMemberId() + "不存在;")); + msgSub.append(getErrorMsg(i, "参会人员:" + lawsClubMeetingMemberExcel.getMemberId() + "不存在")); }else { lawsClubMeetingMemberExcel.setMemberId(sysUser.getId()); } @@ -322,7 +322,7 @@ public class LawsClubMeetingServiceImpl extends ServiceImpl sysDepart = sysDepartService.list(new LambdaQueryWrapper().eq(SysDepart::getDepartName, lawsClubMeetingMemberExcel.getDepartId())); if (CollectionUtils.isEmpty(sysDepart)) { - msgSub.append(getErrorMsg(i, "参会部门:" + lawsClubMeetingMemberExcel.getDepartId() + "不存在;")); + msgSub.append(getErrorMsg(i, "参会部门:" + lawsClubMeetingMemberExcel.getDepartId() + "不存在")); }else { lawsClubMeetingMemberExcel.setDepartId((sysDepart.get(0).getId())); } @@ -331,7 +331,7 @@ public class LawsClubMeetingServiceImpl extends ServiceImpl 50) { - msgSub.append(getErrorMsg(i, "缴费金额长度不能超过50;")); + msgSub.append(getErrorMsg(i, "缴费金额长度不能超过50")); } // 校验缴费日期格 if (StringUtils.isNotBlank(lawsClubPaymentExcel.getPaymentTime())) { try { LocalDate.parse(lawsClubPaymentExcel.getPaymentTime()); } catch (Exception e) { - msgSub.append(getErrorMsg(i, "缴费日期格式不正确;")); + msgSub.append(getErrorMsg(i, "缴费日期格式不正确")); } } // 校验备注 if (StringUtils.isNotBlank(lawsClubPaymentExcel.getRemark()) && lawsClubPaymentExcel.getRemark().length() > 500) { - msgSub.append(getErrorMsg(i, "备注长度不能超过500;")); + msgSub.append(getErrorMsg(i, "备注长度不能超过500")); } if (msgSub.length() > 0) { msg.append(msgSub).append("
"); @@ -186,7 +186,7 @@ public class LawsClubPaymentServiceImpl extends ServiceImpl clazz, int titleRows, int i) { diff --git a/laws-modules/src/main/java/com/jero/modules/laws/club/service/impl/LawsClubResearchInformationServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/club/service/impl/LawsClubResearchInformationServiceImpl.java index 671e128b..0f3620d6 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/club/service/impl/LawsClubResearchInformationServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/club/service/impl/LawsClubResearchInformationServiceImpl.java @@ -171,18 +171,18 @@ public class LawsClubResearchInformationServiceImpl extends ServiceImpl 50) { - msgSub.append(getErrorMsg(i, "名称长度不能超过50;")); + msgSub.append(getErrorMsg(i, "名称长度不能超过50")); } // 校验内容 if (StringUtils.isNotBlank(lawsClubResearchInformationExcel.getResearchContent()) && lawsClubResearchInformationExcel.getResearchContent().length() > 500) { - msgSub.append(getErrorMsg(i, "内容长度不能超过500;")); + msgSub.append(getErrorMsg(i, "内容长度不能超过500")); } // 校验接收日期 if (StringUtils.isNotBlank(lawsClubResearchInformationExcel.getReceiveDate())) { try { LocalDate.parse(lawsClubResearchInformationExcel.getReceiveDate()); } catch (Exception e) { - msgSub.append(getErrorMsg(i, "接收日期格式不正确;")); + msgSub.append(getErrorMsg(i, "接收日期格式不正确")); } } // 校验截止日期 @@ -190,7 +190,7 @@ public class LawsClubResearchInformationServiceImpl extends ServiceImpl().eq(SysUser::getUsername, specializedInterfacePerson).eq(SysUser::getRealname,fullName),false); if (Objects.isNull(sysUser)) { - msgSub.append(getErrorMsg(i, "专业接口人不存在;")); + msgSub.append(getErrorMsg(i, "专业接口人不存在")); }else { lawsClubResearchInformationExcel.setSpecializedInterfacePerson(sysUser.getId()); } @@ -208,7 +208,7 @@ public class LawsClubResearchInformationServiceImpl extends ServiceImpl().eq(SysUser::getUsername, feedbackPerson).eq(SysUser::getRealname,fullName),false); if (Objects.isNull(sysUser)) { - msgSub.append(getErrorMsg(i, "反馈人不存在;")); + msgSub.append(getErrorMsg(i, "反馈人不存在")); }else { lawsClubResearchInformationExcel.setFeedbackPerson(sysUser.getId()); } @@ -228,7 +228,7 @@ public class LawsClubResearchInformationServiceImpl extends ServiceImpl sysDepart = sysDepartService.list(new LambdaQueryWrapper().eq(SysDepart::getDepartName, lawsClubResearchInformationExcel.getFeedbackDepart())); if (CollectionUtils.isEmpty(sysDepart)) { - msgSub.append(getErrorMsg(i, "反馈部门不存在;")); + msgSub.append(getErrorMsg(i, "反馈部门不存在")); }else { lawsClubResearchInformationExcel.setFeedbackDepart(sysDepart.get(0).getId()); } @@ -237,28 +237,28 @@ public class LawsClubResearchInformationServiceImpl extends ServiceImpl 500) { - msgSub.append(getErrorMsg(i, "反馈情况长度不能超过500;")); + msgSub.append(getErrorMsg(i, "反馈情况长度不能超过500")); } // 校验盖章流程完成情况 if (StringUtils.isNotBlank(lawsClubResearchInformationExcel.getSealSituation()) && lawsClubResearchInformationExcel.getSealSituation().length() > 50) { - msgSub.append(getErrorMsg(i, "盖章流程完成情况长度不能超过50;")); + msgSub.append(getErrorMsg(i, "盖章流程完成情况长度不能超过50")); } // 校验所属设社团 if (StringUtils.isNotBlank(lawsClubResearchInformationExcel.getClubName()) && lawsClubResearchInformationExcel.getClubName().length() > 50) { - msgSub.append(getErrorMsg(i, "所属设社团长度不能超过50;")); + msgSub.append(getErrorMsg(i, "所属设社团长度不能超过50")); } // 校验任务来源 if (StringUtils.isNotBlank(lawsClubResearchInformationExcel.getTaskSource())) { String taskSource = clubTaskSourceMap.get(lawsClubResearchInformationExcel.getTaskSource()); if (StringUtils.isBlank(taskSource)) { - msgSub.append(getErrorMsg(i, "任务来源不存在;")); + msgSub.append(getErrorMsg(i, "任务来源不存在")); }else { lawsClubResearchInformationExcel.setTaskSource(taskSource); } @@ -272,7 +272,7 @@ public class LawsClubResearchInformationServiceImpl extends ServiceImpl i // 校验上级节点 String parentId = lawsClubExcel.getParentId(); if (StringUtils.isBlank(parentId)) { - msgSub.append(getErrorMsg(i, "上级节点不能为空;")); + msgSub.append(getErrorMsg(i, "上级节点不能为空")); } else { LawsClub club = getOne(new LambdaQueryWrapper().eq(LawsClub::getClubName, parentId)); if (club == null) { - msgSub.append(getErrorMsg(i, "上级节点不存在,请重新输入;")); + msgSub.append(getErrorMsg(i, "上级节点不存在,请重新输入")); } else { lawsClubExcel.setParentId(club.getId()); } } // 校验节点类型 if (StringUtils.isBlank(lawsClubExcel.getNodeType())) { - msgSub.append(getErrorMsg(i, "节点类型不能为空;")); + msgSub.append(getErrorMsg(i, "节点类型不能为空")); } else if (lawsClubExcel.getNodeType().length() > 50){ - msgSub.append(getErrorMsg(i, "节点类型长度不能超过50;")); + msgSub.append(getErrorMsg(i, "节点类型长度不能超过50")); } // 校验社团名称 if (StringUtils.isBlank(lawsClubExcel.getClubName())) { - msgSub.append(getErrorMsg(i, "社团名称不能为空;")); + msgSub.append(getErrorMsg(i, "社团名称不能为空")); }else if (lawsClubExcel.getClubName().length() > 50) { - msgSub.append(getErrorMsg(i, "社团名称长度不能超过50;")); + msgSub.append(getErrorMsg(i, "社团名称长度不能超过50")); }else { LawsClub lawsClub = getOne(new LambdaQueryWrapper().eq(LawsClub::getClubName, lawsClubExcel.getClubName())); if (!Objects.isNull(lawsClub)) { - msgSub.append(getErrorMsg(i, "社团名称已存在;")); + msgSub.append(getErrorMsg(i, "社团名称已存在")); } } // 校验社团地址 if (StringUtils.isNotBlank(lawsClubExcel.getClubAddress()) && lawsClubExcel.getClubAddress().length() > 50) { - msgSub.append(getErrorMsg(i, "社团地址长度不能超过50;")); + msgSub.append(getErrorMsg(i, "社团地址长度不能超过50")); } // 校验社团联系人 if (StringUtils.isNotBlank(lawsClubExcel.getClubContact()) && lawsClubExcel.getClubContact().length() > 50) { - msgSub.append(getErrorMsg(i, "社团联系人长度不能超过50;")); + msgSub.append(getErrorMsg(i, "社团联系人长度不能超过50")); } // 校验联系电话 String contactNumber = lawsClubExcel.getContactNumber(); if (StringUtils.isNotBlank(contactNumber) && !contactNumber.matches("^(?:(0\\d{2,3}-)?\\d{7,8}|1[3-9]\\d{9})$")) { - msgSub.append(getErrorMsg(i, "联系电话格式不正确;")); + msgSub.append(getErrorMsg(i, "联系电话格式不正确")); } else { lawsClubExcel.setContactNumber(PasswordUtil.encrypt(contactNumber)); } // 校验编号 if (StringUtils.isNotBlank(lawsClubExcel.getNumber()) && lawsClubExcel.getNumber().length() > 50) { - msgSub.append(getErrorMsg(i, "编号长度不能超过50;")); + msgSub.append(getErrorMsg(i, "编号长度不能超过50")); } if (msgSub.length() > 0) { msg.append(msgSub).append("
"); @@ -1022,18 +1022,9 @@ public class LawsClubServiceImpl extends ServiceImpl i // 错误消息格式化 private String getErrorMsg(int rowIndex, String errorMsg) { - return "第" + (rowIndex + 4) + "行" + errorMsg; + return "第" + (rowIndex + 4) + "行" + errorMsg + ","; } - private Map getUserRealNameAndUsernameMap(List userIds) { - // 假设这里是根据 leadIds 批量查询用户信息的逻辑 - List users = sysUserService.list(new LambdaQueryWrapper().in(SysUser::getId, userIds)); - // 将用户信息拼接为 "realname(username)" 形式 - return users.stream().collect(Collectors.toMap( - SysUser::getId, - user -> user.getRealname() + "(" + user.getUsername() + ")" - )); - } private void excelHeadVerify(MultipartFile file, Class clazz, int titleRows, int i) { try { diff --git a/laws-modules/src/main/java/com/jero/modules/laws/club/service/impl/LawsClubWorkingGroupFileServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/club/service/impl/LawsClubWorkingGroupFileServiceImpl.java index 74238f25..c9b20e72 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/club/service/impl/LawsClubWorkingGroupFileServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/club/service/impl/LawsClubWorkingGroupFileServiceImpl.java @@ -207,7 +207,7 @@ public class LawsClubWorkingGroupFileServiceImpl extends ServiceImpl