|
@@ -6,9 +6,16 @@ import cn.hutool.core.util.ArrayUtil;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
+import com.qunzhixinxi.hnqz.admin.api.entity.SysDeptRelation;
|
|
|
+import com.qunzhixinxi.hnqz.admin.entity.WmDaAgent;
|
|
|
+import com.qunzhixinxi.hnqz.admin.entity.WmDaDrugEnt;
|
|
|
import com.qunzhixinxi.hnqz.admin.entity.dto.SettleConfigDTO;
|
|
|
import com.qunzhixinxi.hnqz.admin.entity.input.DeptSubLimitAmountInput;
|
|
|
+import com.qunzhixinxi.hnqz.admin.enums.SubjectLocation;
|
|
|
import com.qunzhixinxi.hnqz.admin.enums.SubjectTypeEnum;
|
|
|
+import com.qunzhixinxi.hnqz.admin.service.SysDeptRelationService;
|
|
|
+import com.qunzhixinxi.hnqz.admin.service.WmDaAgentService;
|
|
|
+import com.qunzhixinxi.hnqz.admin.service.WmDaDrugEntService;
|
|
|
import com.qunzhixinxi.hnqz.common.core.util.R;
|
|
|
import com.qunzhixinxi.hnqz.common.log.annotation.SysLog;
|
|
|
import com.qunzhixinxi.hnqz.admin.entity.SysDeptSub;
|
|
@@ -24,6 +31,7 @@ import org.springframework.web.bind.annotation.*;
|
|
|
import javax.validation.Valid;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
|
/**
|
|
@@ -39,6 +47,57 @@ import java.util.List;
|
|
|
public class SysDeptSubController {
|
|
|
|
|
|
private final SysDeptSubService sysDeptSubService;
|
|
|
+ private final SysDeptRelationService sysDeptRelationService;
|
|
|
+ private final WmDaAgentService wmDaAgentService;
|
|
|
+ private final WmDaDrugEntService wmDaDrugEntService;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 查询结算渠道(用于结算页面)
|
|
|
+ *
|
|
|
+ * @return 结果
|
|
|
+ */
|
|
|
+ @GetMapping("/get-settle-subject")
|
|
|
+ public R getSettleSubejct() {
|
|
|
+ Integer deptId = SecurityUtils.getUser().getDeptId();
|
|
|
+ List<SysDeptSub> resultList = new ArrayList<>();
|
|
|
+
|
|
|
+ // 原有结算渠道
|
|
|
+ SysDeptSub sysDeptSub = new SysDeptSub();
|
|
|
+ sysDeptSub.setDeptId(deptId);
|
|
|
+ sysDeptSub.setEnableFlag(SubjectTypeEnum.ENABLE_FLAG_TRUE.getCode());
|
|
|
+ List<SysDeptSub> subList = sysDeptSubService.list(Wrappers.query(sysDeptSub));
|
|
|
+ if (CollUtil.isNotEmpty(subList)) {
|
|
|
+ resultList.addAll(subList);
|
|
|
+ }
|
|
|
+
|
|
|
+ // MAH结算渠道-拼接上级药企作为渠道名称
|
|
|
+ WmDaAgent daAgent = wmDaAgentService.getOne(Wrappers.<WmDaAgent>lambdaQuery()
|
|
|
+ .eq(WmDaAgent::getDeptId, deptId));
|
|
|
+ if(daAgent!= null) {
|
|
|
+ if (daAgent.getMahSettleDeptId() != null) {
|
|
|
+ // 查询上级药企
|
|
|
+ List<SysDeptRelation> deptRelations = sysDeptRelationService.list(Wrappers.<SysDeptRelation>lambdaQuery()
|
|
|
+ .eq(SysDeptRelation::getDescendant, deptId)
|
|
|
+ .ne(SysDeptRelation::getAncestor, deptId)
|
|
|
+ .ne(SysDeptRelation::getAncestor, 1));
|
|
|
+ if (CollUtil.isNotEmpty(deptRelations)) {
|
|
|
+ List<WmDaDrugEnt> drugEnts = wmDaDrugEntService.list(Wrappers.<WmDaDrugEnt>lambdaQuery()
|
|
|
+ .in(WmDaDrugEnt::getDeptId, deptRelations.stream().map(SysDeptRelation::getAncestor).collect(Collectors.toSet())));
|
|
|
+ drugEnts.forEach(drugEnt -> {
|
|
|
+ SysDeptSub newDeptSub = new SysDeptSub();
|
|
|
+ newDeptSub.setDeptId(Integer.valueOf(drugEnt.getDeptId()));
|
|
|
+ newDeptSub.setSubjectLocation(SubjectLocation.MAH_SETTLE);
|
|
|
+ newDeptSub.setSubjectType(String.valueOf(SubjectLocation.MAH_SETTLE.getGigType().getCode()));
|
|
|
+ newDeptSub.setSubjectName(drugEnt.getEntname());
|
|
|
+ resultList.add(newDeptSub);
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return R.ok(resultList);
|
|
|
+ }
|
|
|
|
|
|
/**
|
|
|
* 查询结算渠道列表-无参
|