|
|
@@ -1,22 +1,25 @@
|
|
|
package com.sckw.manage.service;
|
|
|
+import java.io.IOException;
|
|
|
import java.util.Date;
|
|
|
|
|
|
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.github.pagehelper.PageHelper;
|
|
|
import com.github.pagehelper.PageInfo;
|
|
|
+import com.sckw.core.exception.SystemException;
|
|
|
import com.sckw.core.model.constant.Global;
|
|
|
+import com.sckw.core.model.enums.CooperateStatusEnum;
|
|
|
+import com.sckw.core.model.enums.SystemTypeEnum;
|
|
|
import com.sckw.core.model.page.PageHelperUtil;
|
|
|
import com.sckw.core.model.page.PageResult;
|
|
|
import com.sckw.core.utils.BeanUtils;
|
|
|
import com.sckw.core.utils.CollectionUtils;
|
|
|
-import com.sckw.core.utils.StringUtils;
|
|
|
+import com.sckw.core.web.constant.HttpStatus;
|
|
|
import com.sckw.core.web.context.LoginUserHolder;
|
|
|
+import com.sckw.excel.utils.EasyExcelUtil;
|
|
|
import com.sckw.manage.dao.KwmCooperateMapper;
|
|
|
import com.sckw.manage.model.dto.req.CooperateManageQueryReqDto;
|
|
|
import com.sckw.manage.model.dto.res.CooperateManageQueryResDto;
|
|
|
-import com.sckw.manage.model.vo.req.BindManagerReqVo;
|
|
|
+import com.sckw.manage.model.entity.KwmCooperate;
|
|
|
import com.sckw.manage.model.vo.req.CooperateManageQueryReqVo;
|
|
|
-import com.sckw.manage.model.vo.req.QueryDetailReqVo;
|
|
|
import com.sckw.manage.model.vo.res.CooperateManageQueryResVo;
|
|
|
import com.sckw.manage.model.vo.res.QueryDetailResVo;
|
|
|
import com.sckw.system.api.RemoteSystemService;
|
|
|
@@ -27,6 +30,7 @@ import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.dubbo.config.annotation.DubboReference;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
@@ -153,4 +157,88 @@ public class KwmCooperateManageService {
|
|
|
public void bindManager(Long userId) {
|
|
|
remoteUserService.bindManager(LoginUserHolder.getEntId(), userId);
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @param ids 主键id
|
|
|
+ * @desc: 解除合同
|
|
|
+ * @author: czh
|
|
|
+ * @date: 2023/7/11
|
|
|
+ */
|
|
|
+ @Transactional(rollbackFor = {})
|
|
|
+ public void dissolve(String ids) {
|
|
|
+ //todo 判断是否可以解除(若和所选企业有未完结的业务单据(销售订单/采购订单、托运订单/承运订单、对账单、结算单),不支持解除合作)
|
|
|
+ //提示:您与所选企业存在未完结业务,当前无法删除!
|
|
|
+ List<KwmCooperate> kwmCooperates = kwmCooperateMapper.selectBatchIds(Arrays.asList(ids.split(Global.COMMA)));
|
|
|
+ Long userId = LoginUserHolder.getUserId();
|
|
|
+ Date date = new Date();
|
|
|
+ kwmCooperates.forEach(item -> {
|
|
|
+ //运营端可以操作任意状态,企业端只能操作合作中的数据
|
|
|
+ if (checkUserPermission(item.getStatus())){
|
|
|
+ throw new SystemException(HttpStatus.CRUD_FAIL_CODE, HttpStatus.MSG_012);
|
|
|
+ }
|
|
|
+
|
|
|
+ item.setStatus(CooperateStatusEnum.PASS.getCode());
|
|
|
+ item.setUpdateBy(userId);
|
|
|
+ item.setUpdateTime(date);
|
|
|
+ if (kwmCooperateMapper.updateById(item) <= 0) {
|
|
|
+ throw new SystemException(HttpStatus.CRUD_FAIL_CODE, HttpStatus.UPDATE_FAIL);
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @param status 操作状态
|
|
|
+ * @return boolean
|
|
|
+ * @desc: 校验用户操作状态
|
|
|
+ * @author: czh
|
|
|
+ * @date: 2023/7/11
|
|
|
+ */
|
|
|
+ private boolean checkUserPermission(int status) {
|
|
|
+ return status != CooperateStatusEnum.OK.getCode() && LoginUserHolder.getSystemType() != SystemTypeEnum.MANAGE.getCode();
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @param ids 主键
|
|
|
+ * @desc: 删除合同
|
|
|
+ * @author: czh
|
|
|
+ * @date: 2023/7/11
|
|
|
+ */
|
|
|
+ public void delete(String ids) {
|
|
|
+ List<KwmCooperate> kwmCooperates = kwmCooperateMapper.selectBatchIds(Arrays.asList(ids.split(Global.COMMA)));
|
|
|
+ Long userId = LoginUserHolder.getUserId();
|
|
|
+ Date date = new Date();
|
|
|
+ kwmCooperates.forEach(item -> {
|
|
|
+ //运营端可以操作任意状态,企业端只能操作合作中的数据
|
|
|
+ if (item.getStatus() != CooperateStatusEnum.PASS.getCode()){
|
|
|
+ throw new SystemException(HttpStatus.CRUD_FAIL_CODE, HttpStatus.MSG_013);
|
|
|
+ }
|
|
|
+
|
|
|
+ item.setDelFlag(Global.YES);
|
|
|
+ item.setUpdateBy(userId);
|
|
|
+ item.setUpdateTime(date);
|
|
|
+ if (kwmCooperateMapper.updateById(item) <= 0) {
|
|
|
+ throw new SystemException(HttpStatus.CRUD_FAIL_CODE, HttpStatus.UPDATE_FAIL);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @param reqVo 查询入参
|
|
|
+ * @desc: 导出
|
|
|
+ * @author: czh
|
|
|
+ * @date: 2023/7/11
|
|
|
+ */
|
|
|
+ public void export(CooperateManageQueryReqVo reqVo) throws SystemException {
|
|
|
+ CooperateManageQueryReqDto cooperateManageQueryReqDto = new CooperateManageQueryReqDto();
|
|
|
+ BeanUtils.copyProperties(reqVo, cooperateManageQueryReqDto);
|
|
|
+ cooperateManageQueryReqDto.setCooperateTypes(Arrays.asList(reqVo.getCooperateTypes().split(Global.COMMA)));
|
|
|
+ List<CooperateManageQueryResVo> list = findList(cooperateManageQueryReqDto);
|
|
|
+ try {
|
|
|
+ EasyExcelUtil.writeSingleExcel("合作管理.xlsx", "sheet1", list, CooperateManageQueryResVo.class);
|
|
|
+ } catch (IOException e) {
|
|
|
+ log.error("导出失败:", e);
|
|
|
+ throw new SystemException(HttpStatus.CODE_10301, HttpStatus.MSG_014);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|