server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/JkSketch.java
@@ -92,6 +92,9 @@ @ApiModelProperty(value = "排序码", example = "1") //@ExcelColumn(name="排序码") private Integer sortnum; @ApiModelProperty(value = "优化状态 0未优化 1已生成已优化线路", example = "1") //@ExcelColumn(name="排序码") private Integer optStatus; @ApiModelProperty(value = "优化记录编码(作为key值存redis)", example = "1") //@ExcelColumn(name="班组编码(关联category)") private String jobId; server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/JkSketchCustomer.java
@@ -146,5 +146,6 @@ @ApiModelProperty(value = "同班组间客户位置距离数组,[{a:12,b:100},{a:13,b:200},...],a:客户编码,b:与客户a之间的距离") @TableField(exist = false) private List<DistanceMapParam> distanceMapParamList; @ApiModelProperty(value = "类型 0优化前 1优化后", example = "1") private Integer type; } server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/JkSketchLine.java
@@ -78,6 +78,8 @@ @ApiModelProperty(value = "排序码", example = "1") @ExcelColumn(name="排序码") private Integer sortnum; @ApiModelProperty(value = "类型 0优化前 1优化后", example = "1") private Integer type; @ApiModelProperty(value = "日期") @ExcelColumn(name="日期") server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkSketchCustomerServiceImpl.java
@@ -4,6 +4,7 @@ import com.doumee.biz.system.SystemDictDataBiz; import com.doumee.core.utils.Constants; import com.doumee.dao.business.JkCustomerNavigationMapper; import com.doumee.dao.business.JkSketchMapper; import com.doumee.dao.business.model.*; import com.doumee.service.business.third.model.PageData; import com.doumee.service.business.third.model.PageWrap; @@ -37,6 +38,8 @@ private SystemDictDataBiz systemDictDataBiz; @Autowired private JkSketchCustomerMapper jkSketchCustomerMapper; @Autowired private JkSketchMapper jkSketchMapper; @Autowired private JkCustomerNavigationMapper jkCustomerNavigationMapper; @@ -187,6 +190,12 @@ } @Override public List<JkSketchCustomer> findList(JkSketchCustomer jkSketchCustomer) { /* if(jkSketchCustomer.getSketchId()!=null){ JkSketch sketch = jkSketchMapper.selectById(jkSketchCustomer.getSketchId()); if(sketch!=null){ jkSketchCustomer.setType(Constants.formatIntegerNum(sketch.getOptStatus())); } }*/ MPJLambdaWrapper<JkSketchCustomer> queryWrapper = new MPJLambdaWrapper<>(); jkSketchCustomer.setIsdeleted(Constants.ZERO); queryWrapper.selectAll(JkSketchCustomer.class ) @@ -198,11 +207,9 @@ .leftJoin(JkCustomer.class,JkCustomer::getId,JkSketchCustomer::getCustomerId ) ; queryWrapper.like(jkSketchCustomer.getCode()!=null,JkCustomer::getCode,jkSketchCustomer.getCode()); queryWrapper.like(jkSketchCustomer.getName()!=null,JkCustomer::getName,jkSketchCustomer.getName()); queryWrapper.eq(jkSketchCustomer.getType() != null,JkSketchCustomer::getType,jkSketchCustomer.getType()); if (jkSketchCustomer.getId() != null) { queryWrapper.eq(JkSketchCustomer::getId,jkSketchCustomer.getId()); } if (jkSketchCustomer.getCreator() != null) { queryWrapper.eq(JkSketchCustomer::getCreator,jkSketchCustomer.getCreator()); } if (jkSketchCustomer.getCreateDate() != null) { queryWrapper.ge(JkSketchCustomer::getCreateDate, Utils.Date.getStart(jkSketchCustomer.getCreateDate())); @@ -243,6 +250,12 @@ @Override public PageData<JkSketchCustomer> findPage(PageWrap<JkSketchCustomer> pageWrap) { if(pageWrap.getModel().getSketchId()!=null){ JkSketch sketch = jkSketchMapper.selectById(pageWrap.getModel().getSketchId()); if(sketch!=null){ pageWrap.getModel().setType(Constants.formatIntegerNum(sketch.getOptStatus())); } } IPage<JkSketchCustomer> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); MPJLambdaWrapper<JkSketchCustomer> queryWrapper = new MPJLambdaWrapper<>(); Utils.MP.blankToNull(pageWrap.getModel()); @@ -258,6 +271,7 @@ .leftJoin(JkSketchLine.class,JkSketchLine::getId,JkSketchCustomer::getSketchLineId ) .leftJoin(JkLine.class,JkLine::getId,JkSketchLine::getLineId ) .leftJoin(Category.class,Category::getId,JkLine::getCategoryId ); queryWrapper.eq( pageWrap.getModel().getType()!=null,JkSketchCustomer::getType, pageWrap.getModel().getType()); queryWrapper.eq( pageWrap.getModel().getCategoryId()!=null,JkLine::getCategoryId, pageWrap.getModel().getCategoryId()); queryWrapper.eq( pageWrap.getModel().getDateInfo()!=null,JkSketchCustomer::getDateInfo, pageWrap.getModel().getDateInfo()); queryWrapper.like( pageWrap.getModel().getCode()!=null,JkCustomer::getCode, pageWrap.getModel().getCode()); server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkSketchLineServiceImpl.java
@@ -1,6 +1,7 @@ package com.doumee.service.business.impl; import com.doumee.core.utils.Constants; import com.doumee.dao.business.JkSketchMapper; import com.doumee.dao.business.model.*; import com.doumee.service.business.third.model.PageData; import com.doumee.service.business.third.model.PageWrap; @@ -28,6 +29,8 @@ @Autowired private JkSketchLineMapper jkSketchLineMapper; @Autowired private JkSketchMapper jkSketchMapper; @Override public Integer create(JkSketchLine jkSketchLine) { @@ -82,6 +85,12 @@ @Override public List<JkSketchLine> findList(JkSketchLine jkSketchLine) { /* if(jkSketchLine.getSketchId()!=null){ JkSketch sketch = jkSketchMapper.selectById(jkSketchLine.getSketchId()); if(sketch!=null){ jkSketchLine.setType(Constants.formatIntegerNum(sketch.getOptStatus())); } }*/ MPJLambdaWrapper<JkSketchLine> wrapper = new MPJLambdaWrapper<>(); wrapper.selectAll(JkSketchLine.class ) .selectAs(Member::getName,JkSketchLine::getMemberName) @@ -95,6 +104,7 @@ .leftJoin(Cars.class,Cars::getId,JkLine::getCarId ) .leftJoin(Member.class,Member::getId,Cars::getMemberId ) .leftJoin(Category.class,Category::getId,JkLine::getCategoryId ); wrapper.eq( jkSketchLine.getType()!=null,JkSketchLine::getType, jkSketchLine.getType()); wrapper.eq( jkSketchLine.getSketchId()!=null,JkSketchLine::getSketchId, jkSketchLine.getSketchId()) .eq( JkSketchLine::getIsdeleted,Constants.ZERO) .orderByAsc(JkLine::getSortnum ); @@ -104,14 +114,20 @@ @Override public PageData<JkSketchLine> findPage(PageWrap<JkSketchLine> pageWrap) { if(pageWrap.getModel().getSketchId()!=null){ JkSketch sketch = jkSketchMapper.selectById(pageWrap.getModel().getSketchId()); if(sketch!=null){ pageWrap.getModel().setType(Constants.formatIntegerNum(sketch.getOptStatus())); } } IPage<JkSketchLine> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); QueryWrapper<JkSketchLine> queryWrapper = new QueryWrapper<>(); Utils.MP.blankToNull(pageWrap.getModel()); if (pageWrap.getModel().getId() != null) { queryWrapper.lambda().eq(JkSketchLine::getId, pageWrap.getModel().getId()); } if (pageWrap.getModel().getCreator() != null) { queryWrapper.lambda().eq(JkSketchLine::getCreator, pageWrap.getModel().getCreator()); if (pageWrap.getModel().getType() != null) { queryWrapper.lambda().eq(JkSketchLine::getType, pageWrap.getModel().getType()); } if (pageWrap.getModel().getCreateDate() != null) { queryWrapper.lambda().ge(JkSketchLine::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate())); server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkSketchServiceImpl.java
@@ -179,6 +179,7 @@ .selectAs(JkLine::getMaxCustomer,JkSketchLine::getMaxCustomer) .leftJoin(JkLine.class,JkLine::getId,JkOrders::getLineId ) .eq(JkSketchLine::getSketchId,jkSketch.getId()) .eq(JkSketchLine::getType, Constants.formatIntegerNum(model.getOptStatus())) .eq(JkSketchLine::getIsdeleted,Constants.ZERO)); if(lineList ==null ||lineList.size() ==0){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"当前线路不满足优化方案调整条件!"); @@ -442,6 +443,11 @@ c.setCustomerList(customerList); return c; } /** * 开始异步执行线路优化任务 * @param model */ @Override @Async public void startUpdateLineAsync(JkSketch model) { @@ -508,6 +514,7 @@ .selectAs(JkCustomer::getStartDistance,JkSketchCustomer::getStartDistance) .selectAs(JkCustomer::getEndDistance,JkSketchCustomer::getEndDistance) .leftJoin(JkCustomer.class,JkCustomer::getId,JkSketchCustomer::getCustomerId ) .eq(JkSketchCustomer::getType, Constants.equalsInteger(model.getOptStatus(),Constants.ONE)?1:0) .eq(JkSketchCustomer::getSketchId, model.getId()) .eq(JkSketchCustomer::getIsdeleted,Constants.ZERO) .orderByAsc(JkSketchCustomer::getSortnum); @@ -754,6 +761,7 @@ tModel.setTotalNum(new BigDecimal(0)); tModel.setOrderNum(routes.size()-2); tModel.setDateInfo(model.getDateInfo()); tModel.setType(Constants.ONE); tModel.setSortnum(sketchLineList.size()+1); tModel.setEditDate(tModel.getCreateDate()); tModel.setEditor(tModel.getCreator()); @@ -772,6 +780,7 @@ cModel.setCreator(tModel.getCreator()); cModel.setOrderId(customer.getOrderId()); cModel.setCreateDate(tModel.getCreateDate()); cModel.setType(Constants.ONE); cModel.setTotalNum(customer.getTotalNum()); cModel.setDateInfo(model.getDateInfo()); cModel.setSortnum(tModel.getCustomerList().size()+1); @@ -789,10 +798,12 @@ jkSketchLineMapper.update(null,new UpdateWrapper<JkSketchLine>().lambda() .set(JkSketchLine::getIsdeleted,Constants.ONE) .eq(JkSketchLine::getIsdeleted,Constants.ZERO) .eq(JkSketchLine::getType,Constants.ONE) .eq(JkSketchLine::getDateInfo,model.getDateInfo())); jkSketchCustomerMapper.update(null,new UpdateWrapper<JkSketchCustomer>().lambda() .set(JkSketchCustomer::getIsdeleted,Constants.ONE) .eq(JkSketchCustomer::getIsdeleted,Constants.ZERO) .eq(JkSketchCustomer::getType,Constants.ONE) .eq(JkSketchCustomer::getDateInfo,model.getDateInfo())); if(sketchLineList.size()>0){ jkSketchLineMapper.insert(sketchLineList); @@ -812,6 +823,7 @@ .eq(JkSketch::getId,model.getId() ) .eq(JkSketch::getJobId,model.getJobId() ) .set(JkSketch::getLineNum,sketchLineList.size() ) .set(JkSketch::getOptStatus,Constants.ONE)//已生成优化线路 .set(JkSketch::getDistance,totalDistance) .set(JkSketch::getPlanLineInfo,"最近一次线路优化成功,优化后总距离:"+(totalDistance/1000)+"公里!") .set(JkSketch::getStatus,Constants.TWO) @@ -838,6 +850,7 @@ .selectAs(JkCustomer::getStartDistance,JkSketchCustomer::getStartDistance) .selectAs(JkCustomer::getEndDistance,JkSketchCustomer::getEndDistance) .leftJoin(JkCustomer.class,JkCustomer::getId,JkSketchCustomer::getCustomerId ) .eq(JkSketchCustomer::getType, Constants.formatIntegerNum(model.getOptStatus())) .eq(JkSketchCustomer::getSketchId, model.getId()) .eq(JkSketchCustomer::getIsdeleted,Constants.ZERO) .orderByAsc(JkSketchCustomer::getSortnum); @@ -866,6 +879,7 @@ queryWrapper1.selectAll(JkSketchLine.class ) .eq(JkSketchLine::getSketchId, model.getId()) .eq(JkSketchLine::getIsdeleted,Constants.ZERO) .eq(JkSketchLine::getType, Constants.formatIntegerNum(model.getOptStatus())) .orderByAsc(JkSketchLine::getSortnum); List<JkSketchLine> lineList = jkSketchLineMapper.selectJoinList(JkSketchLine.class,queryWrapper1); initCustomerDistance(lineList,model,updateLineDistance); @@ -1079,6 +1093,7 @@ tModel.setTotalNum(orders.getNum()); tModel.setDateInfo(orders.getDateInfo()); tModel.setSortnum(list.size()+1); tModel.setType(Constants.ZERO); tModel.setEditDate(tModel.getCreateDate()); tModel.setEditor(tModel.getCreator()); tModel.setIsdeleted(Constants.ZERO); @@ -1101,6 +1116,7 @@ initOrderAndTotalNum(tModel,line.getId(),newOrderList); tModel.setDateInfo(newList.get(0).getDateInfo()); tModel.setSortnum(list.size()+1); tModel.setType(Constants.ZERO); tModel.setEditDate(tModel.getCreateDate()); tModel.setEditor(tModel.getCreator()); tModel.setIsdeleted(Constants.ZERO); @@ -1156,6 +1172,7 @@ tModel.setCreateDate(orders.getCreateDate()); tModel.setCategoryId(orders.getCategoryId()); tModel.setTotalNum(orders.getNum()); tModel.setOptStatus(Constants.ZERO); tModel.setOrderNum(1); tModel.setDateInfo(orders.getDateInfo()); tModel.setSortnum(list.size()+1);