Browse Source

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

纪新园 2 months ago
parent
commit
480d154f3e

+ 6 - 3
blade-service-api/tire-center-warehouse-api/src/main/java/com/ecp/tire/center/warehouse/api/plan/entity/CenterOrderPlan.java

@@ -1,7 +1,5 @@
 package com.ecp.tire.center.warehouse.api.plan.entity;
 
-import com.baomidou.mybatisplus.annotation.FieldStrategy;
-import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModel;
@@ -10,7 +8,6 @@ import lombok.Data;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springframework.format.annotation.DateTimeFormat;
 
-import javax.validation.constraints.NotNull;
 import java.io.Serializable;
 import java.math.BigDecimal;
 import java.util.Date;
@@ -281,4 +278,10 @@ public class CenterOrderPlan implements Serializable {
 	private String warehouseKeeperName;
 
 
+	/**
+	 * 商品快捷查询拼接
+	 */
+	private String shortcutJoin;
+
+
 }

+ 6 - 0
blade-service/tire-center-warehouse/src/main/java/com/ecp/tire/center/warehouse/plan/controller/CenterOrderPlanController.java

@@ -113,6 +113,12 @@ public class CenterOrderPlanController{
 		return centerOrderPlanService.submitOutPlan(centerOrderPlanVo);
 	}
 
+	@PostMapping("/revokePlanIn")
+	@RepeatSubmit
+	public R<String> revokePlanIn(@RequestParam("id") Long id) {
+		return centerOrderPlanService.revokePlanIn(id);
+	}
+
 
 	@PostMapping("/import-item-code")
 	@ApiOperationSupport(order = 13)

+ 61 - 1
blade-service/tire-center-warehouse/src/main/java/com/ecp/tire/center/warehouse/plan/impl/CenterOrderPlanServiceImpl.java

@@ -105,6 +105,7 @@ public class CenterOrderPlanServiceImpl extends ServiceImpl<CenterOrderPlanMappe
 			.eq(StringUtils.hasText(centerOrderPlanVo.getStatus()), CenterOrderPlan::getStatus, centerOrderPlanVo.getStatus())
 			.like(StringUtils.hasText(centerOrderPlanVo.getStorageName()), CenterOrderPlan::getStorageName, centerOrderPlanVo.getStorageName())
 			.like(StringUtils.hasText(centerOrderPlanVo.getCustomerName()), CenterOrderPlan::getCustomerName, centerOrderPlanVo.getCustomerName())
+			.like(StringUtils.hasText(centerOrderPlanVo.getShortcutJoin()), CenterOrderPlan::getShortcutJoin, centerOrderPlanVo.getShortcutJoin())
 			.like(StringUtils.hasText(centerOrderPlanVo.getOrdNo()), CenterOrderPlan::getOrdNo, centerOrderPlanVo.getOrdNo());
 		if (!CollectionUtils.isEmpty(centerOrderPlanVo.getBusinesDateList())) {
 			// 业务日期
@@ -410,8 +411,9 @@ public class CenterOrderPlanServiceImpl extends ServiceImpl<CenterOrderPlanMappe
 			return R.fail("未找到商品数据,请核实后重试");
 		}
 		StringBuilder text = new StringBuilder();
-		int itemNum = 1;
+		int itemNum = 0;
 		for (ShipItemImportXSCodeExcel excelItem : excelList) {
+			itemNum++;
 			boolean add = true;
 			if (!StringUtils.hasText(excelItem.getCode())) {
 				text.append("第").append(itemNum).append("行,编码为空").append("\n");
@@ -456,6 +458,63 @@ public class CenterOrderPlanServiceImpl extends ServiceImpl<CenterOrderPlanMappe
 		return baseMapper.exportPlanInData(centerOrderPlanVo);
 	}
 
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public R<String> revokePlanIn(Long id) {
+		CenterOrderPlan centerOrderPlan = baseMapper.selectById(id);
+		if (!CommonEnum.ONE.info.equals(centerOrderPlan.getStatus())) {
+			return R.fail("非提交状态,不能撤销");
+		}
+		BladeUser bladeUser = AuthUtil.getUser();
+		List<CenterOrderPlanItem> centerOrderPlanItemList = centerOrderPlanItemService.list(new LambdaQueryWrapper<CenterOrderPlanItem>()
+			.eq(CenterOrderPlanItem::getTenantId, bladeUser.getTenantId()).eq(CenterOrderPlanItem::getIsDeleted, NumberEnum.Zero.number)
+			.eq(CenterOrderPlanItem::getPid, id));
+		if (CollectionUtils.isEmpty(centerOrderPlanItemList)) {
+			return R.fail("未找到入库明细数据,请刷新后重试");
+		}
+		List<CenterStockDesc> centerStockDescList = centerStockDescService.list(new LambdaQueryWrapper<CenterStockDesc>()
+			.eq(CenterStockDesc::getTenantId, bladeUser.getTenantId()).eq(CenterStockDesc::getIsDeleted, NumberEnum.Zero.number)
+			.eq(CenterStockDesc::getPlanId, id));
+		if (CollectionUtils.isEmpty(centerStockDescList)) {
+			return R.fail("未找到库存数据,请刷新后重试");
+		}
+		if (centerOrderPlanItemList.size() != centerStockDescList.size()) {
+			return R.fail("入库明细数量与库存数量不一致,请刷新后重试");
+		}
+		List<Long> stockIds = new ArrayList<>();
+		for (CenterOrderPlanItem centerOrderPlanItem : centerOrderPlanItemList) {
+			CenterStockDesc centerStockDesc = centerStockDescList.stream().filter(item -> item.getGoodsId().equals(centerOrderPlanItem.getGoodsId())
+				&& item.getDot().equals(centerOrderPlanItem.getDot()) && item.getRegionId().equals(centerOrderPlanItem.getRegionId())).findFirst().orElse(null);
+			if (centerStockDesc == null) {
+				return R.fail("未找到库存数据,请刷新后重试");
+			}
+			if (centerStockDesc.getBalanceQuantity().compareTo(centerOrderPlanItem.getGoodsNum()) != 0) {
+				return R.fail("商品:" + centerOrderPlanItem.getGoodsName() + "库存数量不一致,请检查是否已经出库");
+			}
+			stockIds.add(centerStockDesc.getId());
+		}
+		CenterOrderPlan updatePlan = new CenterOrderPlan();
+		updatePlan.setId(id);
+		updatePlan.setStatus(CommonEnum.ZERO.info);
+		updatePlan.setUpdateTime(new Date());
+		updatePlan.setUpdateUser(bladeUser.getUserId());
+		updatePlan.setVersion(centerOrderPlan.getVersion() + 1);
+		int updateCount = baseMapper.updateById(updatePlan);
+		if (updateCount <= 0) {
+			return R.fail("撤销失败,请退出重试");
+		}
+		CenterStockDesc desc = new CenterStockDesc();
+		desc.setUpdateTime(new Date());
+		desc.setUpdateUser(bladeUser.getUserId());
+		desc.setIsDeleted(1);
+		boolean updateStatus = centerStockDescService.update(desc, new LambdaQueryWrapper<CenterStockDesc>().in(CenterStockDesc::getId, stockIds).eq(CenterStockDesc::getTenantId, bladeUser.getTenantId()));
+		R<String> r = new R<>();
+		r.setData(String.valueOf(id));
+		r.setSuccess(updateStatus);
+		r.setMsg(updateStatus ? "撤销成功" : "撤销失败");
+		return r;
+	}
+
 	private R<CenterOrderPlan> insertOrUpdatePlan (CenterOrderPlanVo centerOrderPlanVo, BladeUser bladeUser,
 												List<CenterOrderPlanItem> centerOrderPlanItemList) {
 		CenterOrderPlan insertCenterOrderPlan = new CenterOrderPlan();
@@ -463,6 +522,7 @@ public class CenterOrderPlanServiceImpl extends ServiceImpl<CenterOrderPlanMappe
 		insertCenterOrderPlan.setNumberRows(centerOrderPlanItemList.size());
 		if (!CollectionUtils.isEmpty(centerOrderPlanItemList)) {
 			insertCenterOrderPlan.setGoodsTotalNum(centerOrderPlanItemList.stream().filter(item -> !NumberEnum.ONE.number.equals(item.getIsDeleted())).map(CenterOrderPlanItem::getGoodsNum).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
+			insertCenterOrderPlan.setShortcutJoin(centerOrderPlanItemList.stream().filter(item -> !NumberEnum.ONE.number.equals(item.getIsDeleted())).map(CenterOrderPlanItem::getGoodsName).filter(Objects::nonNull).collect(Collectors.joining(",")));
 		}
 		if (Objects.isNull(centerOrderPlanVo.getId())) {
 			R<Dept> dept = sysClient.getDept(Long.valueOf(bladeUser.getDeptId()));

+ 1 - 0
blade-service/tire-center-warehouse/src/main/java/com/ecp/tire/center/warehouse/plan/mapper/CenterOrderPlanMapper.xml

@@ -45,6 +45,7 @@
         <result column="vehicle_photo" property="vehiclePhoto"/>
         <result column="warehouse_keeper" property="warehouseKeeper"/>
         <result column="warehouse_keeper_name" property="warehouseKeeperName"/>
+        <result column="shortcut_join" property="shortcutJoin"/>
 
     </resultMap>
     <select id="exportPlanInData" resultType="com.ecp.tire.center.warehouse.api.stock.vo.CenterExportPlanInVo"

+ 8 - 0
blade-service/tire-center-warehouse/src/main/java/com/ecp/tire/center/warehouse/plan/service/ICenterOrderPlanService.java

@@ -84,4 +84,12 @@ public interface ICenterOrderPlanService extends IService<CenterOrderPlan> {
 	 * @return 结果
 	 */
 	List<CenterExportPlanInVo> exportPlanInData(CenterOrderPlanVo centerOrderPlanVo);
+
+	/**
+	 * 撤销入库计划
+	 *
+	 * @param id 入库计划id
+	 * @return 结果
+	 */
+	R<String> revokePlanIn(Long id);
 }

+ 3 - 1
blade-service/tire-center-warehouse/src/main/java/com/ecp/tire/center/warehouse/stock/impl/CenterStockDescServiceImpl.java

@@ -64,7 +64,9 @@ public class CenterStockDescServiceImpl extends ServiceImpl<CenterStockDescMappe
 			.eq(ObjectUtil.isNotEmpty(centerStockDescVo.getBrandId()), CenterStockDesc::getBrandId, centerStockDescVo.getBrandId())
 			.eq(StringUtils.hasText(centerStockDescVo.getBrandName()), CenterStockDesc::getBrandName, centerStockDescVo.getBrandName())
 			.eq(ObjectUtil.isNotEmpty(centerStockDescVo.getGoodsTypeId()), CenterStockDesc::getGoodsTypeId, centerStockDescVo.getGoodsTypeId())
-			.like(StringUtils.hasText(centerStockDescVo.getDot()), CenterStockDesc::getDot, centerStockDescVo.getDot());
+			.like(StringUtils.hasText(centerStockDescVo.getDot()), CenterStockDesc::getDot, centerStockDescVo.getDot())
+			.like(StringUtils.hasText(centerStockDescVo.getPlanNo()), CenterStockDesc::getPlanNo, centerStockDescVo.getPlanNo())
+			.like(StringUtils.hasText(centerStockDescVo.getCustomerName()), CenterStockDesc::getCustomerName, centerStockDescVo.getCustomerName());
 		if (CommonEnum.ZERO.info.equals(centerStockDescVo.getWhether())) {
 			lambdaQueryWrapper.ne(CenterStockDesc::getBalanceQuantity, 0);
 		}

+ 1 - 1
blade-service/tire-center-warehouse/src/main/java/com/ecp/tire/center/warehouse/storage/controller/CenterStorageController.java

@@ -106,7 +106,7 @@ public class CenterStorageController {
 			List<CenterStorage> centerStorageList = centerStorageService.list(new LambdaQueryWrapper<CenterStorage>()
 				.eq(CenterStorage::getTenantId, bladeUser.getTenantId()).eq(CenterStorage::getIsDeleted, 0).eq(CenterStorage::getStatus, NumberEnum.ONE.number));
 			boolean isExist = centerStorageList.stream().noneMatch(item -> (item.getCname().equals(centerStorage.getCname()) || item.getCode().equals(centerStorage.getCode())) && !item.getId().equals(centerStorage.getId()));
-			if (isExist) {
+			if (!isExist) {
 				return R.fail("仓库编码或仓库名称已存在");
 			}
 			centerStorage.setUpdateUser(bladeUser.getUserId());