异常情况,任务取消处;
点位绑定/解绑优化;
This commit is contained in:
2025-07-15 17:32:55 +08:00
parent 2bbda3a680
commit 38da852e21
12 changed files with 186 additions and 129 deletions

View File

@@ -15,6 +15,10 @@
AND
sect.stor_id = #{params.stor_id}
</if>
<if test="params.stor_code != null">
AND
sect.sect_code LIKE CONCAT('%', #{params.stor_code}, '%')
</if>
</where>
ORDER BY sect.update_time Desc
</select>

View File

@@ -116,8 +116,8 @@ public class MdMeMaterialbaseServiceImpl extends ServiceImpl<MdMeMaterialbaseMap
this.save(dto);
}
@Override
@Transactional
@Override
@Transactional
public void excelImport(MultipartFile file, HttpServletRequest request, HttpServletResponse response) {
try {
InputStream inputStream = file.getInputStream();
@@ -310,9 +310,9 @@ public class MdMeMaterialbaseServiceImpl extends ServiceImpl<MdMeMaterialbaseMap
/**
* 点位
*/
// @Override
@Transactional
public void excelImport4(MultipartFile file, HttpServletRequest request, HttpServletResponse response) {
public void excelImport9(MultipartFile file, HttpServletRequest request, HttpServletResponse response) {
try {
InputStream inputStream = file.getInputStream();
ExcelReader excelReader = ExcelUtil.getReader(inputStream);
@@ -363,9 +363,13 @@ public class MdMeMaterialbaseServiceImpl extends ServiceImpl<MdMeMaterialbaseMap
}
}
/**
* 载具
*/
//@Override
@Transactional
public void excelImport6(MultipartFile file, HttpServletRequest request, HttpServletResponse response) {
public void excelImport8(MultipartFile file, HttpServletRequest request, HttpServletResponse response) {
try {
List<MdPbStoragevehicleinfo> insertList = new ArrayList<>();
InputStream inputStream = file.getInputStream();

View File

@@ -134,7 +134,7 @@ public class PdaIosOutController {
@PostMapping("/update")
@Log("获取升级地址")
public ResponseEntity<Map> apkUrl() {
Map of = MapOf.of("versionName", "1.0.1", "url", "http://192.168.18.218:8012/api/pda/download/app-release");
Map of = MapOf.of("versionName", "1.0.1", "url", "http://172.18.51.221:8011/api/pda/download/app-release");
return new ResponseEntity<>(of, HttpStatus.OK);
}

View File

@@ -231,7 +231,7 @@ public class PdaIosInServiceImpl implements PdaIosInService {
@Override
public List<SelectItemVo> getSect(JSONObject whereJson) {
PageQuery pageQuery = new PageQuery();
IPage<SectattrDto> sectList = iSectattrService.queryAll(new HashMap(), pageQuery);
IPage<SectattrDto> sectList = iSectattrService.queryAll(whereJson, pageQuery);
List<SelectItemVo> selectList = new ArrayList<>();
sectList.getRecords().forEach(r ->
selectList.add(SelectItemVo.builder().text(r.getStor_name() + "-" + r.getSect_name()).value(r.getSect_id()).build())
@@ -242,8 +242,7 @@ public class PdaIosInServiceImpl implements PdaIosInService {
@Override
public List<SelectItemVo> getRegion(JSONObject whereJson) {
PageQuery pageQuery = new PageQuery();
IPage<SchBaseRegion> regionList = iSchBaseRegionService.queryAll(new HashMap(), pageQuery);
IPage<SchBaseRegion> regionList = iSchBaseRegionService.queryAll(whereJson, pageQuery);
List<SelectItemVo> selectList = new ArrayList<>();
regionList.getRecords().forEach(r ->
selectList.add(SelectItemVo.builder().text(r.getRegion_name()).value(r.getRegion_code()).build())

View File

@@ -434,51 +434,30 @@ public class PdaIosOutServiceImpl implements PdaIosOutService {
@Override
@Transactional(rollbackFor = Exception.class)
public PdaResponse bindOrUnbind(JSONObject whereJson) {
SchBasePoint sitePoint = iSchBasePointService.getOne(new LambdaQueryWrapper<SchBasePoint>().eq(SchBasePoint::getPoint_code, whereJson.getString("siteCode")).eq(SchBasePoint::getIs_used, true));
String siteCode = whereJson.getString("siteCode");
String shelfCode = whereJson.getString("shelfCode");
String mode = whereJson.getString("mode");
// 校验站点是否存在、是否可用
SchBasePoint sitePoint = iSchBasePointService.getOne(
new LambdaQueryWrapper<SchBasePoint>()
.eq(SchBasePoint::getPoint_code, siteCode)
.eq(SchBasePoint::getIs_used, true)
);
if (sitePoint == null) {
throw new BadRequestException("输入的站点编号有误或被禁用,请检查!");
}
List<SchBasePoint> cxPointLists = iSchBasePointService.checkEndPointTask(
null,
null,
StatusEnum.SORT_TYPE.code("升序"), null, sitePoint.getPoint_code(), null, false);
if (ObjectUtils.isNotEmpty(cxPointLists)) {
//校验站点是否有在途输送任务
List<SchBasePoint> activeTasks = iSchBasePointService.checkEndPointTask(
null, null, StatusEnum.SORT_TYPE.code("升序"), null, siteCode, null, false
);
if (CollectionUtils.isNotEmpty(activeTasks)) {
throw new BadRequestException("该货架正在执行输送任务,状态为锁定,请等任务完成再做绑定或解绑!");
}
LambdaUpdateWrapper<SchBasePoint> wrapper = new LambdaUpdateWrapper<>();
if (IOSEnum.BIND_OR_UNBIND.code("绑定").equals(whereJson.getString("mode"))) {
//查询组盘信息
GroupPlate plateDao = mdPbGroupplateMapper.selectOne(
new LambdaQueryWrapper<GroupPlate>()
.eq(GroupPlate::getStoragevehicle_code, whereJson.getString("shelfCode")).eq(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("组盘")));
if (plateDao != null) {
plateDao.setStatus(IOSEnum.GROUP_PLATE_STATUS.code("入库"));
mdPbGroupplateMapper.updateById(plateDao);
}
if (StringUtils.isNotBlank(sitePoint.getVehicle_code())) {
if (sitePoint.getVehicle_code().equals(whereJson.getString("shelfCode"))) {
return PdaResponse.requestOk();
} else {
throw new BadRequestException("当前站点已绑定货架:" + sitePoint.getVehicle_type() + "请先解绑,再绑定!");
}
}
//校验是否在其他站点绑定
SchBasePoint shelfPoint = iSchBasePointService.getOne(new LambdaQueryWrapper<SchBasePoint>().eq(SchBasePoint::getVehicle_code, whereJson.getString("shelfCode")));
if (shelfPoint != null) {
throw new BadRequestException("当前货架:" + whereJson.getString("shelfCode") + "已绑定在站点:" + shelfPoint.getPoint_code() + ",请先输入地面站点号:" + shelfPoint.getPoint_code() + ",进行解绑,再绑定。");
}
wrapper.set(SchBasePoint::getVehicle_code, whereJson.getString("shelfCode"))
.set(SchBasePoint::getPoint_status, IOSEnum.POINT_STATUS.code("有货"))
.eq(SchBasePoint::getPoint_code, whereJson.getString("siteCode"));
if (IOSEnum.BIND_OR_UNBIND.code("绑定").equals(mode)) {
doBind(sitePoint, siteCode, shelfCode, wrapper);
} else {
if (!"0".equals(sitePoint.getParent_point_code())) {
List<SchBasePoint> sitePointList = iSchBasePointService.list(new LambdaQueryWrapper<SchBasePoint>().eq(SchBasePoint::getParent_point_code, sitePoint.getParent_point_code()).eq(SchBasePoint::getIs_used, true));
wrapper.in(SchBasePoint::getPoint_code, sitePointList);
} else {
wrapper.eq(SchBasePoint::getPoint_code, whereJson.getString("siteCode"));
}
wrapper.set(SchBasePoint::getVehicle_code, null)
.set(SchBasePoint::getPoint_status, IOSEnum.POINT_STATUS.code("无货"));
doUnbind(sitePoint, siteCode, wrapper);
}
wrapper.set(SchBasePoint::getUpdate_time, DateUtil.now())
.set(SchBasePoint::getIs_has_workder, BaseDataEnum.IS_YES_NOT.code(""))
@@ -487,6 +466,70 @@ public class PdaIosOutServiceImpl implements PdaIosOutService {
return PdaResponse.requestOk();
}
/**
* 绑定
*/
private void doBind(SchBasePoint sitePoint, String siteCode, String shelfCode, LambdaUpdateWrapper<SchBasePoint> wrapper) {
// 校验站点是否已绑定
if (StringUtils.isNotBlank(sitePoint.getVehicle_code())) {
if (sitePoint.getVehicle_code().equals(shelfCode)) {
checkGroupPlateStatus(shelfCode);
return;
}
throw new BadRequestException("当前站点已绑定货架:" + sitePoint.getVehicle_code() + ",请先解绑!");
}
// 校验货架是否已绑定在其他站点
SchBasePoint boundPoint = iSchBasePointService.getOne(
new LambdaQueryWrapper<SchBasePoint>().eq(SchBasePoint::getVehicle_code, shelfCode)
);
if (boundPoint != null) {
throw new BadRequestException("当前货架:" + shelfCode + "已绑定在站点:" + boundPoint.getPoint_code() + ",请先解绑。");
}
checkGroupPlateStatus(shelfCode);
wrapper.eq(SchBasePoint::getPoint_code, siteCode)
.set(SchBasePoint::getVehicle_code, shelfCode)
.set(SchBasePoint::getPoint_status, IOSEnum.POINT_STATUS.code("有货"));
}
/**
* 校验组盘状态
*/
private void checkGroupPlateStatus(String shelfCode) {
List<GroupPlate> plates = mdPbGroupplateMapper.selectList(
new LambdaQueryWrapper<GroupPlate>()
.eq(GroupPlate::getStoragevehicle_code, shelfCode)
.lt(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("出库"))
);
if (CollectionUtils.isNotEmpty(plates)) {
Set<String> plateCodes = plates.stream().map(GroupPlate::getGroup_id).collect(Collectors.toSet());
mdPbGroupplateMapper.update(null, new LambdaUpdateWrapper<GroupPlate>()
.set(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("入库"))
.set(GroupPlate::getFrozen_qty, BigDecimal.ZERO).in(GroupPlate::getGroup_id, plateCodes));
}
}
/**
* 解绑
*/
private void doUnbind(SchBasePoint sitePoint, String siteCode, LambdaUpdateWrapper<SchBasePoint> wrapper) {
if (!"0".equals(sitePoint.getParent_point_code())) {
// 有同列的子站点,批量解绑
List<SchBasePoint> sameColumnPoints = iSchBasePointService.list(
new LambdaQueryWrapper<SchBasePoint>()
.eq(SchBasePoint::getParent_point_code, sitePoint.getParent_point_code())
.eq(SchBasePoint::getIs_used, true)
);
wrapper.in(SchBasePoint::getPoint_code, sameColumnPoints.stream()
.map(SchBasePoint::getPoint_code)
.collect(Collectors.toList()));
} else {
wrapper.eq(SchBasePoint::getPoint_code, siteCode);
}
wrapper.set(SchBasePoint::getVehicle_code, null)
.set(SchBasePoint::getPoint_status, IOSEnum.POINT_STATUS.code("无货"));
}
/**
* 1.库存载具绑定到出库点位

View File

@@ -36,7 +36,7 @@ public class SchBaseRegionServiceImpl extends ServiceImpl<SchBaseRegionMapper, S
@Override
public IPage<SchBaseRegion> queryAll(Map whereJson, PageQuery page) {
String workshop_code = ObjectUtil.isNotEmpty(whereJson.get("workshop_code")) ? whereJson.get("workshop_code").toString() : null;
String blurry = ObjectUtil.isNotEmpty(whereJson.get("blurry")) ? whereJson.get("blurry").toString() : null;
String blurry = ObjectUtil.isNotEmpty(whereJson.get("blurry")) ? whereJson.get("blurry").toString():ObjectUtil.isNotEmpty(whereJson.get("region")) ?whereJson.get("region").toString() : null;
Boolean is_has_workder = ObjectUtil.isNotEmpty(whereJson.get("is_has_workder")) ? Boolean.valueOf(whereJson.get("is_has_workder").toString()) : null;
LambdaQueryWrapper<SchBaseRegion> lam = new LambdaQueryWrapper<>();
lam.eq(ObjectUtil.isNotEmpty(workshop_code), SchBaseRegion::getWorkshop_code, workshop_code)

View File

@@ -156,8 +156,7 @@ public class MoveTask extends AbstractTask {
@Transactional
public void cancelTask(SchBaseTask taskObj) {
// 删除任务
StIvtMoveinvdtl dtlDao = iStIvtMoveinvdtlService.getOne(
new QueryWrapper<StIvtMoveinvdtl>().lambda()
StIvtMoveinvdtl dtlDao = iStIvtMoveinvdtlService.getOne(new QueryWrapper<StIvtMoveinvdtl>().lambda()
.eq(StIvtMoveinvdtl::getTask_id, taskObj.getTask_id())
);
iStIvtMoveinvService.cancelTask(dtlDao);

View File

@@ -10,7 +10,6 @@ import org.nl.common.utils.SecurityUtils;
import org.nl.config.IdUtil;
import org.nl.wms.basedata_manage.service.IStructattrService;
import org.nl.wms.basedata_manage.service.dao.Structattr;
import org.nl.wms.sch_manage.enums.StatusEnum;
import org.nl.wms.sch_manage.enums.TaskStatus;
import org.nl.wms.sch_manage.service.ISchBasePointService;
import org.nl.wms.sch_manage.service.ISchBaseTaskService;
@@ -181,27 +180,22 @@ public class PdaPointTask extends AbstractTask {
@Transactional
public void cancelTask(SchBaseTask taskObj) {
// 更新起点
iSchBasePointService.update(
new UpdateWrapper<SchBasePoint>().lambda()
.eq(SchBasePoint::getPoint_code, taskObj.getPoint_code1())
.set(SchBasePoint::getPoint_status, IOSEnum.POINT_STATUS.code("无货"))
);
iStructattrService.update(
new UpdateWrapper<Structattr>().lambda()
.eq(Structattr::getStruct_code, taskObj.getPoint_code1())
.set(Structattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定"))
iSchBasePointService.update(new UpdateWrapper<SchBasePoint>().lambda()
.eq(SchBasePoint::getPoint_code, taskObj.getPoint_code1())
.set(SchBasePoint::getPoint_status, IOSEnum.POINT_STATUS.code("无货"))
.set(SchBasePoint::getVehicle_code, null));
iStructattrService.update(new UpdateWrapper<Structattr>().lambda()
.eq(Structattr::getStruct_code, taskObj.getPoint_code1())
.set(Structattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定"))
);
// 更新终点
iSchBasePointService.update(
new UpdateWrapper<SchBasePoint>().lambda()
.eq(SchBasePoint::getPoint_code, taskObj.getPoint_code2())
.set(SchBasePoint::getPoint_status, IOSEnum.POINT_STATUS.code("无货"))
);
iStructattrService.update(
new UpdateWrapper<Structattr>().lambda()
.eq(Structattr::getStruct_code, taskObj.getPoint_code2())
.set(Structattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定"))
iSchBasePointService.update(new UpdateWrapper<SchBasePoint>().lambda()
.eq(SchBasePoint::getPoint_code, taskObj.getPoint_code2())
.set(SchBasePoint::getPoint_status, IOSEnum.POINT_STATUS.code("无货"))
.set(SchBasePoint::getVehicle_code, null));
iStructattrService.update(new UpdateWrapper<Structattr>().lambda()
.eq(Structattr::getStruct_code, taskObj.getPoint_code2())
.set(Structattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定"))
);
// 更新任务
taskObj.setRemark("已取消");

View File

@@ -154,13 +154,6 @@ public class StInTask extends AbstractTask {
@Transactional(rollbackFor = Exception.class)
public void cancelTask(SchBaseTask taskObj) {
// 取消任务
taskService.update(new LambdaUpdateWrapper<SchBaseTask>()
.set(SchBaseTask::getIs_delete, BaseDataEnum.IS_YES_NOT.code(""))
.set(SchBaseTask::getTask_status, TaskStatus.CANCELED.getCode())
.set(SchBaseTask::getRemark,"已取消")
.eq(SchBaseTask::getTask_id,taskObj.getTask_id())
);
//分配表清除任务
ioStorInvDisMapper.update(new IOStorInvDis(),new LambdaUpdateWrapper<>(IOStorInvDis.class)
.set(IOStorInvDis::getTask_id,null)
@@ -169,7 +162,6 @@ public class StInTask extends AbstractTask {
.set(IOStorInvDis::getWork_status, IOSEnum.INBILL_DIS_STATUS.code("未生成"))
.eq(IOStorInvDis::getTask_id,taskObj.getTask_id())
);
// 更新任务状态
taskObj.setTask_status(TaskStatus.CANCELED.getCode());
taskObj.setRemark("已取消");

View File

@@ -4,11 +4,12 @@ import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import org.nl.common.exception.BadRequestException;
import org.nl.common.utils.SecurityUtils;
import org.nl.config.IdUtil;
import org.nl.wms.basedata_manage.enums.BaseDataEnum;
import org.nl.wms.sch_manage.enums.StatusEnum;
import org.nl.wms.basedata_manage.service.IStructattrService;
import org.nl.wms.basedata_manage.service.dao.Structattr;
import org.nl.wms.sch_manage.enums.TaskStatus;
import org.nl.wms.sch_manage.service.ISchBaseTaskService;
import org.nl.wms.sch_manage.service.dao.SchBaseTask;
@@ -16,7 +17,9 @@ import org.nl.wms.sch_manage.service.util.AbstractTask;
import org.nl.wms.sch_manage.service.util.AcsTaskDto;
import org.nl.wms.sch_manage.service.util.TaskType;
import org.nl.wms.warehouse_management.enums.IOSEnum;
import org.nl.wms.warehouse_management.service.IMdPbGroupplateService;
import org.nl.wms.warehouse_management.service.IOutBillService;
import org.nl.wms.warehouse_management.service.dao.GroupPlate;
import org.nl.wms.warehouse_management.service.dao.IOStorInvDis;
import org.nl.wms.warehouse_management.service.dao.mapper.IOStorInvDisMapper;
import org.nl.wms.warehouse_management.service.util.UpdateIvtUtils;
@@ -25,6 +28,7 @@ import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.math.BigDecimal;
/**
* @Author: Liuxy
@@ -36,7 +40,10 @@ import javax.annotation.Resource;
public class StOutTask extends AbstractTask {
@Autowired
private ISchBaseTaskService taskService;
@Resource
private IMdPbGroupplateService iMdPbGroupPlateService;
@Resource
private IStructattrService iStructattrService;
@Resource
private IOutBillService outBillService;
@@ -148,24 +155,27 @@ public class StOutTask extends AbstractTask {
@Transactional(rollbackFor = Exception.class)
public void cancelTask(SchBaseTask taskObj) {
// 取消任务
taskService.update(new LambdaUpdateWrapper<SchBaseTask>()
.set(SchBaseTask::getIs_delete, BaseDataEnum.IS_YES_NOT.code(""))
.set(SchBaseTask::getTask_status, TaskStatus.CANCELED.getCode())
.set(SchBaseTask::getRemark,"已取消")
.eq(SchBaseTask::getTask_id,taskObj.getTask_id())
);
//分配表清除任务
ioStorInvDisMapper.update(new IOStorInvDis(),new LambdaUpdateWrapper<>(IOStorInvDis.class)
.set(IOStorInvDis::getTask_id,null)
.set(IOStorInvDis::getPoint_code,null)
.set(IOStorInvDis::getIs_issued,0)
ioStorInvDisMapper.update(new IOStorInvDis(), new LambdaUpdateWrapper<>(IOStorInvDis.class)
.set(IOStorInvDis::getTask_id, null)
.set(IOStorInvDis::getPoint_code, null)
.set(IOStorInvDis::getIs_issued, 0)
.set(IOStorInvDis::getWork_status, IOSEnum.INBILL_DIS_STATUS.code("未生成"))
.eq(IOStorInvDis::getTask_id,taskObj.getTask_id())
.eq(IOStorInvDis::getTask_id, taskObj.getTask_id())
);
// 更新起点
iStructattrService.update(
new UpdateWrapper<Structattr>().lambda()
.eq(Structattr::getStruct_code, taskObj.getPoint_code1())
.set(Structattr::getTaskdtl_id, null)
.set(Structattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定"))
);
//解锁库存
iMdPbGroupPlateService.update(new GroupPlate(), new LambdaUpdateWrapper<>(GroupPlate.class)
.set(GroupPlate::getFrozen_qty, BigDecimal.ZERO)
.eq(GroupPlate::getStoragevehicle_code, taskObj.getVehicle_code())
.eq(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("入库"))
);
// 更新任务状态
taskObj.setTask_status(TaskStatus.CANCELED.getCode());
taskObj.setRemark("已取消");

View File

@@ -22,7 +22,6 @@ import org.nl.wms.sch_manage.service.util.TaskType;
import org.nl.wms.warehouse_management.enums.IOSEnum;
import org.nl.wms.warehouse_management.service.IMdPbGroupplateService;
import org.nl.wms.warehouse_management.service.dao.GroupPlate;
import org.nl.wms.warehouse_management.service.dao.mapper.MdPbGroupplateMapper;
import org.nl.wms.warehouse_management.service.util.UpdateIvtUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@@ -153,19 +152,17 @@ public class VehicleInTask extends AbstractTask {
@Transactional
public void finishTask(SchBaseTask taskObj) {
// 更新终点
iStructattrService.update(
new UpdateWrapper<Structattr>().lambda()
.eq(Structattr::getStruct_code, taskObj.getPoint_code2())
.set(Structattr::getStoragevehicle_code, taskObj.getVehicle_code())
.set(Structattr::getTaskdtl_id, null)
.set(Structattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定"))
iStructattrService.update(new UpdateWrapper<Structattr>().lambda()
.eq(Structattr::getStruct_code, taskObj.getPoint_code2())
.set(Structattr::getStoragevehicle_code, taskObj.getVehicle_code())
.set(Structattr::getTaskdtl_id, null)
.set(Structattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定"))
);
// 更新起点
iSchBasePointService.update(
new UpdateWrapper<SchBasePoint>().lambda()
.eq(SchBasePoint::getPoint_code, taskObj.getPoint_code1())
.set(SchBasePoint::getVehicle_code, null)
.set(SchBasePoint::getIos_id, null)
iSchBasePointService.update(new UpdateWrapper<SchBasePoint>().lambda()
.eq(SchBasePoint::getPoint_code, taskObj.getPoint_code1())
.set(SchBasePoint::getVehicle_code, null)
.set(SchBasePoint::getIos_id, null)
);
// 更新库存
iMdPbGroupplateService.update(new GroupPlate(), new LambdaUpdateWrapper<>(GroupPlate.class)
@@ -182,11 +179,10 @@ public class VehicleInTask extends AbstractTask {
@Transactional
public void cancelTask(SchBaseTask taskObj) {
// 更新终点
iStructattrService.update(
new UpdateWrapper<Structattr>().lambda()
.eq(Structattr::getStruct_code, taskObj.getPoint_code2())
.set(Structattr::getTaskdtl_id, null)
.set(Structattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定"))
iStructattrService.update(new UpdateWrapper<Structattr>().lambda()
.eq(Structattr::getStruct_code, taskObj.getPoint_code2())
.set(Structattr::getTaskdtl_id, null)
.set(Structattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定"))
);
// 更新任务
taskObj.setRemark("已取消");

View File

@@ -4,18 +4,23 @@ import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import org.nl.common.exception.BadRequestException;
import org.nl.common.utils.SecurityUtils;
import org.nl.config.IdUtil;
import org.nl.wms.basedata_manage.enums.BaseDataEnum;
import org.nl.wms.basedata_manage.service.IStructattrService;
import org.nl.wms.basedata_manage.service.dao.Structattr;
import org.nl.wms.sch_manage.enums.TaskStatus;
import org.nl.wms.sch_manage.service.ISchBaseTaskService;
import org.nl.wms.sch_manage.service.dao.SchBasePoint;
import org.nl.wms.sch_manage.service.dao.SchBaseTask;
import org.nl.wms.sch_manage.service.util.AbstractTask;
import org.nl.wms.sch_manage.service.util.AcsTaskDto;
import org.nl.wms.sch_manage.service.util.TaskType;
import org.nl.wms.warehouse_management.enums.IOSEnum;
import org.nl.wms.warehouse_management.service.IMdPbGroupplateService;
import org.nl.wms.warehouse_management.service.IOutBillService;
import org.nl.wms.warehouse_management.service.dao.GroupPlate;
import org.nl.wms.warehouse_management.service.dao.IOStorInvDis;
import org.nl.wms.warehouse_management.service.dao.mapper.IOStorInvDisMapper;
import org.nl.wms.warehouse_management.service.util.UpdateIvtUtils;
@@ -24,6 +29,7 @@ import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.math.BigDecimal;
/**
* @Author: gbx
@@ -42,11 +48,18 @@ public class VehicleOutTask extends AbstractTask {
@Resource
private IOStorInvDisMapper ioStorInvDisMapper;
/**
* 仓位服务
*/
@Autowired
private IStructattrService iStructattrService;
/**
* 校验工具类
*/
@Autowired
private UpdateIvtUtils updateIvtUtils;
@Resource
private IMdPbGroupplateService iMdPbGroupPlateService;
@Override
public String create(JSONObject json) {
updateIvtUtils.checkTask(json);
@@ -149,24 +162,27 @@ public class VehicleOutTask extends AbstractTask {
@Transactional(rollbackFor = Exception.class)
public void cancelTask(SchBaseTask taskObj) {
// 取消任务
taskService.update(new LambdaUpdateWrapper<SchBaseTask>()
.set(SchBaseTask::getIs_delete, BaseDataEnum.IS_YES_NOT.code(""))
.set(SchBaseTask::getTask_status, TaskStatus.CANCELED.getCode())
.set(SchBaseTask::getRemark,"已取消")
.eq(SchBaseTask::getTask_id,taskObj.getTask_id())
);
//分配表清除任务
ioStorInvDisMapper.update(new IOStorInvDis(),new LambdaUpdateWrapper<>(IOStorInvDis.class)
.set(IOStorInvDis::getTask_id,null)
.set(IOStorInvDis::getPoint_code,null)
.set(IOStorInvDis::getIs_issued,0)
ioStorInvDisMapper.update(new IOStorInvDis(), new LambdaUpdateWrapper<>(IOStorInvDis.class)
.set(IOStorInvDis::getTask_id, null)
.set(IOStorInvDis::getPoint_code, null)
.set(IOStorInvDis::getIs_issued, 0)
.set(IOStorInvDis::getWork_status, IOSEnum.INBILL_DIS_STATUS.code("未生成"))
.eq(IOStorInvDis::getTask_id,taskObj.getTask_id())
.eq(IOStorInvDis::getTask_id, taskObj.getTask_id())
);
// 更新起点
iStructattrService.update(
new UpdateWrapper<Structattr>().lambda()
.eq(Structattr::getStruct_code, taskObj.getPoint_code1())
.set(Structattr::getTaskdtl_id, null)
.set(Structattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定"))
);
// 更新库存
iMdPbGroupPlateService.update(new GroupPlate(), new LambdaUpdateWrapper<>(GroupPlate.class)
.set(GroupPlate::getFrozen_qty, BigDecimal.ZERO)
.eq(GroupPlate::getStoragevehicle_code, taskObj.getVehicle_code())
.eq(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("入库"))
);
// 更新任务状态
taskObj.setTask_status(TaskStatus.CANCELED.getCode());
taskObj.setRemark("已取消");