فهرست منبع

个人画像一卡通,结余

大数据与最优化研究所 1 سال پیش
والد
کامیت
1e84fc4115

+ 3 - 11
src/main/java/com/xjrsoft/module/oa/controller/OfficialDocumentReceivedController.java

@@ -1,26 +1,19 @@
 package com.xjrsoft.module.oa.controller;
 
+import cn.dev33.satoken.annotation.SaCheckPermission;
 import cn.hutool.core.bean.BeanUtil;
-import cn.hutool.core.util.ObjectUtil;
-import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import com.xjrsoft.common.constant.GlobalConstant;
-import com.baomidou.mybatisplus.core.toolkit.StringPool;
+import com.xjrsoft.common.model.result.RT;
 import com.xjrsoft.common.page.ConventPage;
 import com.xjrsoft.common.page.PageOutput;
-import com.xjrsoft.common.model.result.RT;
 import com.xjrsoft.common.utils.VoToColumnUtil;
 import com.xjrsoft.module.oa.dto.AddOfficialDocumentReceivedDto;
-import com.xjrsoft.module.oa.dto.UpdateOfficialDocumentReceivedDto;
-import cn.dev33.satoken.annotation.SaCheckPermission;
-
 import com.xjrsoft.module.oa.dto.OfficialDocumentReceivedPageDto;
+import com.xjrsoft.module.oa.dto.UpdateOfficialDocumentReceivedDto;
 import com.xjrsoft.module.oa.entity.OfficialDocumentReceived;
 import com.xjrsoft.module.oa.service.IOfficialDocumentReceivedService;
 import com.xjrsoft.module.oa.vo.OfficialDocumentReceivedPageVo;
-
 import com.xjrsoft.module.oa.vo.OfficialDocumentReceivedVo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -28,7 +21,6 @@ import lombok.AllArgsConstructor;
 import org.springframework.web.bind.annotation.*;
 
 import javax.validation.Valid;
-import javax.validation.constraints.NotNull;
 import java.util.List;
 
 /**

+ 15 - 11
src/main/java/com/xjrsoft/module/student/controller/ConsumptionController.java

@@ -11,16 +11,11 @@ import com.xjrsoft.common.page.PageOutput;
 import com.xjrsoft.common.utils.TreeUtil;
 import com.xjrsoft.module.base.service.IBaseClassService;
 import com.xjrsoft.module.base.service.IBaseGradeService;
-import com.xjrsoft.module.student.dto.BaseStudentInfoPageDto;
-import com.xjrsoft.module.student.dto.PbVXssfdetailExcelDto;
-import com.xjrsoft.module.student.dto.PbVXssfdetailPageDto;
-import com.xjrsoft.module.student.dto.PersonalInfoDto;
+import com.xjrsoft.module.student.dto.*;
 import com.xjrsoft.module.student.service.IPbVXssfdetailService;
+import com.xjrsoft.module.student.service.IPbVXsxxsfytbService;
 import com.xjrsoft.module.student.service.IStudentManagerService;
-import com.xjrsoft.module.student.vo.BaseStudentTreeVo;
-import com.xjrsoft.module.student.vo.PbVXssfdetailExcelVo;
-import com.xjrsoft.module.student.vo.PbVXssfdetailPageVo;
-import com.xjrsoft.module.student.vo.StudentPersonalInfoVo;
+import com.xjrsoft.module.student.vo.*;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
@@ -47,8 +42,9 @@ import java.util.List;
 @Api(value = "/student"  + "/consumption",tags = "学生消费管理")
 @AllArgsConstructor
 public class ConsumptionController {
-    private final IStudentManagerService studentManagerService;
     private final IPbVXssfdetailService pbVXssfdetailService;
+
+    private final IPbVXsxxsfytbService pbVXsxxsfytbService;
     private final IBaseGradeService baseGradeService;
     private final IBaseClassService baseClassService;
 
@@ -103,8 +99,8 @@ public class ConsumptionController {
     @GetMapping(value = "/personal-info")
     @ApiOperation(value="学生个人信息")
     @SaCheckPermission("consumption:detail")
-    public RT<StudentPersonalInfoVo> personalInfo(@Valid PersonalInfoDto dto){
-        StudentPersonalInfoVo info = studentManagerService.getPersonalInfo(dto.getUserId());
+    public RT<PersonalPortraitPersonalInfoVo> personalInfo(@Valid PersonalInfoDto dto){
+        PersonalPortraitPersonalInfoVo info = pbVXssfdetailService.getPersonalInfo(dto);
         return RT.ok(info);
     }
 
@@ -117,6 +113,14 @@ public class ConsumptionController {
         return RT.ok(pageOutput);
     }
 
+    @GetMapping(value = "/cost-information")
+    @ApiOperation(value="费用信息")
+    @SaCheckPermission("consumption:detail")
+    public RT<List<PersonalPortraitFeeInformationVo>> costInformation(@Valid PersonalPortraitFeeInformationDto dto){
+
+        return RT.ok(pbVXsxxsfytbService.listCostInformation(dto));
+    }
+
     @PostMapping("/export-query")
     @ApiOperation(value = "有参导出")
     public ResponseEntity<byte[]> exportData(@Valid PbVXssfdetailExcelDto dto) {

+ 16 - 0
src/main/java/com/xjrsoft/module/student/dto/PersonalPortraitFeeInformationDto.java

@@ -0,0 +1,16 @@
+package com.xjrsoft.module.student.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 费用信息入参
+ */
+@Data
+public class PersonalPortraitFeeInformationDto {
+    /**
+     * 多少年
+     */
+    @ApiModelProperty("多少年")
+    private String year;
+}

+ 10 - 0
src/main/java/com/xjrsoft/module/student/service/IPbVXssfdetailService.java

@@ -4,9 +4,12 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.github.yulichang.base.MPJBaseService;
 import com.xjrsoft.module.student.dto.PbVXssfdetailExcelDto;
 import com.xjrsoft.module.student.dto.PbVXssfdetailPageDto;
+import com.xjrsoft.module.student.dto.PersonalInfoDto;
 import com.xjrsoft.module.student.entity.PbVXssfdetail;
 import com.xjrsoft.module.student.vo.PbVXssfdetailExcelVo;
 import com.xjrsoft.module.student.vo.PbVXssfdetailPageVo;
+import com.xjrsoft.module.student.vo.PersonalPortraitPersonalInfoVo;
+import com.xjrsoft.module.student.vo.StudentPersonalInfoVo;
 
 import java.util.List;
 
@@ -33,4 +36,11 @@ public interface IPbVXssfdetailService extends MPJBaseService<PbVXssfdetail> {
      * @return
      */
     List<PbVXssfdetailExcelVo> getList(PbVXssfdetailExcelDto dto);
+    /**
+     * 个人财务画像
+     * @param dto
+     * @return
+     */
+    PersonalPortraitPersonalInfoVo getPersonalInfo(PersonalInfoDto dto);
+
 }

+ 6 - 0
src/main/java/com/xjrsoft/module/student/service/IPbVXsxxsfytbService.java

@@ -1,7 +1,12 @@
 package com.xjrsoft.module.student.service;
 
 import com.github.yulichang.base.MPJBaseService;
+import com.xjrsoft.module.student.dto.PersonalPortraitFeeInformationDto;
 import com.xjrsoft.module.student.entity.PbVXsxxsfytb;
+import com.xjrsoft.module.student.vo.PersonalPortraitFeeInformationVo;
+import com.xjrsoft.module.student.vo.PersonalPortraitPersonalInfoVo;
+
+import java.util.List;
 
 /**
 * @title: 
@@ -11,4 +16,5 @@ import com.xjrsoft.module.student.entity.PbVXsxxsfytb;
 */
 
 public interface IPbVXsxxsfytbService extends MPJBaseService<PbVXsxxsfytb> {
+    List<PersonalPortraitFeeInformationVo> listCostInformation(PersonalPortraitFeeInformationDto dto);
 }

+ 43 - 0
src/main/java/com/xjrsoft/module/student/service/impl/PbVXssfdetailServiceImpl.java

@@ -1,17 +1,26 @@
 package com.xjrsoft.module.student.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.github.yulichang.base.MPJBaseServiceImpl;
 import com.xjrsoft.module.student.dto.PbVXssfdetailExcelDto;
 import com.xjrsoft.module.student.dto.PbVXssfdetailPageDto;
+import com.xjrsoft.module.student.dto.PbVXsxxsfytbPageDto;
+import com.xjrsoft.module.student.dto.PersonalInfoDto;
 import com.xjrsoft.module.student.entity.PbVXssfdetail;
+import com.xjrsoft.module.student.entity.PbVXsxxsfytb;
 import com.xjrsoft.module.student.mapper.PbVXssfdetailMapper;
 import com.xjrsoft.module.student.service.IPbVXssfdetailService;
+import com.xjrsoft.module.student.service.IPbVXsxxsfytbService;
+import com.xjrsoft.module.student.service.IStudentManagerService;
 import com.xjrsoft.module.student.vo.PbVXssfdetailExcelVo;
 import com.xjrsoft.module.student.vo.PbVXssfdetailPageVo;
+import com.xjrsoft.module.student.vo.PersonalPortraitPersonalInfoVo;
+import com.xjrsoft.module.student.vo.StudentPersonalInfoVo;
 import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
 
+import java.math.BigDecimal;
 import java.util.Arrays;
 import java.util.List;
 
@@ -27,6 +36,10 @@ public class PbVXssfdetailServiceImpl extends MPJBaseServiceImpl<PbVXssfdetailMa
 
     private final PbVXssfdetailMapper pbVXssfdetailMapper;
 
+    private final IStudentManagerService studentManagerService;
+
+    private final IPbVXsxxsfytbService pbVXsxxsfytbService;
+
     @Override
     public Page<PbVXssfdetailPageVo> getPage(Page<PbVXssfdetailPageVo> page, PbVXssfdetailPageDto dto) {
         if(dto.getClassIds() != null && !dto.getClassIds().equals("")){
@@ -50,4 +63,34 @@ public class PbVXssfdetailServiceImpl extends MPJBaseServiceImpl<PbVXssfdetailMa
     public List<PbVXssfdetailExcelVo> getList(PbVXssfdetailExcelDto dto) {
         return pbVXssfdetailMapper.getList(dto);
     }
+
+    @Override
+    public PersonalPortraitPersonalInfoVo getPersonalInfo(PersonalInfoDto dto) {
+        //获取学生基本信息
+        PersonalPortraitPersonalInfoVo personalPortraitPersonalInfoVo = (PersonalPortraitPersonalInfoVo) studentManagerService.getPersonalInfo(dto.getUserId());
+
+        //TODO 获取学生一卡通余额
+        personalPortraitPersonalInfoVo.setTUnion(new BigDecimal("0"));
+
+        //获取学生结余
+        getCashSurplus(personalPortraitPersonalInfoVo);
+
+        return personalPortraitPersonalInfoVo;
+    }
+
+    private void getCashSurplus(PersonalPortraitPersonalInfoVo personalPortraitPersonalInfoVo){
+        //获取所有收费信息
+        LambdaQueryWrapper<PbVXsxxsfytb> pbVXsxxsfytbLambdaQueryWrapper = new LambdaQueryWrapper<>();
+        pbVXsxxsfytbLambdaQueryWrapper
+                .eq(PbVXsxxsfytb::getPersonalid, personalPortraitPersonalInfoVo.getCredentialNumber());
+        List<PbVXsxxsfytb> pbVXsxxsfytbList = pbVXsxxsfytbService.list(pbVXsxxsfytbLambdaQueryWrapper);
+
+        BigDecimal cashSurplus = new BigDecimal("0");
+        for (PbVXsxxsfytb pbVXsxxsfytb : pbVXsxxsfytbList){
+            cashSurplus = cashSurplus.add(pbVXsxxsfytb.getFactrecarmny());
+            cashSurplus = cashSurplus.subtract(pbVXsxxsfytb.getFactar());
+        }
+
+        personalPortraitPersonalInfoVo.setCashSurplus(cashSurplus);
+    }
 }

+ 8 - 0
src/main/java/com/xjrsoft/module/student/service/impl/PbVXsxxsfytbServiceImpl.java

@@ -1,12 +1,16 @@
 package com.xjrsoft.module.student.service.impl;
 
 import com.github.yulichang.base.MPJBaseServiceImpl;
+import com.xjrsoft.module.student.dto.PersonalPortraitFeeInformationDto;
 import com.xjrsoft.module.student.entity.PbVXsxxsfytb;
 import com.xjrsoft.module.student.mapper.PbVXsxxsfytbMapper;
 import com.xjrsoft.module.student.service.IPbVXsxxsfytbService;
+import com.xjrsoft.module.student.vo.PersonalPortraitFeeInformationVo;
 import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 /**
 * @title: 
 * @Author dzx
@@ -16,4 +20,8 @@ import org.springframework.stereotype.Service;
 @Service
 @AllArgsConstructor
 public class PbVXsxxsfytbServiceImpl extends MPJBaseServiceImpl<PbVXsxxsfytbMapper, PbVXsxxsfytb> implements IPbVXsxxsfytbService {
+    @Override
+    public List<PersonalPortraitFeeInformationVo> listCostInformation(PersonalPortraitFeeInformationDto dto) {
+        return null;
+    }
 }

+ 14 - 14
src/main/java/com/xjrsoft/module/student/vo/PbVXsxxsfytbVo.java

@@ -17,62 +17,62 @@ public class PbVXsxxsfytbVo {
     /**
     * 
     */
-    @ApiModelProperty("")
+    @ApiModelProperty("攀宝学生信息主键")
     private String pkfeeobj;
     /**
     * 
     */
-    @ApiModelProperty("")
+    @ApiModelProperty("学生学号")
     private String Studentcode;
     /**
     * 
     */
-    @ApiModelProperty("")
+    @ApiModelProperty("姓名")
     private String feeobjname;
     /**
     * 
     */
-    @ApiModelProperty("")
+    @ApiModelProperty("所属班级名称")
     private String classname;
     /**
     * 
     */
-    @ApiModelProperty("")
+    @ApiModelProperty("所属班级编码")
     private String classcode;
     /**
     * 
     */
-    @ApiModelProperty("")
+    @ApiModelProperty("所属专业名称")
     private String specname;
     /**
     * 
     */
-    @ApiModelProperty("")
+    @ApiModelProperty("所属专业编码")
     private String speccode;
     /**
     * 
     */
-    @ApiModelProperty("")
+    @ApiModelProperty("所属院系名称")
     private String deptname;
     /**
     * 
     */
-    @ApiModelProperty("")
+    @ApiModelProperty("所属院系编码")
     private String deptcode;
     /**
     * 
     */
-    @ApiModelProperty("")
+    @ApiModelProperty("入校年度")
     private String enteryear;
     /**
     * 
     */
-    @ApiModelProperty("")
+    @ApiModelProperty("离校年度")
     private String leaveyear;
     /**
     * 
     */
-    @ApiModelProperty("")
+    @ApiModelProperty("身份证号")
     private String personalid;
     /**
     * 
@@ -82,7 +82,7 @@ public class PbVXsxxsfytbVo {
     /**
     * 
     */
-    @ApiModelProperty("")
+    @ApiModelProperty("招生老师")
     private String recruiters;
     /**
     * 
@@ -92,7 +92,7 @@ public class PbVXsxxsfytbVo {
     /**
     * 
     */
-    @ApiModelProperty("")
+    @ApiModelProperty("录取号")
     private String admissions;
     /**
     * 

+ 54 - 0
src/main/java/com/xjrsoft/module/student/vo/PersonalPortraitFeeInformationVo.java

@@ -0,0 +1,54 @@
+package com.xjrsoft.module.student.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * 费用信息出参
+ */
+@Data
+public class PersonalPortraitFeeInformationVo {
+    /**
+     * 学期Id
+     */
+    @ApiModelProperty("学期Id")
+    private String baseSemester;
+    /**
+     * 学期Id
+     */
+    @ApiModelProperty("学期Id")
+    private String baseSemesterCn;
+    /**
+     * 收费项目名称
+     */
+    @ApiModelProperty("收费项目名称")
+    private BigDecimal feeitemname;
+    /**
+     * 应缴金额
+     */
+    @ApiModelProperty("应缴金额 ")
+    private BigDecimal factar;
+    /**
+     * 实缴金额
+     */
+    @ApiModelProperty("实缴金额")
+    private BigDecimal factrecarmny;
+    /**
+     * 调整(减免)金额
+     */
+    @ApiModelProperty("调整(减免)金额 ")
+    private BigDecimal adjustmny;
+    /**
+     * 缴费状态
+     */
+    @ApiModelProperty("缴费状态")
+    private BigDecimal jfzt;
+    /**
+     * 应缴金额
+     */
+    @ApiModelProperty("欠费金额 ")
+    private BigDecimal arrearagemny;
+
+}

+ 23 - 0
src/main/java/com/xjrsoft/module/student/vo/PersonalPortraitPersonalInfoVo.java

@@ -0,0 +1,23 @@
+package com.xjrsoft.module.student.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+* @title: 班级专业方向表表单出参
+* @Author szs
+* @Date: 2023-12-28
+* @Version 1.0
+*/
+@Data
+public class PersonalPortraitPersonalInfoVo extends StudentPersonalInfoVo{
+
+    @ApiModelProperty("一卡通")
+    private BigDecimal  tUnion;
+
+    @ApiModelProperty("结余")
+    private BigDecimal  cashSurplus;
+}

+ 1 - 1
src/main/resources/mapper/oa/OfficialDocumentPostMapper.xml

@@ -4,7 +4,7 @@
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.xjrsoft.module.oa.mapper.OfficialDocumentPostMapper">
     <select id="getMaxPostNumber" resultType="java.lang.Integer">
-        SELECT IFNULL(MAX(SUBSTR(post_number,6,3)), 0) + 1 FROM official_document_post WHERE YEAR(post_date) = YEAR(NOW())
+        SELECT IFNULL(MAX(SUBSTR(received_number, 6, 3)), 0) + 1 FROM official_document_received WHERE YEAR(received_date) = YEAR(NOW())
     </select>
 
 </mapper>