|
|
@ -11,6 +11,8 @@ import com.yxt.anrui.base.api.basevehicleactualdetails.AppBaseVehicleActualDetai |
|
|
|
import com.yxt.anrui.base.api.basevehicleactualdetails.BaseVehicleActualDetails; |
|
|
|
import com.yxt.anrui.base.api.basevehicleactualdetails.BaseVehicleActualDetailsDto; |
|
|
|
import com.yxt.anrui.base.api.basevehicleactualdetails.BaseVehicleActualDetailsVo; |
|
|
|
import com.yxt.anrui.base.api.basevehicleactualpay.BaseVehicleActualPay; |
|
|
|
import com.yxt.anrui.base.api.basevehicleactualpay.BaseVehicleActualPayVo; |
|
|
|
import com.yxt.anrui.base.api.basevehicleactualsales.*; |
|
|
|
import com.yxt.anrui.base.api.basevehicleactualsales.flow.ActualGetNodeQuery; |
|
|
|
import com.yxt.anrui.base.api.basevehicleactualsales.flow.ActualGetNodeVo; |
|
|
@ -18,6 +20,7 @@ import com.yxt.anrui.base.api.basevehicleactualsales.flow.BaseActualSalesTaskQue |
|
|
|
import com.yxt.anrui.base.api.basevehicleactualsales.flow.SubmitActualSalesDto; |
|
|
|
import com.yxt.anrui.base.biz.basevehicle.BaseVehicleService; |
|
|
|
import com.yxt.anrui.base.biz.basevehicleactualdetails.BaseVehicleActualDetailsService; |
|
|
|
import com.yxt.anrui.base.biz.basevehicleactualpay.BaseVehicleActualPayService; |
|
|
|
import com.yxt.anrui.base.common.enums.VehicleState; |
|
|
|
import com.yxt.anrui.flowable.api.flow.FlowableFeign; |
|
|
|
import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo; |
|
|
@ -47,6 +50,7 @@ import org.springframework.beans.factory.annotation.Autowired; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
|
|
|
|
|
import java.math.BigDecimal; |
|
|
|
import java.util.*; |
|
|
|
import java.util.stream.Collectors; |
|
|
|
|
|
|
@ -60,6 +64,8 @@ public class BaseVehicleActualSalesService extends MybatisBaseService<BaseVehicl |
|
|
|
|
|
|
|
@Autowired |
|
|
|
private BaseVehicleActualDetailsService baseVehicleActualDetailsService; |
|
|
|
@Autowired |
|
|
|
private BaseVehicleActualPayService baseVehicleActualPayService; |
|
|
|
|
|
|
|
@Autowired |
|
|
|
private SysUserFeign sysUserFeign; |
|
|
@ -148,6 +154,13 @@ public class BaseVehicleActualSalesService extends MybatisBaseService<BaseVehicl |
|
|
|
if (scmVehicleActualSalesDto.getDetailsList().size() > 0) { |
|
|
|
baseVehicleActualDetailsService.saveDetails(scmVehicleActualSalesDto.getDetailsList(), baseVehicleActualSales.getSid()); |
|
|
|
} |
|
|
|
if ("1".equals(scmVehicleActualSalesDto.getIsPay())) { |
|
|
|
if (scmVehicleActualSalesDto.getDetailsPayList().size() > 0) { |
|
|
|
baseVehicleActualPayService.saveDetails(scmVehicleActualSalesDto.getDetailsPayList(), sid); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} else { |
|
|
|
//编辑
|
|
|
@ -165,6 +178,18 @@ public class BaseVehicleActualSalesService extends MybatisBaseService<BaseVehicl |
|
|
|
if (scmVehicleActualSalesDto.getDetailsList().size() > 0) { |
|
|
|
baseVehicleActualDetailsService.updateListByReturnSid(sid, scmVehicleActualSalesDto.getDetailsList()); |
|
|
|
} |
|
|
|
|
|
|
|
//查询pay中是否有关于sales的该条sid数据
|
|
|
|
List<BaseVehicleActualPay> scmVehicleActualPayList = baseVehicleActualPayService.selectBySaleSid(sid); |
|
|
|
if (scmVehicleActualPayList.size() > 0) { |
|
|
|
baseVehicleActualPayService.deleteBySaleSid(sid); |
|
|
|
} |
|
|
|
if ("1".equals(scmVehicleActualSalesDto.getIsPay())) { |
|
|
|
if (scmVehicleActualSalesDto.getDetailsPayList().size() > 0) { |
|
|
|
baseVehicleActualPayService.updateListByReturnSid(sid, scmVehicleActualSalesDto.getDetailsPayList()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
return rb.success().setData(sid); |
|
|
|
} |
|
|
@ -200,7 +225,9 @@ public class BaseVehicleActualSalesService extends MybatisBaseService<BaseVehicl |
|
|
|
} |
|
|
|
vo = baseMapper.details(sid); |
|
|
|
List<BaseVehicleActualDetailsVo> voList = baseVehicleActualDetailsService.detailsList(sid); |
|
|
|
List<BaseVehicleActualPayVo> voPayList = baseVehicleActualPayService.detailsList(sid); |
|
|
|
vo.setDetailsList(voList); |
|
|
|
vo.setDetailsPayList(voPayList); |
|
|
|
return rb.success().setData(vo); |
|
|
|
} |
|
|
|
|
|
|
@ -245,12 +272,13 @@ public class BaseVehicleActualSalesService extends MybatisBaseService<BaseVehicl |
|
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
|
public ResultBean delete(String[] sidsList) { |
|
|
|
ResultBean rb = ResultBean.fireFail(); |
|
|
|
baseVehicleActualDetailsService.deleteByActualSid(sidsList); |
|
|
|
//查询该sid中是否有流程不是待提交的
|
|
|
|
int count = baseMapper.selectBySid(StringUtils.join(sidsList, ",")); |
|
|
|
if (count > 0) { |
|
|
|
return rb.setMsg("删除的数据中包含已经提交审批的数据,删除失败"); |
|
|
|
} |
|
|
|
baseVehicleActualDetailsService.deleteByActualSid(sidsList); |
|
|
|
baseVehicleActualPayService.deleteByActualSid(sidsList); |
|
|
|
delBySids(sidsList); |
|
|
|
return rb.success().setMsg("删除成功"); |
|
|
|
} |
|
|
@ -285,6 +313,11 @@ public class BaseVehicleActualSalesService extends MybatisBaseService<BaseVehicl |
|
|
|
if (r == 0) { |
|
|
|
return rb.setMsg("操作失败!提交的数据不一致"); |
|
|
|
} |
|
|
|
if ("1".equals(dto.getIsPay())) { |
|
|
|
if (new BigDecimal(dto.getMoney()).compareTo(new BigDecimal(dto.getPayAccountAll())) != 0) { |
|
|
|
return rb.setMsg("买断费用合计与付款费用合计不一致,不允许提交"); |
|
|
|
} |
|
|
|
} |
|
|
|
//保存或修改未售买断申请
|
|
|
|
ResultBean<String> resultBean = saveOrUpdateVehicleSales(dto); |
|
|
|
if (!resultBean.getSuccess()) { |
|
|
@ -318,7 +351,7 @@ public class BaseVehicleActualSalesService extends MybatisBaseService<BaseVehicl |
|
|
|
//结算状态设置为预买断
|
|
|
|
List<BaseVehicleActualDetailsDto> detailsList = dto.getDetailsList(); |
|
|
|
for (BaseVehicleActualDetailsDto f : detailsList) { |
|
|
|
BaseVehicle baseVehicle = baseVehicleService.selectByVinNoAndOrgSid(f.getVinNo(),useOrgSid); |
|
|
|
BaseVehicle baseVehicle = baseVehicleService.selectByVinNoAndOrgSid(f.getVinNo(), useOrgSid); |
|
|
|
baseVehicle.setVinNo(f.getVinNo()); |
|
|
|
baseVehicle.setSettlementStatus(VehicleState.BuyoutEnum.PRE_BUYOUT.getCode()); |
|
|
|
baseVehicle.setSettlementStatusValue(VehicleState.BuyoutEnum.PRE_BUYOUT.getRemarks()); |
|
|
@ -328,12 +361,12 @@ public class BaseVehicleActualSalesService extends MybatisBaseService<BaseVehicl |
|
|
|
baseVehicleActualSales = fetchBySid(businessSid); |
|
|
|
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); |
|
|
|
MessageFlowVo messageFlowVo = new MessageFlowVo(); |
|
|
|
BeanUtil.copyProperties(ufVo,messageFlowVo); |
|
|
|
BeanUtil.copyProperties(ufVo, messageFlowVo); |
|
|
|
messageFlowableQuery.setUfVo(messageFlowVo); |
|
|
|
messageFlowableQuery.setAppMap(appMap); |
|
|
|
messageFlowableQuery.setBusinessSid(businessSid); |
|
|
|
messageFlowableQuery.setModuleName("未售买断申请"); |
|
|
|
messageFlowableQuery.setMsgContent(baseVehicleActualSales.getApplicationName()+"提交的"+messageFlowableQuery.getModuleName()+",请审批"); |
|
|
|
messageFlowableQuery.setMsgContent(baseVehicleActualSales.getApplicationName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); |
|
|
|
messageFlowableQuery.setMsgTitle("供应链"); |
|
|
|
ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery); |
|
|
|
return voResultBean; |
|
|
@ -388,10 +421,10 @@ public class BaseVehicleActualSalesService extends MybatisBaseService<BaseVehicl |
|
|
|
BaseVehicleActualSales baseVehicleActualSales = fetchBySid(bv.getBusinessSid()); |
|
|
|
if (bv.getTaskId().equals(baseVehicleActualSales.getTaskId())) { |
|
|
|
//判断车辆的结算状态是否包含预买断的状态,如果是的话,返回审核失败
|
|
|
|
Map<String,Object> variables = new HashMap<>(); |
|
|
|
Map<String,Object> appMap = new HashMap<>(); |
|
|
|
appMap.put("sid",bv.getBusinessSid()); |
|
|
|
variables.put("app",appMap); |
|
|
|
Map<String, Object> variables = new HashMap<>(); |
|
|
|
Map<String, Object> appMap = new HashMap<>(); |
|
|
|
appMap.put("sid", bv.getBusinessSid()); |
|
|
|
variables.put("app", appMap); |
|
|
|
bv.setFormVariables(variables); |
|
|
|
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.handleProsess(bv); |
|
|
|
if (!resultBean.getSuccess()) { |
|
|
@ -399,19 +432,19 @@ public class BaseVehicleActualSalesService extends MybatisBaseService<BaseVehicl |
|
|
|
} |
|
|
|
UpdateFlowFieldVo ufVo = resultBean.getData(); |
|
|
|
updateFlowFiled(BeanUtil.beanToMap(resultBean.getData())); |
|
|
|
if(!"Event_end".equals(ufVo.getTaskDefKey())){ |
|
|
|
if (!"Event_end".equals(ufVo.getTaskDefKey())) { |
|
|
|
//极光推送
|
|
|
|
baseVehicleActualSales = fetchBySid(bv.getBusinessSid()); |
|
|
|
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); |
|
|
|
MessageFlowVo messageFlowVo = new MessageFlowVo(); |
|
|
|
BeanUtil.copyProperties(ufVo,messageFlowVo); |
|
|
|
BeanUtil.copyProperties(ufVo, messageFlowVo); |
|
|
|
ufVo.setProcDefId(baseVehicleActualSales.getProcDefId()); |
|
|
|
ufVo.setProcInsId(baseVehicleActualSales.getProcInstId()); |
|
|
|
messageFlowableQuery.setUfVo(messageFlowVo); |
|
|
|
messageFlowableQuery.setAppMap(appMap); |
|
|
|
messageFlowableQuery.setBusinessSid(bv.getBusinessSid()); |
|
|
|
messageFlowableQuery.setModuleName("未售买断申请"); |
|
|
|
messageFlowableQuery.setMsgContent(baseVehicleActualSales.getApplicationName()+"提交的"+messageFlowableQuery.getModuleName()+",请审批"); |
|
|
|
messageFlowableQuery.setMsgContent(baseVehicleActualSales.getApplicationName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); |
|
|
|
messageFlowableQuery.setMsgTitle("供应链"); |
|
|
|
ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery); |
|
|
|
} |
|
|
@ -491,10 +524,10 @@ public class BaseVehicleActualSalesService extends MybatisBaseService<BaseVehicl |
|
|
|
} |
|
|
|
FlowTaskVo flowTaskVo = new FlowTaskVo(); |
|
|
|
BeanUtil.copyProperties(query, flowTaskVo); |
|
|
|
Map<String,Object> variables = new HashMap<>(); |
|
|
|
Map<String,Object> appMap = new HashMap<>(); |
|
|
|
appMap.put("sid",query.getBusinessSid()); |
|
|
|
variables.put("app",appMap); |
|
|
|
Map<String, Object> variables = new HashMap<>(); |
|
|
|
Map<String, Object> appMap = new HashMap<>(); |
|
|
|
appMap.put("sid", query.getBusinessSid()); |
|
|
|
variables.put("app", appMap); |
|
|
|
flowTaskVo.setValues(variables); |
|
|
|
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.taskReject(flowTaskVo); |
|
|
|
if (!resultBean.getSuccess()) { |
|
|
@ -508,7 +541,7 @@ public class BaseVehicleActualSalesService extends MybatisBaseService<BaseVehicl |
|
|
|
baseVehicleActualSales = fetchBySid(query.getBusinessSid()); |
|
|
|
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); |
|
|
|
MessageFlowVo messageFlowVo = new MessageFlowVo(); |
|
|
|
BeanUtil.copyProperties(ufVo,messageFlowVo); |
|
|
|
BeanUtil.copyProperties(ufVo, messageFlowVo); |
|
|
|
String procId = baseVehicleActualSales.getProcInstId(); |
|
|
|
ufVo.setProcInsId(procId); |
|
|
|
ufVo.setProcDefId(baseVehicleActualSales.getProcDefId()); |
|
|
@ -516,13 +549,13 @@ public class BaseVehicleActualSalesService extends MybatisBaseService<BaseVehicl |
|
|
|
messageFlowableQuery.setAppMap(appMap); |
|
|
|
messageFlowableQuery.setBusinessSid(query.getBusinessSid()); |
|
|
|
messageFlowableQuery.setModuleName("未售买断申请"); |
|
|
|
ResultBean<List<LatestTaskVo>> listResultBean = flowTaskFeign.getLatestTasks(procId); |
|
|
|
ResultBean<List<LatestTaskVo>> listResultBean = flowTaskFeign.getLatestTasks(procId); |
|
|
|
String nextNodeUserSids = listResultBean.getData().get(0).getASSIGNEE_(); |
|
|
|
List<String> receiveSidList = Arrays.asList(nextNodeUserSids.split(",")); |
|
|
|
if(receiveSidList.size() == 1 && receiveSidList.get(0).equals(baseVehicleActualSales.getCreateBySid())){ |
|
|
|
messageFlowableQuery.setMsgContent("您提交的"+messageFlowableQuery.getModuleName()+"已被驳回,请重新提交"); |
|
|
|
}else{ |
|
|
|
messageFlowableQuery.setMsgContent(baseVehicleActualSales.getApplicationName()+"提交的"+messageFlowableQuery.getModuleName()+",请审批"); |
|
|
|
if (receiveSidList.size() == 1 && receiveSidList.get(0).equals(baseVehicleActualSales.getCreateBySid())) { |
|
|
|
messageFlowableQuery.setMsgContent("您提交的" + messageFlowableQuery.getModuleName() + "已被驳回,请重新提交"); |
|
|
|
} else { |
|
|
|
messageFlowableQuery.setMsgContent(baseVehicleActualSales.getApplicationName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); |
|
|
|
} |
|
|
|
|
|
|
|
messageFlowableQuery.setMsgTitle("供应链"); |
|
|
@ -557,7 +590,7 @@ public class BaseVehicleActualSalesService extends MybatisBaseService<BaseVehicl |
|
|
|
return rb.setMsg(resultBean.getMsg()); |
|
|
|
} |
|
|
|
updateFlowFiled(BeanUtil.beanToMap(resultBean.getData())); |
|
|
|
if(query.getUserSid().equals(baseVehicleActualSales.getCreateBySid())){ |
|
|
|
if (query.getUserSid().equals(baseVehicleActualSales.getCreateBySid())) { |
|
|
|
//更新车辆状态为未买断
|
|
|
|
String settlementStatus = VehicleState.BuyoutEnum.UN_BUYOUT.getCode(); |
|
|
|
String settlementStatusValue = VehicleState.BuyoutEnum.UN_BUYOUT.getRemarks(); |
|
|
@ -633,7 +666,9 @@ public class BaseVehicleActualSalesService extends MybatisBaseService<BaseVehicl |
|
|
|
map.put("selectType", 0); |
|
|
|
appSubVersionVo.setJson(JSONObject.toJSONString(map)); |
|
|
|
BeanUtil.copyProperties(appSubVersionVo, appVehicleVersionVo); |
|
|
|
vos.setCarDetailPage(appVehicleVersionVo);});} |
|
|
|
vos.setCarDetailPage(appVehicleVersionVo); |
|
|
|
}); |
|
|
|
} |
|
|
|
vo.setRecords(records); |
|
|
|
return rb.success().setData(vo); |
|
|
|
} |
|
|
|