From 9873e926fde8a52d3928dbae9649100b887b22a0 Mon Sep 17 00:00:00 2001
From: jiaosong <jiaosong6760@dingtalk.com>
Date: 星期一, 11 九月 2023 18:32:38 +0800
Subject: [PATCH] #公司查询 新增修改

---
 server/service/src/main/java/com/doumee/service/business/CompanyService.java                    |   21 +++++
 server/platform/src/main/java/com/doumee/api/business/CompanyController.java                    |    5 +
 server/service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java           |   83 ++++++++++++++++++++
 server/service/src/main/java/com/doumee/dao/business/model/Company.java                         |   52 +++++++++++--
 server/service/src/main/java/com/doumee/dao/business/join/CompanyJoinMapper.java                |   13 +++
 server/service/src/main/java/com/doumee/dao/business/model/dto/CompanyCreatOrUpdateRequest.java |   61 +++++++++++++++
 6 files changed, 223 insertions(+), 12 deletions(-)

diff --git a/server/platform/src/main/java/com/doumee/api/business/CompanyController.java b/server/platform/src/main/java/com/doumee/api/business/CompanyController.java
index 0f73c23..584e40e 100644
--- a/server/platform/src/main/java/com/doumee/api/business/CompanyController.java
+++ b/server/platform/src/main/java/com/doumee/api/business/CompanyController.java
@@ -7,12 +7,15 @@
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
 import com.doumee.dao.business.model.Company;
+import com.doumee.dao.business.model.dto.CompanyCreatOrUpdateRequest;
 import com.doumee.service.business.CompanyService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
 
 /**
  * @author AA
@@ -30,7 +33,7 @@
     @ApiOperation("鏂板缓")
     @PostMapping("/create")
     @RequiresPermissions("company:company:create")
-    public ApiResponse create(@RequestBody Company company) {
+    public ApiResponse create(@RequestBody @Valid CompanyCreatOrUpdateRequest company) {
         return ApiResponse.success(companyService.create(company));
     }
 
diff --git a/server/service/src/main/java/com/doumee/dao/business/join/CompanyJoinMapper.java b/server/service/src/main/java/com/doumee/dao/business/join/CompanyJoinMapper.java
new file mode 100644
index 0000000..6aca4b7
--- /dev/null
+++ b/server/service/src/main/java/com/doumee/dao/business/join/CompanyJoinMapper.java
@@ -0,0 +1,13 @@
+package com.doumee.dao.business.join;
+
+import com.doumee.dao.business.model.BaseGoods;
+import com.doumee.dao.business.model.Company;
+import com.github.yulichang.base.mapper.MPJJoinMapper;
+import org.springframework.stereotype.Repository;
+
+/**
+ * @author T14
+ */
+@Repository
+public interface CompanyJoinMapper extends MPJJoinMapper<Company> {
+}
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 3eee652..12ca91a 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,6 +1,7 @@
 package com.doumee.dao.business.model;
 
 import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.fasterxml.jackson.annotation.JsonFormat;
@@ -21,19 +22,19 @@
 public class Company {
 
     @TableId(type = IdType.AUTO)
-    @ApiModelProperty(value = "涓婚敭", example = "1")
+    @ApiModelProperty(value = "涓婚敭")
     private Integer id;
 
-    @ApiModelProperty(value = "鏄惁宸插垹闄� 0鏈垹闄� 1宸插垹闄�", example = "1")
+    @ApiModelProperty(value = "鏄惁宸插垹闄� 0鏈垹闄� 1宸插垹闄�")
     private Byte deleted;
 
-    @ApiModelProperty(value = "鍒涘缓浜虹紪鐮�", example = "1")
+    @ApiModelProperty(value = "鍒涘缓浜虹紪鐮�")
     private Integer createUser;
 
     @ApiModelProperty(value = "鍒涘缓鏃堕棿")
     private Date createTime;
 
-    @ApiModelProperty(value = "鏇存柊浜虹紪鐮�", example = "1")
+    @ApiModelProperty(value = "鏇存柊浜虹紪鐮�")
     private Integer updateUser;
 
     @ApiModelProperty(value = "鏇存柊鏃堕棿")
@@ -48,8 +49,12 @@
     @ApiModelProperty(value = "澶囨敞")
     private String remark;
 
-    @ApiModelProperty(value = "绠$悊鍛樿处鍙凤紙鍏宠仈system_user琛�)", example = "1")
+    @ApiModelProperty(value = "绠$悊鍛樿处鍙凤紙鍏宠仈system_user琛�)")
     private Integer managerId;
+
+    @ApiModelProperty(value = "绠$悊鍛樿处鍙�")
+    @TableField(exist = false)
+    private String managerUserName;
 
     @ApiModelProperty(value = "鑱旂郴浜�")
     private String linkname;
@@ -60,17 +65,48 @@
     @ApiModelProperty(value = "缁熶竴绀句細淇$敤浠g爜锛屼笉鍙噸澶�")
     private String creditCode;
 
-    @ApiModelProperty(value = "涓绘挱鏁伴噺闄愬埗", example = "1")
+    @ApiModelProperty(value = "涓绘挱鏁伴噺闄愬埗")
     private Integer userNum;
 
     @ApiModelProperty(value = "绯荤粺浣跨敤鏈夋晥鏈�")
     @JsonFormat(pattern = "yyyy-MM-dd")
     private Date oepnValidDate;
 
-    @ApiModelProperty(value = "璐︽埛寮�閫氱被鍨� 0璇曠敤璐︽埛 1姝e紡璐︽埛", example = "1")
+    @ApiModelProperty(value = "璐︽埛寮�閫氱被鍨� 0璇曠敤璐︽埛 1姝e紡璐︽埛")
     private Integer oepnType;
 
-    @ApiModelProperty(value = "閿�鍞汉鍛樼紪鐮侊紙鍏宠仈system_user琛�)", example = "1")
+    @ApiModelProperty(value = "閿�鍞汉鍛樼紪鐮侊紙鍏宠仈system_user琛�)")
     private Integer salesmanId;
 
+    @ApiModelProperty(value = "鐘舵�� 0鍚敤 1绂佺敤")
+    private Byte status;
+
+    @ApiModelProperty(value = "閿�鍞汉鍛樺鍚�")
+    @TableField(exist = false)
+    private String salesmanRealName;
+
+
+    @ApiModelProperty(value = "涓绘挱浜哄憳鏁伴噺")
+    @TableField(exist = false)
+    private Integer anchorUserNum;
+
+
+    @ApiModelProperty(value = "鍛樺伐浜哄憳鏁伴噺")
+    @TableField(exist = false)
+    private Integer empUserNum;
+
+    @ApiModelProperty(value = "鍟嗗搧鏁伴噺")
+    @TableField(exist = false)
+    private Integer goodsNum;
+
+
+    @ApiModelProperty(value = "绯荤粺浣跨敤鏈夋晥鏈熻捣濮�")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @TableField(exist = false)
+    private Date oepnValidDateStart;
+
+    @ApiModelProperty(value = "绯荤粺浣跨敤鏈夋晥鏈熺粓姝�")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @TableField(exist = false)
+    private Date oepnValidDateEnd;
 }
diff --git a/server/service/src/main/java/com/doumee/dao/business/model/dto/CompanyCreatOrUpdateRequest.java b/server/service/src/main/java/com/doumee/dao/business/model/dto/CompanyCreatOrUpdateRequest.java
new file mode 100644
index 0000000..9177ccc
--- /dev/null
+++ b/server/service/src/main/java/com/doumee/dao/business/model/dto/CompanyCreatOrUpdateRequest.java
@@ -0,0 +1,61 @@
+package com.doumee.dao.business.model.dto;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.hibernate.validator.constraints.Length;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.Size;
+import java.util.Date;
+
+/**
+ * @author T14
+ */
+@Data
+@ApiModel("鍒涘缓鎴栬�呬慨鏀瑰叕鍙�")
+public class CompanyCreatOrUpdateRequest {
+
+    @ApiModelProperty(value = "涓婚敭", example = "1")
+    private Integer id;
+
+    @ApiModelProperty(value = "鍚嶇О")
+    @NotBlank(message = "瀹㈡埛鍚嶇О浼佷笟鍏ㄧО涓嶅厑璁镐负绌�")
+    @Size(max = 30,message = "瀹㈡埛鍚嶇О浼佷笟鍏ㄧО涓嶅厑璁歌秴杩�30瀛�")
+    private String name;
+
+    @ApiModelProperty(value = "浼佷笟绠�绉�")
+    private String shortName;
+
+    @ApiModelProperty(value = "澶囨敞")
+    private String remark;
+
+    @ApiModelProperty(value = "绠$悊鍛樿处鍙凤紙鍏宠仈system_user琛�)", example = "1")
+    private Integer managerId;
+
+    @ApiModelProperty(value = "鑱旂郴浜�")
+    private String linkname;
+
+    @ApiModelProperty(value = "鑱旂郴浜虹數璇�")
+    private String linkephone;
+
+    @ApiModelProperty(value = "缁熶竴绀句細淇$敤浠g爜锛屼笉鍙噸澶�")
+    private String creditCode;
+
+    @ApiModelProperty(value = "涓绘挱鏁伴噺闄愬埗", example = "1")
+    private Integer userNum;
+
+    @ApiModelProperty(value = "绯荤粺浣跨敤鏈夋晥鏈�")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date oepnValidDate;
+
+    @ApiModelProperty(value = "璐︽埛寮�閫氱被鍨� 0璇曠敤璐︽埛 1姝e紡璐︽埛", example = "1")
+    private Integer oepnType;
+
+    @ApiModelProperty(value = "閿�鍞汉鍛樼紪鐮侊紙鍏宠仈system_user琛�)", example = "1")
+    private Integer salesmanId;
+}
diff --git a/server/service/src/main/java/com/doumee/service/business/CompanyService.java b/server/service/src/main/java/com/doumee/service/business/CompanyService.java
index a76c79e..6fd458a 100644
--- a/server/service/src/main/java/com/doumee/service/business/CompanyService.java
+++ b/server/service/src/main/java/com/doumee/service/business/CompanyService.java
@@ -4,6 +4,7 @@
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
 import com.doumee.dao.business.model.Company;
+import com.doumee.dao.business.model.dto.CompanyCreatOrUpdateRequest;
 
 import java.util.List;
 
@@ -20,7 +21,7 @@
      * @param company 瀹炰綋瀵硅薄
      * @return Integer
      */
-    Integer create(Company company);
+    Integer create(CompanyCreatOrUpdateRequest company);
 
     /**
      * 涓婚敭鍒犻櫎
@@ -42,6 +43,15 @@
      * @param ids 涓婚敭闆�
      */
     void deleteByIdInBatch(List<Integer> ids);
+
+
+
+    /**
+     * 涓婚敭鏇存柊
+     *
+     * @param company 瀹炰綋瀵硅薄
+     */
+    void updateById(CompanyCreatOrUpdateRequest company);
 
     /**
      * 涓婚敭鏇存柊
@@ -89,6 +99,15 @@
      */
     PageData<Company> findPage(PageWrap<Company> pageWrap);
 
+
+    /**
+     * 鍒嗛〉鏌ヨ
+     *
+     * @param pageWrap 鍒嗛〉瀵硅薄
+     * @return PageData<Company>
+     */
+    PageData<Company> findPlatformPage(PageWrap<Company> pageWrap);
+
     /**
      * 鏉′欢缁熻
      *
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 257e018..1f1a2df 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
@@ -5,17 +5,29 @@
 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.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.join.CompanyJoinMapper;
 import com.doumee.dao.business.model.Company;
+import com.doumee.dao.business.model.dto.CompanyCreatOrUpdateRequest;
+import com.doumee.dao.system.model.SystemUser;
 import com.doumee.service.business.CompanyService;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.shiro.SecurityUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
+import java.util.Date;
 import java.util.List;
+import java.util.Objects;
 
 /**
  * 绯荤粺-浼佷笟淇℃伅琛⊿ervice瀹炵幇
@@ -28,9 +40,41 @@
     @Autowired
     private CompanyMapper companyMapper;
 
+    @Autowired
+    private CompanyJoinMapper companyJoinMapper;
+
     @Override
-    public Integer create(Company company) {
-        companyMapper.insert(company);
+    public Integer create(CompanyCreatOrUpdateRequest company) {
+        LoginUserInfo userInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        Company insert = new Company();
+
+        if (Objects.isNull(company.getManagerId())){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鐧诲綍璐﹀彿涓嶅厑璁镐负绌�");
+        }
+        if (Objects.isNull(company.getOepnValidDate())){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鏈夋晥鏈熶笉鍏佽涓虹┖");
+        }
+        if (Objects.isNull(company.getUserNum())){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"涓绘挱璐﹀彿鏁伴噺涓嶅厑璁镐负绌�");
+        }
+
+        insert.setDeleted((byte)Constants.ZERO);
+        insert.setCreateUser(userInfo.getId());
+        insert.setCreateTime(new Date());
+        insert.setUpdateUser(userInfo.getId());
+        insert.setUpdateTime(new Date());
+        insert.setName(company.getName());
+        insert.setShortName(company.getShortName());
+        insert.setRemark(company.getRemark());
+        insert.setManagerId(company.getManagerId());
+        insert.setLinkname(company.getLinkname());
+        insert.setLinkephone(company.getLinkephone());
+        insert.setCreditCode(company.getCreditCode());
+        insert.setUserNum(company.getUserNum());
+        insert.setOepnValidDate(company.getOepnValidDate());
+        insert.setOepnType(company.getOepnType());
+        insert.setSalesmanId(company.getSalesmanId());
+        companyMapper.insert(insert);
         return company.getId();
     }
 
@@ -51,6 +95,19 @@
             return;
         }
         companyMapper.deleteBatchIds(ids);
+    }
+
+    @Override
+    public void updateById(CompanyCreatOrUpdateRequest company) {
+        UpdateWrapper<Company> wrapper = new UpdateWrapper<>();
+        wrapper.lambda().eq(Company::getId,company.getId())
+                        .set(Company::getName,company.getName())
+                        .set(Company::getShortName,company.getShortName())
+                        .set(Company::getCreditCode,company.getCreditCode())
+                        .set(Company::getSalesmanId,company.getSalesmanId())
+                        .set(Company::getLinkname,company.getLinkname())
+                        .set(Company::getLinkephone,company.getLinkephone());
+        companyMapper.update(null,wrapper);
     }
 
     @Override
@@ -122,6 +179,28 @@
         return PageData.from(companyMapper.selectPage(page, queryWrapper));
     }
 
+
+    @Override
+    public PageData<Company> findPlatformPage(PageWrap<Company> pageWrap) {
+        IPage<Company> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
+        MPJLambdaWrapper<Company> queryWrapper = new MPJLambdaWrapper<>();
+        Utils.MP.blankToNull(pageWrap.getModel());
+        queryWrapper.leftJoin(SystemUser.class,SystemUser::getId,Company::getManagerId);
+        queryWrapper.selectAll(Company.class)
+                    .selectAs(SystemUser::getUsername,Company::getManagerUserName);
+        queryWrapper.select(
+                "(select su1.USERNAME from system_user su1 where  su1.id = company.MANAGER_ID) as managerUserName," +
+                "(select su2.REALNAME from system_user su2 where  su2.id = company.SALESMAN_ID) as salesmanRealName," +
+                "(select count(su3.id) from system_user su3 where  su3.COMPANY_ID = company.ID and su3.TYPE = 2) as anchorUserNum," +
+                "(select count(su4.id) from system_user su4 where  su4.COMPANY_ID = company.ID and su3.TYPE = 1) as empUserNum," +
+                "(select count(goods.id) from goods   where  g.COMPANY_ID = company.ID )goodsNum");
+        queryWrapper.eq(Company::getName,pageWrap.getModel().getName())
+                    .like(SystemUser::getUsername,pageWrap.getModel().getManagerUserName())
+                    .eq(Company::getStatus,pageWrap.getModel().getStatus())
+                    .between(Company::getOepnValidDate,pageWrap.getModel().getOepnValidDateStart(),pageWrap.getModel().getOepnValidDateEnd());
+        return PageData.from(companyMapper.selectPage(page, queryWrapper));
+    }
+
     @Override
     public long count(Company company) {
         QueryWrapper<Company> wrapper = new QueryWrapper<>(company);

--
Gitblit v1.9.3