|  | @@ -7,16 +7,20 @@ import com.ruoyi.basicData.domain.FleetCarManage;
 | 
	
		
			
				|  |  |  import com.ruoyi.basicData.domain.TCorps;
 | 
	
		
			
				|  |  |  import com.ruoyi.basicData.mapper.FleetCarManageMapper;
 | 
	
		
			
				|  |  |  import com.ruoyi.basicData.mapper.TCorpsMapper;
 | 
	
		
			
				|  |  | +import com.ruoyi.common.core.controller.BaseController;
 | 
	
		
			
				|  |  |  import com.ruoyi.common.core.domain.AjaxResult;
 | 
	
		
			
				|  |  |  import com.ruoyi.common.core.domain.entity.SysUser;
 | 
	
		
			
				|  |  |  import com.ruoyi.common.core.domain.model.LoginUser;
 | 
	
		
			
				|  |  |  import com.ruoyi.common.utils.DateUtils;
 | 
	
		
			
				|  |  | +import com.ruoyi.common.utils.LogUtils;
 | 
	
		
			
				|  |  |  import com.ruoyi.common.utils.SecurityUtils;
 | 
	
		
			
				|  |  |  import com.ruoyi.common.utils.StringUtils;
 | 
	
		
			
				|  |  |  import com.ruoyi.orderPlan.domain.*;
 | 
	
		
			
				|  |  |  import com.ruoyi.orderPlan.mapper.*;
 | 
	
		
			
				|  |  |  import com.ruoyi.orderPlan.service.IftmsorderbillsService;
 | 
	
		
			
				|  |  |  import com.ruoyi.warehouseBusiness.service.impl.BillnoSerialServiceImpl;
 | 
	
		
			
				|  |  | +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;
 | 
	
	
		
			
				|  | @@ -32,6 +36,9 @@ import java.util.*;
 | 
	
		
			
				|  |  |   */
 | 
	
		
			
				|  |  |  @Service
 | 
	
		
			
				|  |  |  public class FtmsorderbillsServiceImpl implements IftmsorderbillsService {
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    protected final Logger logger = LoggerFactory.getLogger(FtmsorderbillsServiceImpl.class);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      @Autowired
 | 
	
		
			
				|  |  |      private TCorpsMapper tCorpsMapper;
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -306,6 +313,11 @@ public class FtmsorderbillsServiceImpl implements IftmsorderbillsService {
 | 
	
		
			
				|  |  |          map.put("fees", ftmsorderbillsfeesMapper.selectFTmsorderbillsfeesByPId(pId));
 | 
	
		
			
				|  |  |          map.put("plans", ftmsorderbillsplansMapper.selectftmsorderbillsplansByOrgId(pId));
 | 
	
		
			
				|  |  |          map.put("scntrs", ftmsorderbillscntrsMapper.selectftmsorderbillscntrsByPId(pId));
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        //新增保存后逻辑 20210707 dongyongwei
 | 
	
		
			
				|  |  | +        //1计划中 状态
 | 
	
		
			
				|  |  | +        setFtmsorderbillsBillStatus(pId,1L);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |          return AjaxResult.success(map);
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -712,4 +724,141 @@ public class FtmsorderbillsServiceImpl implements IftmsorderbillsService {
 | 
	
		
			
				|  |  |          return ftmsorderbillsMapper.selectftmsorderbillsMapList(ftmsorderbills);
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    /**
 | 
	
		
			
				|  |  | +     * 设置订单表的状态方法
 | 
	
		
			
				|  |  | +     *
 | 
	
		
			
				|  |  | +     * @param id         订单主表ID
 | 
	
		
			
				|  |  | +     * @param billStatus 数据字典订单状态值
 | 
	
		
			
				|  |  | +     * @since 20210707 dongyongwei
 | 
	
		
			
				|  |  | +     */
 | 
	
		
			
				|  |  | +    @Override
 | 
	
		
			
				|  |  | +    public void setFtmsorderbillsBillStatus(Long id, Long billStatus) {
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        logger.debug("setFtmsorderbillsBillStatus,id={},billStatus={}",id,billStatus);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        /*
 | 
	
		
			
				|  |  | +        业务逻辑:
 | 
	
		
			
				|  |  | +        1计划中 录入单据 
 | 
	
		
			
				|  |  | +        2待调度 点击提交计划  
 | 
	
		
			
				|  |  | +        3调度中 计划量和调度量比较 计划量大于0 调度量<>0  计划量>调度量
 | 
	
		
			
				|  |  | +        4待派车 计划量和调度量比较 计划量大于0 计划量=调度量
 | 
	
		
			
				|  |  | +        5派车中 调度量和派车量比较 调度量大于0 派车<>0   调度量>派车
 | 
	
		
			
				|  |  | +        6待回单 调度量和派车量比较 调度量大于0 调度量=派车
 | 
	
		
			
				|  |  | +        7回单中 派车量和回单量比较 派车量大于0 回单量<>0   派车量>回单量 
 | 
	
		
			
				|  |  | +        8回单完成 派车量和回单量比较 派车量大于0 派车量=回单量
 | 
	
		
			
				|  |  | +        */
 | 
	
		
			
				|  |  | +        //获取正在操作的订单信息
 | 
	
		
			
				|  |  | +        Ftmsorderbills ftmsorderbills = ftmsorderbillsMapper.selectftmsorderbillsById(id);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        if("1".equals(String.valueOf(billStatus))){
 | 
	
		
			
				|  |  | +            logger.debug("更新状态码为:{}",1);
 | 
	
		
			
				|  |  | +           //保存按钮下新增记录,1计划中
 | 
	
		
			
				|  |  | +            ftmsorderbills.setBillStatus(billStatus);
 | 
	
		
			
				|  |  | +            ftmsorderbillsMapper.updateftmsorderbills(ftmsorderbills);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        if("2".equals(String.valueOf(billStatus))){
 | 
	
		
			
				|  |  | +            logger.debug("更新状态码为:{}",2);
 | 
	
		
			
				|  |  | +            //保存按钮下新增记录,2待调度
 | 
	
		
			
				|  |  | +            ftmsorderbills.setBillStatus(billStatus);
 | 
	
		
			
				|  |  | +            ftmsorderbillsMapper.updateftmsorderbills(ftmsorderbills);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        if("3".equals(String.valueOf(billStatus))){
 | 
	
		
			
				|  |  | +            //3调度中 计划量和调度量比较 计划量大于0 调度量<>0  计划量>调度量
 | 
	
		
			
				|  |  | +            //4待派车 计划量和调度量比较 计划量大于0 计划量=调度量
 | 
	
		
			
				|  |  | +            //取订单对应的F_TMSORDERBILLSCNTRS表数据
 | 
	
		
			
				|  |  | +            List<Ftmsorderbillscntrs> listFtmsorderbillscntrs = ftmsorderbillscntrsMapper.selectftmsorderbillscntrsByPId(id);
 | 
	
		
			
				|  |  | +            if(listFtmsorderbillscntrs.size()>0){
 | 
	
		
			
				|  |  | +                //判断>0证明有数据,取出来写相应逻辑
 | 
	
		
			
				|  |  | +                Ftmsorderbillscntrs ftmsorderbillscntrs = listFtmsorderbillscntrs.get(0);
 | 
	
		
			
				|  |  | +                //1获取计划量
 | 
	
		
			
				|  |  | +                Long cntrQty = ftmsorderbillscntrs.getCntrQty();
 | 
	
		
			
				|  |  | +                //2获取调度量
 | 
	
		
			
				|  |  | +                Long cntrPlanQty = ftmsorderbillscntrs.getCntrPlanQty();
 | 
	
		
			
				|  |  | +                //3获取未安排调度量
 | 
	
		
			
				|  |  | +                Long cntrBlcQty = ftmsorderbillscntrs.getCntrBlcQty();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                if(cntrQty >0 && cntrPlanQty!=0 && cntrQty>cntrPlanQty){
 | 
	
		
			
				|  |  | +                    logger.debug("更新状态码为:{}",3);
 | 
	
		
			
				|  |  | +                    ftmsorderbills.setBillStatus(3L);
 | 
	
		
			
				|  |  | +                    ftmsorderbillsMapper.updateftmsorderbills(ftmsorderbills);
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                if(cntrQty >0 && cntrQty==cntrPlanQty){
 | 
	
		
			
				|  |  | +                    logger.debug("更新状态码为:{}",4);
 | 
	
		
			
				|  |  | +                    ftmsorderbills.setBillStatus(4L);
 | 
	
		
			
				|  |  | +                    ftmsorderbillsMapper.updateftmsorderbills(ftmsorderbills);
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        if("5".equals(String.valueOf(billStatus))){
 | 
	
		
			
				|  |  | +            //派车环节加入判断
 | 
	
		
			
				|  |  | +            //5派车中 调度量和派车量比较 调度量大于0 派车<>0   调度量>派车
 | 
	
		
			
				|  |  | +            //6待回单 调度量和派车量比较 调度量大于0 调度量=派车
 | 
	
		
			
				|  |  | +            //取订单对应的F_TMSORDERBILLSCNTRS表数据
 | 
	
		
			
				|  |  | +            List<Ftmsorderbillscntrs> listFtmsorderbillscntrs = ftmsorderbillscntrsMapper.selectftmsorderbillscntrsByPId(id);
 | 
	
		
			
				|  |  | +            if(listFtmsorderbillscntrs.size()>0){
 | 
	
		
			
				|  |  | +                //判断>0证明有数据,取出来写相应逻辑
 | 
	
		
			
				|  |  | +                Ftmsorderbillscntrs ftmsorderbillscntrs = listFtmsorderbillscntrs.get(0);
 | 
	
		
			
				|  |  | +                //取调度量
 | 
	
		
			
				|  |  | +                Long cntrPlanQty = ftmsorderbillscntrs.getCntrPlanQty();
 | 
	
		
			
				|  |  | +                //取派车量
 | 
	
		
			
				|  |  | +                Long planQty = ftmsorderbillscntrs.getPlanQty();
 | 
	
		
			
				|  |  | +                if(cntrPlanQty>0 && planQty !=0 && cntrPlanQty > planQty){
 | 
	
		
			
				|  |  | +                    logger.debug("更新状态码为:{}",5);
 | 
	
		
			
				|  |  | +                    ftmsorderbills.setBillStatus(5L);
 | 
	
		
			
				|  |  | +                    ftmsorderbillsMapper.updateftmsorderbills(ftmsorderbills);
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                if(cntrPlanQty>0 && cntrPlanQty == planQty){
 | 
	
		
			
				|  |  | +                    logger.debug("更新状态码为:{}",6);
 | 
	
		
			
				|  |  | +                    ftmsorderbills.setBillStatus(6L);
 | 
	
		
			
				|  |  | +                    ftmsorderbillsMapper.updateftmsorderbills(ftmsorderbills);
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        if("7".equals(String.valueOf(billStatus))){
 | 
	
		
			
				|  |  | +            //7回单中 派车量和回单量比较 派车量大于0 回单量<>0   派车量>回单量 
 | 
	
		
			
				|  |  | +            //8回单完成 派车量和回单量比较 派车量大于0 派车量=回单量
 | 
	
		
			
				|  |  | +            //取订单对应的F_TMSORDERBILLSCNTRS表数据
 | 
	
		
			
				|  |  | +            List<Ftmsorderbillscntrs> listFtmsorderbillscntrs = ftmsorderbillscntrsMapper.selectftmsorderbillscntrsByPId(id);
 | 
	
		
			
				|  |  | +            if(listFtmsorderbillscntrs.size()>0){
 | 
	
		
			
				|  |  | +                //判断>0证明有数据,取出来写相应逻辑
 | 
	
		
			
				|  |  | +                Ftmsorderbillscntrs ftmsorderbillscntrs = listFtmsorderbillscntrs.get(0);
 | 
	
		
			
				|  |  | +                //取派车量
 | 
	
		
			
				|  |  | +                Long planQty = ftmsorderbillscntrs.getPlanQty();
 | 
	
		
			
				|  |  | +                //取回单量
 | 
	
		
			
				|  |  | +                Ftmsorderbillscars ftmsorderbillscarsQuery = new Ftmsorderbillscars();
 | 
	
		
			
				|  |  | +                ftmsorderbillscarsQuery.setOrgId(id);
 | 
	
		
			
				|  |  | +                ftmsorderbillscarsQuery.setOrderStatus(80L);
 | 
	
		
			
				|  |  | +                List<Ftmsorderbillscars> ftmsorderbillscarsList = ftmsorderbillscarsMapper.selectftmsorderbillscarsList(ftmsorderbillscarsQuery);
 | 
	
		
			
				|  |  | +                //回单量
 | 
	
		
			
				|  |  | +                Long carByOrderStatus80 = 0L;
 | 
	
		
			
				|  |  | +                if(ftmsorderbillscarsList.size()>0){
 | 
	
		
			
				|  |  | +                    for (int i = 0; i < ftmsorderbillscarsList.size(); i++) {
 | 
	
		
			
				|  |  | +                        carByOrderStatus80 = carByOrderStatus80 +ftmsorderbillscarsList.get(i).getCntrQty();
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                logger.debug("派车量:{},回单量:{}",planQty,carByOrderStatus80);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                if(planQty >0 && carByOrderStatus80 !=0 && planQty>carByOrderStatus80){
 | 
	
		
			
				|  |  | +                    logger.debug("更新状态码为:{}",7);
 | 
	
		
			
				|  |  | +                    ftmsorderbills.setBillStatus(7L);
 | 
	
		
			
				|  |  | +                    ftmsorderbillsMapper.updateftmsorderbills(ftmsorderbills);
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                if(planQty >0 && planQty==carByOrderStatus80){
 | 
	
		
			
				|  |  | +                    logger.debug("更新状态码为:{}",8);
 | 
	
		
			
				|  |  | +                    ftmsorderbills.setBillStatus(8L);
 | 
	
		
			
				|  |  | +                    ftmsorderbillsMapper.updateftmsorderbills(ftmsorderbills);
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  }
 |