no message

main
HUOJIN\92525 2026-01-28 11:24:23 +08:00
parent 46c185eaa6
commit 6236694a13
2 changed files with 37 additions and 12 deletions

View File

@ -4,6 +4,7 @@
<select id="queryPoints" resultType="org.cpte.modules.base.entity.Point">
SELECT point.* FROM base_point point
JOIN base_area area ON point.area_id = area.id
LEFT JOIN data_inventory di ON di.point_id=point.id
WHERE point.iz_active = 1
<if test="pointCode != null and pointCode != ''">
AND point.point_code = #{pointCode}
@ -14,6 +15,7 @@
<if test="areaCode != null and areaCode != ''">
AND area.area_code = #{areaCode}
</if>
AND di.point_id IS NULL
</select>
<select id="findPointsWithSkuBatchPo" resultType="org.cpte.modules.base.entity.Point">
@ -22,9 +24,11 @@
JOIN base_point bp2 ON bp1.col_num = bp2.col_num
JOIN data_inventory inv ON bp2.id = inv.point_id
JOIN base_item_key bik ON inv.item_key_id = bik.id
LEFT JOIN data_inventory di ON di.point_id=bp1.id
WHERE bp1.status = 0
AND bp1.iz_active=1
AND ba.area_code = #{areaCode}
AND di.point_id IS NULL
AND bik.id IN
<foreach collection="itemKeyIds" item="itemKeyId" open="(" separator="," close=")">
#{itemKeyId}

View File

@ -2,6 +2,7 @@ package org.cpte.modules.quartz.job;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.cpte.modules.agvTask.mapper.AgvTaskMapper;
import org.cpte.modules.agvTask.vo.ConNoAgv;
import org.cpte.modules.constant.enums.PickStatusEnum;
@ -12,6 +13,7 @@ import org.cpte.modules.shipping.mapper.PickDetailMapper;
import org.cpte.modules.shipping.service.IPickDetailService;
import org.cpte.modules.shipping.service.IPickService;
import org.cpte.modules.shipping.vo.AllocationPickDetailData;
import org.cpte.modules.utils.RedisDistributedLockUtil;
import org.jeecg.common.constant.CommonConstant;
import org.jeecg.modules.base.service.BaseCommonService;
import org.quartz.Job;
@ -40,22 +42,41 @@ public class AllocatePickDetailJob implements Job {
@Autowired
private IPickDetailService pickDetailService;
@Autowired
private RedisDistributedLockUtil redissonLock;
@Override
public void execute(JobExecutionContext jobExecutionContext) {
//1.获取未拣货完成的出库明细
List<PickDetail> pickDetails = pickDetailMapper.queryUnFinishedPickDetail();
if (CollectionUtils.isEmpty(pickDetails)) {
log.info("没有待分配的出库明细");
return;
String lockKey = "lock:allocation";
String lockValue = null;
try {
lockValue = redissonLock.tryLock(lockKey, 10);
if (StringUtils.isEmpty(lockValue)) {
throw new RuntimeException("分配明细中,请稍后重试");
}
//1.获取未拣货完成的出库明细
List<PickDetail> pickDetails = pickDetailMapper.queryUnFinishedPickDetail();
if (CollectionUtils.isEmpty(pickDetails)) {
log.info("没有待分配的出库明细");
return;
}
//1.数据准备
AllocationPickDetailData data = prepareData(pickDetails);
// 处理成品、配件类型的出库单
processCpPjTypePicks(data.getCpPjPickIds(), data.getPickDetailMap(), data.getPickMap());
// 处理其他类型的出库单
processOtherTypePicks(data.getOtherPickIds(), data.getPickDetailMap(), data.getPickMap());
} catch (Exception e) {
log.error("分配明细异常", e);
throw e;
} finally {
if (StringUtils.isNotEmpty(lockValue)) {
redissonLock.unlock(lockKey, lockValue);
}
}
//1.数据准备
AllocationPickDetailData data = prepareData(pickDetails);
// 处理成品、配件类型的出库单
processCpPjTypePicks(data.getCpPjPickIds(), data.getPickDetailMap(), data.getPickMap());
// 处理其他类型的出库单
processOtherTypePicks(data.getOtherPickIds(), data.getPickDetailMap(), data.getPickMap());
}
/**