renqianlong il y a 1 an
Parent
commit
afce88a730
20 fichiers modifiés avec 350 ajouts et 35 suppressions
  1. 1 2
      zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/goods/GoodsController.java
  2. 21 0
      zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/staff/StaffController.java
  3. 1 0
      zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/system/BsSysUserController.java
  4. 21 19
      zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/company/service/impl/CompanyCertificateServiceImpl.java
  5. 2 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/staff/bo/StaffQueryBo.java
  6. 14 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/staff/service/IStaffService.java
  7. 125 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/staff/service/impl/StaffServiceImpl.java
  8. 48 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/staff/vo/ExcelStaffGoodVo.java
  9. 3 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/staff/vo/StaffVo.java
  10. 20 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/course/domain/CourseSubject.java
  11. 4 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/course/vo/CourseSubjectVo.java
  12. 1 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/mapper/GoodsMapper.java
  13. 1 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/service/IGoodsService.java
  14. 24 8
      zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/service/impl/GoodsServiceImpl.java
  15. 2 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/vo/CompanyGoodsVo.java
  16. 4 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/vo/GoodsVo.java
  17. 2 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/order/vo/CompanyOrderBusinessConfigGoodsVo.java
  18. 1 1
      zhongzheng-system/src/main/resources/mapper/modules/bsSys/BsSysMenuMapper.xml
  19. 51 0
      zhongzheng-system/src/main/resources/mapper/modules/goods/GoodsMapper.xml
  20. 4 2
      zhongzheng-system/src/main/resources/mapper/modules/order/OrderBusinessConfigGoodsMapper.xml

+ 1 - 2
zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/goods/GoodsController.java

@@ -9,6 +9,7 @@ import com.zhongzheng.common.core.page.TableDataInfo;
 import com.zhongzheng.common.enums.BusinessType;
 import com.zhongzheng.common.utils.poi.ExcelUtil;
 import com.zhongzheng.modules.bank.service.IQuestionService;
+import com.zhongzheng.modules.course.vo.CourseSubjectVo;
 import com.zhongzheng.modules.exam.bo.ExamNumberGoodsQueryBo;
 import com.zhongzheng.modules.exam.vo.ExamNumberGoodsVo;
 import com.zhongzheng.modules.goods.bo.*;
@@ -49,8 +50,6 @@ public class GoodsController extends BaseController {
     private final IGoodsAttachedService iGoodsAttachedService;
 
     private final IQuestionService iQuestionService;
-    private final IOrderBusinessConfigGoodsService iOrderBusinessConfigGoodsService;
-    private final IGoodsCourseService iGoodsCourseService;
 
     /**
      * 查询商品列表

+ 21 - 0
zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/staff/StaffController.java

@@ -2,6 +2,10 @@ package com.zhongzheng.controller.staff;
 
 import java.util.List;
 
+import com.zhongzheng.common.utils.ServletUtils;
+import com.zhongzheng.framework.web.service.BsTokenService;
+import com.zhongzheng.modules.bs.staff.vo.ExcelStaffGoodVo;
+import com.zhongzheng.modules.goods.bo.GoodsQueryBo;
 import lombok.RequiredArgsConstructor;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -39,6 +43,7 @@ import org.springframework.web.multipart.MultipartFile;
 public class StaffController extends BaseController {
 
     private final IStaffService iStaffService;
+    private final BsTokenService bsTokenService;
 
     /**
      * 查询企业部门员工列表
@@ -51,6 +56,16 @@ public class StaffController extends BaseController {
         List<StaffVo> list = iStaffService.selectStaffList(bo);
         return getDataTable(list);
     }
+    @ApiOperation("查询企业部门员工匹配商品列表列表")
+    @PreAuthorize("@ss.hasPermi('system:staff:list')")
+    @GetMapping("/getMatchGoods")
+    public TableDataInfo<StaffVo> getMatchGoods(StaffQueryBo bo) {
+        startPage();
+        bo.setCompanyId(bsTokenService.getLoginUser(ServletUtils.getRequest()).getUser().getCompanyId());
+        List<StaffVo> list = iStaffService.getMatchGoods(bo);
+
+        return getDataTable(list);
+    }
 
     /**
      * 导出企业部门员工列表
@@ -115,4 +130,10 @@ public class StaffController extends BaseController {
     public AjaxResult<Void> importStaffList( MultipartFile  file ) {
         return toAjax(iStaffService.importExcelList(file)?1:0);
     }
+    @ApiOperation("导入员工匹配商品文档列表")
+    @PreAuthorize("@ss.hasPermi('system:staff:importStaffList')")
+    @PostMapping("/getStaffGoods")
+    public TableDataInfo<ExcelStaffGoodVo> importStaffGoodsList(MultipartFile file , GoodsQueryBo bo ) {
+        return getDataTable(iStaffService.SelectByExcelList(file,bo));
+    }
 }

+ 1 - 0
zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/system/BsSysUserController.java

@@ -135,6 +135,7 @@ public class BsSysUserController extends BaseController
         if(!ToolsUtils.verifEasyPwd(user.getPassword())){
             throw new CustomException("密码应由8-16位数字、大小写字母、符号组成");
         }
+        user.setCompanyId(bsTokenService.getLoginUser(ServletUtils.getRequest()).getUser().getCompanyId());
         user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
         user.setCreateTime(DateUtils.getNowTime());
         user.setUpdateTime(DateUtils.getNowTime());

+ 21 - 19
zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/company/service/impl/CompanyCertificateServiceImpl.java

@@ -52,14 +52,14 @@ public class CompanyCertificateServiceImpl extends ServiceImpl<CompanyCertificat
             return new ArrayList<>();
         }
         companyCertificateVos.forEach(item -> {
-            if (ObjectUtil.isNotEmpty(item.getCompanyType())){
+            if (ObjectUtil.isNotEmpty(item.getCompanyType())) {
                 String companyTypeNameByType = getCompanyTypeNameByType(item.getCompanyType());
                 item.setCompanyTypeName(companyTypeNameByType);
             }
             CompanyCertificate companyCertificate = new CompanyCertificate();
             companyCertificate.setCertificateId(item.getCertificateId());
             companyCertificate.setUpdateTime(DateUtils.getNowTime());
-            if (ObjectUtil.isNotEmpty(item.getEffectiveDate())&&item.getEffectiveDate()!=0) {
+            if (ObjectUtil.isNotEmpty(item.getEffectiveDate()) && item.getEffectiveDate() != 0) {
                 Date effectivedate = new Date(item.getEffectiveDate() * 1000L);
                 if (effectivedate.compareTo(new Date()) > 0) {
                     item.setExpirationTime(0L);
@@ -68,14 +68,14 @@ public class CompanyCertificateServiceImpl extends ServiceImpl<CompanyCertificat
                     //查询实时证书过期时间更新证书预警状态
                     companyCertificate.setWarningStatus(2);
                     this.baseMapper.updateById(companyCertificate);
-                    if (ObjectUtil.isNotEmpty(item.getEffectiveDate())){
+                    if (ObjectUtil.isNotEmpty(item.getEffectiveDate())) {
                         long l = DateUtil.between(effectivedate, new Date(), DateUnit.DAY);
                         item.setExpirationTime(l);
                         item.setWarningStatus(2);
                     }
                 }
             }
-            if (ObjectUtil.isNotEmpty(item.getOperateDate())&&item.getOperateDate()!=0) {
+            if (ObjectUtil.isNotEmpty(item.getOperateDate()) && item.getOperateDate() != 0) {
                 Date opearteDate = new Date(item.getOperateDate() * 1000L);
                 if (opearteDate.compareTo(new Date()) > 0) {
                     item.setExpirationTime(0L);
@@ -83,14 +83,14 @@ public class CompanyCertificateServiceImpl extends ServiceImpl<CompanyCertificat
                 } else {
                     //查询实时证书过期时间更新证书预警状态
                     companyCertificate.setWarningStatus(2);
-                    if (ObjectUtil.isNotEmpty(item.getOperateDate())){
+                    if (ObjectUtil.isNotEmpty(item.getOperateDate())) {
                         long l = DateUtil.between(opearteDate, new Date(), DateUnit.DAY);
                         item.setExpirationTime(l);
                         item.setWarningStatus(2);
                     }
                 }
             }
-            if (ObjectUtil.isNotEmpty(item.getEffectiveFlag())&&item.getEffectiveFlag()==1||ObjectUtil.isNotEmpty(item.getOperateDate())&&item.getOperateFlag()==1){
+            if (ObjectUtil.isNotEmpty(item.getEffectiveFlag()) && item.getEffectiveFlag() == 1 || ObjectUtil.isNotEmpty(item.getOperateDate()) && item.getOperateFlag() == 1) {
                 item.setWarningStatus(1);
                 companyCertificate.setWarningStatus(1);
             }
@@ -122,7 +122,7 @@ public class CompanyCertificateServiceImpl extends ServiceImpl<CompanyCertificat
     @Override
     public Boolean insertByAddBo(CompanyCertificateAddBo bo) {
         CompanyCertificate add = BeanUtil.toBean(bo, CompanyCertificate.class);
-        if (ObjectUtil.isNotEmpty(bo.getCompanyId())){
+        if (ObjectUtil.isNotEmpty(bo.getCompanyId())) {
             CompanyVo companyVo = iCompanyService.queryById(bo.getCompanyId());
             add.setCompanyName(companyVo.getCompanyName());
             add.setCompanyType(companyVo.getCompanyType());
@@ -137,15 +137,15 @@ public class CompanyCertificateServiceImpl extends ServiceImpl<CompanyCertificat
         }
         add.setCertificateId(bo.getCertificateId());
         if (bo.getCertificateType().equals(2)) {
-            if (!bo.getInfoList().isEmpty()){
+            if (!bo.getInfoList().isEmpty()) {
                 List<CompanyCertificateInfo> infoList = bo.getInfoList();
-                infoList.forEach(item->{
-                    if (Validator.isEmpty(item.getQualificationCategory())){
+                infoList.forEach(item -> {
+                    if (Validator.isEmpty(item.getQualificationCategory())) {
                         throw new CustomException("资质名称不能为空");
                     }
                 });
                 List<CompanyCertificateInfo> collect = infoList.stream().filter(s -> s.getItemClass().equals(1)).collect(Collectors.toList());
-                if (collect.size()>=2){
+                if (collect.size() >= 2) {
                     throw new CustomException("主项重复");
                 }
             }
@@ -153,7 +153,7 @@ public class CompanyCertificateServiceImpl extends ServiceImpl<CompanyCertificat
         }
         //证书有效时间判断
         if (ObjectUtil.isNotEmpty(bo.getIssuanceDate()) && ObjectUtil.isNotEmpty(bo.getEffectiveDate())) {
-            if (bo.getEffectiveFlag()==1) {
+            if (bo.getEffectiveFlag() == 1) {
                 bo.setWarningStatus(1);
             } else {
                 Date issuancedate = new Date(bo.getIssuanceDate() * 1000L);
@@ -249,6 +249,7 @@ public class CompanyCertificateServiceImpl extends ServiceImpl<CompanyCertificat
         }
         return null;
     }
+
     public String getCompanyTypeNameByType(Long companyType) {
         //公司类型判断
         if (companyType == 1L) {
@@ -288,6 +289,7 @@ public class CompanyCertificateServiceImpl extends ServiceImpl<CompanyCertificat
         }
         return null;
     }
+
     public Integer getDocumentTypeByName(String documentTypeName) {
         //公司类型判断
         switch (documentTypeName) {
@@ -372,9 +374,9 @@ public class CompanyCertificateServiceImpl extends ServiceImpl<CompanyCertificat
                 collect.forEach((k, v) -> {
                     List<ExcelCompanyCertificateVo> excelCompanyCertificateVos = collect.get(k);
                     ExcelCompanyCertificateVo excelCompanyCertificateVo = excelCompanyCertificateVos.get(0);
-                     excelCompanyCertificateVos.forEach(item -> {
+                    excelCompanyCertificateVos.forEach(item -> {
                         CompanyCertificateInfo companyCertificateInfo = new CompanyCertificateInfo();
-                        if (ObjectUtil.isNotEmpty(item.getDocumentTypeName())){
+                        if (ObjectUtil.isNotEmpty(item.getDocumentTypeName())) {
                             Integer zzDocumentTypeByName = getZzDocumentTypeByName(item.getDocumentTypeName());
                             companyCertificateInfo.setItemClass(Long.valueOf(zzDocumentTypeByName));
                         }
@@ -431,7 +433,7 @@ public class CompanyCertificateServiceImpl extends ServiceImpl<CompanyCertificat
                         companyCertificate.setIssuingAuthority(excelCompanyCertificateVo.getIssuingAuthority());
                         companyCertificate.setCreateTime(DateUtils.getNowTime());
                         companyCertificate.setUpdateTime(DateUtils.getNowTime());
-                        vo.setSaveStatus( this.baseMapper.insert(companyCertificate));
+                        vo.setSaveStatus(this.baseMapper.insert(companyCertificate));
                     }
                 }
                 break;
@@ -473,7 +475,7 @@ public class CompanyCertificateServiceImpl extends ServiceImpl<CompanyCertificat
                             companyCertificate.setIssuingAuthority(item.getIssuingAuthority());
                             companyCertificate.setCreateTime(DateUtils.getNowTime());
                             companyCertificate.setUpdateTime(DateUtils.getNowTime());
-                            vo.setSaveStatus( this.baseMapper.insert(companyCertificate));
+                            vo.setSaveStatus(this.baseMapper.insert(companyCertificate));
                         }
                     }
                 });
@@ -515,15 +517,15 @@ public class CompanyCertificateServiceImpl extends ServiceImpl<CompanyCertificat
                             companyCertificate.setIssuingAuthority(item.getIssuingAuthority());
                             companyCertificate.setCreateTime(DateUtils.getNowTime());
                             companyCertificate.setUpdateTime(DateUtils.getNowTime());
-                            vo.setSaveStatus( this.baseMapper.insert(companyCertificate));
+                            vo.setSaveStatus(this.baseMapper.insert(companyCertificate));
                         }
                     }
                 });
                 break;
         }
-        if (vo.getSaveStatus()==1){
+        if (vo.getSaveStatus() == 1) {
             return true;
-        }else {
+        } else {
             return false;
         }
     }

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/staff/bo/StaffQueryBo.java

@@ -136,4 +136,6 @@ public class StaffQueryBo extends BaseEntity {
 	@ApiModelProperty("专业")
 	private Long staffId;
 	private String searchItem;
+	private Long configId;
+	private Long goodsId;
 }

+ 14 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/staff/service/IStaffService.java

@@ -2,10 +2,12 @@ package com.zhongzheng.modules.bs.staff.service;
 
 import com.zhongzheng.modules.bs.staff.bo.StaffEditBo;
 import com.zhongzheng.modules.bs.staff.bo.StaffQueryBo;
+import com.zhongzheng.modules.bs.staff.vo.ExcelStaffGoodVo;
 import com.zhongzheng.modules.bs.staff.vo.StaffVo;
 import com.zhongzheng.modules.bs.staff.domain.Staff;
 import com.zhongzheng.modules.bs.staff.bo.StaffAddBo;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.zhongzheng.modules.goods.bo.GoodsQueryBo;
 import org.springframework.web.multipart.MultipartFile;
 
 import java.util.List;
@@ -53,10 +55,22 @@ public interface IStaffService extends IService<Staff> {
 	 * @return
 	 */
 	List<StaffVo> selectStaffList(StaffQueryBo bo);
+	/**
+	 * 获取默认员工匹配商品
+	 * @param bo 主键集合
+	 * @return
+	 */
+	List<StaffVo> getMatchGoods(StaffQueryBo bo);
 	/**
 	 * 文档导入员工列表
 	 * @param file 主键集合
 	 * @return
 	 */
 	Boolean importExcelList(MultipartFile  file);
+	/**
+	 * 文档导入员工列表
+	 * @param file 主键集合
+	 * @return
+	 */
+	List<ExcelStaffGoodVo> SelectByExcelList(MultipartFile  file,GoodsQueryBo bo);
 }

+ 125 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/staff/service/impl/StaffServiceImpl.java

@@ -14,7 +14,17 @@ import com.zhongzheng.modules.bs.company.domain.CompanyDepartment;
 import com.zhongzheng.modules.bs.company.service.ICompanyDepartmentService;
 import com.zhongzheng.modules.bs.company.service.ICompanyService;
 import com.zhongzheng.modules.bs.staff.service.*;
+import com.zhongzheng.modules.bs.staff.vo.ExcelStaffGoodVo;
 import com.zhongzheng.modules.bs.staff.vo.ExcelStaffVo;
+import com.zhongzheng.modules.course.domain.CourseSubject;
+import com.zhongzheng.modules.course.service.ICourseSubjectService;
+import com.zhongzheng.modules.goods.bo.GoodsQueryBo;
+import com.zhongzheng.modules.goods.service.IGoodsService;
+import com.zhongzheng.modules.goods.vo.CompanyGoodsVo;
+import com.zhongzheng.modules.goods.vo.GoodsVo;
+import com.zhongzheng.modules.order.bo.OrderBusinessConfigGoodsQueryBo;
+import com.zhongzheng.modules.order.service.IOrderBusinessConfigGoodsService;
+import com.zhongzheng.modules.order.vo.CompanyOrderBusinessConfigGoodsVo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -51,6 +61,10 @@ public class StaffServiceImpl extends ServiceImpl<StaffMapper, Staff> implements
     private ICompanyService iCompanyService;
     @Autowired
     private ICompanyDepartmentService iCompanyDepartmentService;
+    @Autowired
+    private IGoodsService iGoodsService;
+    @Autowired
+    private ICourseSubjectService iCourseSubjectService;
 
     @Override
     public StaffVo queryById(Long staffId) {
@@ -89,7 +103,7 @@ public class StaffServiceImpl extends ServiceImpl<StaffMapper, Staff> implements
         lqw.eq(bo.getEndDate() != null, Staff::getEndDate, bo.getEndDate());
         lqw.eq(StrUtil.isNotBlank(bo.getLabel()), Staff::getLabel, bo.getLabel());
         lqw.eq(StrUtil.isNotBlank(bo.getRemarks()), Staff::getRemarks, bo.getRemarks());
-        lqw.eq( Staff::getStatus, bo.getStatus());
+        lqw.eq(Staff::getStatus, bo.getStatus());
         return entity2Vo(this.list(lqw));
     }
 
@@ -296,6 +310,59 @@ public class StaffServiceImpl extends ServiceImpl<StaffMapper, Staff> implements
         return staffVos;
     }
 
+    public String getGoodType(Integer type) {
+        switch (type) {
+            case 1:
+                return "课";
+            case 2:
+                return "题";
+            case 6:
+                return "直";
+        }
+        return null;
+    }
+
+    @Override
+    public List<StaffVo> getMatchGoods(StaffQueryBo bo) {
+        bo.setStatus(1);
+        List<StaffVo> staffVos = this.queryList(bo);
+        if (ObjectUtil.isNotEmpty(bo.getConfigId())) {
+            GoodsQueryBo goodsQueryBo = new GoodsQueryBo();
+            goodsQueryBo.setConfigId(bo.getConfigId());
+            goodsQueryBo.setGoodsType(10);
+          goodsQueryBo.setStatus(new ArrayList<Integer>(){{
+              add(1);
+          }});
+            List<CompanyOrderBusinessConfigGoodsVo> bsGoodsPackageList = iGoodsService.getBsGoodsPackageList(goodsQueryBo);
+            if (!bsGoodsPackageList.isEmpty()) {
+                CompanyOrderBusinessConfigGoodsVo companyGoodsVo = bsGoodsPackageList.get(0);
+                if (!staffVos.isEmpty()) {
+                    staffVos.forEach(item -> {
+                        item.setCourseSubjectList(companyGoodsVo.getCourseSubjectList());
+                    });
+                }
+            }
+        }
+        if (ObjectUtil.isNotEmpty(bo.getGoodsId())) {
+            GoodsVo goodsVo = iGoodsService.selectDetail(bo.getGoodsId());
+            if (!staffVos.isEmpty()) {
+                staffVos.forEach(item -> {
+                    goodsVo.setGoodsTypeName(this.getGoodType(goodsVo.getGoodsType()));
+                    List<Long> subjectIds = Arrays.stream(goodsVo.getSubjectIds().split(",")).map(Long::parseLong).collect(Collectors.toList());
+                    List<CourseSubject> courseSubjects = iCourseSubjectService.getListByIDs(subjectIds);
+                    courseSubjects.forEach(courseSubject->{
+                        courseSubject.setGoodsTypeName(this.getGoodType(goodsVo.getGoodsType()));
+                        courseSubject.setYear(goodsVo.getYear());
+                        courseSubject.setGoodsName(goodsVo.getGoodsName());
+                        courseSubject.setStandPrice(goodsVo.getStandPrice());
+                    });
+                    item.setCourseSubjectList(courseSubjects);
+                });
+            }
+        }
+        return staffVos;
+    }
+
 
     public Integer getDegreeType(String degree) {
         //学历类型判断
@@ -501,4 +568,61 @@ public class StaffServiceImpl extends ServiceImpl<StaffMapper, Staff> implements
         });
         return true;
     }
+
+    @Override
+    public List<ExcelStaffGoodVo> SelectByExcelList(MultipartFile file, GoodsQueryBo bo) {
+        List<ExcelStaffGoodVo> excelStaffVos = EasyPoiUtil.importExcel(file, 0, 1, ExcelStaffGoodVo.class);
+        if (ObjectUtil.isEmpty(excelStaffVos)) {
+            throw new CustomException("文档数据为空");
+        }
+        excelStaffVos.forEach(item -> {
+            if (ObjectUtil.isNotEmpty(bo.getConfigId())) {
+                bo.setGoodsType(10);
+                List<CompanyOrderBusinessConfigGoodsVo> bsGoodsPackageList = iGoodsService.getBsGoodsPackageList(bo);
+                if (!bsGoodsPackageList.isEmpty()) {
+                    CompanyOrderBusinessConfigGoodsVo companyOrderBusinessConfigGoodsVo = bsGoodsPackageList.get(0);
+                    List<CourseSubject> courseSubjectList = companyOrderBusinessConfigGoodsVo.getCourseSubjectList();
+                    if (!courseSubjectList.isEmpty()) {
+                        if (Validator.isNotEmpty(item.getSubjectName())) {
+                            List<CourseSubject> collect = courseSubjectList.stream().filter(s -> s.getSubjectName().equals(item.getSubjectName())).collect(Collectors.toList());
+                            item.setCourseSubjectList(collect);
+                        }
+                        if (Validator.isNotEmpty(item.getYear())) {
+                            List<CourseSubject> collect = courseSubjectList.stream().filter(s -> s.getYear().equals(item.getYear())).collect(Collectors.toList());
+                            item.setCourseSubjectList(collect);
+                        }
+                        if (ObjectUtil.isAllNotEmpty(item.getSubjectName(), item.getYear())) {
+                            List<CourseSubject> collect = courseSubjectList.stream().filter(s -> s.getSubjectName().equals(item.getSubjectName()) || s.getYear().equals(item.getYear())).collect(Collectors.toList());
+                            item.setCourseSubjectList(collect);
+                        }
+                    }
+                }
+            }
+            if (ObjectUtil.isNotEmpty(bo.getGoodsId())) {
+                List<CourseSubject> courseSubjects = new ArrayList<>();
+                GoodsVo goodsVo = iGoodsService.selectDetail(bo.getGoodsId());
+                if (ObjectUtil.isNotEmpty(goodsVo)) {
+                    if (ObjectUtil.isAllNotEmpty(item.getSubjectName(), item.getYear())) {
+                        CourseSubject courseSubject = new CourseSubject();
+                        courseSubject.setGoodsName(goodsVo.getGoodsName());
+                        courseSubject.setStandPrice(goodsVo.getStandPrice());
+                        courseSubject.setGoodsTypeName(this.getGoodType(goodsVo.getGoodsType()));
+                        if (goodsVo.getSubjectNames().contains(item.getSubjectName())) {
+                            if (item.getYear().equals(goodsVo.getYear())) {
+                                courseSubject.setSubjectName(item.getSubjectName());
+                                courseSubject.setYear(Long.valueOf(item.getYear()));
+                                courseSubjects.add(courseSubject);
+                                item.setCourseSubjectList(courseSubjects);
+                            }else {
+                                item.setCourseSubjectList(null);
+                            }
+                        }else {
+                            item.setCourseSubjectList(null);
+                        }
+                    }
+                }
+            }
+        });
+        return excelStaffVos;
+    }
 }

+ 48 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/staff/vo/ExcelStaffGoodVo.java

@@ -0,0 +1,48 @@
+package com.zhongzheng.modules.bs.staff.vo;
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.zhongzheng.modules.course.domain.CourseSubject;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+
+/**
+ * 企业部门员工匹配科目商品视图对象 mall_package
+ *
+ * @author ruoyi
+ * @date 2024-03-21
+ */
+@Data
+@ApiModel("企业部门员工匹配科目商品视图对象")
+public class ExcelStaffGoodVo {
+	/** 员工姓名 */
+	@Excel(name = "姓名")
+	@ApiModelProperty("员工姓名")
+	private String staffName;
+	/** 身份证号 */
+	@Excel(name = "身份证号码")
+	@ApiModelProperty("身份证号")
+	private String idCard;
+	/** 手机号 */
+	@Excel(name = "手机号码")
+	@ApiModelProperty("手机号")
+	private String telephone;
+	/** 学历 */
+	@Excel(name = "学历")
+	@ApiModelProperty("学历")
+	private String degree;
+	@Excel(name = "所属公司")
+	@ApiModelProperty("所属公司")
+	private String companyName;
+	/** 科目 */
+	@Excel(name = "科目")
+	@ApiModelProperty("科目")
+	private String subjectName;
+	/** 年份 */
+	@Excel(name = "年份")
+	@ApiModelProperty("年份")
+	private String year;
+	private List<CourseSubject> courseSubjectList;
+}

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/staff/vo/StaffVo.java

@@ -5,6 +5,8 @@ import com.zhongzheng.modules.bs.staff.domain.StaffBankInfo;
 import com.zhongzheng.modules.bs.staff.domain.StaffContractArchives;
 import com.zhongzheng.modules.bs.staff.domain.StaffEmergencyContact;
 import com.zhongzheng.modules.bs.staff.domain.StaffEduBg;
+import com.zhongzheng.modules.course.domain.CourseSubject;
+import com.zhongzheng.modules.goods.vo.GoodsVo;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -184,4 +186,5 @@ public class StaffVo {
 	private List<StaffContractArchives> staffContractArchivesList;
 	@ApiModelProperty("员工证书数量")
 	private int certificateSize;
+	private List<CourseSubject> courseSubjectList;
 }

+ 20 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/domain/CourseSubject.java

@@ -50,9 +50,29 @@ private static final long serialVersionUID=1L;
     @TableField(exist = false)
     private Long oId;
     /** 商品id */
+    @TableField(exist = false)
     private Long goodsId;
     /** 商品类型*/
+
+    @TableField(exist = false)
     private Integer goodsType;
+    /** 商品类型名称*/
+
+    @TableField(exist = false)
+    private String goodsTypeName;
+    /** 商品年份*/
+
+    @TableField(exist = false)
+    private Long  year;
+    /** 商品名称*/
+
+    @TableField(exist = false)
+    private String  goodsName;
+    /** 商品标准价格*/
+
+    @TableField(exist = false)
+    private BigDecimal  standPrice;
     /** 题库模块章节列表 */
+    @TableField(exist = false)
     private List<GoodsAttachedVo> goodsAttachedVoList;
 }

+ 4 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/vo/CourseSubjectVo.java

@@ -2,6 +2,8 @@ package com.zhongzheng.modules.course.vo;
 
 import com.zhongzheng.common.annotation.Excel;
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.zhongzheng.modules.goods.vo.CompanyGoodsVo;
+import com.zhongzheng.modules.goods.vo.GoodsVo;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -50,4 +52,6 @@ public class CourseSubjectVo {
 	@ApiModelProperty("排序")
 	private Integer sort;
 	private Long goodsId;
+	private GoodsVo goodsVo;
+	private List<GoodsVo> GoodsVos;
 }

+ 1 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/mapper/GoodsMapper.java

@@ -29,6 +29,7 @@ import java.util.List;
 public interface GoodsMapper extends BaseMapper<Goods> {
     List<GoodsVo> selectAllList(GoodsQueryBo bo);
     List<CompanyGoodsVo> selectCompanyGoodList(GoodsQueryBo bo);
+    List<CompanyGoodsVo> selectMatchGoods(GoodsQueryBo bo);
 
     GoodsVo selectDetail(Long goodsId);
 

+ 1 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/service/IGoodsService.java

@@ -6,6 +6,7 @@ import com.zhongzheng.modules.course.bo.ExternalQuestionBo;
 import com.zhongzheng.modules.course.bo.ReplenishExamBo;
 import com.zhongzheng.modules.course.domain.Major;
 import com.zhongzheng.modules.course.vo.CourseModuleFreeExamVo;
+import com.zhongzheng.modules.course.vo.CourseSubjectVo;
 import com.zhongzheng.modules.course.vo.ExternalQuestionVo;
 import com.zhongzheng.modules.course.vo.ReplenishExamVo;
 import com.zhongzheng.modules.exam.bo.ExamNumberGoodsQueryBo;

+ 24 - 8
zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/service/impl/GoodsServiceImpl.java

@@ -445,6 +445,9 @@ public class GoodsServiceImpl extends ServiceImpl<GoodsMapper, Goods> implements
         if (Validator.isNotEmpty(bo.getGoodsName())) {
             bo.setGoodsName(bo.getGoodsName().trim());
         }
+        bo.setStatus(new ArrayList<Integer>(){{
+            add(1);
+        }});
         List<CompanyGoodsVo> list = baseMapper.selectCompanyGoodList(bo);
         if (Validator.isNotEmpty(bo.getSectionNum()) && bo.getSectionNum().longValue() == 1) {
             for (CompanyGoodsVo vo : list) {
@@ -528,6 +531,18 @@ public class GoodsServiceImpl extends ServiceImpl<GoodsMapper, Goods> implements
         return list;
     }
 
+    public String getGoodType(Integer type) {
+        switch (type) {
+            case 1:
+                return "课";
+            case 2:
+                return "题";
+            case 6:
+                return "直";
+        }
+        return null;
+    }
+
     @Override
     public List<CompanyOrderBusinessConfigGoodsVo> getBsGoodsPackageList(GoodsQueryBo bo) {
         if (Validator.isNotEmpty(bo.getGoodsType()) && bo.getGoodsType() == 10) {
@@ -551,9 +566,9 @@ public class GoodsServiceImpl extends ServiceImpl<GoodsMapper, Goods> implements
                 bsUserGoodsCollection.setConfigId(item.getConfigId());
                 bsUserGoodsCollection.setStatus(1);
                 BsUserGoodsCollection bsUserGoodsCollectionVo = iBsUserGoodsCollectionService.selectById(bsUserGoodsCollection);
-                if (ObjectUtil.isEmpty(bsUserGoodsCollectionVo)){
+                if (ObjectUtil.isEmpty(bsUserGoodsCollectionVo)) {
                     item.setCollectStatus(0);
-                }else {
+                } else {
                     item.setCollectStatus(bsUserGoodsCollectionVo.getCollectStatus());
                 }
                 List<Long> collect1 = longs.stream().distinct().collect(Collectors.toList());
@@ -575,10 +590,11 @@ public class GoodsServiceImpl extends ServiceImpl<GoodsMapper, Goods> implements
                                     listByIDs.forEach(courseSubject -> {
                                         courseSubject.setGoodsId(goodsVo.getGoodsId());
                                         courseSubject.setGoodsType(goodsVo.getGoodsType());
-                                        if (Validator.isNotEmpty(goodsVo.getGoodsType()) && goodsVo.getGoodsType() == 6) {
-                                            GoodsAttachedQueryBo goodsAttached = new GoodsAttachedQueryBo();
-                                            goodsAttached.setGoodsId(goodsVo.getGoodsId());
-                                        }
+                                        GoodsVo vo = this.selectDetail(goodsVo.getGoodsId());
+                                        courseSubject.setYear(vo.getYear());
+                                        courseSubject.setGoodsName(vo.getGoodsName());
+                                        courseSubject.setStandPrice(vo.getStandPrice());
+                                        courseSubject.setGoodsTypeName(getGoodType(goodsVo.getGoodsType()));
                                     });
                                     courseSubjectList.addAll(listByIDs);
                                 }
@@ -663,9 +679,9 @@ public class GoodsServiceImpl extends ServiceImpl<GoodsMapper, Goods> implements
         bsUserGoodsCollection.setGoodsId(goodsId);
         bsUserGoodsCollection.setStatus(1);
         BsUserGoodsCollection bsUserGoodsCollectionVo = iBsUserGoodsCollectionService.selectById(bsUserGoodsCollection);
-        if(ObjectUtil.isEmpty(bsUserGoodsCollectionVo)){
+        if (ObjectUtil.isEmpty(bsUserGoodsCollectionVo)) {
             goodsVo.setCollectStatus(0);
-        }else {
+        } else {
             goodsVo.setCollectStatus(bsUserGoodsCollectionVo.getCollectStatus());
         }
 //        if (ObjectUtils.isNull(goodsVo.getSpecTemplateId()) ||

+ 2 - 2
zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/vo/CompanyGoodsVo.java

@@ -35,8 +35,8 @@ public class CompanyGoodsVo {
 	@ApiModelProperty("供应方(服务)")
 	private Long supplyId;
 	/** $column.columnComment */
-	@Excel(name = "供应方" , readConverterExp = "商品类型 1视频2题库 3补考 4前培 ")
-	@ApiModelProperty("商品类型 1视频2题库 3补考 4前培 ")
+	@Excel(name = "供应方" , readConverterExp = "商品类型 1课程 2题库 6直播 10商品包 ")
+	@ApiModelProperty("商品类型 1课程 2题库 6直播 10商品包 ")
 	private Integer goodsType;
 	/** 教育类型id */
 	@Excel(name = "教育类型id")

+ 4 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/vo/GoodsVo.java

@@ -40,6 +40,10 @@ public class GoodsVo {
 	@Excel(name = "供应方" , readConverterExp = "商品类型 1视频2题库 3补考 4前培 ")
 	@ApiModelProperty("商品类型 1视频2题库 3补考 4前培 ")
 	private Integer goodsType;
+	/** $column.columnComment */
+	@Excel(name = "供应方" , readConverterExp = "商品类型 1视频2题库 3补考 4前培 ")
+	@ApiModelProperty("商品类型名称 1视频2题库 3补考 4前培 ")
+	private String goodsTypeName;
 	/** 教育类型id */
 	@Excel(name = "教育类型id")
 	@ApiModelProperty("教育类型id")

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/vo/CompanyOrderBusinessConfigGoodsVo.java

@@ -51,6 +51,8 @@ public class CompanyOrderBusinessConfigGoodsVo {
 	private Integer status;
 	@ApiModelProperty("业务层次名称")
 	private String businessName;
+	@ApiModelProperty("业务层次名称")
+	private Long businessId;
 	@ApiModelProperty("教育类型名称")
 	private String educationName;
 	@ApiModelProperty("项目名称")

+ 1 - 1
zhongzheng-system/src/main/resources/mapper/modules/bsSys/BsSysMenuMapper.xml

@@ -101,7 +101,7 @@
                         m.icon,
                         m.order_num,
                         m.create_time
-        from sys_menu m
+        from bs_sys_menu m
                  left join bs_sys_role_menu rm on m.menu_id = rm.menu_id
                  left join bs_sys_user_role ur on rm.role_id = ur.role_id
                  left join bs_sys_role ro on ur.role_id = ro.role_id

+ 51 - 0
zhongzheng-system/src/main/resources/mapper/modules/goods/GoodsMapper.xml

@@ -1298,4 +1298,55 @@
             ORDER BY g.create_time DESC
         </if>
     </select>
+    <select id="selectMatchGoods" parameterType="com.zhongzheng.modules.goods.bo.GoodsQueryBo" resultMap="CompanyGoodsResultVo">
+        SELECT
+        g.*
+        FROM
+        goods g
+        LEFT JOIN course_education_type cet ON g.education_type_id = cet.id
+        LEFT JOIN course_project_type cpt ON g.project_id = cpt.id
+        LEFT JOIN course_business cb ON g.business_id = cb.id
+        WHERE
+        1 = 1
+        AND g.goods_type != 5
+        AND g.first_choice_goods = 0
+        <if test="status != null and status.size()!=0 ">
+            AND g.status in
+            <foreach collection="status" item="item" index="index" open="(" close=")" separator=",">
+                #{item}
+            </foreach>
+        </if>
+        <if test="educationTypeId != null and educationTypeId != ''">
+            AND g.education_type_id = #{educationTypeId}
+        </if>
+        <if test="businessId != null and businessId != ''">
+            AND g.business_id = #{businessId}
+        </if>
+        <if test="projectId != null and projectId != ''">
+            AND g.project_id = #{projectId}
+        </if>
+        <if test="goodsStatus != null ">
+            AND g.goods_status = #{goodsStatus}
+        </if>
+        <if test="goodsType ==1 and haveCourse != null and haveCourse == 1">
+            AND (SELECT count(*) from goods_course gc LEFT JOIN course c ON gc.course_id = c.course_id where gc.goods_id
+            = g.goods_id and c.`status` = 1
+            ) >0
+        </if>
+        <if test="gradeType != null and gradeType != ''">
+            AND g.grade_type = #{gradeType}
+        </if>
+        <if test="sortType != null and sortType == 2">
+            ORDER BY g.show_sort DESC,g.stand_price ASC
+        </if>
+        <if test="sortType != null and sortType == 3">
+            ORDER BY g.show_sort DESC,g.stand_price DESC
+        </if>
+        <if test="sortType != null and sortType == 1">
+            ORDER BY g.show_sort DESC,g.create_time DESC
+        </if>
+        <if test="sortType == null">
+            ORDER BY g.create_time DESC
+        </if>
+    </select>
 </mapper>

+ 4 - 2
zhongzheng-system/src/main/resources/mapper/modules/order/OrderBusinessConfigGoodsMapper.xml

@@ -40,6 +40,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="projectName" column="project_name"/>
         <result property="configName" column="config_name"/>
         <result property="mainImg" column="main_img"/>
+        <result property="businessId" column="businessId"/>
     </resultMap>
 
     <resultMap type="com.zhongzheng.modules.goods.vo.GoodsConfigVo" id="GoodsResultVo">
@@ -213,10 +214,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         group_concat( bcg.goods_ids ) goods_ids,
         cet.education_name,
         cb.business_name,
+        cb.id AS businessId,
         cpt.project_name
         FROM
-        order_business_config_goods bcg
-        left join  order_business_config obc ON bcg.config_id = obc.id
+        order_business_config obc
+        left join  order_business_config_goods bcg ON bcg.config_id = obc.id
         LEFT JOIN course_business cb ON obc.business_id = cb.id
         LEFT JOIN course_project_type cpt ON cb.project_id = cpt.id
         LEFT JOIN course_education_type cet ON cet.id = cpt.education_id