大数据与最优化研究所 il y a 1 an
Parent
commit
01f6e7c9ee

+ 6 - 7
src/main/java/com/xjrsoft/module/textbook/controller/WfTextbookSubscriptionController.java

@@ -145,14 +145,13 @@ public class WfTextbookSubscriptionController {
 
         MPJLambdaWrapper<WfTextbookSubscription> queryWrapper = new MPJLambdaWrapper<>();
         queryWrapper
-                .selectSum(WfTextbookSubscriptionItem::getStudentSubscriptionNumber, TextbookSubscriptionHistoryListVo::getTeacherSubscriptionNumber)
+                .selectSum(WfTextbookSubscriptionItem::getStudentSubscriptionNumber, TextbookSubscriptionHistoryListVo::getStudentSubscriptionNumber)
                 .selectSum(WfTextbookSubscriptionItem::getTeacherSubscriptionNumber, TextbookSubscriptionHistoryListVo::getTeacherSubscriptionNumber)
-                .selectAs(WfTextbookSubscriptionItem::getTextbookId, TextbookSubscriptionHistoryListVo::getTextbookId)
+                .selectAs(WfTextbookSubscription::getCreateDate, TextbookSubscriptionHistoryListVo::getCreateDate)
                 .rightJoin(WfTextbookSubscriptionItem.class, WfTextbookSubscriptionItem::getWfTextbookSubscriptionId, WfTextbookSubscription::getId)
                 .eq(WfTextbookSubscriptionItem::getTextbookId, dto.getTextbookId())
                 .eq(WfTextbookSubscription::getBaseSemesterId, dto.getBaseSemesterId())
-                .orderByDesc(WfTextbookSubscription::getCreateDate)
-                .groupBy("t.id,t`.textbook_id")
+                .groupBy("t.id,t1.textbook_id")
         ;
         List<TextbookSubscriptionHistoryListVo> list = wfTextbookSubscriptionService.selectJoinList(TextbookSubscriptionHistoryListVo.class, queryWrapper);
         return RT.ok(list);
@@ -162,11 +161,11 @@ public class WfTextbookSubscriptionController {
     @ApiOperation(value="根据id查询教材教辅征订信息")
     @SaCheckPermission("wftextbooksubscription:detail")
     public RT<WfTextbookSubscriptionVo> info(@RequestParam Long id){
-        WfTextbookSubscription wfTextbookSubscription = wfTextbookSubscriptionService.getByIdDeep(id);
-        if (wfTextbookSubscription == null) {
+        WfTextbookSubscriptionVo wfTextbookSubscriptionVo = wfTextbookSubscriptionService.getInfo(id);
+        if (wfTextbookSubscriptionVo == null) {
            return RT.error("找不到此数据!");
         }
-        return RT.ok(BeanUtil.toBean(wfTextbookSubscription, WfTextbookSubscriptionVo.class));
+        return RT.ok(wfTextbookSubscriptionVo);
     }
 
 

+ 3 - 0
src/main/java/com/xjrsoft/module/textbook/service/IWfTextbookSubscriptionService.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.github.yulichang.base.MPJBaseService;
 import com.xjrsoft.module.textbook.dto.UpdateWfTextbookSubscriptionDto;
 import com.xjrsoft.module.textbook.entity.WfTextbookSubscription;
+import com.xjrsoft.module.textbook.vo.WfTextbookSubscriptionVo;
 import lombok.Data;
 import java.util.List;
 
@@ -40,4 +41,6 @@ public interface IWfTextbookSubscriptionService extends MPJBaseService<WfTextboo
     Boolean delete(List<Long> ids);
 
     Boolean changeStatus(UpdateWfTextbookSubscriptionDto dto);
+
+    WfTextbookSubscriptionVo getInfo(Long id);
 }

+ 82 - 3
src/main/java/com/xjrsoft/module/textbook/service/impl/WfTextbookSubscriptionServiceImpl.java

@@ -3,10 +3,20 @@ package com.xjrsoft.module.textbook.service.impl;
 import cn.hutool.core.bean.BeanUtil;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.github.yulichang.base.MPJBaseServiceImpl;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import com.xjrsoft.common.model.result.RT;
+import com.xjrsoft.common.utils.VoToColumnUtil;
+import com.xjrsoft.module.base.entity.BaseClass;
+import com.xjrsoft.module.base.mapper.BaseClassMapper;
+import com.xjrsoft.module.base.service.IBaseClassService;
 import com.xjrsoft.module.oa.entity.NewsRelation;
+import com.xjrsoft.module.oa.vo.NewsAppendixVo;
+import com.xjrsoft.module.system.entity.Databaselink;
+import com.xjrsoft.module.system.entity.DictionaryDetail;
+import com.xjrsoft.module.system.entity.File;
 import com.xjrsoft.module.textbook.dto.AddTextbookWarehouseRecordDto;
 import com.xjrsoft.module.textbook.dto.UpdateWfTextbookSubscriptionDto;
+import com.xjrsoft.module.textbook.entity.Textbook;
 import com.xjrsoft.module.textbook.entity.TextbookSubscriptionRecord;
 import com.xjrsoft.module.textbook.entity.WfTextbookSubscriptionItem;
 import com.xjrsoft.module.textbook.mapper.TextbookSubscriptionRecordMapper;
@@ -15,13 +25,14 @@ import com.xjrsoft.module.textbook.entity.WfTextbookSubscription;
 import com.xjrsoft.module.textbook.mapper.WfTextbookSubscriptionMapper;
 import com.xjrsoft.module.textbook.service.ITextbookService;
 import com.xjrsoft.module.textbook.service.IWfTextbookSubscriptionService;
+import com.xjrsoft.module.textbook.vo.WfTextbookSubscriptionItemVo;
+import com.xjrsoft.module.textbook.vo.WfTextbookSubscriptionPageVo;
+import com.xjrsoft.module.textbook.vo.WfTextbookSubscriptionVo;
 import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import java.util.Date;
-import java.util.List;
-import java.util.Objects;
+import java.util.*;
 import java.util.stream.Collectors;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 
@@ -42,6 +53,8 @@ public class WfTextbookSubscriptionServiceImpl extends MPJBaseServiceImpl<WfText
 
     private final ITextbookService textbookService;
 
+    private final BaseClassMapper baseClassMapper;
+
     @Override
     @Transactional(rollbackFor = Exception.class)
     public Boolean add(WfTextbookSubscription wfTextbookSubscription) {
@@ -146,4 +159,70 @@ public class WfTextbookSubscriptionServiceImpl extends MPJBaseServiceImpl<WfText
         }
         return false;
     }
+
+    @Override
+    public WfTextbookSubscriptionVo getInfo(Long id) {
+        WfTextbookSubscription wfTextbookSubscription = this.getById(id);
+        if(wfTextbookSubscription == null){
+            return null;
+        }
+        WfTextbookSubscriptionVo wfTextbookSubscriptionVo = BeanUtil.toBean(wfTextbookSubscription, WfTextbookSubscriptionVo.class);
+
+        MPJLambdaWrapper<WfTextbookSubscriptionItem> mpjLambdaWrapper = new MPJLambdaWrapper<>();
+        mpjLambdaWrapper
+                .select(WfTextbookSubscriptionItem.class,x -> VoToColumnUtil.fieldsToColumns(WfTextbookSubscriptionItemVo.class).contains(x.getProperty()))
+                .select(Textbook.class,x -> VoToColumnUtil.fieldsToColumns(WfTextbookSubscriptionItemVo.class).contains(x.getProperty()))
+                .leftJoin(Textbook.class, Textbook::getId, WfTextbookSubscriptionItem::getTextbookId)
+                .leftJoin(DictionaryDetail.class, DictionaryDetail::getCode, Textbook::getTextbookType,
+                        ext -> ext.selectAs(DictionaryDetail::getName, WfTextbookSubscriptionItemVo::getTextbookTypeCn))
+                .eq(WfTextbookSubscriptionItem::getWfTextbookSubscriptionId, wfTextbookSubscription.getId())
+                ;
+        List<WfTextbookSubscriptionItemVo> itemList = wfTextbookSubscriptionWfTextbookSubscriptionItemMapper.selectJoinList(WfTextbookSubscriptionItemVo.class, mpjLambdaWrapper);
+
+        //处理班级
+        List<String> classIdList = new ArrayList<>();
+        StringBuilder sb = new StringBuilder();
+        if(!itemList.isEmpty() && itemList.get(0).getClassIds() != null && !itemList.get(0).getClassIds().equals("")){
+            String classIds = itemList.get(0).getClassIds();
+            String[] classIdArr = classIds.split(",");
+            classIdList = Arrays.asList(classIdArr);
+            if(!classIdList.isEmpty()){
+                List<BaseClass> baseClassList = baseClassMapper.selectList(Wrappers.<BaseClass>query().lambda().in(BaseClass::getId, classIdList));
+                Map<Long, BaseClass> baseClassMap = baseClassList.stream()
+                        .collect(Collectors.toMap(BaseClass::getId, baseClass -> baseClass));
+
+                for (String classId : classIdList){
+                    BaseClass baseClass = baseClassMap.get(Long.parseLong(classId));
+                    if(baseClass != null){
+                        sb.append(baseClass.getName());
+                        sb.append(",");
+                    }
+                }
+                sb.deleteCharAt(sb.length() - 1);
+            }
+        }
+
+        //遍历处理所有项
+        int stuSum = 0;
+        int teaSum = 0;
+        for (WfTextbookSubscriptionItemVo w : itemList){
+            if(!classIdList.isEmpty()){
+                w.setClassNum(classIdList.size());
+            }
+            if(w.getStudentSubscriptionNumber() != null){
+                stuSum += w.getStudentSubscriptionNumber();
+            }
+            if(w.getTeacherSubscriptionNumber() != null){
+                teaSum += w.getTeacherSubscriptionNumber();
+            }
+        }
+
+        wfTextbookSubscriptionVo.setClassIdsCn(sb.toString());
+        wfTextbookSubscriptionVo.setStudentSubscriptionNumberSum(stuSum);
+        wfTextbookSubscriptionVo.setTeacherSubscriptionNumberSum(teaSum);
+        wfTextbookSubscriptionVo.setSum(stuSum + teaSum);
+        wfTextbookSubscriptionVo.setWfTextbookSubscriptionItemList(itemList);
+
+        return wfTextbookSubscriptionVo;
+    }
 }

+ 0 - 6
src/main/java/com/xjrsoft/module/textbook/vo/TextbookSubscriptionHistoryListVo.java

@@ -15,12 +15,6 @@ import java.util.Date;
 */
 @Data
 public class TextbookSubscriptionHistoryListVo {
-
-    /**
-     * 教材编号
-     */
-    @ApiModelProperty("教材编号")
-    private String textbookId;
     /**
      * 学生用书征订数量
      */

+ 20 - 0
src/main/java/com/xjrsoft/module/textbook/vo/WfTextbookSubscriptionItemVo.java

@@ -53,6 +53,16 @@ public class WfTextbookSubscriptionItemVo {
     */
     @ApiModelProperty("书名")
     private String bookName;
+    /**
+     * 教材类型(xjr_dictionary_item[textbook_type])
+     */
+    @ApiModelProperty("教材类型(xjr_dictionary_item[textbook_type])")
+    private String textbookType;
+    /**
+     * 教材类型(xjr_dictionary_item[textbook_type])
+     */
+    @ApiModelProperty("教材类型(xjr_dictionary_item[textbook_type])")
+    private String textbookTypeCn;
     /**
     * 出版社
     */
@@ -83,6 +93,16 @@ public class WfTextbookSubscriptionItemVo {
     */
     @ApiModelProperty("班级编号(多个)")
     private String classIds;
+    /**
+     * 班级编号(多个)
+     */
+    @ApiModelProperty("班级编号(多个)")
+    private String classIdsCn;
+    /**
+     * 班级编号(多个)
+     */
+    @ApiModelProperty("班级编号(多个)")
+    private Integer classNum;
     /**
     * 学生用书征订数量
     */

+ 25 - 1
src/main/java/com/xjrsoft/module/textbook/vo/WfTextbookSubscriptionVo.java

@@ -70,7 +70,31 @@ public class WfTextbookSubscriptionVo {
     @ApiModelProperty("征订方式(1:按班级征订 2:按教材征订)")
     private Integer subscriptionMethod;
 
-
+    /**
+     * 学生用书征订数量
+     */
+    @ApiModelProperty("学生用书征订总数量")
+    private Integer studentSubscriptionNumberSum;
+    /**
+     * 教师教材征订数量
+     */
+    @ApiModelProperty("教师教材征订总数量")
+    private Integer teacherSubscriptionNumberSum;
+    /**
+     * 教师教材征订数量
+     */
+    @ApiModelProperty("总数量")
+    private Integer sum;
+    /**
+     * 班级编号(多个)
+     */
+    @ApiModelProperty("班级编号(多个)")
+    private String classIds;
+    /**
+     * 班级编号(多个)
+     */
+    @ApiModelProperty("班级编号(多个)")
+    private String classIdsCn;
     /**
     * wfTextbookSubscriptionItem
     */