|
@@ -1,5 +1,7 @@
|
|
|
package com.ruoyi.orderPlan.service.impl;
|
|
|
|
|
|
+import cn.hutool.core.bean.BeanUtil;
|
|
|
+import cn.hutool.core.util.StrUtil;
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.ruoyi.basicData.domain.TCorps;
|
|
@@ -24,6 +26,8 @@ import com.ruoyi.warehouseBusiness.domain.BillnoDel;
|
|
|
import com.ruoyi.warehouseBusiness.mapper.BillnoDelMapper;
|
|
|
import com.ruoyi.warehouseBusiness.service.impl.BillnoSerialServiceImpl;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.slf4j.Logger;
|
|
|
+import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
@@ -45,6 +49,8 @@ import java.util.Map;
|
|
|
@Service
|
|
|
public class FtmsorderbillscarsServiceImpl implements IftmsorderbillscarsService {
|
|
|
|
|
|
+ final Logger logger = LoggerFactory.getLogger(FtmsorderbillscarsServiceImpl.class);
|
|
|
+
|
|
|
@Autowired
|
|
|
private TGoodsMapper tGoodsMapper;
|
|
|
|
|
@@ -595,6 +601,41 @@ public class FtmsorderbillscarsServiceImpl implements IftmsorderbillscarsService
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
+ * 自动配载
|
|
|
+ * @param sourceId 来源ID,待插入数据ID,执行逻辑:插入数据,单据类型为分单,主单号为原来车辆的运单号
|
|
|
+ * @param targetId 目标ID,待处理数据ID,执行逻辑:单据类型 变为主单
|
|
|
+ * @return dongyongwei 20210713
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ @Transactional
|
|
|
+ public AjaxResult autoStowage(Long sourceId, Long targetId) {
|
|
|
+ //获取来源单据
|
|
|
+ Ftmsorderbillscars source = ftmsorderbillscarsMapper.selectftmsorderbillscarsById(sourceId);
|
|
|
+ //获取目标单据
|
|
|
+ Ftmsorderbillscars target = ftmsorderbillscarsMapper.selectftmsorderbillscarsById(targetId);
|
|
|
+
|
|
|
+ //处理目标单据单据类型变更为主单
|
|
|
+ target.setBillKind("MM");
|
|
|
+ ftmsorderbillscarsMapper.updateftmsorderbillscars(target);
|
|
|
+ //执行逻辑:插入数据,单据类型为分单,主单号为原来车辆的运单号
|
|
|
+ Ftmsorderbillscars newTarget = new Ftmsorderbillscars();
|
|
|
+ //原数据先复制给待插入数据
|
|
|
+ BeanUtil.copyProperties(source,newTarget);
|
|
|
+ //分单逻辑
|
|
|
+ newTarget.setBillKind("MH");
|
|
|
+ //主单号为原来车辆的运单号
|
|
|
+ newTarget.setOrderNo(source.getmBillNo());
|
|
|
+ //关联目标主表ID
|
|
|
+ newTarget.setpId(target.getpId());
|
|
|
+ //orgID
|
|
|
+ newTarget.setOrgId(target.getOrgId());
|
|
|
+ //执行完以上自动逻辑进行插入
|
|
|
+ ftmsorderbillscarsMapper.insertftmsorderbillscars(newTarget);
|
|
|
+
|
|
|
+ return AjaxResult.success("配载成功");
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
* 查询陆运台账列表信息
|
|
|
* @param vehicleLedgerExcel 查询条件
|
|
|
* @return 结果
|
|
@@ -798,6 +839,31 @@ public class FtmsorderbillscarsServiceImpl implements IftmsorderbillscarsService
|
|
|
@Override
|
|
|
@Transactional
|
|
|
public AjaxResult vehicleArrangement(String status, Ftmsorderbillscars ftmsorderbillscars, LoginUser loginUser) {
|
|
|
+ //新增逻辑 20210714 dongyongwei
|
|
|
+ // 配载常规提交
|
|
|
+ if ("addStowage".equals(status)) {
|
|
|
+ AjaxResult result = vehicleChangeAdd(ftmsorderbillscars, loginUser);
|
|
|
+ String ajaxCode = result.get("code").toString();
|
|
|
+ if ("500".equals(ajaxCode)) {
|
|
|
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
+ }
|
|
|
+
|
|
|
+ //新增更改配载过来的单据的状态为:主单,字典:直单NN主单MM从单MH 20210714
|
|
|
+ //配载过来的单据的主单号,实际为来之前的单据的运单号
|
|
|
+ String orderNo = ftmsorderbillscars.getmBillNo();
|
|
|
+ Ftmsorderbillscars ftmsorderbillscarsBefore = ftmsorderbillscarsMapper.selectftmsorderbillscarsByOrderNo(orderNo);
|
|
|
+ ftmsorderbillscarsBefore.setBillKind("MM");
|
|
|
+ ftmsorderbillscarsMapper.updateftmsorderbillscars(ftmsorderbillscarsBefore);
|
|
|
+
|
|
|
+ //新增逻辑20210707 dongyongwei,
|
|
|
+ //更改订单状态为
|
|
|
+ //5派车中 调度量和派车量比较 调度量大于0 派车<>0 调度量>派车
|
|
|
+ //6待回单 调度量和派车量比较 调度量大于0 调度量=派车
|
|
|
+ ftmsorderbillsService.setFtmsorderbillsBillStatus(ftmsorderbillscars.getOrgId(),5L);
|
|
|
+
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
// 常规提交
|
|
|
if ("add".equals(status)) {
|
|
|
AjaxResult result = vehicleChangeAdd(ftmsorderbillscars, loginUser);
|
|
@@ -828,6 +894,22 @@ public class FtmsorderbillscarsServiceImpl implements IftmsorderbillscarsService
|
|
|
ftmsorderbillsService.setFtmsorderbillsBillStatus(ftmsorderbillscars.getOrgId(),5L);
|
|
|
return result;
|
|
|
}
|
|
|
+
|
|
|
+ // 配载撤销 20210714 dongyongwei
|
|
|
+ if ("revokeStowage".equals(status)) {
|
|
|
+ AjaxResult result = vehicleChangeRevokeStowage(ftmsorderbillscars, loginUser);
|
|
|
+ String ajaxCode = result.get("code").toString();
|
|
|
+ if ("500".equals(ajaxCode)) {
|
|
|
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
+ }
|
|
|
+ //新增逻辑20210707 dongyongwei,
|
|
|
+ //更改订单状态为
|
|
|
+ //5派车中 调度量和派车量比较 调度量大于0 派车<>0 调度量>派车
|
|
|
+ //6待回单 调度量和派车量比较 调度量大于0 调度量=派车
|
|
|
+ ftmsorderbillsService.setFtmsorderbillsBillStatus(ftmsorderbillscars.getOrgId(),5L);
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
// 撤销
|
|
|
if ("revoke".equals(status)) {
|
|
|
AjaxResult result = vehicleChangeRevoke(ftmsorderbillscars, loginUser);
|
|
@@ -936,7 +1018,11 @@ public class FtmsorderbillscarsServiceImpl implements IftmsorderbillscarsService
|
|
|
Date time = new Date();
|
|
|
String billNo = billnoSerialServiceImpl.getSerialNumber("SJLSH", time);
|
|
|
ftmsorderbillscars.setOrderNo(billNo);
|
|
|
- ftmsorderbillscars.setmBillNo(billNo);
|
|
|
+ //新增配载逻辑 20210714 dongyongwei
|
|
|
+ //如果配载过来的主单号存在,则直接赋值,反之,走之前的逻辑
|
|
|
+ if(StrUtil.isBlank(ftmsorderbillscars.getmBillNo())){
|
|
|
+ ftmsorderbillscars.setmBillNo(billNo);
|
|
|
+ }
|
|
|
ftmsorderbillscars.setMblno(tmsorderbills.getMblno());
|
|
|
ftmsorderbillscars.setOrgId(ftmsorderbillsplans.getOrgId());
|
|
|
if (ftmsorderbillsplansMapper.updateftmsorderbillsplans(ftmsorderbillsplans) <= 0) {
|
|
@@ -997,6 +1083,59 @@ public class FtmsorderbillscarsServiceImpl implements IftmsorderbillscarsService
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
+ * 单条车辆安排撤销(配载)
|
|
|
+ *20210714 dongyongwei
|
|
|
+ * @return 结果
|
|
|
+ */
|
|
|
+ @Transactional
|
|
|
+ public AjaxResult vehicleChangeRevokeStowage(Ftmsorderbillscars ftmsorderbillscars, LoginUser loginUser) {
|
|
|
+ //先取出真正需要撤销的单据
|
|
|
+ //运单号,也就是配载单的主单号
|
|
|
+ String orderNo = ftmsorderbillscars.getOrderNo();
|
|
|
+ Ftmsorderbillscars ftmsorderbillscarsQuery = new Ftmsorderbillscars();
|
|
|
+ ftmsorderbillscarsQuery.setmBillNo(orderNo);
|
|
|
+ List<Ftmsorderbillscars> ftmsorderbillscarsList = ftmsorderbillscarsMapper.selectftmsorderbillscarsList(ftmsorderbillscarsQuery);
|
|
|
+ //取最后一条配载的记录进行逻辑操作
|
|
|
+ Ftmsorderbillscars ftmsorderbillscarsStowage = ftmsorderbillscarsList.get(ftmsorderbillscarsList.size()-1);
|
|
|
+
|
|
|
+ Map<String, Object> map = new HashMap<>();
|
|
|
+ // 验证司机是否产生费用,若产生的费用已经结算则拦截
|
|
|
+ List<Ftmsorderbillsfees> ftmsorderbillsfeesList = ftmsorderbillsfeesMapper.selectFTmsorderbillsfeesByPId(ftmsorderbillscarsStowage.getId());
|
|
|
+/* if (!"NN".equals(ftmsorderbillscarsStowage.getBillKind())) {
|
|
|
+ return AjaxResult.error("该运单已参与配载,无法撤销");
|
|
|
+ }*/
|
|
|
+ if (ftmsorderbillsfeesList.size() != 0) {
|
|
|
+ for (Ftmsorderbillsfees f : ftmsorderbillsfeesList) {
|
|
|
+ if (StringUtils.isNotEmpty(f.getfStlamountNo())) {
|
|
|
+ return AjaxResult.error("该安排车辆费用已经结算,无法撤销");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (ftmsorderbillscarsStowage.getOrderStatus() > 30) {
|
|
|
+ return AjaxResult.error("该安排车辆已经装卸货,无法撤回");
|
|
|
+ }
|
|
|
+ ftmsorderbillscarsStowage.setBillStatus(3L);
|
|
|
+ ftmsorderbillscarsStowage.setUpdateTime(new Date());
|
|
|
+ ftmsorderbillscarsStowage.setUpdateBy(loginUser.getUsername());
|
|
|
+
|
|
|
+ //执行配载逻辑:原单又变回直单,新增的这条变直单,运单号赋值给主单号
|
|
|
+ //新增的这条变直单,运单号赋值给主单号
|
|
|
+ ftmsorderbillscarsStowage.setmBillNo(ftmsorderbillscarsStowage.getOrderNo());
|
|
|
+ ftmsorderbillscarsStowage.setBillKind("NN");//直单NN主单MM从单MH
|
|
|
+ logger.debug("变更ftmsorderbillscarsStowage:"+ftmsorderbillscarsStowage.toString());
|
|
|
+ ftmsorderbillscarsMapper.updateftmsorderbillscars(ftmsorderbillscarsStowage);
|
|
|
+ //原单又变回直单,保证数据完整性,通过原单的id重新获取一下整条记录
|
|
|
+ Ftmsorderbillscars ftmsorderbillscarsBefore = ftmsorderbillscarsMapper.selectftmsorderbillscarsById(ftmsorderbillscars.getId());
|
|
|
+ ftmsorderbillscarsBefore.setBillKind("NN");
|
|
|
+ logger.debug("变更ftmsorderbillscarsBefore:"+ftmsorderbillscarsBefore.toString());
|
|
|
+ ftmsorderbillscarsMapper.updateftmsorderbillscars(ftmsorderbillscarsBefore);
|
|
|
+
|
|
|
+ map.put("plan", ftmsorderbillsplansMapper.selectftmsorderbillsplansById(ftmsorderbillscarsStowage.getpId()));
|
|
|
+ map.put("cars", ftmsorderbillscarsStowage);
|
|
|
+ return AjaxResult.success(map);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
* 单条车辆安排撤销
|
|
|
*
|
|
|
* @return 结果
|