|
@@ -0,0 +1,135 @@
|
|
|
+package com.management.platform.service.impl;
|
|
|
+
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
+import com.management.platform.entity.Contract;
|
|
|
+import com.management.platform.entity.ContractType;
|
|
|
+import com.management.platform.entity.ContractTypeSec;
|
|
|
+import com.management.platform.entity.User;
|
|
|
+import com.management.platform.entity.vo.SysRichFunction;
|
|
|
+import com.management.platform.mapper.*;
|
|
|
+import com.management.platform.service.ContractTypeSecService;
|
|
|
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.management.platform.service.ExcelExportService;
|
|
|
+import com.management.platform.util.HttpRespMsg;
|
|
|
+import com.management.platform.util.MessageUtils;
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+
|
|
|
+import javax.annotation.Resource;
|
|
|
+import javax.servlet.http.HttpServletRequest;
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
+/**
|
|
|
+ * <p>
|
|
|
+ * 服务实现类
|
|
|
+ * </p>
|
|
|
+ *
|
|
|
+ * @author Seyason
|
|
|
+ * @since 2024-09-14
|
|
|
+ */
|
|
|
+@Service
|
|
|
+public class ContractTypeSecServiceImpl extends ServiceImpl<ContractTypeSecMapper, ContractTypeSec> implements ContractTypeSecService {
|
|
|
+ @Resource
|
|
|
+ private ContractTypeSecMapper contractTypeSecMapper;
|
|
|
+ @Resource
|
|
|
+ private ContractTypeMapper contractTypeMapper;
|
|
|
+ @Resource
|
|
|
+ private ContractMapper contractMapper;
|
|
|
+ @Resource
|
|
|
+ private UserMapper userMapper;
|
|
|
+ @Resource
|
|
|
+ private SysFunctionMapper sysFunctionMapper;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 返回公司自定义合同类型
|
|
|
+ * @param request
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public HttpRespMsg getContractType(HttpServletRequest request) {
|
|
|
+ HttpRespMsg httpRespMsg = new HttpRespMsg();
|
|
|
+ String token = request.getHeader("token");
|
|
|
+ User user = userMapper.selectById(token);
|
|
|
+ List<SysRichFunction> functionContractList = sysFunctionMapper.getRoleFunctions(user.getRoleId(), "查看全部合同");
|
|
|
+ if(functionContractList.size() <= 0){
|
|
|
+ return httpRespMsg;
|
|
|
+ }
|
|
|
+ List<ContractTypeSec> types = contractTypeSecMapper.selectList(new QueryWrapper<ContractTypeSec>().eq("company_id", user.getCompanyId()));
|
|
|
+ List<ContractType> mainList = contractTypeMapper.selectList(new QueryWrapper<ContractType>().eq("company_id", user.getCompanyId()));
|
|
|
+ for (ContractTypeSec secType : types) {
|
|
|
+ secType.setMainTypeName(mainList.stream().filter(mainType -> mainType.getId().equals(secType.getMainTypeId())).findFirst().get().getTypeName());
|
|
|
+ }
|
|
|
+ httpRespMsg.data = types;
|
|
|
+ return httpRespMsg;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 新增、修改合同类型
|
|
|
+ * @param request
|
|
|
+ * @param contractType
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public HttpRespMsg changeContractType(HttpServletRequest request, ContractTypeSec contractType) {
|
|
|
+ HttpRespMsg httpRespMsg = new HttpRespMsg();
|
|
|
+ String token = request.getHeader("token");
|
|
|
+ User user = userMapper.selectById(token);
|
|
|
+ List<SysRichFunction> functionContractList = sysFunctionMapper.getRoleFunctions(user.getRoleId(), "合同类型管理");
|
|
|
+ if(functionContractList.size() <= 0){
|
|
|
+ httpRespMsg.setError(MessageUtils.message("access.operationError"));
|
|
|
+ return httpRespMsg;
|
|
|
+ }
|
|
|
+ if (StringUtils.isBlank(contractType.getSecTypeName())){
|
|
|
+ //合同类型名不可为空
|
|
|
+ httpRespMsg.setError(MessageUtils.message("contract.typeNameEmpty"));
|
|
|
+ return httpRespMsg;
|
|
|
+ }
|
|
|
+ List<ContractTypeSec> types = contractTypeSecMapper.selectList(new QueryWrapper<ContractTypeSec>().eq("company_id", user.getCompanyId()));
|
|
|
+ //新增或修改自定义类型
|
|
|
+ for (ContractTypeSec type : types) {
|
|
|
+ if (type.getSecTypeName().equals(contractType.getSecTypeName()) && type.getMainTypeId().equals(contractType.getMainTypeId()) && !type.getId().equals(contractType.getId())){
|
|
|
+ //类型名不可重复
|
|
|
+ httpRespMsg.setError("[" + type.getSecTypeName() + "]" + MessageUtils.message("contract.typeNameRepeat"));
|
|
|
+ return httpRespMsg;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (contractType.getId() == null){
|
|
|
+ contractType.setCompanyId(user.getCompanyId());
|
|
|
+ contractTypeSecMapper.insert(contractType);
|
|
|
+ }else {
|
|
|
+ contractType.setCompanyId(null);
|
|
|
+ contractTypeSecMapper.updateById(contractType);
|
|
|
+ }
|
|
|
+ //操作成功
|
|
|
+ httpRespMsg.msg = MessageUtils.message("contract.operationSuc");
|
|
|
+ return httpRespMsg;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 删除合同类型
|
|
|
+ * @param request
|
|
|
+ * @param deleteId
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public HttpRespMsg deleteContractType(HttpServletRequest request, Integer deleteId) {
|
|
|
+ HttpRespMsg httpRespMsg = new HttpRespMsg();
|
|
|
+ String token = request.getHeader("token");
|
|
|
+ User user = userMapper.selectById(token);
|
|
|
+ List<SysRichFunction> functionContractList = sysFunctionMapper.getRoleFunctions(user.getRoleId(), "合同类型管理");
|
|
|
+ if(functionContractList.size() <= 0){
|
|
|
+ httpRespMsg.setError(MessageUtils.message("access.deleteError"));
|
|
|
+ return httpRespMsg;
|
|
|
+ }
|
|
|
+ List<Contract> types = contractMapper.selectList(new QueryWrapper<Contract>().eq("sec_type_id", deleteId));
|
|
|
+ if (types.size() > 0){
|
|
|
+ //该类型尚有合同在使用,无法删除!
|
|
|
+ httpRespMsg.setError(MessageUtils.message("Contract.typeDelError"));
|
|
|
+ }else {
|
|
|
+ contractTypeSecMapper.deleteById(deleteId);
|
|
|
+ httpRespMsg.setError(MessageUtils.message("file.deleteSuc"));
|
|
|
+ }
|
|
|
+ return httpRespMsg;
|
|
|
+ }
|
|
|
+
|
|
|
+}
|