Преглед изворни кода

1.采购入库明细导入商品未开启批次,批号制成空
2.撤销出库任务,入库任务增加判断是否已出入库
3.出入库工单增加版本号控制

纪新园 пре 3 дана
родитељ
комит
2ddbd0b06a

+ 1 - 1
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/corps/mapper/CorpsDescMapper.xml

@@ -149,7 +149,7 @@
     </select>
 
     <select id="selectCorpsDescCname" resultMap="corpsDescResultMap">
-        select id, cname
+        select *
         from pjpf_corps_desc
         where is_deleted = 0
           and corp_type = 'KH'

+ 1 - 1
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/controller/OrderController.java

@@ -179,7 +179,7 @@ public class OrderController extends BladeController {
 		boolean whetherDatabaseSharding = ParameterUtils.whetherDatabaseSharding();
 		// selectedUser
 		String userRole = AuthUtil.getUserRole();
-		if (!userRole.contains("admin") && !userRole.contains("老板")) {
+		if (!userRole.contains("admin") && !userRole.contains("老板")&& !userRole.contains("客服")) {
 			if (userRole.contains("业务员")) {
 				if (ObjectUtils.isNotNull(userStorageId) && whetherDatabaseSharding) {
 					lambdaQueryWrapper.and(e -> e.eq(PjOrder::getSalerId, selectedUser.getUserId()).or().apply("find_in_set(storage_id,'" + ParameterUtils.getStorageId() + "')"));

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

@@ -6271,12 +6271,25 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 		PjShip pjShip = shipMapper.selectOne(new LambdaQueryWrapper<PjShip>().eq(PjShip::getIsDeleted, 0)
 			.eq(PjShip::getOrdId, order.getId())
 			.eq(PjShip::getBizTypeName, "FHRW"));
-		if (ObjectUtils.isNotNull(pjShip) && (ObjectUtils.isNull(pjShip.getSendTotalNum()) || new BigDecimal("0.00").compareTo(pjShip.getSendTotalNum()) == 0)) {
-			shipMapper.deleteById(pjShip.getId());
-			shipMapper.deleteByTaskId(pjShip.getId());
+		if (ObjectUtils.isNotNull(pjShip)) {
+			if ("已完成".equals(pjShip.getStatusName())){
+				throw new RuntimeException("出库已完成,禁止撤销!");
+			}else{
+				shipMapper.deleteById(pjShip.getId());
+			}
 		} else {
 			throw new RuntimeException("出库已完成,禁止撤销!");
 		}
+		PjShip ship = shipMapper.selectOne(new LambdaQueryWrapper<PjShip>().eq(PjShip::getIsDeleted, 0)
+			.eq(PjShip::getOrdId, order.getId())
+			.eq(PjShip::getBizTypeName, "FHGD"));
+		if (ObjectUtils.isNotNull(ship) ){
+			if ("已出库".equals(ship.getStatusName())){
+				throw new RuntimeException("出库已完成,禁止撤销!");
+			}else{
+				shipMapper.deleteById(ship.getId());
+			}
+		}
 		pjOrder.setTaskWhetherAdopt("录入");
 		pjOrder.setVersion(pjOrder.getVersion() + 1);
 		//修改销售状态为待发货
@@ -7353,11 +7366,22 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 		PjShip pjShip = shipMapper.selectOne(new LambdaQueryWrapper<PjShip>().eq(PjShip::getIsDeleted, 0)
 			.eq(PjShip::getOrdId, order.getId())
 			.eq(PjShip::getBizTypeName, "SHRW"));
-		if (ObjectUtils.isNotNull(pjShip) && (ObjectUtils.isNull(pjShip.getSendTotalNum()) || new BigDecimal("0.00").compareTo(pjShip.getSendTotalNum()) == 0)) {
-			shipMapper.deleteById(pjShip.getId());
-			shipMapper.deleteByTaskId(pjShip.getId());
-		} else {
-			throw new RuntimeException("入库已完成,禁止撤销!");
+		if (ObjectUtils.isNotNull(pjShip)) {
+			if ("已完成".equals(pjShip.getStatusName())){
+				throw new RuntimeException("入库已完成,禁止撤销!");
+			}else{
+				shipMapper.deleteById(pjShip.getId());
+			}
+		}
+		PjShip ship = shipMapper.selectOne(new LambdaQueryWrapper<PjShip>().eq(PjShip::getIsDeleted, 0)
+			.eq(PjShip::getOrdId, order.getId())
+			.eq(PjShip::getBizTypeName, "SHGD"));
+		if (ObjectUtils.isNotNull(ship) ){
+			if ("已入库".equals(ship.getStatusName())){
+				throw new RuntimeException("入库已完成,禁止撤销!");
+			}else{
+				shipMapper.deleteById(ship.getId());
+			}
 		}
 		pjOrder.setVersion(pjOrder.getVersion() + 1);
 		//修改销售状态为待发货

+ 1 - 1
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/ship/controller/ShipController.java

@@ -133,7 +133,7 @@ public class ShipController extends BladeController {
 			lambdaQueryWrapper.le(PjShip::getBusinesDate, ship.getBusinesDateList().get(1));
 		}
 		lambdaQueryWrapper.orderByDesc(PjShip::getCreateTime);
-		if (!AuthUtil.getUserRole().contains("admin") && !AuthUtil.getUserRole().contains("老板")) {
+		if (!AuthUtil.getUserRole().contains("admin") && !AuthUtil.getUserRole().contains("老板")&& !AuthUtil.getUserRole().contains("客服")) {
 			if (AuthUtil.getUserRole().contains("库管")) {
 				lambdaQueryWrapper.and(i -> i.eq(PjShip::getStockClerkId, AuthUtil.getUserId()).or().isNull(PjShip::getStockClerkId));
 			} else if (AuthUtil.getUserRole().contains("客户")) {

+ 1 - 1
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/ship/controller/ShipItemsController.java

@@ -131,7 +131,7 @@ public class ShipItemsController extends BladeController {
 	@ApiOperationSupport(order = 8)
 	@ApiOperation(value = "删除", notes = "传入ids")
 	public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
-		return R.status(shipItemsService.removeByIds(Func.toLongList(ids)));
+		return shipItemsService.delete(Func.toLongList(ids));
 	}
 
 

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

@@ -56,4 +56,6 @@ public interface IShipItemsService extends IService<PjShipItems> {
     List<PjShipItems> selectShipItemByGoodsIdAndTkcg(List<Long> goodsId);
 
     R submitList(List<PjShipItems> shipItems);
+
+    R delete(List<Long> longList);
 }

+ 22 - 0
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/ship/service/impl/ShipItemsServiceImpl.java

@@ -25,9 +25,11 @@ import org.springblade.core.tool.api.R;
 import org.springblade.salesPart.dto.SaleFinancingDetail;
 import org.springblade.salesPart.dto.SaleFinancingDetailDto;
 import org.springblade.salesPart.entity.PjHistory;
+import org.springblade.salesPart.entity.PjShip;
 import org.springblade.salesPart.entity.PjShipItems;
 import org.springblade.salesPart.history.service.IHistoryService;
 import org.springblade.salesPart.ship.mapper.ShipItemsMapper;
+import org.springblade.salesPart.ship.mapper.ShipMapper;
 import org.springblade.salesPart.ship.service.IShipItemsService;
 import org.springblade.salesPart.vo.ShipItemsVO;
 import org.springblade.system.feign.ISysClient;
@@ -52,6 +54,8 @@ public class ShipItemsServiceImpl extends ServiceImpl<ShipItemsMapper, PjShipIte
 
 	private final ISysClient sysClient;
 
+	private final ShipMapper shipMapper;
+
 	@Override
 	public IPage<ShipItemsVO> selectShipItemsPage(IPage<ShipItemsVO> page, ShipItemsVO shipItems) {
 		return page.setRecords(baseMapper.selectShipItemsPage(page, shipItems));
@@ -115,4 +119,22 @@ public class ShipItemsServiceImpl extends ServiceImpl<ShipItemsMapper, PjShipIte
 		return R.data(shipItems);
 	}
 
+	@Override
+	public R delete(List<Long> longList) {
+		PjShip ship = new PjShip();
+		if (!longList.isEmpty()) {
+			PjShipItems shipItems = baseMapper.selectById(longList.get(0));
+			if (shipItems != null) {
+				ship = shipMapper.selectById(shipItems.getPid());
+			}
+		}
+		if (ship != null) {
+			if ("已入库".equals(ship.getStatusName()) || "已出库".equals(ship.getStatusName())) {
+				throw new RuntimeException("订单数据已被修改,请返回列表重新操作!");
+			}
+		}
+		this.removeByIds(longList);
+		return R.data("操作成功");
+	}
+
 }

+ 24 - 7
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/ship/service/impl/ShipServiceImpl.java

@@ -254,6 +254,10 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 			ship.setVersion(1);
 			baseMapper.insert(ship);
 		} else {
+			PjShip orderVersion = baseMapper.selectById(ship.getId());
+			if (orderVersion != null && !orderVersion.getVersion().equals(ship.getVersion())) {
+				throw new RuntimeException("订单数据已被修改,请返回列表重新操作!");
+			}
 			ship.setVersion(ship.getVersion() + 1);
 			ship.setUpdateUser(AuthUtil.getUserId());
 			ship.setUpdateTime(new Date());
@@ -2189,7 +2193,7 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 				if (!"TKSHGD".equals(ship.getBizTypeName())) {
 					PjOrderItems orderItems = pjOrderItems.stream().filter(e -> e.getId().equals(item.getSrcItemId())).findFirst().orElse(null);
 					if (orderItems != null) {
-						if (ObjectUtils.isNotNull(item.getDot())){
+						if (ObjectUtils.isNotNull(item.getDot())) {
 							if (ObjectUtils.isNull(orderItems.getDots())) {
 								orderItems.setDots(item.getDot());
 							} else {
@@ -2610,9 +2614,7 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 				item.setPattern(goodsDesc.getBrandItem());
 				item.setGoodsDescription(goodsDesc.getGoodsDescription());
 				if ("0".equals(goodsDesc.getWhether())) {//未开启管理批次号
-					if (ObjectUtil.isNotEmpty(itemExcel.getDot())) {
 						item.setDot(null);
-					}
 				} /*else {//已开启批次号管理
 					if (ObjectUtil.isEmpty(itemExcel.getDot())) {
 						text.append("第").append(i + 2).append("行,商品已开启管理批次号,请填写批次号").append("\n");
@@ -2979,7 +2981,7 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 				if (orderItems != null) {
 					orderItems.setSendNum(orderItems.getSendNum().subtract(item.getSendNum()));
 					orderItems.setGoodsTotalShipAmount(orderItems.getSendNum().multiply(item.getPrice()));
-					if (ObjectUtils.isNotNull(item.getDot())){
+					if (ObjectUtils.isNotNull(item.getDot())) {
 						if (orderItems.getSendNum().compareTo(new BigDecimal("0.00")) == 0) {
 							orderItems.setDots("");
 						} else {
@@ -4196,9 +4198,7 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 				item.setPattern(goodsDesc.getBrandItem());
 				item.setGoodsDescription(goodsDesc.getGoodsDescription());
 				if ("0".equals(goodsDesc.getWhether())) {//未开启管理批次号
-					if (ObjectUtil.isNotEmpty(itemExcel.getDot())) {
-						item.setDot(null);
-					}
+					item.setDot(null);
 				} /*else {//已开启批次号管理
 					if (ObjectUtil.isEmpty(itemExcel.getDot())) {
 						text.append("第").append(i + 2).append("行,商品已开启管理批次号,请填写批次号").append("\n");
@@ -6966,6 +6966,17 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 		if (reservoirAreaList.isEmpty()) {
 			throw new RuntimeException("请先维护库区");
 		}
+		List<String> goodsList = excelList.stream().map(ReservoirAreaExcel::getGoodsName).distinct()
+			.filter(Objects::nonNull).collect(Collectors.toList());
+		if (excelList.size() != goodsList.size()) {
+			throw new RuntimeException("导入数据存在重复商品编码,请处理后再导入");
+		}
+		String codes = String.join(",", goodsList);
+		LambdaQueryWrapper<PjGoodsDesc> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+		lambdaQueryWrapper.eq(PjGoodsDesc::getTenantId, AuthUtil.getTenantId())
+			.eq(PjGoodsDesc::getIsDeleted, 0)
+			.apply("find_in_set(cname,'" + codes + "')");
+		List<PjGoodsDesc> goodsDescList = goodsDescMapper.selectList(lambdaQueryWrapper);
 		List<PjShipItems> shipItemsList = shipItemsService.list(new LambdaQueryWrapper<PjShipItems>()
 			.eq(PjShipItems::getIsDeleted, 0)
 			.eq(PjShipItems::getTenantId, AuthUtil.getTenantId())
@@ -7010,7 +7021,13 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 			shipItems.setReservoirAreaId(reservoirArea.getId());
 			shipItems.setReservoirAreaName(reservoirArea.getCname());
 			shipItems.setSendNum(shipItems.getGoodsNum());
+			PjGoodsDesc goodsDesc = goodsDescList.stream().filter(e -> e.getCname().equals(item.getGoodsName())).findFirst().orElse(null);
 			shipItems.setDot(item.getDot());
+			if (goodsDesc != null) {
+				if ("0".equals(goodsDesc.getWhether())){
+					shipItems.setDot(null);
+				}
+			}
 			shipItemsListNew.add(shipItems);
 			PjHistory history = new PjHistory();
 			history.setCreateUser(AuthUtil.getUserId());