1.盘点码详情添加批次号字段

2.修复盘点的bug
feature-order-fix
x_z 2 years ago
parent 9f8e17dec0
commit 76166a9628

@ -30,4 +30,9 @@ public class InvCountCodes {
*/
private Integer status;
/**
*
*/
private String batchNo;
}

@ -19,6 +19,11 @@ public class FilterInvCountCodesRequest extends ListPageRequest {
*/
private String productId;
/**
*
*/
private String batchNo;
/**
*
*/

@ -93,6 +93,7 @@ public class InvCountCodesServiceImpl implements InvCountCodesService {
invCountOrderDetail.setCountNum(invCountOrderDetail.getCountNum() + getActCount(udi.getUdi()));
invCountCodes.setProductId(invCountOrderDetail.getProductId());
invCountCodes.setBatchNo(udi.getBatchNo());
invCountOrderDetailDao.updateByPrimaryKey(invCountOrderDetail);
invCountCodesDao.insert(invCountCodes);
return ResultVOUtils.success();

@ -64,7 +64,7 @@ public class InvCountOrderDetailServiceImpl implements InvCountOrderDetailServic
//删除盘点单据详情
invCountOrderDetailDao.deleteByPrimaryKey(detailRequest.getId());
//删除盘点单据详情的条码数据
invCountOrderDetailDao.deleteByOrderIdAndProductId(detailRequest.getOrderIdFk(), invCountOrderDetail.getProductId());
invCountOrderDetailDao.deleteByOrderIdAndProductId(invCountOrderDetail.getOrderIdFk(), invCountOrderDetail.getProductId());
return ResultVOUtils.success();
}

@ -1,5 +1,6 @@
package com.glxp.api.admin.service.inventory.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil;
@ -119,6 +120,7 @@ public class InvCountOrderServiceImpl implements InvCountOrderService {
invCountOrderDao.insert(invCountOrder);
} else {
InvCountOrder oldData = invCountOrderDao.selectByOrderId(invCountOrder.getOrderId());
BeanUtil.copyProperties(invCountOrder, oldData, "id", "createTime", "createUser");
oldData.setUpdateTime(DateUtil.date().toString(DatePattern.NORM_DATETIME_PATTERN));
invCountOrderDao.updateByOrderId(oldData);
}
@ -163,6 +165,8 @@ public class InvCountOrderServiceImpl implements InvCountOrderService {
//查询此产品的条码列表,判断此产品在库存中是多还是少
List<InvCountCodes> codesList = invCountCodesDao.selectByOrderIdAndProductId(invCountOrderDetail.getOrderIdFk(), invCountOrderDetail.getProductId());
//判断盘点的码中是否有次产品的码
if (CollUtil.isNotEmpty(codesList)) {
//查询库存中此产品的码数据,用来判断盘单据条码是多码还是少码
List<String> invDetailCodes = invProductDetailDao.selectCodeByInvCodeAndProductId(invCountOrder.getInvStorageCode(), invCountOrder.getInvWarehouseCode(), invCountOrder.getInvSpaceCode(), invCountOrderDetail.getProductId());
for (InvCountCodes invCountCodes : codesList) {
@ -175,6 +179,7 @@ public class InvCountOrderServiceImpl implements InvCountOrderService {
//批量更新条码信息
invCountCodesDao.updateBatch(codesList);
}
}
//更新单据信息
invCountOrderDao.updateByPrimaryKey(invCountOrder);
//更新单据详情
@ -256,18 +261,14 @@ public class InvCountOrderServiceImpl implements InvCountOrderService {
if (invCountOrder.getCountType() == 1) {
//按照货位盘点,查询库存详情添加货位条件
invProductDetailRequest.setInvSpaceCode(invCountOrder.getInvSpaceCode());
} else if (invCountOrder.getCountType() == 2) {
//部分盘点,查询库存的产品信息
invProductDetailRequest.setProductIdList(countProductIds);
}
List<InvProductDetailEntity> invProductDetailEntities = invProductDetailDao.filterInvProductDetail(invProductDetailRequest);
if (CollUtil.isEmpty(invProductDetailEntities)) {
log.info("产品:" + productId + " 非当前仓库产品,添加到盘点入库单条码中");
//将此条码添加到入库单据条码中
codesList.forEach(invCountCodes -> {
if (invCountCodes.getProductId().equals(productId)) {
if (invCountCodes.getProductId().equals(productId) && !verifyCodeExist(outOrderCodes, invCountCodes.getCode())) {
WarehouseEntity warehouseEntity = buildWarehouse(invCountOrder, invCountCodes.getCode(), invCountCodes.getProductId());
inOrderCodes.add(warehouseEntity);
}
@ -276,7 +277,7 @@ public class InvCountOrderServiceImpl implements InvCountOrderService {
//库存中存在此产品,筛选出盘点中不存在的条码,添加到盘点出库条码中
List<String> countCodes = codesList.stream().map(InvCountCodes::getCode).collect(Collectors.toList());
invProductDetailEntities.forEach(invProductDetailEntity -> {
if (!countCodes.contains(invProductDetailEntity.getOriginCode())) {
if (!countCodes.contains(invProductDetailEntity.getOriginCode()) && !verifyCodeExist(outOrderCodes, invProductDetailEntity.getCode())) {
WarehouseEntity warehouseEntity = buildWarehouse(invCountOrder, invProductDetailEntity.getCode(), invProductDetailEntity.getProductIdFk());
outOrderCodes.add(warehouseEntity);
}
@ -324,8 +325,24 @@ public class InvCountOrderServiceImpl implements InvCountOrderService {
invCountOrderDao.updateByOrderId(invCountOrder);
}
/**
*
*
* @param codes
* @param code
* @return
*/
private boolean verifyCodeExist(List<WarehouseEntity> codes, String code) {
List<String> codesList = codes.stream().map(WarehouseEntity::getCode).collect(Collectors.toList());
if (codesList.contains(code)) {
return true;
}
return false;
}
private static WarehouseEntity buildWarehouse(InvCountOrder invCountOrder, String code, String productId) {
WarehouseEntity warehouseEntity = new WarehouseEntity();
warehouseEntity.setOrderId(invCountOrder.getOrderId());
warehouseEntity.setCode(code);
warehouseEntity.setRelId(productId);
warehouseEntity.setMainAction(ConstantType.TYPE_PUT);

@ -7,6 +7,7 @@
<result column="productId" jdbcType="VARCHAR" property="productId"/>
<result column="code" jdbcType="VARCHAR" property="code"/>
<result column="status" jdbcType="INTEGER" property="status"/>
<result column="batchNo" jdbcType="VARCHAR" property="batchNo"/>
</resultMap>
<sql id="Base_Column_List">
@ -14,7 +15,8 @@
orderIdFk,
productId,
code,
`status`
`status`,
batchNo
</sql>
<select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
@ -33,9 +35,9 @@
<insert id="insert" keyColumn="id" keyProperty="id"
parameterType="com.glxp.api.admin.entity.inventory.InvCountCodes" useGeneratedKeys="true">
insert into inv_count_codes (orderIdFk, productId, code,
`status`)
`status`, batchNo)
values (#{orderIdFk,jdbcType=VARCHAR}, #{productId,jdbcType=VARCHAR}, #{code,jdbcType=VARCHAR},
#{status,jdbcType=INTEGER})
#{status,jdbcType=INTEGER}, #{batchNo,jdbcType=VARCHAR})
</insert>
<insert id="insertSelective" keyColumn="id" keyProperty="id"
@ -54,6 +56,9 @@
<if test="status != null">
`status`,
</if>
<if test="batchNo != null and batchNo != ''">
batchNo,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="orderIdFk != null">
@ -68,6 +73,9 @@
<if test="status != null">
#{status,jdbcType=INTEGER},
</if>
<if test="batchNo != null and batchNo != ''">
#{batchNo,jdbcType=VARCHAR},
</if>
</trim>
</insert>
@ -86,6 +94,9 @@
<if test="status != null">
`status` = #{status,jdbcType=INTEGER},
</if>
<if test="batchNo != null and batchNo != ''">
batchNo = #{batchNo,jdbcType=VARCHAR},
</if>
</set>
where id = #{id,jdbcType=INTEGER}
</update>
@ -95,7 +106,8 @@
set orderIdFk = #{orderIdFk,jdbcType=VARCHAR},
productId = #{productId,jdbcType=VARCHAR},
code = #{code,jdbcType=VARCHAR},
`status` = #{status,jdbcType=INTEGER}
`status` = #{status,jdbcType=INTEGER},
batchNo = #{batchNo,jdbcType=VARCHAR}
where id = #{id,jdbcType=INTEGER}
</update>
@ -122,6 +134,11 @@
when id = #{item.id,jdbcType=INTEGER} then #{item.status,jdbcType=INTEGER}
</foreach>
</trim>
<trim prefix="batchNo = case" suffix="end,">
<foreach collection="list" index="index" item="item">
when id = #{item.id,jdbcType=INTEGER} then #{item.batchNo,jdbcType=VARCHAR}
</foreach>
</trim>
</trim>
where id in
<foreach close=")" collection="list" item="item" open="(" separator=", ">
@ -131,11 +148,11 @@
<insert id="batchInsert" keyColumn="id" keyProperty="id" parameterType="map" useGeneratedKeys="true">
insert into inv_count_codes
(orderIdFk, productId, code, `status`)
(orderIdFk, productId, code, `status`, batchNo)
values
<foreach collection="list" item="item" separator=",">
(#{item.orderIdFk,jdbcType=VARCHAR}, #{item.productId,jdbcType=VARCHAR}, #{item.code,jdbcType=VARCHAR},
#{item.status,jdbcType=INTEGER})
#{item.status,jdbcType=INTEGER}, #{item.batchNo,jdbcType=VARCHAR})
</foreach>
</insert>
@ -162,6 +179,9 @@
<if test="status != null">
AND status = #{status}
</if>
<if test="batchNo != null and batchNo != ''">
AND batchNo = #{batchNo}
</if>
</where>
</select>

@ -377,7 +377,8 @@
</select>
<select id="getCountInvProduct" resultType="com.glxp.api.admin.res.inventory.InvProductResponse">
select inv_product.relIdFk,
select inv_product_detail.id,
inv_product.relIdFk,
inv_product.nameCode,
inv_product.batchNo,
inv_product.productionDate,
@ -388,7 +389,6 @@
basic_products.cpmctymc
from inv_product_detail
left join inv_product on inv_product_detail.productIdFk = inv_product.relIdFk
and inv_product.batchNo = inv_product_detail.batchNo
and inv_product.invStorageCode = inv_product_detail.invStorageCode
and inv_product.invWarehouseCode = inv_product_detail.invWarehouseCode
left join basic_udirel on inv_product_detail.productIdFk = basic_udirel.id

@ -88,3 +88,7 @@ CREATE TABLE `inv_count_setting` (
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '盘点设置表' ROW_FORMAT = Dynamic;
SET FOREIGN_KEY_CHECKS = 1;
# 盘点码表添加批次号字段
ALTER TABLE `udiwms`.`inv_count_codes`
ADD COLUMN `batchNo` varchar(255) NULL COMMENT '批次号' AFTER `status`;

Loading…
Cancel
Save