Browse Source

陆运修改

Signed-off-by: sunhz <mpcoo@foxmail.com>
sunhz 3 years ago
parent
commit
82f2ba158b
25 changed files with 391 additions and 55 deletions
  1. 18 0
      blade-service-api/blade-client-api/src/main/java/org/springblade/client/entity/LandDriver.java
  2. 30 0
      blade-service-api/blade-client-api/src/main/java/org/springblade/client/entity/LandVehicle.java
  3. 5 0
      blade-service-api/blade-land-api/pom.xml
  4. 26 1
      blade-service-api/blade-land-api/src/main/java/org/springblade/land/constant/LandConst.java
  5. 1 1
      blade-service-api/blade-land-api/src/main/java/org/springblade/land/constant/WxConst.java
  6. 46 0
      blade-service-api/blade-land-api/src/main/java/org/springblade/land/excel/AcctExcel.java
  7. 25 0
      blade-service-api/blade-land-api/src/main/java/org/springblade/land/excel/CdAcctExcel.java
  8. 25 0
      blade-service-api/blade-land-api/src/main/java/org/springblade/land/excel/KhAcctExcel.java
  9. 34 0
      blade-service-api/blade-land-api/src/main/java/org/springblade/land/excel/PtAcctExcel.java
  10. 2 0
      blade-service-api/blade-land-api/src/main/java/org/springblade/land/vo/OrderAcctVO.java
  11. 26 1
      blade-service/blade-client/src/main/java/org/springblade/client/corps/service/impl/CorpsDescServiceImpl.java
  12. 1 16
      blade-service/blade-client/src/main/java/org/springblade/client/land/controller/LandDriverController.java
  13. 10 0
      blade-service/blade-client/src/main/java/org/springblade/client/land/service/ILandDriverService.java
  14. 32 0
      blade-service/blade-client/src/main/java/org/springblade/client/land/service/impl/LandDriverServiceImpl.java
  15. 6 0
      blade-service/blade-client/src/main/java/org/springblade/client/land/service/impl/LandVehicleServiceImpl.java
  16. 47 0
      blade-service/blade-land/src/main/java/org/springblade/land/controller/OrderController.java
  17. 11 11
      blade-service/blade-land/src/main/java/org/springblade/land/controller/OrderIndexController.java
  18. 4 4
      blade-service/blade-land/src/main/java/org/springblade/land/handler/LocateJobHandler.java
  19. 4 4
      blade-service/blade-land/src/main/java/org/springblade/land/handler/WxJobHandler.java
  20. 3 3
      blade-service/blade-land/src/main/java/org/springblade/land/mapper/OrderMapper.xml
  21. 9 1
      blade-service/blade-land/src/main/java/org/springblade/land/service/IOrderService.java
  22. 4 4
      blade-service/blade-land/src/main/java/org/springblade/land/service/impl/NcpCheckServiceImpl.java
  23. 3 3
      blade-service/blade-land/src/main/java/org/springblade/land/service/impl/OrderFeeServiceImpl.java
  24. 13 0
      blade-service/blade-land/src/main/java/org/springblade/land/service/impl/OrderServiceImpl.java
  25. 6 6
      blade-service/blade-land/src/main/java/org/springblade/land/service/impl/TrackLogServiceImpl.java

+ 18 - 0
blade-service-api/blade-client-api/src/main/java/org/springblade/client/entity/LandDriver.java

@@ -179,4 +179,22 @@ public class LandDriver implements Serializable {
 	@TableField(exist = false)
 	private String postId;
 
+	@TableField(exist = false)
+	private String beginDriveExpire;
+
+	@TableField(exist = false)
+	private String endDriveExpire;
+
+	@TableField(exist = false)
+	private String beginQualifiedExpire;
+
+	@TableField(exist = false)
+	private String endQualifiedExpire;
+
+	@TableField(exist = false)
+	private String beginEscortExpire;
+
+	@TableField(exist = false)
+	private String endEscortExpire;
+
 }

+ 30 - 0
blade-service-api/blade-client-api/src/main/java/org/springblade/client/entity/LandVehicle.java

@@ -239,4 +239,34 @@ public class LandVehicle implements Serializable {
 	@TableField(exist = false)
 	private String tel;
 
+	@TableField(exist = false)
+	private String beginPurchaseDate;
+
+	@TableField(exist = false)
+	private String endPurchaseDate;
+
+	@TableField(exist = false)
+	private String beginRegisterDate;
+
+	@TableField(exist = false)
+	private String endRegisterDate;
+
+	@TableField(exist = false)
+	private String beginScrapDate;
+
+	@TableField(exist = false)
+	private String endScrapDate;
+
+	@TableField(exist = false)
+	private String beginInspectExpired;
+
+	@TableField(exist = false)
+	private String endInspectExpired;
+
+	@TableField(exist = false)
+	private String beginInsuranceExpired;
+
+	@TableField(exist = false)
+	private String endInsuranceExpired;
+
 }

+ 5 - 0
blade-service-api/blade-land-api/pom.xml

@@ -17,6 +17,11 @@
     <dependencies>
         <dependency>
             <groupId>org.springblade</groupId>
+            <artifactId>blade-starter-excel</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springblade</groupId>
             <artifactId>blade-client-api</artifactId>
             <version>2.8.2.RELEASE</version>
             <scope>compile</scope>

+ 26 - 1
blade-service-api/blade-land-api/src/main/java/org/springblade/land/constant/LandConstant.java → blade-service-api/blade-land-api/src/main/java/org/springblade/land/constant/LandConst.java

@@ -1,6 +1,11 @@
 package org.springblade.land.constant;
 
-public interface LandConstant {
+/**
+ * 陆运常量
+ *
+ * @author s
+ */
+public interface LandConst {
 
 	String LAND_CACHE = "blade:land";
 
@@ -16,4 +21,24 @@ public interface LandConstant {
 
 	String LAND_ORDER_FEE = "LAND_ORDER_FEE";
 
+	String ROLE_ADMIN = "管理员";
+
+	String ROLE_KH = "客户";
+
+	String ROLE_PT = "平台";
+
+	String ROLE_CD = "车队";
+
+	String POST_ZJL = "总经理";
+
+	String POST_JL = "业务经理";
+
+	String POST_YW = "业务员";
+
+	String MOLD_JZX = "集装箱";
+
+	String MOLD_SH = "散货";
+
+	String MOLD_TZ = "特种车辆";
+
 }

+ 1 - 1
blade-service-api/blade-land-api/src/main/java/org/springblade/land/constant/WxConstant.java → blade-service-api/blade-land-api/src/main/java/org/springblade/land/constant/WxConst.java

@@ -1,6 +1,6 @@
 package org.springblade.land.constant;
 
-public interface WxConstant {
+public interface WxConst {
 
 	String WECHAT_TOKEN = "wechat:token:";
 

+ 46 - 0
blade-service-api/blade-land-api/src/main/java/org/springblade/land/excel/AcctExcel.java

@@ -0,0 +1,46 @@
+package org.springblade.land.excel;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.format.DateTimeFormat;
+
+import java.io.Serializable;
+import java.util.Date;
+
+public class AcctExcel implements Serializable {
+	private static final long serialVersionUID = 1L;
+
+	@ExcelProperty("客户名称")
+	private String corpName;
+
+	@ExcelProperty("货运日期")
+	@DateTimeFormat("yyyy-MM-dd HH:mm:ss")
+	private Date arrivalTime;
+
+	@ExcelProperty("业务员")
+	private String salesmanName;
+
+	@ExcelProperty("货运地点")
+	private String addressDetail;
+
+	@ExcelProperty("票据号")
+	private String receiptNo;
+
+	@ExcelProperty("提单号")
+	private String billNo;
+
+	@ExcelProperty("场站")
+	private String station;
+
+	@ExcelProperty("尺寸箱型")
+	private String ctnDetail;
+
+	@ExcelProperty("车队")
+	private String fleetName;
+
+	@ExcelProperty("车号")
+	private String plateNo;
+
+	@ExcelProperty("备注")
+	private String remarks;
+
+}

+ 25 - 0
blade-service-api/blade-land-api/src/main/java/org/springblade/land/excel/CdAcctExcel.java

@@ -0,0 +1,25 @@
+package org.springblade.land.excel;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import com.alibaba.excel.annotation.write.style.ContentRowHeight;
+import com.alibaba.excel.annotation.write.style.HeadRowHeight;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.math.BigDecimal;
+
+@Data
+@ColumnWidth(25)
+@HeadRowHeight(20)
+@ContentRowHeight(18)
+@EqualsAndHashCode(callSuper = true)
+public class CdAcctExcel extends AcctExcel {
+
+	@ExcelProperty("运费")
+	private BigDecimal landAmountC;
+
+	@ExcelProperty("杂费")
+	private BigDecimal extraAmountC;
+
+}

+ 25 - 0
blade-service-api/blade-land-api/src/main/java/org/springblade/land/excel/KhAcctExcel.java

@@ -0,0 +1,25 @@
+package org.springblade.land.excel;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import com.alibaba.excel.annotation.write.style.ContentRowHeight;
+import com.alibaba.excel.annotation.write.style.HeadRowHeight;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.math.BigDecimal;
+
+@Data
+@ColumnWidth(25)
+@HeadRowHeight(20)
+@ContentRowHeight(18)
+@EqualsAndHashCode(callSuper = true)
+public class KhAcctExcel extends AcctExcel {
+
+	@ExcelProperty("运费")
+	private BigDecimal landAmountD;
+
+	@ExcelProperty("杂费")
+	private BigDecimal extraAmountD;
+
+}

+ 34 - 0
blade-service-api/blade-land-api/src/main/java/org/springblade/land/excel/PtAcctExcel.java

@@ -0,0 +1,34 @@
+package org.springblade.land.excel;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import com.alibaba.excel.annotation.write.style.ContentRowHeight;
+import com.alibaba.excel.annotation.write.style.HeadRowHeight;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.math.BigDecimal;
+
+@Data
+@ColumnWidth(25)
+@HeadRowHeight(20)
+@ContentRowHeight(18)
+@EqualsAndHashCode(callSuper = true)
+public class PtAcctExcel extends AcctExcel {
+
+	@ExcelProperty("应付运费")
+	private BigDecimal landAmountC;
+
+	@ExcelProperty("应付杂费")
+	private BigDecimal extraAmountC;
+
+	@ExcelProperty("应收运费")
+	private BigDecimal landAmountD;
+
+	@ExcelProperty("应收杂费")
+	private BigDecimal extraAmountD;
+
+	@ExcelProperty("利润")
+	private BigDecimal profit;
+
+}

+ 2 - 0
blade-service-api/blade-land-api/src/main/java/org/springblade/land/vo/OrderAcctVO.java

@@ -42,6 +42,8 @@ public class OrderAcctVO {
 
 	private String ctnDetail;
 
+	private String fleetId;
+
 	private String fleetName;
 
 	private String fleetShortName;

+ 26 - 1
blade-service/blade-client/src/main/java/org/springblade/client/corps/service/impl/CorpsDescServiceImpl.java

@@ -454,7 +454,32 @@ public class CorpsDescServiceImpl extends ServiceImpl<CorpsDescMapper, CorpsDesc
 		CorpsDesc desc = baseMapper.selectById(corpsDesc.getId());
 		desc.setCorpType(desc.getCorpType() + "," + corpsDesc.getCorpType());
 		baseMapper.updateById(desc);
-		saveOrUpdateTypeDesc(corpsDesc, AuthUtil.getUserId(), corpsDesc.getId(), new Date(), desc.getTenantId());
+
+		if (StringUtils.isNotBlank(corpsDesc.getCorpsTypeId())) {
+			List<String> list = Arrays.asList(corpsDesc.getCorpsTypeId().split(","));
+			list.forEach(item -> {
+				Long typeId = Long.valueOf(item);
+				CorpsTypeDesc typeDesc = corpsTypeDescService.getOne(new LambdaQueryWrapper<CorpsTypeDesc>()
+					.eq(CorpsTypeDesc::getCorpId, corpsDesc.getId())
+					.eq(CorpsTypeDesc::getCorpTypeId, typeId)
+				);
+				if (typeDesc != null) {
+					typeDesc.setCorpTypeId(typeId);
+					typeDesc.setCorpId(corpsDesc.getId());
+					typeDesc.setUpdateTime(new Date());
+					typeDesc.setUpdateUser(AuthUtil.getUserId());
+					corpsTypeDescService.updateById(typeDesc);
+				} else {
+					CorpsTypeDesc corpsTypeDesc = new CorpsTypeDesc();
+					corpsTypeDesc.setCorpId(corpsDesc.getId());
+					corpsTypeDesc.setCorpTypeId(typeId);
+					corpsTypeDesc.setCreateUser(AuthUtil.getUserId());
+					corpsTypeDesc.setCreateTime(new Date());
+					corpsTypeDesc.setTenantId(AuthUtil.getTenantId());
+					corpsTypeDescService.save(corpsTypeDesc);
+				}
+			});
+		}
 		return R.success("同步成功");
 	}
 

+ 1 - 16
blade-service/blade-client/src/main/java/org/springblade/client/land/controller/LandDriverController.java

@@ -25,9 +25,7 @@ import io.swagger.annotations.ApiParam;
 import lombok.AllArgsConstructor;
 import org.springblade.client.common.service.ICommonFileService;
 import org.springblade.client.constant.LandConstant;
-import org.springblade.client.corps.service.ICorpsDescService;
 import org.springblade.client.entity.CommonFile;
-import org.springblade.client.entity.CorpsDesc;
 import org.springblade.client.entity.LandDriver;
 import org.springblade.client.land.excel.DriverExcel;
 import org.springblade.client.land.service.ILandDriverService;
@@ -66,8 +64,6 @@ public class LandDriverController extends BladeController {
 
 	private final ICommonFileService commonFileService;
 
-	private final ICorpsDescService corpsDescService;
-
 	/**
 	 * 详情
 	 */
@@ -93,18 +89,7 @@ public class LandDriverController extends BladeController {
 	@ApiOperationSupport(order = 2)
 	@ApiOperation(value = "分页", notes = "传入landDriver")
 	public R<IPage<LandDriver>> list(LandDriver landDriver, Query query) {
-		landDriver.setTenantId(AuthUtil.getTenantId());
-		landDriver.setIsDeleted(0);
-		IPage<LandDriver> pages = landDriverService.page(Condition.getPage(query), Condition.getQueryWrapper(landDriver));
-		pages.getRecords().forEach(record -> {
-			if (ObjectUtil.isNotEmpty(record.getFleetId())) {
-				CorpsDesc fleet = corpsDescService.getById(record.getFleetId());
-				if (ObjectUtil.isNotEmpty(fleet)) {
-					record.setFleetName(fleet.getCname());
-				}
-			}
-		});
-		return R.data(pages);
+		return R.data(landDriverService.getList(landDriver, query));
 	}
 
 	/**

+ 10 - 0
blade-service/blade-client/src/main/java/org/springblade/client/land/service/ILandDriverService.java

@@ -21,6 +21,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import org.springblade.client.entity.LandDriver;
 import org.springblade.client.land.excel.DriverExcel;
 import org.springblade.client.vo.LandDriverVO;
+import org.springblade.core.mp.support.Query;
 import org.springblade.core.tool.api.R;
 
 import java.util.List;
@@ -43,6 +44,15 @@ public interface ILandDriverService extends IService<LandDriver> {
 	IPage<LandDriverVO> selectLandDriverPage(IPage<LandDriverVO> page, LandDriverVO landDriver);
 
 	/**
+	 * 列表 分页
+	 *
+	 * @param driver
+	 * @param query
+	 * @return
+	 */
+	IPage<LandDriver> getList(LandDriver driver, Query query);
+
+	/**
 	 * 保存司机
 	 *
 	 * @param driver

+ 32 - 0
blade-service/blade-client/src/main/java/org/springblade/client/land/service/impl/LandDriverServiceImpl.java

@@ -32,6 +32,8 @@ import org.springblade.client.land.mapper.LandDriverMapper;
 import org.springblade.client.land.service.ILandDriverService;
 import org.springblade.client.vo.LandDriverVO;
 import org.springblade.core.log.exception.ServiceException;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.BeanUtil;
@@ -67,6 +69,36 @@ public class LandDriverServiceImpl extends ServiceImpl<LandDriverMapper, LandDri
 	}
 
 	@Override
+	public IPage<LandDriver> getList(LandDriver driver, Query query) {
+		LambdaQueryWrapper<LandDriver> wrapper = new LambdaQueryWrapper<>();
+		wrapper.eq(ObjectUtil.isNotEmpty(driver.getFleetId()), LandDriver::getFleetId, driver.getFleetId())
+			.eq(ObjectUtil.isNotEmpty(driver.getSex()), LandDriver::getSex, driver.getSex())
+			.like(StringUtil.isNotBlank(driver.getName()), LandDriver::getName, driver.getName())
+			.like(StringUtil.isNotBlank(driver.getIdCard()), LandDriver::getIdCard, driver.getIdCard())
+			.like(StringUtil.isNotBlank(driver.getPermitModel()), LandDriver::getPermitModel, driver.getPermitModel())
+			.like(StringUtil.isNotBlank(driver.getTel()), LandDriver::getTel, driver.getTel())
+			.like(StringUtil.isNotBlank(driver.getQualifiedNo()), LandDriver::getQualifiedNo, driver.getQualifiedNo())
+			.like(StringUtil.isNotBlank(driver.getEscortNo()), LandDriver::getEscortNo, driver.getEscortNo())
+			.eq(StringUtil.isNotBlank(driver.getCreditRating()), LandDriver::getCreditRating, driver.getCreditRating())
+			.between(StringUtil.isNotBlank(driver.getBeginDriveExpire()) && StringUtil.isNotBlank(driver.getEndDriveExpire()), LandDriver::getDriveExpire, driver.getBeginDriveExpire(), driver.getEndDriveExpire())
+			.between(StringUtil.isNotBlank(driver.getBeginQualifiedExpire()) && StringUtil.isNotBlank(driver.getEndQualifiedExpire()), LandDriver::getQualifiedExpire, driver.getBeginQualifiedExpire(), driver.getEndQualifiedExpire())
+			.between(StringUtil.isNotBlank(driver.getBeginEscortExpire()) && StringUtil.isNotBlank(driver.getEndEscortExpire()), LandDriver::getEscortExpire, driver.getBeginEscortExpire(), driver.getEndEscortExpire())
+			.eq(LandDriver::getTenantId, AuthUtil.getTenantId())
+			.eq(LandDriver::getIsDeleted, 0);
+
+		IPage<LandDriver> pages = baseMapper.selectPage(Condition.getPage(query), wrapper);
+		pages.getRecords().forEach(record -> {
+			if (ObjectUtil.isNotEmpty(record.getFleetId())) {
+				CorpsDesc fleet = corpsDescMapper.selectById(record.getFleetId());
+				if (ObjectUtil.isNotEmpty(fleet)) {
+					record.setFleetName(fleet.getCname());
+				}
+			}
+		});
+		return pages;
+	}
+
+	@Override
 	@Transactional(rollbackFor = Exception.class)
 	public boolean saveDriver(LandDriver driver) {
 		if (ObjectUtil.isEmpty(driver.getId())) {

+ 6 - 0
blade-service/blade-client/src/main/java/org/springblade/client/land/service/impl/LandVehicleServiceImpl.java

@@ -83,6 +83,12 @@ public class LandVehicleServiceImpl extends ServiceImpl<LandVehicleMapper, LandV
 			.like(StringUtil.isNotBlank(vehicle.getTrailerModel()), LandVehicle::getTrailerModel, vehicle.getTrailerModel())
 			.like(StringUtil.isNotBlank(vehicle.getTrailerVin()), LandVehicle::getTrailerVin, vehicle.getTrailerVin())
 			.like(StringUtil.isNotBlank(vehicle.getEngineModel()), LandVehicle::getEngineModel, vehicle.getEngineModel())
+			.eq(ObjectUtil.isNotEmpty(vehicle.getAllowPassenger()), LandVehicle::getAllowPassenger, vehicle.getAllowPassenger())
+			.between(StringUtil.isNotBlank(vehicle.getBeginPurchaseDate()) && StringUtil.isNotBlank(vehicle.getEndPurchaseDate()), LandVehicle::getPurchaseDate, vehicle.getBeginPurchaseDate(), vehicle.getEndPurchaseDate())
+			.between(StringUtil.isNotBlank(vehicle.getBeginRegisterDate()) && StringUtil.isNotBlank(vehicle.getEndRegisterDate()), LandVehicle::getRegisterDate, vehicle.getBeginRegisterDate(), vehicle.getEndRegisterDate())
+			.between(StringUtil.isNotBlank(vehicle.getBeginScrapDate()) && StringUtil.isNotBlank(vehicle.getEndScrapDate()), LandVehicle::getScrapDate, vehicle.getBeginScrapDate(), vehicle.getEndScrapDate())
+			.between(StringUtil.isNotBlank(vehicle.getBeginInspectExpired()) && StringUtil.isNotBlank(vehicle.getEndInspectExpired()), LandVehicle::getInspectExpired, vehicle.getBeginInspectExpired(), vehicle.getEndInspectExpired())
+			.between(StringUtil.isNotBlank(vehicle.getBeginInsuranceExpired()) && StringUtil.isNotBlank(vehicle.getEndInsuranceExpired()), LandVehicle::getInsuranceExpired, vehicle.getBeginInsuranceExpired(), vehicle.getEndInsuranceExpired())
 			.eq(LandVehicle::getTenantId, AuthUtil.getTenantId())
 			.eq(LandVehicle::getIsDeleted, 0);
 

+ 47 - 0
blade-service/blade-land/src/main/java/org/springblade/land/controller/OrderController.java

@@ -17,23 +17,34 @@
 package org.springblade.land.controller;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
 import lombok.AllArgsConstructor;
 import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.excel.util.ExcelUtil;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.mp.support.Query;
+import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.BeanUtil;
 import org.springblade.core.tool.utils.Func;
+import org.springblade.land.constant.LandConst;
 import org.springblade.land.entity.Order;
+import org.springblade.land.excel.CdAcctExcel;
+import org.springblade.land.excel.KhAcctExcel;
+import org.springblade.land.excel.PtAcctExcel;
 import org.springblade.land.service.IOrderService;
 import org.springblade.land.vo.OrderAcctVO;
 import org.springblade.land.vo.OrderVO;
 import org.springframework.web.bind.annotation.*;
 
+import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
+import java.util.ArrayList;
+import java.util.List;
 
 /**
  * 陆运订单表 控制器
@@ -112,6 +123,14 @@ public class OrderController extends BladeController {
 	}
 
 	/**
+	 * 变更许可
+	 */
+	@GetMapping("/valid-change")
+	public R validChange(Long id) {
+		return R.status(orderService.validChange(id));
+	}
+
+	/**
 	 * 变更 陆运订单表
 	 */
 	@PostMapping("/change")
@@ -162,4 +181,32 @@ public class OrderController extends BladeController {
 		return R.status(orderService.removeOrder(Func.toLongList(ids)));
 	}
 
+	@GetMapping("/acct-export")
+	public void acctExport(OrderAcctVO acctVO, HttpServletResponse response) {
+		List<OrderAcctVO> acct = orderService.getAcctNoPage(acctVO);
+
+		String role = AuthUtil.getUserRole();
+		if (role.contains(LandConst.ROLE_KH)) {
+			List<KhAcctExcel> list = new ArrayList<>();
+			if (CollectionUtils.isNotEmpty(acct)) {
+				list = BeanUtil.copy(acct, KhAcctExcel.class);
+			}
+			ExcelUtil.export(response, "陆运台账", "陆运台账", list, KhAcctExcel.class);
+		} else if (role.contains(LandConst.ROLE_PT)) {
+			List<PtAcctExcel> list = new ArrayList<>();
+			if (CollectionUtils.isNotEmpty(acct)) {
+				list = BeanUtil.copy(acct, PtAcctExcel.class);
+			}
+			ExcelUtil.export(response, "陆运台账", "陆运台账", list, PtAcctExcel.class);
+		} else if (role.contains(LandConst.ROLE_CD)) {
+			List<CdAcctExcel> list = new ArrayList<>();
+			if (CollectionUtils.isNotEmpty(acct)) {
+				list = BeanUtil.copy(acct, CdAcctExcel.class);
+			}
+			ExcelUtil.export(response, "陆运台账", "陆运台账", list, CdAcctExcel.class);
+		} else {
+			throw new RuntimeException("用户无导出权限");
+		}
+	}
+
 }

+ 11 - 11
blade-service/blade-land/src/main/java/org/springblade/land/controller/OrderIndexController.java

@@ -29,6 +29,7 @@ import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.ObjectUtil;
 import org.springblade.core.tool.utils.StringUtil;
+import org.springblade.land.constant.LandConst;
 import org.springblade.land.entity.Order;
 import org.springblade.land.entity.OrderItem;
 import org.springblade.land.service.IOrderItemService;
@@ -154,9 +155,9 @@ public class OrderIndexController extends BladeController {
 
 		// 获取角色
 		String userRole = AuthUtil.getUserRole();
-		if (userRole.contains("总经理") || userRole.contains("管理员")) {
+		if (userRole.contains(LandConst.POST_ZJL) || userRole.contains(LandConst.ROLE_ADMIN)) {
 
-		} else if (userRole.contains("部门经理")) {
+		} else if (userRole.contains(LandConst.POST_JL)) {
 			String deptId = AuthUtil.getDeptId();
 			if (StringUtil.isNotBlank(deptId)) {
 				wrapper.in(OrderItem::getSalesmanDept, Arrays.asList(deptId.split(",")));
@@ -166,11 +167,11 @@ public class OrderIndexController extends BladeController {
 		}
 
 		if (mold == 1) {
-			wrapper.eq(OrderItem::getShippingMode, "集装箱");
+			wrapper.eq(OrderItem::getShippingMode, LandConst.MOLD_JZX);
 		} else if (mold == 2) {
-			wrapper.eq(OrderItem::getShippingMode, "散货");
+			wrapper.eq(OrderItem::getShippingMode, LandConst.MOLD_SH);
 		} else if (mold == 3) {
-			wrapper.eq(OrderItem::getShippingMode, "特种车辆");
+			wrapper.eq(OrderItem::getShippingMode, LandConst.MOLD_TZ);
 		}
 
 		List<OrderItem> itemList = orderItemService.list(wrapper);
@@ -226,10 +227,9 @@ public class OrderIndexController extends BladeController {
 
 		// 获取角色
 		String userRole = AuthUtil.getUserRole();
-		System.out.println("角色::" + userRole);
-		if (userRole.contains("总经理") || userRole.contains("管理员")) {
+		if (userRole.contains(LandConst.POST_ZJL) || userRole.contains(LandConst.ROLE_ADMIN)) {
 
-		} else if (userRole.contains("部门经理")) {
+		} else if (userRole.contains(LandConst.POST_JL)) {
 			String deptId = AuthUtil.getDeptId();
 			if (StringUtil.isNotBlank(deptId)) {
 				acctVO.setSalesmanDeptList(Arrays.stream(deptId.split(",")).map(s -> Long.parseLong(s.trim())).collect(Collectors.toList()));
@@ -239,11 +239,11 @@ public class OrderIndexController extends BladeController {
 		}
 
 		if (mold == 1) {
-			acctVO.setShippingMode("集装箱");
+			acctVO.setShippingMode(LandConst.MOLD_JZX);
 		} else if (mold == 2) {
-			acctVO.setShippingMode("散货");
+			acctVO.setShippingMode(LandConst.MOLD_SH);
 		} else if (mold == 3) {
-			acctVO.setShippingMode("特种车辆");
+			acctVO.setShippingMode(LandConst.MOLD_TZ);
 		}
 
 		return R.data(orderService.getAcctNoPage(acctVO));

+ 4 - 4
blade-service/blade-land/src/main/java/org/springblade/land/handler/LocateJobHandler.java

@@ -8,7 +8,7 @@ import com.xxl.job.core.handler.annotation.XxlJob;
 import com.xxl.job.core.log.XxlJobLogger;
 import lombok.AllArgsConstructor;
 import org.springblade.core.cache.utils.CacheUtil;
-import org.springblade.land.constant.LandConstant;
+import org.springblade.land.constant.LandConst;
 import org.springblade.land.entity.TrackKey;
 import org.springframework.stereotype.Component;
 
@@ -47,10 +47,10 @@ public class LocateJobHandler {
 						map.put("cid", cid);
 
 						DataExchangeService des = new DataExchangeService(5000, 8000);
-						String res = des.postHttps(LandConstant.TRACK_LOGIN_URL, map);
+						String res = des.postHttps(LandConst.TRACK_LOGIN_URL, map);
 
 						JSONObject result = JSON.parseObject(res);
-						if (!LandConstant.TRACK_REQ_SUCCESS.equals(result.getString("status"))) {
+						if (!LandConst.TRACK_REQ_SUCCESS.equals(result.getString("status"))) {
 							throw new RuntimeException("登录失败:" + result.getString("status"));
 						}
 						String token = result.getString("result");
@@ -59,7 +59,7 @@ public class LocateJobHandler {
 						key.setToken(token);
 						key.setCid(cid);
 						key.setSrt(srt);
-						CacheUtil.put(LandConstant.LAND_CACHE, LandConstant.TRACK_TOKEN, tenantId, key);
+						CacheUtil.put(LandConst.LAND_CACHE, LandConst.TRACK_TOKEN, tenantId, key);
 					} catch (Exception e) {
 						XxlJobLogger.log(e);
 					}

+ 4 - 4
blade-service/blade-land/src/main/java/org/springblade/land/handler/WxJobHandler.java

@@ -9,8 +9,8 @@ import lombok.AllArgsConstructor;
 import org.springblade.core.cache.utils.CacheUtil;
 import org.springblade.core.http.HttpRequest;
 import org.springblade.core.tool.utils.StringUtil;
-import org.springblade.land.constant.LandConstant;
-import org.springblade.land.constant.WxConstant;
+import org.springblade.land.constant.LandConst;
+import org.springblade.land.constant.WxConst;
 import org.springframework.stereotype.Component;
 
 import java.util.List;
@@ -45,13 +45,13 @@ public class WxJobHandler {
 								XxlJobLogger.log(value);
 								JSONObject result = JSON.parseObject(value);
 								String errCode = result.getString("errcode");
-								if (StringUtil.isNotBlank(errCode) && !WxConstant.REQ_SUCCESS.equals(errCode)) {
+								if (StringUtil.isNotBlank(errCode) && !WxConst.REQ_SUCCESS.equals(errCode)) {
 									throw new RuntimeException("获取token失败:" + result.getString("errmsg"));
 								}
 								return result.getString("access_token");
 							});
 
-						CacheUtil.put(LandConstant.LAND_CACHE, WxConstant.WECHAT_TOKEN, tenantId, token);
+						CacheUtil.put(LandConst.LAND_CACHE, WxConst.WECHAT_TOKEN, tenantId, token);
 					} catch (Exception e) {
 						XxlJobLogger.log(e);
 					}

+ 3 - 3
blade-service/blade-land/src/main/java/org/springblade/land/mapper/OrderMapper.xml

@@ -34,7 +34,7 @@
                t1.receipt_no as receiptNo,
                t1.bill_no as billNo,
                t1.station,
-               concat(t2.ctn_type, '×', sum(t2.ctn_quantity)) as ctnDetail,
+               t2.ctn_type as ctnDetail,
                t4.cname as fleetName,
                t4.short_name as fleetShortName,
                t2.plate_no,
@@ -53,13 +53,13 @@
             and t1.is_deleted = 0
             <if test="acct.corpName != null and acct.corpName != ''">and t3.cname like concat('%', #{acct.corpName}, '%')</if>
             <if test="acct.corpShortName != null and acct.corpShortName != ''">and t3.short_name like concat('%', #{acct.corpShortName}, '%')</if>
-            <if test="acct.fleetName != null and acct.fleetName != ''">and t4.cname like concat('%', #{acct.fleetName}, '%')</if>
-            <if test="acct.fleetShortName != null and acct.fleetShortName != ''">and t4.short_name like concat('%', #{acct.fleetShortName}, '%')</if>
 
+            <if test="acct.fleetId != null">and t2.fleet_id = #{acct.fleetId}</if>
             <if test="acct.addressDetail != null and acct.addressDetail != ''">and t1.address_detail like concat('%', #{acct.addressDetail}, '%')</if>
             <if test="acct.receiptNo != null and acct.receiptNo != ''">and t1.receipt_no like concat('%', #{acct.receiptNo}, '%')</if>
             <if test="acct.billNo != null and acct.billNo != ''">and t1.bill_no like concat('%', #{acct.billNo}, '%')</if>
             <if test="acct.plateNo != null and acct.plateNo != ''">and t2.plate_no like concat('%', #{acct.plateNo}, '%')</if>
+            <if test="acct.ctnDetail != null and acct.ctnDetail != ''">and t2.ctn_type like concat('%', #{acct.ctnDetail}, '%')</if>
 
             <if test="acct.beginArrivalTime != null and acct.beginArrivalTime != ''">and t2.arrival_time &gt;= #{acct.beginArrivalTime}</if>
             <if test="acct.endArrivalTime != null and acct.endArrivalTime != ''">and t2.arrival_time &lt;= #{acct.endArrivalTime}</if>

+ 9 - 1
blade-service/blade-land/src/main/java/org/springblade/land/service/IOrderService.java

@@ -95,7 +95,15 @@ public interface IOrderService extends IService<Order> {
 	Long saveOrder(Order order);
 
 	/**
-	 * 保存订单
+	 * 变更许可
+	 *
+	 * @param id
+	 * @return
+	 */
+	boolean validChange(Long id);
+
+	/**
+	 * 变更订单
 	 *
 	 * @param order
 	 * @return

+ 4 - 4
blade-service/blade-land/src/main/java/org/springblade/land/service/impl/NcpCheckServiceImpl.java

@@ -33,8 +33,8 @@ import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.ObjectUtil;
 import org.springblade.core.tool.utils.StringUtil;
-import org.springblade.land.constant.LandConstant;
-import org.springblade.land.constant.WxConstant;
+import org.springblade.land.constant.LandConst;
+import org.springblade.land.constant.WxConst;
 import org.springblade.land.entity.NcpCheck;
 import org.springblade.land.mapper.NcpCheckMapper;
 import org.springblade.land.service.INcpCheckService;
@@ -110,7 +110,7 @@ public class NcpCheckServiceImpl extends ServiceImpl<NcpCheckMapper, NcpCheck> i
 
 	@Override
 	public String phone(NcpCheck ncpCheck) {
-		String token = CacheUtil.get(LandConstant.LAND_CACHE, WxConstant.WECHAT_TOKEN, ncpCheck.getTenantId(), String.class);
+		String token = CacheUtil.get(LandConst.LAND_CACHE, WxConst.WECHAT_TOKEN, ncpCheck.getTenantId(), String.class);
 		if (StringUtil.isBlank(token)) {
 			throw new RuntimeException("获取请求token失败");
 		}
@@ -124,7 +124,7 @@ public class NcpCheckServiceImpl extends ServiceImpl<NcpCheckMapper, NcpCheck> i
 			.onSuccess(responseSpec -> {
 				JSONObject result = JSON.parseObject(responseSpec.asString());
 				String errCode = result.getString("errcode");
-				if (StringUtil.isNotBlank(errCode) && !WxConstant.REQ_SUCCESS.equals(errCode)) {
+				if (StringUtil.isNotBlank(errCode) && !WxConst.REQ_SUCCESS.equals(errCode)) {
 					throw new RuntimeException(result.getString("errmsg"));
 				}
 

+ 3 - 3
blade-service/blade-land/src/main/java/org/springblade/land/service/impl/OrderFeeServiceImpl.java

@@ -30,7 +30,7 @@ import org.springblade.core.mp.support.Condition;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.ObjectUtil;
-import org.springblade.land.constant.LandConstant;
+import org.springblade.land.constant.LandConst;
 import org.springblade.land.entity.OrderFee;
 import org.springblade.land.mapper.OrderFeeMapper;
 import org.springblade.land.service.IOrderFeeService;
@@ -124,7 +124,7 @@ public class OrderFeeServiceImpl extends ServiceImpl<OrderFeeMapper, OrderFee> i
 		fileList.forEach(file -> {
 			if (ObjectUtil.isEmpty(file.getId())) {
 				file.setPid(orderFee.getId());
-				file.setSource(LandConstant.LAND_ORDER_FEE);
+				file.setSource(LandConst.LAND_ORDER_FEE);
 			}
 		});
 		commonFileClient.saveList(fileList);
@@ -133,7 +133,7 @@ public class OrderFeeServiceImpl extends ServiceImpl<OrderFeeMapper, OrderFee> i
 
 	@Override
 	public List<CommonFile> fileList(Long id) {
-		R<List<CommonFile>> fileList = commonFileClient.getList(id, LandConstant.LAND_ORDER_FEE);
+		R<List<CommonFile>> fileList = commonFileClient.getList(id, LandConst.LAND_ORDER_FEE);
 		if (fileList.isSuccess() && fileList.getData() != null) {
 			return fileList.getData();
 		}

+ 13 - 0
blade-service/blade-land/src/main/java/org/springblade/land/service/impl/OrderServiceImpl.java

@@ -479,6 +479,19 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 	}
 
 	@Override
+	public boolean validChange(Long id) {
+		Integer count = orderItemMapper.selectCount(new LambdaQueryWrapper<OrderItem>()
+			.eq(OrderItem::getOrderId, id)
+			.eq(OrderItem::getStatus, 4)
+			.eq(OrderItem::getKind, 2)
+			.eq(OrderItem::getTenantId, AuthUtil.getTenantId())
+			.eq(OrderItem::getIsDeleted, 0)
+		);
+
+		return count <= 0;
+	}
+
+	@Override
 	@Transactional(rollbackFor = Exception.class)
 	@GlobalTransactional(rollbackFor = Exception.class)
 	public Long changeOrder(Order order) {

+ 6 - 6
blade-service/blade-land/src/main/java/org/springblade/land/service/impl/TrackLogServiceImpl.java

@@ -26,7 +26,7 @@ import org.springblade.core.cache.utils.CacheUtil;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.utils.DateUtil;
 import org.springblade.core.tool.utils.ObjectUtil;
-import org.springblade.land.constant.LandConstant;
+import org.springblade.land.constant.LandConst;
 import org.springblade.land.entity.TrackKey;
 import org.springblade.land.entity.TrackLog;
 import org.springblade.land.mapper.TrackLogMapper;
@@ -57,7 +57,7 @@ public class TrackLogServiceImpl extends ServiceImpl<TrackLogMapper, TrackLog> i
 	@Override
 	@Transactional(rollbackFor = Exception.class)
 	public List<Double> location(TrackLog trackLog) {
-		TrackKey key = CacheUtil.get(LandConstant.LAND_CACHE, LandConstant.TRACK_TOKEN, AuthUtil.getTenantId(), TrackKey.class, false);
+		TrackKey key = CacheUtil.get(LandConst.LAND_CACHE, LandConst.TRACK_TOKEN, AuthUtil.getTenantId(), TrackKey.class, false);
 		if (ObjectUtil.isEmpty(key)) {
 			throw new RuntimeException("获取请求token失败");
 		}
@@ -72,7 +72,7 @@ public class TrackLogServiceImpl extends ServiceImpl<TrackLogMapper, TrackLog> i
 			map.put("vco", "2");
 
 			DataExchangeService des = new DataExchangeService(5000, 8000);
-			String res = des.postHttps(LandConstant.TRACK_LOCATION_URL, map);
+			String res = des.postHttps(LandConst.TRACK_LOCATION_URL, map);
 			System.out.println("RES::" + res);
 			trackLog.setDetail(res);
 
@@ -98,7 +98,7 @@ public class TrackLogServiceImpl extends ServiceImpl<TrackLogMapper, TrackLog> i
 	@Override
 	@Transactional(rollbackFor = Exception.class)
 	public List<List<Double>> track(TrackLog trackLog) {
-		TrackKey key = CacheUtil.get(LandConstant.LAND_CACHE, LandConstant.TRACK_TOKEN, AuthUtil.getTenantId(), TrackKey.class, false);
+		TrackKey key = CacheUtil.get(LandConst.LAND_CACHE, LandConst.TRACK_TOKEN, AuthUtil.getTenantId(), TrackKey.class, false);
 		if (ObjectUtil.isEmpty(key)) {
 			throw new RuntimeException("获取请求token失败");
 		}
@@ -115,7 +115,7 @@ public class TrackLogServiceImpl extends ServiceImpl<TrackLogMapper, TrackLog> i
 			map.put("qryEtm", DateUtil.formatDateTime(new Date()));
 
 			DataExchangeService des = new DataExchangeService(5000, 8000);
-			String res = des.postHttps(LandConstant.TRACK_TRACK_URL, map);
+			String res = des.postHttps(LandConst.TRACK_TRACK_URL, map);
 			System.out.println("RES::" + res);
 			trackLog.setDetail(res);
 
@@ -145,7 +145,7 @@ public class TrackLogServiceImpl extends ServiceImpl<TrackLogMapper, TrackLog> i
 
 	private static JSONObject getData(String res) throws Exception {
 		JSONObject result = JSON.parseObject(res);
-		if (!LandConstant.TRACK_REQ_SUCCESS.equals(result.getString("status"))) {
+		if (!LandConst.TRACK_REQ_SUCCESS.equals(result.getString("status"))) {
 			throw new Exception("获取数据失败:" + result.getString("status"));
 		}
 		return result;