diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourcerController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourcerController.java index 700b299..33cf5d8 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourcerController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourcerController.java @@ -15,8 +15,12 @@ import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.model.business.BusinessOutsourcerInfo; +import com.casic.missiles.model.business.BusinessOutsourcerInfoImport; +import com.casic.missiles.model.equipment.EquipmentFixedAssets; +import com.casic.missiles.model.equipment.EquipmentFixedAssetsImport; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessOutsourcerInfoService; +import com.casic.missiles.utils.ConvertUtils; import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -25,8 +29,10 @@ import org.springframework.util.CollectionUtils; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import javax.validation.Valid; +import java.util.ArrayList; import java.util.List; import java.util.Objects; @@ -99,6 +105,22 @@ return ReturnUtil.success(super.packForBT(page)); } + /** + * 批量导入分包方档案 + */ + @ApiOperation("批量导入分包方档案") + @PostMapping(value = "/import", headers = "content-type=multipart/form-data") + @ResponseBody + public ReturnDTO importBatch(@RequestParam MultipartFile[] multipartFile) throws Exception { + List sourceList = new ArrayList(); + for (MultipartFile file : multipartFile) { + List list = super.importExcel(BusinessOutsourcerInfoImport.class, file, null, null); + sourceList.addAll(list); + } + List targetList = ConvertUtils.sourceToTarget(sourceList, BusinessOutsourcerInfo.class); + return outsourcerInfoService.addBusinessOutsourcerList(targetList); + } + @ApiOperation("分包方资格审批保存(保存至草稿箱)") @PostMapping("/save") @ResponseBody diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourcerController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourcerController.java index 700b299..33cf5d8 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourcerController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourcerController.java @@ -15,8 +15,12 @@ import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.model.business.BusinessOutsourcerInfo; +import com.casic.missiles.model.business.BusinessOutsourcerInfoImport; +import com.casic.missiles.model.equipment.EquipmentFixedAssets; +import com.casic.missiles.model.equipment.EquipmentFixedAssetsImport; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessOutsourcerInfoService; +import com.casic.missiles.utils.ConvertUtils; import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -25,8 +29,10 @@ import org.springframework.util.CollectionUtils; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import javax.validation.Valid; +import java.util.ArrayList; import java.util.List; import java.util.Objects; @@ -99,6 +105,22 @@ return ReturnUtil.success(super.packForBT(page)); } + /** + * 批量导入分包方档案 + */ + @ApiOperation("批量导入分包方档案") + @PostMapping(value = "/import", headers = "content-type=multipart/form-data") + @ResponseBody + public ReturnDTO importBatch(@RequestParam MultipartFile[] multipartFile) throws Exception { + List sourceList = new ArrayList(); + for (MultipartFile file : multipartFile) { + List list = super.importExcel(BusinessOutsourcerInfoImport.class, file, null, null); + sourceList.addAll(list); + } + List targetList = ConvertUtils.sourceToTarget(sourceList, BusinessOutsourcerInfo.class); + return outsourcerInfoService.addBusinessOutsourcerList(targetList); + } + @ApiOperation("分包方资格审批保存(保存至草稿箱)") @PostMapping("/save") @ResponseBody diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java index 94de448..1684d0f 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java @@ -183,7 +183,7 @@ @PostMapping(value = "/importMeterEquipment", headers = "content-type=multipart/form-data") @ResponseBody public ReturnDTO importMeterEquipment(@RequestParam MultipartFile[] multipartFile) throws Exception { - List sourceList = new ArrayList(); + List sourceList = new ArrayList<>(); for (MultipartFile file : multipartFile) { List list = super.importExcel(EquipmentFixedAssetsImport.class, file, null, null); sourceList.addAll(list); diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourcerController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourcerController.java index 700b299..33cf5d8 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourcerController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourcerController.java @@ -15,8 +15,12 @@ import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.model.business.BusinessOutsourcerInfo; +import com.casic.missiles.model.business.BusinessOutsourcerInfoImport; +import com.casic.missiles.model.equipment.EquipmentFixedAssets; +import com.casic.missiles.model.equipment.EquipmentFixedAssetsImport; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessOutsourcerInfoService; +import com.casic.missiles.utils.ConvertUtils; import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -25,8 +29,10 @@ import org.springframework.util.CollectionUtils; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import javax.validation.Valid; +import java.util.ArrayList; import java.util.List; import java.util.Objects; @@ -99,6 +105,22 @@ return ReturnUtil.success(super.packForBT(page)); } + /** + * 批量导入分包方档案 + */ + @ApiOperation("批量导入分包方档案") + @PostMapping(value = "/import", headers = "content-type=multipart/form-data") + @ResponseBody + public ReturnDTO importBatch(@RequestParam MultipartFile[] multipartFile) throws Exception { + List sourceList = new ArrayList(); + for (MultipartFile file : multipartFile) { + List list = super.importExcel(BusinessOutsourcerInfoImport.class, file, null, null); + sourceList.addAll(list); + } + List targetList = ConvertUtils.sourceToTarget(sourceList, BusinessOutsourcerInfo.class); + return outsourcerInfoService.addBusinessOutsourcerList(targetList); + } + @ApiOperation("分包方资格审批保存(保存至草稿箱)") @PostMapping("/save") @ResponseBody diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java index 94de448..1684d0f 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java @@ -183,7 +183,7 @@ @PostMapping(value = "/importMeterEquipment", headers = "content-type=multipart/form-data") @ResponseBody public ReturnDTO importMeterEquipment(@RequestParam MultipartFile[] multipartFile) throws Exception { - List sourceList = new ArrayList(); + List sourceList = new ArrayList<>(); for (MultipartFile file : multipartFile) { List list = super.importExcel(EquipmentFixedAssetsImport.class, file, null, null); sourceList.addAll(list); diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterPriceController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterPriceController.java index 8bb178f..dbb183f 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterPriceController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterPriceController.java @@ -3,15 +3,19 @@ import com.alibaba.excel.EasyExcel; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.IdDTO; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.meter.MeterPriceImport; import com.casic.missiles.dto.meter.MeterPriceRequest; +import com.casic.missiles.model.meter.MeterTraceSupplier; +import com.casic.missiles.model.meter.MeterTraceSupplierImport; import com.casic.missiles.service.listeners.CommonExcelListener; import com.casic.missiles.model.meter.MeterPrice; import com.casic.missiles.service.meter.MeterPriceService; +import com.casic.missiles.utils.ConvertUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; @@ -21,6 +25,7 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.util.ArrayList; import java.util.List; @@ -28,7 +33,7 @@ @RestController @RequestMapping("/price") @Slf4j -public class MeterPriceController { +public class MeterPriceController extends ExportController { @Resource private MeterPriceService meterPriceService; @@ -69,6 +74,19 @@ return meterPriceService.addMeterPrice(meterPrice); } + @ApiOperation("批量导入价格库") + @PostMapping(value = "/import", headers = "content-type=multipart/form-data") + @ResponseBody + public ReturnDTO importBatch(@RequestParam MultipartFile[] multipartFile) throws Exception { + List sourceList = new ArrayList(); + for (MultipartFile file : multipartFile) { + List list = super.importExcel(MeterPriceImport.class, file, null, null); + sourceList.addAll(list); + } + List targetList = ConvertUtils.sourceToTarget(sourceList, MeterPrice.class); + return meterPriceService.addMeterPriceList(targetList); + } + /** * 价格详细信息 * @return @@ -106,30 +124,4 @@ } } - /** - * - * @param multipartFile - * @return - */ - @ApiOperation("批量导入价格库") - @PostMapping(value = "/batchImportPrice", headers = "content-type=multipart/form-data") - @ResponseBody - public ReturnDTO batchImportPrice(@RequestParam MultipartFile[] multipartFile) { - try { - CommonExcelListener listener = new CommonExcelListener<>(); - final long start = System.currentTimeMillis(); - for (MultipartFile file : multipartFile) { - EasyExcel.read(file.getInputStream(), MeterPriceImport.class, listener) - .headRowNumber(1).autoTrim(true).sheet(0).doRead(); - } - log.info("耗时:秒" + (System.currentTimeMillis() - start) / 1000); - //读取到的数据 - List list = listener.getList(); - return meterPriceService.dataCheck(list); - } catch (IOException e) { - e.printStackTrace(); - return ReturnUtil.failed("数据取失败"); - } - } - } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourcerController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourcerController.java index 700b299..33cf5d8 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourcerController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourcerController.java @@ -15,8 +15,12 @@ import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.model.business.BusinessOutsourcerInfo; +import com.casic.missiles.model.business.BusinessOutsourcerInfoImport; +import com.casic.missiles.model.equipment.EquipmentFixedAssets; +import com.casic.missiles.model.equipment.EquipmentFixedAssetsImport; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessOutsourcerInfoService; +import com.casic.missiles.utils.ConvertUtils; import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -25,8 +29,10 @@ import org.springframework.util.CollectionUtils; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import javax.validation.Valid; +import java.util.ArrayList; import java.util.List; import java.util.Objects; @@ -99,6 +105,22 @@ return ReturnUtil.success(super.packForBT(page)); } + /** + * 批量导入分包方档案 + */ + @ApiOperation("批量导入分包方档案") + @PostMapping(value = "/import", headers = "content-type=multipart/form-data") + @ResponseBody + public ReturnDTO importBatch(@RequestParam MultipartFile[] multipartFile) throws Exception { + List sourceList = new ArrayList(); + for (MultipartFile file : multipartFile) { + List list = super.importExcel(BusinessOutsourcerInfoImport.class, file, null, null); + sourceList.addAll(list); + } + List targetList = ConvertUtils.sourceToTarget(sourceList, BusinessOutsourcerInfo.class); + return outsourcerInfoService.addBusinessOutsourcerList(targetList); + } + @ApiOperation("分包方资格审批保存(保存至草稿箱)") @PostMapping("/save") @ResponseBody diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java index 94de448..1684d0f 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java @@ -183,7 +183,7 @@ @PostMapping(value = "/importMeterEquipment", headers = "content-type=multipart/form-data") @ResponseBody public ReturnDTO importMeterEquipment(@RequestParam MultipartFile[] multipartFile) throws Exception { - List sourceList = new ArrayList(); + List sourceList = new ArrayList<>(); for (MultipartFile file : multipartFile) { List list = super.importExcel(EquipmentFixedAssetsImport.class, file, null, null); sourceList.addAll(list); diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterPriceController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterPriceController.java index 8bb178f..dbb183f 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterPriceController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterPriceController.java @@ -3,15 +3,19 @@ import com.alibaba.excel.EasyExcel; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.IdDTO; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.meter.MeterPriceImport; import com.casic.missiles.dto.meter.MeterPriceRequest; +import com.casic.missiles.model.meter.MeterTraceSupplier; +import com.casic.missiles.model.meter.MeterTraceSupplierImport; import com.casic.missiles.service.listeners.CommonExcelListener; import com.casic.missiles.model.meter.MeterPrice; import com.casic.missiles.service.meter.MeterPriceService; +import com.casic.missiles.utils.ConvertUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; @@ -21,6 +25,7 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.util.ArrayList; import java.util.List; @@ -28,7 +33,7 @@ @RestController @RequestMapping("/price") @Slf4j -public class MeterPriceController { +public class MeterPriceController extends ExportController { @Resource private MeterPriceService meterPriceService; @@ -69,6 +74,19 @@ return meterPriceService.addMeterPrice(meterPrice); } + @ApiOperation("批量导入价格库") + @PostMapping(value = "/import", headers = "content-type=multipart/form-data") + @ResponseBody + public ReturnDTO importBatch(@RequestParam MultipartFile[] multipartFile) throws Exception { + List sourceList = new ArrayList(); + for (MultipartFile file : multipartFile) { + List list = super.importExcel(MeterPriceImport.class, file, null, null); + sourceList.addAll(list); + } + List targetList = ConvertUtils.sourceToTarget(sourceList, MeterPrice.class); + return meterPriceService.addMeterPriceList(targetList); + } + /** * 价格详细信息 * @return @@ -106,30 +124,4 @@ } } - /** - * - * @param multipartFile - * @return - */ - @ApiOperation("批量导入价格库") - @PostMapping(value = "/batchImportPrice", headers = "content-type=multipart/form-data") - @ResponseBody - public ReturnDTO batchImportPrice(@RequestParam MultipartFile[] multipartFile) { - try { - CommonExcelListener listener = new CommonExcelListener<>(); - final long start = System.currentTimeMillis(); - for (MultipartFile file : multipartFile) { - EasyExcel.read(file.getInputStream(), MeterPriceImport.class, listener) - .headRowNumber(1).autoTrim(true).sheet(0).doRead(); - } - log.info("耗时:秒" + (System.currentTimeMillis() - start) / 1000); - //读取到的数据 - List list = listener.getList(); - return meterPriceService.dataCheck(list); - } catch (IOException e) { - e.printStackTrace(); - return ReturnUtil.failed("数据取失败"); - } - } - } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java index 5d77839..3935aa8 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java @@ -11,22 +11,25 @@ import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.business.BusinessOutsourcerInfo; +import com.casic.missiles.model.business.BusinessOutsourcerInfoImport; import com.casic.missiles.model.meter.MeterTraceSupplier; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.model.meter.MeterTraceSupplierImport; import com.casic.missiles.service.meter.IMeterTraceSupplierService; +import com.casic.missiles.utils.ConvertUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.util.CollectionUtils; import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import javax.validation.Valid; import java.io.IOException; +import java.util.ArrayList; import java.util.List; import java.util.Objects; @@ -89,6 +92,19 @@ return traceSupplierService.saveTraceSupplier(traceSupplier); } + @ApiOperation("批量导入溯源供方") + @PostMapping(value = "/import", headers = "content-type=multipart/form-data") + @ResponseBody + public ReturnDTO importBatch(@RequestParam MultipartFile[] multipartFile) throws Exception { + List sourceList = new ArrayList(); + for (MultipartFile file : multipartFile) { + List list = super.importExcel(MeterTraceSupplierImport.class, file, null, null); + sourceList.addAll(list); + } + List targetList = ConvertUtils.sourceToTarget(sourceList, MeterTraceSupplier.class); + return traceSupplierService.addTraceSupplierList(targetList); + } + /** * 草稿箱溯源供方编辑 */ diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourcerController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourcerController.java index 700b299..33cf5d8 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourcerController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourcerController.java @@ -15,8 +15,12 @@ import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.model.business.BusinessOutsourcerInfo; +import com.casic.missiles.model.business.BusinessOutsourcerInfoImport; +import com.casic.missiles.model.equipment.EquipmentFixedAssets; +import com.casic.missiles.model.equipment.EquipmentFixedAssetsImport; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessOutsourcerInfoService; +import com.casic.missiles.utils.ConvertUtils; import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -25,8 +29,10 @@ import org.springframework.util.CollectionUtils; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import javax.validation.Valid; +import java.util.ArrayList; import java.util.List; import java.util.Objects; @@ -99,6 +105,22 @@ return ReturnUtil.success(super.packForBT(page)); } + /** + * 批量导入分包方档案 + */ + @ApiOperation("批量导入分包方档案") + @PostMapping(value = "/import", headers = "content-type=multipart/form-data") + @ResponseBody + public ReturnDTO importBatch(@RequestParam MultipartFile[] multipartFile) throws Exception { + List sourceList = new ArrayList(); + for (MultipartFile file : multipartFile) { + List list = super.importExcel(BusinessOutsourcerInfoImport.class, file, null, null); + sourceList.addAll(list); + } + List targetList = ConvertUtils.sourceToTarget(sourceList, BusinessOutsourcerInfo.class); + return outsourcerInfoService.addBusinessOutsourcerList(targetList); + } + @ApiOperation("分包方资格审批保存(保存至草稿箱)") @PostMapping("/save") @ResponseBody diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java index 94de448..1684d0f 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java @@ -183,7 +183,7 @@ @PostMapping(value = "/importMeterEquipment", headers = "content-type=multipart/form-data") @ResponseBody public ReturnDTO importMeterEquipment(@RequestParam MultipartFile[] multipartFile) throws Exception { - List sourceList = new ArrayList(); + List sourceList = new ArrayList<>(); for (MultipartFile file : multipartFile) { List list = super.importExcel(EquipmentFixedAssetsImport.class, file, null, null); sourceList.addAll(list); diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterPriceController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterPriceController.java index 8bb178f..dbb183f 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterPriceController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterPriceController.java @@ -3,15 +3,19 @@ import com.alibaba.excel.EasyExcel; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.IdDTO; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.meter.MeterPriceImport; import com.casic.missiles.dto.meter.MeterPriceRequest; +import com.casic.missiles.model.meter.MeterTraceSupplier; +import com.casic.missiles.model.meter.MeterTraceSupplierImport; import com.casic.missiles.service.listeners.CommonExcelListener; import com.casic.missiles.model.meter.MeterPrice; import com.casic.missiles.service.meter.MeterPriceService; +import com.casic.missiles.utils.ConvertUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; @@ -21,6 +25,7 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.util.ArrayList; import java.util.List; @@ -28,7 +33,7 @@ @RestController @RequestMapping("/price") @Slf4j -public class MeterPriceController { +public class MeterPriceController extends ExportController { @Resource private MeterPriceService meterPriceService; @@ -69,6 +74,19 @@ return meterPriceService.addMeterPrice(meterPrice); } + @ApiOperation("批量导入价格库") + @PostMapping(value = "/import", headers = "content-type=multipart/form-data") + @ResponseBody + public ReturnDTO importBatch(@RequestParam MultipartFile[] multipartFile) throws Exception { + List sourceList = new ArrayList(); + for (MultipartFile file : multipartFile) { + List list = super.importExcel(MeterPriceImport.class, file, null, null); + sourceList.addAll(list); + } + List targetList = ConvertUtils.sourceToTarget(sourceList, MeterPrice.class); + return meterPriceService.addMeterPriceList(targetList); + } + /** * 价格详细信息 * @return @@ -106,30 +124,4 @@ } } - /** - * - * @param multipartFile - * @return - */ - @ApiOperation("批量导入价格库") - @PostMapping(value = "/batchImportPrice", headers = "content-type=multipart/form-data") - @ResponseBody - public ReturnDTO batchImportPrice(@RequestParam MultipartFile[] multipartFile) { - try { - CommonExcelListener listener = new CommonExcelListener<>(); - final long start = System.currentTimeMillis(); - for (MultipartFile file : multipartFile) { - EasyExcel.read(file.getInputStream(), MeterPriceImport.class, listener) - .headRowNumber(1).autoTrim(true).sheet(0).doRead(); - } - log.info("耗时:秒" + (System.currentTimeMillis() - start) / 1000); - //读取到的数据 - List list = listener.getList(); - return meterPriceService.dataCheck(list); - } catch (IOException e) { - e.printStackTrace(); - return ReturnUtil.failed("数据取失败"); - } - } - } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java index 5d77839..3935aa8 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java @@ -11,22 +11,25 @@ import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.business.BusinessOutsourcerInfo; +import com.casic.missiles.model.business.BusinessOutsourcerInfoImport; import com.casic.missiles.model.meter.MeterTraceSupplier; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.model.meter.MeterTraceSupplierImport; import com.casic.missiles.service.meter.IMeterTraceSupplierService; +import com.casic.missiles.utils.ConvertUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.util.CollectionUtils; import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import javax.validation.Valid; import java.io.IOException; +import java.util.ArrayList; import java.util.List; import java.util.Objects; @@ -89,6 +92,19 @@ return traceSupplierService.saveTraceSupplier(traceSupplier); } + @ApiOperation("批量导入溯源供方") + @PostMapping(value = "/import", headers = "content-type=multipart/form-data") + @ResponseBody + public ReturnDTO importBatch(@RequestParam MultipartFile[] multipartFile) throws Exception { + List sourceList = new ArrayList(); + for (MultipartFile file : multipartFile) { + List list = super.importExcel(MeterTraceSupplierImport.class, file, null, null); + sourceList.addAll(list); + } + List targetList = ConvertUtils.sourceToTarget(sourceList, MeterTraceSupplier.class); + return traceSupplierService.addTraceSupplierList(targetList); + } + /** * 草稿箱溯源供方编辑 */ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterPriceImport.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterPriceImport.java index 8e3852f..550c5cf 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterPriceImport.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterPriceImport.java @@ -20,70 +20,33 @@ @ExcelIgnoreUnannotated public class MeterPriceImport { - @TableId("id") - @ApiModelProperty(value = "主键id", dataType = "Long") - private Long id; - - @TableField("price_no") - @ExcelProperty(value = "价格编号",order = 0) - @ApiModelProperty(value = "价格编号", dataType = "String") - private String priceNo; - - @TableField("price_name") - @ExcelProperty(value = "价格名称",order = 1) - @ApiModelProperty(value = "价格名称", dataType = "String") + @ExcelProperty(value = "价格名称") private String priceName; - @TableField("check_type") - @ExcelProperty(value = "校验类型",order = 2) - @ApiModelProperty(value = "校验类型-字典value", dataType = "String") + @ExcelProperty(value = "校验类型") private String checkType; - @TableField("price_type") - @ExcelProperty(value = "价格类别",order = 3) - @ApiModelProperty(value = "价格类别-字典value", dataType = "String") + @ExcelProperty(value = "价格类别") private String priceType; - @TableField("price_item") - @ExcelProperty(value = "项目",order = 4) - @ApiModelProperty(value = "项目-字典value", dataType = "String") + @ExcelProperty(value = "价格项目") private String priceItem; - @TableField("price_standard") - @ExcelProperty(value = "依据标准",order = 5) - @ApiModelProperty(value = "依据标准-计量规程文件名", dataType = "String") - private String priceStandard; - - @TableField("price") - @ExcelProperty(value = "标准价格(元)",order = 6) - @ApiModelProperty(value = "标准价格(元)", dataType = "Double") + @ExcelProperty(value = "标准价格(元)") private Double price; - @TableField("price_limit") - @ExcelProperty(value = "业务员折扣权限",order = 7) - @ApiModelProperty(value = "业务员折扣权限", dataType = "String") + @ExcelProperty(value = "限制范围") private String priceLimit; - @TableField("operator_discount_permission") - @ExcelProperty(value = "业务员折扣权限",order = 8) - @ApiModelProperty(value = "业务员折扣权限-字典value", dataType = "String") + @ExcelProperty(value = "业务员折扣权限") private String operatorDiscountPermission; - @TableField("director_discount_permission") - @ExcelProperty(value = "负责人折扣权限",order = 9) - @ApiModelProperty(value = "负责人折扣权限-字典value", dataType = "String") + @ExcelProperty(value = "负责人折扣权限") private String directorDiscountPermission; - @TableField("price_description") - @ExcelProperty(value = "说明",order = 10) - @ApiModelProperty(value = "说明", dataType = "String") + @ExcelProperty(value = "说明") private String priceDescription; - @TableField("remark") - @ExcelProperty(value = "备注",order = 11) - @ApiModelProperty(value = "备注", dataType = "String") + @ExcelProperty(value = "备注") private String remark; - - @ExcelProperty(value = "不符合的数据",order = 12) - private String result; } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourcerController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourcerController.java index 700b299..33cf5d8 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourcerController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourcerController.java @@ -15,8 +15,12 @@ import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.model.business.BusinessOutsourcerInfo; +import com.casic.missiles.model.business.BusinessOutsourcerInfoImport; +import com.casic.missiles.model.equipment.EquipmentFixedAssets; +import com.casic.missiles.model.equipment.EquipmentFixedAssetsImport; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessOutsourcerInfoService; +import com.casic.missiles.utils.ConvertUtils; import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -25,8 +29,10 @@ import org.springframework.util.CollectionUtils; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import javax.validation.Valid; +import java.util.ArrayList; import java.util.List; import java.util.Objects; @@ -99,6 +105,22 @@ return ReturnUtil.success(super.packForBT(page)); } + /** + * 批量导入分包方档案 + */ + @ApiOperation("批量导入分包方档案") + @PostMapping(value = "/import", headers = "content-type=multipart/form-data") + @ResponseBody + public ReturnDTO importBatch(@RequestParam MultipartFile[] multipartFile) throws Exception { + List sourceList = new ArrayList(); + for (MultipartFile file : multipartFile) { + List list = super.importExcel(BusinessOutsourcerInfoImport.class, file, null, null); + sourceList.addAll(list); + } + List targetList = ConvertUtils.sourceToTarget(sourceList, BusinessOutsourcerInfo.class); + return outsourcerInfoService.addBusinessOutsourcerList(targetList); + } + @ApiOperation("分包方资格审批保存(保存至草稿箱)") @PostMapping("/save") @ResponseBody diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java index 94de448..1684d0f 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java @@ -183,7 +183,7 @@ @PostMapping(value = "/importMeterEquipment", headers = "content-type=multipart/form-data") @ResponseBody public ReturnDTO importMeterEquipment(@RequestParam MultipartFile[] multipartFile) throws Exception { - List sourceList = new ArrayList(); + List sourceList = new ArrayList<>(); for (MultipartFile file : multipartFile) { List list = super.importExcel(EquipmentFixedAssetsImport.class, file, null, null); sourceList.addAll(list); diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterPriceController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterPriceController.java index 8bb178f..dbb183f 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterPriceController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterPriceController.java @@ -3,15 +3,19 @@ import com.alibaba.excel.EasyExcel; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.IdDTO; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.meter.MeterPriceImport; import com.casic.missiles.dto.meter.MeterPriceRequest; +import com.casic.missiles.model.meter.MeterTraceSupplier; +import com.casic.missiles.model.meter.MeterTraceSupplierImport; import com.casic.missiles.service.listeners.CommonExcelListener; import com.casic.missiles.model.meter.MeterPrice; import com.casic.missiles.service.meter.MeterPriceService; +import com.casic.missiles.utils.ConvertUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; @@ -21,6 +25,7 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.util.ArrayList; import java.util.List; @@ -28,7 +33,7 @@ @RestController @RequestMapping("/price") @Slf4j -public class MeterPriceController { +public class MeterPriceController extends ExportController { @Resource private MeterPriceService meterPriceService; @@ -69,6 +74,19 @@ return meterPriceService.addMeterPrice(meterPrice); } + @ApiOperation("批量导入价格库") + @PostMapping(value = "/import", headers = "content-type=multipart/form-data") + @ResponseBody + public ReturnDTO importBatch(@RequestParam MultipartFile[] multipartFile) throws Exception { + List sourceList = new ArrayList(); + for (MultipartFile file : multipartFile) { + List list = super.importExcel(MeterPriceImport.class, file, null, null); + sourceList.addAll(list); + } + List targetList = ConvertUtils.sourceToTarget(sourceList, MeterPrice.class); + return meterPriceService.addMeterPriceList(targetList); + } + /** * 价格详细信息 * @return @@ -106,30 +124,4 @@ } } - /** - * - * @param multipartFile - * @return - */ - @ApiOperation("批量导入价格库") - @PostMapping(value = "/batchImportPrice", headers = "content-type=multipart/form-data") - @ResponseBody - public ReturnDTO batchImportPrice(@RequestParam MultipartFile[] multipartFile) { - try { - CommonExcelListener listener = new CommonExcelListener<>(); - final long start = System.currentTimeMillis(); - for (MultipartFile file : multipartFile) { - EasyExcel.read(file.getInputStream(), MeterPriceImport.class, listener) - .headRowNumber(1).autoTrim(true).sheet(0).doRead(); - } - log.info("耗时:秒" + (System.currentTimeMillis() - start) / 1000); - //读取到的数据 - List list = listener.getList(); - return meterPriceService.dataCheck(list); - } catch (IOException e) { - e.printStackTrace(); - return ReturnUtil.failed("数据取失败"); - } - } - } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java index 5d77839..3935aa8 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java @@ -11,22 +11,25 @@ import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.business.BusinessOutsourcerInfo; +import com.casic.missiles.model.business.BusinessOutsourcerInfoImport; import com.casic.missiles.model.meter.MeterTraceSupplier; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.model.meter.MeterTraceSupplierImport; import com.casic.missiles.service.meter.IMeterTraceSupplierService; +import com.casic.missiles.utils.ConvertUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.util.CollectionUtils; import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import javax.validation.Valid; import java.io.IOException; +import java.util.ArrayList; import java.util.List; import java.util.Objects; @@ -89,6 +92,19 @@ return traceSupplierService.saveTraceSupplier(traceSupplier); } + @ApiOperation("批量导入溯源供方") + @PostMapping(value = "/import", headers = "content-type=multipart/form-data") + @ResponseBody + public ReturnDTO importBatch(@RequestParam MultipartFile[] multipartFile) throws Exception { + List sourceList = new ArrayList(); + for (MultipartFile file : multipartFile) { + List list = super.importExcel(MeterTraceSupplierImport.class, file, null, null); + sourceList.addAll(list); + } + List targetList = ConvertUtils.sourceToTarget(sourceList, MeterTraceSupplier.class); + return traceSupplierService.addTraceSupplierList(targetList); + } + /** * 草稿箱溯源供方编辑 */ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterPriceImport.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterPriceImport.java index 8e3852f..550c5cf 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterPriceImport.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterPriceImport.java @@ -20,70 +20,33 @@ @ExcelIgnoreUnannotated public class MeterPriceImport { - @TableId("id") - @ApiModelProperty(value = "主键id", dataType = "Long") - private Long id; - - @TableField("price_no") - @ExcelProperty(value = "价格编号",order = 0) - @ApiModelProperty(value = "价格编号", dataType = "String") - private String priceNo; - - @TableField("price_name") - @ExcelProperty(value = "价格名称",order = 1) - @ApiModelProperty(value = "价格名称", dataType = "String") + @ExcelProperty(value = "价格名称") private String priceName; - @TableField("check_type") - @ExcelProperty(value = "校验类型",order = 2) - @ApiModelProperty(value = "校验类型-字典value", dataType = "String") + @ExcelProperty(value = "校验类型") private String checkType; - @TableField("price_type") - @ExcelProperty(value = "价格类别",order = 3) - @ApiModelProperty(value = "价格类别-字典value", dataType = "String") + @ExcelProperty(value = "价格类别") private String priceType; - @TableField("price_item") - @ExcelProperty(value = "项目",order = 4) - @ApiModelProperty(value = "项目-字典value", dataType = "String") + @ExcelProperty(value = "价格项目") private String priceItem; - @TableField("price_standard") - @ExcelProperty(value = "依据标准",order = 5) - @ApiModelProperty(value = "依据标准-计量规程文件名", dataType = "String") - private String priceStandard; - - @TableField("price") - @ExcelProperty(value = "标准价格(元)",order = 6) - @ApiModelProperty(value = "标准价格(元)", dataType = "Double") + @ExcelProperty(value = "标准价格(元)") private Double price; - @TableField("price_limit") - @ExcelProperty(value = "业务员折扣权限",order = 7) - @ApiModelProperty(value = "业务员折扣权限", dataType = "String") + @ExcelProperty(value = "限制范围") private String priceLimit; - @TableField("operator_discount_permission") - @ExcelProperty(value = "业务员折扣权限",order = 8) - @ApiModelProperty(value = "业务员折扣权限-字典value", dataType = "String") + @ExcelProperty(value = "业务员折扣权限") private String operatorDiscountPermission; - @TableField("director_discount_permission") - @ExcelProperty(value = "负责人折扣权限",order = 9) - @ApiModelProperty(value = "负责人折扣权限-字典value", dataType = "String") + @ExcelProperty(value = "负责人折扣权限") private String directorDiscountPermission; - @TableField("price_description") - @ExcelProperty(value = "说明",order = 10) - @ApiModelProperty(value = "说明", dataType = "String") + @ExcelProperty(value = "说明") private String priceDescription; - @TableField("remark") - @ExcelProperty(value = "备注",order = 11) - @ApiModelProperty(value = "备注", dataType = "String") + @ExcelProperty(value = "备注") private String remark; - - @ExcelProperty(value = "不符合的数据",order = 12) - private String result; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourcerInfoImport.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourcerInfoImport.java new file mode 100644 index 0000000..3a4c51f --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourcerInfoImport.java @@ -0,0 +1,130 @@ +package com.casic.missiles.model.business; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * @Description: + * @Author: wangpeng + * @Date: 2023/5/29 9:58 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +@ApiModel +@Data +public class BusinessOutsourcerInfoImport { + private static final long serialVersionUID = 1L; + + /** + * 分包方公司名字 + */ + @ExcelProperty("公司名称") + private String outsourcerName; + + /** + * 分包方公司简称 + */ + @ExcelProperty("公司简称") + private String outsourcerBriefName; + + /** + * 分包方公司规模-字典 + */ + @ExcelProperty("公司规模") + private String outsourcerSize; + + /** + * 业务规模-字典 + */ + @ExcelProperty("业务规模") + private String businessSize; + + /** + * 履约评级-字典 + */ + @ExcelProperty("履约评级") + private String grade; + + /** + * 整体评价-字典 + */ + @ExcelProperty("整体评价") + private String evaluation; + + /** + * 业务内容 + */ + @ExcelProperty("业务内容") + private String businessContent; + + /** + * 税号 + */ + @ExcelProperty("税号") + private String taxNumber; + + /** + * 银行账户名 + */ + @ExcelProperty("银行账户名") + private String bankAccount; + + /** + * 银行名称 + */ + @ExcelProperty("银行名称") + private String bankName; + + /** + * 银行账号 + */ + @ExcelProperty("银行账号") + private String bankAccountNumber; + + /** + * 邮编 + */ + @ExcelProperty("邮编") + private String postalCode; + + /** + * 负责人 + */ + @ExcelProperty("负责人") + private String director; + + /** + * 电话 + */ + @ExcelProperty("电话") + private String phone; + + /** + * 手机 + */ + @ExcelProperty("手机") + private String mobile; + + /** + * 邮箱 + */ + @ExcelProperty("邮箱") + private String email; +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourcerController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourcerController.java index 700b299..33cf5d8 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourcerController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourcerController.java @@ -15,8 +15,12 @@ import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.model.business.BusinessOutsourcerInfo; +import com.casic.missiles.model.business.BusinessOutsourcerInfoImport; +import com.casic.missiles.model.equipment.EquipmentFixedAssets; +import com.casic.missiles.model.equipment.EquipmentFixedAssetsImport; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessOutsourcerInfoService; +import com.casic.missiles.utils.ConvertUtils; import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -25,8 +29,10 @@ import org.springframework.util.CollectionUtils; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import javax.validation.Valid; +import java.util.ArrayList; import java.util.List; import java.util.Objects; @@ -99,6 +105,22 @@ return ReturnUtil.success(super.packForBT(page)); } + /** + * 批量导入分包方档案 + */ + @ApiOperation("批量导入分包方档案") + @PostMapping(value = "/import", headers = "content-type=multipart/form-data") + @ResponseBody + public ReturnDTO importBatch(@RequestParam MultipartFile[] multipartFile) throws Exception { + List sourceList = new ArrayList(); + for (MultipartFile file : multipartFile) { + List list = super.importExcel(BusinessOutsourcerInfoImport.class, file, null, null); + sourceList.addAll(list); + } + List targetList = ConvertUtils.sourceToTarget(sourceList, BusinessOutsourcerInfo.class); + return outsourcerInfoService.addBusinessOutsourcerList(targetList); + } + @ApiOperation("分包方资格审批保存(保存至草稿箱)") @PostMapping("/save") @ResponseBody diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java index 94de448..1684d0f 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java @@ -183,7 +183,7 @@ @PostMapping(value = "/importMeterEquipment", headers = "content-type=multipart/form-data") @ResponseBody public ReturnDTO importMeterEquipment(@RequestParam MultipartFile[] multipartFile) throws Exception { - List sourceList = new ArrayList(); + List sourceList = new ArrayList<>(); for (MultipartFile file : multipartFile) { List list = super.importExcel(EquipmentFixedAssetsImport.class, file, null, null); sourceList.addAll(list); diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterPriceController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterPriceController.java index 8bb178f..dbb183f 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterPriceController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterPriceController.java @@ -3,15 +3,19 @@ import com.alibaba.excel.EasyExcel; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.IdDTO; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.meter.MeterPriceImport; import com.casic.missiles.dto.meter.MeterPriceRequest; +import com.casic.missiles.model.meter.MeterTraceSupplier; +import com.casic.missiles.model.meter.MeterTraceSupplierImport; import com.casic.missiles.service.listeners.CommonExcelListener; import com.casic.missiles.model.meter.MeterPrice; import com.casic.missiles.service.meter.MeterPriceService; +import com.casic.missiles.utils.ConvertUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; @@ -21,6 +25,7 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.util.ArrayList; import java.util.List; @@ -28,7 +33,7 @@ @RestController @RequestMapping("/price") @Slf4j -public class MeterPriceController { +public class MeterPriceController extends ExportController { @Resource private MeterPriceService meterPriceService; @@ -69,6 +74,19 @@ return meterPriceService.addMeterPrice(meterPrice); } + @ApiOperation("批量导入价格库") + @PostMapping(value = "/import", headers = "content-type=multipart/form-data") + @ResponseBody + public ReturnDTO importBatch(@RequestParam MultipartFile[] multipartFile) throws Exception { + List sourceList = new ArrayList(); + for (MultipartFile file : multipartFile) { + List list = super.importExcel(MeterPriceImport.class, file, null, null); + sourceList.addAll(list); + } + List targetList = ConvertUtils.sourceToTarget(sourceList, MeterPrice.class); + return meterPriceService.addMeterPriceList(targetList); + } + /** * 价格详细信息 * @return @@ -106,30 +124,4 @@ } } - /** - * - * @param multipartFile - * @return - */ - @ApiOperation("批量导入价格库") - @PostMapping(value = "/batchImportPrice", headers = "content-type=multipart/form-data") - @ResponseBody - public ReturnDTO batchImportPrice(@RequestParam MultipartFile[] multipartFile) { - try { - CommonExcelListener listener = new CommonExcelListener<>(); - final long start = System.currentTimeMillis(); - for (MultipartFile file : multipartFile) { - EasyExcel.read(file.getInputStream(), MeterPriceImport.class, listener) - .headRowNumber(1).autoTrim(true).sheet(0).doRead(); - } - log.info("耗时:秒" + (System.currentTimeMillis() - start) / 1000); - //读取到的数据 - List list = listener.getList(); - return meterPriceService.dataCheck(list); - } catch (IOException e) { - e.printStackTrace(); - return ReturnUtil.failed("数据取失败"); - } - } - } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java index 5d77839..3935aa8 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java @@ -11,22 +11,25 @@ import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.business.BusinessOutsourcerInfo; +import com.casic.missiles.model.business.BusinessOutsourcerInfoImport; import com.casic.missiles.model.meter.MeterTraceSupplier; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.model.meter.MeterTraceSupplierImport; import com.casic.missiles.service.meter.IMeterTraceSupplierService; +import com.casic.missiles.utils.ConvertUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.util.CollectionUtils; import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import javax.validation.Valid; import java.io.IOException; +import java.util.ArrayList; import java.util.List; import java.util.Objects; @@ -89,6 +92,19 @@ return traceSupplierService.saveTraceSupplier(traceSupplier); } + @ApiOperation("批量导入溯源供方") + @PostMapping(value = "/import", headers = "content-type=multipart/form-data") + @ResponseBody + public ReturnDTO importBatch(@RequestParam MultipartFile[] multipartFile) throws Exception { + List sourceList = new ArrayList(); + for (MultipartFile file : multipartFile) { + List list = super.importExcel(MeterTraceSupplierImport.class, file, null, null); + sourceList.addAll(list); + } + List targetList = ConvertUtils.sourceToTarget(sourceList, MeterTraceSupplier.class); + return traceSupplierService.addTraceSupplierList(targetList); + } + /** * 草稿箱溯源供方编辑 */ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterPriceImport.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterPriceImport.java index 8e3852f..550c5cf 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterPriceImport.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterPriceImport.java @@ -20,70 +20,33 @@ @ExcelIgnoreUnannotated public class MeterPriceImport { - @TableId("id") - @ApiModelProperty(value = "主键id", dataType = "Long") - private Long id; - - @TableField("price_no") - @ExcelProperty(value = "价格编号",order = 0) - @ApiModelProperty(value = "价格编号", dataType = "String") - private String priceNo; - - @TableField("price_name") - @ExcelProperty(value = "价格名称",order = 1) - @ApiModelProperty(value = "价格名称", dataType = "String") + @ExcelProperty(value = "价格名称") private String priceName; - @TableField("check_type") - @ExcelProperty(value = "校验类型",order = 2) - @ApiModelProperty(value = "校验类型-字典value", dataType = "String") + @ExcelProperty(value = "校验类型") private String checkType; - @TableField("price_type") - @ExcelProperty(value = "价格类别",order = 3) - @ApiModelProperty(value = "价格类别-字典value", dataType = "String") + @ExcelProperty(value = "价格类别") private String priceType; - @TableField("price_item") - @ExcelProperty(value = "项目",order = 4) - @ApiModelProperty(value = "项目-字典value", dataType = "String") + @ExcelProperty(value = "价格项目") private String priceItem; - @TableField("price_standard") - @ExcelProperty(value = "依据标准",order = 5) - @ApiModelProperty(value = "依据标准-计量规程文件名", dataType = "String") - private String priceStandard; - - @TableField("price") - @ExcelProperty(value = "标准价格(元)",order = 6) - @ApiModelProperty(value = "标准价格(元)", dataType = "Double") + @ExcelProperty(value = "标准价格(元)") private Double price; - @TableField("price_limit") - @ExcelProperty(value = "业务员折扣权限",order = 7) - @ApiModelProperty(value = "业务员折扣权限", dataType = "String") + @ExcelProperty(value = "限制范围") private String priceLimit; - @TableField("operator_discount_permission") - @ExcelProperty(value = "业务员折扣权限",order = 8) - @ApiModelProperty(value = "业务员折扣权限-字典value", dataType = "String") + @ExcelProperty(value = "业务员折扣权限") private String operatorDiscountPermission; - @TableField("director_discount_permission") - @ExcelProperty(value = "负责人折扣权限",order = 9) - @ApiModelProperty(value = "负责人折扣权限-字典value", dataType = "String") + @ExcelProperty(value = "负责人折扣权限") private String directorDiscountPermission; - @TableField("price_description") - @ExcelProperty(value = "说明",order = 10) - @ApiModelProperty(value = "说明", dataType = "String") + @ExcelProperty(value = "说明") private String priceDescription; - @TableField("remark") - @ExcelProperty(value = "备注",order = 11) - @ApiModelProperty(value = "备注", dataType = "String") + @ExcelProperty(value = "备注") private String remark; - - @ExcelProperty(value = "不符合的数据",order = 12) - private String result; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourcerInfoImport.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourcerInfoImport.java new file mode 100644 index 0000000..3a4c51f --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourcerInfoImport.java @@ -0,0 +1,130 @@ +package com.casic.missiles.model.business; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * @Description: + * @Author: wangpeng + * @Date: 2023/5/29 9:58 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +@ApiModel +@Data +public class BusinessOutsourcerInfoImport { + private static final long serialVersionUID = 1L; + + /** + * 分包方公司名字 + */ + @ExcelProperty("公司名称") + private String outsourcerName; + + /** + * 分包方公司简称 + */ + @ExcelProperty("公司简称") + private String outsourcerBriefName; + + /** + * 分包方公司规模-字典 + */ + @ExcelProperty("公司规模") + private String outsourcerSize; + + /** + * 业务规模-字典 + */ + @ExcelProperty("业务规模") + private String businessSize; + + /** + * 履约评级-字典 + */ + @ExcelProperty("履约评级") + private String grade; + + /** + * 整体评价-字典 + */ + @ExcelProperty("整体评价") + private String evaluation; + + /** + * 业务内容 + */ + @ExcelProperty("业务内容") + private String businessContent; + + /** + * 税号 + */ + @ExcelProperty("税号") + private String taxNumber; + + /** + * 银行账户名 + */ + @ExcelProperty("银行账户名") + private String bankAccount; + + /** + * 银行名称 + */ + @ExcelProperty("银行名称") + private String bankName; + + /** + * 银行账号 + */ + @ExcelProperty("银行账号") + private String bankAccountNumber; + + /** + * 邮编 + */ + @ExcelProperty("邮编") + private String postalCode; + + /** + * 负责人 + */ + @ExcelProperty("负责人") + private String director; + + /** + * 电话 + */ + @ExcelProperty("电话") + private String phone; + + /** + * 手机 + */ + @ExcelProperty("手机") + private String mobile; + + /** + * 邮箱 + */ + @ExcelProperty("邮箱") + private String email; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/meter/MeterTraceSupplier.java b/casic-metering-model/src/main/java/com/casic/missiles/model/meter/MeterTraceSupplier.java index 31b8323..1cf8405 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/meter/MeterTraceSupplier.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/meter/MeterTraceSupplier.java @@ -118,7 +118,7 @@ @TableField("director") private String director; - /**发布人 + /** * 电话 */ @ExcelProperty("联系方式") diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourcerController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourcerController.java index 700b299..33cf5d8 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourcerController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourcerController.java @@ -15,8 +15,12 @@ import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.model.business.BusinessOutsourcerInfo; +import com.casic.missiles.model.business.BusinessOutsourcerInfoImport; +import com.casic.missiles.model.equipment.EquipmentFixedAssets; +import com.casic.missiles.model.equipment.EquipmentFixedAssetsImport; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessOutsourcerInfoService; +import com.casic.missiles.utils.ConvertUtils; import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -25,8 +29,10 @@ import org.springframework.util.CollectionUtils; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import javax.validation.Valid; +import java.util.ArrayList; import java.util.List; import java.util.Objects; @@ -99,6 +105,22 @@ return ReturnUtil.success(super.packForBT(page)); } + /** + * 批量导入分包方档案 + */ + @ApiOperation("批量导入分包方档案") + @PostMapping(value = "/import", headers = "content-type=multipart/form-data") + @ResponseBody + public ReturnDTO importBatch(@RequestParam MultipartFile[] multipartFile) throws Exception { + List sourceList = new ArrayList(); + for (MultipartFile file : multipartFile) { + List list = super.importExcel(BusinessOutsourcerInfoImport.class, file, null, null); + sourceList.addAll(list); + } + List targetList = ConvertUtils.sourceToTarget(sourceList, BusinessOutsourcerInfo.class); + return outsourcerInfoService.addBusinessOutsourcerList(targetList); + } + @ApiOperation("分包方资格审批保存(保存至草稿箱)") @PostMapping("/save") @ResponseBody diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java index 94de448..1684d0f 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java @@ -183,7 +183,7 @@ @PostMapping(value = "/importMeterEquipment", headers = "content-type=multipart/form-data") @ResponseBody public ReturnDTO importMeterEquipment(@RequestParam MultipartFile[] multipartFile) throws Exception { - List sourceList = new ArrayList(); + List sourceList = new ArrayList<>(); for (MultipartFile file : multipartFile) { List list = super.importExcel(EquipmentFixedAssetsImport.class, file, null, null); sourceList.addAll(list); diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterPriceController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterPriceController.java index 8bb178f..dbb183f 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterPriceController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterPriceController.java @@ -3,15 +3,19 @@ import com.alibaba.excel.EasyExcel; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.IdDTO; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.meter.MeterPriceImport; import com.casic.missiles.dto.meter.MeterPriceRequest; +import com.casic.missiles.model.meter.MeterTraceSupplier; +import com.casic.missiles.model.meter.MeterTraceSupplierImport; import com.casic.missiles.service.listeners.CommonExcelListener; import com.casic.missiles.model.meter.MeterPrice; import com.casic.missiles.service.meter.MeterPriceService; +import com.casic.missiles.utils.ConvertUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; @@ -21,6 +25,7 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.util.ArrayList; import java.util.List; @@ -28,7 +33,7 @@ @RestController @RequestMapping("/price") @Slf4j -public class MeterPriceController { +public class MeterPriceController extends ExportController { @Resource private MeterPriceService meterPriceService; @@ -69,6 +74,19 @@ return meterPriceService.addMeterPrice(meterPrice); } + @ApiOperation("批量导入价格库") + @PostMapping(value = "/import", headers = "content-type=multipart/form-data") + @ResponseBody + public ReturnDTO importBatch(@RequestParam MultipartFile[] multipartFile) throws Exception { + List sourceList = new ArrayList(); + for (MultipartFile file : multipartFile) { + List list = super.importExcel(MeterPriceImport.class, file, null, null); + sourceList.addAll(list); + } + List targetList = ConvertUtils.sourceToTarget(sourceList, MeterPrice.class); + return meterPriceService.addMeterPriceList(targetList); + } + /** * 价格详细信息 * @return @@ -106,30 +124,4 @@ } } - /** - * - * @param multipartFile - * @return - */ - @ApiOperation("批量导入价格库") - @PostMapping(value = "/batchImportPrice", headers = "content-type=multipart/form-data") - @ResponseBody - public ReturnDTO batchImportPrice(@RequestParam MultipartFile[] multipartFile) { - try { - CommonExcelListener listener = new CommonExcelListener<>(); - final long start = System.currentTimeMillis(); - for (MultipartFile file : multipartFile) { - EasyExcel.read(file.getInputStream(), MeterPriceImport.class, listener) - .headRowNumber(1).autoTrim(true).sheet(0).doRead(); - } - log.info("耗时:秒" + (System.currentTimeMillis() - start) / 1000); - //读取到的数据 - List list = listener.getList(); - return meterPriceService.dataCheck(list); - } catch (IOException e) { - e.printStackTrace(); - return ReturnUtil.failed("数据取失败"); - } - } - } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java index 5d77839..3935aa8 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java @@ -11,22 +11,25 @@ import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.business.BusinessOutsourcerInfo; +import com.casic.missiles.model.business.BusinessOutsourcerInfoImport; import com.casic.missiles.model.meter.MeterTraceSupplier; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.model.meter.MeterTraceSupplierImport; import com.casic.missiles.service.meter.IMeterTraceSupplierService; +import com.casic.missiles.utils.ConvertUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.util.CollectionUtils; import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import javax.validation.Valid; import java.io.IOException; +import java.util.ArrayList; import java.util.List; import java.util.Objects; @@ -89,6 +92,19 @@ return traceSupplierService.saveTraceSupplier(traceSupplier); } + @ApiOperation("批量导入溯源供方") + @PostMapping(value = "/import", headers = "content-type=multipart/form-data") + @ResponseBody + public ReturnDTO importBatch(@RequestParam MultipartFile[] multipartFile) throws Exception { + List sourceList = new ArrayList(); + for (MultipartFile file : multipartFile) { + List list = super.importExcel(MeterTraceSupplierImport.class, file, null, null); + sourceList.addAll(list); + } + List targetList = ConvertUtils.sourceToTarget(sourceList, MeterTraceSupplier.class); + return traceSupplierService.addTraceSupplierList(targetList); + } + /** * 草稿箱溯源供方编辑 */ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterPriceImport.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterPriceImport.java index 8e3852f..550c5cf 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterPriceImport.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterPriceImport.java @@ -20,70 +20,33 @@ @ExcelIgnoreUnannotated public class MeterPriceImport { - @TableId("id") - @ApiModelProperty(value = "主键id", dataType = "Long") - private Long id; - - @TableField("price_no") - @ExcelProperty(value = "价格编号",order = 0) - @ApiModelProperty(value = "价格编号", dataType = "String") - private String priceNo; - - @TableField("price_name") - @ExcelProperty(value = "价格名称",order = 1) - @ApiModelProperty(value = "价格名称", dataType = "String") + @ExcelProperty(value = "价格名称") private String priceName; - @TableField("check_type") - @ExcelProperty(value = "校验类型",order = 2) - @ApiModelProperty(value = "校验类型-字典value", dataType = "String") + @ExcelProperty(value = "校验类型") private String checkType; - @TableField("price_type") - @ExcelProperty(value = "价格类别",order = 3) - @ApiModelProperty(value = "价格类别-字典value", dataType = "String") + @ExcelProperty(value = "价格类别") private String priceType; - @TableField("price_item") - @ExcelProperty(value = "项目",order = 4) - @ApiModelProperty(value = "项目-字典value", dataType = "String") + @ExcelProperty(value = "价格项目") private String priceItem; - @TableField("price_standard") - @ExcelProperty(value = "依据标准",order = 5) - @ApiModelProperty(value = "依据标准-计量规程文件名", dataType = "String") - private String priceStandard; - - @TableField("price") - @ExcelProperty(value = "标准价格(元)",order = 6) - @ApiModelProperty(value = "标准价格(元)", dataType = "Double") + @ExcelProperty(value = "标准价格(元)") private Double price; - @TableField("price_limit") - @ExcelProperty(value = "业务员折扣权限",order = 7) - @ApiModelProperty(value = "业务员折扣权限", dataType = "String") + @ExcelProperty(value = "限制范围") private String priceLimit; - @TableField("operator_discount_permission") - @ExcelProperty(value = "业务员折扣权限",order = 8) - @ApiModelProperty(value = "业务员折扣权限-字典value", dataType = "String") + @ExcelProperty(value = "业务员折扣权限") private String operatorDiscountPermission; - @TableField("director_discount_permission") - @ExcelProperty(value = "负责人折扣权限",order = 9) - @ApiModelProperty(value = "负责人折扣权限-字典value", dataType = "String") + @ExcelProperty(value = "负责人折扣权限") private String directorDiscountPermission; - @TableField("price_description") - @ExcelProperty(value = "说明",order = 10) - @ApiModelProperty(value = "说明", dataType = "String") + @ExcelProperty(value = "说明") private String priceDescription; - @TableField("remark") - @ExcelProperty(value = "备注",order = 11) - @ApiModelProperty(value = "备注", dataType = "String") + @ExcelProperty(value = "备注") private String remark; - - @ExcelProperty(value = "不符合的数据",order = 12) - private String result; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourcerInfoImport.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourcerInfoImport.java new file mode 100644 index 0000000..3a4c51f --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourcerInfoImport.java @@ -0,0 +1,130 @@ +package com.casic.missiles.model.business; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * @Description: + * @Author: wangpeng + * @Date: 2023/5/29 9:58 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +@ApiModel +@Data +public class BusinessOutsourcerInfoImport { + private static final long serialVersionUID = 1L; + + /** + * 分包方公司名字 + */ + @ExcelProperty("公司名称") + private String outsourcerName; + + /** + * 分包方公司简称 + */ + @ExcelProperty("公司简称") + private String outsourcerBriefName; + + /** + * 分包方公司规模-字典 + */ + @ExcelProperty("公司规模") + private String outsourcerSize; + + /** + * 业务规模-字典 + */ + @ExcelProperty("业务规模") + private String businessSize; + + /** + * 履约评级-字典 + */ + @ExcelProperty("履约评级") + private String grade; + + /** + * 整体评价-字典 + */ + @ExcelProperty("整体评价") + private String evaluation; + + /** + * 业务内容 + */ + @ExcelProperty("业务内容") + private String businessContent; + + /** + * 税号 + */ + @ExcelProperty("税号") + private String taxNumber; + + /** + * 银行账户名 + */ + @ExcelProperty("银行账户名") + private String bankAccount; + + /** + * 银行名称 + */ + @ExcelProperty("银行名称") + private String bankName; + + /** + * 银行账号 + */ + @ExcelProperty("银行账号") + private String bankAccountNumber; + + /** + * 邮编 + */ + @ExcelProperty("邮编") + private String postalCode; + + /** + * 负责人 + */ + @ExcelProperty("负责人") + private String director; + + /** + * 电话 + */ + @ExcelProperty("电话") + private String phone; + + /** + * 手机 + */ + @ExcelProperty("手机") + private String mobile; + + /** + * 邮箱 + */ + @ExcelProperty("邮箱") + private String email; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/meter/MeterTraceSupplier.java b/casic-metering-model/src/main/java/com/casic/missiles/model/meter/MeterTraceSupplier.java index 31b8323..1cf8405 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/meter/MeterTraceSupplier.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/meter/MeterTraceSupplier.java @@ -118,7 +118,7 @@ @TableField("director") private String director; - /**发布人 + /** * 电话 */ @ExcelProperty("联系方式") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/meter/MeterTraceSupplierImport.java b/casic-metering-model/src/main/java/com/casic/missiles/model/meter/MeterTraceSupplierImport.java new file mode 100644 index 0000000..1f72bb2 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/meter/MeterTraceSupplierImport.java @@ -0,0 +1,101 @@ +package com.casic.missiles.model.meter; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableField; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * @Description: + * @Author: wangpeng + * @Date: 2023/5/29 10:41 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +@ApiModel +@Data +public class MeterTraceSupplierImport { + /** + * 公司名称 + */ + @ExcelProperty("公司名称") + private String supplierName; + + /** + * 公司简称 + */ + @ExcelProperty("公司简称") + private String briefName; + + /** + * 业务内容 + */ + @ExcelProperty("业务内容") + private String businessContent; + + /** + * 税号 + */ + @ExcelProperty("税号") + private String taxNumber; + + /** + * 银行账户名 + */ + @ExcelProperty("银行账户名") + private String bankAccount; + + /** + * 银行名称 + */ + @ExcelProperty("银行名称") + private String bankName; + + /** + * 银行账号 + */ + @ExcelProperty("银行账号") + private String bankAccountNumber; + + /** + * 邮编 + */ + @ExcelProperty("邮编") + private String postalCode; + + /** + * 负责人 + */ + @ExcelProperty("负责人") + private String director; + + /** + * 电话 + */ + @ExcelProperty("电话") + private String phone; + + /** + * 手机 + */ + @ExcelProperty("手机") + private String mobile; + + /** + * 邮箱 + */ + @ExcelProperty("邮箱") + private String mailbox; +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourcerController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourcerController.java index 700b299..33cf5d8 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourcerController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourcerController.java @@ -15,8 +15,12 @@ import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.model.business.BusinessOutsourcerInfo; +import com.casic.missiles.model.business.BusinessOutsourcerInfoImport; +import com.casic.missiles.model.equipment.EquipmentFixedAssets; +import com.casic.missiles.model.equipment.EquipmentFixedAssetsImport; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessOutsourcerInfoService; +import com.casic.missiles.utils.ConvertUtils; import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -25,8 +29,10 @@ import org.springframework.util.CollectionUtils; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import javax.validation.Valid; +import java.util.ArrayList; import java.util.List; import java.util.Objects; @@ -99,6 +105,22 @@ return ReturnUtil.success(super.packForBT(page)); } + /** + * 批量导入分包方档案 + */ + @ApiOperation("批量导入分包方档案") + @PostMapping(value = "/import", headers = "content-type=multipart/form-data") + @ResponseBody + public ReturnDTO importBatch(@RequestParam MultipartFile[] multipartFile) throws Exception { + List sourceList = new ArrayList(); + for (MultipartFile file : multipartFile) { + List list = super.importExcel(BusinessOutsourcerInfoImport.class, file, null, null); + sourceList.addAll(list); + } + List targetList = ConvertUtils.sourceToTarget(sourceList, BusinessOutsourcerInfo.class); + return outsourcerInfoService.addBusinessOutsourcerList(targetList); + } + @ApiOperation("分包方资格审批保存(保存至草稿箱)") @PostMapping("/save") @ResponseBody diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java index 94de448..1684d0f 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java @@ -183,7 +183,7 @@ @PostMapping(value = "/importMeterEquipment", headers = "content-type=multipart/form-data") @ResponseBody public ReturnDTO importMeterEquipment(@RequestParam MultipartFile[] multipartFile) throws Exception { - List sourceList = new ArrayList(); + List sourceList = new ArrayList<>(); for (MultipartFile file : multipartFile) { List list = super.importExcel(EquipmentFixedAssetsImport.class, file, null, null); sourceList.addAll(list); diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterPriceController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterPriceController.java index 8bb178f..dbb183f 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterPriceController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterPriceController.java @@ -3,15 +3,19 @@ import com.alibaba.excel.EasyExcel; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.IdDTO; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.meter.MeterPriceImport; import com.casic.missiles.dto.meter.MeterPriceRequest; +import com.casic.missiles.model.meter.MeterTraceSupplier; +import com.casic.missiles.model.meter.MeterTraceSupplierImport; import com.casic.missiles.service.listeners.CommonExcelListener; import com.casic.missiles.model.meter.MeterPrice; import com.casic.missiles.service.meter.MeterPriceService; +import com.casic.missiles.utils.ConvertUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; @@ -21,6 +25,7 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.util.ArrayList; import java.util.List; @@ -28,7 +33,7 @@ @RestController @RequestMapping("/price") @Slf4j -public class MeterPriceController { +public class MeterPriceController extends ExportController { @Resource private MeterPriceService meterPriceService; @@ -69,6 +74,19 @@ return meterPriceService.addMeterPrice(meterPrice); } + @ApiOperation("批量导入价格库") + @PostMapping(value = "/import", headers = "content-type=multipart/form-data") + @ResponseBody + public ReturnDTO importBatch(@RequestParam MultipartFile[] multipartFile) throws Exception { + List sourceList = new ArrayList(); + for (MultipartFile file : multipartFile) { + List list = super.importExcel(MeterPriceImport.class, file, null, null); + sourceList.addAll(list); + } + List targetList = ConvertUtils.sourceToTarget(sourceList, MeterPrice.class); + return meterPriceService.addMeterPriceList(targetList); + } + /** * 价格详细信息 * @return @@ -106,30 +124,4 @@ } } - /** - * - * @param multipartFile - * @return - */ - @ApiOperation("批量导入价格库") - @PostMapping(value = "/batchImportPrice", headers = "content-type=multipart/form-data") - @ResponseBody - public ReturnDTO batchImportPrice(@RequestParam MultipartFile[] multipartFile) { - try { - CommonExcelListener listener = new CommonExcelListener<>(); - final long start = System.currentTimeMillis(); - for (MultipartFile file : multipartFile) { - EasyExcel.read(file.getInputStream(), MeterPriceImport.class, listener) - .headRowNumber(1).autoTrim(true).sheet(0).doRead(); - } - log.info("耗时:秒" + (System.currentTimeMillis() - start) / 1000); - //读取到的数据 - List list = listener.getList(); - return meterPriceService.dataCheck(list); - } catch (IOException e) { - e.printStackTrace(); - return ReturnUtil.failed("数据取失败"); - } - } - } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java index 5d77839..3935aa8 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java @@ -11,22 +11,25 @@ import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.business.BusinessOutsourcerInfo; +import com.casic.missiles.model.business.BusinessOutsourcerInfoImport; import com.casic.missiles.model.meter.MeterTraceSupplier; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.model.meter.MeterTraceSupplierImport; import com.casic.missiles.service.meter.IMeterTraceSupplierService; +import com.casic.missiles.utils.ConvertUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.util.CollectionUtils; import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import javax.validation.Valid; import java.io.IOException; +import java.util.ArrayList; import java.util.List; import java.util.Objects; @@ -89,6 +92,19 @@ return traceSupplierService.saveTraceSupplier(traceSupplier); } + @ApiOperation("批量导入溯源供方") + @PostMapping(value = "/import", headers = "content-type=multipart/form-data") + @ResponseBody + public ReturnDTO importBatch(@RequestParam MultipartFile[] multipartFile) throws Exception { + List sourceList = new ArrayList(); + for (MultipartFile file : multipartFile) { + List list = super.importExcel(MeterTraceSupplierImport.class, file, null, null); + sourceList.addAll(list); + } + List targetList = ConvertUtils.sourceToTarget(sourceList, MeterTraceSupplier.class); + return traceSupplierService.addTraceSupplierList(targetList); + } + /** * 草稿箱溯源供方编辑 */ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterPriceImport.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterPriceImport.java index 8e3852f..550c5cf 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterPriceImport.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterPriceImport.java @@ -20,70 +20,33 @@ @ExcelIgnoreUnannotated public class MeterPriceImport { - @TableId("id") - @ApiModelProperty(value = "主键id", dataType = "Long") - private Long id; - - @TableField("price_no") - @ExcelProperty(value = "价格编号",order = 0) - @ApiModelProperty(value = "价格编号", dataType = "String") - private String priceNo; - - @TableField("price_name") - @ExcelProperty(value = "价格名称",order = 1) - @ApiModelProperty(value = "价格名称", dataType = "String") + @ExcelProperty(value = "价格名称") private String priceName; - @TableField("check_type") - @ExcelProperty(value = "校验类型",order = 2) - @ApiModelProperty(value = "校验类型-字典value", dataType = "String") + @ExcelProperty(value = "校验类型") private String checkType; - @TableField("price_type") - @ExcelProperty(value = "价格类别",order = 3) - @ApiModelProperty(value = "价格类别-字典value", dataType = "String") + @ExcelProperty(value = "价格类别") private String priceType; - @TableField("price_item") - @ExcelProperty(value = "项目",order = 4) - @ApiModelProperty(value = "项目-字典value", dataType = "String") + @ExcelProperty(value = "价格项目") private String priceItem; - @TableField("price_standard") - @ExcelProperty(value = "依据标准",order = 5) - @ApiModelProperty(value = "依据标准-计量规程文件名", dataType = "String") - private String priceStandard; - - @TableField("price") - @ExcelProperty(value = "标准价格(元)",order = 6) - @ApiModelProperty(value = "标准价格(元)", dataType = "Double") + @ExcelProperty(value = "标准价格(元)") private Double price; - @TableField("price_limit") - @ExcelProperty(value = "业务员折扣权限",order = 7) - @ApiModelProperty(value = "业务员折扣权限", dataType = "String") + @ExcelProperty(value = "限制范围") private String priceLimit; - @TableField("operator_discount_permission") - @ExcelProperty(value = "业务员折扣权限",order = 8) - @ApiModelProperty(value = "业务员折扣权限-字典value", dataType = "String") + @ExcelProperty(value = "业务员折扣权限") private String operatorDiscountPermission; - @TableField("director_discount_permission") - @ExcelProperty(value = "负责人折扣权限",order = 9) - @ApiModelProperty(value = "负责人折扣权限-字典value", dataType = "String") + @ExcelProperty(value = "负责人折扣权限") private String directorDiscountPermission; - @TableField("price_description") - @ExcelProperty(value = "说明",order = 10) - @ApiModelProperty(value = "说明", dataType = "String") + @ExcelProperty(value = "说明") private String priceDescription; - @TableField("remark") - @ExcelProperty(value = "备注",order = 11) - @ApiModelProperty(value = "备注", dataType = "String") + @ExcelProperty(value = "备注") private String remark; - - @ExcelProperty(value = "不符合的数据",order = 12) - private String result; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourcerInfoImport.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourcerInfoImport.java new file mode 100644 index 0000000..3a4c51f --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourcerInfoImport.java @@ -0,0 +1,130 @@ +package com.casic.missiles.model.business; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * @Description: + * @Author: wangpeng + * @Date: 2023/5/29 9:58 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +@ApiModel +@Data +public class BusinessOutsourcerInfoImport { + private static final long serialVersionUID = 1L; + + /** + * 分包方公司名字 + */ + @ExcelProperty("公司名称") + private String outsourcerName; + + /** + * 分包方公司简称 + */ + @ExcelProperty("公司简称") + private String outsourcerBriefName; + + /** + * 分包方公司规模-字典 + */ + @ExcelProperty("公司规模") + private String outsourcerSize; + + /** + * 业务规模-字典 + */ + @ExcelProperty("业务规模") + private String businessSize; + + /** + * 履约评级-字典 + */ + @ExcelProperty("履约评级") + private String grade; + + /** + * 整体评价-字典 + */ + @ExcelProperty("整体评价") + private String evaluation; + + /** + * 业务内容 + */ + @ExcelProperty("业务内容") + private String businessContent; + + /** + * 税号 + */ + @ExcelProperty("税号") + private String taxNumber; + + /** + * 银行账户名 + */ + @ExcelProperty("银行账户名") + private String bankAccount; + + /** + * 银行名称 + */ + @ExcelProperty("银行名称") + private String bankName; + + /** + * 银行账号 + */ + @ExcelProperty("银行账号") + private String bankAccountNumber; + + /** + * 邮编 + */ + @ExcelProperty("邮编") + private String postalCode; + + /** + * 负责人 + */ + @ExcelProperty("负责人") + private String director; + + /** + * 电话 + */ + @ExcelProperty("电话") + private String phone; + + /** + * 手机 + */ + @ExcelProperty("手机") + private String mobile; + + /** + * 邮箱 + */ + @ExcelProperty("邮箱") + private String email; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/meter/MeterTraceSupplier.java b/casic-metering-model/src/main/java/com/casic/missiles/model/meter/MeterTraceSupplier.java index 31b8323..1cf8405 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/meter/MeterTraceSupplier.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/meter/MeterTraceSupplier.java @@ -118,7 +118,7 @@ @TableField("director") private String director; - /**发布人 + /** * 电话 */ @ExcelProperty("联系方式") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/meter/MeterTraceSupplierImport.java b/casic-metering-model/src/main/java/com/casic/missiles/model/meter/MeterTraceSupplierImport.java new file mode 100644 index 0000000..1f72bb2 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/meter/MeterTraceSupplierImport.java @@ -0,0 +1,101 @@ +package com.casic.missiles.model.meter; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableField; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * @Description: + * @Author: wangpeng + * @Date: 2023/5/29 10:41 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +@ApiModel +@Data +public class MeterTraceSupplierImport { + /** + * 公司名称 + */ + @ExcelProperty("公司名称") + private String supplierName; + + /** + * 公司简称 + */ + @ExcelProperty("公司简称") + private String briefName; + + /** + * 业务内容 + */ + @ExcelProperty("业务内容") + private String businessContent; + + /** + * 税号 + */ + @ExcelProperty("税号") + private String taxNumber; + + /** + * 银行账户名 + */ + @ExcelProperty("银行账户名") + private String bankAccount; + + /** + * 银行名称 + */ + @ExcelProperty("银行名称") + private String bankName; + + /** + * 银行账号 + */ + @ExcelProperty("银行账号") + private String bankAccountNumber; + + /** + * 邮编 + */ + @ExcelProperty("邮编") + private String postalCode; + + /** + * 负责人 + */ + @ExcelProperty("负责人") + private String director; + + /** + * 电话 + */ + @ExcelProperty("电话") + private String phone; + + /** + * 手机 + */ + @ExcelProperty("手机") + private String mobile; + + /** + * 邮箱 + */ + @ExcelProperty("邮箱") + private String mailbox; +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOutsourcerInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOutsourcerInfoServiceImpl.java index 76a1950..1c5d2ed 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOutsourcerInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOutsourcerInfoServiceImpl.java @@ -24,6 +24,7 @@ import com.casic.missiles.exception.BusinessException; import com.casic.missiles.mapper.business.BusinessOutsourcerInfoMapper; import com.casic.missiles.model.business.BusinessOutsourcerInfo; +import com.casic.missiles.model.equipment.EquipmentFixedAssets; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.service.IBaseApprovalService; import com.casic.missiles.service.business.IBusinessOutsourcerInfoService; @@ -41,6 +42,8 @@ import org.springframework.util.CollectionUtils; import javax.annotation.Resource; +import javax.validation.ConstraintViolation; +import javax.validation.Validation; import java.util.*; import java.util.stream.Collectors; @@ -103,6 +106,26 @@ @Override @Transactional + public ReturnDTO addBusinessOutsourcerList(List list) throws Exception { + //用于存储验证后的错误信息 + Long maxNo = outsourcerInfoMapper.selectMaxOutsourcerNo(); + for (BusinessOutsourcerInfo item : list) { + Set> validate = Validation.buildDefaultValidatorFactory().getValidator().validate(item); + if (!CollectionUtils.isEmpty(validate)) { + return ReturnUtil.failed(validate.iterator().next().getMessage()); + } + DictCodeUtils.validDictCode(item); + //生成编号 + String outsourcerNo = NumberGeneratorUtil.getContactNo(PrefixCodeEnum.OUTSOURCER_PREFIX, maxNo); + item.setOutsourcerNo(outsourcerNo); + maxNo++; + } + super.saveBatch(list); + return ReturnUtil.success(); + } + + @Override + @Transactional public ReturnDTO saveOutsourcer(BusinessOutsourcerInfo outsourcerInfo) { //生成编号 Long maxNo = outsourcerInfoMapper.selectMaxOutsourcerNo(); diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourcerController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourcerController.java index 700b299..33cf5d8 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourcerController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourcerController.java @@ -15,8 +15,12 @@ import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.model.business.BusinessOutsourcerInfo; +import com.casic.missiles.model.business.BusinessOutsourcerInfoImport; +import com.casic.missiles.model.equipment.EquipmentFixedAssets; +import com.casic.missiles.model.equipment.EquipmentFixedAssetsImport; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessOutsourcerInfoService; +import com.casic.missiles.utils.ConvertUtils; import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -25,8 +29,10 @@ import org.springframework.util.CollectionUtils; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import javax.validation.Valid; +import java.util.ArrayList; import java.util.List; import java.util.Objects; @@ -99,6 +105,22 @@ return ReturnUtil.success(super.packForBT(page)); } + /** + * 批量导入分包方档案 + */ + @ApiOperation("批量导入分包方档案") + @PostMapping(value = "/import", headers = "content-type=multipart/form-data") + @ResponseBody + public ReturnDTO importBatch(@RequestParam MultipartFile[] multipartFile) throws Exception { + List sourceList = new ArrayList(); + for (MultipartFile file : multipartFile) { + List list = super.importExcel(BusinessOutsourcerInfoImport.class, file, null, null); + sourceList.addAll(list); + } + List targetList = ConvertUtils.sourceToTarget(sourceList, BusinessOutsourcerInfo.class); + return outsourcerInfoService.addBusinessOutsourcerList(targetList); + } + @ApiOperation("分包方资格审批保存(保存至草稿箱)") @PostMapping("/save") @ResponseBody diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java index 94de448..1684d0f 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java @@ -183,7 +183,7 @@ @PostMapping(value = "/importMeterEquipment", headers = "content-type=multipart/form-data") @ResponseBody public ReturnDTO importMeterEquipment(@RequestParam MultipartFile[] multipartFile) throws Exception { - List sourceList = new ArrayList(); + List sourceList = new ArrayList<>(); for (MultipartFile file : multipartFile) { List list = super.importExcel(EquipmentFixedAssetsImport.class, file, null, null); sourceList.addAll(list); diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterPriceController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterPriceController.java index 8bb178f..dbb183f 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterPriceController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterPriceController.java @@ -3,15 +3,19 @@ import com.alibaba.excel.EasyExcel; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.IdDTO; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.meter.MeterPriceImport; import com.casic.missiles.dto.meter.MeterPriceRequest; +import com.casic.missiles.model.meter.MeterTraceSupplier; +import com.casic.missiles.model.meter.MeterTraceSupplierImport; import com.casic.missiles.service.listeners.CommonExcelListener; import com.casic.missiles.model.meter.MeterPrice; import com.casic.missiles.service.meter.MeterPriceService; +import com.casic.missiles.utils.ConvertUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; @@ -21,6 +25,7 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.util.ArrayList; import java.util.List; @@ -28,7 +33,7 @@ @RestController @RequestMapping("/price") @Slf4j -public class MeterPriceController { +public class MeterPriceController extends ExportController { @Resource private MeterPriceService meterPriceService; @@ -69,6 +74,19 @@ return meterPriceService.addMeterPrice(meterPrice); } + @ApiOperation("批量导入价格库") + @PostMapping(value = "/import", headers = "content-type=multipart/form-data") + @ResponseBody + public ReturnDTO importBatch(@RequestParam MultipartFile[] multipartFile) throws Exception { + List sourceList = new ArrayList(); + for (MultipartFile file : multipartFile) { + List list = super.importExcel(MeterPriceImport.class, file, null, null); + sourceList.addAll(list); + } + List targetList = ConvertUtils.sourceToTarget(sourceList, MeterPrice.class); + return meterPriceService.addMeterPriceList(targetList); + } + /** * 价格详细信息 * @return @@ -106,30 +124,4 @@ } } - /** - * - * @param multipartFile - * @return - */ - @ApiOperation("批量导入价格库") - @PostMapping(value = "/batchImportPrice", headers = "content-type=multipart/form-data") - @ResponseBody - public ReturnDTO batchImportPrice(@RequestParam MultipartFile[] multipartFile) { - try { - CommonExcelListener listener = new CommonExcelListener<>(); - final long start = System.currentTimeMillis(); - for (MultipartFile file : multipartFile) { - EasyExcel.read(file.getInputStream(), MeterPriceImport.class, listener) - .headRowNumber(1).autoTrim(true).sheet(0).doRead(); - } - log.info("耗时:秒" + (System.currentTimeMillis() - start) / 1000); - //读取到的数据 - List list = listener.getList(); - return meterPriceService.dataCheck(list); - } catch (IOException e) { - e.printStackTrace(); - return ReturnUtil.failed("数据取失败"); - } - } - } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java index 5d77839..3935aa8 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java @@ -11,22 +11,25 @@ import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.business.BusinessOutsourcerInfo; +import com.casic.missiles.model.business.BusinessOutsourcerInfoImport; import com.casic.missiles.model.meter.MeterTraceSupplier; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.model.meter.MeterTraceSupplierImport; import com.casic.missiles.service.meter.IMeterTraceSupplierService; +import com.casic.missiles.utils.ConvertUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.util.CollectionUtils; import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import javax.validation.Valid; import java.io.IOException; +import java.util.ArrayList; import java.util.List; import java.util.Objects; @@ -89,6 +92,19 @@ return traceSupplierService.saveTraceSupplier(traceSupplier); } + @ApiOperation("批量导入溯源供方") + @PostMapping(value = "/import", headers = "content-type=multipart/form-data") + @ResponseBody + public ReturnDTO importBatch(@RequestParam MultipartFile[] multipartFile) throws Exception { + List sourceList = new ArrayList(); + for (MultipartFile file : multipartFile) { + List list = super.importExcel(MeterTraceSupplierImport.class, file, null, null); + sourceList.addAll(list); + } + List targetList = ConvertUtils.sourceToTarget(sourceList, MeterTraceSupplier.class); + return traceSupplierService.addTraceSupplierList(targetList); + } + /** * 草稿箱溯源供方编辑 */ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterPriceImport.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterPriceImport.java index 8e3852f..550c5cf 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterPriceImport.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterPriceImport.java @@ -20,70 +20,33 @@ @ExcelIgnoreUnannotated public class MeterPriceImport { - @TableId("id") - @ApiModelProperty(value = "主键id", dataType = "Long") - private Long id; - - @TableField("price_no") - @ExcelProperty(value = "价格编号",order = 0) - @ApiModelProperty(value = "价格编号", dataType = "String") - private String priceNo; - - @TableField("price_name") - @ExcelProperty(value = "价格名称",order = 1) - @ApiModelProperty(value = "价格名称", dataType = "String") + @ExcelProperty(value = "价格名称") private String priceName; - @TableField("check_type") - @ExcelProperty(value = "校验类型",order = 2) - @ApiModelProperty(value = "校验类型-字典value", dataType = "String") + @ExcelProperty(value = "校验类型") private String checkType; - @TableField("price_type") - @ExcelProperty(value = "价格类别",order = 3) - @ApiModelProperty(value = "价格类别-字典value", dataType = "String") + @ExcelProperty(value = "价格类别") private String priceType; - @TableField("price_item") - @ExcelProperty(value = "项目",order = 4) - @ApiModelProperty(value = "项目-字典value", dataType = "String") + @ExcelProperty(value = "价格项目") private String priceItem; - @TableField("price_standard") - @ExcelProperty(value = "依据标准",order = 5) - @ApiModelProperty(value = "依据标准-计量规程文件名", dataType = "String") - private String priceStandard; - - @TableField("price") - @ExcelProperty(value = "标准价格(元)",order = 6) - @ApiModelProperty(value = "标准价格(元)", dataType = "Double") + @ExcelProperty(value = "标准价格(元)") private Double price; - @TableField("price_limit") - @ExcelProperty(value = "业务员折扣权限",order = 7) - @ApiModelProperty(value = "业务员折扣权限", dataType = "String") + @ExcelProperty(value = "限制范围") private String priceLimit; - @TableField("operator_discount_permission") - @ExcelProperty(value = "业务员折扣权限",order = 8) - @ApiModelProperty(value = "业务员折扣权限-字典value", dataType = "String") + @ExcelProperty(value = "业务员折扣权限") private String operatorDiscountPermission; - @TableField("director_discount_permission") - @ExcelProperty(value = "负责人折扣权限",order = 9) - @ApiModelProperty(value = "负责人折扣权限-字典value", dataType = "String") + @ExcelProperty(value = "负责人折扣权限") private String directorDiscountPermission; - @TableField("price_description") - @ExcelProperty(value = "说明",order = 10) - @ApiModelProperty(value = "说明", dataType = "String") + @ExcelProperty(value = "说明") private String priceDescription; - @TableField("remark") - @ExcelProperty(value = "备注",order = 11) - @ApiModelProperty(value = "备注", dataType = "String") + @ExcelProperty(value = "备注") private String remark; - - @ExcelProperty(value = "不符合的数据",order = 12) - private String result; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourcerInfoImport.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourcerInfoImport.java new file mode 100644 index 0000000..3a4c51f --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourcerInfoImport.java @@ -0,0 +1,130 @@ +package com.casic.missiles.model.business; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * @Description: + * @Author: wangpeng + * @Date: 2023/5/29 9:58 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +@ApiModel +@Data +public class BusinessOutsourcerInfoImport { + private static final long serialVersionUID = 1L; + + /** + * 分包方公司名字 + */ + @ExcelProperty("公司名称") + private String outsourcerName; + + /** + * 分包方公司简称 + */ + @ExcelProperty("公司简称") + private String outsourcerBriefName; + + /** + * 分包方公司规模-字典 + */ + @ExcelProperty("公司规模") + private String outsourcerSize; + + /** + * 业务规模-字典 + */ + @ExcelProperty("业务规模") + private String businessSize; + + /** + * 履约评级-字典 + */ + @ExcelProperty("履约评级") + private String grade; + + /** + * 整体评价-字典 + */ + @ExcelProperty("整体评价") + private String evaluation; + + /** + * 业务内容 + */ + @ExcelProperty("业务内容") + private String businessContent; + + /** + * 税号 + */ + @ExcelProperty("税号") + private String taxNumber; + + /** + * 银行账户名 + */ + @ExcelProperty("银行账户名") + private String bankAccount; + + /** + * 银行名称 + */ + @ExcelProperty("银行名称") + private String bankName; + + /** + * 银行账号 + */ + @ExcelProperty("银行账号") + private String bankAccountNumber; + + /** + * 邮编 + */ + @ExcelProperty("邮编") + private String postalCode; + + /** + * 负责人 + */ + @ExcelProperty("负责人") + private String director; + + /** + * 电话 + */ + @ExcelProperty("电话") + private String phone; + + /** + * 手机 + */ + @ExcelProperty("手机") + private String mobile; + + /** + * 邮箱 + */ + @ExcelProperty("邮箱") + private String email; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/meter/MeterTraceSupplier.java b/casic-metering-model/src/main/java/com/casic/missiles/model/meter/MeterTraceSupplier.java index 31b8323..1cf8405 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/meter/MeterTraceSupplier.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/meter/MeterTraceSupplier.java @@ -118,7 +118,7 @@ @TableField("director") private String director; - /**发布人 + /** * 电话 */ @ExcelProperty("联系方式") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/meter/MeterTraceSupplierImport.java b/casic-metering-model/src/main/java/com/casic/missiles/model/meter/MeterTraceSupplierImport.java new file mode 100644 index 0000000..1f72bb2 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/meter/MeterTraceSupplierImport.java @@ -0,0 +1,101 @@ +package com.casic.missiles.model.meter; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableField; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * @Description: + * @Author: wangpeng + * @Date: 2023/5/29 10:41 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +@ApiModel +@Data +public class MeterTraceSupplierImport { + /** + * 公司名称 + */ + @ExcelProperty("公司名称") + private String supplierName; + + /** + * 公司简称 + */ + @ExcelProperty("公司简称") + private String briefName; + + /** + * 业务内容 + */ + @ExcelProperty("业务内容") + private String businessContent; + + /** + * 税号 + */ + @ExcelProperty("税号") + private String taxNumber; + + /** + * 银行账户名 + */ + @ExcelProperty("银行账户名") + private String bankAccount; + + /** + * 银行名称 + */ + @ExcelProperty("银行名称") + private String bankName; + + /** + * 银行账号 + */ + @ExcelProperty("银行账号") + private String bankAccountNumber; + + /** + * 邮编 + */ + @ExcelProperty("邮编") + private String postalCode; + + /** + * 负责人 + */ + @ExcelProperty("负责人") + private String director; + + /** + * 电话 + */ + @ExcelProperty("电话") + private String phone; + + /** + * 手机 + */ + @ExcelProperty("手机") + private String mobile; + + /** + * 邮箱 + */ + @ExcelProperty("邮箱") + private String mailbox; +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOutsourcerInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOutsourcerInfoServiceImpl.java index 76a1950..1c5d2ed 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOutsourcerInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOutsourcerInfoServiceImpl.java @@ -24,6 +24,7 @@ import com.casic.missiles.exception.BusinessException; import com.casic.missiles.mapper.business.BusinessOutsourcerInfoMapper; import com.casic.missiles.model.business.BusinessOutsourcerInfo; +import com.casic.missiles.model.equipment.EquipmentFixedAssets; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.service.IBaseApprovalService; import com.casic.missiles.service.business.IBusinessOutsourcerInfoService; @@ -41,6 +42,8 @@ import org.springframework.util.CollectionUtils; import javax.annotation.Resource; +import javax.validation.ConstraintViolation; +import javax.validation.Validation; import java.util.*; import java.util.stream.Collectors; @@ -103,6 +106,26 @@ @Override @Transactional + public ReturnDTO addBusinessOutsourcerList(List list) throws Exception { + //用于存储验证后的错误信息 + Long maxNo = outsourcerInfoMapper.selectMaxOutsourcerNo(); + for (BusinessOutsourcerInfo item : list) { + Set> validate = Validation.buildDefaultValidatorFactory().getValidator().validate(item); + if (!CollectionUtils.isEmpty(validate)) { + return ReturnUtil.failed(validate.iterator().next().getMessage()); + } + DictCodeUtils.validDictCode(item); + //生成编号 + String outsourcerNo = NumberGeneratorUtil.getContactNo(PrefixCodeEnum.OUTSOURCER_PREFIX, maxNo); + item.setOutsourcerNo(outsourcerNo); + maxNo++; + } + super.saveBatch(list); + return ReturnUtil.success(); + } + + @Override + @Transactional public ReturnDTO saveOutsourcer(BusinessOutsourcerInfo outsourcerInfo) { //生成编号 Long maxNo = outsourcerInfoMapper.selectMaxOutsourcerNo(); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/EquipmentApplyAcceptanceCheckServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/EquipmentApplyAcceptanceCheckServiceImpl.java index 531720c..3ab8f2e 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/EquipmentApplyAcceptanceCheckServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/EquipmentApplyAcceptanceCheckServiceImpl.java @@ -163,8 +163,8 @@ public Object acceptanceCheckInfo(IdDTO idDTO) throws Exception { // 通过id查询出检修保养基本信息 AcceptanceCheck acceptanceCheckInfo = acceptanceCheckMapper.acceptanceCheckInfo(idDTO.getId()); - // 通过检修申请id查询出对应的检修设备列表 - List checkList = equipmentApplyEquipmentMapper.queryCheckList(acceptanceCheckInfo.getAcceptanceCheckId()); + // 通过验收单id查询出对应的检修设备列表 + List checkList = equipmentApplyEquipmentMapper.queryCheckList(String.valueOf(acceptanceCheckInfo.getId())); for (EquipmentApplyEquipment applyEquipment : checkList) { // 替换字典值 DictCodeUtils.convertDictCodeToName(applyEquipment); @@ -193,7 +193,17 @@ // 新增基本信息 if(equipmentApplyMapper.insert(equipmentApply)>0){ // 修改设备列表 - equipmentApplyEquipmentService.updateBatchById(equipmentApply.getEquipmentList()); +// equipmentApplyEquipmentService.updateBatchById(equipmentApply.getEquipmentList()); + boolean equipmentSaveBatchFlg = true; + // 新增设备信息 + if(!CollectionUtils.isEmpty(equipmentApply.getEquipmentList())){ + for (EquipmentApplyEquipment eq : equipmentApply.getEquipmentList()) { + eq.setId(null); + eq.setApplyId(String.valueOf(equipmentApply.getId())); + } + equipmentSaveBatchFlg = equipmentApplyEquipmentService.saveBatch(equipmentApply.getEquipmentList()); + } + if(!equipmentSaveBatchFlg) throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); // 新增附件列表 if(null != equipmentApply.getFileList() && equipmentApply.getFileList().size() != 0){ equipmentApply.getFileList().forEach(bean->bean.setApplyId(equipmentApply.getId())); diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourcerController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourcerController.java index 700b299..33cf5d8 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourcerController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourcerController.java @@ -15,8 +15,12 @@ import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.model.business.BusinessOutsourcerInfo; +import com.casic.missiles.model.business.BusinessOutsourcerInfoImport; +import com.casic.missiles.model.equipment.EquipmentFixedAssets; +import com.casic.missiles.model.equipment.EquipmentFixedAssetsImport; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessOutsourcerInfoService; +import com.casic.missiles.utils.ConvertUtils; import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -25,8 +29,10 @@ import org.springframework.util.CollectionUtils; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import javax.validation.Valid; +import java.util.ArrayList; import java.util.List; import java.util.Objects; @@ -99,6 +105,22 @@ return ReturnUtil.success(super.packForBT(page)); } + /** + * 批量导入分包方档案 + */ + @ApiOperation("批量导入分包方档案") + @PostMapping(value = "/import", headers = "content-type=multipart/form-data") + @ResponseBody + public ReturnDTO importBatch(@RequestParam MultipartFile[] multipartFile) throws Exception { + List sourceList = new ArrayList(); + for (MultipartFile file : multipartFile) { + List list = super.importExcel(BusinessOutsourcerInfoImport.class, file, null, null); + sourceList.addAll(list); + } + List targetList = ConvertUtils.sourceToTarget(sourceList, BusinessOutsourcerInfo.class); + return outsourcerInfoService.addBusinessOutsourcerList(targetList); + } + @ApiOperation("分包方资格审批保存(保存至草稿箱)") @PostMapping("/save") @ResponseBody diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java index 94de448..1684d0f 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java @@ -183,7 +183,7 @@ @PostMapping(value = "/importMeterEquipment", headers = "content-type=multipart/form-data") @ResponseBody public ReturnDTO importMeterEquipment(@RequestParam MultipartFile[] multipartFile) throws Exception { - List sourceList = new ArrayList(); + List sourceList = new ArrayList<>(); for (MultipartFile file : multipartFile) { List list = super.importExcel(EquipmentFixedAssetsImport.class, file, null, null); sourceList.addAll(list); diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterPriceController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterPriceController.java index 8bb178f..dbb183f 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterPriceController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterPriceController.java @@ -3,15 +3,19 @@ import com.alibaba.excel.EasyExcel; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.IdDTO; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.meter.MeterPriceImport; import com.casic.missiles.dto.meter.MeterPriceRequest; +import com.casic.missiles.model.meter.MeterTraceSupplier; +import com.casic.missiles.model.meter.MeterTraceSupplierImport; import com.casic.missiles.service.listeners.CommonExcelListener; import com.casic.missiles.model.meter.MeterPrice; import com.casic.missiles.service.meter.MeterPriceService; +import com.casic.missiles.utils.ConvertUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; @@ -21,6 +25,7 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.util.ArrayList; import java.util.List; @@ -28,7 +33,7 @@ @RestController @RequestMapping("/price") @Slf4j -public class MeterPriceController { +public class MeterPriceController extends ExportController { @Resource private MeterPriceService meterPriceService; @@ -69,6 +74,19 @@ return meterPriceService.addMeterPrice(meterPrice); } + @ApiOperation("批量导入价格库") + @PostMapping(value = "/import", headers = "content-type=multipart/form-data") + @ResponseBody + public ReturnDTO importBatch(@RequestParam MultipartFile[] multipartFile) throws Exception { + List sourceList = new ArrayList(); + for (MultipartFile file : multipartFile) { + List list = super.importExcel(MeterPriceImport.class, file, null, null); + sourceList.addAll(list); + } + List targetList = ConvertUtils.sourceToTarget(sourceList, MeterPrice.class); + return meterPriceService.addMeterPriceList(targetList); + } + /** * 价格详细信息 * @return @@ -106,30 +124,4 @@ } } - /** - * - * @param multipartFile - * @return - */ - @ApiOperation("批量导入价格库") - @PostMapping(value = "/batchImportPrice", headers = "content-type=multipart/form-data") - @ResponseBody - public ReturnDTO batchImportPrice(@RequestParam MultipartFile[] multipartFile) { - try { - CommonExcelListener listener = new CommonExcelListener<>(); - final long start = System.currentTimeMillis(); - for (MultipartFile file : multipartFile) { - EasyExcel.read(file.getInputStream(), MeterPriceImport.class, listener) - .headRowNumber(1).autoTrim(true).sheet(0).doRead(); - } - log.info("耗时:秒" + (System.currentTimeMillis() - start) / 1000); - //读取到的数据 - List list = listener.getList(); - return meterPriceService.dataCheck(list); - } catch (IOException e) { - e.printStackTrace(); - return ReturnUtil.failed("数据取失败"); - } - } - } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java index 5d77839..3935aa8 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java @@ -11,22 +11,25 @@ import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.business.BusinessOutsourcerInfo; +import com.casic.missiles.model.business.BusinessOutsourcerInfoImport; import com.casic.missiles.model.meter.MeterTraceSupplier; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.model.meter.MeterTraceSupplierImport; import com.casic.missiles.service.meter.IMeterTraceSupplierService; +import com.casic.missiles.utils.ConvertUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.util.CollectionUtils; import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import javax.validation.Valid; import java.io.IOException; +import java.util.ArrayList; import java.util.List; import java.util.Objects; @@ -89,6 +92,19 @@ return traceSupplierService.saveTraceSupplier(traceSupplier); } + @ApiOperation("批量导入溯源供方") + @PostMapping(value = "/import", headers = "content-type=multipart/form-data") + @ResponseBody + public ReturnDTO importBatch(@RequestParam MultipartFile[] multipartFile) throws Exception { + List sourceList = new ArrayList(); + for (MultipartFile file : multipartFile) { + List list = super.importExcel(MeterTraceSupplierImport.class, file, null, null); + sourceList.addAll(list); + } + List targetList = ConvertUtils.sourceToTarget(sourceList, MeterTraceSupplier.class); + return traceSupplierService.addTraceSupplierList(targetList); + } + /** * 草稿箱溯源供方编辑 */ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterPriceImport.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterPriceImport.java index 8e3852f..550c5cf 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterPriceImport.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterPriceImport.java @@ -20,70 +20,33 @@ @ExcelIgnoreUnannotated public class MeterPriceImport { - @TableId("id") - @ApiModelProperty(value = "主键id", dataType = "Long") - private Long id; - - @TableField("price_no") - @ExcelProperty(value = "价格编号",order = 0) - @ApiModelProperty(value = "价格编号", dataType = "String") - private String priceNo; - - @TableField("price_name") - @ExcelProperty(value = "价格名称",order = 1) - @ApiModelProperty(value = "价格名称", dataType = "String") + @ExcelProperty(value = "价格名称") private String priceName; - @TableField("check_type") - @ExcelProperty(value = "校验类型",order = 2) - @ApiModelProperty(value = "校验类型-字典value", dataType = "String") + @ExcelProperty(value = "校验类型") private String checkType; - @TableField("price_type") - @ExcelProperty(value = "价格类别",order = 3) - @ApiModelProperty(value = "价格类别-字典value", dataType = "String") + @ExcelProperty(value = "价格类别") private String priceType; - @TableField("price_item") - @ExcelProperty(value = "项目",order = 4) - @ApiModelProperty(value = "项目-字典value", dataType = "String") + @ExcelProperty(value = "价格项目") private String priceItem; - @TableField("price_standard") - @ExcelProperty(value = "依据标准",order = 5) - @ApiModelProperty(value = "依据标准-计量规程文件名", dataType = "String") - private String priceStandard; - - @TableField("price") - @ExcelProperty(value = "标准价格(元)",order = 6) - @ApiModelProperty(value = "标准价格(元)", dataType = "Double") + @ExcelProperty(value = "标准价格(元)") private Double price; - @TableField("price_limit") - @ExcelProperty(value = "业务员折扣权限",order = 7) - @ApiModelProperty(value = "业务员折扣权限", dataType = "String") + @ExcelProperty(value = "限制范围") private String priceLimit; - @TableField("operator_discount_permission") - @ExcelProperty(value = "业务员折扣权限",order = 8) - @ApiModelProperty(value = "业务员折扣权限-字典value", dataType = "String") + @ExcelProperty(value = "业务员折扣权限") private String operatorDiscountPermission; - @TableField("director_discount_permission") - @ExcelProperty(value = "负责人折扣权限",order = 9) - @ApiModelProperty(value = "负责人折扣权限-字典value", dataType = "String") + @ExcelProperty(value = "负责人折扣权限") private String directorDiscountPermission; - @TableField("price_description") - @ExcelProperty(value = "说明",order = 10) - @ApiModelProperty(value = "说明", dataType = "String") + @ExcelProperty(value = "说明") private String priceDescription; - @TableField("remark") - @ExcelProperty(value = "备注",order = 11) - @ApiModelProperty(value = "备注", dataType = "String") + @ExcelProperty(value = "备注") private String remark; - - @ExcelProperty(value = "不符合的数据",order = 12) - private String result; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourcerInfoImport.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourcerInfoImport.java new file mode 100644 index 0000000..3a4c51f --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourcerInfoImport.java @@ -0,0 +1,130 @@ +package com.casic.missiles.model.business; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * @Description: + * @Author: wangpeng + * @Date: 2023/5/29 9:58 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +@ApiModel +@Data +public class BusinessOutsourcerInfoImport { + private static final long serialVersionUID = 1L; + + /** + * 分包方公司名字 + */ + @ExcelProperty("公司名称") + private String outsourcerName; + + /** + * 分包方公司简称 + */ + @ExcelProperty("公司简称") + private String outsourcerBriefName; + + /** + * 分包方公司规模-字典 + */ + @ExcelProperty("公司规模") + private String outsourcerSize; + + /** + * 业务规模-字典 + */ + @ExcelProperty("业务规模") + private String businessSize; + + /** + * 履约评级-字典 + */ + @ExcelProperty("履约评级") + private String grade; + + /** + * 整体评价-字典 + */ + @ExcelProperty("整体评价") + private String evaluation; + + /** + * 业务内容 + */ + @ExcelProperty("业务内容") + private String businessContent; + + /** + * 税号 + */ + @ExcelProperty("税号") + private String taxNumber; + + /** + * 银行账户名 + */ + @ExcelProperty("银行账户名") + private String bankAccount; + + /** + * 银行名称 + */ + @ExcelProperty("银行名称") + private String bankName; + + /** + * 银行账号 + */ + @ExcelProperty("银行账号") + private String bankAccountNumber; + + /** + * 邮编 + */ + @ExcelProperty("邮编") + private String postalCode; + + /** + * 负责人 + */ + @ExcelProperty("负责人") + private String director; + + /** + * 电话 + */ + @ExcelProperty("电话") + private String phone; + + /** + * 手机 + */ + @ExcelProperty("手机") + private String mobile; + + /** + * 邮箱 + */ + @ExcelProperty("邮箱") + private String email; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/meter/MeterTraceSupplier.java b/casic-metering-model/src/main/java/com/casic/missiles/model/meter/MeterTraceSupplier.java index 31b8323..1cf8405 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/meter/MeterTraceSupplier.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/meter/MeterTraceSupplier.java @@ -118,7 +118,7 @@ @TableField("director") private String director; - /**发布人 + /** * 电话 */ @ExcelProperty("联系方式") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/meter/MeterTraceSupplierImport.java b/casic-metering-model/src/main/java/com/casic/missiles/model/meter/MeterTraceSupplierImport.java new file mode 100644 index 0000000..1f72bb2 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/meter/MeterTraceSupplierImport.java @@ -0,0 +1,101 @@ +package com.casic.missiles.model.meter; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableField; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * @Description: + * @Author: wangpeng + * @Date: 2023/5/29 10:41 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +@ApiModel +@Data +public class MeterTraceSupplierImport { + /** + * 公司名称 + */ + @ExcelProperty("公司名称") + private String supplierName; + + /** + * 公司简称 + */ + @ExcelProperty("公司简称") + private String briefName; + + /** + * 业务内容 + */ + @ExcelProperty("业务内容") + private String businessContent; + + /** + * 税号 + */ + @ExcelProperty("税号") + private String taxNumber; + + /** + * 银行账户名 + */ + @ExcelProperty("银行账户名") + private String bankAccount; + + /** + * 银行名称 + */ + @ExcelProperty("银行名称") + private String bankName; + + /** + * 银行账号 + */ + @ExcelProperty("银行账号") + private String bankAccountNumber; + + /** + * 邮编 + */ + @ExcelProperty("邮编") + private String postalCode; + + /** + * 负责人 + */ + @ExcelProperty("负责人") + private String director; + + /** + * 电话 + */ + @ExcelProperty("电话") + private String phone; + + /** + * 手机 + */ + @ExcelProperty("手机") + private String mobile; + + /** + * 邮箱 + */ + @ExcelProperty("邮箱") + private String mailbox; +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOutsourcerInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOutsourcerInfoServiceImpl.java index 76a1950..1c5d2ed 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOutsourcerInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOutsourcerInfoServiceImpl.java @@ -24,6 +24,7 @@ import com.casic.missiles.exception.BusinessException; import com.casic.missiles.mapper.business.BusinessOutsourcerInfoMapper; import com.casic.missiles.model.business.BusinessOutsourcerInfo; +import com.casic.missiles.model.equipment.EquipmentFixedAssets; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.service.IBaseApprovalService; import com.casic.missiles.service.business.IBusinessOutsourcerInfoService; @@ -41,6 +42,8 @@ import org.springframework.util.CollectionUtils; import javax.annotation.Resource; +import javax.validation.ConstraintViolation; +import javax.validation.Validation; import java.util.*; import java.util.stream.Collectors; @@ -103,6 +106,26 @@ @Override @Transactional + public ReturnDTO addBusinessOutsourcerList(List list) throws Exception { + //用于存储验证后的错误信息 + Long maxNo = outsourcerInfoMapper.selectMaxOutsourcerNo(); + for (BusinessOutsourcerInfo item : list) { + Set> validate = Validation.buildDefaultValidatorFactory().getValidator().validate(item); + if (!CollectionUtils.isEmpty(validate)) { + return ReturnUtil.failed(validate.iterator().next().getMessage()); + } + DictCodeUtils.validDictCode(item); + //生成编号 + String outsourcerNo = NumberGeneratorUtil.getContactNo(PrefixCodeEnum.OUTSOURCER_PREFIX, maxNo); + item.setOutsourcerNo(outsourcerNo); + maxNo++; + } + super.saveBatch(list); + return ReturnUtil.success(); + } + + @Override + @Transactional public ReturnDTO saveOutsourcer(BusinessOutsourcerInfo outsourcerInfo) { //生成编号 Long maxNo = outsourcerInfoMapper.selectMaxOutsourcerNo(); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/EquipmentApplyAcceptanceCheckServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/EquipmentApplyAcceptanceCheckServiceImpl.java index 531720c..3ab8f2e 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/EquipmentApplyAcceptanceCheckServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/EquipmentApplyAcceptanceCheckServiceImpl.java @@ -163,8 +163,8 @@ public Object acceptanceCheckInfo(IdDTO idDTO) throws Exception { // 通过id查询出检修保养基本信息 AcceptanceCheck acceptanceCheckInfo = acceptanceCheckMapper.acceptanceCheckInfo(idDTO.getId()); - // 通过检修申请id查询出对应的检修设备列表 - List checkList = equipmentApplyEquipmentMapper.queryCheckList(acceptanceCheckInfo.getAcceptanceCheckId()); + // 通过验收单id查询出对应的检修设备列表 + List checkList = equipmentApplyEquipmentMapper.queryCheckList(String.valueOf(acceptanceCheckInfo.getId())); for (EquipmentApplyEquipment applyEquipment : checkList) { // 替换字典值 DictCodeUtils.convertDictCodeToName(applyEquipment); @@ -193,7 +193,17 @@ // 新增基本信息 if(equipmentApplyMapper.insert(equipmentApply)>0){ // 修改设备列表 - equipmentApplyEquipmentService.updateBatchById(equipmentApply.getEquipmentList()); +// equipmentApplyEquipmentService.updateBatchById(equipmentApply.getEquipmentList()); + boolean equipmentSaveBatchFlg = true; + // 新增设备信息 + if(!CollectionUtils.isEmpty(equipmentApply.getEquipmentList())){ + for (EquipmentApplyEquipment eq : equipmentApply.getEquipmentList()) { + eq.setId(null); + eq.setApplyId(String.valueOf(equipmentApply.getId())); + } + equipmentSaveBatchFlg = equipmentApplyEquipmentService.saveBatch(equipmentApply.getEquipmentList()); + } + if(!equipmentSaveBatchFlg) throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); // 新增附件列表 if(null != equipmentApply.getFileList() && equipmentApply.getFileList().size() != 0){ equipmentApply.getFileList().forEach(bean->bean.setApplyId(equipmentApply.getId())); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/meter/MeterPriceServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/meter/MeterPriceServiceImpl.java index d9c0055..1151b99 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/meter/MeterPriceServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/meter/MeterPriceServiceImpl.java @@ -22,8 +22,10 @@ import com.casic.missiles.model.meter.MeterPrice; import com.casic.missiles.model.meter.MeterPriceCategory; import com.casic.missiles.model.meter.MeterPriceItem; +import com.casic.missiles.model.meter.MeterTraceSupplier; import com.casic.missiles.modular.system.model.Dict; import com.casic.missiles.service.meter.MeterPriceService; +import com.casic.missiles.utils.DictCodeUtils; import com.casic.missiles.utils.ExportUtils; import com.casic.missiles.utils.MinioUtil; import com.casic.missiles.utils.NumberGeneratorUtil; @@ -34,8 +36,11 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; +import javax.validation.ConstraintViolation; +import javax.validation.Validation; import java.util.List; import java.util.Map; +import java.util.Set; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicLong; import java.util.stream.Collectors; @@ -97,6 +102,26 @@ } @Override + @Transactional + public ReturnDTO addMeterPriceList(List list) throws Exception { + //用于存储验证后的错误信息 + Long maxNo = meterPriceMapper.getMaxNo(); + for (MeterPrice item : list) { + Set> validate = Validation.buildDefaultValidatorFactory().getValidator().validate(item); + if (!CollectionUtils.isEmpty(validate)) { + return ReturnUtil.failed(validate.iterator().next().getMessage()); + } + DictCodeUtils.validDictCode(item); + //生成编号 + String priceNo = NumberGeneratorUtil.getContactNo(PrefixCodeEnum.PRICE_PREFIX, maxNo); + item.setPriceNo(priceNo); + maxNo++; + } + super.saveBatch(list); + return ReturnUtil.success(); + } + + @Override public MeterPrice queryPriceInfo(IdDTO idDto) { MeterPrice meterPrice = meterPriceMapper.queryPriceInfo(idDto.getId()); meterPrice.setCheckTypeName(dictService.getDictNameByCode(MeterDictEnum.CHECK_TYPE,meterPrice.getCheckType())); @@ -136,76 +161,6 @@ } } - @Override - public ReturnDTO dataCheck(List list) { - AtomicBoolean checkResult = new AtomicBoolean(true); - // 获取字典值 - List checkTypeDict = dictService.findInDictByCode(MeterDictEnum.CHECK_TYPE); - List priceTypeDict = dictService.findInDictByCode(MeterDictEnum.PRICE_TYPE); - List priceItemDict = dictService.findInDictByCode(MeterDictEnum.PRICE_ITEM); - List operatorPermissionDict = dictService.findInDictByCode(MeterDictEnum.OPERATOR_DISCOUNT_PERMISSION); - List directorPermissionDict = dictService.findInDictByCode(MeterDictEnum.DIRECTOR_DISCOUNT_PERMISSION); - Map> priceTypeDictMap = priceTypeDict.stream().collect(Collectors.groupingBy(Dict::getName)); - Map> checkTypeDictMap = checkTypeDict.stream().collect(Collectors.groupingBy(Dict::getName)); - Map> priceItemDictMap = priceItemDict.stream().collect(Collectors.groupingBy(Dict::getName)); - Map> operatorPermissionDictMap = operatorPermissionDict.stream().collect(Collectors.groupingBy(Dict::getName)); - Map> directorPermissionDictMap = directorPermissionDict.stream().collect(Collectors.groupingBy(Dict::getName)); - list.forEach(bean->{ - StringBuilder result = new StringBuilder(); - // 校验导入数据中的字典值是否存在 - if(null == priceTypeDictMap.get(bean.getPriceType())){ - result.append(BusinessExceptionEnum.PRICE_TYPE_NOT_EXISTENCE.getMessage()); - checkResult.set(false); - } - if(null == checkTypeDictMap.get(bean.getCheckType())){ - result.append(BusinessExceptionEnum.CHECK_TYPE_NOT_EXISTENCE.getMessage()); - checkResult.set(false); - } - if(null == priceItemDictMap.get(bean.getPriceItem())){ - result.append(BusinessExceptionEnum.PRICE_ITEM_NOT_EXISTENCE.getMessage()); - checkResult.set(false); - } - if(null == operatorPermissionDictMap.get(bean.getOperatorDiscountPermission())){ - result.append(BusinessExceptionEnum.OPERATOR_DISCOUNT_PERMISSION_NOT_EXISTENCE.getMessage()); - checkResult.set(false); - } - if(null == directorPermissionDictMap.get(bean.getDirectorDiscountPermission())){ - result.append(BusinessExceptionEnum.DIRECTOR_DISCOUNT_PERMISSION_NOT_EXISTENCE.getMessage()); - checkResult.set(false); - } - bean.setResult(result.toString()); - }); - if(checkResult.get()){ - // 校验通过 - AtomicLong maxNo = new AtomicLong(meterPriceMapper.getMaxNo()); - list.forEach(bean->{ - String priceNo = NumberGeneratorUtil.getContactNo(PrefixCodeEnum.PRICE_PREFIX, maxNo.get()); - maxNo.set(Long.parseLong(priceNo.substring(2))); - Long id= IdWorker.getId(); - bean.setId(id); - bean.setPriceNo(priceNo); - // 将数据的字典值替换 - bean.setPriceType(priceTypeDictMap.get(bean.getPriceType()).get(0).getCode()); - bean.setPriceItem(priceItemDictMap.get(bean.getPriceItem()).get(0).getCode()); - bean.setCheckType(checkTypeDictMap.get(bean.getCheckType()).get(0).getCode()); - bean.setOperatorDiscountPermission(operatorPermissionDictMap.get(bean.getOperatorDiscountPermission()).get(0).getCode()); - bean.setDirectorDiscountPermission(directorPermissionDictMap.get(bean.getDirectorDiscountPermission()).get(0).getCode()); - }); - // 批量新增数据 - meterPriceMapper.addMeterPriceList(list); - return ReturnUtil.success(); - }else{ - // 校验不通过 - // 将处理后的数据导出成文件 - MultipartFile[] file = ExportUtils.exportMultipartFile(list, "checkResult", MeterPriceImport.class); - // 将文件存储到minio中返回文件id,供前台下载 - List upload = minioUtil.upload(file); - return ReturnUtil.failed(upload.get(0)); - } - - } - - private List supplementList(List meterPriceList){ meterPriceList.forEach(bean->{ bean.setCheckTypeName(dictService.getDictNameByCode(MeterDictEnum.CHECK_TYPE,bean.getCheckType())); diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourcerController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourcerController.java index 700b299..33cf5d8 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourcerController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourcerController.java @@ -15,8 +15,12 @@ import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.model.business.BusinessOutsourcerInfo; +import com.casic.missiles.model.business.BusinessOutsourcerInfoImport; +import com.casic.missiles.model.equipment.EquipmentFixedAssets; +import com.casic.missiles.model.equipment.EquipmentFixedAssetsImport; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessOutsourcerInfoService; +import com.casic.missiles.utils.ConvertUtils; import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -25,8 +29,10 @@ import org.springframework.util.CollectionUtils; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import javax.validation.Valid; +import java.util.ArrayList; import java.util.List; import java.util.Objects; @@ -99,6 +105,22 @@ return ReturnUtil.success(super.packForBT(page)); } + /** + * 批量导入分包方档案 + */ + @ApiOperation("批量导入分包方档案") + @PostMapping(value = "/import", headers = "content-type=multipart/form-data") + @ResponseBody + public ReturnDTO importBatch(@RequestParam MultipartFile[] multipartFile) throws Exception { + List sourceList = new ArrayList(); + for (MultipartFile file : multipartFile) { + List list = super.importExcel(BusinessOutsourcerInfoImport.class, file, null, null); + sourceList.addAll(list); + } + List targetList = ConvertUtils.sourceToTarget(sourceList, BusinessOutsourcerInfo.class); + return outsourcerInfoService.addBusinessOutsourcerList(targetList); + } + @ApiOperation("分包方资格审批保存(保存至草稿箱)") @PostMapping("/save") @ResponseBody diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java index 94de448..1684d0f 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java @@ -183,7 +183,7 @@ @PostMapping(value = "/importMeterEquipment", headers = "content-type=multipart/form-data") @ResponseBody public ReturnDTO importMeterEquipment(@RequestParam MultipartFile[] multipartFile) throws Exception { - List sourceList = new ArrayList(); + List sourceList = new ArrayList<>(); for (MultipartFile file : multipartFile) { List list = super.importExcel(EquipmentFixedAssetsImport.class, file, null, null); sourceList.addAll(list); diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterPriceController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterPriceController.java index 8bb178f..dbb183f 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterPriceController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterPriceController.java @@ -3,15 +3,19 @@ import com.alibaba.excel.EasyExcel; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.IdDTO; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.meter.MeterPriceImport; import com.casic.missiles.dto.meter.MeterPriceRequest; +import com.casic.missiles.model.meter.MeterTraceSupplier; +import com.casic.missiles.model.meter.MeterTraceSupplierImport; import com.casic.missiles.service.listeners.CommonExcelListener; import com.casic.missiles.model.meter.MeterPrice; import com.casic.missiles.service.meter.MeterPriceService; +import com.casic.missiles.utils.ConvertUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; @@ -21,6 +25,7 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.util.ArrayList; import java.util.List; @@ -28,7 +33,7 @@ @RestController @RequestMapping("/price") @Slf4j -public class MeterPriceController { +public class MeterPriceController extends ExportController { @Resource private MeterPriceService meterPriceService; @@ -69,6 +74,19 @@ return meterPriceService.addMeterPrice(meterPrice); } + @ApiOperation("批量导入价格库") + @PostMapping(value = "/import", headers = "content-type=multipart/form-data") + @ResponseBody + public ReturnDTO importBatch(@RequestParam MultipartFile[] multipartFile) throws Exception { + List sourceList = new ArrayList(); + for (MultipartFile file : multipartFile) { + List list = super.importExcel(MeterPriceImport.class, file, null, null); + sourceList.addAll(list); + } + List targetList = ConvertUtils.sourceToTarget(sourceList, MeterPrice.class); + return meterPriceService.addMeterPriceList(targetList); + } + /** * 价格详细信息 * @return @@ -106,30 +124,4 @@ } } - /** - * - * @param multipartFile - * @return - */ - @ApiOperation("批量导入价格库") - @PostMapping(value = "/batchImportPrice", headers = "content-type=multipart/form-data") - @ResponseBody - public ReturnDTO batchImportPrice(@RequestParam MultipartFile[] multipartFile) { - try { - CommonExcelListener listener = new CommonExcelListener<>(); - final long start = System.currentTimeMillis(); - for (MultipartFile file : multipartFile) { - EasyExcel.read(file.getInputStream(), MeterPriceImport.class, listener) - .headRowNumber(1).autoTrim(true).sheet(0).doRead(); - } - log.info("耗时:秒" + (System.currentTimeMillis() - start) / 1000); - //读取到的数据 - List list = listener.getList(); - return meterPriceService.dataCheck(list); - } catch (IOException e) { - e.printStackTrace(); - return ReturnUtil.failed("数据取失败"); - } - } - } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java index 5d77839..3935aa8 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java @@ -11,22 +11,25 @@ import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.business.BusinessOutsourcerInfo; +import com.casic.missiles.model.business.BusinessOutsourcerInfoImport; import com.casic.missiles.model.meter.MeterTraceSupplier; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.model.meter.MeterTraceSupplierImport; import com.casic.missiles.service.meter.IMeterTraceSupplierService; +import com.casic.missiles.utils.ConvertUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.util.CollectionUtils; import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import javax.validation.Valid; import java.io.IOException; +import java.util.ArrayList; import java.util.List; import java.util.Objects; @@ -89,6 +92,19 @@ return traceSupplierService.saveTraceSupplier(traceSupplier); } + @ApiOperation("批量导入溯源供方") + @PostMapping(value = "/import", headers = "content-type=multipart/form-data") + @ResponseBody + public ReturnDTO importBatch(@RequestParam MultipartFile[] multipartFile) throws Exception { + List sourceList = new ArrayList(); + for (MultipartFile file : multipartFile) { + List list = super.importExcel(MeterTraceSupplierImport.class, file, null, null); + sourceList.addAll(list); + } + List targetList = ConvertUtils.sourceToTarget(sourceList, MeterTraceSupplier.class); + return traceSupplierService.addTraceSupplierList(targetList); + } + /** * 草稿箱溯源供方编辑 */ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterPriceImport.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterPriceImport.java index 8e3852f..550c5cf 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterPriceImport.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterPriceImport.java @@ -20,70 +20,33 @@ @ExcelIgnoreUnannotated public class MeterPriceImport { - @TableId("id") - @ApiModelProperty(value = "主键id", dataType = "Long") - private Long id; - - @TableField("price_no") - @ExcelProperty(value = "价格编号",order = 0) - @ApiModelProperty(value = "价格编号", dataType = "String") - private String priceNo; - - @TableField("price_name") - @ExcelProperty(value = "价格名称",order = 1) - @ApiModelProperty(value = "价格名称", dataType = "String") + @ExcelProperty(value = "价格名称") private String priceName; - @TableField("check_type") - @ExcelProperty(value = "校验类型",order = 2) - @ApiModelProperty(value = "校验类型-字典value", dataType = "String") + @ExcelProperty(value = "校验类型") private String checkType; - @TableField("price_type") - @ExcelProperty(value = "价格类别",order = 3) - @ApiModelProperty(value = "价格类别-字典value", dataType = "String") + @ExcelProperty(value = "价格类别") private String priceType; - @TableField("price_item") - @ExcelProperty(value = "项目",order = 4) - @ApiModelProperty(value = "项目-字典value", dataType = "String") + @ExcelProperty(value = "价格项目") private String priceItem; - @TableField("price_standard") - @ExcelProperty(value = "依据标准",order = 5) - @ApiModelProperty(value = "依据标准-计量规程文件名", dataType = "String") - private String priceStandard; - - @TableField("price") - @ExcelProperty(value = "标准价格(元)",order = 6) - @ApiModelProperty(value = "标准价格(元)", dataType = "Double") + @ExcelProperty(value = "标准价格(元)") private Double price; - @TableField("price_limit") - @ExcelProperty(value = "业务员折扣权限",order = 7) - @ApiModelProperty(value = "业务员折扣权限", dataType = "String") + @ExcelProperty(value = "限制范围") private String priceLimit; - @TableField("operator_discount_permission") - @ExcelProperty(value = "业务员折扣权限",order = 8) - @ApiModelProperty(value = "业务员折扣权限-字典value", dataType = "String") + @ExcelProperty(value = "业务员折扣权限") private String operatorDiscountPermission; - @TableField("director_discount_permission") - @ExcelProperty(value = "负责人折扣权限",order = 9) - @ApiModelProperty(value = "负责人折扣权限-字典value", dataType = "String") + @ExcelProperty(value = "负责人折扣权限") private String directorDiscountPermission; - @TableField("price_description") - @ExcelProperty(value = "说明",order = 10) - @ApiModelProperty(value = "说明", dataType = "String") + @ExcelProperty(value = "说明") private String priceDescription; - @TableField("remark") - @ExcelProperty(value = "备注",order = 11) - @ApiModelProperty(value = "备注", dataType = "String") + @ExcelProperty(value = "备注") private String remark; - - @ExcelProperty(value = "不符合的数据",order = 12) - private String result; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourcerInfoImport.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourcerInfoImport.java new file mode 100644 index 0000000..3a4c51f --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourcerInfoImport.java @@ -0,0 +1,130 @@ +package com.casic.missiles.model.business; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * @Description: + * @Author: wangpeng + * @Date: 2023/5/29 9:58 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +@ApiModel +@Data +public class BusinessOutsourcerInfoImport { + private static final long serialVersionUID = 1L; + + /** + * 分包方公司名字 + */ + @ExcelProperty("公司名称") + private String outsourcerName; + + /** + * 分包方公司简称 + */ + @ExcelProperty("公司简称") + private String outsourcerBriefName; + + /** + * 分包方公司规模-字典 + */ + @ExcelProperty("公司规模") + private String outsourcerSize; + + /** + * 业务规模-字典 + */ + @ExcelProperty("业务规模") + private String businessSize; + + /** + * 履约评级-字典 + */ + @ExcelProperty("履约评级") + private String grade; + + /** + * 整体评价-字典 + */ + @ExcelProperty("整体评价") + private String evaluation; + + /** + * 业务内容 + */ + @ExcelProperty("业务内容") + private String businessContent; + + /** + * 税号 + */ + @ExcelProperty("税号") + private String taxNumber; + + /** + * 银行账户名 + */ + @ExcelProperty("银行账户名") + private String bankAccount; + + /** + * 银行名称 + */ + @ExcelProperty("银行名称") + private String bankName; + + /** + * 银行账号 + */ + @ExcelProperty("银行账号") + private String bankAccountNumber; + + /** + * 邮编 + */ + @ExcelProperty("邮编") + private String postalCode; + + /** + * 负责人 + */ + @ExcelProperty("负责人") + private String director; + + /** + * 电话 + */ + @ExcelProperty("电话") + private String phone; + + /** + * 手机 + */ + @ExcelProperty("手机") + private String mobile; + + /** + * 邮箱 + */ + @ExcelProperty("邮箱") + private String email; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/meter/MeterTraceSupplier.java b/casic-metering-model/src/main/java/com/casic/missiles/model/meter/MeterTraceSupplier.java index 31b8323..1cf8405 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/meter/MeterTraceSupplier.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/meter/MeterTraceSupplier.java @@ -118,7 +118,7 @@ @TableField("director") private String director; - /**发布人 + /** * 电话 */ @ExcelProperty("联系方式") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/meter/MeterTraceSupplierImport.java b/casic-metering-model/src/main/java/com/casic/missiles/model/meter/MeterTraceSupplierImport.java new file mode 100644 index 0000000..1f72bb2 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/meter/MeterTraceSupplierImport.java @@ -0,0 +1,101 @@ +package com.casic.missiles.model.meter; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableField; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * @Description: + * @Author: wangpeng + * @Date: 2023/5/29 10:41 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +@ApiModel +@Data +public class MeterTraceSupplierImport { + /** + * 公司名称 + */ + @ExcelProperty("公司名称") + private String supplierName; + + /** + * 公司简称 + */ + @ExcelProperty("公司简称") + private String briefName; + + /** + * 业务内容 + */ + @ExcelProperty("业务内容") + private String businessContent; + + /** + * 税号 + */ + @ExcelProperty("税号") + private String taxNumber; + + /** + * 银行账户名 + */ + @ExcelProperty("银行账户名") + private String bankAccount; + + /** + * 银行名称 + */ + @ExcelProperty("银行名称") + private String bankName; + + /** + * 银行账号 + */ + @ExcelProperty("银行账号") + private String bankAccountNumber; + + /** + * 邮编 + */ + @ExcelProperty("邮编") + private String postalCode; + + /** + * 负责人 + */ + @ExcelProperty("负责人") + private String director; + + /** + * 电话 + */ + @ExcelProperty("电话") + private String phone; + + /** + * 手机 + */ + @ExcelProperty("手机") + private String mobile; + + /** + * 邮箱 + */ + @ExcelProperty("邮箱") + private String mailbox; +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOutsourcerInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOutsourcerInfoServiceImpl.java index 76a1950..1c5d2ed 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOutsourcerInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOutsourcerInfoServiceImpl.java @@ -24,6 +24,7 @@ import com.casic.missiles.exception.BusinessException; import com.casic.missiles.mapper.business.BusinessOutsourcerInfoMapper; import com.casic.missiles.model.business.BusinessOutsourcerInfo; +import com.casic.missiles.model.equipment.EquipmentFixedAssets; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.service.IBaseApprovalService; import com.casic.missiles.service.business.IBusinessOutsourcerInfoService; @@ -41,6 +42,8 @@ import org.springframework.util.CollectionUtils; import javax.annotation.Resource; +import javax.validation.ConstraintViolation; +import javax.validation.Validation; import java.util.*; import java.util.stream.Collectors; @@ -103,6 +106,26 @@ @Override @Transactional + public ReturnDTO addBusinessOutsourcerList(List list) throws Exception { + //用于存储验证后的错误信息 + Long maxNo = outsourcerInfoMapper.selectMaxOutsourcerNo(); + for (BusinessOutsourcerInfo item : list) { + Set> validate = Validation.buildDefaultValidatorFactory().getValidator().validate(item); + if (!CollectionUtils.isEmpty(validate)) { + return ReturnUtil.failed(validate.iterator().next().getMessage()); + } + DictCodeUtils.validDictCode(item); + //生成编号 + String outsourcerNo = NumberGeneratorUtil.getContactNo(PrefixCodeEnum.OUTSOURCER_PREFIX, maxNo); + item.setOutsourcerNo(outsourcerNo); + maxNo++; + } + super.saveBatch(list); + return ReturnUtil.success(); + } + + @Override + @Transactional public ReturnDTO saveOutsourcer(BusinessOutsourcerInfo outsourcerInfo) { //生成编号 Long maxNo = outsourcerInfoMapper.selectMaxOutsourcerNo(); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/EquipmentApplyAcceptanceCheckServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/EquipmentApplyAcceptanceCheckServiceImpl.java index 531720c..3ab8f2e 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/EquipmentApplyAcceptanceCheckServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/EquipmentApplyAcceptanceCheckServiceImpl.java @@ -163,8 +163,8 @@ public Object acceptanceCheckInfo(IdDTO idDTO) throws Exception { // 通过id查询出检修保养基本信息 AcceptanceCheck acceptanceCheckInfo = acceptanceCheckMapper.acceptanceCheckInfo(idDTO.getId()); - // 通过检修申请id查询出对应的检修设备列表 - List checkList = equipmentApplyEquipmentMapper.queryCheckList(acceptanceCheckInfo.getAcceptanceCheckId()); + // 通过验收单id查询出对应的检修设备列表 + List checkList = equipmentApplyEquipmentMapper.queryCheckList(String.valueOf(acceptanceCheckInfo.getId())); for (EquipmentApplyEquipment applyEquipment : checkList) { // 替换字典值 DictCodeUtils.convertDictCodeToName(applyEquipment); @@ -193,7 +193,17 @@ // 新增基本信息 if(equipmentApplyMapper.insert(equipmentApply)>0){ // 修改设备列表 - equipmentApplyEquipmentService.updateBatchById(equipmentApply.getEquipmentList()); +// equipmentApplyEquipmentService.updateBatchById(equipmentApply.getEquipmentList()); + boolean equipmentSaveBatchFlg = true; + // 新增设备信息 + if(!CollectionUtils.isEmpty(equipmentApply.getEquipmentList())){ + for (EquipmentApplyEquipment eq : equipmentApply.getEquipmentList()) { + eq.setId(null); + eq.setApplyId(String.valueOf(equipmentApply.getId())); + } + equipmentSaveBatchFlg = equipmentApplyEquipmentService.saveBatch(equipmentApply.getEquipmentList()); + } + if(!equipmentSaveBatchFlg) throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); // 新增附件列表 if(null != equipmentApply.getFileList() && equipmentApply.getFileList().size() != 0){ equipmentApply.getFileList().forEach(bean->bean.setApplyId(equipmentApply.getId())); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/meter/MeterPriceServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/meter/MeterPriceServiceImpl.java index d9c0055..1151b99 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/meter/MeterPriceServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/meter/MeterPriceServiceImpl.java @@ -22,8 +22,10 @@ import com.casic.missiles.model.meter.MeterPrice; import com.casic.missiles.model.meter.MeterPriceCategory; import com.casic.missiles.model.meter.MeterPriceItem; +import com.casic.missiles.model.meter.MeterTraceSupplier; import com.casic.missiles.modular.system.model.Dict; import com.casic.missiles.service.meter.MeterPriceService; +import com.casic.missiles.utils.DictCodeUtils; import com.casic.missiles.utils.ExportUtils; import com.casic.missiles.utils.MinioUtil; import com.casic.missiles.utils.NumberGeneratorUtil; @@ -34,8 +36,11 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; +import javax.validation.ConstraintViolation; +import javax.validation.Validation; import java.util.List; import java.util.Map; +import java.util.Set; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicLong; import java.util.stream.Collectors; @@ -97,6 +102,26 @@ } @Override + @Transactional + public ReturnDTO addMeterPriceList(List list) throws Exception { + //用于存储验证后的错误信息 + Long maxNo = meterPriceMapper.getMaxNo(); + for (MeterPrice item : list) { + Set> validate = Validation.buildDefaultValidatorFactory().getValidator().validate(item); + if (!CollectionUtils.isEmpty(validate)) { + return ReturnUtil.failed(validate.iterator().next().getMessage()); + } + DictCodeUtils.validDictCode(item); + //生成编号 + String priceNo = NumberGeneratorUtil.getContactNo(PrefixCodeEnum.PRICE_PREFIX, maxNo); + item.setPriceNo(priceNo); + maxNo++; + } + super.saveBatch(list); + return ReturnUtil.success(); + } + + @Override public MeterPrice queryPriceInfo(IdDTO idDto) { MeterPrice meterPrice = meterPriceMapper.queryPriceInfo(idDto.getId()); meterPrice.setCheckTypeName(dictService.getDictNameByCode(MeterDictEnum.CHECK_TYPE,meterPrice.getCheckType())); @@ -136,76 +161,6 @@ } } - @Override - public ReturnDTO dataCheck(List list) { - AtomicBoolean checkResult = new AtomicBoolean(true); - // 获取字典值 - List checkTypeDict = dictService.findInDictByCode(MeterDictEnum.CHECK_TYPE); - List priceTypeDict = dictService.findInDictByCode(MeterDictEnum.PRICE_TYPE); - List priceItemDict = dictService.findInDictByCode(MeterDictEnum.PRICE_ITEM); - List operatorPermissionDict = dictService.findInDictByCode(MeterDictEnum.OPERATOR_DISCOUNT_PERMISSION); - List directorPermissionDict = dictService.findInDictByCode(MeterDictEnum.DIRECTOR_DISCOUNT_PERMISSION); - Map> priceTypeDictMap = priceTypeDict.stream().collect(Collectors.groupingBy(Dict::getName)); - Map> checkTypeDictMap = checkTypeDict.stream().collect(Collectors.groupingBy(Dict::getName)); - Map> priceItemDictMap = priceItemDict.stream().collect(Collectors.groupingBy(Dict::getName)); - Map> operatorPermissionDictMap = operatorPermissionDict.stream().collect(Collectors.groupingBy(Dict::getName)); - Map> directorPermissionDictMap = directorPermissionDict.stream().collect(Collectors.groupingBy(Dict::getName)); - list.forEach(bean->{ - StringBuilder result = new StringBuilder(); - // 校验导入数据中的字典值是否存在 - if(null == priceTypeDictMap.get(bean.getPriceType())){ - result.append(BusinessExceptionEnum.PRICE_TYPE_NOT_EXISTENCE.getMessage()); - checkResult.set(false); - } - if(null == checkTypeDictMap.get(bean.getCheckType())){ - result.append(BusinessExceptionEnum.CHECK_TYPE_NOT_EXISTENCE.getMessage()); - checkResult.set(false); - } - if(null == priceItemDictMap.get(bean.getPriceItem())){ - result.append(BusinessExceptionEnum.PRICE_ITEM_NOT_EXISTENCE.getMessage()); - checkResult.set(false); - } - if(null == operatorPermissionDictMap.get(bean.getOperatorDiscountPermission())){ - result.append(BusinessExceptionEnum.OPERATOR_DISCOUNT_PERMISSION_NOT_EXISTENCE.getMessage()); - checkResult.set(false); - } - if(null == directorPermissionDictMap.get(bean.getDirectorDiscountPermission())){ - result.append(BusinessExceptionEnum.DIRECTOR_DISCOUNT_PERMISSION_NOT_EXISTENCE.getMessage()); - checkResult.set(false); - } - bean.setResult(result.toString()); - }); - if(checkResult.get()){ - // 校验通过 - AtomicLong maxNo = new AtomicLong(meterPriceMapper.getMaxNo()); - list.forEach(bean->{ - String priceNo = NumberGeneratorUtil.getContactNo(PrefixCodeEnum.PRICE_PREFIX, maxNo.get()); - maxNo.set(Long.parseLong(priceNo.substring(2))); - Long id= IdWorker.getId(); - bean.setId(id); - bean.setPriceNo(priceNo); - // 将数据的字典值替换 - bean.setPriceType(priceTypeDictMap.get(bean.getPriceType()).get(0).getCode()); - bean.setPriceItem(priceItemDictMap.get(bean.getPriceItem()).get(0).getCode()); - bean.setCheckType(checkTypeDictMap.get(bean.getCheckType()).get(0).getCode()); - bean.setOperatorDiscountPermission(operatorPermissionDictMap.get(bean.getOperatorDiscountPermission()).get(0).getCode()); - bean.setDirectorDiscountPermission(directorPermissionDictMap.get(bean.getDirectorDiscountPermission()).get(0).getCode()); - }); - // 批量新增数据 - meterPriceMapper.addMeterPriceList(list); - return ReturnUtil.success(); - }else{ - // 校验不通过 - // 将处理后的数据导出成文件 - MultipartFile[] file = ExportUtils.exportMultipartFile(list, "checkResult", MeterPriceImport.class); - // 将文件存储到minio中返回文件id,供前台下载 - List upload = minioUtil.upload(file); - return ReturnUtil.failed(upload.get(0)); - } - - } - - private List supplementList(List meterPriceList){ meterPriceList.forEach(bean->{ bean.setCheckTypeName(dictService.getDictNameByCode(MeterDictEnum.CHECK_TYPE,bean.getCheckType())); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/meter/MeterTraceSupplierServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/meter/MeterTraceSupplierServiceImpl.java index d486e86..534c4d1 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/meter/MeterTraceSupplierServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/meter/MeterTraceSupplierServiceImpl.java @@ -20,6 +20,7 @@ import com.casic.missiles.enums.system.ApprovalStatusEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.mapper.meter.MeterTraceSupplierMapper; +import com.casic.missiles.model.business.BusinessOutsourcerInfo; import com.casic.missiles.model.meter.MeterTraceSupplier; import com.casic.missiles.model.meter.MeterTraceSupplierPerson; import com.casic.missiles.model.meter.MeterTraceSupplierStandardEquipment; @@ -30,6 +31,7 @@ import com.casic.missiles.service.meter.IMeterTraceSupplierService; import com.casic.missiles.service.meter.IMeterTraceSupplierStandardEquipmentService; import com.casic.missiles.utils.ConvertUtils; +import com.casic.missiles.utils.DictCodeUtils; import com.casic.missiles.utils.NumberGeneratorUtil; import com.casic.missiles.utils.PageUtil; import org.apache.commons.lang3.StringUtils; @@ -42,6 +44,8 @@ import org.springframework.util.CollectionUtils; import javax.annotation.Resource; +import javax.validation.ConstraintViolation; +import javax.validation.Validation; import java.util.*; import java.util.stream.Collectors; @@ -142,6 +146,26 @@ @Override @Transactional + public ReturnDTO addTraceSupplierList(List list) throws Exception { + //用于存储验证后的错误信息 + Long maxNo = traceSupplierMapper.selectMaxSupplierNo(); + for (MeterTraceSupplier item : list) { + Set> validate = Validation.buildDefaultValidatorFactory().getValidator().validate(item); + if (!CollectionUtils.isEmpty(validate)) { + return ReturnUtil.failed(validate.iterator().next().getMessage()); + } + DictCodeUtils.validDictCode(item); + //生成编号 + String supplierNo = NumberGeneratorUtil.getContactNo(PrefixCodeEnum.TRACE_SUPPLIER_PREFIX, maxNo); + item.setSupplierNo(supplierNo); + maxNo++; + } + super.saveBatch(list); + return ReturnUtil.success(); + } + + @Override + @Transactional public ReturnDTO draftUpdate(MeterTraceSupplier traceSupplier) { int updateFlag = traceSupplierMapper.updateById(traceSupplier); //更新溯源供方人员信息 diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourcerController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourcerController.java index 700b299..33cf5d8 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourcerController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourcerController.java @@ -15,8 +15,12 @@ import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.model.business.BusinessOutsourcerInfo; +import com.casic.missiles.model.business.BusinessOutsourcerInfoImport; +import com.casic.missiles.model.equipment.EquipmentFixedAssets; +import com.casic.missiles.model.equipment.EquipmentFixedAssetsImport; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessOutsourcerInfoService; +import com.casic.missiles.utils.ConvertUtils; import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -25,8 +29,10 @@ import org.springframework.util.CollectionUtils; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import javax.validation.Valid; +import java.util.ArrayList; import java.util.List; import java.util.Objects; @@ -99,6 +105,22 @@ return ReturnUtil.success(super.packForBT(page)); } + /** + * 批量导入分包方档案 + */ + @ApiOperation("批量导入分包方档案") + @PostMapping(value = "/import", headers = "content-type=multipart/form-data") + @ResponseBody + public ReturnDTO importBatch(@RequestParam MultipartFile[] multipartFile) throws Exception { + List sourceList = new ArrayList(); + for (MultipartFile file : multipartFile) { + List list = super.importExcel(BusinessOutsourcerInfoImport.class, file, null, null); + sourceList.addAll(list); + } + List targetList = ConvertUtils.sourceToTarget(sourceList, BusinessOutsourcerInfo.class); + return outsourcerInfoService.addBusinessOutsourcerList(targetList); + } + @ApiOperation("分包方资格审批保存(保存至草稿箱)") @PostMapping("/save") @ResponseBody diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java index 94de448..1684d0f 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java @@ -183,7 +183,7 @@ @PostMapping(value = "/importMeterEquipment", headers = "content-type=multipart/form-data") @ResponseBody public ReturnDTO importMeterEquipment(@RequestParam MultipartFile[] multipartFile) throws Exception { - List sourceList = new ArrayList(); + List sourceList = new ArrayList<>(); for (MultipartFile file : multipartFile) { List list = super.importExcel(EquipmentFixedAssetsImport.class, file, null, null); sourceList.addAll(list); diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterPriceController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterPriceController.java index 8bb178f..dbb183f 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterPriceController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterPriceController.java @@ -3,15 +3,19 @@ import com.alibaba.excel.EasyExcel; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.IdDTO; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.meter.MeterPriceImport; import com.casic.missiles.dto.meter.MeterPriceRequest; +import com.casic.missiles.model.meter.MeterTraceSupplier; +import com.casic.missiles.model.meter.MeterTraceSupplierImport; import com.casic.missiles.service.listeners.CommonExcelListener; import com.casic.missiles.model.meter.MeterPrice; import com.casic.missiles.service.meter.MeterPriceService; +import com.casic.missiles.utils.ConvertUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; @@ -21,6 +25,7 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.util.ArrayList; import java.util.List; @@ -28,7 +33,7 @@ @RestController @RequestMapping("/price") @Slf4j -public class MeterPriceController { +public class MeterPriceController extends ExportController { @Resource private MeterPriceService meterPriceService; @@ -69,6 +74,19 @@ return meterPriceService.addMeterPrice(meterPrice); } + @ApiOperation("批量导入价格库") + @PostMapping(value = "/import", headers = "content-type=multipart/form-data") + @ResponseBody + public ReturnDTO importBatch(@RequestParam MultipartFile[] multipartFile) throws Exception { + List sourceList = new ArrayList(); + for (MultipartFile file : multipartFile) { + List list = super.importExcel(MeterPriceImport.class, file, null, null); + sourceList.addAll(list); + } + List targetList = ConvertUtils.sourceToTarget(sourceList, MeterPrice.class); + return meterPriceService.addMeterPriceList(targetList); + } + /** * 价格详细信息 * @return @@ -106,30 +124,4 @@ } } - /** - * - * @param multipartFile - * @return - */ - @ApiOperation("批量导入价格库") - @PostMapping(value = "/batchImportPrice", headers = "content-type=multipart/form-data") - @ResponseBody - public ReturnDTO batchImportPrice(@RequestParam MultipartFile[] multipartFile) { - try { - CommonExcelListener listener = new CommonExcelListener<>(); - final long start = System.currentTimeMillis(); - for (MultipartFile file : multipartFile) { - EasyExcel.read(file.getInputStream(), MeterPriceImport.class, listener) - .headRowNumber(1).autoTrim(true).sheet(0).doRead(); - } - log.info("耗时:秒" + (System.currentTimeMillis() - start) / 1000); - //读取到的数据 - List list = listener.getList(); - return meterPriceService.dataCheck(list); - } catch (IOException e) { - e.printStackTrace(); - return ReturnUtil.failed("数据取失败"); - } - } - } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java index 5d77839..3935aa8 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java @@ -11,22 +11,25 @@ import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.business.BusinessOutsourcerInfo; +import com.casic.missiles.model.business.BusinessOutsourcerInfoImport; import com.casic.missiles.model.meter.MeterTraceSupplier; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.model.meter.MeterTraceSupplierImport; import com.casic.missiles.service.meter.IMeterTraceSupplierService; +import com.casic.missiles.utils.ConvertUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.util.CollectionUtils; import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import javax.validation.Valid; import java.io.IOException; +import java.util.ArrayList; import java.util.List; import java.util.Objects; @@ -89,6 +92,19 @@ return traceSupplierService.saveTraceSupplier(traceSupplier); } + @ApiOperation("批量导入溯源供方") + @PostMapping(value = "/import", headers = "content-type=multipart/form-data") + @ResponseBody + public ReturnDTO importBatch(@RequestParam MultipartFile[] multipartFile) throws Exception { + List sourceList = new ArrayList(); + for (MultipartFile file : multipartFile) { + List list = super.importExcel(MeterTraceSupplierImport.class, file, null, null); + sourceList.addAll(list); + } + List targetList = ConvertUtils.sourceToTarget(sourceList, MeterTraceSupplier.class); + return traceSupplierService.addTraceSupplierList(targetList); + } + /** * 草稿箱溯源供方编辑 */ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterPriceImport.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterPriceImport.java index 8e3852f..550c5cf 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterPriceImport.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterPriceImport.java @@ -20,70 +20,33 @@ @ExcelIgnoreUnannotated public class MeterPriceImport { - @TableId("id") - @ApiModelProperty(value = "主键id", dataType = "Long") - private Long id; - - @TableField("price_no") - @ExcelProperty(value = "价格编号",order = 0) - @ApiModelProperty(value = "价格编号", dataType = "String") - private String priceNo; - - @TableField("price_name") - @ExcelProperty(value = "价格名称",order = 1) - @ApiModelProperty(value = "价格名称", dataType = "String") + @ExcelProperty(value = "价格名称") private String priceName; - @TableField("check_type") - @ExcelProperty(value = "校验类型",order = 2) - @ApiModelProperty(value = "校验类型-字典value", dataType = "String") + @ExcelProperty(value = "校验类型") private String checkType; - @TableField("price_type") - @ExcelProperty(value = "价格类别",order = 3) - @ApiModelProperty(value = "价格类别-字典value", dataType = "String") + @ExcelProperty(value = "价格类别") private String priceType; - @TableField("price_item") - @ExcelProperty(value = "项目",order = 4) - @ApiModelProperty(value = "项目-字典value", dataType = "String") + @ExcelProperty(value = "价格项目") private String priceItem; - @TableField("price_standard") - @ExcelProperty(value = "依据标准",order = 5) - @ApiModelProperty(value = "依据标准-计量规程文件名", dataType = "String") - private String priceStandard; - - @TableField("price") - @ExcelProperty(value = "标准价格(元)",order = 6) - @ApiModelProperty(value = "标准价格(元)", dataType = "Double") + @ExcelProperty(value = "标准价格(元)") private Double price; - @TableField("price_limit") - @ExcelProperty(value = "业务员折扣权限",order = 7) - @ApiModelProperty(value = "业务员折扣权限", dataType = "String") + @ExcelProperty(value = "限制范围") private String priceLimit; - @TableField("operator_discount_permission") - @ExcelProperty(value = "业务员折扣权限",order = 8) - @ApiModelProperty(value = "业务员折扣权限-字典value", dataType = "String") + @ExcelProperty(value = "业务员折扣权限") private String operatorDiscountPermission; - @TableField("director_discount_permission") - @ExcelProperty(value = "负责人折扣权限",order = 9) - @ApiModelProperty(value = "负责人折扣权限-字典value", dataType = "String") + @ExcelProperty(value = "负责人折扣权限") private String directorDiscountPermission; - @TableField("price_description") - @ExcelProperty(value = "说明",order = 10) - @ApiModelProperty(value = "说明", dataType = "String") + @ExcelProperty(value = "说明") private String priceDescription; - @TableField("remark") - @ExcelProperty(value = "备注",order = 11) - @ApiModelProperty(value = "备注", dataType = "String") + @ExcelProperty(value = "备注") private String remark; - - @ExcelProperty(value = "不符合的数据",order = 12) - private String result; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourcerInfoImport.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourcerInfoImport.java new file mode 100644 index 0000000..3a4c51f --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourcerInfoImport.java @@ -0,0 +1,130 @@ +package com.casic.missiles.model.business; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * @Description: + * @Author: wangpeng + * @Date: 2023/5/29 9:58 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +@ApiModel +@Data +public class BusinessOutsourcerInfoImport { + private static final long serialVersionUID = 1L; + + /** + * 分包方公司名字 + */ + @ExcelProperty("公司名称") + private String outsourcerName; + + /** + * 分包方公司简称 + */ + @ExcelProperty("公司简称") + private String outsourcerBriefName; + + /** + * 分包方公司规模-字典 + */ + @ExcelProperty("公司规模") + private String outsourcerSize; + + /** + * 业务规模-字典 + */ + @ExcelProperty("业务规模") + private String businessSize; + + /** + * 履约评级-字典 + */ + @ExcelProperty("履约评级") + private String grade; + + /** + * 整体评价-字典 + */ + @ExcelProperty("整体评价") + private String evaluation; + + /** + * 业务内容 + */ + @ExcelProperty("业务内容") + private String businessContent; + + /** + * 税号 + */ + @ExcelProperty("税号") + private String taxNumber; + + /** + * 银行账户名 + */ + @ExcelProperty("银行账户名") + private String bankAccount; + + /** + * 银行名称 + */ + @ExcelProperty("银行名称") + private String bankName; + + /** + * 银行账号 + */ + @ExcelProperty("银行账号") + private String bankAccountNumber; + + /** + * 邮编 + */ + @ExcelProperty("邮编") + private String postalCode; + + /** + * 负责人 + */ + @ExcelProperty("负责人") + private String director; + + /** + * 电话 + */ + @ExcelProperty("电话") + private String phone; + + /** + * 手机 + */ + @ExcelProperty("手机") + private String mobile; + + /** + * 邮箱 + */ + @ExcelProperty("邮箱") + private String email; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/meter/MeterTraceSupplier.java b/casic-metering-model/src/main/java/com/casic/missiles/model/meter/MeterTraceSupplier.java index 31b8323..1cf8405 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/meter/MeterTraceSupplier.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/meter/MeterTraceSupplier.java @@ -118,7 +118,7 @@ @TableField("director") private String director; - /**发布人 + /** * 电话 */ @ExcelProperty("联系方式") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/meter/MeterTraceSupplierImport.java b/casic-metering-model/src/main/java/com/casic/missiles/model/meter/MeterTraceSupplierImport.java new file mode 100644 index 0000000..1f72bb2 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/meter/MeterTraceSupplierImport.java @@ -0,0 +1,101 @@ +package com.casic.missiles.model.meter; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableField; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * @Description: + * @Author: wangpeng + * @Date: 2023/5/29 10:41 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +@ApiModel +@Data +public class MeterTraceSupplierImport { + /** + * 公司名称 + */ + @ExcelProperty("公司名称") + private String supplierName; + + /** + * 公司简称 + */ + @ExcelProperty("公司简称") + private String briefName; + + /** + * 业务内容 + */ + @ExcelProperty("业务内容") + private String businessContent; + + /** + * 税号 + */ + @ExcelProperty("税号") + private String taxNumber; + + /** + * 银行账户名 + */ + @ExcelProperty("银行账户名") + private String bankAccount; + + /** + * 银行名称 + */ + @ExcelProperty("银行名称") + private String bankName; + + /** + * 银行账号 + */ + @ExcelProperty("银行账号") + private String bankAccountNumber; + + /** + * 邮编 + */ + @ExcelProperty("邮编") + private String postalCode; + + /** + * 负责人 + */ + @ExcelProperty("负责人") + private String director; + + /** + * 电话 + */ + @ExcelProperty("电话") + private String phone; + + /** + * 手机 + */ + @ExcelProperty("手机") + private String mobile; + + /** + * 邮箱 + */ + @ExcelProperty("邮箱") + private String mailbox; +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOutsourcerInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOutsourcerInfoServiceImpl.java index 76a1950..1c5d2ed 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOutsourcerInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOutsourcerInfoServiceImpl.java @@ -24,6 +24,7 @@ import com.casic.missiles.exception.BusinessException; import com.casic.missiles.mapper.business.BusinessOutsourcerInfoMapper; import com.casic.missiles.model.business.BusinessOutsourcerInfo; +import com.casic.missiles.model.equipment.EquipmentFixedAssets; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.service.IBaseApprovalService; import com.casic.missiles.service.business.IBusinessOutsourcerInfoService; @@ -41,6 +42,8 @@ import org.springframework.util.CollectionUtils; import javax.annotation.Resource; +import javax.validation.ConstraintViolation; +import javax.validation.Validation; import java.util.*; import java.util.stream.Collectors; @@ -103,6 +106,26 @@ @Override @Transactional + public ReturnDTO addBusinessOutsourcerList(List list) throws Exception { + //用于存储验证后的错误信息 + Long maxNo = outsourcerInfoMapper.selectMaxOutsourcerNo(); + for (BusinessOutsourcerInfo item : list) { + Set> validate = Validation.buildDefaultValidatorFactory().getValidator().validate(item); + if (!CollectionUtils.isEmpty(validate)) { + return ReturnUtil.failed(validate.iterator().next().getMessage()); + } + DictCodeUtils.validDictCode(item); + //生成编号 + String outsourcerNo = NumberGeneratorUtil.getContactNo(PrefixCodeEnum.OUTSOURCER_PREFIX, maxNo); + item.setOutsourcerNo(outsourcerNo); + maxNo++; + } + super.saveBatch(list); + return ReturnUtil.success(); + } + + @Override + @Transactional public ReturnDTO saveOutsourcer(BusinessOutsourcerInfo outsourcerInfo) { //生成编号 Long maxNo = outsourcerInfoMapper.selectMaxOutsourcerNo(); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/EquipmentApplyAcceptanceCheckServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/EquipmentApplyAcceptanceCheckServiceImpl.java index 531720c..3ab8f2e 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/EquipmentApplyAcceptanceCheckServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/EquipmentApplyAcceptanceCheckServiceImpl.java @@ -163,8 +163,8 @@ public Object acceptanceCheckInfo(IdDTO idDTO) throws Exception { // 通过id查询出检修保养基本信息 AcceptanceCheck acceptanceCheckInfo = acceptanceCheckMapper.acceptanceCheckInfo(idDTO.getId()); - // 通过检修申请id查询出对应的检修设备列表 - List checkList = equipmentApplyEquipmentMapper.queryCheckList(acceptanceCheckInfo.getAcceptanceCheckId()); + // 通过验收单id查询出对应的检修设备列表 + List checkList = equipmentApplyEquipmentMapper.queryCheckList(String.valueOf(acceptanceCheckInfo.getId())); for (EquipmentApplyEquipment applyEquipment : checkList) { // 替换字典值 DictCodeUtils.convertDictCodeToName(applyEquipment); @@ -193,7 +193,17 @@ // 新增基本信息 if(equipmentApplyMapper.insert(equipmentApply)>0){ // 修改设备列表 - equipmentApplyEquipmentService.updateBatchById(equipmentApply.getEquipmentList()); +// equipmentApplyEquipmentService.updateBatchById(equipmentApply.getEquipmentList()); + boolean equipmentSaveBatchFlg = true; + // 新增设备信息 + if(!CollectionUtils.isEmpty(equipmentApply.getEquipmentList())){ + for (EquipmentApplyEquipment eq : equipmentApply.getEquipmentList()) { + eq.setId(null); + eq.setApplyId(String.valueOf(equipmentApply.getId())); + } + equipmentSaveBatchFlg = equipmentApplyEquipmentService.saveBatch(equipmentApply.getEquipmentList()); + } + if(!equipmentSaveBatchFlg) throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); // 新增附件列表 if(null != equipmentApply.getFileList() && equipmentApply.getFileList().size() != 0){ equipmentApply.getFileList().forEach(bean->bean.setApplyId(equipmentApply.getId())); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/meter/MeterPriceServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/meter/MeterPriceServiceImpl.java index d9c0055..1151b99 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/meter/MeterPriceServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/meter/MeterPriceServiceImpl.java @@ -22,8 +22,10 @@ import com.casic.missiles.model.meter.MeterPrice; import com.casic.missiles.model.meter.MeterPriceCategory; import com.casic.missiles.model.meter.MeterPriceItem; +import com.casic.missiles.model.meter.MeterTraceSupplier; import com.casic.missiles.modular.system.model.Dict; import com.casic.missiles.service.meter.MeterPriceService; +import com.casic.missiles.utils.DictCodeUtils; import com.casic.missiles.utils.ExportUtils; import com.casic.missiles.utils.MinioUtil; import com.casic.missiles.utils.NumberGeneratorUtil; @@ -34,8 +36,11 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; +import javax.validation.ConstraintViolation; +import javax.validation.Validation; import java.util.List; import java.util.Map; +import java.util.Set; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicLong; import java.util.stream.Collectors; @@ -97,6 +102,26 @@ } @Override + @Transactional + public ReturnDTO addMeterPriceList(List list) throws Exception { + //用于存储验证后的错误信息 + Long maxNo = meterPriceMapper.getMaxNo(); + for (MeterPrice item : list) { + Set> validate = Validation.buildDefaultValidatorFactory().getValidator().validate(item); + if (!CollectionUtils.isEmpty(validate)) { + return ReturnUtil.failed(validate.iterator().next().getMessage()); + } + DictCodeUtils.validDictCode(item); + //生成编号 + String priceNo = NumberGeneratorUtil.getContactNo(PrefixCodeEnum.PRICE_PREFIX, maxNo); + item.setPriceNo(priceNo); + maxNo++; + } + super.saveBatch(list); + return ReturnUtil.success(); + } + + @Override public MeterPrice queryPriceInfo(IdDTO idDto) { MeterPrice meterPrice = meterPriceMapper.queryPriceInfo(idDto.getId()); meterPrice.setCheckTypeName(dictService.getDictNameByCode(MeterDictEnum.CHECK_TYPE,meterPrice.getCheckType())); @@ -136,76 +161,6 @@ } } - @Override - public ReturnDTO dataCheck(List list) { - AtomicBoolean checkResult = new AtomicBoolean(true); - // 获取字典值 - List checkTypeDict = dictService.findInDictByCode(MeterDictEnum.CHECK_TYPE); - List priceTypeDict = dictService.findInDictByCode(MeterDictEnum.PRICE_TYPE); - List priceItemDict = dictService.findInDictByCode(MeterDictEnum.PRICE_ITEM); - List operatorPermissionDict = dictService.findInDictByCode(MeterDictEnum.OPERATOR_DISCOUNT_PERMISSION); - List directorPermissionDict = dictService.findInDictByCode(MeterDictEnum.DIRECTOR_DISCOUNT_PERMISSION); - Map> priceTypeDictMap = priceTypeDict.stream().collect(Collectors.groupingBy(Dict::getName)); - Map> checkTypeDictMap = checkTypeDict.stream().collect(Collectors.groupingBy(Dict::getName)); - Map> priceItemDictMap = priceItemDict.stream().collect(Collectors.groupingBy(Dict::getName)); - Map> operatorPermissionDictMap = operatorPermissionDict.stream().collect(Collectors.groupingBy(Dict::getName)); - Map> directorPermissionDictMap = directorPermissionDict.stream().collect(Collectors.groupingBy(Dict::getName)); - list.forEach(bean->{ - StringBuilder result = new StringBuilder(); - // 校验导入数据中的字典值是否存在 - if(null == priceTypeDictMap.get(bean.getPriceType())){ - result.append(BusinessExceptionEnum.PRICE_TYPE_NOT_EXISTENCE.getMessage()); - checkResult.set(false); - } - if(null == checkTypeDictMap.get(bean.getCheckType())){ - result.append(BusinessExceptionEnum.CHECK_TYPE_NOT_EXISTENCE.getMessage()); - checkResult.set(false); - } - if(null == priceItemDictMap.get(bean.getPriceItem())){ - result.append(BusinessExceptionEnum.PRICE_ITEM_NOT_EXISTENCE.getMessage()); - checkResult.set(false); - } - if(null == operatorPermissionDictMap.get(bean.getOperatorDiscountPermission())){ - result.append(BusinessExceptionEnum.OPERATOR_DISCOUNT_PERMISSION_NOT_EXISTENCE.getMessage()); - checkResult.set(false); - } - if(null == directorPermissionDictMap.get(bean.getDirectorDiscountPermission())){ - result.append(BusinessExceptionEnum.DIRECTOR_DISCOUNT_PERMISSION_NOT_EXISTENCE.getMessage()); - checkResult.set(false); - } - bean.setResult(result.toString()); - }); - if(checkResult.get()){ - // 校验通过 - AtomicLong maxNo = new AtomicLong(meterPriceMapper.getMaxNo()); - list.forEach(bean->{ - String priceNo = NumberGeneratorUtil.getContactNo(PrefixCodeEnum.PRICE_PREFIX, maxNo.get()); - maxNo.set(Long.parseLong(priceNo.substring(2))); - Long id= IdWorker.getId(); - bean.setId(id); - bean.setPriceNo(priceNo); - // 将数据的字典值替换 - bean.setPriceType(priceTypeDictMap.get(bean.getPriceType()).get(0).getCode()); - bean.setPriceItem(priceItemDictMap.get(bean.getPriceItem()).get(0).getCode()); - bean.setCheckType(checkTypeDictMap.get(bean.getCheckType()).get(0).getCode()); - bean.setOperatorDiscountPermission(operatorPermissionDictMap.get(bean.getOperatorDiscountPermission()).get(0).getCode()); - bean.setDirectorDiscountPermission(directorPermissionDictMap.get(bean.getDirectorDiscountPermission()).get(0).getCode()); - }); - // 批量新增数据 - meterPriceMapper.addMeterPriceList(list); - return ReturnUtil.success(); - }else{ - // 校验不通过 - // 将处理后的数据导出成文件 - MultipartFile[] file = ExportUtils.exportMultipartFile(list, "checkResult", MeterPriceImport.class); - // 将文件存储到minio中返回文件id,供前台下载 - List upload = minioUtil.upload(file); - return ReturnUtil.failed(upload.get(0)); - } - - } - - private List supplementList(List meterPriceList){ meterPriceList.forEach(bean->{ bean.setCheckTypeName(dictService.getDictNameByCode(MeterDictEnum.CHECK_TYPE,bean.getCheckType())); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/meter/MeterTraceSupplierServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/meter/MeterTraceSupplierServiceImpl.java index d486e86..534c4d1 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/meter/MeterTraceSupplierServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/meter/MeterTraceSupplierServiceImpl.java @@ -20,6 +20,7 @@ import com.casic.missiles.enums.system.ApprovalStatusEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.mapper.meter.MeterTraceSupplierMapper; +import com.casic.missiles.model.business.BusinessOutsourcerInfo; import com.casic.missiles.model.meter.MeterTraceSupplier; import com.casic.missiles.model.meter.MeterTraceSupplierPerson; import com.casic.missiles.model.meter.MeterTraceSupplierStandardEquipment; @@ -30,6 +31,7 @@ import com.casic.missiles.service.meter.IMeterTraceSupplierService; import com.casic.missiles.service.meter.IMeterTraceSupplierStandardEquipmentService; import com.casic.missiles.utils.ConvertUtils; +import com.casic.missiles.utils.DictCodeUtils; import com.casic.missiles.utils.NumberGeneratorUtil; import com.casic.missiles.utils.PageUtil; import org.apache.commons.lang3.StringUtils; @@ -42,6 +44,8 @@ import org.springframework.util.CollectionUtils; import javax.annotation.Resource; +import javax.validation.ConstraintViolation; +import javax.validation.Validation; import java.util.*; import java.util.stream.Collectors; @@ -142,6 +146,26 @@ @Override @Transactional + public ReturnDTO addTraceSupplierList(List list) throws Exception { + //用于存储验证后的错误信息 + Long maxNo = traceSupplierMapper.selectMaxSupplierNo(); + for (MeterTraceSupplier item : list) { + Set> validate = Validation.buildDefaultValidatorFactory().getValidator().validate(item); + if (!CollectionUtils.isEmpty(validate)) { + return ReturnUtil.failed(validate.iterator().next().getMessage()); + } + DictCodeUtils.validDictCode(item); + //生成编号 + String supplierNo = NumberGeneratorUtil.getContactNo(PrefixCodeEnum.TRACE_SUPPLIER_PREFIX, maxNo); + item.setSupplierNo(supplierNo); + maxNo++; + } + super.saveBatch(list); + return ReturnUtil.success(); + } + + @Override + @Transactional public ReturnDTO draftUpdate(MeterTraceSupplier traceSupplier) { int updateFlag = traceSupplierMapper.updateById(traceSupplier); //更新溯源供方人员信息 diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessOutsourcerInfoService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessOutsourcerInfoService.java index b3795eb..d28d141 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessOutsourcerInfoService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessOutsourcerInfoService.java @@ -26,6 +26,8 @@ List outsourcerApprovalListPage(OutsourcerApprovalListRequest request, Page page) throws Exception; + ReturnDTO addBusinessOutsourcerList(List list) throws Exception; + ReturnDTO saveOutsourcer(BusinessOutsourcerInfo outsourcerInfo); ReturnDTO draftUpdate(BusinessOutsourcerInfo outsourcerInfo); diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourcerController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourcerController.java index 700b299..33cf5d8 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourcerController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourcerController.java @@ -15,8 +15,12 @@ import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.model.business.BusinessOutsourcerInfo; +import com.casic.missiles.model.business.BusinessOutsourcerInfoImport; +import com.casic.missiles.model.equipment.EquipmentFixedAssets; +import com.casic.missiles.model.equipment.EquipmentFixedAssetsImport; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessOutsourcerInfoService; +import com.casic.missiles.utils.ConvertUtils; import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -25,8 +29,10 @@ import org.springframework.util.CollectionUtils; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import javax.validation.Valid; +import java.util.ArrayList; import java.util.List; import java.util.Objects; @@ -99,6 +105,22 @@ return ReturnUtil.success(super.packForBT(page)); } + /** + * 批量导入分包方档案 + */ + @ApiOperation("批量导入分包方档案") + @PostMapping(value = "/import", headers = "content-type=multipart/form-data") + @ResponseBody + public ReturnDTO importBatch(@RequestParam MultipartFile[] multipartFile) throws Exception { + List sourceList = new ArrayList(); + for (MultipartFile file : multipartFile) { + List list = super.importExcel(BusinessOutsourcerInfoImport.class, file, null, null); + sourceList.addAll(list); + } + List targetList = ConvertUtils.sourceToTarget(sourceList, BusinessOutsourcerInfo.class); + return outsourcerInfoService.addBusinessOutsourcerList(targetList); + } + @ApiOperation("分包方资格审批保存(保存至草稿箱)") @PostMapping("/save") @ResponseBody diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java index 94de448..1684d0f 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java @@ -183,7 +183,7 @@ @PostMapping(value = "/importMeterEquipment", headers = "content-type=multipart/form-data") @ResponseBody public ReturnDTO importMeterEquipment(@RequestParam MultipartFile[] multipartFile) throws Exception { - List sourceList = new ArrayList(); + List sourceList = new ArrayList<>(); for (MultipartFile file : multipartFile) { List list = super.importExcel(EquipmentFixedAssetsImport.class, file, null, null); sourceList.addAll(list); diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterPriceController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterPriceController.java index 8bb178f..dbb183f 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterPriceController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterPriceController.java @@ -3,15 +3,19 @@ import com.alibaba.excel.EasyExcel; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.IdDTO; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.meter.MeterPriceImport; import com.casic.missiles.dto.meter.MeterPriceRequest; +import com.casic.missiles.model.meter.MeterTraceSupplier; +import com.casic.missiles.model.meter.MeterTraceSupplierImport; import com.casic.missiles.service.listeners.CommonExcelListener; import com.casic.missiles.model.meter.MeterPrice; import com.casic.missiles.service.meter.MeterPriceService; +import com.casic.missiles.utils.ConvertUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; @@ -21,6 +25,7 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.util.ArrayList; import java.util.List; @@ -28,7 +33,7 @@ @RestController @RequestMapping("/price") @Slf4j -public class MeterPriceController { +public class MeterPriceController extends ExportController { @Resource private MeterPriceService meterPriceService; @@ -69,6 +74,19 @@ return meterPriceService.addMeterPrice(meterPrice); } + @ApiOperation("批量导入价格库") + @PostMapping(value = "/import", headers = "content-type=multipart/form-data") + @ResponseBody + public ReturnDTO importBatch(@RequestParam MultipartFile[] multipartFile) throws Exception { + List sourceList = new ArrayList(); + for (MultipartFile file : multipartFile) { + List list = super.importExcel(MeterPriceImport.class, file, null, null); + sourceList.addAll(list); + } + List targetList = ConvertUtils.sourceToTarget(sourceList, MeterPrice.class); + return meterPriceService.addMeterPriceList(targetList); + } + /** * 价格详细信息 * @return @@ -106,30 +124,4 @@ } } - /** - * - * @param multipartFile - * @return - */ - @ApiOperation("批量导入价格库") - @PostMapping(value = "/batchImportPrice", headers = "content-type=multipart/form-data") - @ResponseBody - public ReturnDTO batchImportPrice(@RequestParam MultipartFile[] multipartFile) { - try { - CommonExcelListener listener = new CommonExcelListener<>(); - final long start = System.currentTimeMillis(); - for (MultipartFile file : multipartFile) { - EasyExcel.read(file.getInputStream(), MeterPriceImport.class, listener) - .headRowNumber(1).autoTrim(true).sheet(0).doRead(); - } - log.info("耗时:秒" + (System.currentTimeMillis() - start) / 1000); - //读取到的数据 - List list = listener.getList(); - return meterPriceService.dataCheck(list); - } catch (IOException e) { - e.printStackTrace(); - return ReturnUtil.failed("数据取失败"); - } - } - } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java index 5d77839..3935aa8 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java @@ -11,22 +11,25 @@ import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.business.BusinessOutsourcerInfo; +import com.casic.missiles.model.business.BusinessOutsourcerInfoImport; import com.casic.missiles.model.meter.MeterTraceSupplier; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.model.meter.MeterTraceSupplierImport; import com.casic.missiles.service.meter.IMeterTraceSupplierService; +import com.casic.missiles.utils.ConvertUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.util.CollectionUtils; import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import javax.validation.Valid; import java.io.IOException; +import java.util.ArrayList; import java.util.List; import java.util.Objects; @@ -89,6 +92,19 @@ return traceSupplierService.saveTraceSupplier(traceSupplier); } + @ApiOperation("批量导入溯源供方") + @PostMapping(value = "/import", headers = "content-type=multipart/form-data") + @ResponseBody + public ReturnDTO importBatch(@RequestParam MultipartFile[] multipartFile) throws Exception { + List sourceList = new ArrayList(); + for (MultipartFile file : multipartFile) { + List list = super.importExcel(MeterTraceSupplierImport.class, file, null, null); + sourceList.addAll(list); + } + List targetList = ConvertUtils.sourceToTarget(sourceList, MeterTraceSupplier.class); + return traceSupplierService.addTraceSupplierList(targetList); + } + /** * 草稿箱溯源供方编辑 */ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterPriceImport.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterPriceImport.java index 8e3852f..550c5cf 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterPriceImport.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterPriceImport.java @@ -20,70 +20,33 @@ @ExcelIgnoreUnannotated public class MeterPriceImport { - @TableId("id") - @ApiModelProperty(value = "主键id", dataType = "Long") - private Long id; - - @TableField("price_no") - @ExcelProperty(value = "价格编号",order = 0) - @ApiModelProperty(value = "价格编号", dataType = "String") - private String priceNo; - - @TableField("price_name") - @ExcelProperty(value = "价格名称",order = 1) - @ApiModelProperty(value = "价格名称", dataType = "String") + @ExcelProperty(value = "价格名称") private String priceName; - @TableField("check_type") - @ExcelProperty(value = "校验类型",order = 2) - @ApiModelProperty(value = "校验类型-字典value", dataType = "String") + @ExcelProperty(value = "校验类型") private String checkType; - @TableField("price_type") - @ExcelProperty(value = "价格类别",order = 3) - @ApiModelProperty(value = "价格类别-字典value", dataType = "String") + @ExcelProperty(value = "价格类别") private String priceType; - @TableField("price_item") - @ExcelProperty(value = "项目",order = 4) - @ApiModelProperty(value = "项目-字典value", dataType = "String") + @ExcelProperty(value = "价格项目") private String priceItem; - @TableField("price_standard") - @ExcelProperty(value = "依据标准",order = 5) - @ApiModelProperty(value = "依据标准-计量规程文件名", dataType = "String") - private String priceStandard; - - @TableField("price") - @ExcelProperty(value = "标准价格(元)",order = 6) - @ApiModelProperty(value = "标准价格(元)", dataType = "Double") + @ExcelProperty(value = "标准价格(元)") private Double price; - @TableField("price_limit") - @ExcelProperty(value = "业务员折扣权限",order = 7) - @ApiModelProperty(value = "业务员折扣权限", dataType = "String") + @ExcelProperty(value = "限制范围") private String priceLimit; - @TableField("operator_discount_permission") - @ExcelProperty(value = "业务员折扣权限",order = 8) - @ApiModelProperty(value = "业务员折扣权限-字典value", dataType = "String") + @ExcelProperty(value = "业务员折扣权限") private String operatorDiscountPermission; - @TableField("director_discount_permission") - @ExcelProperty(value = "负责人折扣权限",order = 9) - @ApiModelProperty(value = "负责人折扣权限-字典value", dataType = "String") + @ExcelProperty(value = "负责人折扣权限") private String directorDiscountPermission; - @TableField("price_description") - @ExcelProperty(value = "说明",order = 10) - @ApiModelProperty(value = "说明", dataType = "String") + @ExcelProperty(value = "说明") private String priceDescription; - @TableField("remark") - @ExcelProperty(value = "备注",order = 11) - @ApiModelProperty(value = "备注", dataType = "String") + @ExcelProperty(value = "备注") private String remark; - - @ExcelProperty(value = "不符合的数据",order = 12) - private String result; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourcerInfoImport.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourcerInfoImport.java new file mode 100644 index 0000000..3a4c51f --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourcerInfoImport.java @@ -0,0 +1,130 @@ +package com.casic.missiles.model.business; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * @Description: + * @Author: wangpeng + * @Date: 2023/5/29 9:58 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +@ApiModel +@Data +public class BusinessOutsourcerInfoImport { + private static final long serialVersionUID = 1L; + + /** + * 分包方公司名字 + */ + @ExcelProperty("公司名称") + private String outsourcerName; + + /** + * 分包方公司简称 + */ + @ExcelProperty("公司简称") + private String outsourcerBriefName; + + /** + * 分包方公司规模-字典 + */ + @ExcelProperty("公司规模") + private String outsourcerSize; + + /** + * 业务规模-字典 + */ + @ExcelProperty("业务规模") + private String businessSize; + + /** + * 履约评级-字典 + */ + @ExcelProperty("履约评级") + private String grade; + + /** + * 整体评价-字典 + */ + @ExcelProperty("整体评价") + private String evaluation; + + /** + * 业务内容 + */ + @ExcelProperty("业务内容") + private String businessContent; + + /** + * 税号 + */ + @ExcelProperty("税号") + private String taxNumber; + + /** + * 银行账户名 + */ + @ExcelProperty("银行账户名") + private String bankAccount; + + /** + * 银行名称 + */ + @ExcelProperty("银行名称") + private String bankName; + + /** + * 银行账号 + */ + @ExcelProperty("银行账号") + private String bankAccountNumber; + + /** + * 邮编 + */ + @ExcelProperty("邮编") + private String postalCode; + + /** + * 负责人 + */ + @ExcelProperty("负责人") + private String director; + + /** + * 电话 + */ + @ExcelProperty("电话") + private String phone; + + /** + * 手机 + */ + @ExcelProperty("手机") + private String mobile; + + /** + * 邮箱 + */ + @ExcelProperty("邮箱") + private String email; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/meter/MeterTraceSupplier.java b/casic-metering-model/src/main/java/com/casic/missiles/model/meter/MeterTraceSupplier.java index 31b8323..1cf8405 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/meter/MeterTraceSupplier.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/meter/MeterTraceSupplier.java @@ -118,7 +118,7 @@ @TableField("director") private String director; - /**发布人 + /** * 电话 */ @ExcelProperty("联系方式") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/meter/MeterTraceSupplierImport.java b/casic-metering-model/src/main/java/com/casic/missiles/model/meter/MeterTraceSupplierImport.java new file mode 100644 index 0000000..1f72bb2 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/meter/MeterTraceSupplierImport.java @@ -0,0 +1,101 @@ +package com.casic.missiles.model.meter; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableField; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * @Description: + * @Author: wangpeng + * @Date: 2023/5/29 10:41 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +@ApiModel +@Data +public class MeterTraceSupplierImport { + /** + * 公司名称 + */ + @ExcelProperty("公司名称") + private String supplierName; + + /** + * 公司简称 + */ + @ExcelProperty("公司简称") + private String briefName; + + /** + * 业务内容 + */ + @ExcelProperty("业务内容") + private String businessContent; + + /** + * 税号 + */ + @ExcelProperty("税号") + private String taxNumber; + + /** + * 银行账户名 + */ + @ExcelProperty("银行账户名") + private String bankAccount; + + /** + * 银行名称 + */ + @ExcelProperty("银行名称") + private String bankName; + + /** + * 银行账号 + */ + @ExcelProperty("银行账号") + private String bankAccountNumber; + + /** + * 邮编 + */ + @ExcelProperty("邮编") + private String postalCode; + + /** + * 负责人 + */ + @ExcelProperty("负责人") + private String director; + + /** + * 电话 + */ + @ExcelProperty("电话") + private String phone; + + /** + * 手机 + */ + @ExcelProperty("手机") + private String mobile; + + /** + * 邮箱 + */ + @ExcelProperty("邮箱") + private String mailbox; +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOutsourcerInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOutsourcerInfoServiceImpl.java index 76a1950..1c5d2ed 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOutsourcerInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOutsourcerInfoServiceImpl.java @@ -24,6 +24,7 @@ import com.casic.missiles.exception.BusinessException; import com.casic.missiles.mapper.business.BusinessOutsourcerInfoMapper; import com.casic.missiles.model.business.BusinessOutsourcerInfo; +import com.casic.missiles.model.equipment.EquipmentFixedAssets; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.service.IBaseApprovalService; import com.casic.missiles.service.business.IBusinessOutsourcerInfoService; @@ -41,6 +42,8 @@ import org.springframework.util.CollectionUtils; import javax.annotation.Resource; +import javax.validation.ConstraintViolation; +import javax.validation.Validation; import java.util.*; import java.util.stream.Collectors; @@ -103,6 +106,26 @@ @Override @Transactional + public ReturnDTO addBusinessOutsourcerList(List list) throws Exception { + //用于存储验证后的错误信息 + Long maxNo = outsourcerInfoMapper.selectMaxOutsourcerNo(); + for (BusinessOutsourcerInfo item : list) { + Set> validate = Validation.buildDefaultValidatorFactory().getValidator().validate(item); + if (!CollectionUtils.isEmpty(validate)) { + return ReturnUtil.failed(validate.iterator().next().getMessage()); + } + DictCodeUtils.validDictCode(item); + //生成编号 + String outsourcerNo = NumberGeneratorUtil.getContactNo(PrefixCodeEnum.OUTSOURCER_PREFIX, maxNo); + item.setOutsourcerNo(outsourcerNo); + maxNo++; + } + super.saveBatch(list); + return ReturnUtil.success(); + } + + @Override + @Transactional public ReturnDTO saveOutsourcer(BusinessOutsourcerInfo outsourcerInfo) { //生成编号 Long maxNo = outsourcerInfoMapper.selectMaxOutsourcerNo(); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/EquipmentApplyAcceptanceCheckServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/EquipmentApplyAcceptanceCheckServiceImpl.java index 531720c..3ab8f2e 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/EquipmentApplyAcceptanceCheckServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/EquipmentApplyAcceptanceCheckServiceImpl.java @@ -163,8 +163,8 @@ public Object acceptanceCheckInfo(IdDTO idDTO) throws Exception { // 通过id查询出检修保养基本信息 AcceptanceCheck acceptanceCheckInfo = acceptanceCheckMapper.acceptanceCheckInfo(idDTO.getId()); - // 通过检修申请id查询出对应的检修设备列表 - List checkList = equipmentApplyEquipmentMapper.queryCheckList(acceptanceCheckInfo.getAcceptanceCheckId()); + // 通过验收单id查询出对应的检修设备列表 + List checkList = equipmentApplyEquipmentMapper.queryCheckList(String.valueOf(acceptanceCheckInfo.getId())); for (EquipmentApplyEquipment applyEquipment : checkList) { // 替换字典值 DictCodeUtils.convertDictCodeToName(applyEquipment); @@ -193,7 +193,17 @@ // 新增基本信息 if(equipmentApplyMapper.insert(equipmentApply)>0){ // 修改设备列表 - equipmentApplyEquipmentService.updateBatchById(equipmentApply.getEquipmentList()); +// equipmentApplyEquipmentService.updateBatchById(equipmentApply.getEquipmentList()); + boolean equipmentSaveBatchFlg = true; + // 新增设备信息 + if(!CollectionUtils.isEmpty(equipmentApply.getEquipmentList())){ + for (EquipmentApplyEquipment eq : equipmentApply.getEquipmentList()) { + eq.setId(null); + eq.setApplyId(String.valueOf(equipmentApply.getId())); + } + equipmentSaveBatchFlg = equipmentApplyEquipmentService.saveBatch(equipmentApply.getEquipmentList()); + } + if(!equipmentSaveBatchFlg) throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); // 新增附件列表 if(null != equipmentApply.getFileList() && equipmentApply.getFileList().size() != 0){ equipmentApply.getFileList().forEach(bean->bean.setApplyId(equipmentApply.getId())); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/meter/MeterPriceServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/meter/MeterPriceServiceImpl.java index d9c0055..1151b99 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/meter/MeterPriceServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/meter/MeterPriceServiceImpl.java @@ -22,8 +22,10 @@ import com.casic.missiles.model.meter.MeterPrice; import com.casic.missiles.model.meter.MeterPriceCategory; import com.casic.missiles.model.meter.MeterPriceItem; +import com.casic.missiles.model.meter.MeterTraceSupplier; import com.casic.missiles.modular.system.model.Dict; import com.casic.missiles.service.meter.MeterPriceService; +import com.casic.missiles.utils.DictCodeUtils; import com.casic.missiles.utils.ExportUtils; import com.casic.missiles.utils.MinioUtil; import com.casic.missiles.utils.NumberGeneratorUtil; @@ -34,8 +36,11 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; +import javax.validation.ConstraintViolation; +import javax.validation.Validation; import java.util.List; import java.util.Map; +import java.util.Set; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicLong; import java.util.stream.Collectors; @@ -97,6 +102,26 @@ } @Override + @Transactional + public ReturnDTO addMeterPriceList(List list) throws Exception { + //用于存储验证后的错误信息 + Long maxNo = meterPriceMapper.getMaxNo(); + for (MeterPrice item : list) { + Set> validate = Validation.buildDefaultValidatorFactory().getValidator().validate(item); + if (!CollectionUtils.isEmpty(validate)) { + return ReturnUtil.failed(validate.iterator().next().getMessage()); + } + DictCodeUtils.validDictCode(item); + //生成编号 + String priceNo = NumberGeneratorUtil.getContactNo(PrefixCodeEnum.PRICE_PREFIX, maxNo); + item.setPriceNo(priceNo); + maxNo++; + } + super.saveBatch(list); + return ReturnUtil.success(); + } + + @Override public MeterPrice queryPriceInfo(IdDTO idDto) { MeterPrice meterPrice = meterPriceMapper.queryPriceInfo(idDto.getId()); meterPrice.setCheckTypeName(dictService.getDictNameByCode(MeterDictEnum.CHECK_TYPE,meterPrice.getCheckType())); @@ -136,76 +161,6 @@ } } - @Override - public ReturnDTO dataCheck(List list) { - AtomicBoolean checkResult = new AtomicBoolean(true); - // 获取字典值 - List checkTypeDict = dictService.findInDictByCode(MeterDictEnum.CHECK_TYPE); - List priceTypeDict = dictService.findInDictByCode(MeterDictEnum.PRICE_TYPE); - List priceItemDict = dictService.findInDictByCode(MeterDictEnum.PRICE_ITEM); - List operatorPermissionDict = dictService.findInDictByCode(MeterDictEnum.OPERATOR_DISCOUNT_PERMISSION); - List directorPermissionDict = dictService.findInDictByCode(MeterDictEnum.DIRECTOR_DISCOUNT_PERMISSION); - Map> priceTypeDictMap = priceTypeDict.stream().collect(Collectors.groupingBy(Dict::getName)); - Map> checkTypeDictMap = checkTypeDict.stream().collect(Collectors.groupingBy(Dict::getName)); - Map> priceItemDictMap = priceItemDict.stream().collect(Collectors.groupingBy(Dict::getName)); - Map> operatorPermissionDictMap = operatorPermissionDict.stream().collect(Collectors.groupingBy(Dict::getName)); - Map> directorPermissionDictMap = directorPermissionDict.stream().collect(Collectors.groupingBy(Dict::getName)); - list.forEach(bean->{ - StringBuilder result = new StringBuilder(); - // 校验导入数据中的字典值是否存在 - if(null == priceTypeDictMap.get(bean.getPriceType())){ - result.append(BusinessExceptionEnum.PRICE_TYPE_NOT_EXISTENCE.getMessage()); - checkResult.set(false); - } - if(null == checkTypeDictMap.get(bean.getCheckType())){ - result.append(BusinessExceptionEnum.CHECK_TYPE_NOT_EXISTENCE.getMessage()); - checkResult.set(false); - } - if(null == priceItemDictMap.get(bean.getPriceItem())){ - result.append(BusinessExceptionEnum.PRICE_ITEM_NOT_EXISTENCE.getMessage()); - checkResult.set(false); - } - if(null == operatorPermissionDictMap.get(bean.getOperatorDiscountPermission())){ - result.append(BusinessExceptionEnum.OPERATOR_DISCOUNT_PERMISSION_NOT_EXISTENCE.getMessage()); - checkResult.set(false); - } - if(null == directorPermissionDictMap.get(bean.getDirectorDiscountPermission())){ - result.append(BusinessExceptionEnum.DIRECTOR_DISCOUNT_PERMISSION_NOT_EXISTENCE.getMessage()); - checkResult.set(false); - } - bean.setResult(result.toString()); - }); - if(checkResult.get()){ - // 校验通过 - AtomicLong maxNo = new AtomicLong(meterPriceMapper.getMaxNo()); - list.forEach(bean->{ - String priceNo = NumberGeneratorUtil.getContactNo(PrefixCodeEnum.PRICE_PREFIX, maxNo.get()); - maxNo.set(Long.parseLong(priceNo.substring(2))); - Long id= IdWorker.getId(); - bean.setId(id); - bean.setPriceNo(priceNo); - // 将数据的字典值替换 - bean.setPriceType(priceTypeDictMap.get(bean.getPriceType()).get(0).getCode()); - bean.setPriceItem(priceItemDictMap.get(bean.getPriceItem()).get(0).getCode()); - bean.setCheckType(checkTypeDictMap.get(bean.getCheckType()).get(0).getCode()); - bean.setOperatorDiscountPermission(operatorPermissionDictMap.get(bean.getOperatorDiscountPermission()).get(0).getCode()); - bean.setDirectorDiscountPermission(directorPermissionDictMap.get(bean.getDirectorDiscountPermission()).get(0).getCode()); - }); - // 批量新增数据 - meterPriceMapper.addMeterPriceList(list); - return ReturnUtil.success(); - }else{ - // 校验不通过 - // 将处理后的数据导出成文件 - MultipartFile[] file = ExportUtils.exportMultipartFile(list, "checkResult", MeterPriceImport.class); - // 将文件存储到minio中返回文件id,供前台下载 - List upload = minioUtil.upload(file); - return ReturnUtil.failed(upload.get(0)); - } - - } - - private List supplementList(List meterPriceList){ meterPriceList.forEach(bean->{ bean.setCheckTypeName(dictService.getDictNameByCode(MeterDictEnum.CHECK_TYPE,bean.getCheckType())); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/meter/MeterTraceSupplierServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/meter/MeterTraceSupplierServiceImpl.java index d486e86..534c4d1 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/meter/MeterTraceSupplierServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/meter/MeterTraceSupplierServiceImpl.java @@ -20,6 +20,7 @@ import com.casic.missiles.enums.system.ApprovalStatusEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.mapper.meter.MeterTraceSupplierMapper; +import com.casic.missiles.model.business.BusinessOutsourcerInfo; import com.casic.missiles.model.meter.MeterTraceSupplier; import com.casic.missiles.model.meter.MeterTraceSupplierPerson; import com.casic.missiles.model.meter.MeterTraceSupplierStandardEquipment; @@ -30,6 +31,7 @@ import com.casic.missiles.service.meter.IMeterTraceSupplierService; import com.casic.missiles.service.meter.IMeterTraceSupplierStandardEquipmentService; import com.casic.missiles.utils.ConvertUtils; +import com.casic.missiles.utils.DictCodeUtils; import com.casic.missiles.utils.NumberGeneratorUtil; import com.casic.missiles.utils.PageUtil; import org.apache.commons.lang3.StringUtils; @@ -42,6 +44,8 @@ import org.springframework.util.CollectionUtils; import javax.annotation.Resource; +import javax.validation.ConstraintViolation; +import javax.validation.Validation; import java.util.*; import java.util.stream.Collectors; @@ -142,6 +146,26 @@ @Override @Transactional + public ReturnDTO addTraceSupplierList(List list) throws Exception { + //用于存储验证后的错误信息 + Long maxNo = traceSupplierMapper.selectMaxSupplierNo(); + for (MeterTraceSupplier item : list) { + Set> validate = Validation.buildDefaultValidatorFactory().getValidator().validate(item); + if (!CollectionUtils.isEmpty(validate)) { + return ReturnUtil.failed(validate.iterator().next().getMessage()); + } + DictCodeUtils.validDictCode(item); + //生成编号 + String supplierNo = NumberGeneratorUtil.getContactNo(PrefixCodeEnum.TRACE_SUPPLIER_PREFIX, maxNo); + item.setSupplierNo(supplierNo); + maxNo++; + } + super.saveBatch(list); + return ReturnUtil.success(); + } + + @Override + @Transactional public ReturnDTO draftUpdate(MeterTraceSupplier traceSupplier) { int updateFlag = traceSupplierMapper.updateById(traceSupplier); //更新溯源供方人员信息 diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessOutsourcerInfoService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessOutsourcerInfoService.java index b3795eb..d28d141 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessOutsourcerInfoService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessOutsourcerInfoService.java @@ -26,6 +26,8 @@ List outsourcerApprovalListPage(OutsourcerApprovalListRequest request, Page page) throws Exception; + ReturnDTO addBusinessOutsourcerList(List list) throws Exception; + ReturnDTO saveOutsourcer(BusinessOutsourcerInfo outsourcerInfo); ReturnDTO draftUpdate(BusinessOutsourcerInfo outsourcerInfo); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/meter/IMeterTraceSupplierService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/meter/IMeterTraceSupplierService.java index c0617fe..6a27c67 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/meter/IMeterTraceSupplierService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/meter/IMeterTraceSupplierService.java @@ -35,6 +35,8 @@ ReturnDTO saveTraceSupplier(MeterTraceSupplier traceSupplier); + ReturnDTO addTraceSupplierList(List list) throws Exception; + ReturnDTO draftUpdate(MeterTraceSupplier traceSupplier); ReturnDTO submitTraceSupplier(BaseApprovalSubmitRequest request); diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourcerController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourcerController.java index 700b299..33cf5d8 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourcerController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourcerController.java @@ -15,8 +15,12 @@ import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.model.business.BusinessOutsourcerInfo; +import com.casic.missiles.model.business.BusinessOutsourcerInfoImport; +import com.casic.missiles.model.equipment.EquipmentFixedAssets; +import com.casic.missiles.model.equipment.EquipmentFixedAssetsImport; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessOutsourcerInfoService; +import com.casic.missiles.utils.ConvertUtils; import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -25,8 +29,10 @@ import org.springframework.util.CollectionUtils; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import javax.validation.Valid; +import java.util.ArrayList; import java.util.List; import java.util.Objects; @@ -99,6 +105,22 @@ return ReturnUtil.success(super.packForBT(page)); } + /** + * 批量导入分包方档案 + */ + @ApiOperation("批量导入分包方档案") + @PostMapping(value = "/import", headers = "content-type=multipart/form-data") + @ResponseBody + public ReturnDTO importBatch(@RequestParam MultipartFile[] multipartFile) throws Exception { + List sourceList = new ArrayList(); + for (MultipartFile file : multipartFile) { + List list = super.importExcel(BusinessOutsourcerInfoImport.class, file, null, null); + sourceList.addAll(list); + } + List targetList = ConvertUtils.sourceToTarget(sourceList, BusinessOutsourcerInfo.class); + return outsourcerInfoService.addBusinessOutsourcerList(targetList); + } + @ApiOperation("分包方资格审批保存(保存至草稿箱)") @PostMapping("/save") @ResponseBody diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java index 94de448..1684d0f 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java @@ -183,7 +183,7 @@ @PostMapping(value = "/importMeterEquipment", headers = "content-type=multipart/form-data") @ResponseBody public ReturnDTO importMeterEquipment(@RequestParam MultipartFile[] multipartFile) throws Exception { - List sourceList = new ArrayList(); + List sourceList = new ArrayList<>(); for (MultipartFile file : multipartFile) { List list = super.importExcel(EquipmentFixedAssetsImport.class, file, null, null); sourceList.addAll(list); diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterPriceController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterPriceController.java index 8bb178f..dbb183f 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterPriceController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterPriceController.java @@ -3,15 +3,19 @@ import com.alibaba.excel.EasyExcel; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.IdDTO; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.meter.MeterPriceImport; import com.casic.missiles.dto.meter.MeterPriceRequest; +import com.casic.missiles.model.meter.MeterTraceSupplier; +import com.casic.missiles.model.meter.MeterTraceSupplierImport; import com.casic.missiles.service.listeners.CommonExcelListener; import com.casic.missiles.model.meter.MeterPrice; import com.casic.missiles.service.meter.MeterPriceService; +import com.casic.missiles.utils.ConvertUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; @@ -21,6 +25,7 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.util.ArrayList; import java.util.List; @@ -28,7 +33,7 @@ @RestController @RequestMapping("/price") @Slf4j -public class MeterPriceController { +public class MeterPriceController extends ExportController { @Resource private MeterPriceService meterPriceService; @@ -69,6 +74,19 @@ return meterPriceService.addMeterPrice(meterPrice); } + @ApiOperation("批量导入价格库") + @PostMapping(value = "/import", headers = "content-type=multipart/form-data") + @ResponseBody + public ReturnDTO importBatch(@RequestParam MultipartFile[] multipartFile) throws Exception { + List sourceList = new ArrayList(); + for (MultipartFile file : multipartFile) { + List list = super.importExcel(MeterPriceImport.class, file, null, null); + sourceList.addAll(list); + } + List targetList = ConvertUtils.sourceToTarget(sourceList, MeterPrice.class); + return meterPriceService.addMeterPriceList(targetList); + } + /** * 价格详细信息 * @return @@ -106,30 +124,4 @@ } } - /** - * - * @param multipartFile - * @return - */ - @ApiOperation("批量导入价格库") - @PostMapping(value = "/batchImportPrice", headers = "content-type=multipart/form-data") - @ResponseBody - public ReturnDTO batchImportPrice(@RequestParam MultipartFile[] multipartFile) { - try { - CommonExcelListener listener = new CommonExcelListener<>(); - final long start = System.currentTimeMillis(); - for (MultipartFile file : multipartFile) { - EasyExcel.read(file.getInputStream(), MeterPriceImport.class, listener) - .headRowNumber(1).autoTrim(true).sheet(0).doRead(); - } - log.info("耗时:秒" + (System.currentTimeMillis() - start) / 1000); - //读取到的数据 - List list = listener.getList(); - return meterPriceService.dataCheck(list); - } catch (IOException e) { - e.printStackTrace(); - return ReturnUtil.failed("数据取失败"); - } - } - } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java index 5d77839..3935aa8 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterTraceSupplierController.java @@ -11,22 +11,25 @@ import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.business.BusinessOutsourcerInfo; +import com.casic.missiles.model.business.BusinessOutsourcerInfoImport; import com.casic.missiles.model.meter.MeterTraceSupplier; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.model.meter.MeterTraceSupplierImport; import com.casic.missiles.service.meter.IMeterTraceSupplierService; +import com.casic.missiles.utils.ConvertUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.util.CollectionUtils; import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import javax.validation.Valid; import java.io.IOException; +import java.util.ArrayList; import java.util.List; import java.util.Objects; @@ -89,6 +92,19 @@ return traceSupplierService.saveTraceSupplier(traceSupplier); } + @ApiOperation("批量导入溯源供方") + @PostMapping(value = "/import", headers = "content-type=multipart/form-data") + @ResponseBody + public ReturnDTO importBatch(@RequestParam MultipartFile[] multipartFile) throws Exception { + List sourceList = new ArrayList(); + for (MultipartFile file : multipartFile) { + List list = super.importExcel(MeterTraceSupplierImport.class, file, null, null); + sourceList.addAll(list); + } + List targetList = ConvertUtils.sourceToTarget(sourceList, MeterTraceSupplier.class); + return traceSupplierService.addTraceSupplierList(targetList); + } + /** * 草稿箱溯源供方编辑 */ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterPriceImport.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterPriceImport.java index 8e3852f..550c5cf 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterPriceImport.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterPriceImport.java @@ -20,70 +20,33 @@ @ExcelIgnoreUnannotated public class MeterPriceImport { - @TableId("id") - @ApiModelProperty(value = "主键id", dataType = "Long") - private Long id; - - @TableField("price_no") - @ExcelProperty(value = "价格编号",order = 0) - @ApiModelProperty(value = "价格编号", dataType = "String") - private String priceNo; - - @TableField("price_name") - @ExcelProperty(value = "价格名称",order = 1) - @ApiModelProperty(value = "价格名称", dataType = "String") + @ExcelProperty(value = "价格名称") private String priceName; - @TableField("check_type") - @ExcelProperty(value = "校验类型",order = 2) - @ApiModelProperty(value = "校验类型-字典value", dataType = "String") + @ExcelProperty(value = "校验类型") private String checkType; - @TableField("price_type") - @ExcelProperty(value = "价格类别",order = 3) - @ApiModelProperty(value = "价格类别-字典value", dataType = "String") + @ExcelProperty(value = "价格类别") private String priceType; - @TableField("price_item") - @ExcelProperty(value = "项目",order = 4) - @ApiModelProperty(value = "项目-字典value", dataType = "String") + @ExcelProperty(value = "价格项目") private String priceItem; - @TableField("price_standard") - @ExcelProperty(value = "依据标准",order = 5) - @ApiModelProperty(value = "依据标准-计量规程文件名", dataType = "String") - private String priceStandard; - - @TableField("price") - @ExcelProperty(value = "标准价格(元)",order = 6) - @ApiModelProperty(value = "标准价格(元)", dataType = "Double") + @ExcelProperty(value = "标准价格(元)") private Double price; - @TableField("price_limit") - @ExcelProperty(value = "业务员折扣权限",order = 7) - @ApiModelProperty(value = "业务员折扣权限", dataType = "String") + @ExcelProperty(value = "限制范围") private String priceLimit; - @TableField("operator_discount_permission") - @ExcelProperty(value = "业务员折扣权限",order = 8) - @ApiModelProperty(value = "业务员折扣权限-字典value", dataType = "String") + @ExcelProperty(value = "业务员折扣权限") private String operatorDiscountPermission; - @TableField("director_discount_permission") - @ExcelProperty(value = "负责人折扣权限",order = 9) - @ApiModelProperty(value = "负责人折扣权限-字典value", dataType = "String") + @ExcelProperty(value = "负责人折扣权限") private String directorDiscountPermission; - @TableField("price_description") - @ExcelProperty(value = "说明",order = 10) - @ApiModelProperty(value = "说明", dataType = "String") + @ExcelProperty(value = "说明") private String priceDescription; - @TableField("remark") - @ExcelProperty(value = "备注",order = 11) - @ApiModelProperty(value = "备注", dataType = "String") + @ExcelProperty(value = "备注") private String remark; - - @ExcelProperty(value = "不符合的数据",order = 12) - private String result; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourcerInfoImport.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourcerInfoImport.java new file mode 100644 index 0000000..3a4c51f --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourcerInfoImport.java @@ -0,0 +1,130 @@ +package com.casic.missiles.model.business; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * @Description: + * @Author: wangpeng + * @Date: 2023/5/29 9:58 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +@ApiModel +@Data +public class BusinessOutsourcerInfoImport { + private static final long serialVersionUID = 1L; + + /** + * 分包方公司名字 + */ + @ExcelProperty("公司名称") + private String outsourcerName; + + /** + * 分包方公司简称 + */ + @ExcelProperty("公司简称") + private String outsourcerBriefName; + + /** + * 分包方公司规模-字典 + */ + @ExcelProperty("公司规模") + private String outsourcerSize; + + /** + * 业务规模-字典 + */ + @ExcelProperty("业务规模") + private String businessSize; + + /** + * 履约评级-字典 + */ + @ExcelProperty("履约评级") + private String grade; + + /** + * 整体评价-字典 + */ + @ExcelProperty("整体评价") + private String evaluation; + + /** + * 业务内容 + */ + @ExcelProperty("业务内容") + private String businessContent; + + /** + * 税号 + */ + @ExcelProperty("税号") + private String taxNumber; + + /** + * 银行账户名 + */ + @ExcelProperty("银行账户名") + private String bankAccount; + + /** + * 银行名称 + */ + @ExcelProperty("银行名称") + private String bankName; + + /** + * 银行账号 + */ + @ExcelProperty("银行账号") + private String bankAccountNumber; + + /** + * 邮编 + */ + @ExcelProperty("邮编") + private String postalCode; + + /** + * 负责人 + */ + @ExcelProperty("负责人") + private String director; + + /** + * 电话 + */ + @ExcelProperty("电话") + private String phone; + + /** + * 手机 + */ + @ExcelProperty("手机") + private String mobile; + + /** + * 邮箱 + */ + @ExcelProperty("邮箱") + private String email; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/meter/MeterTraceSupplier.java b/casic-metering-model/src/main/java/com/casic/missiles/model/meter/MeterTraceSupplier.java index 31b8323..1cf8405 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/meter/MeterTraceSupplier.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/meter/MeterTraceSupplier.java @@ -118,7 +118,7 @@ @TableField("director") private String director; - /**发布人 + /** * 电话 */ @ExcelProperty("联系方式") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/meter/MeterTraceSupplierImport.java b/casic-metering-model/src/main/java/com/casic/missiles/model/meter/MeterTraceSupplierImport.java new file mode 100644 index 0000000..1f72bb2 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/meter/MeterTraceSupplierImport.java @@ -0,0 +1,101 @@ +package com.casic.missiles.model.meter; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableField; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * @Description: + * @Author: wangpeng + * @Date: 2023/5/29 10:41 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +@ApiModel +@Data +public class MeterTraceSupplierImport { + /** + * 公司名称 + */ + @ExcelProperty("公司名称") + private String supplierName; + + /** + * 公司简称 + */ + @ExcelProperty("公司简称") + private String briefName; + + /** + * 业务内容 + */ + @ExcelProperty("业务内容") + private String businessContent; + + /** + * 税号 + */ + @ExcelProperty("税号") + private String taxNumber; + + /** + * 银行账户名 + */ + @ExcelProperty("银行账户名") + private String bankAccount; + + /** + * 银行名称 + */ + @ExcelProperty("银行名称") + private String bankName; + + /** + * 银行账号 + */ + @ExcelProperty("银行账号") + private String bankAccountNumber; + + /** + * 邮编 + */ + @ExcelProperty("邮编") + private String postalCode; + + /** + * 负责人 + */ + @ExcelProperty("负责人") + private String director; + + /** + * 电话 + */ + @ExcelProperty("电话") + private String phone; + + /** + * 手机 + */ + @ExcelProperty("手机") + private String mobile; + + /** + * 邮箱 + */ + @ExcelProperty("邮箱") + private String mailbox; +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOutsourcerInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOutsourcerInfoServiceImpl.java index 76a1950..1c5d2ed 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOutsourcerInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOutsourcerInfoServiceImpl.java @@ -24,6 +24,7 @@ import com.casic.missiles.exception.BusinessException; import com.casic.missiles.mapper.business.BusinessOutsourcerInfoMapper; import com.casic.missiles.model.business.BusinessOutsourcerInfo; +import com.casic.missiles.model.equipment.EquipmentFixedAssets; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.service.IBaseApprovalService; import com.casic.missiles.service.business.IBusinessOutsourcerInfoService; @@ -41,6 +42,8 @@ import org.springframework.util.CollectionUtils; import javax.annotation.Resource; +import javax.validation.ConstraintViolation; +import javax.validation.Validation; import java.util.*; import java.util.stream.Collectors; @@ -103,6 +106,26 @@ @Override @Transactional + public ReturnDTO addBusinessOutsourcerList(List list) throws Exception { + //用于存储验证后的错误信息 + Long maxNo = outsourcerInfoMapper.selectMaxOutsourcerNo(); + for (BusinessOutsourcerInfo item : list) { + Set> validate = Validation.buildDefaultValidatorFactory().getValidator().validate(item); + if (!CollectionUtils.isEmpty(validate)) { + return ReturnUtil.failed(validate.iterator().next().getMessage()); + } + DictCodeUtils.validDictCode(item); + //生成编号 + String outsourcerNo = NumberGeneratorUtil.getContactNo(PrefixCodeEnum.OUTSOURCER_PREFIX, maxNo); + item.setOutsourcerNo(outsourcerNo); + maxNo++; + } + super.saveBatch(list); + return ReturnUtil.success(); + } + + @Override + @Transactional public ReturnDTO saveOutsourcer(BusinessOutsourcerInfo outsourcerInfo) { //生成编号 Long maxNo = outsourcerInfoMapper.selectMaxOutsourcerNo(); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/EquipmentApplyAcceptanceCheckServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/EquipmentApplyAcceptanceCheckServiceImpl.java index 531720c..3ab8f2e 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/EquipmentApplyAcceptanceCheckServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/EquipmentApplyAcceptanceCheckServiceImpl.java @@ -163,8 +163,8 @@ public Object acceptanceCheckInfo(IdDTO idDTO) throws Exception { // 通过id查询出检修保养基本信息 AcceptanceCheck acceptanceCheckInfo = acceptanceCheckMapper.acceptanceCheckInfo(idDTO.getId()); - // 通过检修申请id查询出对应的检修设备列表 - List checkList = equipmentApplyEquipmentMapper.queryCheckList(acceptanceCheckInfo.getAcceptanceCheckId()); + // 通过验收单id查询出对应的检修设备列表 + List checkList = equipmentApplyEquipmentMapper.queryCheckList(String.valueOf(acceptanceCheckInfo.getId())); for (EquipmentApplyEquipment applyEquipment : checkList) { // 替换字典值 DictCodeUtils.convertDictCodeToName(applyEquipment); @@ -193,7 +193,17 @@ // 新增基本信息 if(equipmentApplyMapper.insert(equipmentApply)>0){ // 修改设备列表 - equipmentApplyEquipmentService.updateBatchById(equipmentApply.getEquipmentList()); +// equipmentApplyEquipmentService.updateBatchById(equipmentApply.getEquipmentList()); + boolean equipmentSaveBatchFlg = true; + // 新增设备信息 + if(!CollectionUtils.isEmpty(equipmentApply.getEquipmentList())){ + for (EquipmentApplyEquipment eq : equipmentApply.getEquipmentList()) { + eq.setId(null); + eq.setApplyId(String.valueOf(equipmentApply.getId())); + } + equipmentSaveBatchFlg = equipmentApplyEquipmentService.saveBatch(equipmentApply.getEquipmentList()); + } + if(!equipmentSaveBatchFlg) throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); // 新增附件列表 if(null != equipmentApply.getFileList() && equipmentApply.getFileList().size() != 0){ equipmentApply.getFileList().forEach(bean->bean.setApplyId(equipmentApply.getId())); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/meter/MeterPriceServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/meter/MeterPriceServiceImpl.java index d9c0055..1151b99 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/meter/MeterPriceServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/meter/MeterPriceServiceImpl.java @@ -22,8 +22,10 @@ import com.casic.missiles.model.meter.MeterPrice; import com.casic.missiles.model.meter.MeterPriceCategory; import com.casic.missiles.model.meter.MeterPriceItem; +import com.casic.missiles.model.meter.MeterTraceSupplier; import com.casic.missiles.modular.system.model.Dict; import com.casic.missiles.service.meter.MeterPriceService; +import com.casic.missiles.utils.DictCodeUtils; import com.casic.missiles.utils.ExportUtils; import com.casic.missiles.utils.MinioUtil; import com.casic.missiles.utils.NumberGeneratorUtil; @@ -34,8 +36,11 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; +import javax.validation.ConstraintViolation; +import javax.validation.Validation; import java.util.List; import java.util.Map; +import java.util.Set; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicLong; import java.util.stream.Collectors; @@ -97,6 +102,26 @@ } @Override + @Transactional + public ReturnDTO addMeterPriceList(List list) throws Exception { + //用于存储验证后的错误信息 + Long maxNo = meterPriceMapper.getMaxNo(); + for (MeterPrice item : list) { + Set> validate = Validation.buildDefaultValidatorFactory().getValidator().validate(item); + if (!CollectionUtils.isEmpty(validate)) { + return ReturnUtil.failed(validate.iterator().next().getMessage()); + } + DictCodeUtils.validDictCode(item); + //生成编号 + String priceNo = NumberGeneratorUtil.getContactNo(PrefixCodeEnum.PRICE_PREFIX, maxNo); + item.setPriceNo(priceNo); + maxNo++; + } + super.saveBatch(list); + return ReturnUtil.success(); + } + + @Override public MeterPrice queryPriceInfo(IdDTO idDto) { MeterPrice meterPrice = meterPriceMapper.queryPriceInfo(idDto.getId()); meterPrice.setCheckTypeName(dictService.getDictNameByCode(MeterDictEnum.CHECK_TYPE,meterPrice.getCheckType())); @@ -136,76 +161,6 @@ } } - @Override - public ReturnDTO dataCheck(List list) { - AtomicBoolean checkResult = new AtomicBoolean(true); - // 获取字典值 - List checkTypeDict = dictService.findInDictByCode(MeterDictEnum.CHECK_TYPE); - List priceTypeDict = dictService.findInDictByCode(MeterDictEnum.PRICE_TYPE); - List priceItemDict = dictService.findInDictByCode(MeterDictEnum.PRICE_ITEM); - List operatorPermissionDict = dictService.findInDictByCode(MeterDictEnum.OPERATOR_DISCOUNT_PERMISSION); - List directorPermissionDict = dictService.findInDictByCode(MeterDictEnum.DIRECTOR_DISCOUNT_PERMISSION); - Map> priceTypeDictMap = priceTypeDict.stream().collect(Collectors.groupingBy(Dict::getName)); - Map> checkTypeDictMap = checkTypeDict.stream().collect(Collectors.groupingBy(Dict::getName)); - Map> priceItemDictMap = priceItemDict.stream().collect(Collectors.groupingBy(Dict::getName)); - Map> operatorPermissionDictMap = operatorPermissionDict.stream().collect(Collectors.groupingBy(Dict::getName)); - Map> directorPermissionDictMap = directorPermissionDict.stream().collect(Collectors.groupingBy(Dict::getName)); - list.forEach(bean->{ - StringBuilder result = new StringBuilder(); - // 校验导入数据中的字典值是否存在 - if(null == priceTypeDictMap.get(bean.getPriceType())){ - result.append(BusinessExceptionEnum.PRICE_TYPE_NOT_EXISTENCE.getMessage()); - checkResult.set(false); - } - if(null == checkTypeDictMap.get(bean.getCheckType())){ - result.append(BusinessExceptionEnum.CHECK_TYPE_NOT_EXISTENCE.getMessage()); - checkResult.set(false); - } - if(null == priceItemDictMap.get(bean.getPriceItem())){ - result.append(BusinessExceptionEnum.PRICE_ITEM_NOT_EXISTENCE.getMessage()); - checkResult.set(false); - } - if(null == operatorPermissionDictMap.get(bean.getOperatorDiscountPermission())){ - result.append(BusinessExceptionEnum.OPERATOR_DISCOUNT_PERMISSION_NOT_EXISTENCE.getMessage()); - checkResult.set(false); - } - if(null == directorPermissionDictMap.get(bean.getDirectorDiscountPermission())){ - result.append(BusinessExceptionEnum.DIRECTOR_DISCOUNT_PERMISSION_NOT_EXISTENCE.getMessage()); - checkResult.set(false); - } - bean.setResult(result.toString()); - }); - if(checkResult.get()){ - // 校验通过 - AtomicLong maxNo = new AtomicLong(meterPriceMapper.getMaxNo()); - list.forEach(bean->{ - String priceNo = NumberGeneratorUtil.getContactNo(PrefixCodeEnum.PRICE_PREFIX, maxNo.get()); - maxNo.set(Long.parseLong(priceNo.substring(2))); - Long id= IdWorker.getId(); - bean.setId(id); - bean.setPriceNo(priceNo); - // 将数据的字典值替换 - bean.setPriceType(priceTypeDictMap.get(bean.getPriceType()).get(0).getCode()); - bean.setPriceItem(priceItemDictMap.get(bean.getPriceItem()).get(0).getCode()); - bean.setCheckType(checkTypeDictMap.get(bean.getCheckType()).get(0).getCode()); - bean.setOperatorDiscountPermission(operatorPermissionDictMap.get(bean.getOperatorDiscountPermission()).get(0).getCode()); - bean.setDirectorDiscountPermission(directorPermissionDictMap.get(bean.getDirectorDiscountPermission()).get(0).getCode()); - }); - // 批量新增数据 - meterPriceMapper.addMeterPriceList(list); - return ReturnUtil.success(); - }else{ - // 校验不通过 - // 将处理后的数据导出成文件 - MultipartFile[] file = ExportUtils.exportMultipartFile(list, "checkResult", MeterPriceImport.class); - // 将文件存储到minio中返回文件id,供前台下载 - List upload = minioUtil.upload(file); - return ReturnUtil.failed(upload.get(0)); - } - - } - - private List supplementList(List meterPriceList){ meterPriceList.forEach(bean->{ bean.setCheckTypeName(dictService.getDictNameByCode(MeterDictEnum.CHECK_TYPE,bean.getCheckType())); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/meter/MeterTraceSupplierServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/meter/MeterTraceSupplierServiceImpl.java index d486e86..534c4d1 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/meter/MeterTraceSupplierServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/meter/MeterTraceSupplierServiceImpl.java @@ -20,6 +20,7 @@ import com.casic.missiles.enums.system.ApprovalStatusEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.mapper.meter.MeterTraceSupplierMapper; +import com.casic.missiles.model.business.BusinessOutsourcerInfo; import com.casic.missiles.model.meter.MeterTraceSupplier; import com.casic.missiles.model.meter.MeterTraceSupplierPerson; import com.casic.missiles.model.meter.MeterTraceSupplierStandardEquipment; @@ -30,6 +31,7 @@ import com.casic.missiles.service.meter.IMeterTraceSupplierService; import com.casic.missiles.service.meter.IMeterTraceSupplierStandardEquipmentService; import com.casic.missiles.utils.ConvertUtils; +import com.casic.missiles.utils.DictCodeUtils; import com.casic.missiles.utils.NumberGeneratorUtil; import com.casic.missiles.utils.PageUtil; import org.apache.commons.lang3.StringUtils; @@ -42,6 +44,8 @@ import org.springframework.util.CollectionUtils; import javax.annotation.Resource; +import javax.validation.ConstraintViolation; +import javax.validation.Validation; import java.util.*; import java.util.stream.Collectors; @@ -142,6 +146,26 @@ @Override @Transactional + public ReturnDTO addTraceSupplierList(List list) throws Exception { + //用于存储验证后的错误信息 + Long maxNo = traceSupplierMapper.selectMaxSupplierNo(); + for (MeterTraceSupplier item : list) { + Set> validate = Validation.buildDefaultValidatorFactory().getValidator().validate(item); + if (!CollectionUtils.isEmpty(validate)) { + return ReturnUtil.failed(validate.iterator().next().getMessage()); + } + DictCodeUtils.validDictCode(item); + //生成编号 + String supplierNo = NumberGeneratorUtil.getContactNo(PrefixCodeEnum.TRACE_SUPPLIER_PREFIX, maxNo); + item.setSupplierNo(supplierNo); + maxNo++; + } + super.saveBatch(list); + return ReturnUtil.success(); + } + + @Override + @Transactional public ReturnDTO draftUpdate(MeterTraceSupplier traceSupplier) { int updateFlag = traceSupplierMapper.updateById(traceSupplier); //更新溯源供方人员信息 diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessOutsourcerInfoService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessOutsourcerInfoService.java index b3795eb..d28d141 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessOutsourcerInfoService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessOutsourcerInfoService.java @@ -26,6 +26,8 @@ List outsourcerApprovalListPage(OutsourcerApprovalListRequest request, Page page) throws Exception; + ReturnDTO addBusinessOutsourcerList(List list) throws Exception; + ReturnDTO saveOutsourcer(BusinessOutsourcerInfo outsourcerInfo); ReturnDTO draftUpdate(BusinessOutsourcerInfo outsourcerInfo); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/meter/IMeterTraceSupplierService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/meter/IMeterTraceSupplierService.java index c0617fe..6a27c67 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/meter/IMeterTraceSupplierService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/meter/IMeterTraceSupplierService.java @@ -35,6 +35,8 @@ ReturnDTO saveTraceSupplier(MeterTraceSupplier traceSupplier); + ReturnDTO addTraceSupplierList(List list) throws Exception; + ReturnDTO draftUpdate(MeterTraceSupplier traceSupplier); ReturnDTO submitTraceSupplier(BaseApprovalSubmitRequest request); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/meter/MeterPriceService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/meter/MeterPriceService.java index 175b914..67443ef 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/meter/MeterPriceService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/meter/MeterPriceService.java @@ -19,11 +19,12 @@ ReturnDTO addMeterPrice(MeterPrice meterPrice); + ReturnDTO addMeterPriceList(List list) throws Exception; + MeterPrice queryPriceInfo(IdDTO idDto); ReturnDTO updatePriceInfo(MeterPrice meterPrice); void exportPriceList(MeterPriceRequest meterPriceRequest, HttpServletResponse response); - ReturnDTO dataCheck(List list); }