Procházet zdrojové kódy

陆运散货修改

lichao před 3 roky
rodič
revize
70d73205c5

+ 5 - 0
blade-service-api/blade-client-api/src/main/java/org/springblade/client/entity/CommonFile.java

@@ -72,6 +72,11 @@ public class CommonFile implements Serializable {
 	@ApiModelProperty(value = "文件类型(待补充)")
 	private Integer type;
 	/**
+	 * 文件属性
+	 */
+	@ApiModelProperty(value = "文件属性")
+	private String paymentType;
+	/**
 	 * 备注
 	 */
 	@ApiModelProperty(value = "备注")

+ 23 - 0
blade-service-api/blade-land-api/src/main/java/org/springblade/land/entity/Order.java

@@ -279,6 +279,14 @@ public class Order implements Serializable {
 	 */
 	@ApiModelProperty(value = "单车付费")
 	private BigDecimal freightPay;
+	/**
+	 * 到场时间
+	 */
+	@ApiModelProperty(value = "到场时间")
+	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+	private Date reachTime;
+
 
 	@TableField(exist = false)
 	private List<OrderItem> itemList;
@@ -372,4 +380,19 @@ public class Order implements Serializable {
 	@TableField(exist = false)
 	private String source;
 
+	//状态字符串
+	@TableField(exist = false)
+	private String statusIds;
+
+	//车队名称
+	@TableField(exist = false)
+	private String fleetName;
+
+	//司机名称
+	@TableField(exist = false)
+	private String driverName;
+
+	//货物体积总和
+	@TableField(exist = false)
+	private Double volumeSum;
 }

+ 1 - 1
blade-service-api/blade-land-api/src/main/java/org/springblade/land/entity/OrderAddress.java

@@ -139,7 +139,7 @@ public class OrderAddress implements Serializable {
 	 * 货物体积
 	 */
 	@ApiModelProperty(value = "货物体积")
-	private String volume;
+	private Double volume;
 
 	/**
 	 * 包装类型

+ 1 - 0
blade-service/blade-client/src/main/java/org/springblade/client/common/mapper/CommonFileMapper.xml

@@ -10,6 +10,7 @@
         <result column="file_name" property="fileName"/>
         <result column="url" property="url"/>
         <result column="type" property="type"/>
+        <result column="payment_type" property="paymentType"/>
         <result column="remarks" property="remarks"/>
         <result column="create_user" property="createUser"/>
         <result column="create_time" property="createTime"/>

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

@@ -127,9 +127,9 @@ public class OrderController extends BladeController {
 	 */
 	@PostMapping("/submitBulkLoad")
 	@ApiOperationSupport(order = 4)
-	@ApiOperation(value = "提交", notes = "传入order")
-	public R submitBulkLoad(@Valid @RequestBody Order order) {
-		return R.data(orderService.submitBulkLoad(order));
+	@ApiOperation(value = "提交", notes = "传入id")
+	public R submitBulkLoad(Long id) {
+		return R.data(orderService.submitBulkLoad(id));
 	}
 
 	/**

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

@@ -199,6 +199,16 @@ public class OrderIndexController extends BladeController {
 		return R.data(orderService.getAcctNoPage(getAcctQuery(mold, status)));
 	}
 
+	/**
+	 * 业务详情
+	 */
+	@GetMapping("/biz-BulkLoadDetail")
+	@ApiOperationSupport(order = 4)
+	@ApiOperation(value = "散货业务详情")
+	public R bizBulkLoadDetail(Integer mold, Integer status) {
+		return R.data(orderService.getBulkLoadPage(getAcctQuery(mold, status)));
+	}
+
 	private String getTime(boolean init) {
 		String date = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
 		if (init) {

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

@@ -80,6 +80,13 @@ public interface IOrderService extends IService<Order> {
 	List<OrderAcctVO> getAcctNoPage(OrderAcctVO acctVO);
 
 	/**
+	 * 陆运散货台账
+	 *
+	 * @param acctVO
+	 * @return
+	 */
+	List<OrderAcctVO> getBulkLoadPage(OrderAcctVO acctVO);
+	/**
 	 * 列表 统计
 	 *
 	 * @param order
@@ -98,7 +105,7 @@ public interface IOrderService extends IService<Order> {
 	/**
 	 * 提交 陆运散货提交
 	 */
-	Long submitBulkLoad(Order order);
+	Boolean submitBulkLoad(Long id);
 
 	/**
 	 * 自定义分页 陆运散货订单表

+ 87 - 30
blade-service/blade-land/src/main/java/org/springblade/land/service/impl/OrderServiceImpl.java

@@ -409,6 +409,14 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 	}
 
 	@Override
+	public List<OrderAcctVO> getBulkLoadPage(OrderAcctVO acctVO) {
+		acctVO.setTenantId(AuthUtil.getTenantId());
+		List<OrderAcctVO> acctList = baseMapper.selectBulkLoadList(null, acctVO);
+		calculateAcct(acctList);
+		return acctList;
+	}
+
+	@Override
 	public Map<String, Object> getCount(Order order) {
 		long all = 0;
 		long last = 0;
@@ -483,15 +491,20 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 		orderIdList = baseMapper.selectList(orderQueryWrapper);
 		if (CollectionUtil.isNotEmpty(orderIdList)) {
 			all = orderIdList.size();
-			zero = orderIdList.stream().filter(item -> item.getStatus() == 0).count();
-			one = orderIdList.stream().filter(item -> item.getStatus() == 1).count();
-			two = orderIdList.stream().filter(item -> item.getStatus() == 2).count();
-			three = orderIdList.stream().filter(item -> item.getStatus() != 0 && item.getStatus() != 1 && item.getStatus() != 2 && item.getStatus() != 4).count();
-			four = orderIdList.stream().filter(item -> item.getStatus() == 4).count();
+			last = orderIdList.stream().filter(item -> item.getStatus() == 0).count();
+			zero = orderIdList.stream().filter(item -> item.getStatus() == 1).count();
+			one = orderIdList.stream().filter(item -> item.getStatus() == 2).count();
+			two = orderIdList.stream().filter(item -> item.getStatus() == 3).count();
+			//three = orderIdList.stream().filter(item -> item.getStatus() == 4).count();
+			four = orderIdList.stream().filter(item -> item.getStatus() == 5).count();
+			three = orderIdList.stream().filter(item -> item.getStatus() != 0
+				&& item.getStatus() != 1 && item.getStatus() != 2
+				&& item.getStatus() != 3 && item.getStatus() != 5).count();
+
 		}
 
 		Map<String, Object> data = new HashMap<>();
-		data.put("all", all + last);
+		data.put("all", all);
 		data.put("last", last);
 		data.put("zero", zero);
 		data.put("one", one);
@@ -566,7 +579,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 		}
 
 		StringBuilder addressDetail = new StringBuilder();
-		dealExtraInfo(order, addressDetail);
+		StringBuilder unloadingPlace = new StringBuilder();
+		dealExtraInfo(order, addressDetail, unloadingPlace);
 
 		if (CollectionUtil.isNotEmpty(itemList)) {
 			order.setArrivalTime(itemList.get(0).getArrivalTime());
@@ -575,15 +589,14 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 		order.setFreight(freight);
 		if (addressDetail.length() > 0) {
 			if(order.getShippingMode().equals("散货")){
-				String address = addressDetail.deleteCharAt(addressDetail.lastIndexOf("\n")).toString();
-				String[] addressList = address.split(",");
-				order.setAddressDetail(addressList[0]);
-				order.setUnloadingPlace(addressList[1]);
+				order.setAddressDetail(addressDetail.deleteCharAt(addressDetail.lastIndexOf("\n")).toString());
 				order.setArrivalTime(order.getLoadingAddressList().get(0).getFreightTime());
 			} else {
 				order.setAddressDetail(addressDetail.deleteCharAt(addressDetail.lastIndexOf("\n")).toString());
 			}
-
+		}
+		if (unloadingPlace.length() > 0){
+			order.setUnloadingPlace(unloadingPlace.deleteCharAt(unloadingPlace.lastIndexOf("\n")).toString());
 		}
 
 		baseMapper.updateById(order);
@@ -594,12 +607,13 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 	 * 提交 陆运散货提交
 	 */
 	@Override
-	public Long submitBulkLoad(Order order) {
-		if (ObjectUtil.isEmpty(order.getId())) {
-			order.setStatus(1);
-			baseMapper.updateById(order);
-		}
-		return order.getId();
+	public Boolean submitBulkLoad(Long id) {
+		Order order = new Order();
+		order.setId(id);
+		order.setStatus(1);
+		order.setTenantId(AuthUtil.getTenantId());
+		baseMapper.updateById(order);
+		return true;
 	}
 
 	/**
@@ -614,6 +628,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 			.eq(ObjectUtil.isNotEmpty(order.getSalesman()), Order::getSalesman, order.getSalesman())
 			.eq(ObjectUtil.isNotEmpty(order.getDispatchDept()), Order::getDispatchDept, order.getDispatchDept())
 			.eq(StringUtil.isNotBlank(order.getShippingMode()), Order::getShippingMode, order.getShippingMode())
+			.in(StringUtil.isNotBlank(order.getStatusIds()), Order::getStatus, Func.toIntList(order.getStatusIds()))
 			.eq(ObjectUtil.isNotEmpty(order.getCorpId()), Order::getCorpId, order.getCorpId())
 			.eq(ObjectUtil.isNotEmpty(order.getFleetId()), Order::getFleetId, order.getFleetId())
 			.eq(ObjectUtil.isNotEmpty(order.getPlateNo()), Order::getPlateNo, order.getPlateNo())
@@ -624,7 +639,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 			.like(StringUtil.isNotBlank(order.getAddressDetail()), Order::getAddressDetail, order.getAddressDetail())
 			.like(StringUtil.isNotBlank(order.getUnloadingPlace()),Order::getUnloadingPlace, order.getUnloadingPlace())
 			.between(StringUtil.isNotBlank(order.getBeginArrivalTime()) && StringUtil.isNotBlank(order.getEndArrivalTime()), Order::getArrivalTime, order.getBeginArrivalTime(), order.getEndArrivalTime())
-			.between(StringUtil.isNotBlank(order.getBeginCrateTime()) && StringUtil.isNotBlank(order.getEndCrateTime()), Order::getCreateTime, order.getBeginCrateTime(), order.getEndCrateTime());
+			.between(StringUtil.isNotBlank(order.getBeginCrateTime()) && StringUtil.isNotBlank(order.getEndCrateTime()), Order::getCreateTime, order.getBeginCrateTime(), order.getEndCrateTime())
+			.orderByDesc(Order::getArrivalTime);
 
 		IPage<Order> pages = baseMapper.selectPage(Condition.getPage(query), orderQueryWrapper);
 		pages.getRecords().forEach(record -> {
@@ -664,6 +680,35 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 					record.setDispatchDeptName(dept.getData());
 				}
 			}
+			//车队
+			if (!ObjectUtil.isEmpty(record.getFleetId())){
+				R<CorpsDesc> fleetMessage = corpsDescClient.getCorpMessage(record.getFleetId());
+				if (fleetMessage.isSuccess() && fleetMessage.getData() != null) {
+					record.setFleetName(fleetMessage.getData().getCname());
+				}
+			}
+			//司机
+			if (!ObjectUtil.isEmpty(record.getDriverId())){
+				LandDriver driver = landDriverClient.getDriver(record.getDriverId());
+				if (ObjectUtil.isNotEmpty(driver)) {
+					record.setDriverName(driver.getName());
+				}
+			}
+			//装货地址货物体积总和
+			LambdaQueryWrapper<OrderAddress> orderLambdaQueryWrapper = new LambdaQueryWrapper<OrderAddress>();
+			orderLambdaQueryWrapper.eq(OrderAddress::getTenantId, AuthUtil.getTenantId())
+				.eq(OrderAddress::getIsDeleted, 0)
+				.eq(OrderAddress::getBillType, 1)
+				.eq(OrderAddress::getOrderId, record.getId());
+			List<OrderAddress> orderList = orderAddressMapper.selectList(orderLambdaQueryWrapper);
+			record.setVolumeSum(0.0);
+			if (!ObjectUtil.isEmpty(orderList)){
+				orderList.forEach(list -> {
+					if (ObjectUtil.isNotEmpty(list.getVolume())){
+						record.setVolumeSum(record.getVolumeSum()+list.getVolume());
+					}
+				});
+			}
 		});
 		return pages;
 	}
@@ -745,7 +790,14 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 		if (ObjectUtil.isNotEmpty(id)) {
 			order.setId(id);
 			order.setStatus(status);
+			if (status == 4){
+				order.setReachTime(new Date());
+			}else if (status == 0){
+				order.setReachTime(null);
+			}
 			baseMapper.updateById(order);
+		}else {
+			throw new SecurityException("发送失败 请联系管理员!");
 		}
 		return order.getId();
 	}
@@ -847,7 +899,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 		});
 
 		StringBuilder addressDetail = new StringBuilder();
-		dealExtraInfo(order, addressDetail);
+		StringBuilder unloadingPlace = new StringBuilder();
+		dealExtraInfo(order, addressDetail, unloadingPlace);
 
 		if (CollectionUtil.isNotEmpty(itemList)) {
 			order.setArrivalTime(itemList.get(0).getArrivalTime());
@@ -1071,7 +1124,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 		}
 	}
 
-	private void dealExtraInfo(Order order, StringBuilder addressDetail) {
+	private void dealExtraInfo(Order order, StringBuilder addressDetail, StringBuilder unloadingPlace) {
 		int i = 1;
 		if (order.getShippingMode().equals("集装箱")) {
 			for (OrderAddress address : order.getOrderAddressList()) {
@@ -1113,6 +1166,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 			}
 		}else if (order.getShippingMode().equals("散货")){
 			//装货
+			int sort = 1;
 			for (OrderAddress address : order.getLoadingAddressList()){
 				if (ObjectUtil.isEmpty(address.getId())) {
 					address.setOrderId(order.getId());
@@ -1120,13 +1174,15 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 					address.setCreateUser(AuthUtil.getUserId());
 					address.setBillType(1);
 					address.setCreateTime(new Date());
+					address.setSort(sort);
 					orderAddressMapper.insert(address);
 				} else {
 					address.setUpdateUser(AuthUtil.getUserId());
 					address.setUpdateTime(new Date());
+					address.setSort(sort);
 					orderAddressMapper.updateById(address);
 				}
-
+				sort++;
 				if (ObjectUtil.isNotEmpty(address.getCorpId()) || StringUtil.isNotBlank(address.getContacts())
 					|| StringUtil.isNotBlank(address.getTel()) || StringUtil.isNotBlank(address.getAddress())) {
 					if (ObjectUtil.isNotEmpty(address.getCorpId()) && StringUtil.isNotBlank(address.getCorpName())) {
@@ -1150,9 +1206,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 				}
 			}
 
-			addressDetail.append(",");
-
 			i = 1;
+			sort = 1;
 
 			//卸货
 			for (OrderAddress address : order.getUnloadedAddressList()){
@@ -1162,31 +1217,33 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 					address.setCreateUser(AuthUtil.getUserId());
 					address.setBillType(2);
 					address.setCreateTime(new Date());
+					address.setSort(sort);
 					orderAddressMapper.insert(address);
 				} else {
 					address.setUpdateUser(AuthUtil.getUserId());
 					address.setUpdateTime(new Date());
+					address.setSort(sort);
 					orderAddressMapper.updateById(address);
 				}
 
 				if (ObjectUtil.isNotEmpty(address.getCorpId()) || StringUtil.isNotBlank(address.getContacts())
 					|| StringUtil.isNotBlank(address.getTel()) || StringUtil.isNotBlank(address.getAddress())) {
 					if (ObjectUtil.isNotEmpty(address.getCorpId()) && StringUtil.isNotBlank(address.getCorpName())) {
-						addressDetail.append(i).append(".").append(address.getCorpName()).append("(");
+						unloadingPlace.append(i).append(".").append(address.getCorpName()).append("(");
 					} else {
-						addressDetail.append(i).append(".").append("(");
+						unloadingPlace.append(i).append(".").append("(");
 					}
 
 					if (StringUtil.isNotBlank(address.getContacts())) {
-						addressDetail.append(address.getContacts());
+						unloadingPlace.append(address.getContacts());
 					}
 					if (StringUtil.isNotBlank(address.getTel())) {
-						addressDetail.append(" ").append(address.getTel());
+						unloadingPlace.append(" ").append(address.getTel());
 					}
 					if (StringUtil.isNotBlank(address.getAddress())) {
-						addressDetail.append(") ").append(address.getAddress()).append("\n");
+						unloadingPlace.append(") ").append(address.getAddress()).append("\n");
 					} else {
-						addressDetail.append(") ").append("\n");
+						unloadingPlace.append(") ").append("\n");
 					}
 					i++;
 				}

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

@@ -99,6 +99,12 @@ public interface OrderMapper extends BaseMapper<Order> {
 	 * 统计分析 销售人员提成列表导出
 	 */
 	List<SalesCommissionExcel> salesCommissionList(@Param("detailsVo") SalesDetailsVo detailsVo);
+
+	/**
+	 * 统计分析 包装费对账列表和检索条件查询
+	 */
+	List<SalesDetailsVo> selPackingFee(IPage<SalesDetailsVo> page,@Param("detailsVo") SalesDetailsVo detailsVo);
+
 	/**
 	 * 首页获取销售趋势
 	 * @param tenantId 租户id

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

@@ -715,6 +715,41 @@ ORDER BY
             AND bo.order_status = #{orderStatus}
         </if>
     </select>
+    <select id="selPackingFee" resultType="org.springblade.purchase.sales.vo.SalesDetailsVo">
+        SELECT
+        BO.id AS orderId,
+        BO.order_no as orderNo,
+        BGD.Brand AS brand,
+        BO.create_time AS careteTime,
+        BOI.order_quantity AS quantity,
+        (CASE WHEN
+        BO.package_remarks != '有包装'
+        THEN
+        0.00
+        ELSE
+        BOF.Amount
+        END) AS feesAmount
+        FROM business_order_items AS BOI
+        LEFT JOIN business_order BO ON BOI.pid = BO.id
+        LEFT JOIN basic_goods_desc BGD ON BOI.Item_id = BGD.id
+        LEFT JOIN business_order_fees BOF ON BOF.pid = BO.id
+        LEFT JOIN basic_corps_desc BCD ON BO.Corp_id = BCD.id
+        <where>
+            BOI.is_deleted = 0
+            AND BO.bill_type = 'XS'
+            AND BO.tenant_id = #{detailsVo.tenantId}
+            <if test="detailsVo.brand != null and detailsVo.brand != ''">
+                AND BGD.Brand like concat('%', #{detailsVo.brand}, '%')
+            </if>
+            <if test="detailsVo.beginCreateTime !=null and detailsVo.beginCreateTime != ''">
+                and BO.create_time &gt;= #{detailsVo.beginCreateTime}
+            </if>
+            <if test="detailsVo.endCreateTime !=null and detailsVo.endCreateTime != ''">
+                and BO.create_time &lt;= #{detailsVo.endCreateTime}
+            </if>
+        </where>
+        order by BO.create_time desc
+    </select>
     <update id="updateOrderMessage" parameterType="org.springblade.purchase.sales.entity.Order">
         update  business_order
         <trim prefix="SET" suffixOverrides=",">