纪新园 2 лет назад
Родитель
Сommit
61789c20e7
17 измененных файлов с 563 добавлено и 237 удалено
  1. 14 0
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/business/amends/entity/Amends.java
  2. 112 61
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/business/sea/entity/Bills.java
  3. 7 4
      blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/feign/DeliveryClient.java
  4. 2 2
      blade-service/blade-los/src/main/java/org/springblade/los/business/amends/controller/AmendsController.java
  5. 14 0
      blade-service/blade-los/src/main/java/org/springblade/los/business/amends/service/IAmendsService.java
  6. 86 3
      blade-service/blade-los/src/main/java/org/springblade/los/business/amends/service/impl/AmendsServiceImpl.java
  7. 4 4
      blade-service/blade-los/src/main/java/org/springblade/los/business/sea/controller/BillsController.java
  8. 11 0
      blade-service/blade-los/src/main/java/org/springblade/los/business/sea/controller/PreContainersController.java
  9. 61 61
      blade-service/blade-los/src/main/java/org/springblade/los/business/sea/mapper/BillsMapper.xml
  10. 79 45
      blade-service/blade-los/src/main/java/org/springblade/los/business/sea/service/impl/BillsServiceImpl.java
  11. 1 1
      blade-service/blade-los/src/main/java/org/springblade/los/finance/fee/service/impl/FeeCenterServiceImpl.java
  12. 0 4
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/goods/controller/GoodsDescController.java
  13. 17 9
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/mapper/OrderMapper.java
  14. 36 9
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/mapper/OrderMapper.xml
  15. 2 0
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/service/IOrderService.java
  16. 14 4
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/service/impl/OrderServiceImpl.java
  17. 103 30
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/statistics/service/impl/StatisticsServiceImpl.java

+ 14 - 0
blade-service-api/blade-los-api/src/main/java/org/springblade/los/business/amends/entity/Amends.java

@@ -24,12 +24,14 @@ import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
+import org.springblade.los.finance.fee.entity.FeeCenter;
 import org.springframework.format.annotation.DateTimeFormat;
 
 import java.io.Serializable;
 import java.math.BigDecimal;
 import java.time.LocalDateTime;
 import java.util.Date;
+import java.util.List;
 
 /**
  * 业务-业务费用 AmendDate实体类
@@ -433,5 +435,17 @@ public class Amends implements Serializable {
 	@ApiModelProperty(value = "租户")
 	private String tenantId;
 
+	/**
+	 * 物流-费用中心(付)
+	 */
+	@TableField(exist = false)
+	private List<FeeCenter> feeCenterListC;
+
+	/**
+	 * 物流-费用中心(收)
+	 */
+	@TableField(exist = false)
+	private List<FeeCenter> feeCenterListD;
+
 
 }

+ 112 - 61
blade-service-api/blade-los-api/src/main/java/org/springblade/los/business/sea/entity/Bills.java

@@ -573,237 +573,272 @@ public class Bills implements Serializable {
 	 * HB/L 付款方式 PP=预付, CC=到付, FPA, Other
 	 */
 	@ApiModelProperty(value = "HB/L 付款方式 PP=预付, CC=到付, FPA, Other")
-	private String hPaymode;
+	@TableField("h_paymode")
+	private String hpaymode;
 	/**
 	 * HB/L 付款地点
 	 */
 	@ApiModelProperty(value = "HB/L 付款地点")
-	private String hPayplace;
+	@TableField("h_payplace")
+	private String hpayplace;
 	/**
 	 * HB/L 发货人 id
 	 */
 	@ApiModelProperty(value = "HB/L 发货人 id")
-	private Long hShipperId;
+	@TableField("h_shipper_id")
+	private Long hshipperId;
 	/**
 	 * HB/L 发货人代码
 	 */
 	@ApiModelProperty(value = "HB/L 发货人代码")
-	private String hShipperCode;
+	@TableField("h_shipper_code")
+	private String hshipperCode;
 	/**
 	 * HB/L 发货人中文名称
 	 */
 	@ApiModelProperty(value = "HB/L 发货人中文名称")
-	private String hShipperCnName;
+	@TableField("h_shipper_cn_name")
+	private String hshipperCnName;
 	/**
 	 * HB/L 发货人英文名称
 	 */
 	@ApiModelProperty(value = "HB/L 发货人英文名称")
-	private String hShipperEnName;
+	@TableField("h_shipper_en_name")
+	private String hshipperEnName;
 	/**
 	 * HB/L 发货人提单描述
 	 */
 	@ApiModelProperty(value = "HB/L 发货人提单描述")
-	private String hShipperDetails;
+	@TableField("h_shipper_details")
+	private String hshipperDetails;
 	/**
 	 * HB/L 收货人 id
 	 */
 	@ApiModelProperty(value = "HB/L 收货人 id")
 	@TableField("h_Consignee_id")
-	private Long hConsigneeId;
+	private Long hconsigneeId;
 	/**
 	 * HB/L 收货人代码
 	 */
 	@ApiModelProperty(value = "HB/L 收货人代码")
 	@TableField("h_Consignee_code")
-	private String hConsigneeCode;
+	private String hconsigneeCode;
 	/**
 	 * HB/L 收货人中文名称
 	 */
 	@ApiModelProperty(value = "HB/L 收货人中文名称")
 	@TableField("h_Consignee_cn_name")
-	private String hConsigneeCnName;
+	private String hconsigneeCnName;
 	/**
 	 * HB/L 收货人英文名称
 	 */
 	@ApiModelProperty(value = "HB/L 收货人英文名称")
 	@TableField("h_Consignee_en_name")
-	private String hConsigneeEnName;
+	private String hconsigneeEnName;
 	/**
 	 * HB/L 收货人提单描述
 	 */
 	@ApiModelProperty(value = "HB/L 收货人提单描述")
 	@TableField("h_Consignee_details")
-	private String hConsigneeDetails;
+	private String hconsigneeDetails;
 	/**
 	 * HB/L 通知人 id
 	 */
 	@ApiModelProperty(value = "HB/L 通知人 id")
-	private Long hNotifyId;
+	@TableField("h_notify_id")
+	private Long hnotifyId;
 	/**
 	 * HB/L 通知人代码
 	 */
 	@ApiModelProperty(value = "HB/L 通知人代码")
-	private String hNotifyCode;
+	@TableField("h_notify_code")
+	private String hnotifyCode;
 	/**
 	 * HB/L 通知人中文名称
 	 */
 	@ApiModelProperty(value = "HB/L 通知人中文名称")
-	private String hNotifyCnName;
+	@TableField("h_notify_cn_name")
+	private String hnotifyCnName;
 	/**
 	 * HB/L 通知人英文名称
 	 */
 	@ApiModelProperty(value = "HB/L 通知人英文名称")
-	private String hNotifyEnName;
+	@TableField("h_notify_en_name")
+	private String hnotifyEnName;
 	/**
 	 * HB/L 通知人提单描述
 	 */
 	@ApiModelProperty(value = "HB/L 通知人提单描述")
-	private String hNotifyDetails;
+	@TableField("h_notify_details")
+	private String hnotifyDetails;
 	/**
 	 * HB/L 第二通知人 id
 	 */
 	@ApiModelProperty(value = "HB/L 第二通知人 id")
-	private Long hNotify2Id;
+	@TableField("h_notify2_id")
+	private Long hnotify2Id;
 	/**
 	 * HB/L 第二通知人代码
 	 */
 	@ApiModelProperty(value = "HB/L 第二通知人代码")
-	private String hNotify2Code;
+	@TableField("h_notify2_code")
+	private String hnotify2Code;
 	/**
 	 * HB/L 第二通知人中文名称
 	 */
 	@ApiModelProperty(value = "HB/L 第二通知人中文名称")
-	private String hNotify2CnName;
+	@TableField("h_notify2_cn_name")
+	private String hnotify2CnName;
 	/**
 	 * HB/L 第二通知人英文名称
 	 */
 	@ApiModelProperty(value = "HB/L 第二通知人英文名称")
-	private String hNotify2EnName;
+	@TableField("h_notify2_en_name")
+	private String hnotify2EnName;
 	/**
 	 * HB/L 第二通知人提单描述
 	 */
 	@ApiModelProperty(value = "HB/L 第二通知人提单描述")
-	private String hNotify2Details;
+	@TableField("h_notify2_details")
+	private String hnotify2Details;
 	/**
 	 * MB/L 付款方式 PP=预付, CC=到付, FPA, Other
 	 */
 	@ApiModelProperty(value = "MB/L 付款方式 PP=预付, CC=到付, FPA, Other")
-	private String mPaymode;
+	@TableField("m_paymode")
+	private String mpaymode;
 	/**
 	 * MB/L 付款地点
 	 */
 	@ApiModelProperty(value = "MB/L 付款地点")
-	private String mPayplace;
+	@TableField("m_payplace")
+	private String mpayplace;
 	/**
 	 * MB/L 发货人 id
 	 */
 	@ApiModelProperty(value = "MB/L 发货人 id")
-	private Long mShipperId;
+	@TableField("m_shipper_id")
+	private Long mshipperId;
 	/**
 	 * MB/L 发货人代码
 	 */
 	@ApiModelProperty(value = "MB/L 发货人代码")
-	private String mShipperCode;
+	@TableField("m_shipper_code")
+	private String mshipperCode;
 	/**
 	 * MB/L 发货人中文名称
 	 */
 	@ApiModelProperty(value = "MB/L 发货人中文名称")
-	private String mShipperCnName;
+	@TableField("m_shipper_cn_name")
+	private String mshipperCnName;
 	/**
 	 * MB/L 发货人英文名称
 	 */
 	@ApiModelProperty(value = "MB/L 发货人英文名称")
-	private String mShipperEnName;
+	@TableField("m_shipper_en_name")
+	private String mshipperEnName;
 	/**
 	 * MB/L 发货人提单描述
 	 */
 	@ApiModelProperty(value = "MB/L 发货人提单描述")
-	private String mShipperDetails;
+	@TableField("m_shipper_details")
+	private String mshipperDetails;
 	/**
 	 * MB/L 收货人 id
 	 */
 	@ApiModelProperty(value = "MB/L 收货人 id")
 	@TableField("m_Consignee_id")
-	private Long mConsigneeId;
+	private Long mconsigneeId;
 	/**
 	 * MB/L 收货人代码
 	 */
 	@ApiModelProperty(value = "MB/L 收货人代码")
 	@TableField("m_Consignee_code")
-	private String mConsigneeCode;
+	private String mconsigneeCode;
 	/**
 	 * MB/L 收货人中文名称
 	 */
 	@ApiModelProperty(value = "MB/L 收货人中文名称")
 	@TableField("m_Consignee_cn_name")
-	private String mConsigneeCnName;
+	private String mconsigneeCnName;
 	/**
 	 * MB/L 收货人英文名称
 	 */
 	@ApiModelProperty(value = "MB/L 收货人英文名称")
 	@TableField("m_Consignee_en_name")
-	private String mConsigneeEnName;
+	private String mconsigneeEnName;
 	/**
 	 * MB/L 收货人提单描述
 	 */
 	@ApiModelProperty(value = "MB/L 收货人提单描述")
 	@TableField("m_Consignee_details")
-	private String mConsigneeDetails;
+	private String mconsigneeDetails;
 	/**
 	 * MB/L 通知人 id
 	 */
 	@ApiModelProperty(value = "MB/L 通知人 id")
-	private Long mNotifyId;
+	@TableField("m_notify_id")
+	private Long mnotifyId;
 	/**
 	 * MB/L 通知人代码
 	 */
 	@ApiModelProperty(value = "MB/L 通知人代码")
-	private String mNotifyCode;
+	@TableField("m_notify_code")
+	private String mnotifyCode;
 	/**
 	 * MB/L 通知人中文名称
 	 */
 	@ApiModelProperty(value = "MB/L 通知人中文名称")
-	private String mNotifyCnName;
+	@TableField("m_notify_cn_name")
+	private String mnotifyCnName;
 	/**
 	 * MB/L 通知人英文名称
 	 */
 	@ApiModelProperty(value = "MB/L 通知人英文名称")
-	private String mNotifyEnName;
+	@TableField("m_notify_en_name")
+	private String mnotifyEnName;
 	/**
 	 * MB/L 通知人提单描述
 	 */
 	@ApiModelProperty(value = "MB/L 通知人提单描述")
-	private String mNotifyDetails;
+	@TableField("m_notify_details")
+	private String mnotifyDetails;
 	/**
 	 * MB/L 第二通知人 id
 	 */
 	@ApiModelProperty(value = "MB/L 第二通知人 id")
-	private Long mNotify2Id;
+	@TableField("m_notify2_id")
+	private Long mnotify2Id;
 	/**
 	 * MB/L 第二通知人代码
 	 */
 	@ApiModelProperty(value = "MB/L 第二通知人代码")
-	private String mNotify2Code;
+	@TableField("m_notify2_code")
+	private String mnotify2Code;
 	/**
 	 * MB/L 第二通知人中文名称
 	 */
 	@ApiModelProperty(value = "MB/L 第二通知人中文名称")
-	private String mNotify2CnName;
+	@TableField("m_notify2_cn_name")
+	private String mnotify2CnName;
 	/**
 	 * MB/L 第二通知人英文名称
 	 */
 	@ApiModelProperty(value = "MB/L 第二通知人英文名称")
-	private String mNotify2EnName;
+	@TableField("m_notify2_en_name")
+	private String mnotify2EnName;
 	/**
 	 * MB/L 第二通知人提单描述
 	 */
 	@ApiModelProperty(value = "MB/L 第二通知人提单描述")
-	private String mNotify2Details;
+	@TableField("m_notify2_details")
+	private String mnotify2Details;
 	/**
 	 * MB/L Forwarder 描述
 	 */
 	@ApiModelProperty(value = "MB/L Forwarder 描述")
-	private String mForwarderDetails;
+	@TableField("m_forwarder_details")
+	private String mforwarderDetails;
 	/**
 	 * 货物类别 dry=普货 danger=危险品 reefer=冻柜
 	 */
@@ -1300,97 +1335,113 @@ public class Bills implements Serializable {
 	 * HB/L 发货人国家代码
 	 */
 	@ApiModelProperty(value = "HB/L 发货人国家代码")
-	private String hShipperCntyCode;
+	@TableField("h_shipper_cnty_code")
+	private String hshipperCntyCode;
 
 	/**
 	 * HB/L 发货人国家名称
 	 */
 	@ApiModelProperty(value = "HB/L 发货人国家名称")
-	private String hShipperCntyName;
+	@TableField("h_shipper_cnty_name")
+	private String hshipperCntyName;
 
 	/**
 	 * HB/L 收货人国家代码
 	 */
 	@ApiModelProperty(value = "HB/L 收货人国家代码")
-	private String hConsigneeCntyCode;
+	@TableField("h_consignee_cnty_code")
+	private String hconsigneeCntyCode;
 
 	/**
 	 * HB/L 收货人国家名称
 	 */
 	@ApiModelProperty(value = "HB/L 收货人国家名称")
-	private String hConsigneeCntyName;
+	@TableField("h_consignee_cnty_name")
+	private String hconsigneeCntyName;
 
 	/**
 	 * HB/L 通知人国家代码
 	 */
 	@ApiModelProperty(value = "HB/L 通知人国家代码")
-	private String hNotifyCntyCode;
+	@TableField("h_notify_cnty_code")
+	private String hnotifyCntyCode;
 
 	/**
 	 * HB/L 通知人国家名称
 	 */
 	@ApiModelProperty(value = "HB/L 通知人国家名称")
-	private String hNotifyCntyName;
+	@TableField("h_notify_cnty_name")
+	private String hnotifyCntyName;
 
 	/**
 	 * HB/L 第二通知人国家代码
 	 */
 	@ApiModelProperty(value = "HB/L 第二通知人国家代码")
-	private String hNotify2CntyCode;
+	@TableField("h_notify2_cnty_code")
+	private String hnotify2CntyCode;
 
 	/**
 	 * HB/L 第二通知人国家名称
 	 */
 	@ApiModelProperty(value = "HB/L 第二通知人国家名称")
-	private String hNotify2CntyName;
+	@TableField("h_notify2_cnty_name")
+	private String hnotify2CntyName;
 
 	/**
 	 * MB/L 发货人国家代码
 	 */
 	@ApiModelProperty(value = "MB/L 发货人国家代码")
-	private String mShipperCntyCode;
+	@TableField("m_shipper_cnty_code")
+	private String mshipperCntyCode;
 
 	/**
 	 * MB/L 发货人国家名称
 	 */
 	@ApiModelProperty(value = "MB/L 发货人国家名称")
-	private String mShipperCntyName;
+	@TableField("m_shipper_cnty_name")
+	private String mshipperCntyName;
 
 	/**
 	 * MB/L 收货人国家代码
 	 */
 	@ApiModelProperty(value = "MB/L 收货人国家代码")
-	private String mConsigneeCntyCode;
+	@TableField("m_consignee_cnty_code")
+	private String mconsigneeCntyCode;
 
 	/**
 	 * MB/L 收货人国家名称
 	 */
 	@ApiModelProperty(value = "MB/L 收货人国家名称")
-	private String mConsigneeCntyName;
+	@TableField("m_consignee_cnty_name")
+	private String mconsigneeCntyName;
 
 	/**
 	 * MB/L 通知人国家代码
 	 */
 	@ApiModelProperty(value = "MB/L 通知人国家代码")
-	private String mNotifyCntyCode;
+	@TableField("m_notify_cnty_code")
+	private String mnotifyCntyCode;
 
 	/**
 	 * MB/L 通知人国家名称
 	 */
 	@ApiModelProperty(value = "MB/L 通知人国家名称")
-	private String mNotifyCntyName;
+	@TableField("m_notify_cnty_name")
+	private String mnotifyCntyName;
 
 	/**
 	 * MB/L 第二通知人国家代码
 	 */
 	@ApiModelProperty(value = "MB/L 第二通知人国家代码")
-	private String mNotify2CntyCode;
+	@TableField("m_notify2_cnty_code")
+	private String mnotify2CntyCode;
 
 	/**
 	 * MB/L 第二通知人国家名称
 	 */
 	@ApiModelProperty(value = "MB/L 第二通知人国家名称")
-	private String mNotify2CntyName;
+	@TableField("m_notify2_cnty_name")
+	private String mnotify2CntyName;
 	/**
 	 * SI 备注
 	 */

+ 7 - 4
blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/feign/DeliveryClient.java

@@ -187,12 +187,15 @@ public class DeliveryClient implements IDeliveryClient {
 			delivery.setExchangeRate(order.getExchangeRate());
 			delivery.setPurchaseRemark(order.getPurchaseRemark());
 			delivery.setShippingRemark(order.getShippingRemark());
-			delivery.setDocumentaryStatus(order.getDocumentaryStatus());
+
+			delivery.setEstimateGoodGoods(order.getProductionScheduling());
+			delivery.setDeliveryStatus(order.getProductionScheduling());
+			delivery.setDocumentaryStatus(order.getProductionScheduling());
+
 			delivery.setDocumentaryDate(order.getDocumentaryDate());
 			delivery.setCreateUser(order.getDocumenterId());
 			delivery.setCreateTime(new Date());
 			delivery.setTenantId(SecureUtil.getTenantId());
-			delivery.setDeliveryStatus("录入");
 			delivery.setBelongToCorpId(order.getBelongToCorpId());
 			delivery.setCorpAttn(order.getCorpAttn());
 			delivery.setCorpTel(order.getCorpTel());
@@ -306,8 +309,8 @@ public class DeliveryClient implements IDeliveryClient {
 		} else {
 			for (Delivery delivery : deliveryList) {
 				delivery.setEstimateGoodGoodsDate(new Date());
-				delivery.setEstimateGoodGoods("采购完成");
-				delivery.setDeliveryStatus("采购完成");
+				delivery.setEstimateGoodGoods("货备齐");
+				delivery.setDeliveryStatus("货备齐");
 				deliveryService.updateById(delivery);
 			}
 		}

+ 2 - 2
blade-service/blade-los/src/main/java/org/springblade/los/business/amends/controller/AmendsController.java

@@ -55,7 +55,7 @@ public class AmendsController extends BladeController {
 	@ApiOperationSupport(order = 1)
 	@ApiOperation(value = "详情", notes = "传入amends")
 	public R<Amends> detail(Amends amends) {
-		Amends detail = amendsService.getOne(Condition.getQueryWrapper(amends));
+		Amends detail = amendsService.detail(amends);
 		return R.data(detail);
 	}
 
@@ -108,7 +108,7 @@ public class AmendsController extends BladeController {
 	@ApiOperationSupport(order = 6)
 	@ApiOperation(value = "新增或修改", notes = "传入amends")
 	public R submit(@Valid @RequestBody Amends amends) {
-		return R.status(amendsService.saveOrUpdate(amends));
+		return amendsService.submit(amends);
 	}
 
 

+ 14 - 0
blade-service/blade-los/src/main/java/org/springblade/los/business/amends/service/IAmendsService.java

@@ -16,6 +16,7 @@
  */
 package org.springblade.los.business.amends.service;
 
+import org.springblade.core.tool.api.R;
 import org.springblade.los.business.amends.entity.Amends;
 import org.springblade.los.business.amends.vo.AmendsVO;
 import com.baomidou.mybatisplus.extension.service.IService;
@@ -38,4 +39,17 @@ public interface IAmendsService extends IService<Amends> {
 	 */
 	IPage<AmendsVO> selectAmendsPage(IPage<AmendsVO> page, AmendsVO amends);
 
+	/**
+	 *  新增或修改 业务-业务费用 AmendDate
+	 * @param amends
+	 * @return
+	 */
+    R submit(Amends amends);
+
+	/**
+	 * 详情
+	 * @param amends
+	 * @return
+	 */
+	Amends detail(Amends amends);
 }

+ 86 - 3
blade-service/blade-los/src/main/java/org/springblade/los/business/amends/service/impl/AmendsServiceImpl.java

@@ -16,13 +16,32 @@
  */
 package org.springblade.los.business.amends.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import lombok.AllArgsConstructor;
+import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.BeanUtil;
+import org.springblade.los.basic.cur.service.IBCurrencyService;
 import org.springblade.los.business.amends.entity.Amends;
-import org.springblade.los.business.amends.vo.AmendsVO;
 import org.springblade.los.business.amends.mapper.AmendsMapper;
 import org.springblade.los.business.amends.service.IAmendsService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springblade.los.business.amends.vo.AmendsVO;
+import org.springblade.los.business.files.entity.FilesCenter;
+import org.springblade.los.business.sea.dto.WaitingBox;
+import org.springblade.los.business.sea.entity.*;
+import org.springblade.los.finance.fee.entity.FeeCenter;
+import org.springblade.los.finance.fee.service.IFeeCenterService;
+import org.springblade.system.feign.ISysClient;
 import org.springframework.stereotype.Service;
-import com.baomidou.mybatisplus.core.metadata.IPage;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * 业务-业务费用 AmendDate 服务实现类
@@ -31,11 +50,75 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
  * @since 2023-12-12
  */
 @Service
+@AllArgsConstructor
 public class AmendsServiceImpl extends ServiceImpl<AmendsMapper, Amends> implements IAmendsService {
 
+	private final ISysClient sysClient;
+
+	private final IFeeCenterService feeCenterService;
+
 	@Override
 	public IPage<AmendsVO> selectAmendsPage(IPage<AmendsVO> page, AmendsVO amends) {
 		return page.setRecords(baseMapper.selectAmendsPage(page, amends));
 	}
 
+	@Override
+	public R submit(Amends amends) {
+		String deptId = "";
+		String deptName = "";
+		//获取部门ids对应中文名
+		if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
+			deptId = AuthUtil.getDeptId();
+			R<List<String>> res = sysClient.getDeptNames(AuthUtil.getDeptId());
+			if (res.isSuccess() && ObjectUtils.isNotNull(res.getData())) {
+				deptName = String.join(",", res.getData());
+			}
+		}
+		if (amends.getId() == null) {
+			amends.setCreateTime(new Date());
+			amends.setCreateUser(AuthUtil.getUserId());
+			amends.setCreateUserName(AuthUtil.getUserName());
+			if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
+				amends.setBranchId(deptId);
+				amends.setCreateDept(deptId);
+				amends.setCreateDeptName(deptName);
+			}
+		} else {
+			amends.setUpdateUser(AuthUtil.getUserId());
+			amends.setUpdateTime(new Date());
+			amends.setUpdateUserName(AuthUtil.getUserName());
+		}
+		this.saveOrUpdate(amends);
+		if (ObjectUtils.isNotNull(amends.getFeeCenterListC())) {
+			feeCenterService.submitList(amends.getFeeCenterListC());
+		}
+		if (ObjectUtils.isNotNull(amends.getFeeCenterListD())) {
+			feeCenterService.submitList(amends.getFeeCenterListD());
+		}
+		return R.data(amends);
+	}
+
+	@Override
+	public Amends detail(Amends amends) {
+		if (amends.getId() == null) {
+			throw new RuntimeException("缺少必要参数");
+		}
+		Amends detail = baseMapper.selectById(amends.getId());
+		detail.setFeeCenterListC(feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
+			.eq(FeeCenter::getIsDeleted, 0)
+			.eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
+			.eq(FeeCenter::getPid, detail.getId())
+			.eq(FeeCenter::getDc, "C")
+			.eq(FeeCenter::getBillNo, detail.getBillNo())
+		));
+		detail.setFeeCenterListD(feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
+			.eq(FeeCenter::getIsDeleted, 0)
+			.eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
+			.eq(FeeCenter::getPid, detail.getId())
+			.eq(FeeCenter::getDc, "D")
+			.eq(FeeCenter::getBillNo, detail.getBillNo())
+		));
+		return detail;
+	}
+
 }

+ 4 - 4
blade-service/blade-los/src/main/java/org/springblade/los/business/sea/controller/BillsController.java

@@ -119,8 +119,8 @@ public class BillsController extends BladeController {
 		lambdaQueryWrapper.and(ObjectUtils.isNotNull(bills.getBookingAgentCnName()), i -> i.like(Bills::getBookingAgentCnName, bills.getBookingAgentCnName()).or()
 			.like(Bills::getBookingAgentEnName, bills.getBookingAgentCnName()))
 			.eq(ObjectUtils.isNotNull(bills.getIssueType()), Bills::getIssueType, bills.getIssueType())
-			.and(ObjectUtils.isNotNull(bills.getHConsigneeCnName()), i -> i.like(Bills::getHConsigneeCnName, bills.getHConsigneeCnName()).or()
-				.like(Bills::getHConsigneeCode, bills.getHConsigneeCnName()).or().like(Bills::getHConsigneeEnName, bills.getHConsigneeCnName()))
+			.and(ObjectUtils.isNotNull(bills.getHconsigneeCnName()), i -> i.like(Bills::getHconsigneeCnName, bills.getHconsigneeCnName()).or()
+				.like(Bills::getHconsigneeCode, bills.getHconsigneeCnName()).or().like(Bills::getHconsigneeEnName, bills.getHconsigneeCnName()))
 
 			.eq(ObjectUtils.isNotNull(bills.getBillType()), Bills::getBillType, bills.getBillType())
 			.eq(ObjectUtils.isNotNull(bills.getBusinessType()), Bills::getBusinessType, bills.getBusinessType())
@@ -172,8 +172,8 @@ public class BillsController extends BladeController {
 		lambdaQueryWrapper.and(ObjectUtils.isNotNull(bills.getBookingAgentCnName()), i -> i.like(Bills::getBookingAgentCnName, bills.getBookingAgentCnName()).or()
 			.like(Bills::getBookingAgentEnName, bills.getBookingAgentCnName()))
 			.eq(ObjectUtils.isNotNull(bills.getIssueType()), Bills::getIssueType, bills.getIssueType())
-			.and(ObjectUtils.isNotNull(bills.getHConsigneeCnName()), i -> i.like(Bills::getHConsigneeCnName, bills.getHConsigneeCnName()).or()
-				.like(Bills::getHConsigneeCode, bills.getHConsigneeCnName()).or().like(Bills::getHConsigneeEnName, bills.getHConsigneeCnName()))
+			.and(ObjectUtils.isNotNull(bills.getHconsigneeCnName()), i -> i.like(Bills::getHconsigneeCnName, bills.getHconsigneeCnName()).or()
+				.like(Bills::getHconsigneeCode, bills.getHconsigneeCnName()).or().like(Bills::getHconsigneeEnName, bills.getHconsigneeCnName()))
 
 			.eq(ObjectUtils.isNotNull(bills.getBillType()), Bills::getBillType, bills.getBillType())
 			.eq(ObjectUtils.isNotNull(bills.getBusinessType()), Bills::getBusinessType, bills.getBusinessType())

+ 11 - 0
blade-service/blade-los/src/main/java/org/springblade/los/business/sea/controller/PreContainersController.java

@@ -34,6 +34,8 @@ import org.springblade.los.business.sea.vo.PreContainersVO;
 import org.springblade.los.business.sea.service.IPreContainersService;
 import org.springblade.core.boot.ctrl.BladeController;
 
+import java.util.List;
+
 /**
  * 业务-海运进出口-预配箱型箱量 控制器
  *
@@ -111,6 +113,15 @@ public class PreContainersController extends BladeController {
 		return preContainersService.submit(preContainers);
 	}
 
+	/**
+	 * 新增或修改 业务-海运进出口-预配箱型箱量
+	 */
+	@PostMapping("/submitList")
+	@ApiOperationSupport(order = 6)
+	@ApiOperation(value = "新增或修改", notes = "传入preContainers")
+	public R submitList(@Valid @RequestBody List<PreContainers> preContainers) {
+		return preContainersService.submitList(preContainers);
+	}
 
 	/**
 	 * 删除 业务-海运进出口-预配箱型箱量

+ 61 - 61
blade-service/blade-los/src/main/java/org/springblade/los/business/sea/mapper/BillsMapper.xml

@@ -98,51 +98,51 @@
         <result column="number_of_obl" property="numberOfObl"/>
         <result column="number_of_copy" property="numberOfCopy"/>
         <result column="service_terms" property="serviceTerms"/>
-        <result column="h_paymode" property="hPaymode"/>
-        <result column="h_payplace" property="hPayplace"/>
-        <result column="h_shipper_id" property="hShipperId"/>
-        <result column="h_shipper_code" property="hShipperCode"/>
-        <result column="h_shipper_cn_name" property="hShipperCnName"/>
-        <result column="h_shipper_en_name" property="hShipperEnName"/>
-        <result column="h_shipper_details" property="hShipperDetails"/>
-        <result column="h_Consignee_id" property="hConsigneeId"/>
-        <result column="h_Consignee_code" property="hConsigneeCode"/>
-        <result column="h_Consignee_cn_name" property="hConsigneeCnName"/>
-        <result column="h_Consignee_en_name" property="hConsigneeEnName"/>
-        <result column="h_Consignee_details" property="hConsigneeDetails"/>
-        <result column="h_notify_id" property="hNotifyId"/>
-        <result column="h_notify_code" property="hNotifyCode"/>
-        <result column="h_notify_cn_name" property="hNotifyCnName"/>
-        <result column="h_notify_en_name" property="hNotifyEnName"/>
-        <result column="h_notify_details" property="hNotifyDetails"/>
-        <result column="h_notify2_id" property="hNotify2Id"/>
-        <result column="h_notify2_code" property="hNotify2Code"/>
-        <result column="h_notify2_cn_name" property="hNotify2CnName"/>
-        <result column="h_notify2_en_name" property="hNotify2EnName"/>
-        <result column="h_notify2_details" property="hNotify2Details"/>
-        <result column="m_paymode" property="mPaymode"/>
-        <result column="m_payplace" property="mPayplace"/>
-        <result column="m_shipper_id" property="mShipperId"/>
-        <result column="m_shipper_code" property="mShipperCode"/>
-        <result column="m_shipper_cn_name" property="mShipperCnName"/>
-        <result column="m_shipper_en_name" property="mShipperEnName"/>
-        <result column="m_shipper_details" property="mShipperDetails"/>
-        <result column="m_Consignee_id" property="mConsigneeId"/>
-        <result column="m_Consignee_code" property="mConsigneeCode"/>
-        <result column="m_Consignee_cn_name" property="mConsigneeCnName"/>
-        <result column="m_Consignee_en_name" property="mConsigneeEnName"/>
-        <result column="m_Consignee_details" property="mConsigneeDetails"/>
-        <result column="m_notify_id" property="mNotifyId"/>
-        <result column="m_notify_code" property="mNotifyCode"/>
-        <result column="m_notify_cn_name" property="mNotifyCnName"/>
-        <result column="m_notify_en_name" property="mNotifyEnName"/>
-        <result column="m_notify_details" property="mNotifyDetails"/>
-        <result column="m_notify2_id" property="mNotify2Id"/>
-        <result column="m_notify2_code" property="mNotify2Code"/>
-        <result column="m_notify2_cn_name" property="mNotify2CnName"/>
-        <result column="m_notify2_en_name" property="mNotify2EnName"/>
-        <result column="m_notify2_details" property="mNotify2Details"/>
-        <result column="m_forwarder_details" property="mForwarderDetails"/>
+        <result column="h_paymode" property="hpaymode"/>
+        <result column="h_payplace" property="hpayplace"/>
+        <result column="h_shipper_id" property="hshipperId"/>
+        <result column="h_shipper_code" property="hshipperCode"/>
+        <result column="h_shipper_cn_name" property="hshipperCnName"/>
+        <result column="h_shipper_en_name" property="hshipperEnName"/>
+        <result column="h_shipper_details" property="hshipperDetails"/>
+        <result column="h_Consignee_id" property="hconsigneeId"/>
+        <result column="h_Consignee_code" property="hconsigneeCode"/>
+        <result column="h_Consignee_cn_name" property="hconsigneeCnName"/>
+        <result column="h_Consignee_en_name" property="hconsigneeEnName"/>
+        <result column="h_Consignee_details" property="hconsigneeDetails"/>
+        <result column="h_notify_id" property="hnotifyId"/>
+        <result column="h_notify_code" property="hnotifyCode"/>
+        <result column="h_notify_cn_name" property="hnotifyCnName"/>
+        <result column="h_notify_en_name" property="hnotifyEnName"/>
+        <result column="h_notify_details" property="hnotifyDetails"/>
+        <result column="h_notify2_id" property="hnotify2Id"/>
+        <result column="h_notify2_code" property="hnotify2Code"/>
+        <result column="h_notify2_cn_name" property="hnotify2CnName"/>
+        <result column="h_notify2_en_name" property="hnotify2EnName"/>
+        <result column="h_notify2_details" property="hnotify2Details"/>
+        <result column="m_paymode" property="mpaymode"/>
+        <result column="m_payplace" property="mpayplace"/>
+        <result column="m_shipper_id" property="mshipperId"/>
+        <result column="m_shipper_code" property="mshipperCode"/>
+        <result column="m_shipper_cn_name" property="mshipperCnName"/>
+        <result column="m_shipper_en_name" property="mshipperEnName"/>
+        <result column="m_shipper_details" property="mshipperDetails"/>
+        <result column="m_Consignee_id" property="mconsigneeId"/>
+        <result column="m_Consignee_code" property="mconsigneeCode"/>
+        <result column="m_Consignee_cn_name" property="mconsigneeCnName"/>
+        <result column="m_Consignee_en_name" property="mconsigneeEnName"/>
+        <result column="m_Consignee_details" property="mconsigneeDetails"/>
+        <result column="m_notify_id" property="mnotifyId"/>
+        <result column="m_notify_code" property="mnotifyCode"/>
+        <result column="m_notify_cn_name" property="mnotifyCnName"/>
+        <result column="m_notify_en_name" property="mnotifyEnName"/>
+        <result column="m_notify_details" property="mnotifyDetails"/>
+        <result column="m_notify2_id" property="mnotify2Id"/>
+        <result column="m_notify2_code" property="mnotify2Code"/>
+        <result column="m_notify2_cn_name" property="mnotify2CnName"/>
+        <result column="m_notify2_en_name" property="mnotify2EnName"/>
+        <result column="m_notify2_details" property="mnotify2Details"/>
+        <result column="m_forwarder_details" property="mforwarderDetails"/>
         <result column="cargo_type" property="cargoType"/>
         <result column="is_large_cargo" property="isLargeCargo"/>
         <result column="hscode" property="hscode"/>
@@ -235,22 +235,22 @@
         <result column="acc_dept" property="accDept"/>
         <result column="acc_dept_name" property="accDeptName"/>
 
-        <result column="h_shipper_cnty_code" property="hShipperCntyCode"/>
-        <result column="h_shipper_cnty_name" property="hShipperCntyName"/>
-        <result column="h_consignee_cnty_code" property="hConsigneeCntyCode"/>
-        <result column="h_consignee_cnty_name" property="hConsigneeCntyName"/>
-        <result column="h_notify_cnty_code" property="hNotifyCntyCode"/>
-        <result column="h_notify_cnty_name" property="hNotifyCntyName"/>
-        <result column="h_notify2_cnty_code" property="hNotify2CntyCode"/>
-        <result column="h_notify2_cnty_name" property="hNotify2CntyName"/>
-        <result column="m_shipper_cnty_code" property="mShipperCntyCode"/>
-        <result column="m_shipper_cnty_name" property="mShipperCntyName"/>
-        <result column="m_consignee_cnty_code" property="mConsigneeCntyCode"/>
-        <result column="m_consignee_cnty_name" property="mConsigneeCntyName"/>
-        <result column="m_notify_cnty_code" property="mNotifyCntyCode"/>
-        <result column="m_notify_cnty_name" property="mNotifyCntyName"/>
-        <result column="m_notify2_cnty_code" property="mNotify2CntyCode"/>
-        <result column="m_notify2_cnty_name" property="mNotify2CntyName"/>
+        <result column="h_shipper_cnty_code" property="hshipperCntyCode"/>
+        <result column="h_shipper_cnty_name" property="hshipperCntyName"/>
+        <result column="h_consignee_cnty_code" property="hconsigneeCntyCode"/>
+        <result column="h_consignee_cnty_name" property="hconsigneeCntyName"/>
+        <result column="h_notify_cnty_code" property="hnotifyCntyCode"/>
+        <result column="h_notify_cnty_name" property="hnotifyCntyName"/>
+        <result column="h_notify2_cnty_code" property="hnotify2CntyCode"/>
+        <result column="h_notify2_cnty_name" property="hnotify2CntyName"/>
+        <result column="m_shipper_cnty_code" property="mshipperCntyCode"/>
+        <result column="m_shipper_cnty_name" property="mshipperCntyName"/>
+        <result column="m_consignee_cnty_code" property="mconsigneeCntyCode"/>
+        <result column="m_consignee_cnty_name" property="mconsigneeCntyName"/>
+        <result column="m_notify_cnty_code" property="mnotifyCntyCode"/>
+        <result column="m_notify_cnty_name" property="mnotifyCntyName"/>
+        <result column="m_notify2_cnty_code" property="mnotify2CntyCode"/>
+        <result column="m_notify2_cnty_name" property="mnotify2CntyName"/>
         <result column="si_remarks" property="siRemarks"/>
         <result column="booking_agent_id" property="bookingAgentId"/>
         <result column="booking_agent_cn_name" property="bookingAgentCnName"/>

+ 79 - 45
blade-service/blade-los/src/main/java/org/springblade/los/business/sea/service/impl/BillsServiceImpl.java

@@ -166,7 +166,7 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 			bills.setUpdateTime(new Date());
 			bills.setUpdateUserName(AuthUtil.getUserName());
 		}
-
+		this.saveOrUpdate(bills);
 		/**-------------箱型箱量计算---------*/
 		Integer GP20 = 0;
 		Integer GP40 = 0;
@@ -175,11 +175,8 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 		Integer GP48 = 0;
 		String boxTypeSum = "";
 		if (ObjectUtils.isNotNull(bills.getPreContainersList())) {
-			R res = preContainersService.submitList(bills.getPreContainersList());
-			if (!res.isSuccess()) {
-				throw new RuntimeException("保存失败");
-			}
 			for (PreContainers item : bills.getPreContainersList()) {
+				item.setPid(bills.getId());
 				if ("20GP".equals(item.getCntrTypeCode())) {
 					GP20 += item.getQuantity();
 				} else if ("40GP".equals(item.getCntrTypeCode())) {
@@ -192,6 +189,10 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 					GP48 += item.getQuantity();
 				}
 			}
+			R res = preContainersService.submitList(bills.getPreContainersList());
+			if (!res.isSuccess()) {
+				throw new RuntimeException("保存失败");
+			}
 			if (GP20 > 0) {
 				boxTypeSum += "20GP * " + GP20 + ",";
 			}
@@ -218,23 +219,6 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 		bills.setQuantityV45(GP45);
 		bills.setQuantityV48(GP48);
 		/**-------------箱型箱量计算---------*/
-
-	/*	//判断是否修改
-		String charData = bills.getBusinessType() + bills.getBillType() + bills.getBillNo()
-			+ bills.getBillDate() + bills.getCorpId() + bills.getCorpCnName() + bills.getCorpEnName()
-			+ bills.getLineId() + bills.getLineCnName() + bills.getLineEnName() + bills.getVesselId()
-			+ bills.getVesselCnName() + bills.getVesselEnName() + bills.getVoyageNo() + bills.getMblno()
-			+ bills.getEtd() + bills.getEta() + bills.getPolCnName() + bills.getPolId() + bills.getPolEnName()
-			+ bills.getPolCode() + bills.getPodCode() + bills.getPodId() + bills.getPodCnName() + bills.getPodCnName()
-			+ bills + bills.getMPaymode();
-		if (ObjectUtils.isNotNull(bills.getCharData())) {
-			if (!charData.equals(bills.getCharData())) {
-				bills.setCharData(charData);
-			}
-		} else {
-			bills.setCharData(charData);
-		}*/
-
 		/**-------------费用计算---------*/
 		BigDecimal amountDr = new BigDecimal("0.00");
 		BigDecimal amountCr = new BigDecimal("0.00");
@@ -247,6 +231,41 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 		BigDecimal amountProfitLoc = new BigDecimal("0.00");
 		if (ObjectUtils.isNotNull(bills.getFeeCenterListC())) {
 			for (FeeCenter item : bills.getFeeCenterListC()) {
+				item.setPid(bills.getId());
+				item.setBillNo(bills.getBillNo());
+				item.setBusinessType(bills.getBusinessType());
+				item.setBillType(bills.getBillType());
+				item.setBillDate(bills.getBillDate());
+				item.setSrcType(bills.getSrcType());
+				item.setSrcId(bills.getSrcId());
+				item.setSrcCnName(bills.getSrcCnName());
+				item.setSrcEnName(bills.getSrcEnName());
+				item.setBillCorpId(bills.getCorpId());
+				item.setBillCorpCnName(bills.getCorpCnName());
+				item.setBillCorpEnName(bills.getCorpEnName());
+				item.setLineId(bills.getLineId());
+				item.setLineCnName(bills.getLineCnName());
+				item.setLineEnName(bills.getLineEnName());
+				item.setVesselId(bills.getVesselId());
+				item.setVesselEnName(bills.getVesselEnName());
+				item.setVesselCnName(bills.getVesselCnName());
+				item.setVoyageNo(bills.getVoyageNo());
+				item.setMblno(bills.getMblno());
+				item.setHblno(bills.getHblno());
+				item.setEtd(bills.getEtd());
+				item.setEta(bills.getEta());
+				item.setPolId(bills.getPolId());
+				item.setPolCode(bills.getPolCode());
+				item.setPolCnName(bills.getPolCnName());
+				item.setPolEnName(bills.getPolEnName());
+				item.setPodId(bills.getPodId());
+				item.setPodCode(bills.getPodCode());
+				item.setPodCnName(bills.getPodCnName());
+				item.setPodEnName(bills.getPodEnName());
+				item.setPaymode(bills.getMpaymode());
+				item.setPayplace(bills.getMpayplace());
+				item.setRefno(bills.getRefno());
+				item.setBookingNo(bills.getBookingNo());
 				if ("USD".equals(item.getCurCode())) {
 					amountCrUsd = amountCrUsd.add(item.getAmount());
 				} else if ("CNY".equals(item.getCurCode())) {
@@ -256,10 +275,45 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 					amountCrUsd = amountCrUsd.add(usd);
 				}
 			}
-			feeCenterService.saveOrUpdateBatch(bills.getFeeCenterListC());
+			feeCenterService.submitList(bills.getFeeCenterListC());
 		}
 		if (ObjectUtils.isNotNull(bills.getFeeCenterListD())) {
 			for (FeeCenter item : bills.getFeeCenterListD()) {
+				item.setPid(bills.getId());
+				item.setBillNo(bills.getBillNo());
+				item.setBusinessType(bills.getBusinessType());
+				item.setBillType(bills.getBillType());
+				item.setBillDate(bills.getBillDate());
+				item.setSrcType(bills.getSrcType());
+				item.setSrcId(bills.getSrcId());
+				item.setSrcCnName(bills.getSrcCnName());
+				item.setSrcEnName(bills.getSrcEnName());
+				item.setBillCorpId(bills.getCorpId());
+				item.setBillCorpCnName(bills.getCorpCnName());
+				item.setBillCorpEnName(bills.getCorpEnName());
+				item.setLineId(bills.getLineId());
+				item.setLineCnName(bills.getLineCnName());
+				item.setLineEnName(bills.getLineEnName());
+				item.setVesselId(bills.getVesselId());
+				item.setVesselEnName(bills.getVesselEnName());
+				item.setVesselCnName(bills.getVesselCnName());
+				item.setVoyageNo(bills.getVoyageNo());
+				item.setMblno(bills.getMblno());
+				item.setHblno(bills.getHblno());
+				item.setEtd(bills.getEtd());
+				item.setEta(bills.getEta());
+				item.setPolId(bills.getPolId());
+				item.setPolCode(bills.getPolCode());
+				item.setPolCnName(bills.getPolCnName());
+				item.setPolEnName(bills.getPolEnName());
+				item.setPodId(bills.getPodId());
+				item.setPodCode(bills.getPodCode());
+				item.setPodCnName(bills.getPodCnName());
+				item.setPodEnName(bills.getPodEnName());
+				item.setPaymode(bills.getMpaymode());
+				item.setPayplace(bills.getMpayplace());
+				item.setRefno(bills.getRefno());
+				item.setBookingNo(bills.getBookingNo());
 				if ("USD".equals(item.getCurCode())) {
 					amountDrUsd = amountDrUsd.add(item.getAmount());
 				} else if ("CNY".equals(item.getCurCode())) {
@@ -269,9 +323,8 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 					amountDrUsd = amountDrUsd.add(usd);
 				}
 			}
-			feeCenterService.saveOrUpdateBatch(bills.getFeeCenterListD());
+			feeCenterService.submitList(bills.getFeeCenterListD());
 		}
-
 		//主单应加上分单费用
 		if ("MM".equals(bills.getBillType()) && ObjectUtils.isNotNull(bills.getId())) {
 			List<Bills> details = baseMapper.selectList(new LambdaQueryWrapper<Bills>()
@@ -290,11 +343,9 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 		//利润 = 收 - 付
 		amountProfit = amountDr.subtract(amountCr);
 		amountProfitUsd = amountDrUsd.subtract(amountCrUsd);
-
 		amountDrLoc = amountDrLoc.add(bCurrencyService.converterCny("USD", amountDrUsd)).add(amountDr);
 		amountCrLoc = amountCrLoc.add(bCurrencyService.converterCny("USD", amountCrUsd)).add(amountCr);
 		amountProfitLoc = amountDrLoc.subtract(amountCrLoc);
-
 		bills.setAmountDr(amountDr);
 		bills.setAmountCr(amountCr);
 		bills.setAmountProfit(amountProfit);
@@ -304,8 +355,8 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 		bills.setAmountDrLoc(amountDrLoc);
 		bills.setAmountCrLoc(amountCrLoc);
 		bills.setAmountProfitLoc(amountProfitLoc);
-		/**-------------费用计算---------*/
 		this.saveOrUpdate(bills);
+		/**-------------费用计算---------*/
 		return R.data(bills);
 	}
 
@@ -342,29 +393,12 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 		}
 		detail.setContainersList(containersList);
 		List<WaitingBox> waitingBoxList = new ArrayList<>();
-//		if ("DD".equals(detail.getBillType())) {
 		WaitingBox waitingBox = new WaitingBox();
 		BeanUtil.copyProperties(detail, waitingBox);
 		waitingBox.setQuantity(detail.getQuantity().subtract(detail.getCfsQuantity()));
 		waitingBox.setGrossWeight(detail.getGrossWeight().subtract(detail.getCfsGrossWeight()));
 		waitingBox.setMeasurement(detail.getMeasurement().subtract(detail.getCfsMeasurement()));
 		waitingBoxList.add(waitingBox);
-		/*} else if ("MM".equals(detail.getBillType())) {
-			List<Bills> billsList = baseMapper.selectList(new LambdaQueryWrapper<Bills>()
-				.eq(Bills::getTenantId, AuthUtil.getTenantId())
-				.eq(Bills::getIsDeleted, 0)
-				.eq(Bills::getMasterId, detail.getId())
-				.eq(Bills::getMasterBillNo, detail.getBillNo()));
-			for (Bills item : billsList) {
-				WaitingBox waitingBox = new WaitingBox();
-				BeanUtil.copyProperties(item, waitingBox);
-				waitingBox.setQuantity(detail.getCfsQuantity());
-				waitingBox.setGrossWeight(detail.getCfsGrossWeight());
-				waitingBox.setNetWeight(detail.getNetWeight());
-				waitingBox.setMeasurement(detail.getCfsMeasurement());
-				waitingBoxList.add(waitingBox);
-			}
-		}*/
 		detail.setWaitingBoxList(waitingBoxList);
 		detail.setFeeCenterListC(feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
 			.eq(FeeCenter::getIsDeleted, 0)

+ 1 - 1
blade-service/blade-los/src/main/java/org/springblade/los/finance/fee/service/impl/FeeCenterServiceImpl.java

@@ -198,7 +198,7 @@ public class FeeCenterServiceImpl extends ServiceImpl<FeeCenterMapper, FeeCenter
 				feeCenter.setPodCnName(bills.getPodCnName());
 				feeCenter.setPodEnName(bills.getPodEnName());
 				feeCenter.setDc(losBFeesTemplate.getDc());
-				feeCenter.setPaymode(bills.getMPaymode());
+				feeCenter.setPaymode(bills.getMpaymode());
 				feeCenter.setSort(count);
 				count++;
 				feeCenter.setCorpId(items.getCorpId());

+ 0 - 4
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/goods/controller/GoodsDescController.java

@@ -370,10 +370,6 @@ public class GoodsDescController extends BladeController {
 		List<PjProductLaunch> pjProductLaunchList = productLaunchService.list(queryWrapper);
 		List<Long> ids = pjProductLaunchList.stream().map(PjProductLaunch::getGoodsId).distinct().collect(Collectors.toList());
 		PjCorpsDesc pjCorpsDesc = corpsDescService.getById(goods.getCustomId());
-		String priceSystem = "";
-		if (ObjectUtils.isNotNull(pjCorpsDesc)) {
-			priceSystem = pjCorpsDesc.getPriceSystem();
-		}
 		LambdaQueryWrapper<PjGoodsDesc> lambdaQueryWrapper = new LambdaQueryWrapper<>();
 		lambdaQueryWrapper.eq(PjGoodsDesc::getTenantId, AuthUtil.getTenantId())
 			.eq(PjGoodsDesc::getIsDeleted, 0)

+ 17 - 9
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/mapper/OrderMapper.java

@@ -47,7 +47,8 @@ public interface OrderMapper extends BaseMapper<PjOrder> {
 	 * @return
 	 */
 	List<OrderVO> selectOrderPage(IPage page, OrderVO order);
-/**
+
+	/**
 	 * 自定义分页
 	 *
 	 * @param page
@@ -60,20 +61,27 @@ public interface OrderMapper extends BaseMapper<PjOrder> {
 
 	List<PjOrder> salesman(@Param("order") PjOrder order);
 
-	Map<String, BigDecimal> columnar(@Param("firstDay")LocalDate firstDay, @Param("lastDay")LocalDate lastDay,
-									 @Param("tenantId")String tenantId,@Param("salesCompanyId")Long salesCompanyId);
+	Map<String, BigDecimal> columnar(@Param("firstDay") LocalDate firstDay, @Param("lastDay") LocalDate lastDay,
+									 @Param("tenantId") String tenantId, @Param("salesCompanyId") Long salesCompanyId);
 
-    List<PjOrderStatisticsWeb> statisticsPage(IPage<PjOrderStatisticsWeb> page,@Param("order") PjOrderStatisticsWeb order);
+	List<PjOrderStatisticsWeb> statisticsPage(IPage<PjOrderStatisticsWeb> page, @Param("order") PjOrderStatisticsWeb order);
 
 	List<PjOrderStatisticsExcel> statisticsExport(@Param("order") PjOrderStatisticsWeb order);
 
-    int corpAnalysis(@Param("order") PjOrder order);
+	int corpAnalysis(@Param("order") PjOrder order);
+
+	List<PjShipStockDetails> stockDataDetailsOrder(@Param("order") PjShipStockDetails pjShipStockDetails);
 
-    List<PjShipStockDetails> stockDataDetailsOrder(@Param("order")PjShipStockDetails pjShipStockDetails);
+	List<Map<String, Object>> brandSalesVolume(@Param("statusDate") String statusDate, @Param("endDate") String endDate,
+											   @Param("deptId") String deptId, @Param("tenantId") String tenantId);
 
-	List<Map<String, Object>> brandSalesVolume(@Param("statusDate") String statusDate, @Param("endDate")String endDate, @Param("deptId")String deptId, @Param("tenantId")String tenantId);
+	List<Map<String, Object>> corpsSalesVolume(@Param("statusDate") String statusDate, @Param("endDate") String endDate,
+											   @Param("deptId") String deptId, @Param("tenantId") String tenantId);
 
-	List<Map<String, Object>> corpsSalesVolume(@Param("statusDate")String statusDate, @Param("endDate")String endDate, @Param("deptId")String deptId, @Param("tenantId")String tenantId);
+	List<Map<String, Object>> sizeSalesVolumeProportion(@Param("statusDate") String statusDate, @Param("endDate") String endDate,
+														@Param("deptId") String deptId, @Param("tenantId") String tenantId);
 
-	List<Map<String, Object>> sizeSalesVolumeProportion(@Param("statusDate")String statusDate, @Param("endDate")String endDate,@Param("deptId")String deptId, @Param("tenantId")String tenantId);
+	Map<String, Object> sizeSalesVolumeProportionGetOne(@Param("statusDate") String statusDate, @Param("endDate") String endDate,
+														@Param("deptId") String deptId, @Param("tenantId") String tenantId,
+														@Param("goodsSize") String goodsSize);
 }

+ 36 - 9
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/mapper/OrderMapper.xml

@@ -398,7 +398,7 @@
     <select id="brandSalesVolume" resultType="java.util.Map">
         SELECT
             pbd.cname AS cname,
-            if(SUM( poi.goods_num ),SUM( poi.goods_num ),0) AS number
+            if(SUM( poi.send_num ),SUM( poi.send_num ),0) AS number
         FROM
             pjpf_order_items poi
                 LEFT JOIN pjpf_order po ON poi.pid = po.id
@@ -413,8 +413,8 @@
           AND (( po.business_source = '外部销售' AND FIND_IN_SET( po.actual_payment_status, '2,3' ) )
                    OR (po.business_source = '内部销售' AND FIND_IN_SET( po.actual_payment_status, '0,1,2,3' )))
           AND po.status = '已发货'
-          AND DATE_FORMAT(po.business_date,'%Y-%m') &gt;= DATE_FORMAT(#{statusDate},'%Y-%m')
-          AND DATE_FORMAT(po.business_date,'%Y-%m') &lt;= DATE_FORMAT(#{endDate},'%Y-%m')
+          AND DATE_FORMAT(po.busines_date,'%Y-%m') &gt;= DATE_FORMAT(#{statusDate},'%Y-%m')
+          AND DATE_FORMAT(po.busines_date,'%Y-%m') &lt;= DATE_FORMAT(#{endDate},'%Y-%m')
         GROUP BY
             poi.brand_id
             LIMIT 10
@@ -422,7 +422,7 @@
     <select id="corpsSalesVolume" resultType="java.util.Map">
         SELECT
             pcd.cname AS cname,
-            if(SUM( poi.goods_num ),SUM( poi.goods_num ),0) AS number
+            if(SUM( poi.send_num ),SUM( poi.send_num ),0) AS number
         FROM
             pjpf_order po
                 LEFT JOIN pjpf_order_items poi ON po.id = poi.pid
@@ -437,8 +437,8 @@
           AND (( po.business_source = '外部销售' AND FIND_IN_SET( po.actual_payment_status, '2,3' ) )
             OR (po.business_source = '内部销售' AND FIND_IN_SET( po.actual_payment_status, '0,1,2,3' )))
           AND po.status = '已发货'
-          AND DATE_FORMAT(po.business_date,'%Y-%m') &gt;= DATE_FORMAT(#{statusDate},'%Y-%m')
-          AND DATE_FORMAT(po.business_date,'%Y-%m') &lt;= DATE_FORMAT(#{endDate},'%Y-%m')
+          AND DATE_FORMAT(po.busines_date,'%Y-%m') &gt;= DATE_FORMAT(#{statusDate},'%Y-%m')
+          AND DATE_FORMAT(po.busines_date,'%Y-%m') &lt;= DATE_FORMAT(#{endDate},'%Y-%m')
         GROUP BY
             po.customer_id
         ORDER BY
@@ -449,7 +449,7 @@
         SELECT
             pbd.goods_size AS cname,
             IF
-                ( SUM( poi.goods_num ), SUM( poi.goods_num ), 0 ) AS number
+                ( SUM( poi.send_num ), SUM( poi.send_num ), 0 ) AS number
         FROM
             pjpf_order_items poi
                 LEFT JOIN pjpf_order po ON poi.pid = po.id
@@ -464,12 +464,39 @@
           AND (( po.business_source = '外部销售' AND FIND_IN_SET( po.actual_payment_status, '2,3' ) )
             OR (po.business_source = '内部销售' AND FIND_IN_SET( po.actual_payment_status, '0,1,2,3' )))
           AND po.status = '已发货'
-          AND DATE_FORMAT(po.business_date,'%Y-%m') &gt;= DATE_FORMAT(#{statusDate},'%Y-%m')
-          AND DATE_FORMAT(po.business_date,'%Y-%m') &lt;= DATE_FORMAT(#{endDate},'%Y-%m')
+          AND DATE_FORMAT(po.busines_date,'%Y-%m') &gt;= DATE_FORMAT(#{statusDate},'%Y-%m')
+          AND DATE_FORMAT(po.busines_date,'%Y-%m') &lt;= DATE_FORMAT(#{endDate},'%Y-%m')
         GROUP BY
             pbd.goods_size
         ORDER BY
             number DESC
     </select>
+    <select id="sizeSalesVolumeProportionGetOne" resultType="java.util.Map">
+        SELECT
+            pbd.goods_size AS cname,
+            IF
+                ( SUM( poi.send_num ), SUM( poi.send_num ), 0 ) AS number
+        FROM
+            pjpf_order_items poi
+                LEFT JOIN pjpf_order po ON poi.pid = po.id
+                LEFT JOIN pjpf_goods_desc pbd ON poi.goods_id = pbd.id
+        WHERE
+            po.tenant_id = #{tenantId}
+          AND po.is_deleted = '0'
+          AND find_in_set(po.sales_company_id,#{deptId})
+          AND poi.is_deleted = '0'
+          AND poi.tenant_id = #{tenantId}
+          AND po.bs_type = 'XS'
+          AND (( po.business_source = '外部销售' AND FIND_IN_SET( po.actual_payment_status, '2,3' ) )
+            OR (po.business_source = '内部销售' AND FIND_IN_SET( po.actual_payment_status, '0,1,2,3' )))
+          AND po.status = '已发货'
+          AND DATE_FORMAT(po.busines_date,'%Y-%m') &gt;= DATE_FORMAT(#{statusDate},'%Y-%m')
+          AND DATE_FORMAT(po.busines_date,'%Y-%m') &lt;= DATE_FORMAT(#{endDate},'%Y-%m')
+        <if test="goodsSize!=null">
+            and pbd.goods_size ${goodsSize}
+        </if>
+        ORDER BY
+            number DESC
+    </select>
 
 </mapper>

+ 2 - 0
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/service/IOrderService.java

@@ -186,4 +186,6 @@ public interface IOrderService extends IService<PjOrder> {
 	List<Map<String, Object>> corpsSalesVolume(String statusDate, String endDate, String deptId, String tenantId);
 
 	List<Map<String, Object>> sizeSalesVolumeProportion(String statusDate, String endDate, String deptId, String tenantId);
+
+	Map<String, Object> sizeSalesVolumeProportionGetOne(String statusDate, String endDate, String deptId, String tenantId, String goodsSize);
 }

+ 14 - 4
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/service/impl/OrderServiceImpl.java

@@ -994,17 +994,22 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 
 	@Override
 	public List<Map<String, Object>> brandSalesVolume(String statusDate, String endDate, String deptId, String tenantId) {
-		return baseMapper.brandSalesVolume(statusDate,endDate,deptId,tenantId);
+		return baseMapper.brandSalesVolume(statusDate, endDate, deptId, tenantId);
 	}
 
 	@Override
 	public List<Map<String, Object>> corpsSalesVolume(String statusDate, String endDate, String deptId, String tenantId) {
-		return baseMapper.corpsSalesVolume(statusDate,endDate,deptId,tenantId);
+		return baseMapper.corpsSalesVolume(statusDate, endDate, deptId, tenantId);
 	}
 
 	@Override
 	public List<Map<String, Object>> sizeSalesVolumeProportion(String statusDate, String endDate, String deptId, String tenantId) {
-		return baseMapper.sizeSalesVolumeProportion(statusDate,endDate,deptId,tenantId);
+		return baseMapper.sizeSalesVolumeProportion(statusDate, endDate, deptId, tenantId);
+	}
+
+	@Override
+	public Map<String, Object> sizeSalesVolumeProportionGetOne(String statusDate, String endDate, String deptId, String tenantId, String goodsSize) {
+		return baseMapper.sizeSalesVolumeProportionGetOne(statusDate, endDate, deptId, tenantId, goodsSize);
 	}
 
 	/**
@@ -2267,7 +2272,12 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 			throw new RuntimeException("入库已完成,禁止撤销!");
 		}
 		//修改销售状态为待发货
-		pjOrder.setStatus(OrderTypeEnum.XSDQR.getType());
+		if ("1".equals(pjOrder.getShortcutWarehousingStatus())) {
+			pjOrder.setStatus(OrderTypeEnum.XSLR.getType());
+			pjOrder.setCheckStatus("");
+		} else {
+			pjOrder.setStatus(OrderTypeEnum.XSDQR.getType());
+		}
 		pjOrder.setGenerateTask(OrderTypeEnum.NSCRW.getType());
 		baseMapper.updateById(pjOrder);
 		LocalDateTime now = LocalDateTime.now();

+ 103 - 30
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/statistics/service/impl/StatisticsServiceImpl.java

@@ -33,6 +33,7 @@ import org.springframework.stereotype.Service;
 
 import java.math.BigDecimal;
 import java.math.MathContext;
+import java.math.RoundingMode;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -267,10 +268,19 @@ public class StatisticsServiceImpl implements IStatisticsService {
 			.apply("(( business_source = '外部销售' AND FIND_IN_SET( actual_payment_status, '2,3' ) ) OR (business_source = '内部销售' AND FIND_IN_SET( actual_payment_status, '0,1,2,3' )))")
 			.apply("status = '已发货' and busines_date = CURDATE()"));
 		if (pjOrderList.size() > 0) {
-			BigDecimal number = pjOrderList.stream().map(PjOrder::getGoodsTotalNum)
-				.filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add)
-				.setScale(0, BigDecimal.ROUND_HALF_UP);
-			return R.data(number);
+			List<Long> ids = pjOrderList.stream().map(PjOrder::getId).collect(Collectors.toList());
+			if (ids.size() > 0) {
+				List<PjOrderItems> pjOrderItemsList = orderItemsService.list(new LambdaQueryWrapper<PjOrderItems>()
+					.in(PjOrderItems::getPid, ids)
+					.eq(PjOrderItems::getTenantId, AuthUtil.getTenantId())
+					.eq(PjOrderItems::getIsDeleted, 0));
+				BigDecimal number = pjOrderItemsList.stream().map(PjOrderItems::getSendNum)
+					.filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add)
+					.setScale(0, BigDecimal.ROUND_HALF_UP);
+				return R.data(number);
+			} else {
+				return R.data(0);
+			}
 		} else {
 
 			return R.data(0);
@@ -287,19 +297,34 @@ public class StatisticsServiceImpl implements IStatisticsService {
 			.lt(PjOrder::getBusinesDate, endDate)
 			.apply("(( business_source = '外部销售' AND FIND_IN_SET( actual_payment_status, '2,3' ) ) OR (business_source = '内部销售' AND FIND_IN_SET( actual_payment_status, '0,1,2,3' )))")
 			.apply("status = '已发货'"));
+		List<Map<String, Object>> list = new ArrayList<>();
 		List<Map<String, Object>> mapList = orderService.brandSalesVolume(statusDate, endDate, AuthUtil.getDeptId(), AuthUtil.getTenantId());
 		if (pjOrderList.size() > 0) {
-			BigDecimal sum = pjOrderList.stream().map(PjOrder::getGoodsTotalNum).filter(ObjectUtils::isNotNull).reduce(BigDecimal.ZERO, BigDecimal::add);
+			List<Long> ids = pjOrderList.stream().map(PjOrder::getId).collect(Collectors.toList());
+			BigDecimal sum = new BigDecimal("0");
+			if (ids.size() > 0) {
+				List<PjOrderItems> pjOrderItemsList = orderItemsService.list(new LambdaQueryWrapper<PjOrderItems>()
+					.in(PjOrderItems::getPid, ids)
+					.eq(PjOrderItems::getTenantId, AuthUtil.getTenantId())
+					.eq(PjOrderItems::getIsDeleted, 0));
+				sum = pjOrderItemsList.stream().map(PjOrderItems::getSendNum)
+					.filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add)
+					.setScale(0, BigDecimal.ROUND_HALF_UP);
+			}
 			for (Map<String, Object> map : mapList) {
 				BigDecimal number = new BigDecimal(map.get("number").toString());
+				Map<String, Object> map1 = new HashMap<>();
 				if (number.compareTo(new BigDecimal("0")) != 0) {
-					map.put("percentage", number.divide(sum, 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100")));
+					map1.put("percentage", number.divide(sum, 4, RoundingMode.HALF_UP).multiply(new BigDecimal("100")));
 				} else {
-					map.put("percentage", new BigDecimal("0"));
+					map1.put("percentage", new BigDecimal("0"));
 				}
+				map1.put("cname", map.get("cname"));
+				map1.put("number", number);
+				list.add(map1);
 			}
 		}
-		return R.data(mapList);
+		return R.data(list);
 	}
 
 	@Override
@@ -312,19 +337,34 @@ public class StatisticsServiceImpl implements IStatisticsService {
 			.lt(PjOrder::getBusinesDate, endDate)
 			.apply("(( business_source = '外部销售' AND FIND_IN_SET( actual_payment_status, '2,3' ) ) OR (business_source = '内部销售' AND FIND_IN_SET( actual_payment_status, '0,1,2,3' )))")
 			.apply("status = '已发货'"));
+		List<Map<String, Object>> list = new ArrayList<>();
 		List<Map<String, Object>> mapList = orderService.corpsSalesVolume(statusDate, endDate, AuthUtil.getDeptId(), AuthUtil.getTenantId());
 		if (pjOrderList.size() > 0) {
-			BigDecimal sum = pjOrderList.stream().map(PjOrder::getGoodsTotalNum).filter(ObjectUtils::isNotNull).reduce(BigDecimal.ZERO, BigDecimal::add);
+			List<Long> ids = pjOrderList.stream().map(PjOrder::getId).collect(Collectors.toList());
+			BigDecimal sum = new BigDecimal("0");
+			if (ids.size() > 0) {
+				List<PjOrderItems> pjOrderItemsList = orderItemsService.list(new LambdaQueryWrapper<PjOrderItems>()
+					.in(PjOrderItems::getPid, ids)
+					.eq(PjOrderItems::getTenantId, AuthUtil.getTenantId())
+					.eq(PjOrderItems::getIsDeleted, 0));
+				sum = pjOrderItemsList.stream().map(PjOrderItems::getSendNum)
+					.filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add)
+					.setScale(0, BigDecimal.ROUND_HALF_UP);
+			}
 			for (Map<String, Object> map : mapList) {
 				BigDecimal number = new BigDecimal(map.get("number").toString());
+				Map<String, Object> map1 = new HashMap<>();
 				if (number.compareTo(new BigDecimal("0")) != 0) {
-					map.put("percentage", number.divide(sum, 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100")));
+					map1.put("percentage", number.divide(sum, 4, RoundingMode.HALF_UP).multiply(new BigDecimal("100")));
 				} else {
-					map.put("percentage", new BigDecimal("0"));
+					map1.put("percentage", new BigDecimal("0"));
 				}
+				map1.put("cname", map.get("cname"));
+				map1.put("number", number);
+				list.add(map1);
 			}
 		}
-		return R.data(mapList);
+		return R.data(list);
 	}
 
 	@Override
@@ -337,16 +377,37 @@ public class StatisticsServiceImpl implements IStatisticsService {
 			.lt(PjOrder::getBusinesDate, endDate)
 			.apply("(( business_source = '外部销售' AND FIND_IN_SET( actual_payment_status, '2,3' ) ) OR (business_source = '内部销售' AND FIND_IN_SET( actual_payment_status, '0,1,2,3' )))")
 			.apply("status = '已发货'"));
-		List<Map<String, Object>> mapList = orderService.sizeSalesVolumeProportion(statusDate, endDate, AuthUtil.getDeptId(), AuthUtil.getTenantId());
+		List<Map<String, Object>> mapList = new ArrayList<>();
 		if (pjOrderList.size() > 0) {
-			BigDecimal sum = pjOrderList.stream().map(PjOrder::getGoodsTotalNum).filter(ObjectUtils::isNotNull).reduce(BigDecimal.ZERO, BigDecimal::add);
-			for (Map<String, Object> map : mapList) {
-				BigDecimal number = new BigDecimal(map.get("number").toString());
+			List<Long> ids = pjOrderList.stream().map(PjOrder::getId).collect(Collectors.toList());
+			BigDecimal sum = new BigDecimal("0");
+			if (ids.size() > 0) {
+				List<PjOrderItems> pjOrderItemsList = orderItemsService.list(new LambdaQueryWrapper<PjOrderItems>()
+					.in(PjOrderItems::getPid, ids)
+					.eq(PjOrderItems::getTenantId, AuthUtil.getTenantId())
+					.eq(PjOrderItems::getIsDeleted, 0));
+				sum = pjOrderItemsList.stream().map(PjOrderItems::getSendNum)
+					.filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add)
+					.setScale(0, BigDecimal.ROUND_HALF_UP);
+			}
+			List<String> goodsSize = new ArrayList<>();
+			goodsSize.add("<=15");
+			goodsSize.add("=16");
+			goodsSize.add("=17");
+			goodsSize.add("=18");
+			goodsSize.add(">=19");
+			for (String item : goodsSize) {
+				Map<String, Object> map = new HashMap<>();
+				map.put("name", item);
+				Map<String, Object> mapOne = orderService.sizeSalesVolumeProportionGetOne(statusDate, endDate, AuthUtil.getDeptId(), AuthUtil.getTenantId(), item);
+				BigDecimal number = new BigDecimal(mapOne.get("number").toString());
+				map.put("number", number);
 				if (number.compareTo(new BigDecimal("0")) != 0) {
-					map.put("percentage", number.divide(sum, 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100")));
+					map.put("percentage", number.divide(sum, 4, RoundingMode.HALF_UP).multiply(new BigDecimal("100")));
 				} else {
 					map.put("percentage", new BigDecimal("0"));
 				}
+				mapList.add(map);
 			}
 		}
 		return R.data(mapList);
@@ -355,26 +416,38 @@ public class StatisticsServiceImpl implements IStatisticsService {
 	@Override
 	public R salesVolumesStatistics(String statusDate, String endDate) {
 		Map<String, Object> map = new HashMap<>();
-		LambdaQueryWrapper<PjOrder> lambdaQueryWrapperXS = new LambdaQueryWrapper<PjOrder>().eq(PjOrder::getIsDeleted, 0)
+		List<PjOrder> pjOrderList = orderService.list(new LambdaQueryWrapper<PjOrder>()
 			.eq(PjOrder::getTenantId, AuthUtil.getTenantId())
-			.ge(ObjectUtils.isNotNull(statusDate), PjOrder::getBusinesDate, statusDate)
-			.le(ObjectUtils.isNotNull(endDate), PjOrder::getBusinesDate, endDate)
-			.eq(PjOrder::getStatus, "已发货")
-			.eq(PjOrder::getBsType, "XS");
-		lambdaQueryWrapperXS.apply("(( business_source = '外部销售' AND FIND_IN_SET( actual_payment_status, '2,3' ) ) OR (business_source = '内部销售' AND FIND_IN_SET( actual_payment_status, '0,1,2,3' )))");
-		List<PjOrder> pjOrderListXS = orderService.list(lambdaQueryWrapperXS);
+			.eq(PjOrder::getIsDeleted, 0)
+			.eq(PjOrder::getBsType, "XS")
+			.gt(PjOrder::getBusinesDate, statusDate)
+			.lt(PjOrder::getBusinesDate, endDate)
+			.apply("(( business_source = '外部销售' AND FIND_IN_SET( actual_payment_status, '2,3' ) ) OR (business_source = '内部销售' AND FIND_IN_SET( actual_payment_status, '0,1,2,3' )))")
+			.apply("status = '已发货'"));
 		//销售
 		BigDecimal income = new BigDecimal("0.00");
+		BigDecimal amount = new BigDecimal("0.00");
 		//平均客单价
 		BigDecimal averageAmount = new BigDecimal("0.00");
 		//客户数量
 		BigDecimal corpsNumber = new BigDecimal("0.00");
-
-		if (pjOrderListXS.size() > 0) {
-			long sum = pjOrderListXS.stream().map(PjOrder::getCustomerId).filter(Objects::nonNull).distinct().count();
-			corpsNumber = corpsNumber.add(new BigDecimal(sum));
-			income = pjOrderListXS.stream().map(PjOrder::getTotalMoney).filter(ObjectUtils::isNotNull).reduce(BigDecimal.ZERO, BigDecimal::add);
-			averageAmount = averageAmount.add(income.divide(new BigDecimal(pjOrderListXS.size()), MathContext.DECIMAL32).setScale(2, BigDecimal.ROUND_HALF_UP));
+		if (pjOrderList.size() > 0) {
+			List<Long> ids = pjOrderList.stream().map(PjOrder::getId).collect(Collectors.toList());
+			if (ids.size() > 0) {
+				List<PjOrderItems> pjOrderItemsList = orderItemsService.list(new LambdaQueryWrapper<PjOrderItems>()
+					.in(PjOrderItems::getPid, ids)
+					.eq(PjOrderItems::getTenantId, AuthUtil.getTenantId())
+					.eq(PjOrderItems::getIsDeleted, 0));
+				income = pjOrderItemsList.stream().map(PjOrderItems::getSendNum)
+					.filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add)
+					.setScale(0, BigDecimal.ROUND_HALF_UP);
+				amount = pjOrderItemsList.stream().map(PjOrderItems::getTotalAmount)
+					.filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add)
+					.setScale(0, BigDecimal.ROUND_HALF_UP);
+				long sum = pjOrderList.stream().map(PjOrder::getCustomerId).filter(Objects::nonNull).distinct().count();
+				corpsNumber = corpsNumber.add(new BigDecimal(sum));
+				averageAmount = averageAmount.add(amount.divide(new BigDecimal(pjOrderList.size()), MathContext.DECIMAL32).setScale(2, BigDecimal.ROUND_HALF_UP));
+			}
 		}
 		map.put("income", income);
 		map.put("averageAmount", averageAmount);