zq-erp/src/main/java/com/matrix/system/hive/action/OrderController.java
@@ -56,6 +56,11 @@ public class OrderController extends BaseController { @Resource private SysOrderService orderService; @Autowired ShoppingGoodsDao shoppingGoodsDao; @Autowired private CodeService codeService; @Autowired private SysOrderItemDao orderItemDao; @@ -125,6 +130,7 @@ AjaxResult payOrder(@RequestBody SysOrder sysOrder) { SysUsers user = getMe(); sysOrder.setShopId(user.getShopId()); sysOrder.setOrderType(SysOrder.ORDER_TYPE_SEAL); //校验订单是否满足结算调价,新订单则保存订单,已有订单则删除后更新 sysOrder = orderService.checkAndSaveOrder(sysOrder); orderService.updateReceiptMoney(sysOrder); @@ -159,17 +165,30 @@ } } } SysUsers user = getMe(); sysOrder.setStaffId(user.getSuId()); sysOrder.setCompanyId(user.getCompanyId()); sysOrder.setShopId(user.getShopId()); sysOrder.setStatu(Dictionary.ORDER_STATU_TK); sysOrder.setOrderTime(new Date()); sysOrder.setOrderNo(codeService.getRefundOrderNo()); //新增订单 sysOrderDao.insert(sysOrder); //插入明细 for (SysOrderItem item : sysOrder.getItems()) { SysOrderItem oldItem=orderItemDao.selectById(item.getId()); item.setType(oldItem.getType()); // 取负数 item.setStatus(Dictionary.ORDER_STATU_TK); item.setCount(-item.getCount()); item.setOrderId(sysOrder.getId()); item.setId(null); orderItemDao.insert(item); } //校验订单是否满足结算调价,新订单则保存订单,已有订单则删除后更新 sysOrder = orderService.checkAndSaveOrder(sysOrder); orderService.refundOrderMoney(sysOrder); //处理用户购买的产品 return AjaxResult.buildSuccessInstance(Arrays.asList(sysOrder), "订单退款成功"); zq-erp/src/main/java/com/matrix/system/hive/bean/SysOrder.java
@@ -1,6 +1,5 @@ package com.matrix.system.hive.bean; import com.fasterxml.jackson.annotation.JsonFormat; import com.matrix.core.tools.DateUtil; import org.springframework.format.annotation.DateTimeFormat; @@ -16,7 +15,15 @@ */ public class SysOrder implements Serializable { private static final long serialVersionUID = 1L; /** * 订单类型-销售订单 */ public static final int ORDER_TYPE_SEAL= 1; /** * 订单类型-退款订单 */ public static final int ORDER_TYPE_REFUND= 2; /** * 序号 @@ -126,7 +133,12 @@ * 会员姓名 */ private String vipNo; /** * 订单类型1,销售订单,2退款订单 */ private Integer orderType; /* 会员手机号 */ private String vipPhone; @@ -165,6 +177,7 @@ */ private Integer times; private String type; /** @@ -196,6 +209,14 @@ this.shopShortName = shopShortName; } public Integer getOrderType() { return orderType; } public void setOrderType(Integer orderType) { this.orderType = orderType; } public String getType() { return type; } zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java
@@ -176,11 +176,6 @@ @Override public SysOrder checkAndSaveOrder(SysOrder sysOrder) { // 收款改变订单状态 SysOrder source = null; if (sysOrder.getId() != null) { source = sysOrderDao.selectById(sysOrder.getId()); } // 计算订单折扣金额,收款情况下 计算订单总额 double zkTotal = 0.0; @@ -217,6 +212,10 @@ SysUsers user = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY); sysOrder.setZkTotal(zkTotal); sysOrder.setStatu(orderStatus); SysOrder source = null; if (sysOrder.getId() != null) { source = sysOrderDao.selectById(sysOrder.getId()); } sysOrder.setStaffId(source != null ? source.getStaffId() : user.getSuId()); sysOrder.setCompanyId(source != null ? source.getCompanyId() : user.getCompanyId()); zq-erp/src/main/resources/config/db/increment/美度业绩升级.sql
@@ -1,3 +1,13 @@ ALTER TABLE `achieve_new` DROP COLUMN `achieveMoney`, ADD COLUMN `achieveMoney` double(10, 0) NULL AFTER `company_id`; ADD COLUMN `achieveMoney` double(10, 0) NULL AFTER `company_id`; ALTER TABLE `sys_order` ADD COLUMN `orderType` int(2) NULL COMMENT '订单类型1,销售订单,2退款订单' AFTER `company_id`; ALTER TABLE `achieve_new` CHANGE COLUMN `t3` `achieveType` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL AFTER `t2`; zq-erp/src/main/resources/mybatis/mapper/hive/SysOrderDao.xml
@@ -23,6 +23,7 @@ <result property="vipNo" column="VIP_NO"/> <result property="staffName" column="STAFF_NAME"/> <result property="changeId" column="CHANGE_ID"/> <result property="orderType" column="orderType"/> <result property="cashPay" column="cash_Pay"/> <result property="cardPay" column="card_Pay"/> @@ -61,7 +62,8 @@ beatuyId, beatuyName, pay_time, company_id company_id, orderType ) VALUES ( #{id}, @@ -83,7 +85,8 @@ #{beatuyId}, #{beatuyName}, #{payTime}, #{companyId} #{companyId}, #{orderType} ) </insert> @@ -229,6 +232,9 @@ <if test="(record.companyId!=null and record.companyId!='') "> and a.company_id = #{record.companyId} </if> <if test="(record.orderType!=null and record.orderType!='') "> and a.orderType = #{record.orderType} </if> <if test="record.beginTimeVo != null "> and a.ORDER_TIME >= #{record.beginTimeVo} </if> @@ -282,6 +288,9 @@ </if> <if test="(record.companyId!=null and record.companyId!='') "> and a.company_id = #{record.companyId} </if> <if test="(record.orderType!=null and record.orderType!='') "> and a.orderType = #{record.orderType} </if> <if test="record.isCross != null and record.isCross !='' "> and a.IS_CROSS = #{record.isCross} @@ -405,6 +414,9 @@ <if test="(record.companyId!=null and record.companyId!='') "> and a.company_id = #{record.companyId} </if> <if test="(record.orderType!=null and record.orderType!='') "> and a.orderType = #{record.orderType} </if> </if> </sql> @@ -434,6 +446,9 @@ <if test="(record.companyId!=null and record.companyId!='') "> and a.company_id = #{record.companyId} </if> <if test="(record.orderType!=null and record.orderType!='') "> and a.orderType = #{record.orderType} </if> <if test="record.activity != null and record.activity !='' "> and a.ACTIVITY = #{record.activity} </if> zq-erp/src/main/resources/readme-jyy
@@ -6,7 +6,5 @@ 产品现金业绩和划扣业绩consume 重构订单,收款,退款等方法不要共用逻辑 修改t3为业绩类型 ALTER TABLE `achieve_new` CHANGE COLUMN `t3` `achieveType` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL AFTER `t2`; 把所有历史订单的订单类型区分销售订单和退款订单 zq-erp/src/main/resources/templates/views/admin/hive-erp/order/orderXq-form.html
@@ -903,7 +903,8 @@ console.log("校验业绩是否大于订单收款金额"); let jsqMap={}; let isOk=true; this.achieveItems.forEach(achieve=>{ for(let i=0 ; i< this.achieveItems.length; i++){ let achieve=this.achieveItems[i]; if(!isNaN(achieve.goodsCash) ){ key=achieve.achieveType+achieve.orderItemId; if(!jsqMap[key]){ @@ -921,7 +922,7 @@ isOk=false; return; } }); }; console.log("isOk",isOk); return isOk; }, zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/order-form.html
@@ -985,7 +985,8 @@ let flows = [] var total = 0; let isPayMethodOk=true; _this.payMoneys.forEach(item => { for(let i=0; i<_this.payMoneys.length;i++){ let item = _this.payMoneys[i]; let flow = {}; flow.payMethod = item.type; if (!item.money) { @@ -1000,11 +1001,7 @@ } total += parseFloat(item.money); flows.push(flow) }) if(!isPayMethodOk){ return ; } if (total != _this.order.payMoney) { this.$message.warning("输入付款总金额与应付金额不符"); return false; @@ -1266,7 +1263,8 @@ console.log("校验业绩是否大于订单收款金额"); let jsqMap={}; let isOk=true; this.achieveList.forEach(achieve=>{ for(let i=0 ; i< this.achieveList.length; i++){ let achieve=this.achieveList[i]; if(!isNaN(achieve.goodsCash) ){ key=achieve.achieveType+achieve.orderItem.uuid; if(!jsqMap[key]){ @@ -1284,7 +1282,7 @@ isOk=false; return; } }); }; console.log("isOk",isOk); return isOk; }, @@ -1399,6 +1397,10 @@ return false; } if(!this.checkAchieveMoney()){ return ; } _this.dialogSettleVisible = true; } } zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/orderXq-form.html
@@ -256,11 +256,15 @@ label="收款"> </el-table-column> <el-table-column prop="t3" prop="payMethod" label="支付方式"> </el-table-column> <el-table-column prop="achieveType" label="业绩类型"> </el-table-column> <el-table-column prop="t1" prop="goodsCash" label="原业绩"> </el-table-column> <el-table-column @@ -903,7 +907,8 @@ console.log("校验业绩是否大于订单收款金额"); let jsqMap={}; let isOk=true; this.achieveItems.forEach(achieve=>{ for(let i=0 ; i< this.achieveItems.length; i++){ let achieve=this.achieveItems[i]; if(!isNaN(achieve.goodsCash) ){ key=achieve.achieveType+achieve.orderItemId; if(!jsqMap[key]){ @@ -914,14 +919,14 @@ if(jsqMap[key]>achieve.zkTotal) { this.$message.error("【"+achieve.goodsName + "】业绩分配金额大于支付金额"); isOk = false; return; break; } }else{ this.$message.error("【"+achieve.goodsName + "】业绩分配金额请填写数字"); isOk=false; return; break; } }); } console.log("isOk",isOk); return isOk; },