diff --git a/pom.xml b/pom.xml index 5e2c311..7a35606 100644 --- a/pom.xml +++ b/pom.xml @@ -45,9 +45,17 @@ <aliyun-sdk-oss.version>3.15.0</aliyun-sdk-oss.version> <thumbnailator.version>0.4.8</thumbnailator.version> <jjwt.version>0.10.6</jjwt.version> + <easyexcel.version>2.2.3</easyexcel.version> </properties> <dependencies> + + <dependency> + <groupId>com.alibaba</groupId> + <artifactId>easyexcel</artifactId> + <version>${easyexcel.version}</version> + </dependency> + <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> diff --git a/src/main/java/com/order/erp/AdminApplication.java b/src/main/java/com/order/erp/AdminApplication.java index 0faaa8a..34176f4 100644 --- a/src/main/java/com/order/erp/AdminApplication.java +++ b/src/main/java/com/order/erp/AdminApplication.java @@ -12,6 +12,7 @@ import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; import org.springframework.context.annotation.Bean; import org.springframework.scheduling.annotation.EnableAsync; import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.transaction.annotation.EnableTransactionManagement; import springfox.documentation.swagger2.annotations.EnableSwagger2; diff --git a/src/main/java/com/order/erp/controller/DictionaryController.java b/src/main/java/com/order/erp/controller/DictionaryController.java index f0fd57a..a9f22ae 100644 --- a/src/main/java/com/order/erp/controller/DictionaryController.java +++ b/src/main/java/com/order/erp/controller/DictionaryController.java @@ -1,13 +1,18 @@ package com.order.erp.controller; +import com.alibaba.excel.EasyExcel; import com.order.erp.common.annotation.AnonymousAccess; import com.order.erp.common.constant.ServerResult; +import com.order.erp.domain.dto.model.InnerNoModel; +import com.order.erp.domain.dto.model.ProjectNoModel; import com.order.erp.domain.vo.admin.DictionaryQueryVO; import com.order.erp.domain.vo.admin.DictionaryVO; import com.order.erp.log.Log; import com.order.erp.service.admin.DictionaryService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import org.apache.commons.codec.EncoderException; +import org.apache.commons.codec.net.URLCodec; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.PostMapping; @@ -16,6 +21,9 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.ArrayList; /** * @author xms @@ -68,4 +76,34 @@ public class DictionaryController { public ServerResult delete(@RequestBody @Validated DictionaryQueryVO queryVO) { return dictionaryService.deleteById(queryVO); } + + /** + * @param response + * @return ServerResult + * @Description: 导出项目编号模板 + * @Author wmr + * @CreateTime 2023/12/20 11:53 + */ + @ApiOperation("导出项目编号模板") + @PostMapping("/exportProjectNoModel") + public ServerResult exportProjectNoModel(HttpServletResponse response) throws IOException, EncoderException { + response.setHeader("Content-Disposition", "attachment;fileName=" + new URLCodec("UTF-8").encode("项目号导入模板.xlsx")); + EasyExcel.write(response.getOutputStream(), ProjectNoModel.class).sheet("项目号导入表").doWrite(new ArrayList<>()); + return ServerResult.success(); + } + + /** + * @Description: 导出内部编号模板 + * @param response + * @return ServerResult + * @Author wmr + * @CreateTime 2023/12/20 11:59 + */ + @ApiOperation("导出内部编号模板") + @PostMapping("/exportInnerNoModel") + public ServerResult exportInnerNoModel(HttpServletResponse response) throws IOException, EncoderException { + response.setHeader("Content-Disposition", "attachment;fileName=" + new URLCodec("UTF-8").encode("内部编号导入模板.xlsx")); + EasyExcel.write(response.getOutputStream(), InnerNoModel.class).sheet("内部编号导入表").doWrite(new ArrayList<>()); + return ServerResult.success(); + } } \ No newline at end of file diff --git a/src/main/java/com/order/erp/controller/OrderController.java b/src/main/java/com/order/erp/controller/OrderController.java index 00a3e4e..7a9e6e6 100644 --- a/src/main/java/com/order/erp/controller/OrderController.java +++ b/src/main/java/com/order/erp/controller/OrderController.java @@ -123,6 +123,5 @@ public class OrderController { public ServerResult deleteById(@RequestBody OrderBaseInfoQueryVO orderBaseInfoQueryVO) { return orderBaseInfoService.deleteById(orderBaseInfoQueryVO); } - } diff --git a/src/main/java/com/order/erp/domain/dto/model/InnerNoModel.java b/src/main/java/com/order/erp/domain/dto/model/InnerNoModel.java new file mode 100644 index 0000000..d1bea0d --- /dev/null +++ b/src/main/java/com/order/erp/domain/dto/model/InnerNoModel.java @@ -0,0 +1,21 @@ +package com.order.erp.domain.dto.model; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * Date:2023/12/20 + * Author:wmr + * Description:内部编号模板类 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +public class InnerNoModel { + @ColumnWidth(20) + @ExcelProperty(value = "内部编号",index = 0) + private String innerNo; +} diff --git a/src/main/java/com/order/erp/domain/dto/model/ProjectNoModel.java b/src/main/java/com/order/erp/domain/dto/model/ProjectNoModel.java new file mode 100644 index 0000000..275e5ae --- /dev/null +++ b/src/main/java/com/order/erp/domain/dto/model/ProjectNoModel.java @@ -0,0 +1,23 @@ +package com.order.erp.domain.dto.model; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +/** + * Date:2023/12/20 + * Author:wmr + * Description:项目号模板 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +public class ProjectNoModel implements Serializable { + @ColumnWidth(20) + @ExcelProperty(value = "项目号",index = 0) + private String projectNo; +} diff --git a/src/main/java/com/order/erp/domain/vo/order/OrderBaseInfoQueryVO.java b/src/main/java/com/order/erp/domain/vo/order/OrderBaseInfoQueryVO.java index 244ea58..057de83 100644 --- a/src/main/java/com/order/erp/domain/vo/order/OrderBaseInfoQueryVO.java +++ b/src/main/java/com/order/erp/domain/vo/order/OrderBaseInfoQueryVO.java @@ -63,7 +63,12 @@ public class OrderBaseInfoQueryVO extends BasePageVO implements Serializable { /** * 项目号 */ - private String projectNo; + private List<String> projectNo; + + /** + * 内部编号 + */ + private List<String> innerNo; /** * 生产科 diff --git a/src/main/java/com/order/erp/service/order/impl/OrderBaseInfoServiceImpl.java b/src/main/java/com/order/erp/service/order/impl/OrderBaseInfoServiceImpl.java index f39ae23..4ae8d8c 100644 --- a/src/main/java/com/order/erp/service/order/impl/OrderBaseInfoServiceImpl.java +++ b/src/main/java/com/order/erp/service/order/impl/OrderBaseInfoServiceImpl.java @@ -1201,7 +1201,8 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl<OrderBaseInfoMapper, O .le(StringUtils.isNotBlank(queryVO.getCreateEndTime()), OrderBaseInfoDO::getCreateTime, queryVO.getCreateEndTime()) .eq(StringUtils.isNotBlank(queryVO.getOrderStatus()), OrderBaseInfoDO::getOrderStatus, queryVO.getOrderStatus()) .eq(StringUtils.isNotBlank(queryVO.getCustomerCode()), OrderBaseInfoDO::getCustomerCode, queryVO.getCustomerCode()) - .eq(StringUtils.isNotBlank(queryVO.getProjectNo()), OrderBaseInfoDO::getProjectNo, queryVO.getProjectNo()) + .in(CollectionUtils.isNotEmpty(queryVO.getProjectNo()), OrderBaseInfoDO::getProjectNo, queryVO.getProjectNo()) + .in(CollectionUtils.isNotEmpty(queryVO.getInnerNo()),OrderBaseInfoDO::getInnerNo,queryVO.getInnerNo()) .eq(StringUtils.isNotBlank(queryVO.getProductionDepartment()), OrderBaseInfoDO::getProductionDepartment, queryVO.getProductionDepartment()) .eq(StringUtils.isNotBlank(queryVO.getCreateBy()), OrderBaseInfoDO::getCreateBy, queryVO.getCreateBy()) .eq(StringUtils.isNotBlank(queryVO.getBusinessPerson()), OrderBaseInfoDO::getBusinessPerson, queryVO.getBusinessPerson())