1.调整盘点代码

master
x_z 2 years ago
parent 76630f303d
commit 18719072d6

@ -62,4 +62,14 @@ public interface InvProductDetailDao extends BaseMapperPlus<InvProductDetailDao,
*/
List<String> selectSupIdByCode(@Param("code") String code);
/**
*
*
* @param invCode
* @param invSpaceCode
* @param relId
* @param batchNo
* @return
*/
List<String> selectCountOrderCodes(@Param("invCode") String invCode, @Param("invSpaceCode") String invSpaceCode, @Param("relId") Long relId, @Param("batchNo") String batchNo);
}

@ -1,12 +1,12 @@
package com.glxp.api.service.inv.impl;
import cn.hutool.core.collection.CollUtil;
import com.github.pagehelper.PageHelper;
import com.glxp.api.common.enums.ResultEnum;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.dao.inv.InvCountOrderDao;
import com.glxp.api.dao.inv.InvCountOrderDetailDao;
import com.glxp.api.dao.inv.InvProductDao;
import com.glxp.api.dao.inv.*;
import com.glxp.api.entity.inv.InvCountCodesEntity;
import com.glxp.api.entity.inv.InvCountOrderDetailEntity;
import com.glxp.api.entity.inv.InvCountOrderEntity;
import com.glxp.api.entity.inv.InvProductEntity;
@ -23,7 +23,9 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Slf4j
@Service
@ -38,6 +40,8 @@ public class InvCountOrderDetailServiceImpl implements InvCountOrderDetailServic
private InvProductDao invProductDao;
@Resource
private SqlSessionFactory sqlSessionFactory;
@Resource
private InvProductDetailDao invProductDetailDao;
@Override
public List<InvCountOrderDetailEntity> filterList(FilterInvCountOrderDetailRequest detailRequest) {
@ -90,10 +94,38 @@ public class InvCountOrderDetailServiceImpl implements InvCountOrderDetailServic
InvCountOrderEntity invCountOrder = invCountOrderDao.selectByOrderId(orderId);
SqlSession sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH, TransactionIsolationLevel.READ_COMMITTED);
InvCountOrderDetailDao mapper = sqlSession.getMapper(InvCountOrderDetailDao.class);
InvCountCodesDao codeMapper = sqlSession.getMapper(InvCountCodesDao.class);
for (InvCountOrderDetailEntity orderDetailEntity : countOrderDetailList) {
InvProductEntity invProductEntity = invProductDao.selectProductInfo(orderDetailEntity.getRelId(), orderDetailEntity.getBatchNo(), invCountOrder.getDeptCode(), invCountOrder.getInvCode(), invCountOrder.getInvSpaceCode());
orderDetailEntity.setInvNum(invProductEntity.getReCount());
orderDetailEntity.setCountNum(0);
//TODO 此查询无法区分无序列号条码,待优化
//查询此库存的详情,构造并插入码数据
List<String> codes = invProductDetailDao.selectCountOrderCodes(invCountOrder.getInvCode(), invCountOrder.getInvSpaceCode(), orderDetailEntity.getRelId(), orderDetailEntity.getBatchNo());
if (CollUtil.isNotEmpty(codes)) {
Map<String, InvCountCodesEntity> codesMap = new HashMap<>(codes.size());
for (String code : codes) {
InvCountCodesEntity codesEntity = codesMap.get(code);
if (null == codesEntity) {
//构造条码信息
codesEntity.setCode(code);
codesEntity.setOrderIdFk(orderId);
codesEntity.setCount(1);
codesEntity.setBatchNo(orderDetailEntity.getBatchNo());
codesEntity.setRelId(orderDetailEntity.getRelId());
codesMap.put(code, codesEntity);
} else {
codesEntity.setCount(codesEntity.getCount() + 1);
}
}
for (String key : codesMap.keySet()) {
codeMapper.insert(codesMap.get(key));
}
}
mapper.insert(orderDetailEntity);
}
sqlSession.commit();

@ -203,6 +203,7 @@
AND ipd.invSpaceCode = #{invSpaceCode}
</if>
</where>
group by ip.id
</select>
<select id="getCountInvProduct" resultType="com.glxp.api.res.inv.InvProductResponse">

@ -142,4 +142,23 @@
from inv_product_detail
where code = #{code}
</select>
<select id="selectCountOrderCodes" resultType="java.lang.String">
select distinct code
from inv_product_detail
<where>
<if test="invCode != null and invCode != ''">
AND invCode = #{invCode}
</if>
<if test="invSpaceCode != null and invSpaceCode != ''">
AND invSpaceCode = #{invSpaceCode}
</if>
<if test="relId != null">
AND relId = #{relId}
</if>
<if test="batchNo != null and batchNo != ''">
AND batchNo = #{batchNo}
</if>
</where>
</select>
</mapper>

Loading…
Cancel
Save