diff --git a/oms_web/oms_vue/src/views/base/quotation/index.vue b/oms_web/oms_vue/src/views/base/quotation/index.vue
index 6abb8e6c..65e5baae 100644
--- a/oms_web/oms_vue/src/views/base/quotation/index.vue
+++ b/oms_web/oms_vue/src/views/base/quotation/index.vue
@@ -85,7 +85,11 @@
-
+
+
+
+
+
{{ parseTime(scope.row.createTime) }}
@@ -249,7 +253,7 @@ export default {
ProductConfig,
QuotationDetail
},
- dicts: ['currency_type'],
+ dicts: ['currency_type','quotation_status'],
data() {
return {
// 当前激活步骤
diff --git a/oms_web/oms_vue/src/views/project/info/ProjectForm.vue b/oms_web/oms_vue/src/views/project/info/ProjectForm.vue
index 41ce87b2..e1171e82 100644
--- a/oms_web/oms_vue/src/views/project/info/ProjectForm.vue
+++ b/oms_web/oms_vue/src/views/project/info/ProjectForm.vue
@@ -872,6 +872,7 @@ export default {
this.$set(this.form.productConfig, 'softwareProjectProductInfoList', softwareList);
this.$set(this.form.productConfig, 'hardwareProjectProductInfoList', hardwareList);
this.$set(this.form.productConfig, 'maintenanceProjectProductInfoList', maintenanceList);
+ this.$set(this.form, 'quotationId', quotation.id);
this.$modal.msgSuccess("导入成功");
});
diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/ProjectInfo.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/ProjectInfo.java
index f99cfe24..56d1555c 100644
--- a/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/ProjectInfo.java
+++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/ProjectInfo.java
@@ -230,6 +230,8 @@ public class ProjectInfo extends BaseEntity
private List projectFileList;
private String fileId;
+ private Integer quotationId;
+ private List quotationIdList;
private Boolean availableForOrder;
diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/Quotation.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/Quotation.java
index 4402711d..440a7f31 100644
--- a/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/Quotation.java
+++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/Quotation.java
@@ -7,6 +7,7 @@ import java.util.List;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import lombok.Data;
+import lombok.Getter;
/**
* 报价单
@@ -77,6 +78,24 @@ public class Quotation extends BaseEntity {
private List hardwareProjectProductInfoList;
// @Excel(name = "服务")
private List maintenanceProjectProductInfoList;
+
+ @Getter
+ public enum QuotationStatusEnum {
+ NOT_BIND("0", "未绑定"),
+ BIND("1", "已绑定"),
+
+
+ ;
+
+ private final String value;
+ private final String code;
+
+ QuotationStatusEnum(String code, String value) {
+ this.code = code;
+ this.value = value;
+ }
+
+ }
}
diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/IQuotationService.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/IQuotationService.java
index 609891ab..0ed248b5 100644
--- a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/IQuotationService.java
+++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/IQuotationService.java
@@ -44,6 +44,10 @@ public interface IQuotationService {
int batchRemove(Integer[] ids);
String exportSingle(Integer id);
+
+ void bind(Integer quotationId);
+
+ void unBind(Integer quotationId);
}
diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/ProjectInfoServiceImpl.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/ProjectInfoServiceImpl.java
index 56146f9d..99c4863d 100644
--- a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/ProjectInfoServiceImpl.java
+++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/ProjectInfoServiceImpl.java
@@ -27,6 +27,7 @@ import com.ruoyi.sip.dto.StatisticsDetailDto;
import com.ruoyi.sip.dto.StatisticsDto;
import com.ruoyi.sip.mapper.ProjectInfoMapper;
import com.ruoyi.sip.service.*;
+import liquibase.hub.model.Project;
import lombok.extern.slf4j.Slf4j;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Sheet;
@@ -87,6 +88,8 @@ public class ProjectInfoServiceImpl implements IProjectInfoService {
private static final String PROJECT_CODE_PREFIX = "V";
private static final Integer PROJECT_CODE_LENGTH = 6;
+ @Autowired
+ private IQuotationService quotationService;
public static final String INDUSTRY_TYPE_YYS_DICT_TYPE = "bg_yys";
public static final String INDUSTRY_TYPE_DICT_TYPE = "bg_hysy";
@@ -210,6 +213,7 @@ public class ProjectInfoServiceImpl implements IProjectInfoService {
}
int i = projectInfoMapper.insertProjectInfo(projectInfo);
saveOtherInfo(projectInfo);
+ quotationService.bind(projectInfo.getQuotationId());
return i;
}
@@ -296,6 +300,13 @@ public class ProjectInfoServiceImpl implements IProjectInfoService {
update.setProjectId(projectOrderInfo.getProjectId());
orderInfoService.updateProjectOrderInfo(update);
}
+ quotationService.bind(projectInfo.getQuotationId());
+ ProjectInfo queryQuotationProject = new ProjectInfo();
+ queryQuotationProject.setQuotationId(oldProjectInfo.getQuotationId());
+ List projectInfos = projectInfoMapper.selectProjectInfoList(queryQuotationProject);
+ if(CollUtil.isEmpty(projectInfos)){
+ quotationService.unBind(oldProjectInfo.getQuotationId());
+ }
return result;
}
diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/QuotationServiceImpl.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/QuotationServiceImpl.java
index be48140e..13a9dc81 100644
--- a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/QuotationServiceImpl.java
+++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/QuotationServiceImpl.java
@@ -12,16 +12,20 @@ import com.alibaba.excel.write.metadata.style.WriteCellStyle;
import com.alibaba.excel.write.style.HorizontalCellStyleStrategy;
import com.alibaba.excel.write.style.column.AbstractColumnWidthStyleStrategy;
import com.ruoyi.common.exception.ServiceException;
+import com.ruoyi.common.utils.PageUtils;
+import com.ruoyi.common.utils.ShiroUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.common.utils.spring.SpringUtils;
import com.ruoyi.sip.domain.*;
import com.ruoyi.sip.mapper.QuotationMapper;
import com.ruoyi.sip.service.ICodeGenTableService;
+import com.ruoyi.sip.service.IProjectInfoService;
import com.ruoyi.sip.service.IQuotationProductInfoService;
import com.ruoyi.sip.service.IQuotationService;
import lombok.extern.slf4j.Slf4j;
import org.apache.poi.ss.usermodel.Cell;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -53,6 +57,10 @@ public class QuotationServiceImpl implements IQuotationService {
@Autowired
private IQuotationProductInfoService quotationProductInfoService;
+ @Autowired
+ @Lazy
+ private IProjectInfoService projectInfoService;
+
/**
* 查询列表数据
@@ -63,6 +71,15 @@ public class QuotationServiceImpl implements IQuotationService {
@Override
public List queryAll(Quotation quotation) {
List dataList = quotationMapper.queryAll(quotation);
+ PageUtils.clearPage();
+ if (CollUtil.isNotEmpty(dataList)) {
+ ProjectInfo projectInfo = new ProjectInfo();
+ List collect = dataList.stream().map(Quotation::getId).collect(Collectors.toList());
+ projectInfo.setQuotationIdList(collect);
+ List projectInfos = projectInfoService.selectProjectInfoList(projectInfo);
+ Map projectCodeMap = projectInfos.stream().collect(Collectors.groupingBy(ProjectInfo::getQuotationId, Collectors.mapping(ProjectInfo::getProjectCode, Collectors.joining(","))));
+ dataList.forEach(item -> item.setProjectCode(projectCodeMap.get(item.getId())));
+ }
return dataList;
}
@@ -87,6 +104,8 @@ public class QuotationServiceImpl implements IQuotationService {
public int insert(Quotation quotation) {
String s = codeGenTableService.generateCode(CodeGenTable.TableNameEnum.OMS_QUOTATION.getName());
quotation.setQuotationCode(s);
+ quotation.setQuotationStatus(Quotation.QuotationStatusEnum.NOT_BIND.getCode());
+ quotation.setCreateBy(ShiroUtils.getUserId().toString());
int insert = quotationMapper.insert(quotation);
List productList = new ArrayList<>();
if (CollUtil.isNotEmpty(quotation.getSoftwareProjectProductInfoList())) {
@@ -101,6 +120,7 @@ public class QuotationServiceImpl implements IQuotationService {
for (QuotationProductInfo quotationProductInfo : productList) {
quotationProductInfo.setQuotationId(quotation.getId());
}
+
quotationProductInfoService.saveBatch(productList);
return insert;
}
@@ -175,7 +195,10 @@ public class QuotationServiceImpl implements IQuotationService {
List