Browse Source

陆运修改

Signed-off-by: sunhz <mpcoo@foxmail.com>
sunhz 3 years ago
parent
commit
7d71e78153

+ 1 - 1
blade-ops/blade-resource/src/main/resources/application.yml

@@ -6,7 +6,7 @@ server:
 oss:
   enabled: true
   name: minio
-  tenant-mode: true
+  tenant-mode: false
   endpoint: http://121.37.83.47:9000
   access-key: admin
   secret-key: admin8866

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

@@ -112,6 +112,16 @@ public class OrderController extends BladeController {
 	}
 
 	/**
+	 * 变更 陆运订单表
+	 */
+	@PostMapping("/change")
+	@ApiOperationSupport(order = 4)
+	@ApiOperation(value = "变更", notes = "传入order")
+	public R change(@Valid @RequestBody Order order) {
+		return R.data(orderService.changeOrder(order));
+	}
+
+	/**
 	 * 修改 陆运订单表
 	 */
 	@PostMapping("/update")

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

@@ -154,7 +154,7 @@ public class OrderIndexController extends BladeController {
 
 		// 获取角色
 		String userRole = AuthUtil.getUserRole();
-		if (userRole.contains("总经理")) {
+		if (userRole.contains("总经理") || userRole.contains("管理员")) {
 
 		} else if (userRole.contains("部门经理")) {
 			String deptId = AuthUtil.getDeptId();
@@ -169,7 +169,7 @@ public class OrderIndexController extends BladeController {
 			wrapper.eq(OrderItem::getShippingMode, "集装箱");
 		} else if (mold == 2) {
 			wrapper.eq(OrderItem::getShippingMode, "散货");
-		} else {
+		} else if (mold == 3) {
 			wrapper.eq(OrderItem::getShippingMode, "特种车辆");
 		}
 
@@ -220,10 +220,14 @@ public class OrderIndexController extends BladeController {
 	@ApiOperation(value = "业务详情")
 	public R bizDetail(Integer mold, Integer status) {
 		OrderAcctVO acctVO = new OrderAcctVO();
+		acctVO.setBeginCreateTime(getTime(true));
+		acctVO.setEndCreateTime(getTime(false));
+		acctVO.setStatus(status);
 
 		// 获取角色
 		String userRole = AuthUtil.getUserRole();
-		if (userRole.contains("总经理")) {
+		System.out.println("角色::" + userRole);
+		if (userRole.contains("总经理") || userRole.contains("管理员")) {
 
 		} else if (userRole.contains("部门经理")) {
 			String deptId = AuthUtil.getDeptId();
@@ -238,20 +242,11 @@ public class OrderIndexController extends BladeController {
 			acctVO.setShippingMode("集装箱");
 		} else if (mold == 2) {
 			acctVO.setShippingMode("散货");
-		} else {
+		} else if (mold == 3) {
 			acctVO.setShippingMode("特种车辆");
 		}
 
-		List<OrderAcctVO> acctNoPage = orderService.getAcctNoPage(acctVO);
-
-		if (status == 1) {
-			return R.data(acctNoPage.stream().filter(e -> e.getStatus() == 0 || e.getStatus() == 1).collect(Collectors.toList()));
-		} else if (status == 2) {
-			return R.data(acctNoPage.stream().filter(e -> e.getStatus() != 0 && e.getStatus() != 1 && e.getStatus() != 4).collect(Collectors.toList()));
-		} else if (status == 3) {
-			return R.data(acctNoPage.stream().filter(e -> e.getStatus() == 4).collect(Collectors.toList()));
-		}
-		return R.data(Collections.emptyList());
+		return R.data(orderService.getAcctNoPage(acctVO));
 	}
 
 	private String getTime(boolean init) {

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

@@ -40,6 +40,7 @@
                t2.plate_no,
                sum(t2.land_amount_c) as landAmountC,
                sum(t2.land_amount_d) as landAmountD,
+               t2.status,
                t2.remarks
         from land_order t1
                  left join land_order_item t2 on t1.id = t2.order_id
@@ -72,6 +73,9 @@
                 </foreach>
             </if>
             <if test="acct.shippingMode != null and acct.shippingMode != ''">and t1.shipping_mode = #{acct.shippingMode}</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>
         </where>
         group by t1.id, t2.plate_no
     </select>

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

@@ -95,6 +95,14 @@ public interface IOrderService extends IService<Order> {
 	Long saveOrder(Order order);
 
 	/**
+	 * 保存订单
+	 *
+	 * @param order
+	 * @return
+	 */
+	Long changeOrder(Order order);
+
+	/**
 	 * 提交订单
 	 *
 	 * @param order

+ 162 - 76
blade-service/blade-land/src/main/java/org/springblade/land/service/impl/OrderServiceImpl.java

@@ -17,6 +17,7 @@
 package org.springblade.land.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -421,29 +422,24 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 	@GlobalTransactional(rollbackFor = Exception.class)
 	public Long saveOrder(Order order) {
 		if (ObjectUtil.isEmpty(order.getId())) {
-			R<CorpsDesc> corpMessage = corpsDescClient.getCorpMessage(order.getCorpId());
-			if (corpMessage.isSuccess() && corpMessage.getData() != null) {
-				order.setAdminProfiles(corpMessage.getData().getAdminProfiles());
-			}
-
+			order.setAdminProfiles(getCorpName(order.getCorpId()));
 			order.setOrderNo(getSerial());
 			order.setTenantId(AuthUtil.getTenantId());
 			order.setCreateUser(AuthUtil.getUserId());
 			order.setCreateTime(new Date());
 			baseMapper.insert(order);
 		} else {
+			order.setAdminProfiles(getCorpName(order.getCorpId()));
 			order.setUpdateUser(AuthUtil.getUserId());
 			order.setUpdateTime(new Date());
 			baseMapper.updateById(order);
 		}
 
-		long orderId = order.getId();
-
 		BigDecimal freight = BigDecimal.ZERO;
 		List<OrderItem> itemList = order.getItemList();
 		for (OrderItem item : itemList) {
 			if (ObjectUtil.isEmpty(item.getId())) {
-				item.setOrderId(orderId);
+				item.setOrderId(order.getId());
 				item.setBillNo(order.getBillNo());
 				item.setKind(1);
 				item.setShippingMode(order.getShippingMode());
@@ -469,46 +465,93 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 		}
 
 		StringBuilder addressDetail = new StringBuilder();
-		for (OrderAddress address : order.getOrderAddressList()) {
-			if (ObjectUtil.isEmpty(address.getId())) {
-				address.setOrderId(orderId);
-				address.setTenantId(AuthUtil.getTenantId());
-				address.setCreateUser(AuthUtil.getUserId());
-				address.setCreateTime(new Date());
-				orderAddressMapper.insert(address);
-			} else {
-				address.setUpdateUser(AuthUtil.getUserId());
-				address.setUpdateTime(new Date());
-				orderAddressMapper.updateById(address);
+		dealExtraInfo(order, addressDetail);
+
+		order.setFreight(freight);
+		if (addressDetail.length() > 0) {
+			order.setAddressDetail(addressDetail.deleteCharAt(addressDetail.lastIndexOf("\n")).toString());
+		}
+		if (CollectionUtil.isNotEmpty(itemList)) {
+			order.setArrivalTime(itemList.get(0).getArrivalTime());
+		}
+		baseMapper.updateById(order);
+		return order.getId();
+	}
+
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	@GlobalTransactional(rollbackFor = Exception.class)
+	public Long changeOrder(Order order) {
+		order.setAdminProfiles(getCorpName(order.getCorpId()));
+		order.setUpdateUser(AuthUtil.getUserId());
+		order.setUpdateTime(new Date());
+		baseMapper.updateById(order);
+
+		BigDecimal freight = BigDecimal.ZERO;
+		List<OrderItem> itemList = order.getItemList();
+		for (OrderItem item : itemList) {
+			OrderItem itemTemp = orderItemMapper.selectById(item.getId());
+
+			item.setBillNo(order.getBillNo());
+			item.setShippingMode(order.getShippingMode());
+			item.setSalesman(order.getSalesman());
+			item.setSalesmanDept(order.getSalesmanDept());
+			item.setUpdateUser(AuthUtil.getUserId());
+			item.setUpdateTime(new Date());
+			orderItemMapper.updateById(item);
+
+			freight = freight.add(item.getLandAmountD().multiply(new BigDecimal(String.valueOf(item.getCtnQuantity()))));
+
+			BigDecimal landWeight = new BigDecimal("0.000000");
+			if (item.getCtnQuantity() > 0) {
+				landWeight = item.getLandWeight().divide(new BigDecimal(item.getCtnQuantity()), 6, RoundingMode.HALF_UP);
 			}
 
-			if (StringUtil.isNotBlank(address.getAddress())) {
-				addressDetail.append(address.getSort()).append(".")
-					.append(address.getCorpName()).append("(")
-					.append(address.getContacts()).append(" ")
-					.append(address.getTel()).append(") ")
-					.append(address.getAddress()).append("\n");
+			if (item.getCtnQuantity() >= itemTemp.getCtnQuantity()) {
+				List<OrderItem> itemKind = orderItemMapper.selectList(new LambdaQueryWrapper<OrderItem>()
+					.eq(OrderItem::getParentId, item.getId())
+					.eq(OrderItem::getIsDeleted, 0)
+				);
+				for (OrderItem kind : itemKind) {
+					kind.setArrivalTime(item.getArrivalTime());
+					kind.setCtnType(item.getCtnType());
+					kind.setLandAmountD(item.getLandAmountD());
+					kind.setLandWeight(landWeight);
+					kind.setQuantity(item.getQuantity());
+					kind.setSize(item.getSize());
+					kind.setGoods(item.getGoods());
+					kind.setRemarks(item.getRemarks());
+					orderItemMapper.updateById(kind);
+				}
+
+				buildCtn(item.getCtnQuantity() - itemTemp.getCtnQuantity(), landWeight, order, item);
+			} else {
+				OrderItem temp = new OrderItem();
+				temp.setIsDeleted(1);
+				orderItemMapper.update(temp, new LambdaUpdateWrapper<OrderItem>().eq(OrderItem::getParentId, item.getId()));
+				buildCtn(item.getCtnQuantity(), landWeight, order, item);
 			}
 		}
 
-		List<CommonFile> fileList = order.getFileList();
-		fileList.forEach(file -> {
-			if (ObjectUtil.isEmpty(file.getId())) {
-				file.setPid(orderId);
-				file.setSource(LandConstant.ORDER);
-			}
+		order.getOrderItemList().forEach(item -> {
+			item.setBillNo(order.getBillNo());
+			item.setShippingMode(order.getShippingMode());
+			item.setSalesman(order.getSalesman());
+			item.setSalesmanDept(order.getSalesmanDept());
+			item.setUpdateUser(AuthUtil.getUserId());
+			item.setUpdateTime(new Date());
+			orderItemMapper.updateById(item);
 		});
-		commonFileClient.saveList(fileList);
+
+		StringBuilder addressDetail = new StringBuilder();
+		dealExtraInfo(order, addressDetail);
 
 		order.setFreight(freight);
 		if (addressDetail.length() > 0) {
 			order.setAddressDetail(addressDetail.deleteCharAt(addressDetail.lastIndexOf("\n")).toString());
 		}
-		if (CollectionUtil.isNotEmpty(itemList)) {
-			order.setArrivalTime(itemList.get(0).getArrivalTime());
-		}
 		baseMapper.updateById(order);
-		return orderId;
+		return order.getId();
 	}
 
 	@Override
@@ -523,47 +566,11 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 
 		for (OrderItem item : orderItemList) {
 			orderItemMapper.delete(new LambdaQueryWrapper<OrderItem>().eq(OrderItem::getParentId, item.getId()));
-
-			Integer ctnQuantity = item.getCtnQuantity();
-			if (ctnQuantity < 1) {
-				return R.fail("数据异常,请检查箱量");
-			}
-			BigDecimal landWeight = item.getLandWeight().divide(new BigDecimal(ctnQuantity), 6, RoundingMode.HALF_UP);
-			IntStream.range(0, ctnQuantity).forEach(i -> {
-				OrderItem childItem = new OrderItem();
-				BeanUtil.copy(item, childItem);
-				childItem.setId(null);
-				childItem.setParentId(item.getId());
-				childItem.setCtnQuantity(1);
-				childItem.setLandWeight(landWeight);
-				childItem.setKind(2);
-				childItem.setEntrustTime(new Date());
-				childItem.setCreateUser(AuthUtil.getUserId());
-				childItem.setCreateTime(new Date());
-				orderItemMapper.insert(childItem);
-
-				OrderChange change = new OrderChange();
-				change.setItemId(childItem.getId());
-				change.setContent("提交");
-				change.setKind(1);
-				change.setTenantId(AuthUtil.getTenantId());
-				change.setChangeUser(AuthUtil.getUserId());
-				change.setChangeTime(new Date());
-				orderChangeMapper.insert(change);
-			});
-
-			if (StringUtil.isNotBlank(order.getAdminProfiles())) {
-				List<String> idList = Arrays.asList(order.getAdminProfiles().split(","));
-				idList.forEach(id -> {
-					item.setSendUserId(Long.valueOf(id));
-					Message message = MessageUtil.toUser(item, "TJ");
-
-					R result = messageClient.save(message);
-					if (!result.isSuccess()) {
-						throw new SecurityException("发送消息失败");
-					}
-				});
+			BigDecimal landWeight = new BigDecimal("0.000000");
+			if (item.getCtnQuantity() > 0) {
+				landWeight = item.getLandWeight().divide(new BigDecimal(item.getCtnQuantity()), 6, RoundingMode.HALF_UP);
 			}
+			buildCtn(item.getCtnQuantity(), landWeight, order, item);
 		}
 
 		Order oderTemp = new Order();
@@ -685,4 +692,83 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 		});
 	}
 
+	private String getCorpName(Long corpId) {
+		R<CorpsDesc> corpMessage = corpsDescClient.getCorpMessage(corpId);
+		if (corpMessage.isSuccess() && corpMessage.getData() != null) {
+			return corpMessage.getData().getAdminProfiles();
+		}
+		return null;
+	}
+
+	private void buildCtn(Integer ctnQuantity, BigDecimal landWeight, Order order, OrderItem item) {
+		IntStream.range(0, ctnQuantity).forEach(i -> {
+			OrderItem childItem = new OrderItem();
+			BeanUtil.copy(item, childItem);
+			childItem.setId(null);
+			childItem.setParentId(item.getId());
+			childItem.setCtnQuantity(1);
+			childItem.setLandWeight(landWeight);
+			childItem.setKind(2);
+			childItem.setEntrustTime(new Date());
+			childItem.setCreateUser(AuthUtil.getUserId());
+			childItem.setCreateTime(new Date());
+			orderItemMapper.insert(childItem);
+
+			OrderChange change = new OrderChange();
+			change.setItemId(childItem.getId());
+			change.setContent("提交");
+			change.setKind(1);
+			change.setTenantId(AuthUtil.getTenantId());
+			change.setChangeUser(AuthUtil.getUserId());
+			change.setChangeTime(new Date());
+			orderChangeMapper.insert(change);
+		});
+
+		if (StringUtil.isNotBlank(order.getAdminProfiles())) {
+			List<String> idList = Arrays.asList(order.getAdminProfiles().split(","));
+			idList.forEach(id -> {
+				item.setSendUserId(Long.valueOf(id));
+				Message message = MessageUtil.toUser(item, "TJ");
+
+				R result = messageClient.save(message);
+				if (!result.isSuccess()) {
+					throw new SecurityException("发送消息失败");
+				}
+			});
+		}
+	}
+
+	private void dealExtraInfo(Order order, StringBuilder addressDetail) {
+		for (OrderAddress address : order.getOrderAddressList()) {
+			if (ObjectUtil.isEmpty(address.getId())) {
+				address.setOrderId(order.getId());
+				address.setTenantId(AuthUtil.getTenantId());
+				address.setCreateUser(AuthUtil.getUserId());
+				address.setCreateTime(new Date());
+				orderAddressMapper.insert(address);
+			} else {
+				address.setUpdateUser(AuthUtil.getUserId());
+				address.setUpdateTime(new Date());
+				orderAddressMapper.updateById(address);
+			}
+
+			if (StringUtil.isNotBlank(address.getAddress())) {
+				addressDetail.append(address.getSort()).append(".")
+					.append(address.getCorpName()).append("(")
+					.append(address.getContacts()).append(" ")
+					.append(address.getTel()).append(") ")
+					.append(address.getAddress()).append("\n");
+			}
+		}
+
+		List<CommonFile> fileList = order.getFileList();
+		fileList.forEach(file -> {
+			if (ObjectUtil.isEmpty(file.getId())) {
+				file.setPid(order.getId());
+				file.setSource(LandConstant.ORDER);
+			}
+		});
+		commonFileClient.saveList(fileList);
+	}
+
 }

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

@@ -104,13 +104,6 @@ public class StockGoodsController extends BladeController {
 	public R<IPage<StockGoods>> list(StockGoodsVO stockGoods, Query query) {
 		//不区分箱号
 		if (stockGoods.getIsCntrON() == 0) {
-			List<Long> list = new ArrayList<>();
-			if (StringUtils.isNotBlank(stockGoods.getCode()) || StringUtils.isNotBlank(stockGoods.getCname()) || StringUtils.isNotBlank(stockGoods.getBrand())
-				|| StringUtils.isNotBlank(stockGoods.getBrandItem()) || StringUtils.isNotBlank(stockGoods.getPlaceProduction()) || StringUtils.isNotBlank(stockGoods.getTypeno())
-				|| StringUtils.isNotBlank(stockGoods.getTypenoOne())) {
-				list = goodsDescClient.getGoodId(stockGoods.getCode(), stockGoods.getCname(), stockGoods.getBrand(), stockGoods.getBrandItem(),
-					stockGoods.getPlaceProduction(), stockGoods.getTypeno(), stockGoods.getTypenoOne());
-			}
 			LambdaQueryWrapper<StockGoods> lambdaQueryWrapper = new LambdaQueryWrapper<>();
 			lambdaQueryWrapper.eq(StockGoods::getTenantId, SecureUtil.getTenantId());
 			lambdaQueryWrapper.eq(StockGoods::getIsDeleted, 0);
@@ -124,6 +117,7 @@ public class StockGoodsController extends BladeController {
 				}
 			}
 
+			lambdaQueryWrapper.like(Func.isNotEmpty(stockGoods.getLotNo()), StockGoods::getLotNo, stockGoods.getLotNo());
 			lambdaQueryWrapper.eq(Func.isNotEmpty(stockGoods.getStorageId()), StockGoods::getStorageId, stockGoods.getStorageId());
 			lambdaQueryWrapper.like(Func.isNotEmpty(stockGoods.getBrandItem()), StockGoods::getBrandItem, stockGoods.getBrandItem());//花纹
 			lambdaQueryWrapper.like(Func.isNotEmpty(stockGoods.getPlaceProduction()), StockGoods::getPlaceProduction, stockGoods.getPlaceProduction());//产地
@@ -133,7 +127,6 @@ public class StockGoodsController extends BladeController {
 			lambdaQueryWrapper.like(Func.isNotEmpty(stockGoods.getTypenoTwo()), StockGoods::getTypenoTwo, stockGoods.getTypenoTwo());//速级
 			lambdaQueryWrapper.ge(Func.isNotEmpty(stockGoods.getCreateStartTime()), StockGoods::getCreateTime, stockGoods.getCreateStartTime());//制单日期开始
 			lambdaQueryWrapper.le(Func.isNotEmpty(stockGoods.getCreateEndTime()), StockGoods::getCreateTime, stockGoods.getCreateEndTime());//制单日期结束
-			lambdaQueryWrapper.in(Func.isNotEmpty(list), StockGoods::getGoodsId, list);
 			IPage<StockGoods> pages = stockGoodsService.page(Condition.getPage(query), lambdaQueryWrapper);
 			if (CollectionUtils.isNotEmpty(pages.getRecords())) {
 				pages.getRecords().forEach(item -> {