|
@@ -1,8 +1,10 @@
|
|
|
package com.qunzhixinxi.hnqz.admin.listener;
|
|
|
|
|
|
+import cn.hutool.core.collection.CollUtil;
|
|
|
import cn.hutool.core.date.DatePattern;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
+import com.qunzhixinxi.hnqz.admin.api.entity.SysDept;
|
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.SysEntContractInfo;
|
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.WmDaDrugEntDrugtable;
|
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.WmPackageContract;
|
|
@@ -10,6 +12,7 @@ import com.qunzhixinxi.hnqz.admin.api.entity.WmPackageTaskTypeQty;
|
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.WmScorePackage;
|
|
|
import com.qunzhixinxi.hnqz.admin.event.PackageContractEvent;
|
|
|
import com.qunzhixinxi.hnqz.admin.mapper.SysEntContractInfoMapper;
|
|
|
+import com.qunzhixinxi.hnqz.admin.service.SysDeptService;
|
|
|
import com.qunzhixinxi.hnqz.admin.service.SysFileService;
|
|
|
import com.qunzhixinxi.hnqz.admin.service.WmDaDrugEntDrugtableService;
|
|
|
import com.qunzhixinxi.hnqz.admin.service.WmPackageContractService;
|
|
@@ -28,6 +31,7 @@ import org.springframework.scheduling.annotation.Async;
|
|
|
import java.io.File;
|
|
|
import java.io.IOException;
|
|
|
import java.nio.file.Files;
|
|
|
+import java.time.LocalDate;
|
|
|
import java.time.LocalDateTime;
|
|
|
import java.time.format.DateTimeFormatter;
|
|
|
import java.util.Arrays;
|
|
@@ -51,13 +55,13 @@ public class PackageContractEventListener {
|
|
|
@AllArgsConstructor
|
|
|
private enum MAH {
|
|
|
|
|
|
- ENT_1("长春祈健生物制品有限公司", "长春市高新开发区火炬路1号", "蔡岩", "", "0431-85089081", "", BankInfo.E1),
|
|
|
- ENT_2("上海生物制品研究所有限责任公司", "上海市奉贤区广丰路758号", "李秀玲", "张光中", "021-22132888", "", BankInfo.E2),
|
|
|
- ENT_3("武汉生物制品研究所有限责任公司", "武汉市江夏区郑店黄金工业园路1号", "段凯", "", "027-88840477", "027-88913353", BankInfo.E3),
|
|
|
- ENT_4("北京生物制品研究所有限责任公司", "北京市北京经济技术开发区博兴二路9号院4号楼2层205室", "张云涛", "赵增虎", "010-60963039", "010-60963311", BankInfo.E4),
|
|
|
- ENT_5("长春生物制品研究所有限责任公司", "长春市高新技术开发区创新路1616号", "顾建阳", "马俊刚", "0431-87914066", "", BankInfo.E5),
|
|
|
- ENT_6("成都生物制品研究所有限责任公司", "成都市锦江区锦华路三段379号", "葛永红", "徐澜方", "028-84418827", "028-84418201", BankInfo.E6),
|
|
|
- ENT_7("兰州生物制品研究所有限责任公司", "甘肃省兰州市城关区盐场路888号", "邹勇", "马忠山", "0931-8316777", "0931-8343199", BankInfo.E7);
|
|
|
+ ENT_1("长春祈健生物制品有限公司", "长春祈健", "长春市高新开发区火炬路1号", "蔡岩", "", "0431-85089081", "", BankInfo.E1),
|
|
|
+ ENT_2("上海生物制品研究所有限责任公司", "上海公司", "上海市奉贤区广丰路758号", "李秀玲", "张光中", "021-22132888", "", BankInfo.E2),
|
|
|
+ ENT_3("武汉生物制品研究所有限责任公司", "武汉公司", "武汉市江夏区郑店黄金工业园路1号", "段凯", "", "027-88840477", "027-88913353", BankInfo.E3),
|
|
|
+ ENT_4("北京生物制品研究所有限责任公司", "北京公司", "北京市北京经济技术开发区博兴二路9号院4号楼2层205室", "张云涛", "赵增虎", "010-60963039", "010-60963311", BankInfo.E4),
|
|
|
+ ENT_5("长春生物制品研究所有限责任公司", "长春公司", "长春市高新技术开发区创新路1616号", "顾建阳", "马俊刚", "0431-87914066", "", BankInfo.E5),
|
|
|
+ ENT_6("成都生物制品研究所有限责任公司", "成都公司", "成都市锦江区锦华路三段379号", "葛永红", "徐澜方", "028-84418827", "028-84418201", BankInfo.E6),
|
|
|
+ ENT_7("兰州生物制品研究所有限责任公司", "兰州公司", "甘肃省兰州市城关区盐场路888号", "邹勇", "马忠山", "0931-8316777", "0931-8343199", BankInfo.E7);
|
|
|
|
|
|
|
|
|
public static MAH get(String entName) {
|
|
@@ -66,6 +70,7 @@ public class PackageContractEventListener {
|
|
|
|
|
|
|
|
|
private final String name;
|
|
|
+ private final String abbr;
|
|
|
private final String address;
|
|
|
private final String respName;
|
|
|
private final String contractName;
|
|
@@ -103,6 +108,7 @@ public class PackageContractEventListener {
|
|
|
private final WmScorePackageService packageService;
|
|
|
private final WmDaDrugEntDrugtableService drugEntDrugtableService;
|
|
|
private final SysEntContractInfoMapper entContractInfoMapper;
|
|
|
+ private final SysDeptService deptService;
|
|
|
|
|
|
|
|
|
/**
|
|
@@ -149,6 +155,7 @@ public class PackageContractEventListener {
|
|
|
WmPackageContract pc = new WmPackageContract();
|
|
|
pc.setPackageId(pkgId);
|
|
|
pc.setFileId(Integer.valueOf(fileId));
|
|
|
+ pc.setSn(params.get("contract_no"));
|
|
|
pc.setCreateTime(now);
|
|
|
|
|
|
packageContractService.save(pc);
|
|
@@ -163,15 +170,19 @@ public class PackageContractEventListener {
|
|
|
WmScorePackage pkg = packageService.getById(event.getPackageId().toString());
|
|
|
log.info("pkg_info:【{}】", pkg);
|
|
|
|
|
|
+ // 获取区域信息
|
|
|
+ SysDept cso1 = deptService.getById(Integer.valueOf(pkg.getSendPackageDeptId()));
|
|
|
+
|
|
|
+ // 获取服务商信息
|
|
|
+ SysDept service = deptService.getById(Integer.getInteger(pkg.getDeptId()));
|
|
|
+
|
|
|
// 通过药品获取甲方信息
|
|
|
String[] drugtable = pkg.getDrugtable();
|
|
|
List<WmDaDrugEntDrugtable> drugtables = drugEntDrugtableService.listByIds(Arrays.stream(drugtable).collect(Collectors.toSet()));
|
|
|
- String drugEntName = drugtables.get(0).getDrugEntName();
|
|
|
+ WmDaDrugEntDrugtable drug = drugtables.get(0);
|
|
|
+ String drugEntName = drug.getDrugEntName();
|
|
|
MAH mah = MAH.get(drugEntName);
|
|
|
|
|
|
- // 合同号
|
|
|
- String pkgSn = StrUtil.isNotBlank(pkg.getPackageSn()) ? pkg.getPackageSn().toUpperCase() : DateTimeFormatter.ofPattern(DatePattern.PURE_DATETIME_MS_PATTERN).format(LocalDateTime.now());
|
|
|
- params.put("contract_no", pkgSn);
|
|
|
|
|
|
// 甲方信息
|
|
|
if (mah != null) {
|
|
@@ -200,11 +211,26 @@ public class PackageContractEventListener {
|
|
|
params.put("party_b_reg_code", contractInfo.getRegCode());
|
|
|
}
|
|
|
|
|
|
+ // 合同号 生产企业简称+“服务字"+年度-【省区简称]-001(待补充映射表逻辑)-服务季度Q1\Q4-服务商简称(待补充映射表)-产品简称(待补充映射表)-若存在同服务商
|
|
|
+ // String pkgSn = StrUtil.isNotBlank(pkg.getPackageSn()) ? pkg.getPackageSn().toUpperCase() : DateTimeFormatter.ofPattern(DatePattern.PURE_DATETIME_MS_PATTERN).format(LocalDateTime.now());
|
|
|
+ LocalDate endTime = pkg.getEndTime();
|
|
|
+ int month = endTime.getMonthValue();
|
|
|
+ int quarter = (month == 3 ? 1 : month == 6 ? 2 : month == 9 ? 3 : 4);
|
|
|
+ String pkgSn = String.format("%s服务字%s-[%s]-%s-Q%s-%s-%s", mah.abbr, endTime.getYear(), cso1.getAbbr(), "001", quarter, drug.getAbbr(), service.getAbbr());
|
|
|
+
|
|
|
+ // 判断是否是补充包
|
|
|
+ List<WmPackageContract> list = packageContractService.list(Wrappers.<WmPackageContract>lambdaQuery().likeRight(WmPackageContract::getSn, pkgSn));
|
|
|
+
|
|
|
+ if (CollUtil.isNotEmpty(list)) {
|
|
|
+ pkgSn += "-BC" + list.size();
|
|
|
+ }
|
|
|
+
|
|
|
+ params.put("contract_no", pkgSn);
|
|
|
params.put("agreement_no", pkgSn);
|
|
|
|
|
|
// 合同岂止时间
|
|
|
params.put("issue_date", DateTimeFormatter.ofPattern(DatePattern.CHINESE_DATE_PATTERN).format(pkg.getCreateTime()));
|
|
|
- params.put("expiry_date", DateTimeFormatter.ofPattern(DatePattern.CHINESE_DATE_PATTERN).format(pkg.getEndTime()));
|
|
|
+ params.put("expiry_date", DateTimeFormatter.ofPattern(DatePattern.CHINESE_DATE_PATTERN).format(endTime));
|
|
|
|
|
|
|
|
|
// 任务数量统计
|