From f6dc189c59b340f84ae80f56cee9b33873953dad Mon Sep 17 00:00:00 2001 From: whb <17803890193@163.com> Date: Mon, 15 Apr 2024 14:03:57 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E8=B4=A2=E5=8A=A1=E6=8A=A5?= =?UTF-8?q?=E8=A1=A8=E5=AF=BC=E5=85=A5=E5=92=8C=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 5 + .../StuEnterPriseByInfoEntryController.java | 38 + .../entity/StuFinancialStatements.java | 136 +++ .../entity/StuFinancialStatementsExample.java | 930 ++++++++++++++++++ .../mapper/StuFinancialStatementsMapper.java | 33 + .../StuEnterPriseByInfoEntryService.java | 21 + .../StuEnterPriseByInfoEntryServiceImpl.java | 70 +- .../digital_credit/util/MyExcelListener.java | 75 ++ .../mappers/StuFinancialStatementsMapper.xml | 330 +++++++ 9 files changed, 1634 insertions(+), 4 deletions(-) create mode 100644 src/main/java/com/sztzjy/digital_credit/entity/StuFinancialStatements.java create mode 100644 src/main/java/com/sztzjy/digital_credit/entity/StuFinancialStatementsExample.java create mode 100644 src/main/java/com/sztzjy/digital_credit/mapper/StuFinancialStatementsMapper.java create mode 100644 src/main/java/com/sztzjy/digital_credit/util/MyExcelListener.java create mode 100644 src/main/resources/mappers/StuFinancialStatementsMapper.xml diff --git a/pom.xml b/pom.xml index 4160cbc..8508c92 100644 --- a/pom.xml +++ b/pom.xml @@ -184,6 +184,11 @@ 3.2.1 + + org.apache.poi + poi + 4.1.2 + diff --git a/src/main/java/com/sztzjy/digital_credit/controller/StuEnterPriseByInfoEntryController.java b/src/main/java/com/sztzjy/digital_credit/controller/StuEnterPriseByInfoEntryController.java index 46f064b..c16ea2e 100644 --- a/src/main/java/com/sztzjy/digital_credit/controller/StuEnterPriseByInfoEntryController.java +++ b/src/main/java/com/sztzjy/digital_credit/controller/StuEnterPriseByInfoEntryController.java @@ -1,5 +1,7 @@ package com.sztzjy.digital_credit.controller; +import com.github.pagehelper.PageInfo; +import com.nimbusds.jose.shaded.gson.Gson; import com.sztzjy.digital_credit.annotation.AnonymousAccess; import com.sztzjy.digital_credit.entity.StuBaseInfo; import com.sztzjy.digital_credit.entity.StuCreditRecords; @@ -9,9 +11,12 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import javax.validation.constraints.NotBlank; +import java.util.List; /** * @author 17803 @@ -88,4 +93,37 @@ public class StuEnterPriseByInfoEntryController { } + + + + @PostMapping("/importFinancialStatements") + @ApiOperation("批量导入财务报表") + @AnonymousAccess + public ResultEntity importFinancialStatements(@RequestParam(required = false) @RequestPart MultipartFile file, + @ApiParam("资产负债表/现金流量表/利润表") @RequestParam(required = false) String module) { + + + return infoEntryService.importFinancialStatements(file,module); + + } + + + @ApiOperation("查询财务报表") + @AnonymousAccess + @GetMapping("/getFinancialStatementsInfoDetails") + public ResultEntity getFinancialStatementsInfoDetails(@RequestParam(defaultValue = "1",required = true,name = "page") @NotBlank Integer page, + @RequestParam(defaultValue = "10",required = true,name = "size") @NotBlank Integer size + ,@NotBlank String module){ + return infoEntryService.getFinancialStatementsInfoDetails(page,size,module); + + } + + + + + + + + + } diff --git a/src/main/java/com/sztzjy/digital_credit/entity/StuFinancialStatements.java b/src/main/java/com/sztzjy/digital_credit/entity/StuFinancialStatements.java new file mode 100644 index 0000000..ed26edb --- /dev/null +++ b/src/main/java/com/sztzjy/digital_credit/entity/StuFinancialStatements.java @@ -0,0 +1,136 @@ +package com.sztzjy.digital_credit.entity; + +import java.util.Date; + +import com.alibaba.excel.annotation.ExcelIgnore; +import com.alibaba.excel.annotation.ExcelProperty; +import io.swagger.annotations.ApiModelProperty; +/** + * + * @author tz + * stu_financial_statements + */ +public class StuFinancialStatements { + @ExcelIgnore + @ApiModelProperty("id") + private Integer id; + @ExcelIgnore + @ApiModelProperty("归属模块") + private String module; + + @ExcelProperty("指标名称") + @ApiModelProperty("指标名称") + private String indicatorName; + @ExcelProperty("2023-12-31") + @ApiModelProperty("2023/12/31") + private String dateOne; + @ExcelProperty("2022-12-31") + @ApiModelProperty("2022/12/31") + private String dateTwo; + @ExcelProperty("2021-12-31") + @ApiModelProperty("2021/12/31") + private String dateThree; + @ExcelIgnore + @ApiModelProperty("序号") + private Integer serialNumber; + @ExcelIgnore + @ApiModelProperty("学校ID") + private String schoolId; + @ExcelIgnore + @ApiModelProperty("用户ID") + private String userId; + @ExcelIgnore + @ApiModelProperty("创建时间") + private Date createTime; + @ExcelIgnore + @ApiModelProperty("更新时间") + private Date updateTime; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getModule() { + return module; + } + + public void setModule(String module) { + this.module = module == null ? null : module.trim(); + } + + public String getIndicatorName() { + return indicatorName; + } + + public void setIndicatorName(String indicatorName) { + this.indicatorName = indicatorName == null ? null : indicatorName.trim(); + } + + public String getDateOne() { + return dateOne; + } + + public void setDateOne(String dateOne) { + this.dateOne = dateOne == null ? null : dateOne.trim(); + } + + public String getDateTwo() { + return dateTwo; + } + + public void setDateTwo(String dateTwo) { + this.dateTwo = dateTwo == null ? null : dateTwo.trim(); + } + + public String getDateThree() { + return dateThree; + } + + public void setDateThree(String dateThree) { + this.dateThree = dateThree == null ? null : dateThree.trim(); + } + + public Integer getSerialNumber() { + return serialNumber; + } + + public void setSerialNumber(Integer serialNumber) { + this.serialNumber = serialNumber; + } + + public String getSchoolId() { + return schoolId; + } + + public void setSchoolId(String schoolId) { + this.schoolId = schoolId == null ? null : schoolId.trim(); + } + + public String getUserId() { + return userId; + } + + public void setUserId(String userId) { + this.userId = userId == null ? null : userId.trim(); + } + + public Date getCreateTime() { + return createTime; + } + + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + + public Date getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(Date updateTime) { + this.updateTime = updateTime; + } +} \ No newline at end of file diff --git a/src/main/java/com/sztzjy/digital_credit/entity/StuFinancialStatementsExample.java b/src/main/java/com/sztzjy/digital_credit/entity/StuFinancialStatementsExample.java new file mode 100644 index 0000000..8ca57ed --- /dev/null +++ b/src/main/java/com/sztzjy/digital_credit/entity/StuFinancialStatementsExample.java @@ -0,0 +1,930 @@ +package com.sztzjy.digital_credit.entity; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +public class StuFinancialStatementsExample { + protected String orderByClause; + + protected boolean distinct; + + protected List oredCriteria; + + public StuFinancialStatementsExample() { + oredCriteria = new ArrayList<>(); + } + + public void setOrderByClause(String orderByClause) { + this.orderByClause = orderByClause; + } + + public String getOrderByClause() { + return orderByClause; + } + + public void setDistinct(boolean distinct) { + this.distinct = distinct; + } + + public boolean isDistinct() { + return distinct; + } + + public List getOredCriteria() { + return oredCriteria; + } + + public void or(Criteria criteria) { + oredCriteria.add(criteria); + } + + public Criteria or() { + Criteria criteria = createCriteriaInternal(); + oredCriteria.add(criteria); + return criteria; + } + + public Criteria createCriteria() { + Criteria criteria = createCriteriaInternal(); + if (oredCriteria.size() == 0) { + oredCriteria.add(criteria); + } + return criteria; + } + + protected Criteria createCriteriaInternal() { + Criteria criteria = new Criteria(); + return criteria; + } + + public void clear() { + oredCriteria.clear(); + orderByClause = null; + distinct = false; + } + + protected abstract static class GeneratedCriteria { + protected List criteria; + + protected GeneratedCriteria() { + super(); + criteria = new ArrayList<>(); + } + + public boolean isValid() { + return criteria.size() > 0; + } + + public List getAllCriteria() { + return criteria; + } + + public List getCriteria() { + return criteria; + } + + protected void addCriterion(String condition) { + if (condition == null) { + throw new RuntimeException("Value for condition cannot be null"); + } + criteria.add(new Criterion(condition)); + } + + protected void addCriterion(String condition, Object value, String property) { + if (value == null) { + throw new RuntimeException("Value for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value)); + } + + protected void addCriterion(String condition, Object value1, Object value2, String property) { + if (value1 == null || value2 == null) { + throw new RuntimeException("Between values for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value1, value2)); + } + + public Criteria andIdIsNull() { + addCriterion("id is null"); + return (Criteria) this; + } + + public Criteria andIdIsNotNull() { + addCriterion("id is not null"); + return (Criteria) this; + } + + public Criteria andIdEqualTo(Integer value) { + addCriterion("id =", value, "id"); + return (Criteria) this; + } + + public Criteria andIdNotEqualTo(Integer value) { + addCriterion("id <>", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThan(Integer value) { + addCriterion("id >", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThanOrEqualTo(Integer value) { + addCriterion("id >=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThan(Integer value) { + addCriterion("id <", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThanOrEqualTo(Integer value) { + addCriterion("id <=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdIn(List values) { + addCriterion("id in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdNotIn(List values) { + addCriterion("id not in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdBetween(Integer value1, Integer value2) { + addCriterion("id between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andIdNotBetween(Integer value1, Integer value2) { + addCriterion("id not between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andModuleIsNull() { + addCriterion("module is null"); + return (Criteria) this; + } + + public Criteria andModuleIsNotNull() { + addCriterion("module is not null"); + return (Criteria) this; + } + + public Criteria andModuleEqualTo(String value) { + addCriterion("module =", value, "module"); + return (Criteria) this; + } + + public Criteria andModuleNotEqualTo(String value) { + addCriterion("module <>", value, "module"); + return (Criteria) this; + } + + public Criteria andModuleGreaterThan(String value) { + addCriterion("module >", value, "module"); + return (Criteria) this; + } + + public Criteria andModuleGreaterThanOrEqualTo(String value) { + addCriterion("module >=", value, "module"); + return (Criteria) this; + } + + public Criteria andModuleLessThan(String value) { + addCriterion("module <", value, "module"); + return (Criteria) this; + } + + public Criteria andModuleLessThanOrEqualTo(String value) { + addCriterion("module <=", value, "module"); + return (Criteria) this; + } + + public Criteria andModuleLike(String value) { + addCriterion("module like", value, "module"); + return (Criteria) this; + } + + public Criteria andModuleNotLike(String value) { + addCriterion("module not like", value, "module"); + return (Criteria) this; + } + + public Criteria andModuleIn(List values) { + addCriterion("module in", values, "module"); + return (Criteria) this; + } + + public Criteria andModuleNotIn(List values) { + addCriterion("module not in", values, "module"); + return (Criteria) this; + } + + public Criteria andModuleBetween(String value1, String value2) { + addCriterion("module between", value1, value2, "module"); + return (Criteria) this; + } + + public Criteria andModuleNotBetween(String value1, String value2) { + addCriterion("module not between", value1, value2, "module"); + return (Criteria) this; + } + + public Criteria andIndicatorNameIsNull() { + addCriterion("indicator_name is null"); + return (Criteria) this; + } + + public Criteria andIndicatorNameIsNotNull() { + addCriterion("indicator_name is not null"); + return (Criteria) this; + } + + public Criteria andIndicatorNameEqualTo(String value) { + addCriterion("indicator_name =", value, "indicatorName"); + return (Criteria) this; + } + + public Criteria andIndicatorNameNotEqualTo(String value) { + addCriterion("indicator_name <>", value, "indicatorName"); + return (Criteria) this; + } + + public Criteria andIndicatorNameGreaterThan(String value) { + addCriterion("indicator_name >", value, "indicatorName"); + return (Criteria) this; + } + + public Criteria andIndicatorNameGreaterThanOrEqualTo(String value) { + addCriterion("indicator_name >=", value, "indicatorName"); + return (Criteria) this; + } + + public Criteria andIndicatorNameLessThan(String value) { + addCriterion("indicator_name <", value, "indicatorName"); + return (Criteria) this; + } + + public Criteria andIndicatorNameLessThanOrEqualTo(String value) { + addCriterion("indicator_name <=", value, "indicatorName"); + return (Criteria) this; + } + + public Criteria andIndicatorNameLike(String value) { + addCriterion("indicator_name like", value, "indicatorName"); + return (Criteria) this; + } + + public Criteria andIndicatorNameNotLike(String value) { + addCriterion("indicator_name not like", value, "indicatorName"); + return (Criteria) this; + } + + public Criteria andIndicatorNameIn(List values) { + addCriterion("indicator_name in", values, "indicatorName"); + return (Criteria) this; + } + + public Criteria andIndicatorNameNotIn(List values) { + addCriterion("indicator_name not in", values, "indicatorName"); + return (Criteria) this; + } + + public Criteria andIndicatorNameBetween(String value1, String value2) { + addCriterion("indicator_name between", value1, value2, "indicatorName"); + return (Criteria) this; + } + + public Criteria andIndicatorNameNotBetween(String value1, String value2) { + addCriterion("indicator_name not between", value1, value2, "indicatorName"); + return (Criteria) this; + } + + public Criteria andDateOneIsNull() { + addCriterion("date_one is null"); + return (Criteria) this; + } + + public Criteria andDateOneIsNotNull() { + addCriterion("date_one is not null"); + return (Criteria) this; + } + + public Criteria andDateOneEqualTo(String value) { + addCriterion("date_one =", value, "dateOne"); + return (Criteria) this; + } + + public Criteria andDateOneNotEqualTo(String value) { + addCriterion("date_one <>", value, "dateOne"); + return (Criteria) this; + } + + public Criteria andDateOneGreaterThan(String value) { + addCriterion("date_one >", value, "dateOne"); + return (Criteria) this; + } + + public Criteria andDateOneGreaterThanOrEqualTo(String value) { + addCriterion("date_one >=", value, "dateOne"); + return (Criteria) this; + } + + public Criteria andDateOneLessThan(String value) { + addCriterion("date_one <", value, "dateOne"); + return (Criteria) this; + } + + public Criteria andDateOneLessThanOrEqualTo(String value) { + addCriterion("date_one <=", value, "dateOne"); + return (Criteria) this; + } + + public Criteria andDateOneLike(String value) { + addCriterion("date_one like", value, "dateOne"); + return (Criteria) this; + } + + public Criteria andDateOneNotLike(String value) { + addCriterion("date_one not like", value, "dateOne"); + return (Criteria) this; + } + + public Criteria andDateOneIn(List values) { + addCriterion("date_one in", values, "dateOne"); + return (Criteria) this; + } + + public Criteria andDateOneNotIn(List values) { + addCriterion("date_one not in", values, "dateOne"); + return (Criteria) this; + } + + public Criteria andDateOneBetween(String value1, String value2) { + addCriterion("date_one between", value1, value2, "dateOne"); + return (Criteria) this; + } + + public Criteria andDateOneNotBetween(String value1, String value2) { + addCriterion("date_one not between", value1, value2, "dateOne"); + return (Criteria) this; + } + + public Criteria andDateTwoIsNull() { + addCriterion("date_two is null"); + return (Criteria) this; + } + + public Criteria andDateTwoIsNotNull() { + addCriterion("date_two is not null"); + return (Criteria) this; + } + + public Criteria andDateTwoEqualTo(String value) { + addCriterion("date_two =", value, "dateTwo"); + return (Criteria) this; + } + + public Criteria andDateTwoNotEqualTo(String value) { + addCriterion("date_two <>", value, "dateTwo"); + return (Criteria) this; + } + + public Criteria andDateTwoGreaterThan(String value) { + addCriterion("date_two >", value, "dateTwo"); + return (Criteria) this; + } + + public Criteria andDateTwoGreaterThanOrEqualTo(String value) { + addCriterion("date_two >=", value, "dateTwo"); + return (Criteria) this; + } + + public Criteria andDateTwoLessThan(String value) { + addCriterion("date_two <", value, "dateTwo"); + return (Criteria) this; + } + + public Criteria andDateTwoLessThanOrEqualTo(String value) { + addCriterion("date_two <=", value, "dateTwo"); + return (Criteria) this; + } + + public Criteria andDateTwoLike(String value) { + addCriterion("date_two like", value, "dateTwo"); + return (Criteria) this; + } + + public Criteria andDateTwoNotLike(String value) { + addCriterion("date_two not like", value, "dateTwo"); + return (Criteria) this; + } + + public Criteria andDateTwoIn(List values) { + addCriterion("date_two in", values, "dateTwo"); + return (Criteria) this; + } + + public Criteria andDateTwoNotIn(List values) { + addCriterion("date_two not in", values, "dateTwo"); + return (Criteria) this; + } + + public Criteria andDateTwoBetween(String value1, String value2) { + addCriterion("date_two between", value1, value2, "dateTwo"); + return (Criteria) this; + } + + public Criteria andDateTwoNotBetween(String value1, String value2) { + addCriterion("date_two not between", value1, value2, "dateTwo"); + return (Criteria) this; + } + + public Criteria andDateThreeIsNull() { + addCriterion("date_three is null"); + return (Criteria) this; + } + + public Criteria andDateThreeIsNotNull() { + addCriterion("date_three is not null"); + return (Criteria) this; + } + + public Criteria andDateThreeEqualTo(String value) { + addCriterion("date_three =", value, "dateThree"); + return (Criteria) this; + } + + public Criteria andDateThreeNotEqualTo(String value) { + addCriterion("date_three <>", value, "dateThree"); + return (Criteria) this; + } + + public Criteria andDateThreeGreaterThan(String value) { + addCriterion("date_three >", value, "dateThree"); + return (Criteria) this; + } + + public Criteria andDateThreeGreaterThanOrEqualTo(String value) { + addCriterion("date_three >=", value, "dateThree"); + return (Criteria) this; + } + + public Criteria andDateThreeLessThan(String value) { + addCriterion("date_three <", value, "dateThree"); + return (Criteria) this; + } + + public Criteria andDateThreeLessThanOrEqualTo(String value) { + addCriterion("date_three <=", value, "dateThree"); + return (Criteria) this; + } + + public Criteria andDateThreeLike(String value) { + addCriterion("date_three like", value, "dateThree"); + return (Criteria) this; + } + + public Criteria andDateThreeNotLike(String value) { + addCriterion("date_three not like", value, "dateThree"); + return (Criteria) this; + } + + public Criteria andDateThreeIn(List values) { + addCriterion("date_three in", values, "dateThree"); + return (Criteria) this; + } + + public Criteria andDateThreeNotIn(List values) { + addCriterion("date_three not in", values, "dateThree"); + return (Criteria) this; + } + + public Criteria andDateThreeBetween(String value1, String value2) { + addCriterion("date_three between", value1, value2, "dateThree"); + return (Criteria) this; + } + + public Criteria andDateThreeNotBetween(String value1, String value2) { + addCriterion("date_three not between", value1, value2, "dateThree"); + return (Criteria) this; + } + + public Criteria andSerialNumberIsNull() { + addCriterion("serial_number is null"); + return (Criteria) this; + } + + public Criteria andSerialNumberIsNotNull() { + addCriterion("serial_number is not null"); + return (Criteria) this; + } + + public Criteria andSerialNumberEqualTo(Integer value) { + addCriterion("serial_number =", value, "serialNumber"); + return (Criteria) this; + } + + public Criteria andSerialNumberNotEqualTo(Integer value) { + addCriterion("serial_number <>", value, "serialNumber"); + return (Criteria) this; + } + + public Criteria andSerialNumberGreaterThan(Integer value) { + addCriterion("serial_number >", value, "serialNumber"); + return (Criteria) this; + } + + public Criteria andSerialNumberGreaterThanOrEqualTo(Integer value) { + addCriterion("serial_number >=", value, "serialNumber"); + return (Criteria) this; + } + + public Criteria andSerialNumberLessThan(Integer value) { + addCriterion("serial_number <", value, "serialNumber"); + return (Criteria) this; + } + + public Criteria andSerialNumberLessThanOrEqualTo(Integer value) { + addCriterion("serial_number <=", value, "serialNumber"); + return (Criteria) this; + } + + public Criteria andSerialNumberIn(List values) { + addCriterion("serial_number in", values, "serialNumber"); + return (Criteria) this; + } + + public Criteria andSerialNumberNotIn(List values) { + addCriterion("serial_number not in", values, "serialNumber"); + return (Criteria) this; + } + + public Criteria andSerialNumberBetween(Integer value1, Integer value2) { + addCriterion("serial_number between", value1, value2, "serialNumber"); + return (Criteria) this; + } + + public Criteria andSerialNumberNotBetween(Integer value1, Integer value2) { + addCriterion("serial_number not between", value1, value2, "serialNumber"); + return (Criteria) this; + } + + public Criteria andSchoolIdIsNull() { + addCriterion("school_id is null"); + return (Criteria) this; + } + + public Criteria andSchoolIdIsNotNull() { + addCriterion("school_id is not null"); + return (Criteria) this; + } + + public Criteria andSchoolIdEqualTo(String value) { + addCriterion("school_id =", value, "schoolId"); + return (Criteria) this; + } + + public Criteria andSchoolIdNotEqualTo(String value) { + addCriterion("school_id <>", value, "schoolId"); + return (Criteria) this; + } + + public Criteria andSchoolIdGreaterThan(String value) { + addCriterion("school_id >", value, "schoolId"); + return (Criteria) this; + } + + public Criteria andSchoolIdGreaterThanOrEqualTo(String value) { + addCriterion("school_id >=", value, "schoolId"); + return (Criteria) this; + } + + public Criteria andSchoolIdLessThan(String value) { + addCriterion("school_id <", value, "schoolId"); + return (Criteria) this; + } + + public Criteria andSchoolIdLessThanOrEqualTo(String value) { + addCriterion("school_id <=", value, "schoolId"); + return (Criteria) this; + } + + public Criteria andSchoolIdLike(String value) { + addCriterion("school_id like", value, "schoolId"); + return (Criteria) this; + } + + public Criteria andSchoolIdNotLike(String value) { + addCriterion("school_id not like", value, "schoolId"); + return (Criteria) this; + } + + public Criteria andSchoolIdIn(List values) { + addCriterion("school_id in", values, "schoolId"); + return (Criteria) this; + } + + public Criteria andSchoolIdNotIn(List values) { + addCriterion("school_id not in", values, "schoolId"); + return (Criteria) this; + } + + public Criteria andSchoolIdBetween(String value1, String value2) { + addCriterion("school_id between", value1, value2, "schoolId"); + return (Criteria) this; + } + + public Criteria andSchoolIdNotBetween(String value1, String value2) { + addCriterion("school_id not between", value1, value2, "schoolId"); + return (Criteria) this; + } + + public Criteria andUserIdIsNull() { + addCriterion("user_id is null"); + return (Criteria) this; + } + + public Criteria andUserIdIsNotNull() { + addCriterion("user_id is not null"); + return (Criteria) this; + } + + public Criteria andUserIdEqualTo(String value) { + addCriterion("user_id =", value, "userId"); + return (Criteria) this; + } + + public Criteria andUserIdNotEqualTo(String value) { + addCriterion("user_id <>", value, "userId"); + return (Criteria) this; + } + + public Criteria andUserIdGreaterThan(String value) { + addCriterion("user_id >", value, "userId"); + return (Criteria) this; + } + + public Criteria andUserIdGreaterThanOrEqualTo(String value) { + addCriterion("user_id >=", value, "userId"); + return (Criteria) this; + } + + public Criteria andUserIdLessThan(String value) { + addCriterion("user_id <", value, "userId"); + return (Criteria) this; + } + + public Criteria andUserIdLessThanOrEqualTo(String value) { + addCriterion("user_id <=", value, "userId"); + return (Criteria) this; + } + + public Criteria andUserIdLike(String value) { + addCriterion("user_id like", value, "userId"); + return (Criteria) this; + } + + public Criteria andUserIdNotLike(String value) { + addCriterion("user_id not like", value, "userId"); + return (Criteria) this; + } + + public Criteria andUserIdIn(List values) { + addCriterion("user_id in", values, "userId"); + return (Criteria) this; + } + + public Criteria andUserIdNotIn(List values) { + addCriterion("user_id not in", values, "userId"); + return (Criteria) this; + } + + public Criteria andUserIdBetween(String value1, String value2) { + addCriterion("user_id between", value1, value2, "userId"); + return (Criteria) this; + } + + public Criteria andUserIdNotBetween(String value1, String value2) { + addCriterion("user_id not between", value1, value2, "userId"); + return (Criteria) this; + } + + public Criteria andCreateTimeIsNull() { + addCriterion("create_time is null"); + return (Criteria) this; + } + + public Criteria andCreateTimeIsNotNull() { + addCriterion("create_time is not null"); + return (Criteria) this; + } + + public Criteria andCreateTimeEqualTo(Date value) { + addCriterion("create_time =", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeNotEqualTo(Date value) { + addCriterion("create_time <>", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeGreaterThan(Date value) { + addCriterion("create_time >", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) { + addCriterion("create_time >=", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeLessThan(Date value) { + addCriterion("create_time <", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeLessThanOrEqualTo(Date value) { + addCriterion("create_time <=", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeIn(List values) { + addCriterion("create_time in", values, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeNotIn(List values) { + addCriterion("create_time not in", values, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeBetween(Date value1, Date value2) { + addCriterion("create_time between", value1, value2, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeNotBetween(Date value1, Date value2) { + addCriterion("create_time not between", value1, value2, "createTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeIsNull() { + addCriterion("update_time is null"); + return (Criteria) this; + } + + public Criteria andUpdateTimeIsNotNull() { + addCriterion("update_time is not null"); + return (Criteria) this; + } + + public Criteria andUpdateTimeEqualTo(Date value) { + addCriterion("update_time =", value, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeNotEqualTo(Date value) { + addCriterion("update_time <>", value, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeGreaterThan(Date value) { + addCriterion("update_time >", value, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeGreaterThanOrEqualTo(Date value) { + addCriterion("update_time >=", value, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeLessThan(Date value) { + addCriterion("update_time <", value, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeLessThanOrEqualTo(Date value) { + addCriterion("update_time <=", value, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeIn(List values) { + addCriterion("update_time in", values, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeNotIn(List values) { + addCriterion("update_time not in", values, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeBetween(Date value1, Date value2) { + addCriterion("update_time between", value1, value2, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeNotBetween(Date value1, Date value2) { + addCriterion("update_time not between", value1, value2, "updateTime"); + return (Criteria) this; + } + } + + public static class Criteria extends GeneratedCriteria { + protected Criteria() { + super(); + } + } + + public static class Criterion { + private String condition; + + private Object value; + + private Object secondValue; + + private boolean noValue; + + private boolean singleValue; + + private boolean betweenValue; + + private boolean listValue; + + private String typeHandler; + + public String getCondition() { + return condition; + } + + public Object getValue() { + return value; + } + + public Object getSecondValue() { + return secondValue; + } + + public boolean isNoValue() { + return noValue; + } + + public boolean isSingleValue() { + return singleValue; + } + + public boolean isBetweenValue() { + return betweenValue; + } + + public boolean isListValue() { + return listValue; + } + + public String getTypeHandler() { + return typeHandler; + } + + protected Criterion(String condition) { + super(); + this.condition = condition; + this.typeHandler = null; + this.noValue = true; + } + + protected Criterion(String condition, Object value, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.typeHandler = typeHandler; + if (value instanceof List) { + this.listValue = true; + } else { + this.singleValue = true; + } + } + + protected Criterion(String condition, Object value) { + this(condition, value, null); + } + + protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.secondValue = secondValue; + this.typeHandler = typeHandler; + this.betweenValue = true; + } + + protected Criterion(String condition, Object value, Object secondValue) { + this(condition, value, secondValue, null); + } + } +} \ No newline at end of file diff --git a/src/main/java/com/sztzjy/digital_credit/mapper/StuFinancialStatementsMapper.java b/src/main/java/com/sztzjy/digital_credit/mapper/StuFinancialStatementsMapper.java new file mode 100644 index 0000000..da04e9b --- /dev/null +++ b/src/main/java/com/sztzjy/digital_credit/mapper/StuFinancialStatementsMapper.java @@ -0,0 +1,33 @@ +package com.sztzjy.digital_credit.mapper; + +import com.sztzjy.digital_credit.entity.StuFinancialStatements; +import com.sztzjy.digital_credit.entity.StuFinancialStatementsExample; +import java.util.List; +import org.apache.ibatis.annotations.Param; + +public interface StuFinancialStatementsMapper { + long countByExample(StuFinancialStatementsExample example); + + int deleteByExample(StuFinancialStatementsExample example); + + int deleteByPrimaryKey(Integer id); + + int insert(StuFinancialStatements record); + + int insertSelective(StuFinancialStatements record); + + List selectByExample(StuFinancialStatementsExample example); + + StuFinancialStatements selectByPrimaryKey(Integer id); + + int updateByExampleSelective(@Param("record") StuFinancialStatements record, @Param("example") StuFinancialStatementsExample example); + + int updateByExample(@Param("record") StuFinancialStatements record, @Param("example") StuFinancialStatementsExample example); + + int updateByPrimaryKeySelective(StuFinancialStatements record); + + int updateByPrimaryKey(StuFinancialStatements record); + + //批量插入 + void batchInsertExcel(List cachedDataList); +} \ No newline at end of file diff --git a/src/main/java/com/sztzjy/digital_credit/service/StuEnterPriseByInfoEntryService.java b/src/main/java/com/sztzjy/digital_credit/service/StuEnterPriseByInfoEntryService.java index 7c14db4..56efb83 100644 --- a/src/main/java/com/sztzjy/digital_credit/service/StuEnterPriseByInfoEntryService.java +++ b/src/main/java/com/sztzjy/digital_credit/service/StuEnterPriseByInfoEntryService.java @@ -1,8 +1,10 @@ package com.sztzjy.digital_credit.service; +import com.github.pagehelper.PageInfo; import com.sztzjy.digital_credit.entity.StuBaseInfo; import com.sztzjy.digital_credit.entity.StuCreditRecords; import com.sztzjy.digital_credit.util.ResultEntity; +import org.springframework.web.multipart.MultipartFile; /** * @author 17803 @@ -59,4 +61,23 @@ public interface StuEnterPriseByInfoEntryService { */ ResultEntity subCreditRecordsBaseInfo(StuCreditRecords creditRecords); + + /** + * 批量导入财务报表 + * @param file + * @param module + * @return + */ + + ResultEntity importFinancialStatements(MultipartFile file, String module); + + + + /** + * 查询财务报表 + * @param module + * @return + */ + + ResultEntity getFinancialStatementsInfoDetails(Integer page, Integer size, String module); } diff --git a/src/main/java/com/sztzjy/digital_credit/service/impl/StuEnterPriseByInfoEntryServiceImpl.java b/src/main/java/com/sztzjy/digital_credit/service/impl/StuEnterPriseByInfoEntryServiceImpl.java index 466d867..46165a4 100644 --- a/src/main/java/com/sztzjy/digital_credit/service/impl/StuEnterPriseByInfoEntryServiceImpl.java +++ b/src/main/java/com/sztzjy/digital_credit/service/impl/StuEnterPriseByInfoEntryServiceImpl.java @@ -6,22 +6,30 @@ package com.sztzjy.digital_credit.service.impl; import cn.hutool.core.convert.Convert; import cn.hutool.core.util.IdUtil; +import com.alibaba.excel.EasyExcel; +import com.alibaba.excel.ExcelWriter; +import com.alibaba.excel.util.ListUtils; +import com.alibaba.excel.write.metadata.WriteSheet; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; import com.sztzjy.digital_credit.config.Constant; -import com.sztzjy.digital_credit.entity.StuBaseInfo; -import com.sztzjy.digital_credit.entity.StuBaseInfoExample; -import com.sztzjy.digital_credit.entity.StuCreditRecords; -import com.sztzjy.digital_credit.entity.StuCreditRecordsExample; +import com.sztzjy.digital_credit.entity.*; import com.sztzjy.digital_credit.mapper.StuBaseInfoMapper; import com.sztzjy.digital_credit.mapper.StuCreditRecordsMapper; +import com.sztzjy.digital_credit.mapper.StuFinancialStatementsMapper; import com.sztzjy.digital_credit.service.StuEnterPriseByInfoEntryService; import com.sztzjy.digital_credit.util.ConvertUtil; +import com.sztzjy.digital_credit.util.MyExcelListener; import com.sztzjy.digital_credit.util.ResultEntity; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.annotation.Id; import org.springframework.http.HttpStatus; import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; +import java.io.IOException; +import java.io.InputStream; import java.time.LocalDateTime; import java.util.Date; import java.util.List; @@ -36,6 +44,9 @@ public class StuEnterPriseByInfoEntryServiceImpl implements StuEnterPriseByInfoE @Autowired private StuCreditRecordsMapper creditRecordsMapper; + @Autowired + private StuFinancialStatementsMapper financialStatementsMapper; + /** * 基本信息查询 @@ -285,6 +296,57 @@ public class StuEnterPriseByInfoEntryServiceImpl implements StuEnterPriseByInfoE } + /** + * 批量导入财务报表 + * @param file + * @param module + * @return + */ + + @Override + public ResultEntity importFinancialStatements(MultipartFile file, String module) { + + + try { + //获取文件的输入流 + EasyExcel.read(file.getInputStream(), StuFinancialStatements.class, new MyExcelListener(financialStatementsMapper,module)).sheet().doRead(); + + return new ResultEntity(HttpStatus.OK,"导入成功!"); + + }catch (IOException exception){ + return new ResultEntity(HttpStatus.BAD_REQUEST,"导入失败!"); + } + } + + /** + * 查询财务报表 + * @param module + * @return + */ + + @Override + public ResultEntity getFinancialStatementsInfoDetails(Integer page, Integer size, String module) { + + PageHelper.startPage(page,size); + + + StuFinancialStatementsExample financialStatementsExample = new StuFinancialStatementsExample(); + + financialStatementsExample.setOrderByClause("serial_number asc"); + financialStatementsExample.createCriteria().andModuleEqualTo(module); + + + List financialStatementsList = financialStatementsMapper.selectByExample(financialStatementsExample); + + if (!financialStatementsList.isEmpty()){ + PageInfo stuFinancialStatementsPageInfo = new PageInfo<>(financialStatementsList); + return new ResultEntity(HttpStatus.OK,stuFinancialStatementsPageInfo); + }else { + return new ResultEntity(HttpStatus.OK); + } + + } + //信贷记录判断结果 private StuCreditRecords resultCheckByCreditRecords(StuCreditRecords creditRecords) { diff --git a/src/main/java/com/sztzjy/digital_credit/util/MyExcelListener.java b/src/main/java/com/sztzjy/digital_credit/util/MyExcelListener.java new file mode 100644 index 0000000..419b026 --- /dev/null +++ b/src/main/java/com/sztzjy/digital_credit/util/MyExcelListener.java @@ -0,0 +1,75 @@ +package com.sztzjy.digital_credit.util; + +import com.alibaba.excel.context.AnalysisContext; +import com.alibaba.excel.read.listener.ReadListener; +import com.alibaba.excel.util.ListUtils; +import com.sztzjy.digital_credit.entity.StuFinancialStatements; +import com.sztzjy.digital_credit.mapper.StuFinancialStatementsMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.Date; +import java.util.List; + +public class MyExcelListener implements ReadListener { + + + private StuFinancialStatementsMapper financialStatementsMapper; + + private String module; + + + + + + /** + * 每隔5条存储数据库,实际使用中可以100条,然后清理list ,方便内存回收 + */ + private static final int BATCH_COUNT = 100; + /** + * 缓存的数据 + */ + private List cachedDataList = ListUtils.newArrayListWithExpectedSize(BATCH_COUNT); + + + public MyExcelListener(StuFinancialStatementsMapper financialStatementsMapper, String module) { + this.financialStatementsMapper = financialStatementsMapper; + this.module = module; + } + + int i = 1; + @Override + public void invoke(StuFinancialStatements person, AnalysisContext analysisContext) { + //System.out.println(person); + person.setModule(module); + person.setCreateTime(new Date()); + + person.setSerialNumber(i++); + cachedDataList.add(person); + + + + // 达到BATCH_COUNT了,需要去存储一次数据库,防止数据几万条数据在内存,容易OOM + if (cachedDataList.size() >= BATCH_COUNT) { + // 写入数据库 + // saveData(); + // 存储完成清理 list + cachedDataList = ListUtils.newArrayListWithExpectedSize(BATCH_COUNT); + } + } + + @Override + public void doAfterAllAnalysed(AnalysisContext analysisContext) { + // 这里也要保存数据,确保最后遗留的数据也存储到数据库 + // saveData(); + financialStatementsMapper.batchInsertExcel(cachedDataList); + System.out.println("解析完成"); + } + + // 异常处理 + @Override + public void onException(Exception exception, AnalysisContext context) throws Exception { + ReadListener.super.onException(exception, context); + } + +} \ No newline at end of file diff --git a/src/main/resources/mappers/StuFinancialStatementsMapper.xml b/src/main/resources/mappers/StuFinancialStatementsMapper.xml new file mode 100644 index 0000000..a82b4c8 --- /dev/null +++ b/src/main/resources/mappers/StuFinancialStatementsMapper.xml @@ -0,0 +1,330 @@ + + + + + + + + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + id, module, indicator_name, date_one, date_two, date_three, serial_number, school_id, + user_id, create_time, update_time + + + + + delete from stu_financial_statements + where id = #{id,jdbcType=INTEGER} + + + delete from stu_financial_statements + + + + + + insert into stu_financial_statements (id, module, indicator_name, + date_one, date_two, date_three, + serial_number, school_id, user_id, + create_time, update_time) + values (#{id,jdbcType=INTEGER}, #{module,jdbcType=VARCHAR}, #{indicatorName,jdbcType=VARCHAR}, + #{dateOne,jdbcType=VARCHAR}, #{dateTwo,jdbcType=VARCHAR}, #{dateThree,jdbcType=VARCHAR}, + #{serialNumber,jdbcType=INTEGER}, #{schoolId,jdbcType=VARCHAR}, #{userId,jdbcType=VARCHAR}, + #{createTime,jdbcType=TIMESTAMP}, #{updateTime,jdbcType=TIMESTAMP}) + + + insert into stu_financial_statements + + + id, + + + module, + + + indicator_name, + + + date_one, + + + date_two, + + + date_three, + + + serial_number, + + + school_id, + + + user_id, + + + create_time, + + + update_time, + + + + + #{id,jdbcType=INTEGER}, + + + #{module,jdbcType=VARCHAR}, + + + #{indicatorName,jdbcType=VARCHAR}, + + + #{dateOne,jdbcType=VARCHAR}, + + + #{dateTwo,jdbcType=VARCHAR}, + + + #{dateThree,jdbcType=VARCHAR}, + + + #{serialNumber,jdbcType=INTEGER}, + + + #{schoolId,jdbcType=VARCHAR}, + + + #{userId,jdbcType=VARCHAR}, + + + #{createTime,jdbcType=TIMESTAMP}, + + + #{updateTime,jdbcType=TIMESTAMP}, + + + + + + + update stu_financial_statements + + + id = #{record.id,jdbcType=INTEGER}, + + + module = #{record.module,jdbcType=VARCHAR}, + + + indicator_name = #{record.indicatorName,jdbcType=VARCHAR}, + + + date_one = #{record.dateOne,jdbcType=VARCHAR}, + + + date_two = #{record.dateTwo,jdbcType=VARCHAR}, + + + date_three = #{record.dateThree,jdbcType=VARCHAR}, + + + serial_number = #{record.serialNumber,jdbcType=INTEGER}, + + + school_id = #{record.schoolId,jdbcType=VARCHAR}, + + + user_id = #{record.userId,jdbcType=VARCHAR}, + + + create_time = #{record.createTime,jdbcType=TIMESTAMP}, + + + update_time = #{record.updateTime,jdbcType=TIMESTAMP}, + + + + + + + + update stu_financial_statements + set id = #{record.id,jdbcType=INTEGER}, + module = #{record.module,jdbcType=VARCHAR}, + indicator_name = #{record.indicatorName,jdbcType=VARCHAR}, + date_one = #{record.dateOne,jdbcType=VARCHAR}, + date_two = #{record.dateTwo,jdbcType=VARCHAR}, + date_three = #{record.dateThree,jdbcType=VARCHAR}, + serial_number = #{record.serialNumber,jdbcType=INTEGER}, + school_id = #{record.schoolId,jdbcType=VARCHAR}, + user_id = #{record.userId,jdbcType=VARCHAR}, + create_time = #{record.createTime,jdbcType=TIMESTAMP}, + update_time = #{record.updateTime,jdbcType=TIMESTAMP} + + + + + + update stu_financial_statements + + + module = #{module,jdbcType=VARCHAR}, + + + indicator_name = #{indicatorName,jdbcType=VARCHAR}, + + + date_one = #{dateOne,jdbcType=VARCHAR}, + + + date_two = #{dateTwo,jdbcType=VARCHAR}, + + + date_three = #{dateThree,jdbcType=VARCHAR}, + + + serial_number = #{serialNumber,jdbcType=INTEGER}, + + + school_id = #{schoolId,jdbcType=VARCHAR}, + + + user_id = #{userId,jdbcType=VARCHAR}, + + + create_time = #{createTime,jdbcType=TIMESTAMP}, + + + update_time = #{updateTime,jdbcType=TIMESTAMP}, + + + where id = #{id,jdbcType=INTEGER} + + + update stu_financial_statements + set module = #{module,jdbcType=VARCHAR}, + indicator_name = #{indicatorName,jdbcType=VARCHAR}, + date_one = #{dateOne,jdbcType=VARCHAR}, + date_two = #{dateTwo,jdbcType=VARCHAR}, + date_three = #{dateThree,jdbcType=VARCHAR}, + serial_number = #{serialNumber,jdbcType=INTEGER}, + school_id = #{schoolId,jdbcType=VARCHAR}, + user_id = #{userId,jdbcType=VARCHAR}, + create_time = #{createTime,jdbcType=TIMESTAMP}, + update_time = #{updateTime,jdbcType=TIMESTAMP} + where id = #{id,jdbcType=INTEGER} + + + + + + + + + insert into stu_financial_statements (id, module, indicator_name, date_one, date_two, date_three, serial_number, school_id, + user_id, create_time, update_time) + values + + (#{item.id,jdbcType=INTEGER}, #{item.module,jdbcType=VARCHAR}, #{item.indicatorName,jdbcType=VARCHAR}, + #{item.dateOne,jdbcType=VARCHAR}, #{item.dateTwo,jdbcType=VARCHAR}, #{item.dateThree,jdbcType=VARCHAR}, + #{item.serialNumber,jdbcType=INTEGER}, #{item.schoolId,jdbcType=VARCHAR}, #{item.userId,jdbcType=VARCHAR}, + #{item.createTime,jdbcType=TIMESTAMP}, #{item.updateTime,jdbcType=TIMESTAMP}) + + + + + + + + + \ No newline at end of file