|
|
@@ -0,0 +1,165 @@
|
|
|
+package com.ydtech.modules.order.service.impl;
|
|
|
+
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.ydtech.exception.SystemException;
|
|
|
+import com.ydtech.modules.base.controller.BaseController;
|
|
|
+import com.ydtech.modules.order.dao.BatchOrderMapper;
|
|
|
+import com.ydtech.modules.order.entity.BatchOrder;
|
|
|
+import com.ydtech.modules.order.entity.InsAreaCompany;
|
|
|
+import com.ydtech.modules.order.entity.InsOrders;
|
|
|
+import com.ydtech.modules.order.entity.vo.BatchOrderAuditVo;
|
|
|
+import com.ydtech.modules.order.entity.vo.BatchOrderQueryVo;
|
|
|
+import com.ydtech.modules.order.entity.vo.BatchOrderVo;
|
|
|
+import com.ydtech.modules.order.service.BatchOrderService;
|
|
|
+import com.ydtech.modules.order.service.InsAreaCompanyService;
|
|
|
+import com.ydtech.modules.order.service.InsOrdersService;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
+
|
|
|
+import java.time.LocalDateTime;
|
|
|
+import java.util.Objects;
|
|
|
+
|
|
|
+@Service
|
|
|
+public class BatchOrderServiceImpl extends ServiceImpl<BatchOrderMapper, BatchOrder> implements BatchOrderService {
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private InsOrdersService insOrdersService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private InsAreaCompanyService insAreaCompanyService;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 批单
|
|
|
+ * @param batchOrderVo
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public boolean batchOrder(BatchOrderVo batchOrderVo){
|
|
|
+ String subOrderNo = batchOrderVo.getSubOrderNo();
|
|
|
+ BatchOrder batchOrderOne = baseMapper.selectOne(new LambdaQueryWrapper<>(BatchOrder.class)
|
|
|
+ .eq(BatchOrder::getSubOrderNo, subOrderNo)
|
|
|
+ .eq(BatchOrder::getIsAudit, 0));
|
|
|
+ if(batchOrderOne != null){
|
|
|
+ throw new SystemException("该订单已经批单待审核,请勿重复操作");
|
|
|
+ }
|
|
|
+ InsAreaCompany insAreaCompany = insAreaCompanyService.getById(batchOrderVo.getSubOrderNo());
|
|
|
+ InsOrders insOrders = insOrdersService.getById(insAreaCompany.getOrderno());
|
|
|
+ if (insOrders == null) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ if(batchOrderVo.getOwnerInfo().getString("mobile").contains("*")){
|
|
|
+ batchOrderVo.getOwnerInfo().put("mobile", insOrders.getOwnerinfo().getString("mobile"));
|
|
|
+ }
|
|
|
+ if(batchOrderVo.getApplyInfo().getString("mobile").contains("*")){
|
|
|
+ batchOrderVo.getApplyInfo().put("mobile", insOrders.getApplyinfo().getString("mobile"));
|
|
|
+ }
|
|
|
+ if(batchOrderVo.getInsureInfo().getString("mobile").contains("*")){
|
|
|
+ batchOrderVo.getInsureInfo().put("mobile", insOrders.getInsureinfo().getString("mobile"));
|
|
|
+ }
|
|
|
+ StringBuilder modifyContent = new StringBuilder();
|
|
|
+ JSONObject carinfo = insOrders.getCarinfo();
|
|
|
+ JSONObject ownerinfo = insOrders.getOwnerinfo();
|
|
|
+ JSONObject applyinfo = insOrders.getApplyinfo();
|
|
|
+ JSONObject insureinfo = insOrders.getInsureinfo();
|
|
|
+ for(String key : carinfo.keySet()){
|
|
|
+ if(!batchOrderVo.getCarInfo().getString(key).equals(carinfo.getString(key))){
|
|
|
+ modifyContent.append("车辆信息:").append(key).append("由").append(carinfo.getString(key)).append("修改为").append(batchOrderVo.getCarInfo().getString(key)).append(";");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ for(String key : ownerinfo.keySet()){
|
|
|
+ if(!batchOrderVo.getOwnerInfo().getString(key).equals(ownerinfo.getString(key))){
|
|
|
+ modifyContent.append("车主信息:").append(key).append("由").append(ownerinfo.getString(key)).append("修改为").append(batchOrderVo.getOwnerInfo().getString(key)).append(";");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ for(String key : applyinfo.keySet()){
|
|
|
+ if(!batchOrderVo.getApplyInfo().getString(key).equals(applyinfo.getString(key))){
|
|
|
+ modifyContent.append("投保人信息:").append(key).append("由").append(applyinfo.getString(key)).append("修改为").append(batchOrderVo.getApplyInfo().getString(key)).append(";");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ for(String key : insureinfo.keySet()){
|
|
|
+ if(!batchOrderVo.getInsureInfo().getString(key).equals(insureinfo.getString(key))){
|
|
|
+ modifyContent.append("被保人信息:").append(key).append("由").append(insureinfo.getString(key)).append("修改为").append(batchOrderVo.getInsureInfo().getString(key)).append(";");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ BatchOrder batchOrder = new BatchOrder(batchOrderVo);
|
|
|
+ batchOrder.setModifyContent(modifyContent.toString());
|
|
|
+ return this.save(batchOrder);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 根据子订单id获取批单信息
|
|
|
+ * @param subOrderNo
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public BatchOrder getBatchOrderBySubOrderNo(String subOrderNo){
|
|
|
+ BatchOrder batchOrder = baseMapper.selectOne(new LambdaQueryWrapper<BatchOrder>()
|
|
|
+ .eq(BatchOrder::getSubOrderNo, subOrderNo));
|
|
|
+ return batchOrder;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取批单列表
|
|
|
+ * @param batchOrderQueryVo
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public Page<BatchOrder> getBatchOrderList(Page page, BatchOrderQueryVo batchOrderQueryVo) {
|
|
|
+ LambdaQueryWrapper<BatchOrder> queryWrapper = new LambdaQueryWrapper<BatchOrder>().eq(BatchOrder::getIsAudit, batchOrderQueryVo.getIsAudit());
|
|
|
+ if(batchOrderQueryVo.getLicenseNo() != null){
|
|
|
+ queryWrapper.apply("JSON_EXTRACT(carinfo, '$.licenseNo') = '"+batchOrderQueryVo.getLicenseNo()+"'");
|
|
|
+ }
|
|
|
+ if(batchOrderQueryVo.getFrameNo() != null){
|
|
|
+ queryWrapper.apply("JSON_EXTRACT(carinfo, '$.frameNo') = '"+batchOrderQueryVo.getFrameNo()+"'");
|
|
|
+ }
|
|
|
+ if(batchOrderQueryVo.getEngineNo() != null){
|
|
|
+ queryWrapper.apply("JSON_EXTRACT(carinfo, '$.engineNo') = '"+batchOrderQueryVo.getEngineNo()+"'");
|
|
|
+ }
|
|
|
+
|
|
|
+ Page batchOrderList = baseMapper.selectPage(page, queryWrapper);
|
|
|
+ return batchOrderList;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 批单审核
|
|
|
+ * @param batchOrderAuditVo
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ @Transactional
|
|
|
+ public boolean auditBatchOrder(BatchOrderAuditVo batchOrderAuditVo) {
|
|
|
+ BatchOrder batchOrder = baseMapper.selectOne(new LambdaQueryWrapper<BatchOrder>().eq(BatchOrder::getSubOrderNo,batchOrderAuditVo.getOrderNo()));
|
|
|
+ if (Objects.isNull(batchOrder)) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ InsAreaCompany byInsOrderNo = insAreaCompanyService.getById(batchOrderAuditVo.getOrderNo());
|
|
|
+ InsOrders insOrders = insOrdersService.getById(byInsOrderNo.getOrderno());
|
|
|
+ JSONObject carInfo = batchOrder.getCarInfo();
|
|
|
+ JSONObject ownerInfo = batchOrder.getOwnerInfo();
|
|
|
+ JSONObject applyInfo = batchOrder.getApplyInfo();
|
|
|
+ JSONObject insureInfo = batchOrder.getInsureInfo();
|
|
|
+ insOrders.setCarinfo(carInfo);
|
|
|
+ insOrders.setOwnerinfo(ownerInfo);
|
|
|
+ insOrders.setApplyinfo(applyInfo);
|
|
|
+ insOrders.setInsureinfo(insureInfo);
|
|
|
+
|
|
|
+ insOrders.setLicenseno(batchOrder.getCarInfo().getString("licenseno"));
|
|
|
+ insOrders.setFrameno(batchOrder.getCarInfo().getString("frameno"));
|
|
|
+ insOrders.setInsuredname(batchOrder.getInsureInfo().getString("name"));
|
|
|
+
|
|
|
+ batchOrder.setIsAudit(batchOrderAuditVo.getIsAudit());
|
|
|
+ batchOrder.setRejectReason(batchOrderAuditVo.getRejectReason());
|
|
|
+ batchOrder.setAuditTime(LocalDateTime.now());
|
|
|
+
|
|
|
+ batchOrder.setAuditUser(BaseController.getUser().getId());
|
|
|
+ this.updateById(batchOrder);
|
|
|
+ insOrdersService.updateById(insOrders);
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+}
|