处理商品类目没有的问题,增加客户是否同意上门重做方案,以及师傅重做/补做完成接口

This commit is contained in:
cb 2025-09-03 10:38:31 +08:00
parent a2a009a1e2
commit 08e5353b4e
5 changed files with 190 additions and 99 deletions

View File

@ -119,6 +119,7 @@ public class OrderController extends BaseController {
@Resource
private ShopService shopService;
@GetMapping("/imgs")
public String orderImgs(Long orderId, ModelMap mmap) {
mmap.put("orderId", orderId);
@ -729,7 +730,6 @@ public class OrderController extends BaseController {
}
return AjaxResult.success(orderMaster);
}
@ -1359,9 +1359,9 @@ public class OrderController extends BaseController {
List<OrderGoods> orderStandardList = orderGoodsService.selectByOrderMasterId(master.getId());
// 商品信息
GoodsStandard goodsStandard = goodsStandardService.selectById(orderStandardList.get(0).getGoodsStandardId());
// GoodsStandard goodsStandard = goodsStandardService.selectById(orderStandardList.get(0).getGoodsStandardId());
Goods goods = goodsService.selectById(goodsStandard.getGoodsId());
Goods goods = goodsService.selectById(master.getGoodsId());
// 财务信息
FinancialMaster financialMaster = financialMasterService.selectByOrderMasterId(master.getId());
@ -1497,9 +1497,9 @@ public class OrderController extends BaseController {
List<OrderGoods> orderStandardList = orderGoodsService.selectByOrderDetailId(detail.getId());
// 商品信息
GoodsStandard goodsStandard = goodsStandardService.selectById(orderStandardList.get(0).getGoodsStandardId());
// GoodsStandard goodsStandard = goodsStandardService.selectById(orderStandardList.get(0).getGoodsStandardId());
Goods goods = goodsService.selectById(goodsStandard.getGoodsId());
Goods goods = goodsService.selectById(orderMaster.getGoodsId());
// 财务信息
FinancialDetail financialDetail = financialDetailService.selectByOrderDetailId(detail.getId());
@ -1622,9 +1622,9 @@ public class OrderController extends BaseController {
List<OrderGoods> orderStandardList = orderGoodsService.selectByOrderMasterId(master.getId());
// 商品信息
GoodsStandard goodsStandard = goodsStandardService.selectById(orderStandardList.get(0).getGoodsStandardId());
// GoodsStandard goodsStandard = goodsStandardService.selectById(orderStandardList.get(0).getGoodsStandardId());
Goods goods = goodsService.selectById(goodsStandard.getGoodsId());
Goods goods = goodsService.selectById(master.getGoodsId());
// 填充商品三级类目
if (goods.getDeptGoodsCategoryId() != null) {
Long categoryId = null;
@ -2057,8 +2057,18 @@ public class OrderController extends BaseController {
return AjaxResult.error("服务店铺未关联师傅信息");
}
// 获取服务店铺的第一个服务商品并生成OrderGoods
// 查询服务店铺的服务商品
Goods queryGoods = new Goods();
queryGoods.setShopId(serviceShopId);
queryGoods.setType(1); // 1表示服务类型
List<Goods> serviceGoodsList = goodsService.selectGoodsList(queryGoods);
// 创建服务主单
OrderMaster serviceOrderMaster = new OrderMaster();
serviceOrderMaster.setGoodsId(serviceGoodsList.size()>0?serviceGoodsList.get(0).getGoodsId():null);
serviceOrderMaster.setGoods(serviceGoodsList.size()>0?serviceGoodsList.get(0):null);
serviceOrderMaster.setDeptId(accessoryOrderMaster.getDeptId());
serviceOrderMaster.setCode(orderMasterService.createOrderCode());
serviceOrderMaster.setOrderType(0); // 服务订单类型为0
@ -2109,6 +2119,25 @@ public class OrderController extends BaseController {
financialMasterService.insertFinancialMaster(serviceFinancialMaster);
Assert.notNull(serviceFinancialMaster.getId(), "ServiceFinancialMaster.id is null!");
if (!CollectionUtils.isEmpty(serviceGoodsList)) {
Goods firstServiceGoods = serviceGoodsList.get(0); // 取第一个服务商品
OrderGoods serviceOrderGoods = new OrderGoods();
serviceOrderGoods.setOrderId(serviceOrderMaster.getId());
serviceOrderGoods.setGoodsStandardId(firstServiceGoods.getDeptGoodsCategoryId()); // 用标准ID
serviceOrderGoods.setGoodsName(firstServiceGoods.getGoodsName());
serviceOrderGoods.setGoodsNum(1); // 数量为1
serviceOrderGoods.setRemark("由配件订单自动生成的服务商品,服务金额:" + serviceMoney);
serviceOrderGoods.setCreateTime(new Date());
// 保存OrderGoods
orderGoodsService.insertOrderGoods(serviceOrderGoods);
logger.info("为服务订单[{}]生成服务商品[{}]商品ID{},金额:{}",
serviceOrderMaster.getCode(), firstServiceGoods.getGoodsName(),
firstServiceGoods.getGoodsId(), serviceMoney);
} else {
logger.warn("服务店铺[{}]没有找到服务商品无法生成OrderGoods", serviceShopId);
}
// 更新配件主单关联生成的服务订单并标记已派发服务订单
OrderMaster accessoryUpdate = new OrderMaster();
accessoryUpdate.setId(accessoryOrderMaster.getId());

View File

@ -1016,12 +1016,17 @@ public class OrderMasterController extends BaseController {
if (!CollectionUtils.isEmpty(workerIds)) {
List<Worker> workers = workerService.selectByIds(workerIds);
workers.forEach(worker -> workerMap.put(worker.getId(), worker));
workers.forEach(worker -> workerMap.put(worker.getWorkerId(), worker));
}
if (!CollectionUtils.isEmpty(addressIds)) {
List<CustomerAddress> addresses = addressService.selectByCustomerAddressIds(addressIds);
addresses.forEach(address -> addressMap.put(address.getCustomerAddressId(), address));
// 由于没有批量查询方法使用循环查询
addressIds.forEach(addressId -> {
CustomerAddress address = addressService.selectByCustomerAddressId(addressId);
if (address != null) {
addressMap.put(address.getCustomerAddressId(), address);
}
});
}
if (!CollectionUtils.isEmpty(goodsIds)) {
@ -1303,9 +1308,9 @@ public class OrderMasterController extends BaseController {
List<OrderGoods> orderStandardList = orderGoodsService.selectByOrderMasterId(master.getId());
// 商品信息
GoodsStandard goodsStandard = goodsStandardService.selectById(orderStandardList.get(0).getGoodsStandardId());
// GoodsStandard goodsStandard = goodsStandardService.selectById(orderStandardList.get(0).getGoodsStandardId());
Goods goods = goodsService.selectById(goodsStandard.getGoodsId());
Goods goods = goodsService.selectById(master.getGoodsId());
// 财务信息
FinancialMaster financialMaster = financialMasterService.selectByOrderMasterId(master.getId());
@ -1581,9 +1586,9 @@ public class OrderMasterController extends BaseController {
List<OrderGoods> orderStandardList = orderGoodsService.selectByOrderMasterId(orderMaster.getId());
// 商品信息
GoodsStandard goodsStandard = goodsStandardService.selectById(orderStandardList.get(0).getGoodsStandardId());
// GoodsStandard goodsStandard = goodsStandardService.selectById(orderStandardList.get(0).getGoodsStandardId());
Goods goods = goodsService.selectById(goodsStandard.getGoodsId());
Goods goods = goodsService.selectById(orderMaster.getGoodsId());
if (goods != null) {
// 填充商品三级类目
if(goods.getDeptGoodsCategoryId() != null){

View File

@ -40,8 +40,8 @@ public class AfterServiceRecord extends BaseEntity
@Excel(name = "操作原因1为申请退款2为发起售后")
private Long operType;
/** 师傅反馈结果0为拒绝1为同意2为上门补做/重做 */
@Excel(name = "师傅反馈结果0为拒绝1为同意2为上门补做/重做")
/** 师傅反馈结果0为拒绝1为同意2为上门补做/重做3重做/补做完成 */
@Excel(name = "师傅反馈结果0为拒绝1为同意2为上门补做/重做3重做/补做完成")
private Long workerFeedbackResult;
/** 师傅反馈原因类型1为客户原因2为师傅原因3为其他 */
@ -69,6 +69,22 @@ public class AfterServiceRecord extends BaseEntity
private Date refundApplyTime;
/** 客户是否同意上门重做方案0-未处理1-同意2-不同意 */
@Excel(name = "客户是否同意上门重做方案0-未处理1-同意2-不同意")
private Integer customerAgreeRedo;
/** 重做/补做完成时间 */
@Excel(name = "重做/补做完成时间")
private Date redoCompleteTime;
/** 重做/补做完成备注 */
@Excel(name = "重做/补做完成备注")
private String redoCompleteRemark;
/** 重做/补做完成图片 */
@Excel(name = "重做/补做完成图片")
private String redoCompleteImages;
private boolean excludeAfterServiceFinished;
private List<AfterServiceImgs> imgsList;

View File

@ -184,6 +184,30 @@ public class AfterServiceRecordServiceImpl implements IAfterServiceRecordService
orderDetailService.updateAfterTimeout(afterServiceRecord.getOrderDetailId(), 0, 0);
log.info("客户是否同意{},客户操作{}",one.equals(param.getCustomerFinalCheck()),param);
log.info("修改后的售后订单{}",orderDetail);
// 新增处理客户同意上门重做方案
if (param.getCustomerAgreeRedo() != null) {
afterServiceRecord.setCustomerAgreeRedo(param.getCustomerAgreeRedo());
afterServiceRecordMapper.updateAfterServiceRecord(afterServiceRecord);
log.info("客户同意上门重做方案状态已更新:{}", param.getCustomerAgreeRedo());
return AjaxResult.success("客户同意方案状态已更新");
}
// 新增处理师傅重做/补做完成
if (param.getWorkerFeedbackResult() != null && param.getWorkerFeedbackResult().equals(3L)) {
afterServiceRecord.setWorkerFeedbackResult(3L);
afterServiceRecord.setRedoCompleteTime(new Date());
if (param.getRedoCompleteRemark() != null) {
afterServiceRecord.setRedoCompleteRemark(param.getRedoCompleteRemark());
}
if (param.getRedoCompleteImages() != null) {
afterServiceRecord.setRedoCompleteImages(param.getRedoCompleteImages());
}
afterServiceRecordMapper.updateAfterServiceRecord(afterServiceRecord);
log.info("师傅重做/补做完成记录ID{},完成时间:{}", param.getId(), afterServiceRecord.getRedoCompleteTime());
return AjaxResult.success("重做/补做完成状态已更新");
}
if (param.getCustomerFinalCheck()!=null ) {
// 师傅同意 客户同意退款
//afterServiceRecord.setCustomerFinalCheck(1L);

View File

@ -23,12 +23,17 @@
<result property="remark" column="remark" />
<result property="originalRefund" column="original_refund" />
<result property="refundApplyTime" column="refund_apply_time" />
<result property="customerAgreeRedo" column="customer_agree_redo" />
<result property="redoCompleteTime" column="redo_complete_time" />
<result property="redoCompleteRemark" column="redo_complete_remark" />
<result property="redoCompleteImages" column="redo_complete_images" />
</resultMap>
<sql id="selectAfterServiceRecordVo">
select id, customer_reason_type, customer_reason, order_detail_id, oper_type, worker_feedback_result,
worker_feedback_reason_type, worker_feedback_reason, refund, agreed_refund, original_refund,
customer_final_check, create_by, create_time, update_by, update_time, remark, refund_apply_time
customer_final_check, create_by, create_time, update_by, update_time, remark, refund_apply_time, customer_agree_redo,
redo_complete_time, redo_complete_remark, redo_complete_images
from after_service_record
</sql>
@ -74,6 +79,10 @@
<if test="refund != null">refund,</if>
<if test="agreedRefund != null">agreed_refund,</if>
<if test="customerFinalCheck != null">customer_final_check,</if>
<if test="customerAgreeRedo != null">customer_agree_redo,</if>
<if test="redoCompleteTime != null">redo_complete_time,</if>
<if test="redoCompleteRemark != null">redo_complete_remark,</if>
<if test="redoCompleteImages != null">redo_complete_images,</if>
<if test="createBy != null">create_by,</if>
<if test="updateBy != null">update_by,</if>
<if test="remark != null">remark,</if>
@ -90,6 +99,10 @@
<if test="refund != null">#{refund},</if>
<if test="agreedRefund != null">#{agreedRefund},</if>
<if test="customerFinalCheck != null">#{customerFinalCheck},</if>
<if test="customerAgreeRedo != null">#{customerAgreeRedo},</if>
<if test="redoCompleteTime != null">#{redoCompleteTime},</if>
<if test="redoCompleteRemark != null">#{redoCompleteRemark},</if>
<if test="redoCompleteImages != null">#{redoCompleteImages},</if>
<if test="createBy != null">#{createBy},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="remark != null">#{remark},</if>
@ -112,6 +125,10 @@
<if test="refund != null">refund = #{refund},</if>
<if test="agreedRefund != null">agreed_refund = #{agreedRefund},</if>
<if test="customerFinalCheck != null">customer_final_check = #{customerFinalCheck},</if>
<if test="customerAgreeRedo != null">customer_agree_redo = #{customerAgreeRedo},</if>
<if test="redoCompleteTime != null">redo_complete_time = #{redoCompleteTime},</if>
<if test="redoCompleteRemark != null">redo_complete_remark = #{redoCompleteRemark},</if>
<if test="redoCompleteImages != null">redo_complete_images = #{redoCompleteImages},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>