|
@@ -217,243 +217,12 @@ public class TranCarInfoServiceImpl extends ServiceImpl<TranCarInfoMapper, TranC
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * APP反馈
|
|
|
+ * APP保存反馈
|
|
|
* @param tranCarInfo
|
|
|
* @return
|
|
|
*/
|
|
|
@Override
|
|
|
public String feedbackTranCar(TranCarInfo tranCarInfo) {
|
|
|
- //提交
|
|
|
- if ("1".equals(tranCarInfo.getFlag())){
|
|
|
- //卸车反馈时状态改为已送达
|
|
|
- if (tranCarInfo.getUnloadNetWeight() > 0) {
|
|
|
- tranCarInfo.setStatusFlag(StatusEnum.DELIVERED.getFlag());
|
|
|
- tranCarInfo.setStatus(StatusEnum.DELIVERED.getName());
|
|
|
- }
|
|
|
- //装车反馈
|
|
|
- else {
|
|
|
- tranCarInfo.setStatusFlag(StatusEnum.LOADED.getFlag());
|
|
|
- tranCarInfo.setStatus(StatusEnum.LOADED.getName());
|
|
|
- TranProcessInfo tranProcessInfo=tranProcessInfoService.selectById(tranCarInfo.getProcessId());
|
|
|
- TranTaskInfo tranTaskInfo=tranTaskInfoService.selectById(tranCarInfo.getInfoId());
|
|
|
- //汽运类型
|
|
|
- if (tranCarInfo.getTranType().equals(NumberConstant.CONSTANT1)) {
|
|
|
- List<TranSettlementReport> tranSettlementReportList = tranSettlementReportService.selectList(new EntityWrapper<TranSettlementReport>()
|
|
|
- .eq("car_id", tranCarInfo.getId()));
|
|
|
- if (!CollectionUtils.isEmpty(tranSettlementReportList)) {
|
|
|
- if (tranCarInfo.getUnloadNetWeight() > 0) {
|
|
|
- for (TranSettlementReport tranSettlementReport : tranSettlementReportList) {
|
|
|
- tranSettlementReport.setLoadingImg(tranCarInfo.getLoadPoundImg());
|
|
|
- tranSettlementReport.setUnloadingWeight(tranCarInfo.getUnloadNetWeight());
|
|
|
- tranSettlementReport.setUnloadingImg(tranCarInfo.getUnloadPoundImg());
|
|
|
- //损耗
|
|
|
- tranSettlementReport.setLossWeight(tranCarInfo.getLoadNetWeight() - tranCarInfo.getUnloadNetWeight());
|
|
|
- //结算重量
|
|
|
- if ("0".equals(tranSettlementReport.getManualFlag())) {
|
|
|
- //卸车不为空时,结算重量=装卸取小
|
|
|
- tranSettlementReport.setSettlementWeight(tranCarInfo.getLoadNetWeight() > tranCarInfo.getUnloadNetWeight() ? tranCarInfo.getUnloadNetWeight() : tranCarInfo.getLoadNetWeight());
|
|
|
- }
|
|
|
- //扣款
|
|
|
- if (tranSettlementReport.getLossWeight() <= (tranCarInfo.getLoadNetWeight() / 1000)) {
|
|
|
- tranSettlementReport.setDeductionAmount("0");
|
|
|
- //应付=单价x结算重量-扣款
|
|
|
- tranSettlementReport.setAmountIngPayable(tranSettlementReport.getTransportPrice() * tranSettlementReport.getSettlementWeight());
|
|
|
- } else {
|
|
|
- tranSettlementReport.setDeductionAmount(String.format("%.2f", (Float.valueOf(tranCarInfo.getLoadNetWeight() - tranCarInfo.getUnloadNetWeight()) - (tranCarInfo.getLoadNetWeight() / 1000)) * Float.valueOf(tranCarInfo.getTranPrice())));
|
|
|
- //应付=单价x结算重量-扣款
|
|
|
- tranSettlementReport.setAmountIngPayable(tranSettlementReport.getTransportPrice() * tranSettlementReport.getSettlementWeight() - Float.valueOf(tranSettlementReport.getDeductionAmount()));
|
|
|
- }
|
|
|
- tranSettlementReportService.updateById(tranSettlementReport);
|
|
|
- }
|
|
|
- }
|
|
|
- } else {
|
|
|
- //生成汽运报表
|
|
|
- TranSettlementReport tranSettlementReport = new TranSettlementReport();
|
|
|
- tranSettlementReport.setCompId(tranTaskInfo.getCompId());
|
|
|
- tranSettlementReport.setCarId(tranCarInfo.getId());
|
|
|
- tranSettlementReport.setId(IdGenerator.generateUUID());
|
|
|
- tranSettlementReport.setTranType("汽运");
|
|
|
- tranSettlementReport.setTranTypeKey("1");
|
|
|
- tranSettlementReport.setContractNo(tranTaskInfo.getContractNo());
|
|
|
- tranSettlementReport.setProcessNo(tranProcessInfo.getProcessNo());
|
|
|
- tranSettlementReport.setName(tranCarInfo.getDriver());
|
|
|
- tranSettlementReport.setPhone(tranCarInfo.getDriverPhone());
|
|
|
- tranSettlementReport.setCarNo(tranCarInfo.getCarNo());
|
|
|
- //查询账户信息
|
|
|
- List<DriverViewInfo> driverViewInfoList = driverViewInfoService.selectList(new EntityWrapper<DriverViewInfo>()
|
|
|
- .eq("driver_name", tranCarInfo.getDriver())
|
|
|
- .eq("delete_flag", "0"));
|
|
|
- if (!CollectionUtils.isEmpty(driverViewInfoList)) {
|
|
|
- for (DriverViewInfo driverViewInfo : driverViewInfoList) {
|
|
|
- List<DriverPayeeInfo> driverPayeeInfoList = driverPayeeInfoService.selectList(new EntityWrapper<DriverPayeeInfo>()
|
|
|
- .eq("driver_id", driverViewInfo.getId())
|
|
|
- .eq("delete_flag", "0"));
|
|
|
- if (!CollectionUtils.isEmpty(driverPayeeInfoList)) {
|
|
|
- //本次收款账户
|
|
|
- tranSettlementReport.setCardNo(driverPayeeInfoList.get(0).getBankCard());
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- tranSettlementReport.setSettlementWeight(tranCarInfo.getLoadNetWeight());
|
|
|
- //应付
|
|
|
- tranSettlementReport.setAmountIngPayable(tranProcessInfo.getTranPrice() * tranSettlementReport.getSettlementWeight());
|
|
|
- //未付
|
|
|
- tranSettlementReport.setAmountNotPayable(tranProcessInfo.getTranPrice() * tranSettlementReport.getSettlementWeight());
|
|
|
- tranSettlementReport.setTranCarNo(tranCarInfo.getTranCarNo());
|
|
|
- tranSettlementReport.setLoadingWeight(tranCarInfo.getLoadNetWeight());
|
|
|
- tranSettlementReport.setLoadingImg(tranCarInfo.getLoadPoundImg());
|
|
|
- tranSettlementReport.setTransportPrice(tranProcessInfo.getTranPrice());
|
|
|
- tranSettlementReportService.insert(tranSettlementReport);
|
|
|
- boolean isStartWorkflow = org.apache.commons.lang3.StringUtils.isBlank(tranSettlementReport.getWorkflowId());
|
|
|
- // 不是退回的单子
|
|
|
- if (isStartWorkflow) {
|
|
|
- Workflow workflow = workflowService
|
|
|
- .findLatestWorkflowByBusinessCodeByApp(tranSettlementReport.getCompId(), "TRANSPORTATION-SETTLEMENT-REPORT");
|
|
|
- // 没配置审核流程,直接结束并处理信息
|
|
|
- if (workflow == null) {
|
|
|
- throw new YException(YExceptionEnum.PURCHASE_ORDER_ERROR);
|
|
|
- }
|
|
|
- // 开启审核流
|
|
|
- else {
|
|
|
-
|
|
|
- // 设置状态 已提交审核
|
|
|
- tranSettlementReport.setWorkflowId(workflow.getId());
|
|
|
- tranSettlementReportService.updateById(tranSettlementReport);
|
|
|
- workflowService.startInstance(workflow.getId(), tranSettlementReport.getId());
|
|
|
- }
|
|
|
- }
|
|
|
- // 退回的单子 再启用
|
|
|
- else {
|
|
|
-
|
|
|
- tranSettlementReportService.updateById(tranSettlementReport);
|
|
|
- workflowService.activateInstance(tranSettlementReport.getWorkflowId(), tranSettlementReport.getId());
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- //火运类型
|
|
|
- else if (tranCarInfo.getTranType().equals(NumberConstant.CONSTANT2)) {
|
|
|
- List<TranSettlementReport> tranSettlementReportList = tranSettlementReportService.selectList(new EntityWrapper<TranSettlementReport>()
|
|
|
- .eq("car_id", tranCarInfo.getId()));
|
|
|
- if (!CollectionUtils.isEmpty(tranSettlementReportList)) {
|
|
|
- if (tranCarInfo.getUnloadNetWeight() > 0) {
|
|
|
- for (TranSettlementReport tranSettlementReport : tranSettlementReportList) {
|
|
|
- tranSettlementReport.setLoadingImg(tranCarInfo.getLoadPoundImg());
|
|
|
- tranSettlementReport.setUnloadingWeight(tranCarInfo.getUnloadNetWeight());
|
|
|
- tranSettlementReport.setUnloadingImg(tranCarInfo.getUnloadPoundImg());
|
|
|
- //损耗
|
|
|
- tranSettlementReport.setLossWeight(tranCarInfo.getLoadNetWeight() - tranCarInfo.getUnloadNetWeight());
|
|
|
- tranSettlementReportService.updateById(tranSettlementReport);
|
|
|
- }
|
|
|
- }
|
|
|
- } else {
|
|
|
- //生成火运报表
|
|
|
- TranSettlementReport tranSettlementReport = new TranSettlementReport();
|
|
|
- tranSettlementReport.setCompId(tranTaskInfo.getCompId());
|
|
|
- tranSettlementReport.setCarId(tranCarInfo.getId());
|
|
|
- tranSettlementReport.setId(IdGenerator.generateUUID());
|
|
|
- tranSettlementReport.setTranType("火运");
|
|
|
- tranSettlementReport.setTranTypeKey("2");
|
|
|
- tranSettlementReport.setContractNo(tranTaskInfo.getContractNo());
|
|
|
- tranSettlementReport.setTaskNo(tranTaskInfo.getTaskNo());
|
|
|
- tranSettlementReport.setProcessNo(tranProcessInfo.getProcessNo());
|
|
|
- tranSettlementReport.setBoxNo(tranCarInfo.getBoxNo());
|
|
|
- tranSettlementReport.setSettlementWeight(tranCarInfo.getLoadNetWeight());
|
|
|
- tranSettlementReport.setLoadingWeight(tranCarInfo.getLoadNetWeight());
|
|
|
- tranSettlementReport.setLoadingImg(tranCarInfo.getLoadPoundImg());
|
|
|
- tranSettlementReportService.insert(tranSettlementReport);
|
|
|
- boolean isStartWorkflow = org.apache.commons.lang3.StringUtils.isBlank(tranSettlementReport.getWorkflowId());
|
|
|
- // 不是退回的单子
|
|
|
- if (isStartWorkflow) {
|
|
|
- Workflow workflow = workflowService
|
|
|
- .findLatestWorkflowByBusinessCodeByApp(tranSettlementReport.getCompId(), "TRANSPORTATION-SETTLEMENT-REPORT");
|
|
|
- // 没配置审核流程,直接结束并处理信息
|
|
|
- if (workflow == null) {
|
|
|
- throw new YException(YExceptionEnum.PURCHASE_ORDER_ERROR);
|
|
|
- }
|
|
|
- // 开启审核流
|
|
|
- else {
|
|
|
-
|
|
|
- // 设置状态 已提交审核
|
|
|
- tranSettlementReport.setWorkflowId(workflow.getId());
|
|
|
- tranSettlementReportService.updateById(tranSettlementReport);
|
|
|
- workflowService.startInstance(workflow.getId(), tranSettlementReport.getId());
|
|
|
- }
|
|
|
- }
|
|
|
- // 退回的单子 再启用
|
|
|
- else {
|
|
|
-
|
|
|
- tranSettlementReportService.updateById(tranSettlementReport);
|
|
|
- workflowService.activateInstance(tranSettlementReport.getWorkflowId(), tranSettlementReport.getId());
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- //船运类型
|
|
|
- else if (tranCarInfo.getTranType().equals(NumberConstant.CONSTANT3)) {
|
|
|
- List<TranSettlementReport> tranSettlementReportList = tranSettlementReportService.selectList(new EntityWrapper<TranSettlementReport>()
|
|
|
- .eq("car_id", tranCarInfo.getId()));
|
|
|
- if (!CollectionUtils.isEmpty(tranSettlementReportList)) {
|
|
|
- if (tranCarInfo.getUnloadNetWeight() > 0) {
|
|
|
- for (TranSettlementReport tranSettlementReport : tranSettlementReportList) {
|
|
|
- tranSettlementReport.setLoadingImg(tranCarInfo.getLoadPoundImg());
|
|
|
- tranSettlementReport.setUnloadingWeight(tranCarInfo.getUnloadNetWeight());
|
|
|
- tranSettlementReport.setUnloadingImg(tranCarInfo.getUnloadPoundImg());
|
|
|
- //损耗
|
|
|
- tranSettlementReport.setLossWeight(tranCarInfo.getLoadNetWeight() - tranCarInfo.getUnloadNetWeight());
|
|
|
- tranSettlementReportService.updateById(tranSettlementReport);
|
|
|
- }
|
|
|
- }
|
|
|
- } else {
|
|
|
- //生成船运报表
|
|
|
- TranSettlementReport tranSettlementReport = new TranSettlementReport();
|
|
|
- tranSettlementReport.setCompId(tranTaskInfo.getCompId());
|
|
|
- tranSettlementReport.setCarId(tranCarInfo.getId());
|
|
|
- tranSettlementReport.setId(IdGenerator.generateUUID());
|
|
|
- tranSettlementReport.setTranType("船运");
|
|
|
- tranSettlementReport.setTranTypeKey("3");
|
|
|
- tranSettlementReport.setTaskNo(tranTaskInfo.getTaskNo());
|
|
|
- tranSettlementReport.setProcessNo(tranProcessInfo.getProcessNo());
|
|
|
- if ("集装箱".equals(tranCarInfo.getShipType())){
|
|
|
- tranSettlementReport.setBoxNo(tranCarInfo.getCaseNo());
|
|
|
- }
|
|
|
- else{
|
|
|
- tranSettlementReport.setBoxNo(tranCarInfo.getBinNumber());
|
|
|
- }
|
|
|
- tranSettlementReport.setShipType(tranCarInfo.getShipType());
|
|
|
- tranSettlementReport.setContractNo(tranTaskInfo.getContractNo());
|
|
|
- tranSettlementReport.setSettlementWeight(tranCarInfo.getLoadNetWeight());
|
|
|
- tranSettlementReport.setTranCarNo(tranCarInfo.getTranCarNo());
|
|
|
- tranSettlementReport.setLoadingWeight(tranCarInfo.getLoadNetWeight());
|
|
|
- tranSettlementReport.setLoadingImg(tranCarInfo.getLoadPoundImg());
|
|
|
- tranSettlementReport.setTransportPrice(tranProcessInfo.getTranPrice());
|
|
|
- tranSettlementReportService.insert(tranSettlementReport);
|
|
|
- boolean isStartWorkflow = org.apache.commons.lang3.StringUtils.isBlank(tranSettlementReport.getWorkflowId());
|
|
|
- // 不是退回的单子
|
|
|
- if (isStartWorkflow) {
|
|
|
- Workflow workflow = workflowService
|
|
|
- .findLatestWorkflowByBusinessCodeByApp(tranSettlementReport.getCompId(), "TRANSPORTATION-SETTLEMENT-REPORT");
|
|
|
- // 没配置审核流程,直接结束并处理信息
|
|
|
- if (workflow == null) {
|
|
|
- throw new YException(YExceptionEnum.PURCHASE_ORDER_ERROR);
|
|
|
- }
|
|
|
- // 开启审核流
|
|
|
- else {
|
|
|
-
|
|
|
- // 设置状态 已提交审核
|
|
|
- tranSettlementReport.setWorkflowId(workflow.getId());
|
|
|
- tranSettlementReportService.updateById(tranSettlementReport);
|
|
|
- workflowService.startInstance(workflow.getId(), tranSettlementReport.getId());
|
|
|
- }
|
|
|
- }
|
|
|
- // 退回的单子 再启用
|
|
|
- else {
|
|
|
-
|
|
|
- tranSettlementReportService.updateById(tranSettlementReport);
|
|
|
- workflowService.activateInstance(tranSettlementReport.getWorkflowId(), tranSettlementReport.getId());
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
this.updateById(tranCarInfo);
|
|
|
return tranCarInfo.getId();
|
|
|
}
|