| | |
| | | jkSketchMapper.insert(jkSketch); |
| | | return jkSketch.getId(); |
| | | } |
| | | |
| | | @Override |
| | | public void deleteById(Integer id) { |
| | | jkSketchMapper.deleteById(id); |
| | |
| | | UpdateWrapper<JkSketch> deleteWrapper = new UpdateWrapper<>(jkSketch); |
| | | jkSketchMapper.delete(deleteWrapper); |
| | | } |
| | | |
| | | |
| | | @Override |
| | | @PostConstruct |
| | |
| | | .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(),"当前线路不满足优化方案调整条件!"); |
| | |
| | | c.setCustomerList(customerList); |
| | | return c; |
| | | } |
| | | |
| | | /** |
| | | * 开始异步执行线路优化任务 |
| | | * @param model |
| | | */ |
| | | @Override |
| | | @Async |
| | | public void startUpdateLineAsync(JkSketch model) { |
| | |
| | | .set(JkSketch::getStatus,Constants.THREE) |
| | | .set(JkSketch::getPlanLineEndDate,new Date())); |
| | | } |
| | | |
| | | } |
| | | @Override |
| | | @Async |
| | | public void startInitOriginDistanceBatch(List<JkSketch> list) { |
| | | if(list!=null){ |
| | | for(JkSketch model :list){ |
| | | initOriginDistance(model); |
| | | } |
| | | } |
| | | } |
| | | @Override |
| | | @Async |
| | |
| | | .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); |
| | |
| | | for (int j = 0; j < customerListParam.size(); j++) { |
| | | distanceMatrix1[i+1][j+1] =disList.get(j+1).getDistance() ; |
| | | } |
| | | |
| | | } |
| | | //构造优化数据模型 |
| | | dataModel.initDataInfo(vehicleNumber1,demands1,vehicleCapacities1,distanceMatrix1); |
| | |
| | | } |
| | | line.setDistance(so.getDistance()); |
| | | } |
| | | |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | success =false; |
| | |
| | | .set(JkSketch::getStatus,success?Constants.TWO:Constants.THREE) |
| | | .set(JkSketch::getPlanLineEndDate,new Date())); |
| | | } |
| | | |
| | | } |
| | | |
| | | private List<JkSketchCustomer> initSketchCustomerListParam(List<JkSketchCustomer> customerList, List<JkSketchCustomer> customerList1) { |
| | | for(JkSketchCustomer param : customerList){ |
| | | for(JkSketchCustomer model : customerList1){ |
| | |
| | | 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()); |
| | |
| | | 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); |
| | |
| | | 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); |
| | |
| | | .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) |
| | |
| | | .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); |
| | |
| | | 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); |
| | |
| | | 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); |
| | |
| | | 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); |
| | |
| | | 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); |