| | |
| | | import com.matrix.core.tools.StringUtils; |
| | | import com.matrix.core.tools.WebUtil; |
| | | import com.matrix.system.app.dto.OrderListDto; |
| | | import com.matrix.system.app.mapper.SysProjUseMapper; |
| | | import com.matrix.system.app.vo.OrderDetailAchieveItemVo; |
| | | import com.matrix.system.app.vo.OrderDetailItemVo; |
| | | import com.matrix.system.app.vo.OrderDetailVo; |
| | |
| | | import com.matrix.system.hive.pojo.CzXkVo; |
| | | import com.matrix.system.hive.pojo.ShoppingCarItem; |
| | | import com.matrix.system.hive.pojo.ShoppingCarItemsVo; |
| | | import com.matrix.system.hive.service.AchieveNewService; |
| | | import com.matrix.system.hive.service.CodeService; |
| | | import com.matrix.system.hive.service.ShoppingGoodsService; |
| | | import com.matrix.system.hive.service.SysOrderService; |
| | | import com.matrix.system.hive.service.*; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import javax.servlet.http.HttpSession; |
| | | import javax.validation.constraints.NotEmpty; |
| | | import java.util.*; |
| | | |
| | | /** |
| | |
| | | @Autowired |
| | | private SysOrderFlowDao sysOrderFlowDao; |
| | | |
| | | @Autowired |
| | | private SysSupplierInfoDao sysSupplierInfoDao; |
| | | |
| | | @Autowired |
| | | private SysInstoreInfoDao sysInstoreInfoDao; |
| | | |
| | | @Autowired |
| | | private SysInstoreDetailDao sysInstoreDetailDao; |
| | | |
| | | @Autowired |
| | | private SysInstoreInfoService sysInstoreInfoService; |
| | | |
| | | |
| | | @Override |
| | | public int add(SysOrder sysOrder) { |
| | | return sysOrderDao.insert(sysOrder); |
| | |
| | | @Override |
| | | public SysOrder checkAndSaveOrder(SysOrder sysOrder) { |
| | | // 收款改变订单状态 |
| | | SysOrder source = null; |
| | | if (sysOrder.getId() != null) { |
| | | source = sysOrderDao.selectById(sysOrder.getId()); |
| | | } |
| | | |
| | | // 计算订单折扣金额,收款情况下 计算订单总额 |
| | | double zkTotal = 0.0; |
| | | |
| | | // 判断是否为退款 |
| | | String orderStatus = Dictionary.ORDER_STATU_DFK; |
| | | if (Dictionary.ORDER_STATU_TK.equals(sysOrder.getStatu())) { |
| | | orderStatus = Dictionary.ORDER_STATU_TK; |
| | | } |
| | | |
| | | // 页面的pageOrder 参数只包含支付金额信息,不带有购买商品 |
| | | for (SysOrderItem item : sysOrder.getItems()) { |
| | | // 若为退款,则先更新原有数量 |
| | | if (orderStatus.equals(Dictionary.ORDER_STATU_TK)) { |
| | | SysOrderItem sysOrderItem = new SysOrderItem(); |
| | | sysOrderItem.setId(item.getId()); |
| | | sysOrderItem.setCount(item.getPreCount() - item.getCount()); |
| | | orderItemDao.update(sysOrderItem); |
| | | } |
| | | item.setId(null); |
| | | |
| | | ShoppingGoods shoppingGoods = shoppingGoodsDao.selectById(item.getGoodsId()); |
| | | item.setType(shoppingGoods.getGoodType()); |
| | |
| | | // 订单欠款减去支付金额 设置实际欠款 |
| | | Double itemZkTotal = MoneyUtil.mul(item.getZkPrice(), Double.valueOf(item.getCount())); |
| | | zkTotal=MoneyUtil.add(zkTotal, itemZkTotal); |
| | | item.setStatus(Dictionary.ORDER_STATU_DFK); |
| | | item.setStatus(orderStatus); |
| | | } |
| | | |
| | | SysUsers user = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY); |
| | | sysOrder.setZkTotal(zkTotal); |
| | | sysOrder.setStatu(Dictionary.ORDER_STATU_DFK); |
| | | sysOrder.setStaffId(user.getSuId()); |
| | | sysOrder.setCompanyId(user.getCompanyId()); |
| | | sysOrder.setStatu(orderStatus); |
| | | sysOrder.setStaffId(source != null ? source.getStaffId() : user.getSuId()); |
| | | sysOrder.setCompanyId(source != null ? source.getCompanyId() : user.getCompanyId()); |
| | | |
| | | sysOrder.setPayTime(new Date()); |
| | | if(sysOrder.getId()==null){ |
| | |
| | | |
| | | sysOrder.getItems().forEach(sysOrderItem -> { |
| | | sysOrderItem.setOrderId(sysOrder.getId()); |
| | | orderItemDao.insert(sysOrderItem); |
| | | if (sysOrder.getStatu().equals(Dictionary.ORDER_STATU_TK)) { |
| | | // 取负数 |
| | | sysOrderItem.setCount(-sysOrderItem.getCount()); |
| | | orderItemDao.insert(sysOrderItem); |
| | | // 调整回来 |
| | | sysOrderItem.setCount(-sysOrderItem.getCount()); |
| | | } else { |
| | | orderItemDao.insert(sysOrderItem); |
| | | } |
| | | |
| | | }); |
| | | |
| | | return sysOrder; |
| | |
| | | // 设置订单总价与折后价 |
| | | order.setTotal(total); |
| | | order.setZkTotal(zkTotal); |
| | | order.setArrears(zkTotal); |
| | | sysOrderDao.update(order); |
| | | return i; |
| | | } |
| | |
| | | private void changeOrderStatu(SysOrder sourceOrder) { |
| | | int i = 1; |
| | | String orderStatus = Dictionary.ORDER_STATU_YFK; |
| | | String flowType = SysOrderFlow.FLOW_TYPE_BUY; |
| | | double cashPayTotal = 0D; |
| | | double cardPayTotal = 0D; |
| | | for (SysOrderFlow flow : sourceOrder.getFlows()) { |
| | | flow.setFlowNo(codeService.getFlowCode() + "-" + i); |
| | | Long goodsId = sourceOrder.getItems().get(0).getGoodsId(); |
| | | ShoppingGoods goods = shoppingGoodsDao.selectById(goodsId); |
| | | flow.setFlowContent(goods.getName() + "等" + sourceOrder.getItems().size() + "件产品"); |
| | | |
| | | flow.setOrderId(sourceOrder.getId()); |
| | | if (Dictionary.ORDER_STATU_TK.equals(sourceOrder.getStatu())) { |
| | | flowType = SysOrderFlow.FLOW_TYPE_REFUND; |
| | | // 若是退款,则取负数 |
| | | flow.setAmount(flow.getAmount().negate()); |
| | | flow.setOrderId(sourceOrder.getOldOrderId()); |
| | | } else { |
| | | flow.setOrderId(sourceOrder.getId()); |
| | | } |
| | | |
| | | flow.setVipId(sourceOrder.getVipId()); |
| | | flow.setFlowType(SysOrderFlow.FLOW_TYPE_BUY); |
| | | flow.setFlowType(flowType); |
| | | // 若使用储值卡付款 |
| | | if (SysOrderFlow.PAY_METHOD_CARD.equals(flow.getPayMethod())) { |
| | | if (flow.getCardId() != null) { |
| | | MoneyCardUse moneyCardUse = moneyCardUseDao.selectById(flow.getCardId()); |
| | | cardPaySk(moneyCardUse, sourceOrder, flow); |
| | | cardPayTotal += flow.getAmount().doubleValue(); |
| | | } |
| | | } |
| | | |
| | |
| | | orderStatus = Dictionary.ORDER_STATU_QK; |
| | | sourceOrder.setArrears(flow.getAmount().doubleValue()); |
| | | } |
| | | |
| | | if (!SysOrderFlow.PAY_METHOD_ARREARS.equals(flow.getPayMethod()) && !SysOrderFlow.PAY_METHOD_CARD.equals(flow.getPayMethod())) { |
| | | cashPayTotal += flow.getAmount().doubleValue(); |
| | | } |
| | | flow.setShopId(sourceOrder.getShopId()); |
| | | flow.setCompanyId(sourceOrder.getCompanyId()); |
| | | sysOrderFlowDao.insert(flow); |
| | | i++; |
| | | } |
| | | |
| | | if (Dictionary.ORDER_STATU_TK.equals(sourceOrder.getStatu())) { |
| | | orderStatus = Dictionary.ORDER_STATU_TK; |
| | | } |
| | | |
| | | // 更新收款状态 |
| | | sourceOrder.setStatu(orderStatus); |
| | | sourceOrder.setCardPay(cardPayTotal); |
| | | sourceOrder.setCashPay(cashPayTotal); |
| | | sysOrderDao.update(sourceOrder); |
| | | |
| | | } |
| | |
| | | Integer buyNum = orderItemDao.selectByGoodsId(shopGoods.getId()); |
| | | buyNum = (buyNum == null ? 0 : buyNum); |
| | | if ((buyNum + carItem.getCount()) > maxNum) { |
| | | |
| | | throw new GlobleException(shopGoods.getName() + "已超过最大销售数量,还剩【" + (maxNum - buyNum) + "】件"); |
| | | throw new GlobleException(shopGoods.getName() + "已超过最大销售数量"); |
| | | } |
| | | if ((buyNum + carItem.getCount()) == maxNum) { |
| | | if (!shopGoods.getStaus().equals(Dictionary.BUSINESS_STATE_DOWN)) { |
| | |
| | | } |
| | | |
| | | ShoppingGoods shoppingGoods = shoppingGoodsService.findById(moneyCardUse.getGoodsId()); |
| | | Date invalidTime = shoppingGoodsService.calInvalidTime(shoppingGoods, 2, moneyCardUse.getFailTime()); |
| | | moneyCardUse.setFailTime(invalidTime); |
| | | if (shoppingGoods != null) { |
| | | Date invalidTime = shoppingGoodsService.calInvalidTime(shoppingGoods, 2, moneyCardUse.getFailTime()); |
| | | moneyCardUse.setFailTime(invalidTime); |
| | | } |
| | | // 更新充值卡信息 |
| | | moneyCardUseDao.update(moneyCardUse); |
| | | } |
| | |
| | | // 如果购买的是充值卡 |
| | | if (sysOrderItem.getType().equals(Dictionary.SHOPPING_GOODS_TYPE_CZK)) { |
| | | |
| | | ShoppingGoods moneyCar = shoppingGoodsDao.selectById(sysOrderItem.getGoodsId()); |
| | | MoneyCardUse moneyCardUse = new MoneyCardUse(); |
| | | moneyCardUse.setVipId(sourceOrder.getVipId()); |
| | | moneyCardUse.setGiftMoney(moneyCar.getReferencePice()); |
| | | moneyCardUse.setRealMoney(moneyCar.getSealPice()); |
| | | moneyCardUse.setGoodsId(moneyCar.getId()); |
| | | moneyCardUse.setIsOver(Dictionary.FLAG_NO_N); |
| | | moneyCardUse.setOrderItemId(sysOrderItem.getId()); |
| | | moneyCardUse.setSource(Dictionary.TAOCAN_SOURCE_GM); |
| | | moneyCardUse.setStatus(Dictionary.MONEYCARD_STATUS_YX); |
| | | moneyCardUse.setCardName(moneyCar.getName()); |
| | | |
| | | if (Dictionary.FLAG_YES.equals(moneyCar.getCarIsAll())) { |
| | | moneyCardUse.setIsVipCar(Dictionary.FLAG_YES_Y); |
| | | } else { |
| | | // 非会籍卡 |
| | | moneyCardUse.setIsVipCar(Dictionary.FLAG_NO_N); |
| | | } |
| | | |
| | | // 是否为赠送 |
| | | if (sysOrderItem.getIsFree().equals(Dictionary.FLAG_YES)) { |
| | | moneyCardUse.setSource(Dictionary.TAOCAN_SOURCE_ZS); |
| | | } else { |
| | | for(int i = 0; i < sysOrderItem.getCount(); i++) { |
| | | ShoppingGoods moneyCar = shoppingGoodsDao.selectById(sysOrderItem.getGoodsId()); |
| | | MoneyCardUse moneyCardUse = new MoneyCardUse(); |
| | | moneyCardUse.setVipId(sourceOrder.getVipId()); |
| | | moneyCardUse.setGiftMoney(moneyCar.getReferencePice()); |
| | | moneyCardUse.setRealMoney(moneyCar.getSealPice()); |
| | | moneyCardUse.setGoodsId(moneyCar.getId()); |
| | | moneyCardUse.setIsOver(Dictionary.FLAG_NO_N); |
| | | moneyCardUse.setOrderItemId(sysOrderItem.getId()); |
| | | moneyCardUse.setSource(Dictionary.TAOCAN_SOURCE_GM); |
| | | } |
| | | if (moneyCar.getCarUseCount() == null || moneyCar.getCarUseCount() == 0) { |
| | | moneyCardUse.setUseTotal(999999999); |
| | | moneyCardUse.setLastCount(999999999); |
| | | } else { |
| | | moneyCardUse.setUseTotal(moneyCar.getCarUseCount()); |
| | | moneyCardUse.setLastCount(moneyCar.getCarUseCount()); |
| | | } |
| | | moneyCardUse.setVipId(sourceOrder.getVipId()); |
| | | // if (moneyCar.getValidity() == null || moneyCar.getValidity() == 0) { |
| | | // // 设置失效时间 |
| | | // Calendar cal = Calendar.getInstance(); |
| | | // cal.set(2200, 1, 1); |
| | | // moneyCardUse.setFailTime(cal.getTime()); |
| | | // } else { |
| | | // moneyCardUse.setFailTime(DateUtil.nextNDate(new Date(), 30 * moneyCar.getValidity())); |
| | | // } |
| | | Date invalidTime = shoppingGoodsService.calInvalidTime(sysOrderItem.getShoppingGoods(), 1, null); |
| | | moneyCardUse.setFailTime(invalidTime); |
| | | moneyCardUse.setStatus(Dictionary.MONEYCARD_STATUS_YX); |
| | | moneyCardUse.setCardName(moneyCar.getName()); |
| | | |
| | | moneyCardUseDao.insert(moneyCardUse); |
| | | if (Dictionary.FLAG_YES.equals(moneyCar.getCarIsAll())) { |
| | | moneyCardUse.setIsVipCar(Dictionary.FLAG_YES_Y); |
| | | } else { |
| | | // 非会籍卡 |
| | | moneyCardUse.setIsVipCar(Dictionary.FLAG_NO_N); |
| | | } |
| | | |
| | | // 是否为赠送 |
| | | if (sysOrderItem.getIsFree().equals(Dictionary.FLAG_YES)) { |
| | | moneyCardUse.setSource(Dictionary.TAOCAN_SOURCE_ZS); |
| | | } else { |
| | | moneyCardUse.setSource(Dictionary.TAOCAN_SOURCE_GM); |
| | | } |
| | | if (moneyCar.getCarUseCount() == null || moneyCar.getCarUseCount() == 0) { |
| | | moneyCardUse.setUseTotal(999999999); |
| | | moneyCardUse.setLastCount(999999999); |
| | | } else { |
| | | moneyCardUse.setUseTotal(moneyCar.getCarUseCount()); |
| | | moneyCardUse.setLastCount(moneyCar.getCarUseCount()); |
| | | } |
| | | moneyCardUse.setVipId(sourceOrder.getVipId()); |
| | | |
| | | Date invalidTime = shoppingGoodsService.calInvalidTime(sysOrderItem.getShoppingGoods(), 1, null); |
| | | moneyCardUse.setFailTime(invalidTime); |
| | | |
| | | moneyCardUseDao.insert(moneyCardUse); |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | @Transactional(rollbackFor = Exception.class) |
| | | @Override |
| | | public void updateAfterMoney(SysOrder pageOrder) { |
| | | |
| | | SysOrder sourceOrder = sysOrderDao.selectById(pageOrder.getId()); |
| | | |
| | | int i = 1; |
| | | double refundTotal = 0D; |
| | | double cardPayTotal = 0D; |
| | | double cashPayTotal = 0D; |
| | | for (SysOrderFlow flow : pageOrder.getFlows()) { |
| | | flow.setFlowNo(codeService.getFlowCode() + "-" + i); |
| | | Long goodsId = pageOrder.getItems().get(0).getGoodsId(); |
| | | ShoppingGoods goods = shoppingGoodsDao.selectById(goodsId); |
| | | flow.setFlowContent(goods.getName() + "等" + pageOrder.getItems().size() + "件产品"); |
| | | |
| | | flow.setOrderId(pageOrder.getId()); |
| | | flow.setVipId(pageOrder.getVipId()); |
| | | flow.setFlowType(SysOrderFlow.FLOW_TYPE_REPAY); |
| | | // 若使用储值卡付款 |
| | | if (SysOrderFlow.PAY_METHOD_CARD.equals(flow.getPayMethod())) { |
| | | if (flow.getCardId() != null) { |
| | | cardPayTotal += flow.getAmount().doubleValue(); |
| | | MoneyCardUse moneyCardUse = moneyCardUseDao.selectById(flow.getCardId()); |
| | | cardPaySk(moneyCardUse, pageOrder, flow); |
| | | } |
| | | } else { |
| | | cashPayTotal += flow.getAmount().doubleValue(); |
| | | } |
| | | |
| | | refundTotal += flow.getAmount().doubleValue(); |
| | | flow.setShopId(sourceOrder.getShopId()); |
| | | flow.setCompanyId(sourceOrder.getCompanyId()); |
| | | sysOrderFlowDao.insert(flow); |
| | | i++; |
| | | } |
| | | |
| | | boolean haQk=false; |
| | | |
| | | double cardPayTotal=0D; |
| | | double carshPayTotal=0D; |
| | | |
| | | |
| | | for(SysOrderItem pageItem:pageOrder.getItems()){ |
| | | SysOrderItem sourceItem=orderItemDao.selectById(pageItem.getId()); |
| | | |
| | | //结清 |
| | | if(sourceItem.getArrears() == pageItem.getPayMoney()){ |
| | | |
| | | sourceItem.setStatus(Dictionary.ORDER_STATU_YFK); |
| | | }else if(sourceItem.getArrears() > pageItem.getPayMoney()) { |
| | | //未结清 |
| | | sourceItem.setStatus(Dictionary.ORDER_STATU_QK); |
| | | haQk=true; |
| | | }else if(sourceItem.getArrears() < pageItem.getPayMoney()) { |
| | | |
| | | throw new GlobleException("支付金额不能大于欠款金额"); |
| | | |
| | | } |
| | | |
| | | //更新卡支付 |
| | | if (!pageItem.getPayMethod().equals(Dictionary.PAY_TYPE_MOENY)) { |
| | | // 查询要支付的充值卡 |
| | | MoneyCardUse moneyCardUse = moneyCardUseDao.selectById(Long.parseLong(pageItem.getPayMethod())); |
| | | // 扣除付款卡金额并添加流水 TODO 补交卡支付 |
| | | // cardPaySk(moneyCardUse, sourceOrder, pageItem); |
| | | sourceItem.setCardPay((sourceItem.getCardPay()==null?0:sourceItem.getCardPay())+pageItem.getPayMoney()); |
| | | cardPayTotal+=pageItem.getPayMoney(); |
| | | }else{ |
| | | carshPayTotal+=pageItem.getPayMoney(); |
| | | sourceItem.setCashPay((sourceItem.getCashPay()==null?0:sourceItem.getCashPay())+pageItem.getPayMoney()); |
| | | } |
| | | |
| | | //更新订单明细状态 |
| | | sourceItem.setArrears(sourceItem.getArrears()-pageItem.getPayMoney()); |
| | | |
| | | orderItemDao.update(sourceItem); |
| | | |
| | | if (refundTotal == pageOrder.getArrears()) { |
| | | haQk = true; |
| | | } |
| | | |
| | | //更新收款状态 |
| | | if(haQk){ |
| | | sourceOrder.setStatu(Dictionary.ORDER_STATU_QK); |
| | | }else{ |
| | | sourceOrder.setStatu(Dictionary.ORDER_STATU_YFK); |
| | | }else{ |
| | | sourceOrder.setStatu(Dictionary.ORDER_STATU_QK); |
| | | } |
| | | |
| | | sourceOrder.setArrears(sourceOrder.getArrears()-carshPayTotal-cardPayTotal); |
| | | sourceOrder.setCardPay(sourceOrder.getCardPay()+cardPayTotal); |
| | | sourceOrder.setCashPay(sourceOrder.getCashPay()+carshPayTotal); |
| | | sourceOrder.setArrears(sourceOrder.getArrears() - refundTotal); |
| | | sourceOrder.setCardPay(sourceOrder.getCardPay() + cardPayTotal); |
| | | sourceOrder.setCashPay(sourceOrder.getCashPay() + cashPayTotal); |
| | | sysOrderDao.update(sourceOrder); |
| | | |
| | | // 设置业绩 |
| | | achieveNewService.addAchaeveByOrder(pageOrder); |
| | | |
| | | } |
| | | |
| | | |
| | |
| | | public SysOrder updateAddCardMoney(CzXkVo czVo) { |
| | | SysUsers user = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY); |
| | | |
| | | SysVipInfo vip = (SysVipInfo) WebUtil.getSession().getAttribute(SystemConstance.CURRENT_CUSTOMER); |
| | | czVo.setVipId(vip.getId()); |
| | | // SysVipInfo vip = (SysVipInfo) WebUtil.getSession().getAttribute(SystemConstance.CURRENT_CUSTOMER); |
| | | // czVo.setVipId(vip.getId()); |
| | | |
| | | //更新会员会员卡金额 |
| | | MoneyCardUse cardUser = moneyCardUseDao.selectVipCard(vip.getId()); |
| | | MoneyCardUse cardUser = moneyCardUseDao.selectVipCard(czVo.getVipId()); |
| | | cardUser.setRealMoney(MoneyUtil.add(cardUser.getRealMoney(), czVo.getBjmoney())); |
| | | cardUser.setGiftMoney(MoneyUtil.add(cardUser.getGiftMoney(), czVo.getGiftMoney())); |
| | | moneyCardUseDao.update(cardUser); |
| | |
| | | order.setStaffId(user.getSuId()); |
| | | order.setIsCross(2 + ""); |
| | | order.setStatu(Dictionary.ORDER_STATU_YFK); |
| | | order.setCompanyId(user.getCompanyId()); |
| | | sysOrderDao.insert(order); |
| | | |
| | | SysOrderItem orderItem = new SysOrderItem(); |
| | |
| | | orderItem.setStatus(Dictionary.ORDER_STATU_YFK); |
| | | orderItem.setAchaeveList(czVo.getAchaeveList()); |
| | | orderItemDao.insert(orderItem); |
| | | List<SysOrderItem> items = new ArrayList<>(); |
| | | items.add(orderItem); |
| | | order.setItems(items); |
| | | |
| | | |
| | | //设置卡项使用流水 |
| | |
| | | moneyCardUseFlow.setBalance(cardUser.getGiftMoney()+cardUser.getRealMoney()); |
| | | moneyCardUseFlowDao.insert(moneyCardUseFlow); |
| | | |
| | | |
| | | order.setFlows(czVo.getFlows()); |
| | | changeOrderStatu(order); |
| | | // 添加员工业绩 |
| | | achieveNewService.addAchaeveByOrder(order); |
| | | return order; |
| | |
| | | return sysOrderDao.selectShopAchieveRanking(sysOrder); |
| | | } |
| | | |
| | | @Transactional(rollbackFor = Exception.class) |
| | | @Override |
| | | public List<RankingVo> findStaffSaleAchieveRanking(SysOrder sysOrder) { |
| | | return sysOrderDao.selectStaffSaleAchieveRanking(sysOrder); |
| | | public void refundOrderMoney(SysOrder pageOrder) { |
| | | SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); |
| | | // 插入订单流水 |
| | | changeOrderStatu(pageOrder); |
| | | |
| | | List<SysOrderItem> returnItems = new ArrayList<>(); |
| | | for (SysOrderItem item : pageOrder.getItems()) { |
| | | |
| | | SysProjUse queryProjUse = new SysProjUse(); |
| | | queryProjUse.setIsOver(Dictionary.FLAG_NO_N); |
| | | queryProjUse.setStatus(Dictionary.TAOCAN_STATUS_YX); |
| | | queryProjUse.setOrderItemId(item.getOldItemId()); |
| | | // 修改项目信息 |
| | | if (Dictionary.SHOPPING_GOODS_TYPE_XM.equals(item.getType()) || Dictionary.SHOPPING_GOODS_TYPE_JJCP.equals(item.getType())) { |
| | | |
| | | if (Dictionary.SHOPPING_GOODS_TYPE_JJCP.equals(item.getType())) { |
| | | if (Dictionary.FLAG_YES_Y.equals(item.getIsReturnStore())) { |
| | | returnItems.add(item); |
| | | } |
| | | } else { |
| | | SysProjUse sysProjUse = sysProjUseDao.selectByModel(queryProjUse).get(0); |
| | | |
| | | int sub = sysProjUse.getSurplusCount() - item.getCount(); |
| | | sysProjUse.setSurplusCount(sub); |
| | | if (sub <= 0) { |
| | | sysProjUse.setIsOver(Dictionary.FLAG_YES_Y); |
| | | sysProjUse.setStatus(Dictionary.TAOCAN_STATUS_WX); |
| | | } |
| | | sysProjUseDao.update(sysProjUse); |
| | | |
| | | SysProjUseFlow sysProjUseFlow = SysProjUseMapper.INSTANCE.projUseToFlow(sysProjUse); |
| | | sysProjUseFlow.setOptionType("退款修改"); |
| | | sysProjUseFlow.setId(null); |
| | | sysProjUseFlow.setUpdateBy(user.getSuName()); |
| | | sysProjUseFlow.setCreateBy(user.getSuName()); |
| | | sysProjUseDao.insertFlow(sysProjUseFlow); |
| | | } |
| | | } |
| | | |
| | | if (Dictionary.SHOPPING_GOODS_TYPE_TC.equals(item.getType())) { |
| | | queryProjUse.setTaocanId(-1L); |
| | | List<SysProjUse> sysProjUses = sysProjUseDao.selectByModel(queryProjUse); |
| | | if (item.getCount() > sysProjUses.size()) { |
| | | throw new GlobleException("数据异常"); |
| | | } |
| | | |
| | | for(int i = 0; i < item.getCount(); i++) { |
| | | SysProjUse sysProjUse = sysProjUses.get(i); |
| | | sysProjUse.setIsOver(Dictionary.FLAG_YES_Y); |
| | | sysProjUse.setStatus(Dictionary.TAOCAN_STATUS_WX); |
| | | |
| | | sysProjUseDao.update(sysProjUse); |
| | | SysProjUseFlow sysProjUseFlow = SysProjUseMapper.INSTANCE.projUseToFlow(sysProjUse); |
| | | sysProjUseFlow.setOptionType("退款修改"); |
| | | sysProjUseFlow.setId(null); |
| | | sysProjUseFlow.setUpdateBy(user.getSuName()); |
| | | sysProjUseFlow.setCreateBy(user.getSuName()); |
| | | sysProjUseDao.insertFlow(sysProjUseFlow); |
| | | } |
| | | } |
| | | |
| | | if (Dictionary.SHOPPING_GOODS_TYPE_CZK.equals(item.getType())) { |
| | | MoneyCardUse queryCardUse = new MoneyCardUse(); |
| | | queryCardUse.setIsOver(Dictionary.FLAG_NO_N); |
| | | queryCardUse.setStatus(Dictionary.TAOCAN_STATUS_YX); |
| | | queryCardUse.setOrderItemId(item.getOldItemId()); |
| | | |
| | | List<MoneyCardUse> moneyCardUses = moneyCardUseDao.selectByModel(queryCardUse); |
| | | for(int i = 0; i < item.getCount(); i++) { |
| | | MoneyCardUse moneyCardUse = moneyCardUses.get(i); |
| | | moneyCardUse.setIsOver(Dictionary.FLAG_YES_Y); |
| | | moneyCardUse.setStatus(Dictionary.MONEYCARD_STATUS_WX); |
| | | moneyCardUseDao.update(moneyCardUse); |
| | | } |
| | | } |
| | | |
| | | // TODO 综合卡退款 |
| | | if (Dictionary.SHOPPING_GOODS_TYPE_ZHK.equals(item.getType())) { |
| | | |
| | | } |
| | | |
| | | |
| | | ShoppingGoods goods = shoppingGoodsDao.selectById(item.getGoodsId()); |
| | | goods.setRealSealCount(goods.getRealSealCount() - item.getCount()); |
| | | shoppingGoodsDao.update(goods); |
| | | } |
| | | |
| | | // 家居产品退库存 |
| | | if (CollectionUtils.isNotEmpty(returnItems)) { |
| | | refundInstore(returnItems); |
| | | } |
| | | |
| | | // 设置业绩 |
| | | achieveNewService.addAchaeveByOrder(pageOrder); |
| | | |
| | | } |
| | | |
| | | /** |
| | | * 退款入库 |
| | | */ |
| | | private void refundInstore(@NotEmpty List<SysOrderItem> items) { |
| | | SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); |
| | | SysSupplierInfo supplierInfo = new SysSupplierInfo(); |
| | | supplierInfo.setShopId(user.getShopId()); |
| | | supplierInfo = sysSupplierInfoDao.selectByModel(supplierInfo).get(0); |
| | | |
| | | Warehouse warehouse = warehouseDao.findShopWarehouse(user.getShopId()).get(0); |
| | | SysInstoreInfo instoreInfo = new SysInstoreInfo(); |
| | | instoreInfo.setInstoreType(SysInstoreInfo.INSTORE_TYPE_RETURN); |
| | | instoreInfo.setInstoreDate(new Date()); |
| | | instoreInfo.setSupplierId(supplierInfo.getId().toString()); |
| | | instoreInfo.setStoreId(warehouse.getId()); |
| | | instoreInfo.setCheckStatus(Dictionary.CHECK_STATUS_DSH); |
| | | // 设置入库单编号 |
| | | instoreInfo.setInstoreId(DateUtil.getTimeMark()); |
| | | instoreInfo.setShopId(user.getShopId()); |
| | | instoreInfo.setCompanyId(user.getCompanyId()); |
| | | sysInstoreInfoDao.insert(instoreInfo); |
| | | |
| | | Double total = 0.0; |
| | | List<SysInstoreDetail> instoreDetails = new ArrayList<>(); |
| | | for (SysOrderItem item : items) { |
| | | ShoppingGoods goods = shoppingGoodsDao.selectById(item.getGoodsId()); |
| | | SysInstoreDetail sysInstoreDetail = new SysInstoreDetail(); |
| | | sysInstoreDetail.setAmount(item.getCount().doubleValue()); |
| | | sysInstoreDetail.setPrice(item.getZkPrice()); |
| | | sysInstoreDetail.setSkuId(goods.getId()); |
| | | |
| | | total = MoneyUtil.add(MoneyUtil.mul(Double.parseDouble(sysInstoreDetail.getAmount() + ""), sysInstoreDetail.getPrice()), total); |
| | | sysInstoreDetail.setInstoreId(instoreInfo.getId()); |
| | | // 设置小计 |
| | | sysInstoreDetail.setPriceTotal(MoneyUtil.mul(Double.parseDouble(sysInstoreDetail.getAmount() + ""), sysInstoreDetail.getPrice())); |
| | | instoreDetails.add(sysInstoreDetail); |
| | | |
| | | } |
| | | instoreInfo.setSumall(total); |
| | | sysInstoreInfoDao.update(instoreInfo); |
| | | sysInstoreDetailDao.batchInsert(instoreDetails); |
| | | |
| | | sysInstoreInfoService.check(instoreInfo); |
| | | } |
| | | } |