Просмотр исходного кода

Merge remote-tracking branch 'origin/dev' into dev

lijunping 3 лет назад
Родитель
Сommit
421ae607c8
45 измененных файлов с 498 добавлено и 176 удалено
  1. 9 1
      blade-service-api/blade-client-api/src/main/java/org/springblade/client/feign/ICorpsDescClient.java
  2. 5 0
      blade-service-api/blade-land-api/src/main/java/org/springblade/land/entity/OrderFee.java
  3. 5 0
      blade-service-api/blade-land-api/src/main/java/org/springblade/land/entity/OrderItem.java
  4. 12 15
      blade-service-api/blade-land-api/src/main/java/org/springblade/land/excel/CdAcctExcel.java
  5. 10 10
      blade-service-api/blade-land-api/src/main/java/org/springblade/land/excel/KhAcctExcel.java
  6. 19 13
      blade-service-api/blade-land-api/src/main/java/org/springblade/land/excel/PtAcctExcel.java
  7. 3 0
      blade-service-api/blade-mocha-item-api/src/main/java/org/springblade/mocha/entity/SalesPolicyItem.java
  8. 5 0
      blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/entity/OrderItems.java
  9. 5 0
      blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/vo/OrderVO.java
  10. 3 0
      blade-service-api/blade-user-api/src/main/java/org/springblade/system/user/vo/UserVO.java
  11. 14 0
      blade-service/blade-client/src/main/java/org/springblade/client/corps/feign/CorpsDescClient.java
  12. 10 0
      blade-service/blade-client/src/main/java/org/springblade/client/corps/mapper/CorpsAddrMapper.java
  13. 7 0
      blade-service/blade-client/src/main/java/org/springblade/client/corps/mapper/CorpsAddrMapper.xml
  14. 11 0
      blade-service/blade-client/src/main/java/org/springblade/client/corps/mapper/CorpsBankMapper.java
  15. 7 0
      blade-service/blade-client/src/main/java/org/springblade/client/corps/mapper/CorpsBankMapper.xml
  16. 10 0
      blade-service/blade-client/src/main/java/org/springblade/client/corps/service/ICorpsAddrService.java
  17. 10 0
      blade-service/blade-client/src/main/java/org/springblade/client/corps/service/ICorpsBankService.java
  18. 7 0
      blade-service/blade-client/src/main/java/org/springblade/client/corps/service/impl/CorpsAddrServiceImpl.java
  19. 7 0
      blade-service/blade-client/src/main/java/org/springblade/client/corps/service/impl/CorpsBankServiceImpl.java
  20. 4 0
      blade-service/blade-client/src/main/java/org/springblade/client/serial/mapper/SerialMapper.java
  21. 54 0
      blade-service/blade-client/src/main/java/org/springblade/client/serial/mapper/SerialMapper.xml
  22. 4 4
      blade-service/blade-client/src/main/java/org/springblade/client/serial/service/impl/SerialServiceImpl.java
  23. 15 4
      blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/controller/DeliveryController.java
  24. 1 1
      blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/service/impl/DeliveryServiceImpl.java
  25. 16 0
      blade-service/blade-land/src/main/java/org/springblade/land/controller/OrderController.java
  26. 4 4
      blade-service/blade-land/src/main/java/org/springblade/land/controller/OrderFeeController.java
  27. 6 0
      blade-service/blade-land/src/main/java/org/springblade/land/mapper/OrderMapper.xml
  28. 4 4
      blade-service/blade-land/src/main/java/org/springblade/land/service/IOrderFeeService.java
  29. 17 0
      blade-service/blade-land/src/main/java/org/springblade/land/service/IOrderService.java
  30. 39 17
      blade-service/blade-land/src/main/java/org/springblade/land/service/impl/OrderFeeServiceImpl.java
  31. 30 40
      blade-service/blade-land/src/main/java/org/springblade/land/service/impl/OrderItemServiceImpl.java
  32. 26 19
      blade-service/blade-land/src/main/java/org/springblade/land/service/impl/OrderServiceImpl.java
  33. 2 0
      blade-service/blade-mocha-item/src/main/java/org/springblade/mocha/service/impl/SalesPolicyServiceImpl.java
  34. 5 0
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/controller/OrderController.java
  35. 9 0
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/mapper/OrderMapper.java
  36. 8 0
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/mapper/OrderMapper.xml
  37. 1 1
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/IOrderItemsService.java
  38. 27 25
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderItemsServiceImpl.java
  39. 11 2
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderServiceImpl.java
  40. 2 2
      blade-service/blade-stock/src/main/java/org/springblade/stock/controller/StockGoodsController.java
  41. 12 3
      blade-service/blade-user/src/main/java/org/springblade/system/user/controller/UserController.java
  42. 3 2
      blade-service/blade-user/src/main/java/org/springblade/system/user/service/impl/UserServiceImpl.java
  43. 5 1
      blade-service/trade-purchase/src/main/java/com/trade/purchase/office/service/impl/StockServiceImpl.java
  44. 6 0
      blade-service/trade-purchase/src/main/java/com/trade/purchase/order/controller/PurchaseOrderController.java
  45. 28 8
      blade-service/trade-purchase/src/main/java/com/trade/purchase/order/service/impl/PurchaseServiceImpl.java

+ 9 - 1
blade-service-api/blade-client-api/src/main/java/org/springblade/client/feign/ICorpsDescClient.java

@@ -1,5 +1,6 @@
 package org.springblade.client.feign;
 
+import org.springblade.client.entity.CorpsAddr;
 import org.springblade.client.entity.CorpsBank;
 import org.springblade.client.entity.CorpsDesc;
 import org.springblade.client.vo.CorpsDescVO;
@@ -40,7 +41,8 @@ public interface ICorpsDescClient {
 	String GET_AGENT_CODE = API_PREFIX + "/getAgentCode";
 	String GET_CORP = API_PREFIX + "getCorp";
 	String GET_CORP_ID = API_PREFIX + "getCorpId";
-
+	String GRT_CORPS_ADDR = API_PREFIX + "/getCorpsAddr";
+	String GRT_CORPS_BANK = API_PREFIX + "/getCorpsBank";
 	@PostMapping(CORPS_UPDATE)
 	R corpsUpdate(@RequestBody CorpsDesc corpsDesc);
 
@@ -156,4 +158,10 @@ public interface ICorpsDescClient {
 	 */
 	@PostMapping(GET_CORP)
 	List<CorpsDesc> getCorp(@RequestBody CorpsDesc corpsDesc);
+	@GetMapping(GRT_CORPS_ADDR)
+	List<CorpsAddr> getCorpsAddr(@RequestParam("pid") Long pid,
+								 @RequestParam("tenantId")String tenantId);
+	@GetMapping(GRT_CORPS_BANK)
+	List<CorpsBank> getCorpsBank(@RequestParam("pid") Long pid,
+								 @RequestParam("tenantId")String tenantId);
 }

+ 5 - 0
blade-service-api/blade-land-api/src/main/java/org/springblade/land/entity/OrderFee.java

@@ -56,6 +56,11 @@ public class OrderFee implements Serializable {
 	@ApiModelProperty(value = "订单ID")
 	private Long orderId;
 	/**
+	 * 明细ID
+	 */
+	@ApiModelProperty(value = "明细ID")
+	private Long itemId;
+	/**
 	 * 客户ID
 	 */
 	@ApiModelProperty(value = "客户ID")

+ 5 - 0
blade-service-api/blade-land-api/src/main/java/org/springblade/land/entity/OrderItem.java

@@ -294,6 +294,11 @@ public class OrderItem implements Serializable {
 	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
 	private Date realArrivalTime;
 	/**
+	 * 杂费确认状态
+	 */
+	@ApiModelProperty(value = "杂费确认状态")
+	private Integer confirmStatus;
+	/**
 	 * 租户
 	 */
 	@ApiModelProperty(value = "租户")

+ 12 - 15
blade-service-api/blade-land-api/src/main/java/org/springblade/land/excel/CdAcctExcel.java

@@ -19,18 +19,15 @@ public class CdAcctExcel implements Serializable {
 
 	private static final long serialVersionUID = 1L;
 
-	@ExcelProperty("客户名称")
-	private String corpName;
-
-	@ExcelProperty("客户简称")
-	private String corpShortName;
-
 	@ExcelProperty("货运日期")
-	@DateTimeFormat("yyyy-MM-dd HH:mm:ss")
+	@DateTimeFormat("yyyy-MM-dd HH:mm")
 	private Date arrivalTime;
 
-	@ExcelProperty("业务员")
-	private String salesmanName;
+	@ExcelProperty("物流运输")
+	private String dispatchDeptName;
+
+	@ExcelProperty("运输调度")
+	private String dispatcherName;
 
 	@ExcelProperty("货运地点")
 	private String addressDetail;
@@ -44,24 +41,24 @@ public class CdAcctExcel implements Serializable {
 	@ExcelProperty("场站")
 	private String station;
 
-	@ExcelProperty("尺寸箱型")
+	@ExcelProperty("箱型箱量")
 	private String ctnDetail;
 
 	@ExcelProperty("车队")
-	private String fleetName;
-
-	@ExcelProperty("车队简称")
 	private String fleetShortName;
 
 	@ExcelProperty("车号")
 	private String plateNo;
 
-	@ExcelProperty("运费")
+	@ExcelProperty("应付运费")
 	private BigDecimal landAmountC;
 
-	@ExcelProperty("杂费")
+	@ExcelProperty("应付杂费")
 	private BigDecimal extraAmountC;
 
+	@ExcelProperty("应付杂费明细")
+	private String extraAmountItemC;
+
 	@ExcelProperty("备注")
 	private String remarks;
 

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

@@ -20,18 +20,18 @@ public class KhAcctExcel implements Serializable {
 	private static final long serialVersionUID = 1L;
 
 	@ExcelProperty("客户名称")
-	private String corpName;
-
-	@ExcelProperty("客户简称")
 	private String corpShortName;
 
 	@ExcelProperty("货运日期")
-	@DateTimeFormat("yyyy-MM-dd HH:mm:ss")
+	@DateTimeFormat("yyyy-MM-dd HH:mm")
 	private Date arrivalTime;
 
 	@ExcelProperty("业务员")
 	private String salesmanName;
 
+	@ExcelProperty("物流运输")
+	private String dispatchDeptName;
+
 	@ExcelProperty("货运地点")
 	private String addressDetail;
 
@@ -44,24 +44,24 @@ public class KhAcctExcel implements Serializable {
 	@ExcelProperty("场站")
 	private String station;
 
-	@ExcelProperty("尺寸箱型")
+	@ExcelProperty("箱型箱量")
 	private String ctnDetail;
 
 	@ExcelProperty("车队")
-	private String fleetName;
-
-	@ExcelProperty("车队简称")
 	private String fleetShortName;
 
 	@ExcelProperty("车号")
 	private String plateNo;
 
-	@ExcelProperty("运费")
+	@ExcelProperty("应收运费")
 	private BigDecimal landAmountD;
 
-	@ExcelProperty("杂费")
+	@ExcelProperty("应收杂费")
 	private BigDecimal extraAmountD;
 
+	@ExcelProperty("应收杂费明细")
+	private String extraAmountItemD;
+
 	@ExcelProperty("备注")
 	private String remarks;
 

+ 19 - 13
blade-service-api/blade-land-api/src/main/java/org/springblade/land/excel/PtAcctExcel.java

@@ -20,18 +20,21 @@ public class PtAcctExcel implements Serializable {
 	private static final long serialVersionUID = 1L;
 
 	@ExcelProperty("客户名称")
-	private String corpName;
-
-	@ExcelProperty("客户简称")
 	private String corpShortName;
 
 	@ExcelProperty("货运日期")
-	@DateTimeFormat("yyyy-MM-dd HH:mm:ss")
+	@DateTimeFormat("yyyy-MM-dd HH:mm")
 	private Date arrivalTime;
 
 	@ExcelProperty("业务员")
 	private String salesmanName;
 
+	@ExcelProperty("运输调度")
+	private String dispatcherName;
+
+	@ExcelProperty("物流运输")
+	private String dispatchDeptName;
+
 	@ExcelProperty("货运地点")
 	private String addressDetail;
 
@@ -44,29 +47,32 @@ public class PtAcctExcel implements Serializable {
 	@ExcelProperty("场站")
 	private String station;
 
-	@ExcelProperty("尺寸箱型")
+	@ExcelProperty("箱型箱量")
 	private String ctnDetail;
 
 	@ExcelProperty("车队")
-	private String fleetName;
-
-	@ExcelProperty("车队简称")
 	private String fleetShortName;
 
 	@ExcelProperty("车号")
 	private String plateNo;
 
+	@ExcelProperty("应收运费")
+	private BigDecimal landAmountD;
+
+	@ExcelProperty("应收杂费")
+	private BigDecimal extraAmountD;
+
+	@ExcelProperty("应收杂费明细")
+	private String extraAmountItemD;
+
 	@ExcelProperty("应付运费")
 	private BigDecimal landAmountC;
 
 	@ExcelProperty("应付杂费")
 	private BigDecimal extraAmountC;
 
-	@ExcelProperty("应收运费")
-	private BigDecimal landAmountD;
-
-	@ExcelProperty("应收杂费")
-	private BigDecimal extraAmountD;
+	@ExcelProperty("应付杂费明细")
+	private String extraAmountItemC;
 
 	@ExcelProperty("利润")
 	private BigDecimal profit;

+ 3 - 0
blade-service-api/blade-mocha-item-api/src/main/java/org/springblade/mocha/entity/SalesPolicyItem.java

@@ -200,4 +200,7 @@ public class SalesPolicyItem implements Serializable {
 	@ApiModelProperty(value = "箱重量")
 	private BigDecimal cartonWeight;
 
+	@TableField(exist = false)
+	private Integer isSpecial;
+
 }

+ 5 - 0
blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/entity/OrderItems.java

@@ -497,4 +497,9 @@ public class OrderItems implements Serializable {
 	 */
 	@ApiModelProperty(value = "箱重量")
 	private BigDecimal cartonWeight;
+	/**
+	 * 是否特价
+	 */
+	@ApiModelProperty(value = "是否特价")
+	private Integer isSpecial;
 }

+ 5 - 0
blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/vo/OrderVO.java

@@ -137,4 +137,9 @@ public class OrderVO extends Order {
 	 */
 	@ApiModelProperty(value = "删除的id")
 	private String ids;
+	/**
+	 * 是否收款
+	 */
+	@ApiModelProperty(value = "是否收款 0 已收款 1 未收款")
+	private Integer gathering;
 }

+ 3 - 0
blade-service-api/blade-user-api/src/main/java/org/springblade/system/user/vo/UserVO.java

@@ -16,6 +16,7 @@
  */
 package org.springblade.system.user.vo;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
@@ -87,4 +88,6 @@ public class UserVO extends User {
 	 */
 	@ApiModelProperty(value = "租户类型")
 	private Integer billType;
+
+	private String source;
 }

+ 14 - 0
blade-service/blade-client/src/main/java/org/springblade/client/corps/feign/CorpsDescClient.java

@@ -6,9 +6,11 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import lombok.AllArgsConstructor;
 import org.springblade.client.corps.assemble.mapstruct.CorpsDescMapstructMapper;
+import org.springblade.client.corps.service.ICorpsAddrService;
 import org.springblade.client.corps.service.ICorpsAttnService;
 import org.springblade.client.corps.service.ICorpsBankService;
 import org.springblade.client.corps.service.ICorpsDescService;
+import org.springblade.client.entity.CorpsAddr;
 import org.springblade.client.entity.CorpsAttn;
 import org.springblade.client.entity.CorpsBank;
 import org.springblade.client.entity.CorpsDesc;
@@ -47,6 +49,8 @@ public class CorpsDescClient implements ICorpsDescClient {
 
 	private final IGoodsTypeService goodsTypeService;
 
+	private final ICorpsAddrService corpsAddrService;
+
 	@Override
 	@PostMapping(CORPS_UPDATE)
 	public R corpsUpdate(CorpsDesc corpsDesc) {
@@ -179,6 +183,16 @@ public class CorpsDescClient implements ICorpsDescClient {
 	}
 
 	@Override
+	public List<CorpsAddr> getCorpsAddr(Long pid, String tenantId) {
+		return corpsAddrService.getCorpsAddr(pid,tenantId);
+	}
+
+	@Override
+	public List<CorpsBank> getCorpsBank(Long pid, String tenantId) {
+		return bankService.getCorpsBank(pid,tenantId);
+	}
+
+	@Override
 	public List<Long> getGoodTypeMessage(Long goodTypeId) {
 		return goodsTypeService.goodTypeIdList(goodTypeId.toString());
 	}

+ 10 - 0
blade-service/blade-client/src/main/java/org/springblade/client/corps/mapper/CorpsAddrMapper.java

@@ -16,9 +16,11 @@
  */
 package org.springblade.client.corps.mapper;
 
+import com.baomidou.mybatisplus.annotation.SqlParser;
 import org.apache.ibatis.annotations.Param;
 import org.springblade.client.entity.CorpsAddr;
 import org.springblade.client.entity.CorpsAttn;
+import org.springblade.client.entity.CorpsDesc;
 import org.springblade.client.vo.CorpsAddrVO;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -49,5 +51,13 @@ public interface CorpsAddrMapper extends BaseMapper<CorpsAddr> {
 	CorpsAddr selectCorpsAddrCode(@Param("addr") String addr,
 								  @Param("pid")Long pid,
 								  @Param("tenantId") String tenantId);
+	/**
+	 * 查询客户地址信息信息
+	 *
+	 * @return
+	 */
+	@SqlParser(filter=true)
+	List<CorpsAddr> getCorpsAddr(@Param("pid") Long pid,
+							 @Param("tenantId") String tenantId);
 
 }

+ 7 - 0
blade-service/blade-client/src/main/java/org/springblade/client/corps/mapper/CorpsAddrMapper.xml

@@ -33,5 +33,12 @@
           and pid = #{pid}
           and tenant_id = #{tenantId}
     </select>
+    <select id="getCorpsAddr" resultMap="corpsAddrResultMap">
+        select *
+        from basic_corps_attn
+        where is_deleted = 0
+          and pid = #{pid}
+          and tenant_id = #{tenantId}
+    </select>
 
 </mapper>

+ 11 - 0
blade-service/blade-client/src/main/java/org/springblade/client/corps/mapper/CorpsBankMapper.java

@@ -1,7 +1,10 @@
 package org.springblade.client.corps.mapper;
 
+import com.baomidou.mybatisplus.annotation.SqlParser;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.apache.ibatis.annotations.Param;
+import org.springblade.client.entity.CorpsAddr;
 import org.springblade.client.entity.CorpsBank;
 import org.springblade.client.vo.CorpsBankVO;
 
@@ -23,5 +26,13 @@ public interface CorpsBankMapper extends BaseMapper<CorpsBank> {
 	 * @return
 	 */
 	List<CorpsBankVO> selectCorpsBankPage(IPage page, CorpsBankVO corpsBank);
+	/**
+	 * 查询客户银行信息信息
+	 *
+	 * @return
+	 */
+	@SqlParser(filter=true)
+	List<CorpsBank> getCorpsBank(@Param("pid") Long pid,
+								 @Param("tenantId") String tenantId);
 
 }

+ 7 - 0
blade-service/blade-client/src/main/java/org/springblade/client/corps/mapper/CorpsBankMapper.xml

@@ -28,5 +28,12 @@
         from basic_corps_bank
         where is_deleted = 0
     </select>
+    <select id="getCorpsBank" resultMap="corpsBankResultMap">
+        select *
+        from basic_corps_bank
+        where is_deleted = 0
+          and pid = #{pid}
+          and tenant_id = #{tenantId}
+    </select>
 
 </mapper>

+ 10 - 0
blade-service/blade-client/src/main/java/org/springblade/client/corps/service/ICorpsAddrService.java

@@ -21,6 +21,8 @@ import org.springblade.client.vo.CorpsAddrVO;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 
+import java.util.List;
+
 /**
  * 客户收发货地址 服务类
  *
@@ -38,4 +40,12 @@ public interface ICorpsAddrService extends IService<CorpsAddr> {
 	 */
 	IPage<CorpsAddrVO> selectCorpsAddrPage(IPage<CorpsAddrVO> page, CorpsAddrVO corpsAddr);
 
+	/**
+	 * 根据客户id,租户获取客户地址信息
+	 * @param pid 客户id
+	 * @param tenantId 租户
+	 * @return
+	 */
+	List<CorpsAddr> getCorpsAddr(Long pid,String tenantId);
+
 }

+ 10 - 0
blade-service/blade-client/src/main/java/org/springblade/client/corps/service/ICorpsBankService.java

@@ -1,10 +1,13 @@
 package org.springblade.client.corps.service;
 
+import org.springblade.client.entity.CorpsAddr;
 import org.springblade.client.entity.CorpsBank;
 import org.springblade.client.vo.CorpsBankVO;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 
+import java.util.List;
+
 /**
  * 客户银行 服务类
  *
@@ -21,5 +24,12 @@ public interface ICorpsBankService extends IService<CorpsBank> {
 	 * @return
 	 */
 	IPage<CorpsBankVO> selectCorpsBankPage(IPage<CorpsBankVO> page, CorpsBankVO corpsBank);
+	/**
+	 * 根据客户id,租户获取客户银行信息
+	 * @param pid 客户id
+	 * @param tenantId 租户
+	 * @return
+	 */
+	List<CorpsBank> getCorpsBank(Long pid, String tenantId);
 
 }

+ 7 - 0
blade-service/blade-client/src/main/java/org/springblade/client/corps/service/impl/CorpsAddrServiceImpl.java

@@ -31,6 +31,7 @@ import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 
 import java.util.Date;
+import java.util.List;
 
 /**
  * 客户收发货地址 服务实现类
@@ -45,6 +46,12 @@ public class CorpsAddrServiceImpl extends ServiceImpl<CorpsAddrMapper, CorpsAddr
 	public IPage<CorpsAddrVO> selectCorpsAddrPage(IPage<CorpsAddrVO> page, CorpsAddrVO corpsAddr) {
 		return page.setRecords(baseMapper.selectCorpsAddrPage(page, corpsAddr));
 	}
+
+	@Override
+	public List<CorpsAddr> getCorpsAddr(Long pid, String tenantId) {
+		return baseMapper.getCorpsAddr(pid,tenantId);
+	}
+
 	public R saveOrUpdateAddr(CorpsDesc corpsDesc, Long userId, Long pId, String tenantId, Date date){
 		if (CollectionUtils.isNotEmpty(corpsDesc.getCorpsAddrList())){
 			for (CorpsAddr corpsAddr : corpsDesc.getCorpsAddrList()) {

+ 7 - 0
blade-service/blade-client/src/main/java/org/springblade/client/corps/service/impl/CorpsBankServiceImpl.java

@@ -8,6 +8,8 @@ import org.springblade.client.entity.CorpsBank;
 import org.springblade.client.vo.CorpsBankVO;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 /**
  * 客户银行 服务实现类
  *
@@ -22,4 +24,9 @@ public class CorpsBankServiceImpl extends ServiceImpl<CorpsBankMapper, CorpsBank
 		return page.setRecords(baseMapper.selectCorpsBankPage(page, corpsBank));
 	}
 
+	@Override
+	public List<CorpsBank> getCorpsBank(Long pid, String tenantId) {
+		return baseMapper.getCorpsBank(pid,tenantId);
+	}
+
 }

+ 4 - 0
blade-service/blade-client/src/main/java/org/springblade/client/serial/mapper/SerialMapper.java

@@ -56,5 +56,9 @@ public interface SerialMapper extends BaseMapper<Serial> {
 						@Param("billPrefix") String billPrefix,
 						@Param("tenantId") String tenantId,
 						@Param("serialType") String serialType);
+	@SqlParser(filter=true)
+	int updateMessage(Serial serial);
+	@SqlParser(filter=true)
+	int insertSerialMessage(Serial serial);
 
 }

+ 54 - 0
blade-service/blade-client/src/main/java/org/springblade/client/serial/mapper/SerialMapper.xml

@@ -38,5 +38,59 @@
 	        AND trade_type = #{tradeType}
 	        AND serial_type = #{serialType}
     </select>
+    <update id="updateMessage" parameterType="org.springblade.client.entity.Serial">
+        update  basic_serial
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="billType != null">bill_type = #{billType},</if>
+            <if test="billPrefix != null">bill_prefix = #{billPrefix},</if>
+            <if test="serial != null">serial = #{serial},</if>
+            <if test="remarks != null">remarks = #{remarks},</if>
+            <if test="version != null">version = #{version},</if>
+            <if test="createUser != null">create_user = #{createUser},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateUser != null">update_user = #{updateUser},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="tradeType != null">trade_type = #{tradeType},</if>
+            <if test="serialType != null">serial_type = #{serialType},</if>
+        </trim>
+        where id = #{id}
+    </update>
+    <insert id="insertSerialMessage" parameterType="org.springblade.client.entity.Serial" useGeneratedKeys="true" keyProperty="fId">
+        insert into basic_serial
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="billType != null">bill_type,</if>
+            <if test="billPrefix != null">bill_prefix,</if>
+            <if test="serial != null">serial,</if>
+            <if test="remarks != null">remarks,</if>
+            <if test="version != null">version,</if>
+            <if test="createUser != null">create_user,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateUser != null">update_user,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="tradeType != null">trade_type,</if>
+            <if test="serialType != null">serial_type,</if>
+            <if test="tenantId != null">tenant_id,</if>
+            <if test="createDept != null">create_dept,</if>
+            <if test="status != null">status,</if>
+            <if test="isDeleted != null">is_deleted,</if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="billType != null">#{billType},</if>
+            <if test="billPrefix != null">#{billPrefix},</if>
+            <if test="serial != null">#{serial},</if>
+            <if test="remarks != null">#{remarks},</if>
+            <if test="version != null">#{version},</if>
+            <if test="createUser != null">#{createUser},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateUser != null">#{updateUser},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="tradeType != null">#{tradeType},</if>
+            <if test="serialType != null">#{serialType},</if>
+            <if test="tenantId != null">#{tenantId},</if>
+            <if test="createDept != null">#{createDept},</if>
+            <if test="status != null">#{status},</if>
+            <if test="isDeleted != null">#{isDeleted},</if>
+        </trim>
+    </insert>
 
 </mapper>

+ 4 - 4
blade-service/blade-client/src/main/java/org/springblade/client/serial/service/impl/SerialServiceImpl.java

@@ -126,7 +126,7 @@ public class SerialServiceImpl extends ServiceImpl<SerialMapper, Serial> impleme
 			yyyyMM = DateFormatUtils.format(date, "yyMMdd");
 			if (serial != null) {
 				serial.setSerial(serial.getSerial() + 1);
-				baseMapper.updateById(serial);
+				baseMapper.updateMessage(serial);
 				if (serial.getSerial() <= 9) {
 					billNo = "00" + serial.getSerial()+ "-" + yyyyMM ;
 				} else if (serial.getSerial() <= 99) {
@@ -137,12 +137,12 @@ public class SerialServiceImpl extends ServiceImpl<SerialMapper, Serial> impleme
 			} else {
 				billNo =  "001-" + yyyyMM ;
 				billNoSerial.setSerial(1);
-				baseMapper.insert(billNoSerial);
+				baseMapper.insertSerialMessage(billNoSerial);
 			}
 		}else {
 			if (serial != null) {
 				serial.setSerial(serial.getSerial() + 1);
-				baseMapper.updateById(serial);
+				baseMapper.updateMessage(serial);
 				if (serial.getSerial() <= 9) {
 					billNo = yyyyMM + "00" + serial.getSerial();
 				} else if (serial.getSerial() <= 99) {
@@ -153,7 +153,7 @@ public class SerialServiceImpl extends ServiceImpl<SerialMapper, Serial> impleme
 			} else {
 				billNo = yyyyMM + "001";
 				billNoSerial.setSerial(1);
-				baseMapper.insert(billNoSerial);
+				baseMapper.insertSerialMessage(billNoSerial);
 			}
 		}
 		return type+billNo;

+ 15 - 4
blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/controller/DeliveryController.java

@@ -33,6 +33,7 @@ import org.springblade.client.feign.ICorpsDescClient;
 import org.springblade.client.feign.IStorageClient;
 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.secure.utils.SecureUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
@@ -222,13 +223,23 @@ public class DeliveryController extends BladeController {
 	@ApiOperationSupport(order = 5)
 	@ApiOperation(value = "修改", notes = "传入delivery")
 	public R update(@Valid @RequestBody Delivery delivery) {
-		if (delivery.getId() == null){
-			throw  new SecurityException("请选择要删除的数据");
+		if (delivery.getId() == null) {
+			throw new SecurityException("请选择要删除的数据");
 		}
 		Delivery deliveryMessage = deliveryService.getById(delivery.getId());
-		if (StringUtils.isNotBlank(deliveryMessage.getDeliveryStatus()) && deliveryMessage.getDeliveryStatus().equals(DeliveryStatusEnum.DELIVER.getType())){
-			throw  new SecurityException("已发货不能删除");
+		if (StringUtils.isNotBlank(deliveryMessage.getDeliveryStatus()) && deliveryMessage.getDeliveryStatus().equals(DeliveryStatusEnum.DELIVER.getType())) {
+			throw new SecurityException("已发货不能删除");
 		}
+
+		int itemCount = deliveryItemsService.count(new LambdaQueryWrapper<DeliveryItems>()
+			.eq(DeliveryItems::getPid, delivery.getId())
+			.eq(DeliveryItems::getTenantId, AuthUtil.getTenantId())
+			.eq(DeliveryItems::getIsDeleted, 0)
+		);
+		if (itemCount > 0) {
+			throw new SecurityException("存在明细禁止删除");
+		}
+
 		delivery.setIsDeleted(1);
 		deliveryService.updateById(delivery);
 		deliveryFeesService.updateByPid(delivery.getId());

+ 1 - 1
blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/service/impl/DeliveryServiceImpl.java

@@ -163,7 +163,7 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 			baseMapper.insert(delivery);
 
 			if (ObjectUtil.isNotEmpty(delivery.getOrgId()) && ObjectUtil.isNotEmpty(delivery.getSrcId())) {
-				if (delivery.getBillType().equals(OrderTypeEnum.RECEIPT.getType())) {
+				if (delivery.getBillType().equals(OrderTypeEnum.SHIP.getType())) {
 					Order temp = new Order();
 					temp.setId(delivery.getOrgId());
 					temp.setCreateFreight(1);

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

@@ -209,4 +209,20 @@ public class OrderController extends BladeController {
 		}
 	}
 
+	/**
+	 * 附件上传
+	 */
+	@PostMapping("/file")
+	public R file(@RequestBody Order order) {
+		return R.status(orderService.file(order));
+	}
+
+	/**
+	 * 附件列表
+	 */
+	@GetMapping("/file-list")
+	public R fileList(Long id) {
+		return R.data(orderService.fileList(id));
+	}
+
 }

+ 4 - 4
blade-service/blade-land/src/main/java/org/springblade/land/controller/OrderFeeController.java

@@ -157,16 +157,16 @@ public class OrderFeeController extends BladeController {
 	 * 确认
 	 */
 	@PostMapping("/confirm")
-	public R confirm(@RequestParam String ids) {
-		return R.status(orderFeeService.confirm(Func.toLongList(ids)));
+	public R confirm(@RequestParam Long itemId) {
+		return R.status(orderFeeService.confirm(itemId));
 	}
 
 	/**
 	 * 取消确认
 	 */
 	@PostMapping("/cancel-confirm")
-	public R cancelConfirm(@RequestParam String ids) {
-		return R.status(orderFeeService.cancelConfirm(Func.toLongList(ids)));
+	public R cancelConfirm(@RequestParam Long itemId) {
+		return R.status(orderFeeService.cancelConfirm(itemId));
 	}
 
 	/**

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

@@ -50,6 +50,7 @@
                t2.plate_no,
                sum(t2.land_amount_c) as landAmountC,
                sum(t2.land_amount_d) as landAmountD,
+               t2.confirm_status as confirmStatus,
                t2.status,
                t2.remarks
         from land_order t1
@@ -64,9 +65,11 @@
             and t2.kind = '2'
             and t1.is_deleted = 0
             <if test="acct.corpName != null and acct.corpName != ''">and t3.cname like concat('%', #{acct.corpName}, '%')</if>
+            <if test="acct.salesmanName != null and acct.salesmanName != ''">and t5.name like concat('%', #{acct.salesmanName}, '%')</if>
             <if test="acct.corpShortName != null and acct.corpShortName != ''">and t3.short_name like concat('%', #{acct.corpShortName}, '%')</if>
 
             <if test="acct.fleetId != null">and t2.fleet_id = #{acct.fleetId}</if>
+            <if test="acct.fleetShortName != null and acct.fleetShortName != ''">and t4.short_name like concat('%', #{acct.fleetShortName}, '%')</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>
@@ -77,12 +80,15 @@
             <if test="acct.endArrivalTime != null and acct.endArrivalTime != ''">and t2.arrival_time &lt;= #{acct.endArrivalTime}</if>
 
             <if test="acct.salesman != null">and t1.salesman = #{acct.salesman}</if>
+            <if test="acct.dispatcher != null">and t1.dispatcher = #{acct.dispatcher}</if>
+            <if test="acct.dispatchDept != null">and t1.dispatchDept = #{acct.dispatchDept}</if>
             <if test="acct.salesmanDeptList != null">and t1.salesman_dept in
                 <foreach item="dept" collection="acct.salesmanDeptList" open="(" separator="," close=")">
                     #{dept}
                 </foreach>
             </if>
             <if test="acct.shippingMode != null and acct.shippingMode != ''">and t1.shipping_mode = #{acct.shippingMode}</if>
+            <if test="acct.confirmStatus != null">and t2.confirm_status = #{acct.confirmStatus}</if>
             <if test="acct.status == 1">and t2.status in (0, 1)</if>
             <if test="acct.status == 2">and t2.status not in (0, 1, 4)</if>
             <if test="acct.status == 3">and t2.status = 4</if>

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

@@ -85,18 +85,18 @@ public interface IOrderFeeService extends IService<OrderFee> {
 	/**
 	 * 确认
 	 *
-	 * @param idList
+	 * @param itemId
 	 * @return
 	 */
-	boolean confirm(List<Long> idList);
+	boolean confirm(Long itemId);
 
 	/**
 	 * 取消确认
 	 *
-	 * @param idList
+	 * @param itemId
 	 * @return
 	 */
-	boolean cancelConfirm(List<Long> idList);
+	boolean cancelConfirm(Long itemId);
 
 	/**
 	 * 获取车队下拉

+ 17 - 0
blade-service/blade-land/src/main/java/org/springblade/land/service/IOrderService.java

@@ -18,6 +18,7 @@ package org.springblade.land.service;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
+import org.springblade.client.entity.CommonFile;
 import org.springblade.core.mp.support.Query;
 import org.springblade.core.tool.api.R;
 import org.springblade.land.entity.Order;
@@ -134,4 +135,20 @@ public interface IOrderService extends IService<Order> {
 	 */
 	boolean removeOrder(List<Long> idList);
 
+	/**
+	 * 附件上传
+	 *
+	 * @param order
+	 * @return
+	 */
+	boolean file(Order order);
+
+	/**
+	 * 附件列表
+	 *
+	 * @param id
+	 * @return
+	 */
+	List<CommonFile> fileList(Long id);
+
 }

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

@@ -42,6 +42,7 @@ import org.springblade.land.vo.OrderFeeVO;
 import org.springblade.system.user.entity.User;
 import org.springblade.system.user.feign.IUserClient;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.Collections;
 import java.util.Date;
@@ -111,6 +112,20 @@ public class OrderFeeServiceImpl extends ServiceImpl<OrderFeeMapper, OrderFee> i
 			orderFee.setUpdateTime(new Date());
 			baseMapper.updateById(orderFee);
 		}
+
+		if (!ObjectUtil.isEmpty(orderFee.getCorpId())) {
+			R<CorpsDesc> corpMessage = corpsDescClient.getCorpMessage(orderFee.getCorpId());
+			if (corpMessage.isSuccess() && corpMessage.getData() != null) {
+				orderFee.setCorpName(corpMessage.getData().getCname());
+				orderFee.setCorpShortName(corpMessage.getData().getShortName());
+			}
+		}
+		if (!ObjectUtil.isEmpty(orderFee.getFeeId())) {
+			R<FeesDesc> feesMessage = feesDescClient.detail(orderFee.getFeeId());
+			if (feesMessage.isSuccess() && feesMessage.getData() != null) {
+				orderFee.setFeeName(feesMessage.getData().getCname());
+			}
+		}
 		return orderFee;
 	}
 
@@ -148,27 +163,34 @@ public class OrderFeeServiceImpl extends ServiceImpl<OrderFeeMapper, OrderFee> i
 	}
 
 	@Override
-	public boolean confirm(List<Long> idList) {
-		idList.forEach(id -> {
-			OrderFee orderFee = new OrderFee();
-			orderFee.setId(id);
-			orderFee.setConfirmStatus(1);
-			orderFee.setConfirmUser(AuthUtil.getUserId());
-			orderFee.setConfirmTime(new Date());
-			baseMapper.updateById(orderFee);
-		});
+	@Transactional(rollbackFor = Exception.class)
+	public boolean confirm(Long itemId) {
+		OrderFee orderFee = new OrderFee();
+		orderFee.setConfirmStatus(1);
+		baseMapper.update(orderFee, new LambdaUpdateWrapper<OrderFee>()
+			.eq(OrderFee::getItemId, itemId)
+		);
+
+		OrderItem temp = new OrderItem();
+		temp.setId(itemId);
+		temp.setConfirmStatus(1);
+		orderItemMapper.updateById(temp);
 		return true;
 	}
 
 	@Override
-	public boolean cancelConfirm(List<Long> idList) {
-		idList.forEach(id -> {
-			baseMapper.update(null, new LambdaUpdateWrapper<OrderFee>()
-				.set(OrderFee::getConfirmStatus, 0)
-				.set(OrderFee::getConfirmUser, null)
-				.set(OrderFee::getConfirmTime, null)
-				.eq(OrderFee::getId, id));
-		});
+	@Transactional(rollbackFor = Exception.class)
+	public boolean cancelConfirm(Long itemId) {
+		OrderFee orderFee = new OrderFee();
+		orderFee.setConfirmStatus(0);
+		baseMapper.update(orderFee, new LambdaUpdateWrapper<OrderFee>()
+			.eq(OrderFee::getItemId, itemId)
+		);
+
+		OrderItem temp = new OrderItem();
+		temp.setId(itemId);
+		temp.setConfirmStatus(0);
+		orderItemMapper.updateById(temp);
 		return true;
 	}
 

+ 30 - 40
blade-service/blade-land/src/main/java/org/springblade/land/service/impl/OrderItemServiceImpl.java

@@ -486,54 +486,44 @@ public class OrderItemServiceImpl extends ServiceImpl<OrderItemMapper, OrderItem
 	@Override
 	@Transactional(rollbackFor = Exception.class)
 	public List<OrderItem> changeFleet(OrderItem orderItem) {
-		orderItem.setStatus(1);
-		orderItem.setDispatchTime(new Date());
+		OrderItem temp = baseMapper.selectById(orderItem.getId());
+		if (!orderItem.getFleetId().equals(temp.getFleetId())) {
+			orderItem.setStatus(1);
+			orderItem.setDispatchTime(new Date());
+		}
 		orderItem.setUpdateUser(AuthUtil.getUserId());
 		orderItem.setUpdateTime(new Date());
 		baseMapper.updateById(orderItem);
 
-		baseMapper.update(null, new LambdaUpdateWrapper<OrderItem>()
-			.set(OrderItem::getVehicleId, null)
-			.set(OrderItem::getPlateNo, null)
-			.set(OrderItem::getDriverId, null)
-			.set(OrderItem::getTel, null)
-			.set(OrderItem::getFleetRemarks, null)
-			.set(OrderItem::getSendTime, null)
-			.set(OrderItem::getCtnNo, null)
-			.set(OrderItem::getDriverRemarks, null)
-			.set(OrderItem::getOneFeeC, "0.00")
-			.set(OrderItem::getTwoFeeC, "0.00")
-			.set(OrderItem::getThreeFeeC, "0.00")
-			.set(OrderItem::getFourFeeC, "0.00")
-			.set(OrderItem::getFiveFeeC, "0.00")
-			.set(OrderItem::getFeeRemarksC, null)
-			.set(OrderItem::getAcceptTime, null)
-			.eq(OrderItem::getId, orderItem.getId()));
-
-		Integer count = orderChangeMapper.selectCount(new LambdaQueryWrapper<OrderChange>()
-			.eq(OrderChange::getItemId, orderItem.getId())
-			.eq(OrderChange::getKind, 2)
-		);
-
-		if (count < 1) {
-			OrderChange changeTemp = orderChangeMapper.selectOne(new LambdaQueryWrapper<OrderChange>()
+		if (!orderItem.getFleetId().equals(temp.getFleetId())) {
+			Integer count = orderChangeMapper.selectCount(new LambdaQueryWrapper<OrderChange>()
 				.eq(OrderChange::getItemId, orderItem.getId())
-				.eq(OrderChange::getContent, "调度")
-				.eq(OrderChange::getKind, 1)
-				.orderByDesc(OrderChange::getChangeTime)
-				.last("limit 1")
+				.eq(OrderChange::getKind, 2)
 			);
 
-			OrderChange change = new OrderChange();
-			change.setItemId(orderItem.getId());
-			change.setContent(orderItem.getOriginalFleetName());
-			change.setKind(2);
-			change.setTenantId(changeTemp.getTenantId());
-			change.setChangeUser(changeTemp.getChangeUser());
-			change.setChangeTime(changeTemp.getChangeTime());
-			orderChangeMapper.insert(change);
+			if (count < 1) {
+				OrderChange changeTemp = orderChangeMapper.selectOne(new LambdaQueryWrapper<OrderChange>()
+					.eq(OrderChange::getItemId, orderItem.getId())
+					.eq(OrderChange::getContent, "调度")
+					.eq(OrderChange::getKind, 1)
+					.orderByDesc(OrderChange::getChangeTime)
+					.last("limit 1")
+				);
+
+				OrderChange change = new OrderChange();
+				change.setItemId(orderItem.getId());
+				change.setContent(orderItem.getOriginalFleetName());
+				change.setKind(2);
+				change.setTenantId(changeTemp.getTenantId());
+				change.setChangeUser(changeTemp.getChangeUser());
+				change.setChangeTime(changeTemp.getChangeTime());
+				orderChangeMapper.insert(change);
+			} else {
+				addChange(orderItem.getId(), orderItem.getFleetName(), 2);
+			}
 		}
-		addChange(orderItem.getId(), orderItem.getFleetName(), 2);
+
+		// 返回数据
 		List<OrderItem> itemList = baseMapper.selectList(new LambdaQueryWrapper<OrderItem>()
 			.eq(OrderItem::getOrderId, orderItem.getOrderId())
 			.eq(OrderItem::getKind, 2)

+ 26 - 19
blade-service/blade-land/src/main/java/org/springblade/land/service/impl/OrderServiceImpl.java

@@ -149,18 +149,6 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 					detail.setAgentName(agent.getData().getCname());
 				}
 			}
-			if (!ObjectUtil.isEmpty(detail.getAgentId())) {
-				R<CorpsDesc> agent = corpsDescClient.getCorpMessage(detail.getAgentId());
-				if (agent.isSuccess() && agent.getData() != null) {
-					detail.setAgentName(agent.getData().getCname());
-				}
-			}
-			if (!ObjectUtil.isEmpty(detail.getPolId())) {
-				BasicPortDesc pol = portClient.getPort(detail.getPolId());
-				if (pol != null) {
-					detail.setPolName(pol.getName());
-				}
-			}
 			if (!ObjectUtil.isEmpty(detail.getPodId())) {
 				BasicPortDesc pod = portClient.getPort(detail.getPodId());
 				if (pod != null) {
@@ -225,6 +213,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 		orderQueryWrapper.in(CollectionUtil.isNotEmpty(orderIdList), Order::getId, orderIdList)
 			.eq(ObjectUtil.isNotEmpty(order.getCorpId()), Order::getCorpId, order.getCorpId())
 			.eq(ObjectUtil.isNotEmpty(order.getSalesman()), Order::getSalesman, order.getSalesman())
+			.eq(ObjectUtil.isNotEmpty(order.getDispatcher()), Order::getDispatcher, order.getDispatcher())
+			.eq(ObjectUtil.isNotEmpty(order.getDispatchDept()), Order::getDispatchDept, order.getDispatchDept())
 			.eq(ObjectUtil.isNotEmpty(itemStatus) && itemStatus == 999, Order::getStatus, 0)
 			.eq(StringUtil.isNotBlank(order.getShippingMode()), Order::getShippingMode, order.getShippingMode())
 			.like(StringUtil.isNotBlank(order.getOrderNo()), Order::getOrderNo, order.getOrderNo())
@@ -704,6 +694,29 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 		return true;
 	}
 
+	@Override
+	@GlobalTransactional(rollbackFor = Exception.class)
+	public boolean file(Order order) {
+		List<CommonFile> fileList = order.getFileList();
+		fileList.forEach(file -> {
+			if (ObjectUtil.isEmpty(file.getId())) {
+				file.setPid(order.getId());
+				file.setSource(LandConstant.ORDER);
+			}
+		});
+		commonFileClient.saveList(fileList);
+		return true;
+	}
+
+	@Override
+	public List<CommonFile> fileList(Long id) {
+		R<List<CommonFile>> fileList = commonFileClient.getList(id, LandConstant.ORDER);
+		if (fileList.isSuccess() && fileList.getData() != null) {
+			return fileList.getData();
+		}
+		return Collections.emptyList();
+	}
+
 	private List<OrderItem> getOrderItemList(Long id) {
 		List<OrderItem> orderItemList = orderItemMapper.selectList(new LambdaQueryWrapper<OrderItem>()
 			.eq(OrderItem::getOrderId, id)
@@ -758,8 +771,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 	private void calculateAcct(List<OrderAcctVO> acctList) {
 		acctList.forEach(acct -> {
 			List<OrderFee> feeList = orderFeeMapper.selectList(new LambdaQueryWrapper<OrderFee>()
-				.eq(OrderFee::getOrderId, acct.getOrderId())
-				.eq(OrderFee::getPlateNo, acct.getPlateNo())
+				.eq(OrderFee::getItemId, acct.getItemId())
 				.eq(OrderFee::getIsDeleted, 0)
 			);
 
@@ -785,11 +797,6 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 			acct.setExtraAmountC(feeList.stream().filter(e -> e.getType() == 2).reduce(BigDecimal.ZERO, (x, y) -> x.add(y.getAmount()), BigDecimal::add));
 			acct.setExtraAmountItemC(extraAmountItemC.toString());
 			acct.setProfit(acct.getLandAmountD().add(acct.getExtraAmountD()).subtract(acct.getLandAmountC()).subtract(acct.getExtraAmountC()));
-			if (feeList.stream().anyMatch(e -> e.getConfirmStatus() == 1)) {
-				acct.setConfirmStatus(1);
-			} else {
-				acct.setConfirmStatus(0);
-			}
 		});
 	}
 

+ 2 - 0
blade-service/blade-mocha-item/src/main/java/org/springblade/mocha/service/impl/SalesPolicyServiceImpl.java

@@ -162,6 +162,7 @@ public class SalesPolicyServiceImpl extends ServiceImpl<SalesPolicyMapper, Sales
 				if (StringUtils.isNotBlank(updateName)) {
 					item.setUpdateUserName(updateName);
 				}
+				item.setIsSpecial("特价".equals(policy.getType()) ? 1 : 0);
 			});
 			policy.setSpecialItemList(specialItemList);
 		}
@@ -177,6 +178,7 @@ public class SalesPolicyServiceImpl extends ServiceImpl<SalesPolicyMapper, Sales
 				if (StringUtils.isNotBlank(updateName)) {
 					item.setUpdateUserName(updateName);
 				}
+				item.setIsSpecial("特价".equals(policy.getType()) ? 1 : 0);
 			});
 			policy.setPresentItemList(presentItemList);
 		}

+ 5 - 0
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/controller/OrderController.java

@@ -153,6 +153,11 @@ public class OrderController extends BladeController {
 		lambdaQueryWrapper.like(Func.isNotEmpty(order.getPlannedDeliveryStart()), Order::getPlannedDeliveryDate, order.getPlannedDeliveryStart());//计划交货开始
 		lambdaQueryWrapper.like(Func.isNotEmpty(order.getPlannedDeliveryEnd()), Order::getPlannedDeliveryDate, order.getPlannedDeliveryEnd());//计划交货结束
 		lambdaQueryWrapper.like(Func.isNotEmpty(order.getOrderRemark()), Order::getOrderRemark, order.getOrderRemark());//备注
+		if (order.getGathering() != null && order.getGathering() == 0){
+			lambdaQueryWrapper.eq(Order::getBalanceAmount,BigDecimal.ZERO);
+		}else if (order.getGathering() != null && order.getGathering() == 1){
+			lambdaQueryWrapper.gt(Order::getBalanceAmount,BigDecimal.ZERO);
+		}
 		lambdaQueryWrapper.orderByDesc(Order::getId);
 		IPage<Order> page = orderService.page(Condition.getPage(query), lambdaQueryWrapper);
 		if (CollectionUtils.isNotEmpty(page.getRecords())) {

+ 9 - 0
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/mapper/OrderMapper.java

@@ -16,6 +16,7 @@
  */
 package org.springblade.purchase.sales.mapper;
 
+import com.baomidou.mybatisplus.annotation.SqlParser;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.sun.javafx.collections.MappingChange;
 import com.trade.purchase.order.vo.OrderDTO;
@@ -89,4 +90,12 @@ public interface OrderMapper extends BaseMapper<Order> {
 						  @Param("tradeType") String tradeType,
 						  @Param("billType") String billType,
 						  @Param("orderStatus") String orderStatus);
+
+	/**
+	 * 更新订单信息
+	 * @param order
+	 * @return
+	 */
+	@SqlParser(filter=true)
+	int updateOrderMessage(Order order);
 }

+ 8 - 0
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/mapper/OrderMapper.xml

@@ -552,4 +552,12 @@ ORDER BY
             AND bo.order_status = #{orderStatus}
         </if>
     </select>
+    <update id="updateOrderMessage" parameterType="org.springblade.purchase.sales.entity.Order">
+        update  business_order
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="generate != null">generate = #{generate},</if>
+            <if test="orderStatus != null">order_status = #{orderStatus},</if>
+        </trim>
+        where id = #{id}
+    </update>
 </mapper>

+ 1 - 1
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/IOrderItemsService.java

@@ -73,7 +73,7 @@ public interface IOrderItemsService extends IService<OrderItems> {
 	 * @param isCovered
 	 * @return
 	 */
-	R<List<OrderItems>> importUser(List<OrderItemsExcel> data, Boolean isCovered);
+	R<Map<String,Object>> importUser(List<OrderItemsExcel> data, Boolean isCovered);
 
 	/**
 	 * 经销商导入订单明细

+ 27 - 25
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderItemsServiceImpl.java

@@ -113,8 +113,10 @@ public class OrderItemsServiceImpl extends ServiceImpl<OrderItemsMapper, OrderIt
 	}
 
 	@Override
-	public R<List<OrderItems>> importUser(List<OrderItemsExcel> data, Boolean isCovered) {
-		List<OrderItems> list = new ArrayList<>();
+	public R<Map<String,Object>> importUser(List<OrderItemsExcel> data, Boolean isCovered) {
+		Map<String,Object> map = new HashMap<>();
+		List<OrderItems> list = new ArrayList<>();//导入成功
+		List<String> lose = new ArrayList<>();//导入失败的
 		data.forEach(item -> {
 			R<GoodsDesc> goods = goodsDescClient.GoodsByCode(item.getCode());
 			if (goods.isSuccess() && goods.getData() != null) {
@@ -145,9 +147,13 @@ public class OrderItemsServiceImpl extends ServiceImpl<OrderItemsMapper, OrderIt
 					orderItems.setStorageQuantity(new BigDecimal(BigInteger.ZERO));
 				}
 				list.add(orderItems);
+			}else {
+				lose.add(item.getCode());
 			}
 		});
-		return R.data(list);
+		map.put("list",list);
+		map.put("lose",lose);
+		return R.data(map);
 	}
 
 	@Override
@@ -578,47 +584,43 @@ public class OrderItemsServiceImpl extends ServiceImpl<OrderItemsMapper, OrderIt
 	}
 
 	@Override
-	public R<Map<String,Object>> importPolicy(List<PolicyExcel> data, Boolean isCovered,Long policyName,String salesType) {
-		Map<String,Object> map = new HashMap<>();
-		//查找政策
+	public R<Map<String, Object>> importPolicy(List<PolicyExcel> data, Boolean isCovered, Long policyName, String salesType) {
+		Map<String, Object> map = new HashMap<>();
+		// 查找政策
 		SalesPolicy policy = salesPolicyClient.getPolicy(policyName);
-		if (policy == null){
+		if (policy == null) {
 			throw new SecurityException("未找到政策信息");
 		}
-		StringBuffer stringBuffer = new StringBuffer();//导入失败的商品
+		// 导入失败的商品
+		StringBuilder stringBuffer = new StringBuilder();
 		List<SalesPolicyItem> list = new ArrayList<>();
-		//根据商品编码和主政策id查政策明细
-		for(int i=0;i<data.size();i++)
-		{
-			PolicyExcel policyExcel = data.get(i);
-			if (StringUtils.isBlank(policyExcel.getCode())){
-				stringBuffer.append(policyExcel.getCode()+",");
+		// 根据商品编码和主政策id查政策明细
+		for (PolicyExcel policyExcel : data) {
+			if (StringUtils.isBlank(policyExcel.getCode())) {
+				stringBuffer.append(policyExcel.getCode()).append(",");
 				continue;
 			}
-			if (policyExcel.getOrderQuantity() == null){
+			if (policyExcel.getOrderQuantity() == null) {
 				policyExcel.setOrderQuantity(BigDecimal.ZERO);
 			}
-			SalesPolicyItem policyItem = salesPolicyClient.getPolicyItem(policyExcel.getCode(), policy.getId(),salesType);
-			if (policyItem == null){
-				stringBuffer.append(policyExcel.getCode()+",");
+			SalesPolicyItem policyItem = salesPolicyClient.getPolicyItem(policyExcel.getCode(), policy.getId(), salesType);
+			if (policyItem == null) {
+				stringBuffer.append(policyExcel.getCode()).append(",");
 				continue;
 			}
+			policyItem.setIsSpecial("特价".equals(policy.getType()) ? 1 : 0);
 			policyItem.setOrderQuantity(policyExcel.getOrderQuantity());
 			list.add(policyItem);
 		}
-		map.put("list",list);
-		map.put("message",stringBuffer.toString());
+		map.put("list", list);
+		map.put("message", stringBuffer.toString());
 		return R.data(map);
 	}
 
 	@Override
 	public boolean submitPay(Long id) {
 		Integer integer = baseMapper.submitPay(id);
-		if (integer != null && integer >0){
-			return true;
-		}else {
-			return false;
-		}
+		return integer != null && integer > 0;
 	}
 
 }

+ 11 - 2
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderServiceImpl.java

@@ -1372,7 +1372,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 		Order purchase = new Order();
 		purchase.setId(order.getSrcId());
 		purchase.setOrderStatus("平台审核通过");
-		baseMapper.updateById(purchase);
+		baseMapper.updateOrderMessage(purchase);
 		//生成平台销售订单
 		Order market = new Order();
 		BeanUtil.copy(order,market);
@@ -1420,6 +1420,15 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 				item.setCreateUser(SecureUtil.getUserId());
 				item.setUpdateUser(SecureUtil.getUserId());
 				item.setUpdateTime(new Date());
+				//获取平台库存信息
+				StockGoods stockGoods = new StockGoods();
+				stockGoods.setGoodsId(item.getItemId());
+				stockGoods.setTradeType(market.getTradeType());
+				stockGoods.setStorageId(market.getStorageId());
+				StockGoods stock = stockGoodsClient.getOneStock(stockGoods);
+				if (stock != null){
+					item.setStorageQuantity(stock.getSurplusRouteQuantity());
+				}
 				orderItemsMapper.insert(item);
 			});
 		}
@@ -1495,7 +1504,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 		indent.setId(order.getSrcId());
 		indent.setOrderStatus("平台拒绝接单");
 		indent.setGenerate(0);//平台拒绝,代理商可以再次提交采购合同
-		baseMapper.updateById(indent);
+		baseMapper.updateOrderMessage(indent);
 	}
 
 	/**

+ 2 - 2
blade-service/blade-stock/src/main/java/org/springblade/stock/controller/StockGoodsController.java

@@ -110,8 +110,8 @@ public class StockGoodsController extends BladeController {
 			lambdaQueryWrapper.eq(Func.isNotEmpty(stockGoods.getBillNo()), StockGoods::getBillNo, stockGoods.getBillNo());
 			lambdaQueryWrapper.eq(Func.isNotEmpty(stockGoods.getContractNumber()), StockGoods::getContractNumber, stockGoods.getContractNumber());
 
-			if (Func.isNotEmpty(stockGoods.getCname())) {
-				List<Long> goodId = goodsDescClient.getGoodId(null, stockGoods.getCname(), null, null, null, null, null);
+			if (Func.isNotEmpty(stockGoods.getCname()) || Func.isNotEmpty(stockGoods.getCode())) {
+				List<Long> goodId = goodsDescClient.getGoodId(stockGoods.getCode(), stockGoods.getCname(), null, null, null, null, null);
 				if (CollectionUtils.isNotEmpty(goodId)) {
 					lambdaQueryWrapper.in(StockGoods::getGoodsId, goodId);
 				}

+ 12 - 3
blade-service/blade-user/src/main/java/org/springblade/system/user/controller/UserController.java

@@ -38,7 +38,6 @@ import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.constant.BladeConstant;
 import org.springblade.core.tool.constant.RoleConstant;
 import org.springblade.core.tool.utils.*;
-import org.springblade.system.entity.Role;
 import org.springblade.system.entity.Tenant;
 import org.springblade.system.feign.ISysClient;
 import org.springblade.system.feign.ITenantClient;
@@ -108,7 +107,7 @@ public class UserController {
 	public R userList(UserVO userVO) {
 		LambdaQueryWrapper<User> lambdaQueryWrapper = new LambdaQueryWrapper<>();
 		lambdaQueryWrapper.like(StringUtils.isNotBlank(userVO.getRealName()), User::getRealName, userVO.getRealName())
-			.eq(ObjectUtil.isNotEmpty(userVO.getDeptPid()), User::getDeptPid, userVO.getDeptPid())
+			.like(ObjectUtil.isNotEmpty(userVO.getDeptPid()), User::getDeptPid, userVO.getDeptPid())
 			.eq(User::getTenantId, AuthUtil.getTenantId())
 			.eq(User::getIsDeleted, 0);
 
@@ -126,7 +125,17 @@ public class UserController {
 				lambdaQueryWrapper.in(User::getId, userIdList);
 			}
 		}
-		return R.data(userService.list(lambdaQueryWrapper));
+
+		List<UserVO> userList = UserWrapper.build().listVO(userService.list(lambdaQueryWrapper));
+		if (StringUtil.isNotBlank(userVO.getSource())) {
+			userList.forEach(user -> {
+				R<List<String>> deptNameR = sysClient.getDeptNames(user.getDeptId());
+				if (deptNameR.isSuccess()) {
+					user.setDeptName(String.join(",", deptNameR.getData()));
+				}
+			});
+		}
+		return R.data(userList);
 	}
 
 	@GetMapping("/audit-user-list")

+ 3 - 2
blade-service/blade-user/src/main/java/org/springblade/system/user/service/impl/UserServiceImpl.java

@@ -454,10 +454,11 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, User> implement
 				if (ancestors.length > 1) {
 					pidList.add(ancestors[1]);
 				} else {
-					pidList.add(deptId);
+					pidList.add(id);
 				}
+			} else {
+				pidList.add(id);
 			}
-			pidList.add(deptId);
 		});
 		return pidList.stream().distinct().collect(Collectors.joining(","));
 	}

+ 5 - 1
blade-service/trade-purchase/src/main/java/com/trade/purchase/office/service/impl/StockServiceImpl.java

@@ -64,7 +64,11 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements
 		stockVO.setTenantId(AuthUtil.getTenantId());
 		List<StockVO> records = baseMapper.selectList(page, stockVO);
 		records.forEach(record -> {
-			record.setUnitPrice(record.getAmount().divide(record.getBalanceQuantity(), RoundingMode.HALF_UP));
+			if (record.getBalanceQuantity().compareTo(BigDecimal.ZERO) > 0) {
+				record.setUnitPrice(record.getAmount().divide(record.getBalanceQuantity(), RoundingMode.HALF_UP));
+			} else {
+				record.setUnitPrice(BigDecimal.ZERO);
+			}
 
 			StockVO tempVO = new StockVO();
 			tempVO.setStorageId(record.getStorageId());

+ 6 - 0
blade-service/trade-purchase/src/main/java/com/trade/purchase/order/controller/PurchaseOrderController.java

@@ -156,6 +156,7 @@ public class PurchaseOrderController extends BladeController {
 
 					             @RequestParam(value = "creditStartDate",required = false) String creditStartDate,//信用证到期日-开始日期  credit_date
 					             @RequestParam(value = "creditEndDate",required = false) String creditEndDate,//信用证到期日-结束时间
+					             @RequestParam(value = "gathering",required = false) Integer gathering,//是否付款 0 已付款 1 未付款
 								 Order order
 								)
 	{
@@ -213,6 +214,11 @@ public class PurchaseOrderController extends BladeController {
 		queryWrapper.between(StringUtils.isNotBlank(requiredDeliveryStartDate)&&StringUtils.isNotBlank(requiredDeliveryEndDate),"required_delivery_date",requiredDeliveryStartDate,requiredDeliveryEndDate);
 		queryWrapper.between(StringUtils.isNotBlank(requiredArrivalStartDate)&&StringUtils.isNotBlank(requiredArrivalEndDate),"required_arrival_date",requiredArrivalStartDate,requiredArrivalEndDate);
 		queryWrapper.between(StringUtils.isNotBlank(creditStartDate)&&StringUtils.isNotBlank(creditEndDate),"credit_date",creditStartDate,creditEndDate);
+		if (gathering != null && gathering == 0){
+			queryWrapper.eq("balance_amount",BigDecimal.ZERO);
+		}else if (gathering != null && gathering == 1){
+			queryWrapper.gt("balance_amount",BigDecimal.ZERO);
+		}
 		queryWrapper.orderByDesc("create_time");
 		Page<Order> page=new Page<>(current,size);
 		IPage<Order> pages = orderService.page(page,queryWrapper);

+ 28 - 8
blade-service/trade-purchase/src/main/java/com/trade/purchase/order/service/impl/PurchaseServiceImpl.java

@@ -17,9 +17,7 @@ import org.springblade.check.dto.AuditProecessDTO;
 import org.springblade.check.entity.AuditPathsActs;
 import org.springblade.check.entity.AuditPathsLevels;
 import org.springblade.check.feign.ICheckClient;
-import org.springblade.client.entity.CorpsDesc;
-import org.springblade.client.entity.GoodsDesc;
-import org.springblade.client.entity.GoodsType;
+import org.springblade.client.entity.*;
 import org.springblade.client.feign.ICorpsDescClient;
 import org.springblade.client.feign.IGoodsDescClient;
 import org.springblade.client.feign.ISerialClient;
@@ -132,13 +130,33 @@ public class PurchaseServiceImpl extends ServiceImpl<OrderMapper, Order> impleme
 		purchase.setCorpId(agentCode.getId());//客户
 		purchase.setProductionPlant(supplier.getId());//生成工厂
 		purchase.setPackageRemarks(packageRemarks);//包装要求
-		purchase.setBanks(corpsDesc.getAccountNo());//银行账号
-		purchase.setBanksAccountName(corpsDesc.getAccountName());//公司户头
-		purchase.setAccountBank(corpsDesc.getAccountBank());//开户银行
-		purchase.setShippingAddress(supplier.getStorageAddr());//发货地址
 		purchase.setStatus(1);//审批状态
 		purchase.setOrderStatus(OrderTypeEnum.SUBMIT.getType());
-		purchase.setArrivalAddress(agentCode.getStorageAddr());//到货地址
+		//获取所属公司的银行账号信息
+		List<CorpsBank> corpsBank = corpsDescClient.getCorpsBank(corpsDesc.getId(), tenant.getTerrace());
+		if (CollectionUtils.isNotEmpty(corpsBank)){
+			purchase.setBanks(corpsBank.get(0).getAccountNo());//银行账号
+			purchase.setBanksAccountName(corpsBank.get(0).getAccountName());//公司户头
+			purchase.setAccountBank(corpsBank.get(0).getAccountBank());//开户银行
+		}else {
+			purchase.setBanks(corpsDesc.getAccountNo());//银行账号
+			purchase.setBanksAccountName(corpsDesc.getAccountName());//公司户头
+			purchase.setAccountBank(corpsDesc.getAccountBank());//开户银行
+		}
+		//获取发货地址
+		List<CorpsAddr> corpsAddr = corpsDescClient.getCorpsAddr(supplier.getId(), tenant.getTerrace());
+		if (CollectionUtils.isNotEmpty(corpsAddr)){
+			purchase.setShippingAddress(corpsAddr.get(0).getAddr());//发货地址
+		}else {
+			purchase.setShippingAddress(supplier.getStorageAddr());//发货地址
+		}
+		//获取到货地址
+		List<CorpsAddr> addr = corpsDescClient.getCorpsAddr(agentCode.getId(), tenant.getTerrace());
+		if (CollectionUtils.isNotEmpty(addr)){
+			purchase.setArrivalAddress(addr.get(0).getAddr());//到货地址
+		}else {
+			purchase.setArrivalAddress(agentCode.getStorageAddr());//到货地址
+		}
 		//生成系统编号
 		R billNo = serialClient.getNo(purchase.getBillType(), purchase.getTradeType(), purchase.getBillType(),tenant.getTerrace());
 		if (billNo.getCode() != 200) {
@@ -249,6 +267,8 @@ public class PurchaseServiceImpl extends ServiceImpl<OrderMapper, Order> impleme
 			auditProecessDTO.setSendName(AuthUtil.getUserName());
 			auditProecessDTO.setSendTime(new Date());
 			auditProecessDTO.setTenantId(tenant.getTerrace());
+			auditProecessDTO.setAmount(orderItemsList.stream().filter(e ->e.getAmount() != null).map(OrderItems::getAmount).reduce(BigDecimal.ZERO,BigDecimal::add));//订单金额
+			auditProecessDTO.setOrderQuantity(orderItemsList.stream().filter(e ->e.getOrderQuantity() != null).map(OrderItems::getOrderQuantity).reduce(BigDecimal.ZERO,BigDecimal::add));//订单数量
 			R financeProcess = iCheckClient.createFinanceProcess(auditProecessDTO);
 			if (!financeProcess.isSuccess()) {
 				throw new SecurityException("操作失败,请联系管理员");