|
@@ -9,6 +9,7 @@ import com.gree.mall.manager.bean.admin.AdminUserCom;
|
|
|
import com.gree.mall.manager.bean.material.manage.*;
|
|
|
import com.gree.mall.manager.commonmapper.MaterialMapper;
|
|
|
import com.gree.mall.manager.enums.IsEnum;
|
|
|
+import com.gree.mall.manager.enums.IsYesNoEnum;
|
|
|
import com.gree.mall.manager.enums.material.*;
|
|
|
import com.gree.mall.manager.exception.RemoteServiceException;
|
|
|
import com.gree.mall.manager.logic.common.CommonLogic;
|
|
@@ -44,6 +45,21 @@ public class WebsitPartsSalesOrderLogic {
|
|
|
private final WebsitStockService websitStockService;
|
|
|
private final StorageService storageService;
|
|
|
private final MaterialConfigService materialConfigService;
|
|
|
+ private final WebsitSalesPayOrderService websitSalesPayOrderService;
|
|
|
+
|
|
|
+ public IPage<WebsitPartsSalesVO> list(ZfireParamBean zfireParamBean) {
|
|
|
+ AdminUserCom adminUser = commonLogic.getAdminUser();
|
|
|
+ FieldUtils.materialParam(zfireParamBean, WebsitPartsSalesVO.class, adminUser);
|
|
|
+
|
|
|
+ return materialMapper.websitPartsSalesPage(new Page(zfireParamBean.getPageNum(), zfireParamBean.getPageSize()), zfireParamBean);
|
|
|
+ }
|
|
|
+
|
|
|
+ public IPage<WebsitPartsSalesWVO> websitList(ZfireParamBean zfireParamBean) {
|
|
|
+ AdminUserCom adminUser = commonLogic.getAdminUser();
|
|
|
+ FieldUtils.materialParam(zfireParamBean, WebsitPartsSalesWVO.class, adminUser);
|
|
|
+
|
|
|
+ return materialMapper.websitPartsSalesWPage(new Page(zfireParamBean.getPageNum(), zfireParamBean.getPageSize()), zfireParamBean);
|
|
|
+ }
|
|
|
|
|
|
private Map<String, Object> validate(WebsitPartsSalesBean partsSalesOrderBean) {
|
|
|
Map<String, Object> result = new HashMap<>();
|
|
@@ -325,22 +341,77 @@ public class WebsitPartsSalesOrderLogic {
|
|
|
return partsSalesOrderItems;
|
|
|
}
|
|
|
|
|
|
- public WebsitPartsSalesBean loadSalesOrderById(String id, Object o) {
|
|
|
- return null;
|
|
|
- }
|
|
|
+ public WebsitPartsSalesBean loadSalesOrderById(String id) {
|
|
|
+ WebsitPartsSales partsSalesOrder = websitPartsSalesService.getById(id);
|
|
|
|
|
|
- public IPage<WebsitPartsSalesVO> list(ZfireParamBean zfireParamBean) {
|
|
|
- AdminUserCom adminUser = commonLogic.getAdminUser();
|
|
|
- FieldUtils.materialParam(zfireParamBean, WebsitPartsSalesVO.class, adminUser);
|
|
|
+ if(Objects.isNull(partsSalesOrder)) {
|
|
|
+ throw new RemoteServiceException("获取配件销售单失败") ;
|
|
|
+ }
|
|
|
|
|
|
- return materialMapper.websitPartsSalesPage(new Page(zfireParamBean.getPageNum(), zfireParamBean.getPageSize()), zfireParamBean);
|
|
|
+ WebsitPartsSalesBean partsSalesOrderBean = new WebsitPartsSalesBean();
|
|
|
+ BeanUtils.copyProperties(partsSalesOrder, partsSalesOrderBean, WebsitPartsSalesBean.class);
|
|
|
+ List<WebsitPartsSalesItemBean> itemList = materialMapper.selectItemBySalesOrderId(partsSalesOrderBean.getId());
|
|
|
+ partsSalesOrderBean.setItemList(Collections.isEmpty(itemList) ? null : itemList);
|
|
|
+ List<WebsitSalesPayOrder> payList = websitSalesPayOrderService.lambdaQuery()
|
|
|
+ .eq(WebsitSalesPayOrder::getCompanyWechatId, partsSalesOrder.getCompanyWechatId())
|
|
|
+ .eq(WebsitSalesPayOrder::getPayFlag, IsYesNoEnum.YES.getKey())
|
|
|
+ .eq(WebsitSalesPayOrder::getOrderId, partsSalesOrderBean.getId())
|
|
|
+ .list();
|
|
|
+
|
|
|
+ partsSalesOrderBean.setPayList(payList);
|
|
|
+
|
|
|
+ // 配件使用记录
|
|
|
+ List<OldRefundManageRecordBean> oldRefundManageRecordBeans = materialMapper.queryOldRefundRecordById(partsSalesOrder.getId());
|
|
|
+ partsSalesOrderBean.setOldRefundManageRecordBeanList(oldRefundManageRecordBeans);
|
|
|
+
|
|
|
+ return partsSalesOrderBean;
|
|
|
}
|
|
|
|
|
|
- public IPage<WebsitPartsSalesWVO> websitList(ZfireParamBean zfireParamBean) {
|
|
|
+
|
|
|
+ public void update(WebsitPartsSalesBean partsSalesOrderBean) {
|
|
|
AdminUserCom adminUser = commonLogic.getAdminUser();
|
|
|
- FieldUtils.materialParam(zfireParamBean, WebsitPartsSalesWVO.class, adminUser);
|
|
|
+ WebsitPartsSales partsSalesOrder = websitPartsSalesService.getById(partsSalesOrderBean.getId());
|
|
|
+ if(Objects.isNull(partsSalesOrder)) {
|
|
|
+ throw new RemoteServiceException("该配件销售单不存在");
|
|
|
+ }
|
|
|
+ //订单已提交,不能修改
|
|
|
+ if(!partsSalesOrder.getStatus().equals(PartsOrderStatusEnum.SAVE.getKey())) {
|
|
|
+ throw new RemoteServiceException("该配件销售单已提交,不能修改");
|
|
|
+ }
|
|
|
+ //一系列校验
|
|
|
+ Map<String, Object> validateMap = validate(partsSalesOrderBean);
|
|
|
+ if(validateMap.containsKey("isSuccess") && !Boolean.parseBoolean(validateMap.get("isSuccess").toString())) {
|
|
|
+ throw new RemoteServiceException(validateMap.get("msg").toString());
|
|
|
+ }
|
|
|
|
|
|
- return materialMapper.websitPartsSalesWPage(new Page(zfireParamBean.getPageNum(), zfireParamBean.getPageSize()), zfireParamBean);
|
|
|
+ if (CollectionUtil.isEmpty(partsSalesOrderBean.getItemList())) {
|
|
|
+ throw new RemoteServiceException("请选择配件");
|
|
|
+ }
|
|
|
+
|
|
|
+ if (Objects.isNull(partsSalesOrderBean.getPayType())) {
|
|
|
+ // 默认通联
|
|
|
+ partsSalesOrderBean.setPayType(PayTypeEnum.ALLINPAY.getKey());
|
|
|
+ }
|
|
|
+
|
|
|
+ List<WebsitPartsSalesItemBean> itemList = partsSalesOrderBean.getItemList();
|
|
|
+ BigDecimal totalPrice = BigDecimal.ZERO;
|
|
|
+ for(WebsitPartsSalesItem partsSalesOrderItem : itemList) {
|
|
|
+ partsSalesOrderItem.setTotalAmount(partsSalesOrderItem.getSalesPrice().multiply(partsSalesOrderItem.getQty())
|
|
|
+ .setScale(2, BigDecimal.ROUND_HALF_UP));
|
|
|
+ totalPrice = totalPrice.add(partsSalesOrderItem.getTotalAmount());
|
|
|
+ }
|
|
|
+
|
|
|
+ // 记录总金额
|
|
|
+ partsSalesOrderBean.setTotalPrice(totalPrice);
|
|
|
+ websitPartsSalesService.updateById(partsSalesOrderBean);
|
|
|
+ // 删除销售单配件明细
|
|
|
+ websitPartsSalesItemService.lambdaUpdate()
|
|
|
+ .eq(WebsitPartsSalesItem::getSalesId, partsSalesOrderBean.getId())
|
|
|
+ .remove();
|
|
|
+
|
|
|
+ // 保存销售单明细
|
|
|
+ List<WebsitPartsSalesItem> partsSalesOrderItems = this.createSalesOrderItem(partsSalesOrderBean, itemList);
|
|
|
+ websitPartsSalesItemService.saveBatch(partsSalesOrderItems);
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -352,12 +423,19 @@ public class WebsitPartsSalesOrderLogic {
|
|
|
*/
|
|
|
public WebsitStock queryPartsNewQty(String websitId, String partsWebsitId, String partsNumber) {
|
|
|
AdminUserCom adminUser = commonLogic.getAdminUser();
|
|
|
+ final Storage storage = storageService.lambdaQuery()
|
|
|
+ .eq(Storage::getCompanyWechatId, adminUser.getCompanyWechatId())
|
|
|
+ .eq(Storage::getWebsitId, websitId)
|
|
|
+ .eq(Storage::getIsDefault, IsEnum.Y.getValue())
|
|
|
+ .one();
|
|
|
return websitStockService.lambdaQuery()
|
|
|
.eq(WebsitStock::getCompanyWechatId, adminUser.getCompanyWechatId())
|
|
|
.eq(WebsitStock::getGoodsType, WebsitGoodsTypeEnum.P.getKey())
|
|
|
.eq(WebsitStock::getGoodsId, partsNumber)
|
|
|
.eq(WebsitStock::getWebsitId, websitId)
|
|
|
+ .eq(WebsitStock::getStorageId, storage.getStorageId())
|
|
|
.eq(WebsitStock::getPartsWebsitId, partsWebsitId)
|
|
|
.one();
|
|
|
}
|
|
|
+
|
|
|
}
|