rev: 盘点任务下发

This commit is contained in:
2023-06-05 15:29:52 +08:00
parent 28ae81907d
commit ae846b5fd6
10 changed files with 134 additions and 8 deletions

View File

@@ -38,7 +38,7 @@ public enum AcsTaskEnum {
TASK_STRUCT_SHUT("15","拼盘任务"),
TASK_STRUCT_CP_IN("11","入库-成品-生产入库"),
TASK_STRUCT_CP_OUT("12","出库-成品-生产出库"),
TASK_STRUCT_CP_CHECK("13","出库-成品-盘点"),
TASK_STRUCT_CP_CHECK("13","成品-盘点"),
//回调状态
STATUS_START("1","执行中"),

View File

@@ -113,5 +113,13 @@ public class StIvtCheckmstCpController {
iStIvtCheckmstCpService.processBox(whereJson);
return new ResponseEntity<>(HttpStatus.OK);
}
@PostMapping("/sendTask")
@Log("下发任务")
@ApiOperation("下发任务")
public ResponseEntity<Object> sendTask(@RequestBody JSONObject whereJson) {
iStIvtCheckmstCpService.sendTask(whereJson);
return new ResponseEntity<>(HttpStatus.OK);
}
}

View File

@@ -55,4 +55,5 @@ public interface IStIvtCheckmstCpService extends IService<StIvtCheckmstCp> {
void taskOperate(JSONObject form);
void sendTask(JSONObject whereJson);
}

View File

@@ -107,7 +107,7 @@ public class StIvtCheckdtlCp implements Serializable {
/**
* 是否已下发
*/
private Boolean is_down;
private String is_down;
/**
* 盘点数量

View File

@@ -15,6 +15,8 @@ import org.jetbrains.annotations.NotNull;
import org.nl.common.TableDataInfo;
import org.nl.common.domain.query.PageQuery;
import org.nl.common.enums.AcsTaskEnum;
import org.nl.common.publish.BussEventMulticaster;
import org.nl.common.publish.event.PointEvent;
import org.nl.common.utils.IdUtil;
import org.nl.common.utils.MapOf;
import org.nl.common.utils.SecurityUtils;
@@ -26,6 +28,9 @@ import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtBsrealstorattr
import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtStructattrService;
import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtBsrealstorattr;
import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtStructattr;
import org.nl.wms.product_manage.sch.manage.TaskStatusEnum;
import org.nl.wms.scheduler_manage.service.task.ISchBaseTaskService;
import org.nl.wms.scheduler_manage.service.task.dao.SchBaseTask;
import org.nl.wms.storage_manage.CHECKEnum;
import org.nl.wms.storage_manage.productmanage.service.check.IStIvtCheckdtlCpService;
import org.nl.wms.storage_manage.productmanage.service.check.IStIvtCheckmstCpService;
@@ -52,6 +57,7 @@ import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.function.Consumer;
/**
* <p>
@@ -83,6 +89,9 @@ public class StIvtCheckmstCpServiceImpl extends ServiceImpl<StIvtCheckmstCpMappe
private MdPbBucketrecordMapper mdPbBucketrecordMapper; // 箱mapper服务
@Autowired
private ISchBaseTaskService iSchBaseTaskService; // 任务表服务
@Autowired(required = false)
private StIvtCheckdtlCpMapper stIvtCheckdtlCpMapper;
@@ -448,36 +457,98 @@ public class StIvtCheckmstCpServiceImpl extends ServiceImpl<StIvtCheckmstCpMappe
}
@Override
@Transactional(rollbackFor = Exception.class)
public void taskOperate(JSONObject form) {
String task_id = form.getString("task_id");
String status = form.getString("status");
List<StIvtCheckdtlCp> dtl_list = stIvtCheckdtlCpMapper.queryCheckDtlByTask(MapOf.of("task_id", task_id));
StIvtCheckdtlCp dtl = dtl_list.get(0);
if (status.equals(AcsTaskEnum.STATUS_FINISH.getCode()) && dtl.getIs_down().equals("2")) {
// 更新任务为完成
iSchBaseTaskService.update(
new UpdateWrapper<SchBaseTask>().lambda()
.set(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode())
.eq(SchBaseTask::getTask_id, task_id)
);
// 更新明细为完成
iStIvtCheckdtlCpService.update(new UpdateWrapper<StIvtCheckdtlCp>()
.set("status", CHECKEnum.DTL_STATUS.code("完成"))
.set("status", CHECKEnum.DTL_STATUS.code("确认完成"))
.eq("struct_id", dtl.getStruct_id())
.eq("check_id", dtl.getCheck_id()));
//判断是否存在未完成的明细
List<StIvtCheckdtlCp> list = iStIvtCheckdtlCpService.list(new QueryWrapper<StIvtCheckdtlCp>().eq("check_id", dtl.getCheck_id())
.ne("status", CHECKEnum.DTL_STATUS.code("完成")));
.ne("status", CHECKEnum.DTL_STATUS.code("确认完成")));
if (list.size() == 0) {
StIvtCheckmstCp jo_mst = this.getOne(new QueryWrapper<StIvtCheckmstCp>().eq("check_id", dtl.getCheck_id()));
jo_mst.setStatus(CHECKEnum.BILL_STATUS.code("完成"));
jo_mst.setConfirm_optid(SecurityUtils.getCurrentUserId());
jo_mst.setConfirm_optname(SecurityUtils.getCurrentNickName());
jo_mst.setConfirm_time(DateUtil.now());
//解锁起点点位、仓位
List<StIvtCheckdtlCp> finish_list = iStIvtCheckdtlCpService.list(new QueryWrapper<StIvtCheckdtlCp>().eq("check_id", dtl.getCheck_id())
.eq("status", CHECKEnum.DTL_STATUS.code("完成")));
.eq("status", CHECKEnum.DTL_STATUS.code("确认完成")));
finish_list.stream()
.map(StIvtCheckdtlCp::getStruct_id)
.distinct()
.forEach(struct_id -> structattrService.update(new UpdateWrapper<StIvtStructattr>().set("inv_code", "").set("lock_type", "0").eq("struct_id", struct_id)));
}
} else {
if (status.equals(AcsTaskEnum.STATUS_FINISH.getCode())) {
// 更新任务为完成
iSchBaseTaskService.update(
new UpdateWrapper<SchBaseTask>().lambda()
.set(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode())
.eq(SchBaseTask::getTask_id, task_id)
);
} else {
// 更新任务为执行中
iSchBaseTaskService.update(
new UpdateWrapper<SchBaseTask>().lambda()
.set(SchBaseTask::getTask_status, TaskStatusEnum.EXECUTING.getCode())
.eq(SchBaseTask::getTask_id, task_id)
);
}
}
}
@Override
@Transactional(rollbackFor = Exception.class)
public void sendTask(JSONObject whereJson) {
String point_code2 = whereJson.getString("point_code2");
StIvtCheckdtlCp dtlDao = iStIvtCheckdtlCpService.getById(whereJson.getString("checkdtl_id"));
// 找一个盘点位
if (whereJson.getBoolean("is_antu_div")) {
// TODO 暂时写死
point_code2 = "070515";
}
StIvtStructattr attrDao = structattrService.getById(whereJson.getString("struct_id"));
PointEvent event = PointEvent.builder()
.type(AcsTaskEnum.TASK_STRUCT_CP_CHECK.getCode())
.point_code1(attrDao.getStruct_code())
.point_code2(point_code2)
.vehicle_code(attrDao.getStoragevehicle_code())
.product_area("A1") // 暂时写死
.build();
BussEventMulticaster.Publish(event);
dtlDao.setIs_down("1");
iStIvtCheckdtlCpService.updateById(dtlDao);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void delete(Long[] ids) {

View File

@@ -547,6 +547,14 @@ public class StIvtIostorinvCpOutServiceImpl extends ServiceImpl<StIvtIostorinvCp
// 更新任务状态为完成
if (status.equals(AcsTaskEnum.STATUS_FINISH.getCode())) {
// 更新任务为完成
iSchBaseTaskService.update(
new UpdateWrapper<SchBaseTask>().lambda()
.set(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode())
.eq(SchBaseTask::getTask_id, task_id)
);
// 更新分配为完成
iostorinvdisCpService.update(
new UpdateWrapper<StIvtIostorinvdisCp>().lambda()
.eq(StIvtIostorinvdisCp::getTask_id, task_id)
@@ -560,6 +568,14 @@ public class StIvtIostorinvCpOutServiceImpl extends ServiceImpl<StIvtIostorinvCp
iostorinvdisCpService.confirm(mst_jo);
} else {
// 更新任务为执行中
iSchBaseTaskService.update(
new UpdateWrapper<SchBaseTask>().lambda()
.set(SchBaseTask::getTask_status, TaskStatusEnum.EXECUTING.getCode())
.eq(SchBaseTask::getTask_id, task_id)
);
// 更新分配为执行中
iostorinvdisCpService.update(
new UpdateWrapper<StIvtIostorinvdisCp>().lambda()
.eq(StIvtIostorinvdisCp::getTask_id, task_id)

View File

@@ -672,6 +672,13 @@ public class StIvtIostorinvCpServiceImpl extends ServiceImpl<StIvtIostorinvCpMap
// 更新任务状态为完成
if (status.equals(AcsTaskEnum.STATUS_FINISH.getCode())) {
// 更新任务为完成
iSchBaseTaskService.update(
new UpdateWrapper<SchBaseTask>().lambda()
.set(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode())
.eq(SchBaseTask::getTask_id, task_id)
);
// 更新分配明细为完成
iostorinvdisCpService.update(
new UpdateWrapper<StIvtIostorinvdisCp>().lambda()
.eq(StIvtIostorinvdisCp::getTask_id, task_id)
@@ -685,6 +692,13 @@ public class StIvtIostorinvCpServiceImpl extends ServiceImpl<StIvtIostorinvCpMap
iostorinvdisCpService.confirm(mst_jo);
} else {
// 更新任务为执行中
iSchBaseTaskService.update(
new UpdateWrapper<SchBaseTask>().lambda()
.set(SchBaseTask::getTask_status, TaskStatusEnum.EXECUTING.getCode())
.eq(SchBaseTask::getTask_id, task_id)
);
// 更新分配为执行中
iostorinvdisCpService.update(
new UpdateWrapper<StIvtIostorinvdisCp>().lambda()
.eq(StIvtIostorinvdisCp::getTask_id, task_id)

View File

@@ -44,7 +44,7 @@ public enum TASKEnum implements FunctionStrategy<String, JSONObject> {
IStIvtIostorinvCpOutService bean = SpringContextHolder.getBean(IStIvtIostorinvCpOutService.class);
bean.taskOperate(form);
}),
CP_CHECK_TASK(type -> AcsTaskEnum.TASK_STRUCT_CP_OUT.getCode().equals(type), form -> {
CP_CHECK_TASK(type -> AcsTaskEnum.TASK_STRUCT_CP_CHECK.getCode().equals(type), form -> {
IStIvtCheckmstCpService bean = SpringContextHolder.getBean(IStIvtCheckmstCpService.class);
bean.taskOperate(form);
}),

View File

@@ -79,7 +79,8 @@
type="primary"
icon="el-icon-plus"
size="mini"
@click="addrow"
:disabled="add_flag"
@click="sendTask"
>
下发任务
</el-button>
@@ -320,6 +321,12 @@ export default {
check_resultFormat(row, column) {
return this.dict.label.check_result[row.check_result]
},
sendTask() {
this.nowrow.is_antu_div = true // 是否自动分配盘点位
check.sendTask(this.nowrow).then( res => {
this.crud.notify('任务下发成功!', CRUD.NOTIFICATION_TYPE.SUCCESS)
})
},
addrow() {
if (this.nowrow === null) {
this.crud.notify('请先选中一条已存在的库存明细!', CRUD.NOTIFICATION_TYPE.INFO)

View File

@@ -127,6 +127,14 @@ export function processBox(data) {
})
}
export function sendTask(data) {
return request({
url: '/api/stIvtCheckmstCp/sendTask',
method: 'post',
data
})
}
export default {
add,
edit,
@@ -141,5 +149,6 @@ export default {
getOutBillDis,
process1,
getBucketrecord,
processBox
processBox,
sendTask
}