|
|
@@ -301,7 +301,7 @@ public class PurchaseServiceImpl extends CommonBaseServiceImpl<PurchaseMapper, P
|
|
|
* @param turnPurchaseReqDTO
|
|
|
*/
|
|
|
@Override
|
|
|
- public void turnPurchase(InquiryTurnPurchaseReqDTO turnPurchaseReqDTO){
|
|
|
+ public DocBaseDTO turnPurchase(InquiryTurnPurchaseReqDTO turnPurchaseReqDTO){
|
|
|
CompanyDTO companyDTO = companyApi.getCompanyById(BaseContextHolder.getCompanyId()).getData();
|
|
|
Long enUU = companyDTO.getUu();
|
|
|
Long userUU = accountApi.getAccountById(BaseContextHolder.getUserId()).getData().getUu();
|
|
|
@@ -311,14 +311,26 @@ public class PurchaseServiceImpl extends CommonBaseServiceImpl<PurchaseMapper, P
|
|
|
}
|
|
|
//通过供应商UU号检查供应商是否已存在
|
|
|
VendorDTO vendorDTO = vendorApi.findByUU(turnPurchaseReqDTO.getVendUU()).getData();
|
|
|
+ if (vendorDTO == null) {
|
|
|
+ vendorDTO = vendorApi.findByName(turnPurchaseReqDTO.getVendName()).getData();
|
|
|
+ if (vendorDTO != null) {
|
|
|
+ throw new BizException(BizExceptionCode.BIZ_TURNPURCHASE_BEFORE.getCode(),
|
|
|
+ String.format(BizExceptionCode.BIZ_TURNPURCHASE_BEFORE.getMessage(), vendorDTO.getVe_name()));
|
|
|
+ }
|
|
|
+ }
|
|
|
DocBaseDTO docBaseDTO = null;
|
|
|
if (vendorDTO == null){
|
|
|
//自动创建供应商资料
|
|
|
docBaseDTO = createVendor(turnPurchaseReqDTO);
|
|
|
}
|
|
|
+ if (docBaseDTO == null) {
|
|
|
+ docBaseDTO = new DocBaseDTO();
|
|
|
+ docBaseDTO.setId(vendorDTO.getId());
|
|
|
+ docBaseDTO.setCode(vendorDTO.getVe_code());
|
|
|
+ }
|
|
|
//构造采购单数据
|
|
|
PurchaseFormDTO purchaseFormDTO = createPurcahse(docBaseDTO, turnPurchaseReqDTO);
|
|
|
- saveFormData(purchaseFormDTO);
|
|
|
+ return saveFormData(purchaseFormDTO);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -328,7 +340,8 @@ public class PurchaseServiceImpl extends CommonBaseServiceImpl<PurchaseMapper, P
|
|
|
*/
|
|
|
private DocBaseDTO createVendor(InquiryTurnPurchaseReqDTO turnPurchaseReqDTO) {
|
|
|
Vendor vendor = new Vendor();
|
|
|
- String vendorCode = maxnumberService.getMaxnumber(BillCodeSeq.VENDOR.getCaller(), false).getData();
|
|
|
+ String vendorCode = maxnumberService.getMaxnumber(BillCodeSeq.VENDOR.getCaller(), true).getData();
|
|
|
+ vendor.setId(0L);
|
|
|
vendor.setVe_code(vendorCode);
|
|
|
vendor.setVe_name(turnPurchaseReqDTO.getVendName());
|
|
|
vendor.setVe_uu(String.valueOf(turnPurchaseReqDTO.getVendUU()));
|
|
|
@@ -336,6 +349,7 @@ public class PurchaseServiceImpl extends CommonBaseServiceImpl<PurchaseMapper, P
|
|
|
CurrencyDTO currencyDTO = currencyApi.getStandard().getData();
|
|
|
vendor.setVe_currency(currencyDTO.getCr_name());
|
|
|
vendor.setVe_taxrate(16D);
|
|
|
+ vendor.setVe_begindate(new Date());
|
|
|
vendor.setCompanyId(BaseContextHolder.getCompanyId());
|
|
|
vendor.setCreatorName(BaseContextHolder.getUserName());
|
|
|
vendor.setCreatorId(BaseContextHolder.getUserId());
|
|
|
@@ -367,8 +381,9 @@ public class PurchaseServiceImpl extends CommonBaseServiceImpl<PurchaseMapper, P
|
|
|
PurchaseFormDTO purchaseFormDTO = new PurchaseFormDTO();
|
|
|
//采购单主表
|
|
|
PurchaseDTO purchaseDTO = new PurchaseDTO();
|
|
|
- String code = maxnumberService.getMaxnumber(BillCodeSeq.PURCHASE.getCaller(), false).getData();
|
|
|
+ String code = maxnumberService.getMaxnumber(BillCodeSeq.PURCHASE.getCaller(), true).getData();
|
|
|
purchaseDTO.setPu_code(code);
|
|
|
+ purchaseDTO.setId(0L);
|
|
|
purchaseDTO.setPu_vendcode(docBaseDTO.getCode());
|
|
|
purchaseDTO.setPu_vendid(new BigDecimal(docBaseDTO.getId()).intValue());
|
|
|
purchaseDTO.setPu_vendname(turnPurchaseReqDTO.getVendName());
|
|
|
@@ -1043,6 +1058,7 @@ public class PurchaseServiceImpl extends CommonBaseServiceImpl<PurchaseMapper, P
|
|
|
QuotationRspDTO quotationRspDTO = new QuotationRspDTO();
|
|
|
quotationRspDTO.setId(publicInquiryItem.getId());
|
|
|
quotationRspDTO.setVendName(publicInquiryItem.getVendName());
|
|
|
+ quotationRspDTO.setProdCode(purcInquiryItemInfo.getProdCode());
|
|
|
quotationRspDTO.setVendUU(publicInquiryItem.getVendUU());
|
|
|
quotationRspDTO.setTaxRate(new BigDecimal(publicInquiryItem.getTaxrate()).doubleValue());
|
|
|
quotationRspDTO.setLeadTime(publicInquiryItem.getLeadtime());
|