|
|
@ -1,6 +1,7 @@ |
|
|
package cc.hiver.mall.serviceimpl; |
|
|
package cc.hiver.mall.serviceimpl; |
|
|
|
|
|
|
|
|
import cc.hiver.core.common.constant.CommonConstant; |
|
|
import cc.hiver.core.common.constant.CommonConstant; |
|
|
|
|
|
import cc.hiver.core.common.constant.DealingsRecordConstant; |
|
|
import cc.hiver.core.common.constant.SaleConstant; |
|
|
import cc.hiver.core.common.constant.SaleConstant; |
|
|
import cc.hiver.core.common.constant.UserConstant; |
|
|
import cc.hiver.core.common.constant.UserConstant; |
|
|
import cc.hiver.core.common.sms.SmsUtil; |
|
|
import cc.hiver.core.common.sms.SmsUtil; |
|
|
@ -14,6 +15,8 @@ import cc.hiver.core.service.LogiticsCompanyService; |
|
|
import cc.hiver.core.service.RoleService; |
|
|
import cc.hiver.core.service.RoleService; |
|
|
import cc.hiver.core.service.UserRoleService; |
|
|
import cc.hiver.core.service.UserRoleService; |
|
|
import cc.hiver.core.service.UserService; |
|
|
import cc.hiver.core.service.UserService; |
|
|
|
|
|
import cc.hiver.mall.debt.constant.DebtConstant; |
|
|
|
|
|
import cc.hiver.mall.debt.entity.Debt; |
|
|
import cc.hiver.mall.debt.service.DebtService; |
|
|
import cc.hiver.mall.debt.service.DebtService; |
|
|
import cc.hiver.mall.deductlog.service.DeductLogService; |
|
|
import cc.hiver.mall.deductlog.service.DeductLogService; |
|
|
import cc.hiver.mall.entity.*; |
|
|
import cc.hiver.mall.entity.*; |
|
|
@ -92,6 +95,9 @@ public class SalesAndDetailsServiceImpl implements SalesAndDetailsService { |
|
|
@Autowired |
|
|
@Autowired |
|
|
private DebtService debtService; |
|
|
private DebtService debtService; |
|
|
|
|
|
|
|
|
|
|
|
@Autowired |
|
|
|
|
|
private DealingsRecordService dealingsRecordService; |
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
|
public Sale handleSalesAndDetails(SaleDTO saleDTO) { |
|
|
public Sale handleSalesAndDetails(SaleDTO saleDTO) { |
|
|
|
|
|
|
|
|
@ -103,9 +109,9 @@ public class SalesAndDetailsServiceImpl implements SalesAndDetailsService { |
|
|
|
|
|
|
|
|
final BigDecimal realAmount = sale.getRealAmount(); |
|
|
final BigDecimal realAmount = sale.getRealAmount(); |
|
|
final BigDecimal alreadyEarn = sale.getAlreadyEarn(); |
|
|
final BigDecimal alreadyEarn = sale.getAlreadyEarn(); |
|
|
if(realAmount.subtract(alreadyEarn).compareTo(BigDecimal.ZERO)>0 && alreadyEarn.compareTo(BigDecimal.ZERO)>0){ |
|
|
if (realAmount.subtract(alreadyEarn).compareTo(BigDecimal.ZERO) > 0 && alreadyEarn.compareTo(BigDecimal.ZERO) > 0) { |
|
|
sale.setPayStatus("2"); |
|
|
sale.setPayStatus("2"); |
|
|
} else if (realAmount.subtract(alreadyEarn).compareTo(BigDecimal.ZERO)==0){ |
|
|
} else if (realAmount.subtract(alreadyEarn).compareTo(BigDecimal.ZERO) == 0) { |
|
|
sale.setPayStatus("1"); |
|
|
sale.setPayStatus("1"); |
|
|
} else { |
|
|
} else { |
|
|
sale.setPayStatus("0"); |
|
|
sale.setPayStatus("0"); |
|
|
@ -127,9 +133,9 @@ public class SalesAndDetailsServiceImpl implements SalesAndDetailsService { |
|
|
|
|
|
|
|
|
final List<SaleDetail> saleDetailList = saleDTO.getSaleDetailList(); |
|
|
final List<SaleDetail> saleDetailList = saleDTO.getSaleDetailList(); |
|
|
final List<SaleDetail> saleDetailList2 = new ArrayList<SaleDetail>(); |
|
|
final List<SaleDetail> saleDetailList2 = new ArrayList<SaleDetail>(); |
|
|
for(SaleDetail saleDetail : saleDetailList){ |
|
|
for (SaleDetail saleDetail : saleDetailList) { |
|
|
final String productId = saleDetail.getProductId(); |
|
|
final String productId = saleDetail.getProductId(); |
|
|
product =productService.getById(productId); |
|
|
product = productService.getById(productId); |
|
|
|
|
|
|
|
|
saleDetail.setProductName(product.getProductName()); |
|
|
saleDetail.setProductName(product.getProductName()); |
|
|
saleDetail.setUnit(product.getUnit()); |
|
|
saleDetail.setUnit(product.getUnit()); |
|
|
@ -157,9 +163,9 @@ public class SalesAndDetailsServiceImpl implements SalesAndDetailsService { |
|
|
|
|
|
|
|
|
final BigDecimal realAmount = sale.getRealAmount(); |
|
|
final BigDecimal realAmount = sale.getRealAmount(); |
|
|
final BigDecimal alreadyEarn = sale.getAlreadyEarn(); |
|
|
final BigDecimal alreadyEarn = sale.getAlreadyEarn(); |
|
|
if(realAmount.subtract(alreadyEarn).compareTo(BigDecimal.ZERO)>0 && alreadyEarn.compareTo(BigDecimal.ZERO)>0){ |
|
|
if (realAmount.subtract(alreadyEarn).compareTo(BigDecimal.ZERO) > 0 && alreadyEarn.compareTo(BigDecimal.ZERO) > 0) { |
|
|
sale.setPayStatus("2"); |
|
|
sale.setPayStatus("2"); |
|
|
} else if (realAmount.subtract(alreadyEarn).compareTo(BigDecimal.ZERO)==0){ |
|
|
} else if (realAmount.subtract(alreadyEarn).compareTo(BigDecimal.ZERO) == 0) { |
|
|
sale.setPayStatus("1"); |
|
|
sale.setPayStatus("1"); |
|
|
} else { |
|
|
} else { |
|
|
sale.setPayStatus("0"); |
|
|
sale.setPayStatus("0"); |
|
|
@ -178,7 +184,7 @@ public class SalesAndDetailsServiceImpl implements SalesAndDetailsService { |
|
|
* */ |
|
|
* */ |
|
|
|
|
|
|
|
|
final List<SaleDetail> saleDetailList = saleDTO.getSaleDetailList(); |
|
|
final List<SaleDetail> saleDetailList = saleDTO.getSaleDetailList(); |
|
|
for(SaleDetail saleDetail : saleDetailList) { |
|
|
for (SaleDetail saleDetail : saleDetailList) { |
|
|
saleDetail.setSaleId(saleId); |
|
|
saleDetail.setSaleId(saleId); |
|
|
} |
|
|
} |
|
|
saleDetailService.saveBatch(saleDetailList); |
|
|
saleDetailService.saveBatch(saleDetailList); |
|
|
@ -196,30 +202,30 @@ public class SalesAndDetailsServiceImpl implements SalesAndDetailsService { |
|
|
|
|
|
|
|
|
BigDecimal realAmount = sale.getRealAmount(); |
|
|
BigDecimal realAmount = sale.getRealAmount(); |
|
|
BigDecimal alreadyEarn = sale.getAlreadyEarn(); |
|
|
BigDecimal alreadyEarn = sale.getAlreadyEarn(); |
|
|
if(realAmount == null){ |
|
|
if (realAmount == null) { |
|
|
realAmount = new BigDecimal(0); |
|
|
realAmount = new BigDecimal(0); |
|
|
} |
|
|
} |
|
|
if(alreadyEarn == null){ |
|
|
if (alreadyEarn == null) { |
|
|
alreadyEarn = new BigDecimal(0); |
|
|
alreadyEarn = new BigDecimal(0); |
|
|
} |
|
|
} |
|
|
if(realAmount.subtract(alreadyEarn).compareTo(BigDecimal.ZERO)>0 && alreadyEarn.compareTo(BigDecimal.ZERO)>0){ |
|
|
if (realAmount.subtract(alreadyEarn).compareTo(BigDecimal.ZERO) > 0 && alreadyEarn.compareTo(BigDecimal.ZERO) > 0) { |
|
|
sale.setPayStatus("2"); |
|
|
sale.setPayStatus("2"); |
|
|
} else if (realAmount.subtract(alreadyEarn).compareTo(BigDecimal.ZERO)==0){ |
|
|
} else if (realAmount.subtract(alreadyEarn).compareTo(BigDecimal.ZERO) == 0) { |
|
|
sale.setPayStatus("1"); |
|
|
sale.setPayStatus("1"); |
|
|
} else { |
|
|
} else { |
|
|
sale.setPayStatus("0"); |
|
|
sale.setPayStatus("0"); |
|
|
} |
|
|
} |
|
|
// 物流公司联系电话
|
|
|
// 物流公司联系电话
|
|
|
String transCompanyPhone = ""; |
|
|
String transCompanyPhone = ""; |
|
|
if(StringUtils.isNotEmpty(sale.getTransCompany())){ |
|
|
if (StringUtils.isNotEmpty(sale.getTransCompany())) { |
|
|
//
|
|
|
//
|
|
|
LogiticsCompany logiticsCompany = logiticsCompanyService.findById(sale.getTransCompany()); |
|
|
LogiticsCompany logiticsCompany = logiticsCompanyService.findById(sale.getTransCompany()); |
|
|
if(logiticsCompany == null ){ |
|
|
if (logiticsCompany == null) { |
|
|
// 选取的是运营区域
|
|
|
// 选取的是运营区域
|
|
|
// 获取运营商id
|
|
|
// 获取运营商id
|
|
|
transCompanyPhone = operatingAreaService.getOperatingAreaById(sale.getTransCompany()); |
|
|
transCompanyPhone = operatingAreaService.getOperatingAreaById(sale.getTransCompany()); |
|
|
sale.setCompanyPhone(transCompanyPhone); |
|
|
sale.setCompanyPhone(transCompanyPhone); |
|
|
}else{ |
|
|
} else { |
|
|
transCompanyPhone = logiticsCompany.getMobile(); |
|
|
transCompanyPhone = logiticsCompany.getMobile(); |
|
|
sale.setCompanyPhone(transCompanyPhone); |
|
|
sale.setCompanyPhone(transCompanyPhone); |
|
|
} |
|
|
} |
|
|
@ -229,10 +235,10 @@ public class SalesAndDetailsServiceImpl implements SalesAndDetailsService { |
|
|
sale.setStatus(SaleConstant.SALE_STATUS[4]); |
|
|
sale.setStatus(SaleConstant.SALE_STATUS[4]); |
|
|
// 自送如果选择了物流公司,也需要物流公司返佣
|
|
|
// 自送如果选择了物流公司,也需要物流公司返佣
|
|
|
// 选择物流公司才返佣,否则是没有选择物流公司的自提
|
|
|
// 选择物流公司才返佣,否则是没有选择物流公司的自提
|
|
|
if(StringUtils.isNotEmpty(sale.getTransCompany())){ |
|
|
if (StringUtils.isNotEmpty(sale.getTransCompany())) { |
|
|
deductLogService.updateRebateAmount("", sale.getTransCompany(), sale.getShopId(), sale.getId(),sale.getTransportType()); |
|
|
deductLogService.updateRebateAmount("", sale.getTransCompany(), sale.getShopId(), sale.getId(), sale.getTransportType()); |
|
|
} |
|
|
} |
|
|
} else if(SaleConstant.MODE_OF_SERVICE[2].equals(sale.getModeOfService())){ |
|
|
} else if (SaleConstant.MODE_OF_SERVICE[2].equals(sale.getModeOfService())) { |
|
|
// 物流自提
|
|
|
// 物流自提
|
|
|
sale.setStatus(SaleConstant.SALE_STATUS[13]); |
|
|
sale.setStatus(SaleConstant.SALE_STATUS[13]); |
|
|
// 给物流公司发送一个短信
|
|
|
// 给物流公司发送一个短信
|
|
|
@ -241,7 +247,7 @@ public class SalesAndDetailsServiceImpl implements SalesAndDetailsService { |
|
|
final Shop shop = shopService.get(shopId); |
|
|
final Shop shop = shopService.get(shopId); |
|
|
final String shopAddress = shop.getShopAddress(); |
|
|
final String shopAddress = shop.getShopAddress(); |
|
|
smsUtil.sendSms(transCompanyPhone, "{\"shopAddress\":\"" + shopAddress + "\"}", "SMS_465354371"); |
|
|
smsUtil.sendSms(transCompanyPhone, "{\"shopAddress\":\"" + shopAddress + "\"}", "SMS_465354371"); |
|
|
}else{ |
|
|
} else { |
|
|
//0:待抢单 1:待取货 2:已作废 3:待送达 4:已完成
|
|
|
//0:待抢单 1:待取货 2:已作废 3:待送达 4:已完成
|
|
|
//退货:
|
|
|
//退货:
|
|
|
//5:下游客户待退货 00:退货待抢单 01:退货待取货 02:退货已作废 03:退货待送达 04:待确认退货 4:已完成
|
|
|
//5:下游客户待退货 00:退货待抢单 01:退货待取货 02:退货已作废 03:退货待送达 04:待确认退货 4:已完成
|
|
|
@ -275,9 +281,9 @@ public class SalesAndDetailsServiceImpl implements SalesAndDetailsService { |
|
|
|
|
|
|
|
|
int productCount = 0; |
|
|
int productCount = 0; |
|
|
|
|
|
|
|
|
for(SaleDetailDTO saleDetailDTO : saleDetailList){ |
|
|
for (SaleDetailDTO saleDetailDTO : saleDetailList) { |
|
|
final String productId = saleDetailDTO.getProductId(); |
|
|
final String productId = saleDetailDTO.getProductId(); |
|
|
product =productService.getById(productId); |
|
|
product = productService.getById(productId); |
|
|
saleDetailDTO.setProductName(product.getProductName()); |
|
|
saleDetailDTO.setProductName(product.getProductName()); |
|
|
saleDetailDTO.setUnit(product.getUnit()); |
|
|
saleDetailDTO.setUnit(product.getUnit()); |
|
|
saleDetailDTO.setShopId(sale.getShopId()); |
|
|
saleDetailDTO.setShopId(sale.getShopId()); |
|
|
@ -288,12 +294,12 @@ public class SalesAndDetailsServiceImpl implements SalesAndDetailsService { |
|
|
saleDetailDTO.setPurchasePrice(product.getPurchasePrice()); |
|
|
saleDetailDTO.setPurchasePrice(product.getPurchasePrice()); |
|
|
saleDetailDTO.setProductPicture(product.getProductPicture()); |
|
|
saleDetailDTO.setProductPicture(product.getProductPicture()); |
|
|
saleDetailDTO.setProductSn(product.getProductSn()); |
|
|
saleDetailDTO.setProductSn(product.getProductSn()); |
|
|
for(SaleDetailQueryDTO saleDetailQueryDTO : saleDetailDTO.getStockLogList1()){ |
|
|
for (SaleDetailQueryDTO saleDetailQueryDTO : saleDetailDTO.getStockLogList1()) { |
|
|
final SaleDetail saleDetail = new SaleDetail(); |
|
|
final SaleDetail saleDetail = new SaleDetail(); |
|
|
saleDetailDTO.setAttributeList(saleDetailQueryDTO.getAttributeList()); |
|
|
saleDetailDTO.setAttributeList(saleDetailQueryDTO.getAttributeList()); |
|
|
saleDetailDTO.setProductCount(saleDetailQueryDTO.getProductCount()); |
|
|
saleDetailDTO.setProductCount(saleDetailQueryDTO.getProductCount()); |
|
|
productCount += saleDetailQueryDTO.getProductCount(); |
|
|
productCount += saleDetailQueryDTO.getProductCount(); |
|
|
BeanUtils.copyBeanProp(saleDetail,saleDetailDTO); |
|
|
BeanUtils.copyBeanProp(saleDetail, saleDetailDTO); |
|
|
saleDetail.setCreateTime(sale.getCreateTime()); |
|
|
saleDetail.setCreateTime(sale.getCreateTime()); |
|
|
saleDetail.setCreateBy(sale.getCreateBy()); |
|
|
saleDetail.setCreateBy(sale.getCreateBy()); |
|
|
saleDetailList2.add(saleDetail); |
|
|
saleDetailList2.add(saleDetail); |
|
|
@ -338,12 +344,12 @@ public class SalesAndDetailsServiceImpl implements SalesAndDetailsService { |
|
|
// 退货需要选择是否使用平台取货,
|
|
|
// 退货需要选择是否使用平台取货,
|
|
|
// 0:是-对应销售单的物流。
|
|
|
// 0:是-对应销售单的物流。
|
|
|
// 2:否- 对应销售单的自提
|
|
|
// 2:否- 对应销售单的自提
|
|
|
if(SaleConstant.TRANSPORT_TYPE[0].equals(returnSale.getTransportType())){ |
|
|
if (SaleConstant.TRANSPORT_TYPE[0].equals(returnSale.getTransportType())) { |
|
|
//使用平台取货
|
|
|
//使用平台取货
|
|
|
returnSale.setStatus(SaleConstant.SALE_STATUS[6]); |
|
|
returnSale.setStatus(SaleConstant.SALE_STATUS[6]); |
|
|
// 修改销售单的状态
|
|
|
// 修改销售单的状态
|
|
|
sale.setStatus(SaleConstant.SALE_STATUS[6]); |
|
|
sale.setStatus(SaleConstant.SALE_STATUS[6]); |
|
|
}else{ |
|
|
} else { |
|
|
//不使用平台取货,这里不用更爱订单的状态,还是已完成
|
|
|
//不使用平台取货,这里不用更爱订单的状态,还是已完成
|
|
|
returnSale.setStatus(SaleConstant.SALE_STATUS[4]); |
|
|
returnSale.setStatus(SaleConstant.SALE_STATUS[4]); |
|
|
} |
|
|
} |
|
|
@ -368,9 +374,9 @@ public class SalesAndDetailsServiceImpl implements SalesAndDetailsService { |
|
|
|
|
|
|
|
|
int productCount = 0; |
|
|
int productCount = 0; |
|
|
|
|
|
|
|
|
for(ReturnSaleDetailDTO returnSaleDetailDTO : saleDetailList){ |
|
|
for (ReturnSaleDetailDTO returnSaleDetailDTO : saleDetailList) { |
|
|
final String productId = returnSaleDetailDTO.getProductId(); |
|
|
final String productId = returnSaleDetailDTO.getProductId(); |
|
|
product =productService.getById(productId); |
|
|
product = productService.getById(productId); |
|
|
returnSaleDetailDTO.setProductName(product.getProductName()); |
|
|
returnSaleDetailDTO.setProductName(product.getProductName()); |
|
|
returnSaleDetailDTO.setUnit(product.getUnit()); |
|
|
returnSaleDetailDTO.setUnit(product.getUnit()); |
|
|
returnSaleDetailDTO.setShopId(sale.getShopId()); |
|
|
returnSaleDetailDTO.setShopId(sale.getShopId()); |
|
|
@ -382,12 +388,12 @@ public class SalesAndDetailsServiceImpl implements SalesAndDetailsService { |
|
|
returnSaleDetailDTO.setReturnSaleId(returnSaleId); |
|
|
returnSaleDetailDTO.setReturnSaleId(returnSaleId); |
|
|
returnSaleDetailDTO.setProductPicture(product.getProductPicture()); |
|
|
returnSaleDetailDTO.setProductPicture(product.getProductPicture()); |
|
|
returnSaleDetailDTO.setProductSn(product.getProductSn()); |
|
|
returnSaleDetailDTO.setProductSn(product.getProductSn()); |
|
|
for(SaleDetailQueryDTO saleDetailQueryDTO : returnSaleDetailDTO.getStockLogList1()){ |
|
|
for (SaleDetailQueryDTO saleDetailQueryDTO : returnSaleDetailDTO.getStockLogList1()) { |
|
|
final ReturnDetail returnDetail = new ReturnDetail(); |
|
|
final ReturnDetail returnDetail = new ReturnDetail(); |
|
|
returnSaleDetailDTO.setAttributeList(saleDetailQueryDTO.getAttributeList()); |
|
|
returnSaleDetailDTO.setAttributeList(saleDetailQueryDTO.getAttributeList()); |
|
|
returnSaleDetailDTO.setProductCount(saleDetailQueryDTO.getProductCount()); |
|
|
returnSaleDetailDTO.setProductCount(saleDetailQueryDTO.getProductCount()); |
|
|
productCount += saleDetailQueryDTO.getProductCount(); |
|
|
productCount += saleDetailQueryDTO.getProductCount(); |
|
|
BeanUtils.copyBeanProp(returnDetail,returnSaleDetailDTO); |
|
|
BeanUtils.copyBeanProp(returnDetail, returnSaleDetailDTO); |
|
|
returnDetail.setCreateTime(returnSale.getCreateTime()); |
|
|
returnDetail.setCreateTime(returnSale.getCreateTime()); |
|
|
returnDetail.setCreateBy(returnSale.getCreateBy()); |
|
|
returnDetail.setCreateBy(returnSale.getCreateBy()); |
|
|
returnDetail.setDelFlag(CommonConstant.DEL_FLAG_FALSE); |
|
|
returnDetail.setDelFlag(CommonConstant.DEL_FLAG_FALSE); |
|
|
@ -404,6 +410,37 @@ public class SalesAndDetailsServiceImpl implements SalesAndDetailsService { |
|
|
@Override |
|
|
@Override |
|
|
public Sale savePresale(SaleQueryDTO saleQueryDTO) { |
|
|
public Sale savePresale(SaleQueryDTO saleQueryDTO) { |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
* 1.处理Sale总订单 |
|
|
|
|
|
* 处理订单状态/收款状态 |
|
|
|
|
|
* */ |
|
|
|
|
|
final Sale sale = saleQueryDTO.getSale(); |
|
|
|
|
|
|
|
|
|
|
|
// 查询分享单的创建人(销售员id)
|
|
|
|
|
|
// 获取分享单的id
|
|
|
|
|
|
String oldSaleId = saleQueryDTO.getOldSaleId(); |
|
|
|
|
|
// 新增下游客户信息
|
|
|
|
|
|
final Customer customer = new Customer(); |
|
|
|
|
|
// 欠款信息
|
|
|
|
|
|
final Debt debt = new Debt(); |
|
|
|
|
|
// 2. 新增欠款记录
|
|
|
|
|
|
final DealingsRecord dealingsRecord = new DealingsRecord(); |
|
|
|
|
|
|
|
|
|
|
|
if (StringUtils.isNotEmpty(oldSaleId)) { |
|
|
|
|
|
//
|
|
|
|
|
|
Map<String, String> userData = productShareService.getCreByUserData(oldSaleId); |
|
|
|
|
|
if (userData != null) { |
|
|
|
|
|
// 分享的人员设置为销售单的销售员
|
|
|
|
|
|
sale.setCreateBy(String.valueOf(userData.get("id"))); |
|
|
|
|
|
sale.setCreateByName(userData.get("nickname")); |
|
|
|
|
|
// 欠款信息创建人
|
|
|
|
|
|
debt.setCreateBy(String.valueOf(userData.get("id"))); |
|
|
|
|
|
// 欠款记录信息创建人
|
|
|
|
|
|
dealingsRecord.setCreateBy(String.valueOf(userData.get("id"))); |
|
|
|
|
|
dealingsRecord.setCreateByName(userData.get("nickname")); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
// 分享页提交订单的时候,根据手机号查询下游客户信息,如果查不到,则新增下游客户
|
|
|
// 分享页提交订单的时候,根据手机号查询下游客户信息,如果查不到,则新增下游客户
|
|
|
User byMobile; |
|
|
User byMobile; |
|
|
String customerId = ""; |
|
|
String customerId = ""; |
|
|
@ -448,8 +485,7 @@ public class SalesAndDetailsServiceImpl implements SalesAndDetailsService { |
|
|
byMobile = userService.save(byMobile); |
|
|
byMobile = userService.save(byMobile); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
// 新增下游客户信息
|
|
|
|
|
|
final Customer customer = new Customer(); |
|
|
|
|
|
customer.setUserId(byMobile.getId()); |
|
|
customer.setUserId(byMobile.getId()); |
|
|
customer.setCreateTime(new Date()); |
|
|
customer.setCreateTime(new Date()); |
|
|
customer.setDelFlag(CommonConstant.DEL_FLAG_FALSE); |
|
|
customer.setDelFlag(CommonConstant.DEL_FLAG_FALSE); |
|
|
@ -463,29 +499,43 @@ public class SalesAndDetailsServiceImpl implements SalesAndDetailsService { |
|
|
customerService.save(customer); |
|
|
customerService.save(customer); |
|
|
// 获取新增的客户id
|
|
|
// 获取新增的客户id
|
|
|
customerId = customer.getId(); |
|
|
customerId = customer.getId(); |
|
|
|
|
|
// 客户欠款信息
|
|
|
|
|
|
final BigDecimal amountOwed = customer.getAmountOwed() == null ? BigDecimal.ZERO : customer.getAmountOwed(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
debt.setCreateTime(new Date()); |
|
|
|
|
|
debt.setUserId(customer.getId()); |
|
|
|
|
|
debt.setShopId(saleQueryDTO.getSale().getShopId()); |
|
|
|
|
|
debt.setUserPhone(customer.getPhone()); |
|
|
|
|
|
debt.setUserAdress(customer.getAddress()); |
|
|
|
|
|
debt.setUserName(customer.getName()); |
|
|
|
|
|
debt.setAmountOwed(amountOwed); |
|
|
|
|
|
debt.setUserType(DebtConstant.USER_TYPE[0]); |
|
|
|
|
|
debtService.save(debt); |
|
|
|
|
|
// 新增交易记录
|
|
|
|
|
|
dealingsRecord.setCreateTime(new Date()); |
|
|
|
|
|
dealingsRecord.setDealingsUserId(customer.getId()); |
|
|
|
|
|
dealingsRecord.setDealingsUserName(customer.getName()); |
|
|
|
|
|
dealingsRecord.setUserType(DealingsRecordConstant.TYPE[1]); |
|
|
|
|
|
dealingsRecord.setDealingsWay("新增客户"); |
|
|
|
|
|
dealingsRecord.setShopId(saleQueryDTO.getSale().getShopId()); |
|
|
|
|
|
// 销售金额
|
|
|
|
|
|
dealingsRecord.setSaleAmount(BigDecimal.ZERO); |
|
|
|
|
|
// 退货金额
|
|
|
|
|
|
dealingsRecord.setReturnAmount(BigDecimal.ZERO); |
|
|
|
|
|
// 上次欠款
|
|
|
|
|
|
dealingsRecord.setLastDebtAmount(BigDecimal.ZERO); |
|
|
|
|
|
// 最新欠款
|
|
|
|
|
|
dealingsRecord.setBalanceDue(amountOwed); |
|
|
|
|
|
dealingsRecord.setAmount(amountOwed); |
|
|
|
|
|
dealingsRecord.setDealingsType(DealingsRecordConstant.DEALINGS_TYPE[3]); |
|
|
|
|
|
dealingsRecordService.save(dealingsRecord); |
|
|
|
|
|
|
|
|
} else { |
|
|
} else { |
|
|
log.error("下游客户未填写手机号!"); |
|
|
log.error("下游客户未填写手机号!"); |
|
|
return null; |
|
|
return null; |
|
|
} |
|
|
} |
|
|
/** |
|
|
|
|
|
* 1.处理Sale总订单 |
|
|
|
|
|
* 处理订单状态/收款状态 |
|
|
|
|
|
* */ |
|
|
|
|
|
final Sale sale = saleQueryDTO.getSale(); |
|
|
|
|
|
|
|
|
|
|
|
// 查询分享单的创建人(销售员id)
|
|
|
|
|
|
// 获取分享单的id
|
|
|
|
|
|
String oldSaleId = saleQueryDTO.getOldSaleId(); |
|
|
|
|
|
if(StringUtils.isNotEmpty(oldSaleId)){ |
|
|
|
|
|
//
|
|
|
|
|
|
Map<String,String> userData = productShareService.getCreByUserData(oldSaleId); |
|
|
|
|
|
if(userData != null){ |
|
|
|
|
|
// 分享的人员设置为销售单的销售员
|
|
|
|
|
|
sale.setCreateBy(String.valueOf(userData.get("id"))); |
|
|
|
|
|
sale.setCreateByName(userData.get("nickname")); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
// 分享页提交订单这里肯定是:未收款
|
|
|
// 分享页提交订单这里肯定是:未收款
|
|
|
sale.setPayStatus("0"); |
|
|
sale.setPayStatus("0"); |
|
|
// 分享页提交订单:6:待配货
|
|
|
// 分享页提交订单:6:待配货
|
|
|
@ -547,15 +597,16 @@ public class SalesAndDetailsServiceImpl implements SalesAndDetailsService { |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* 保存挂单商品信息 |
|
|
* 保存挂单商品信息 |
|
|
|
|
|
* |
|
|
|
|
|
* @param saleDetailDTOList |
|
|
* @author 王富康 |
|
|
* @author 王富康 |
|
|
* @date 2023/10/28 |
|
|
* @date 2023/10/28 |
|
|
* @param saleDetailDTOList |
|
|
|
|
|
*/ |
|
|
*/ |
|
|
@Override |
|
|
@Override |
|
|
public void setSaleDetail(List<SaleDetailDTO> saleDetailDTOList, String saleId){ |
|
|
public void setSaleDetail(List<SaleDetailDTO> saleDetailDTOList, String saleId) { |
|
|
Sale sale = new Sale(); |
|
|
Sale sale = new Sale(); |
|
|
// 根据销售单id 将之前所有挂单商品删除掉
|
|
|
// 根据销售单id 将之前所有挂单商品删除掉
|
|
|
if(!saleDetailDTOList.isEmpty()){ |
|
|
if (!saleDetailDTOList.isEmpty()) { |
|
|
// 获取销售单信息,后边保存数量
|
|
|
// 获取销售单信息,后边保存数量
|
|
|
sale = saleService.getById(saleId); |
|
|
sale = saleService.getById(saleId); |
|
|
// 统一删除之前的商品信息
|
|
|
// 统一删除之前的商品信息
|
|
|
@ -578,12 +629,12 @@ public class SalesAndDetailsServiceImpl implements SalesAndDetailsService { |
|
|
saleDetailDTO.setPrice(product.getPrice()); |
|
|
saleDetailDTO.setPrice(product.getPrice()); |
|
|
saleDetailDTO.setWholesalePrice(product.getWholesalePrice()); |
|
|
saleDetailDTO.setWholesalePrice(product.getWholesalePrice()); |
|
|
saleDetailDTO.setPurchasePrice(product.getPurchasePrice()); |
|
|
saleDetailDTO.setPurchasePrice(product.getPurchasePrice()); |
|
|
for(SaleDetailQueryDTO saleDetailQueryDTO : saleDetailDTO.getStockLogList1()){ |
|
|
for (SaleDetailQueryDTO saleDetailQueryDTO : saleDetailDTO.getStockLogList1()) { |
|
|
final SaleDetail saleDetail = new SaleDetail(); |
|
|
final SaleDetail saleDetail = new SaleDetail(); |
|
|
saleDetailDTO.setAttributeList(saleDetailQueryDTO.getAttributeList()); |
|
|
saleDetailDTO.setAttributeList(saleDetailQueryDTO.getAttributeList()); |
|
|
saleDetailDTO.setProductCount(saleDetailQueryDTO.getProductCount()); |
|
|
saleDetailDTO.setProductCount(saleDetailQueryDTO.getProductCount()); |
|
|
productCount += saleDetailQueryDTO.getProductCount(); |
|
|
productCount += saleDetailQueryDTO.getProductCount(); |
|
|
BeanUtils.copyBeanProp(saleDetail,saleDetailDTO); |
|
|
BeanUtils.copyBeanProp(saleDetail, saleDetailDTO); |
|
|
saleDetail.setCreateTime(new Date()); |
|
|
saleDetail.setCreateTime(new Date()); |
|
|
saleDetail.setCreateBy(sale.getCreateBy()); |
|
|
saleDetail.setCreateBy(sale.getCreateBy()); |
|
|
saleDetailList2.add(saleDetail); |
|
|
saleDetailList2.add(saleDetail); |
|
|
|