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