1、子单详情中展示售后情况

2、修复未约未排中的主单派单完成后仍出现在未约未排栏的问题
3、监控单不展示自己承接的主单
4、未全部派完的主单调整为展示在未约未排及监控单两栏
This commit is contained in:
donqi 2022-11-04 00:30:37 +08:00
parent c19dd62cd8
commit 3e4514a2e4
4 changed files with 32 additions and 57 deletions

View File

@ -190,14 +190,19 @@ public class OrderController extends BaseController {
// 接单师傅 // 接单师傅
Worker acceptWorker = workerService.selectById(request.getWorkerId()); Worker acceptWorker = workerService.selectById(request.getWorkerId());
Assert.notNull(acceptWorker, "查询接单师傅信息失败"); Assert.notNull(acceptWorker, "查询接单师傅信息失败");
om.setAllSelfAssigned(0);
// 校验接单师傅和派单师傅是不是同一个Team // 校验接单师傅和派单师傅是不是同一个Team
if(!om.getWorkerId().equals(request.getWorkerId())){ if(!om.getWorkerId().equals(request.getWorkerId())){
boolean checkInTeam = workerService.checkInTeam(assignWorker.getWorkerId(), acceptWorker.getWorkerId()); boolean checkInTeam = workerService.checkInTeam(assignWorker.getWorkerId(), acceptWorker.getWorkerId());
Assert.isTrue(checkInTeam, "接单师傅不在本团队"); Assert.isTrue(checkInTeam, "接单师傅不在本团队");
}else { }else {
// 自己接单 -- 计算剩余金额 // 自己接单 -- 计算剩余金额
om.setAllSelfAssigned(1);
BigDecimal realPay = fm.getPayMoney(); BigDecimal realPay = fm.getPayMoney();
for (FinancialDetail financialDetail : financialDetailService.selectByFinancialMasterId(fm.getId())) { for (FinancialDetail financialDetail : financialDetailService.selectByFinancialMasterId(fm.getId())) {
if (FinancialDetailType.ORDER_FEE.equals(financialDetail.getFinancialDetailType())) {
om.setAllSelfAssigned(0);
}
realPay = realPay.subtract(financialDetail.getPayMoney()); realPay = realPay.subtract(financialDetail.getPayMoney());
} }
request.setTotalPay(realPay); request.setTotalPay(realPay);
@ -447,7 +452,10 @@ public class OrderController extends BaseController {
response.setNewOrderNum(newMasterOrderCount + newDetailOrderCount); response.setNewOrderNum(newMasterOrderCount + newDetailOrderCount);
// 统计未排的单量 // 统计未排的单量
orderMaster.setOrderStatus(OrderStatus.PLAIN.code()); orderMaster.setOrderStatus(OrderStatus.PLAIN.code());
response.setPlanOrderNum(orderMasterService.countOrderMasterList(orderMaster)); orderDetail.setOrderStatus(OrderStatus.PLAIN.code());
Long planMasterOrderCount = orderMasterService.countOrderMasterList(orderMaster);
Long planDetailOrderCount = orderDetailService.countOrderDetailList(orderDetail);
response.setPlanOrderNum(planMasterOrderCount + planDetailOrderCount);
// 统计待上门单量 // 统计待上门单量
orderDetail.setOrderStatus(OrderStatus.GOING.code()); orderDetail.setOrderStatus(OrderStatus.GOING.code());
response.setWaitServOrderNum(orderDetailService.countOrderDetailList(orderDetail)); response.setWaitServOrderNum(orderDetailService.countOrderDetailList(orderDetail));
@ -462,9 +470,9 @@ public class OrderController extends BaseController {
response.setFinishedOrderNum(orderDetailService.countOrderDetailList(orderDetail)); response.setFinishedOrderNum(orderDetailService.countOrderDetailList(orderDetail));
// 统计监控单量 // 统计监控单量
orderMaster.setOrderStatus(null); orderMaster.setOrderStatus(null);
orderMaster.setFilterOnlyServOrder(true); orderMaster.setIsMonitoredOrder(true);
response.setMonitoredOrderNum(orderMasterService.countOrderMasterList(orderMaster)); response.setMonitoredOrderNum(orderMasterService.countOrderMasterList(orderMaster));
orderMaster.setFilterOnlyServOrder(false); orderMaster.setIsMonitoredOrder(false);
// 统计搁置单量 // 统计搁置单量
orderDetail.setShelveStatus(1); orderDetail.setShelveStatus(1);
response.setShelvedOrderNum(orderDetailService.countOrderDetailList(orderDetail)); response.setShelvedOrderNum(orderDetailService.countOrderDetailList(orderDetail));

View File

@ -213,6 +213,12 @@ public class OrderDetailController extends BaseController {
orderListResponse.setPayMoney(detailPayMoney); orderListResponse.setPayMoney(detailPayMoney);
orderListResponse.setIsOnlyServ(Boolean.FALSE); orderListResponse.setIsOnlyServ(Boolean.FALSE);
} }
// 售后记录
AfterServiceRecord afterServiceRecord = new AfterServiceRecord();
afterServiceRecord.setOrderDetailId(detail.getId());
List<AfterServiceRecord> afterServiceRecordList =afterServiceRecordService.selectAfterServiceRecordList(afterServiceRecord);
// 编辑返回属性 // 编辑返回属性
orderListResponse.setOrderDetailId(detail.getId()); orderListResponse.setOrderDetailId(detail.getId());
orderListResponse.setOrderDetailCode(detail.getCode()); orderListResponse.setOrderDetailCode(detail.getCode());
@ -246,6 +252,7 @@ public class OrderDetailController extends BaseController {
orderListResponse.setCustomerRemark(orderMaster.getRemark()); orderListResponse.setCustomerRemark(orderMaster.getRemark());
orderListResponse.setFinishImgList(finishImgList); orderListResponse.setFinishImgList(finishImgList);
orderListResponse.setWorkerRemark(detail.getRemark()); orderListResponse.setWorkerRemark(detail.getRemark());
orderListResponse.setAfterServiceRecordList(afterServiceRecordList);
return AjaxResult.success(orderListResponse); return AjaxResult.success(orderListResponse);
} catch (Exception e) { } catch (Exception e) {

View File

@ -86,5 +86,7 @@ public class OrderMaster extends BaseEntity {
private Boolean useTimeNotRange; private Boolean useTimeNotRange;
private Boolean filterOnlyServOrder; private Boolean isMonitoredOrder;
private Integer allSelfAssigned;
} }

View File

@ -25,6 +25,7 @@
<result property="updateTime" column="update_time"/> <result property="updateTime" column="update_time"/>
<result property="remark" column="remark"/> <result property="remark" column="remark"/>
<result property="goodsId" column="goods_id"/> <result property="goodsId" column="goods_id"/>
<result property="allSelfAssigned" column="all_self_assigned"/>
</resultMap> </resultMap>
<sql id="selectOrderMaster"> <sql id="selectOrderMaster">
@ -44,7 +45,8 @@
expect_time_end, expect_time_end,
create_by, create_by,
create_time, create_time,
remark remark,
all_self_assigned
FROM order_master FROM order_master
</sql> </sql>
<sql id="selectOrderMasterMoreInfo"> <sql id="selectOrderMasterMoreInfo">
@ -65,58 +67,18 @@
om.create_by, om.create_by,
om.create_time, om.create_time,
om.remark, om.remark,
om.all_self_assigned,
om.goods_id om.goods_id
FROM order_master om FROM order_master om
LEFT JOIN customer_address ca ON ca.customer_address_id = om.address_id LEFT JOIN customer_address ca ON ca.customer_address_id = om.address_id
LEFT JOIN goods g ON g.goods_id = om.goods_id LEFT JOIN goods g ON g.goods_id = om.goods_id
</sql> </sql>
<sql id="selectNoOnlyServOrder">
select om.id,
om.dept_id,
om.code,
om.customer_id,
om.address_id,
om.order_type,
om.order_status,
om.pay_type,
om.pay_status,
om.worker_id,
om.pay_time,
om.rev_time,
om.expect_time_start,
om.expect_time_end,
om.create_by,
om.create_time,
om.remark,
om.goods_id
from order_master om
left join (
select om.id, count(om.id) as subOrderCount, max(od.worker_id) as odWorkerId from order_master om
left join order_detail od on od.order_master_id = om.id
group by om.id) odCount
on odCount.id = om.id
</sql>
<sql id="countNoOnlyServOrder">
select count(*) from order_master om
left join (
select om.id, count(om.id) as subOrderCount, max(od.worker_id) as odWorkerId from order_master om
left join order_detail od on od.order_master_id = om.id
group by om.id) odCount
on odCount.id = om.id
</sql>
<select id="selectOrderMasterList" parameterType="com.ghy.order.domain.OrderMaster" resultMap="OrderMasterResult"> <select id="selectOrderMasterList" parameterType="com.ghy.order.domain.OrderMaster" resultMap="OrderMasterResult">
<if test="!filterOnlyServOrder"> <include refid="selectOrderMasterMoreInfo"></include>
<include refid="selectOrderMasterMoreInfo"></include>
</if>
<if test="filterOnlyServOrder">
<include refid="selectNoOnlyServOrder"></include>
</if>
<where> <where>
<if test="filterOnlyServOrder"> <if test="isMonitoredOrder">
AND subOrderCount = 1 AND om.worker_id = odWorkerId AND om.order_status in (2,3,4,5) AND all_self_assigned = 0 AND om.order_status in (2,3,4,5)
</if> </if>
<if test="deptId != null and deptId != 0"> <if test="deptId != null and deptId != 0">
AND om.dept_id = #{deptId} AND om.dept_id = #{deptId}
@ -187,15 +149,10 @@
</select> </select>
<select id="countOrderMasterList" parameterType="com.ghy.order.domain.OrderMaster" resultType="Long"> <select id="countOrderMasterList" parameterType="com.ghy.order.domain.OrderMaster" resultType="Long">
<if test="!filterOnlyServOrder"> SELECT COUNT(*) FROM order_master om
SELECT COUNT(*) FROM order_master om
</if>
<if test="filterOnlyServOrder">
<include refid="countNoOnlyServOrder"></include>
</if>
<where> <where>
<if test="filterOnlyServOrder"> <if test="isMonitoredOrder">
AND subOrderCount = 1 AND om.worker_id = odWorkerId AND om.order_status in (2,3,4,5) AND all_self_assigned = 0 AND om.order_status in (2,3,4,5)
</if> </if>
<if test="deptId != null and deptId != 0"> <if test="deptId != null and deptId != 0">
AND om.dept_id = #{deptId} AND om.dept_id = #{deptId}
@ -268,6 +225,7 @@
<if test="expectTimeEnd != null">expect_time_end = #{expectTimeEnd},</if> <if test="expectTimeEnd != null">expect_time_end = #{expectTimeEnd},</if>
<if test="useTimeNotRange">expect_time_end = null,</if> <if test="useTimeNotRange">expect_time_end = null,</if>
<if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if> <if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
<if test="allSelfAssigned != null">all_self_assigned = #{allSelfAssigned},</if>
update_time = SYSDATE() update_time = SYSDATE()
</set> </set>
WHERE id = #{id} WHERE id = #{id}