From 5de7e6e552bfceb3d5c4dc28482833150e37b49e Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期三, 17 一月 2024 15:09:48 +0800
Subject: [PATCH] 调整

---
 server/service/src/main/java/com/doumee/dao/business/model/Solutions.java                       |    3 
 server/service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java           |   26 ++++++
 server/service/src/main/java/com/doumee/config/mybatis/EasySqlInjector.java                     |   19 ++++
 server/service/src/main/java/com/doumee/dao/business/model/Company.java                         |    7 +
 server/service/src/main/java/com/doumee/service/business/impl/SolutionsServiceImpl.java         |   30 +++++-
 server/service/src/main/java/com/doumee/service/business/impl/InsuranceServiceImpl.java         |   19 +++-
 server/company/src/main/java/com/doumee/api/business/CompanyController.java                     |    9 ++
 server/service/src/main/java/com/doumee/dao/business/CompanyPermissionMapper.java               |    3 
 server/service/src/main/java/com/doumee/dao/business/join/SolutionWorktypeJoinMapper.java       |   13 +++
 server/service/src/main/java/com/doumee/service/business/impl/CompanyPermissionServiceImpl.java |   43 ++++++++++
 server/service/src/main/java/com/doumee/dao/business/model/CompanyPermission.java               |    4 +
 server/company/src/main/java/com/doumee/api/business/CompanyPermissionController.java           |    8 +
 server/service/src/main/java/com/doumee/dao/business/model/SolutionWorktype.java                |    4 +
 13 files changed, 174 insertions(+), 14 deletions(-)

diff --git a/server/company/src/main/java/com/doumee/api/business/CompanyController.java b/server/company/src/main/java/com/doumee/api/business/CompanyController.java
index 66b1143..643b271 100644
--- a/server/company/src/main/java/com/doumee/api/business/CompanyController.java
+++ b/server/company/src/main/java/com/doumee/api/business/CompanyController.java
@@ -6,6 +6,7 @@
 import com.doumee.core.model.ApiResponse;
 import com.doumee.core.model.PageWrap;
 import com.doumee.core.model.PageData;
+import com.doumee.core.utils.Constants;
 import com.doumee.dao.business.model.Company;
 import com.doumee.service.business.CompanyService;
 import io.swagger.annotations.Api;
@@ -71,6 +72,14 @@
     @PostMapping("/page")
     @RequiresPermissions("business:company:query")
     public ApiResponse<PageData<Company>> findPage (@RequestBody PageWrap<Company> pageWrap) {
+        //鏉冮檺鑼冨洿鍐�
+        return ApiResponse.success(companyService.findPage(pageWrap));
+    }
+    @ApiOperation("鏌ヨ鍏ㄩ儴鏁版嵁(璐﹀彿鍒嗛厤浼佷笟浣跨敤)")
+    @PostMapping("/pageAll")
+    @RequiresPermissions("business:companypermission:create")
+    public ApiResponse<PageData<Company>> findPageAll (@RequestBody PageWrap<Company> pageWrap) {
+        pageWrap.getModel().setQueryFlag(Constants.ONE);//鏌ヨ鍏ㄩ儴
         return ApiResponse.success(companyService.findPage(pageWrap));
     }
 
diff --git a/server/company/src/main/java/com/doumee/api/business/CompanyPermissionController.java b/server/company/src/main/java/com/doumee/api/business/CompanyPermissionController.java
index 3eea3cc..b2db3d6 100644
--- a/server/company/src/main/java/com/doumee/api/business/CompanyPermissionController.java
+++ b/server/company/src/main/java/com/doumee/api/business/CompanyPermissionController.java
@@ -31,7 +31,7 @@
     private CompanyPermissionService companyPermissionService;
 
     @PreventRepeat
-    @ApiOperation("鏂板缓")
+    @ApiOperation("璐﹀彿鍒嗛厤浼佷笟鏉冮檺")
     @PostMapping("/create")
     @RequiresPermissions("business:companypermission:create")
     public ApiResponse create(@RequestBody CompanyPermission companyPermission) {
@@ -73,6 +73,12 @@
     public ApiResponse<PageData<CompanyPermission>> findPage (@RequestBody PageWrap<CompanyPermission> pageWrap) {
         return ApiResponse.success(companyPermissionService.findPage(pageWrap));
     }
+    @ApiOperation("鏌ヨ鍏ㄩ儴")
+    @PostMapping("/list")
+    @RequiresPermissions("business:companypermission:query")
+    public ApiResponse<List<CompanyPermission>> findList(@RequestBody CompanyPermission pageWrap) {
+        return ApiResponse.success(companyPermissionService.findList(pageWrap));
+    }
 
     @ApiOperation("瀵煎嚭Excel")
     @PostMapping("/exportExcel")
diff --git a/server/service/src/main/java/com/doumee/config/mybatis/EasySqlInjector.java b/server/service/src/main/java/com/doumee/config/mybatis/EasySqlInjector.java
new file mode 100644
index 0000000..baabea5
--- /dev/null
+++ b/server/service/src/main/java/com/doumee/config/mybatis/EasySqlInjector.java
@@ -0,0 +1,19 @@
+package com.doumee.config.mybatis;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.core.injector.AbstractMethod;
+import com.baomidou.mybatisplus.extension.injector.methods.InsertBatchSomeColumn;
+import com.github.yulichang.injector.MPJSqlInjector;
+
+import java.util.List;
+
+public class EasySqlInjector extends MPJSqlInjector {
+    @Override
+    public List<AbstractMethod> getMethodList(Class<?> mapperClass ) {
+        // 娉ㄦ剰锛氭SQL娉ㄥ叆鍣ㄧ户鎵夸簡DefaultSqlInjector(榛樿娉ㄥ叆鍣�)锛岃皟鐢ㄤ簡DefaultSqlInjector鐨刧etMethodList鏂规硶锛屼繚鐣欎簡mybatis-plus鐨勮嚜甯︽柟娉�
+        List<AbstractMethod> methodList = super.getMethodList(mapperClass);
+        methodList.add(new InsertBatchSomeColumn(i -> i.getFieldFill() != FieldFill.UPDATE));
+        return methodList;
+    }
+
+}
\ No newline at end of file
diff --git a/server/service/src/main/java/com/doumee/dao/business/CompanyPermissionMapper.java b/server/service/src/main/java/com/doumee/dao/business/CompanyPermissionMapper.java
index ccb7976..ef6e91f 100644
--- a/server/service/src/main/java/com/doumee/dao/business/CompanyPermissionMapper.java
+++ b/server/service/src/main/java/com/doumee/dao/business/CompanyPermissionMapper.java
@@ -3,10 +3,13 @@
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.doumee.dao.business.model.CompanyPermission;
 
+import java.util.List;
+
 /**
  * @author 姹熻箘韫�
  * @date 2024/01/16 10:03
  */
 public interface CompanyPermissionMapper extends BaseMapper<CompanyPermission> {
 
+    void insertBatchSomeColumn(List<CompanyPermission> list);
 }
diff --git a/server/service/src/main/java/com/doumee/dao/business/join/SolutionWorktypeJoinMapper.java b/server/service/src/main/java/com/doumee/dao/business/join/SolutionWorktypeJoinMapper.java
new file mode 100644
index 0000000..a532752
--- /dev/null
+++ b/server/service/src/main/java/com/doumee/dao/business/join/SolutionWorktypeJoinMapper.java
@@ -0,0 +1,13 @@
+package com.doumee.dao.business.join;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.doumee.dao.business.model.SolutionWorktype;
+import com.github.yulichang.base.mapper.MPJJoinMapper;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2024/01/16 10:03
+ */
+public interface SolutionWorktypeJoinMapper extends MPJJoinMapper<SolutionWorktype> {
+
+}
diff --git a/server/service/src/main/java/com/doumee/dao/business/model/Company.java b/server/service/src/main/java/com/doumee/dao/business/model/Company.java
index 67ac5cd..a46d1f1 100644
--- a/server/service/src/main/java/com/doumee/dao/business/model/Company.java
+++ b/server/service/src/main/java/com/doumee/dao/business/model/Company.java
@@ -1,5 +1,6 @@
 package com.doumee.dao.business.model;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.doumee.core.annotation.excel.ExcelColumn;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -115,5 +116,11 @@
     @ExcelColumn(name="鐢靛瓙绛捐璇佹椂闂�")
     @JsonFormat(pattern = "yyyy-MM-dd")
     private Date signDate;
+    @ApiModelProperty(value = "鏌ヨ杈ㄨ瘑 0鏉冮檺鑼冨洿鍐� 1鍏ㄩ儴")
+    @TableField(exist = false)
+    private int queryFlag ;
+    @ApiModelProperty(value = "鏄惁鎷ユ湁鏉冮檺 0鏃� 1鏈�")
+    @TableField(exist = false)
+    private int hasPerimission ;
 
 }
diff --git a/server/service/src/main/java/com/doumee/dao/business/model/CompanyPermission.java b/server/service/src/main/java/com/doumee/dao/business/model/CompanyPermission.java
index 70c7441..e293f39 100644
--- a/server/service/src/main/java/com/doumee/dao/business/model/CompanyPermission.java
+++ b/server/service/src/main/java/com/doumee/dao/business/model/CompanyPermission.java
@@ -9,6 +9,7 @@
 import lombok.Data;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import java.util.Date;
+import java.util.List;
 
 /**
  * 绠$悊鍛樼鐞嗕紒涓氭潈闄�
@@ -58,5 +59,8 @@
     @ApiModelProperty(value = "鐢ㄦ埛缂栫爜", example = "1")
     @ExcelColumn(name="鐢ㄦ埛缂栫爜")
     private Integer userId;
+    @ApiModelProperty(value = "浼佷笟缂栫爜闆嗗悎", example = "1")
+    @ExcelColumn(name="浼佷笟缂栫爜闆嗗悎")
+    private List<Integer> companyIdList;
 
 }
diff --git a/server/service/src/main/java/com/doumee/dao/business/model/SolutionWorktype.java b/server/service/src/main/java/com/doumee/dao/business/model/SolutionWorktype.java
index f33fa6e..6cf2190 100644
--- a/server/service/src/main/java/com/doumee/dao/business/model/SolutionWorktype.java
+++ b/server/service/src/main/java/com/doumee/dao/business/model/SolutionWorktype.java
@@ -1,5 +1,6 @@
 package com.doumee.dao.business.model;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.doumee.core.annotation.excel.ExcelColumn;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -66,5 +67,8 @@
     @ApiModelProperty(value = "宸ョ缂栫爜锛堝叧鑱攚orktype锛�", example = "1")
     @ExcelColumn(name="宸ョ缂栫爜锛堝叧鑱攚orktype锛�")
     private Integer worktypeId;
+    @ApiModelProperty(value = "宸ョ鍚嶇О", example = "1")
+    @TableField(exist = false)
+    private String worktypeName;
 
 }
diff --git a/server/service/src/main/java/com/doumee/dao/business/model/Solutions.java b/server/service/src/main/java/com/doumee/dao/business/model/Solutions.java
index 59d6ce2..fb0f70a 100644
--- a/server/service/src/main/java/com/doumee/dao/business/model/Solutions.java
+++ b/server/service/src/main/java/com/doumee/dao/business/model/Solutions.java
@@ -152,6 +152,9 @@
     @ApiModelProperty(value = "宸ョ缂栫爜闆嗗悎", example = "1")
     @TableField(exist = false)
     private List<Integer> worktypeIdList;
+    @ApiModelProperty(value = "宸ョ鍏宠仈闆嗗悎", example = "1")
+    @TableField(exist = false)
+    private  List<SolutionWorktype> worktypeList;
 
 
 }
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/CompanyPermissionServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/CompanyPermissionServiceImpl.java
index f2cf034..4229d86 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/CompanyPermissionServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/CompanyPermissionServiceImpl.java
@@ -1,10 +1,17 @@
 package com.doumee.service.business.impl;
 
+import com.doumee.core.constants.ResponseStatus;
+import com.doumee.core.exception.BusinessException;
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
+import com.doumee.core.utils.Constants;
 import com.doumee.core.utils.Utils;
+import com.doumee.dao.business.CompanyMapper;
 import com.doumee.dao.business.CompanyPermissionMapper;
+import com.doumee.dao.business.model.Company;
 import com.doumee.dao.business.model.CompanyPermission;
+import com.doumee.dao.system.SystemUserMapper;
+import com.doumee.dao.system.model.SystemUser;
 import com.doumee.service.business.CompanyPermissionService;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
@@ -14,6 +21,8 @@
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
+import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -26,10 +35,42 @@
 
     @Autowired
     private CompanyPermissionMapper companyPermissionMapper;
+    @Autowired
+    private SystemUserMapper systemUserMapper;
+    @Autowired
+    private CompanyMapper companyMapper;
 
     @Override
     public Integer create(CompanyPermission companyPermission) {
-        companyPermissionMapper.insert(companyPermission);
+        if(companyPermission.getUserId() == null || companyPermission.getCompanyIdList() == null || companyPermission.getCompanyIdList().size()==0){
+            throw  new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
+        SystemUser user =systemUserMapper.selectById(companyPermission.getUserId());
+        if(user == null || (user.getDeleted() !=null && user.getDeleted())){
+            throw  new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝鐢ㄦ埛淇℃伅涓嶅瓨鍦紝璇峰皾璇曞埛鏂伴〉闈㈤噸璇曪紒");
+        }
+        List<Company> companieList = companyMapper.selectList(new QueryWrapper<Company>().lambda()
+                .in(Company::getId,companyPermission.getCompanyIdList())
+                .eq(Company::getIsdeleted, Constants.ZERO));
+
+        if(companieList == null || companieList.size() == 0){
+            throw  new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝璇烽�夋嫨鏈夋晥浼佷笟锛岃灏濊瘯鍒锋柊椤甸潰閲嶈瘯锛�");
+        }
+        Date date = new Date();
+        List<CompanyPermission> list = new ArrayList<>();
+        for(Company c : companieList){
+            CompanyPermission model = new CompanyPermission();
+            model.setCompanyId(c.getId());
+            model.setIsdeleted(Constants.ZERO);
+            model.setIsdeleted(Constants.ZERO);
+            model.setCreator(user.getId());
+            model.setUserId(companyPermission.getUserId());
+            model.setCreateDate(date);
+            list.add(model);
+        }
+        //鍒櫎鍘熸湁鐨勶紝鍦ㄦ壒閲忔彃鍏ユ柊鐨�
+        companyPermissionMapper.delete(new QueryWrapper<CompanyPermission>().lambda().eq(CompanyPermission::getUserId,companyPermission.getUserId()));
+        companyPermissionMapper.insertBatchSomeColumn(list);
         return companyPermission.getId();
     }
 
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java
index 83d3f76..0204f3e 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java
@@ -1,15 +1,23 @@
 package com.doumee.service.business.impl;
 
+import com.doumee.core.constants.ResponseStatus;
+import com.doumee.core.exception.BusinessException;
+import com.doumee.core.model.LoginUserInfo;
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
+import com.doumee.core.utils.Constants;
 import com.doumee.core.utils.Utils;
 import com.doumee.dao.business.CompanyMapper;
+import com.doumee.dao.business.CompanyPermissionMapper;
 import com.doumee.dao.business.model.Company;
+import com.doumee.dao.business.model.CompanyPermission;
+import com.doumee.dao.business.model.Insurance;
 import com.doumee.service.business.CompanyService;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.apache.shiro.SecurityUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
@@ -26,9 +34,12 @@
 
     @Autowired
     private CompanyMapper companyMapper;
+    @Autowired
+    private CompanyPermissionMapper companyPermissionMapper;
 
     @Override
     public Integer create(Company company) {
+
         companyMapper.insert(company);
         return company.getId();
     }
@@ -54,6 +65,10 @@
 
     @Override
     public void updateById(Company company) {
+        Company model = findById(company.getId());
+        if(model == null  || !Constants.equalsInteger(model.getIsdeleted(),Constants.ZERO) ){
+            throw  new BusinessException(ResponseStatus.DATA_EMPTY );
+        }
         companyMapper.updateById(company);
     }
 
@@ -89,6 +104,15 @@
         IPage<Company> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
         QueryWrapper<Company> queryWrapper = new QueryWrapper<>();
         Utils.MP.blankToNull(pageWrap.getModel());
+        pageWrap.getModel().setIsdeleted(Constants.ZERO);
+        LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        if(pageWrap.getModel().getQueryFlag() == 0){
+            //鍙兘鐪嬫潈闄愯寖鍥村唴
+            queryWrapper.exists("select b.id from company_permission b where b.user_id="+user.getId()+" and b.isdeleted=0 and b.company_id=company.id");
+        } else if (pageWrap.getModel().getQueryFlag() == 1) {
+            //鏌ヨ鏄惁鏈夋煡鐪嬫瑠闄�
+            queryWrapper.select("*,(select count(1) from company_permission b where b.user_id="+user.getId()+" and b.isdeleted=0 and b.company_id=company.id) as hasPerimission");
+        }
         if (pageWrap.getModel().getId() != null) {
             queryWrapper.lambda().eq(Company::getId, pageWrap.getModel().getId());
         }
@@ -110,7 +134,7 @@
             queryWrapper.lambda().eq(Company::getIsdeleted, pageWrap.getModel().getIsdeleted());
         }
         if (pageWrap.getModel().getName() != null) {
-            queryWrapper.lambda().eq(Company::getName, pageWrap.getModel().getName());
+            queryWrapper.lambda().like(Company::getName, pageWrap.getModel().getName());
         }
         if (pageWrap.getModel().getRemark() != null) {
             queryWrapper.lambda().eq(Company::getRemark, pageWrap.getModel().getRemark());
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/InsuranceServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/InsuranceServiceImpl.java
index 26ae0b7..2bc2611 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/InsuranceServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/InsuranceServiceImpl.java
@@ -71,6 +71,7 @@
         return insurance.getId();
     }
     private void dealWorkTypeData(Insurance insurance, Insurance newModel, List<Worktype> worktypeList,boolean isNew) {
+       int num=0;
         for(Worktype w : worktypeList) {
             //鍩虹鐗堟湰
             w.setInsuranceId(insurance.getId());
@@ -80,6 +81,7 @@
             w.setDataType(insurance.getDataType());
             w.setStatus(Constants.ZERO);
             w.setVersion(insurance.getVersion());
+            w.setSortnum(num++);
             worktypeMapper.insert(w);
 
             //鍘嗗彶鐗堟湰鐨勫伐绉嶄俊鎭�
@@ -89,6 +91,7 @@
             newType.setBaseId(w.getId());
             newType.setDataType(Constants.ONE);
             newType.setVersion(newModel.getVersion());
+            w.setSortnum(num++);
             worktypeMapper.insert(newType);
         }
     }
@@ -159,7 +162,6 @@
 
     @Override
     public void updateById(Insurance insurance) {
-        LoginUserInfo user= (LoginUserInfo)SecurityUtils.getSubject().getPrincipal();
         Insurance model = findById(insurance.getId());
         if(model == null  || !Constants.equalsInteger(model.getIsdeleted(),Constants.ZERO)
                 || !Constants.equalsInteger(model.getDataType(),Constants.ZERO)){
@@ -167,7 +169,7 @@
         }
         //鏁版嵁鏈夋晥鎬ф牎楠�
         initCreateParam(insurance);
-
+        LoginUserInfo user= (LoginUserInfo)SecurityUtils.getSubject().getPrincipal();
         Insurance updateModel = new Insurance();
         updateModel.setEditor(user.getId());
         updateModel.setName(insurance.getName());
@@ -241,7 +243,16 @@
 
     @Override
     public Insurance findById(Integer id) {
-        return insuranceMapper.selectById(id);
+        Insurance model = insuranceMapper.selectById(id);
+        if(model == null  || !Constants.equalsInteger(model.getIsdeleted(),Constants.ZERO)){
+            throw  new BusinessException(ResponseStatus.DATA_EMPTY );
+        }
+        List<Worktype> worktypeList = worktypeMapper.selectList(new QueryWrapper<Worktype>().lambda()
+                .eq(Worktype::getInsuranceId,id)
+                .eq(Worktype::getIsdeleted,Constants.ZERO)
+                .orderByAsc(Worktype::getSortnum));
+        model.setWorktypeList(worktypeList);
+        return model;
     }
 
     @Override
@@ -285,7 +296,7 @@
             queryWrapper.lambda().eq(Insurance::getIsdeleted, pageWrap.getModel().getIsdeleted());
         }
         if (pageWrap.getModel().getName() != null) {
-            queryWrapper.lambda().eq(Insurance::getName, pageWrap.getModel().getName());
+            queryWrapper.lambda().like(Insurance::getName, pageWrap.getModel().getName());
         }
         if (pageWrap.getModel().getRemark() != null) {
             queryWrapper.lambda().eq(Insurance::getRemark, pageWrap.getModel().getRemark());
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/SolutionsServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/SolutionsServiceImpl.java
index b04d642..0715696 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/SolutionsServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/SolutionsServiceImpl.java
@@ -11,12 +11,14 @@
 import com.doumee.dao.business.SolutionWorktypeMapper;
 import com.doumee.dao.business.SolutionsMapper;
 import com.doumee.dao.business.WorktypeMapper;
+import com.doumee.dao.business.join.SolutionWorktypeJoinMapper;
 import com.doumee.dao.business.model.*;
 import com.doumee.service.business.SolutionsService;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.shiro.SecurityUtils;
 import org.springframework.beans.BeanUtils;
@@ -42,7 +44,7 @@
     @Autowired
     private WorktypeMapper worktypeMapper;
     @Autowired
-    private SolutionWorktypeMapper solutionWorktypeMapper;
+    private SolutionWorktypeJoinMapper solutionWorktypeJoinMapper;
     @Autowired
     private InsuranceMapper insuranceMapper;
 
@@ -87,7 +89,7 @@
         if(worktypeList==null ||worktypeIdList.size()==0){
             throw  new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝宸ョ淇℃伅閫夋嫨鏈夎锛岃灏濊瘯鍒锋柊椤甸潰閲嶈瘯~" );
         }
-
+        int num =0;
         for(Worktype type : worktypeList) {
             //鍩虹鐗堟湰
             SolutionWorktype w = new SolutionWorktype();
@@ -97,13 +99,14 @@
             w.setCreateDate(solutions.getCreateDate());
             w.setWorktypeId(type.getId());
             w.setStatus(Constants.ZERO);
-            solutionWorktypeMapper.insert(w);
+            w.setSortnum(num++);
+            solutionWorktypeJoinMapper.insert(w);
 
             //鍘嗗彶鐗堟湰鐨勫伐绉嶄俊鎭�
             SolutionWorktype newType = new SolutionWorktype();
             BeanUtils.copyProperties(w, newType);
             newType.setSolutionId(newModel.getId());
-            solutionWorktypeMapper.insert(newType);
+            solutionWorktypeJoinMapper.insert(newType);
         }
 
     }
@@ -172,7 +175,7 @@
         solutionsMapper.insert(newModel);
 
         //鍒犻櫎鎵�鏈夊伐绉嶆暟鎹�
-        solutionWorktypeMapper.delete(new UpdateWrapper<SolutionWorktype>()
+        solutionWorktypeJoinMapper.delete(new UpdateWrapper<SolutionWorktype>()
                 .lambda()
                 .eq(SolutionWorktype::getSolutionId,solutions.getId())
         );
@@ -222,7 +225,20 @@
     }
     @Override
     public Solutions findById(Integer id) {
-        return solutionsMapper.selectById(id);
+        Solutions model = solutionsMapper.selectById(id);
+        if(model == null  || !Constants.equalsInteger(model.getIsdeleted(),Constants.ZERO)){
+            throw  new BusinessException(ResponseStatus.DATA_EMPTY );
+        }
+        MPJLambdaWrapper<SolutionWorktype> wrapper = new MPJLambdaWrapper<>();
+        wrapper.selectAll(SolutionWorktype.class);
+        wrapper.selectAs(Worktype::getName,SolutionWorktype::getWorktypeName);
+        wrapper.leftJoin(Worktype.class,Worktype::getId,SolutionWorktype::getWorktypeId);
+        wrapper.eq(SolutionWorktype::getSolutionId,id);
+        wrapper.eq(SolutionWorktype::getIsdeleted,Constants.ZERO);
+        wrapper.orderByAsc(SolutionWorktype::getSortnum);
+        List<SolutionWorktype> worktypeList = solutionWorktypeJoinMapper.selectJoinList(SolutionWorktype.class,wrapper);
+        model.setWorktypeList(worktypeList);
+        return model;
     }
 
     @Override
@@ -266,7 +282,7 @@
             queryWrapper.lambda().eq(Solutions::getIsdeleted, pageWrap.getModel().getIsdeleted());
         }
         if (pageWrap.getModel().getName() != null) {
-            queryWrapper.lambda().eq(Solutions::getName, pageWrap.getModel().getName());
+            queryWrapper.lambda().like(Solutions::getName, pageWrap.getModel().getName());
         }
         if (pageWrap.getModel().getRemark() != null) {
             queryWrapper.lambda().eq(Solutions::getRemark, pageWrap.getModel().getRemark());

--
Gitblit v1.9.3