rev:载具物料表添加is_delete字段功能:出库后删除

This commit is contained in:
zhangzq
2024-07-18 14:48:21 +08:00
parent 812966d21b
commit 43cefb6a83
17 changed files with 45 additions and 24 deletions

View File

@@ -159,11 +159,6 @@ public class MdMeMaterialbase implements Serializable {
*/
private Boolean is_used;
/**
* 是否删除
*/
private Boolean is_delete;
/**
* 外部标识
*/

View File

@@ -70,6 +70,7 @@ public class FIFORuleHandler extends Decisioner<StructattrVechielDto, JSONObject
if (structattr.getFrozen_qty().intValue()==0){
int cause_qty = structattr.getQty().subtract(structattr.getFrozen_qty()).intValue();
int sub = plan_qty - cause_qty;
finalPlan_qty = sub;
disList.add(structattr);
if (sub<=0){
structattr.setFrozen_qty(new BigDecimal(plan_qty));
@@ -77,7 +78,6 @@ public class FIFORuleHandler extends Decisioner<StructattrVechielDto, JSONObject
}
structattr.setFrozen_qty(new BigDecimal(cause_qty));
plan_qty = sub;
finalPlan_qty = sub;
}
}
if (finalPlan_qty>0){

View File

@@ -88,7 +88,8 @@ public class ConveyorOutStorageTask extends AbstractTask {
taskService.create(task);
iMdPbVehicleMaterService.update(new LambdaUpdateWrapper<MdPbVehicleMater>()
.set(MdPbVehicleMater::getTask_code,task.getTask_code())
.eq(MdPbVehicleMater::getVehicle_code,task.getVehicle_code()));
.eq(MdPbVehicleMater::getVehicle_code,task.getVehicle_code())
.eq(MdPbVehicleMater::getIs_delete,false));
return (JSONObject) JSON.toJSON(task);
}

View File

@@ -85,7 +85,10 @@ public class GroupDickInStorageTask extends AbstractTask {
}else {
BussEventMulticaster.Publish(
new FlowStartEvent("md_group",
(proc_inst_id,empPlace) -> iMdPbVehicleMaterService.update(new UpdateWrapper<MdPbVehicleMater>().set("proc_inst_id",proc_inst_id).eq("vehicle_code",vehicle_code))
(proc_inst_id,empPlace) -> iMdPbVehicleMaterService.update(new UpdateWrapper<MdPbVehicleMater>()
.set("proc_inst_id",proc_inst_id)
.eq("vehicle_code",vehicle_code)
.eq("is_delete",false))
,new JSONObject(MapOf.of("start_point", point_code1)))
.build("md_group_dick",mst.getId(),mst.getSource_form_type(),mst.getSource_form_id(), mstJ)
.build("md_pb_vehicleMater",item)

View File

@@ -71,7 +71,8 @@ public class InStorageTask extends AbstractTask {
iSchBaseTaskService.create(task);
iMdPbVehicleMaterService.update(new LambdaUpdateWrapper<MdPbVehicleMater>()
.set(MdPbVehicleMater::getTask_code,task.getTask_code())
.eq(MdPbVehicleMater::getVehicle_code,task.getVehicle_code()));
.eq(MdPbVehicleMater::getVehicle_code,task.getVehicle_code())
.eq(MdPbVehicleMater::getIs_delete,false));
return (JSONObject) JSON.toJSON(task);
}

View File

@@ -77,7 +77,8 @@ public class MoveStorageTask extends AbstractTask {
taskService.save(task);
iMdPbVehicleMaterService.update(new LambdaUpdateWrapper<MdPbVehicleMater>()
.set(MdPbVehicleMater::getTask_code,task.getTask_code())
.eq(MdPbVehicleMater::getVehicle_code,task.getVehicle_code()));
.eq(MdPbVehicleMater::getVehicle_code,task.getVehicle_code())
.eq(MdPbVehicleMater::getIs_delete,false));
//TODO:是否下发
Boolean isSend = from.getBoolean("is_send");
if (isSend){

View File

@@ -85,7 +85,8 @@ public class OutStorageTask extends AbstractTask {
taskService.save(task);
iMdPbVehicleMaterService.update(new LambdaUpdateWrapper<MdPbVehicleMater>()
.set(MdPbVehicleMater::getTask_code,task.getTask_code())
.eq(MdPbVehicleMater::getVehicle_code,task.getVehicle_code()));
.eq(MdPbVehicleMater::getVehicle_code,task.getVehicle_code())
.eq(MdPbVehicleMater::getIs_delete,false));
//TODO:是否下发
Boolean isSend = from.getBoolean("is_send");
if (isSend){

View File

@@ -73,7 +73,8 @@ public class PickStorageTask extends AbstractTask {
iSchBaseTaskService.save(task);
iMdPbVehicleMaterService.update(new LambdaUpdateWrapper<MdPbVehicleMater>()
.set(MdPbVehicleMater::getTask_code,task.getTask_code())
.eq(MdPbVehicleMater::getVehicle_code,task.getVehicle_code()));
.eq(MdPbVehicleMater::getVehicle_code,task.getVehicle_code())
.eq(MdPbVehicleMater::getIs_delete,false));
//TODO:是否下发
Boolean isSend = from.getBoolean("is_send");
if (isSend){

View File

@@ -93,7 +93,8 @@ public class ToPickPlatformTask extends AbstractTask {
Lask_Point = target_point;
iMdPbVehicleMaterService.update(new LambdaUpdateWrapper<MdPbVehicleMater>()
.set(MdPbVehicleMater::getTask_code,task.getTask_code())
.eq(MdPbVehicleMater::getVehicle_code,task.getVehicle_code()));
.eq(MdPbVehicleMater::getVehicle_code,task.getVehicle_code())
.eq(MdPbVehicleMater::getIs_delete,false));
//TODO:是否下发
Boolean isSend = from.getBoolean("is_send");
if (isSend){

View File

@@ -22,7 +22,7 @@
select md_pb_vehicleMater.*,material_code,material_name,material_spec
from md_pb_vehicleMater left join md_me_materialbase
on md_pb_vehicleMater.material_id = md_me_materialbase.material_id
where vehicle_code = #{vehicle_code}
where vehicle_code = #{vehicle_code} and is_delete = false
</select>
</mapper>

View File

@@ -49,7 +49,7 @@ public class PalletStIvtIostorinvController {
@Log("手持托盘出库")
public ResponseEntity<Object> outStorage(@RequestBody JSONObject form) {
palletIostorinvService.outStorage(form);
return new ResponseEntity<>(HttpStatus.OK);
return new ResponseEntity<>(TableDataInfo.build(),HttpStatus.OK);
}
}

View File

@@ -71,14 +71,17 @@ public class PalletIostorinvService {
//触发流程
BussEventMulticaster.Publish(
new FlowStartEvent("pallet_in",
(proc_inst_id,empPlace) -> iMdPbVehicleMaterService.update(new UpdateWrapper<MdPbVehicleMater>().set("proc_inst_id",proc_inst_id).eq("vehicle_code",vehicle_code))
(proc_inst_id,empPlace) -> iMdPbVehicleMaterService.update(new UpdateWrapper<MdPbVehicleMater>()
.set("proc_inst_id",proc_inst_id)
.eq("vehicle_code",vehicle_code)
.eq("is_delete",false))
,null)
.build("md_pb_vehicleMater",vehicleMater.getId(),null,null, (JSONObject) JSONObject.toJSON(vehicleMater))
);
};
public void outStorage(JSONObject form){
Assert.notNull(form, "参数不能为空");
Assert.noNullElements(new Object[]{form,form.getString("material_id"),form.getInteger("qty"),form.getString("target_point")}, "参数不能为空");
//触发流程
JSONObject flowData = new JSONObject();
flowData.put("material_id",form.getString("material_id"));
@@ -97,7 +100,7 @@ public class PalletIostorinvService {
, "order_by", "ABS(qty-#{plan_qty}) asc,update_time asc")
);
if (vechielDtos.size()<form.getInteger("qty")){
throw new BadRequestException("出库失败:当前仓库可用托盘数量不足");
throw new BadRequestException("出库失败:当前仓库可用托盘数量"+vechielDtos.size()+"不足"+form.getInteger("qty"));
}
}, StatusEnum.STRATEGY_TYPE.code("出库")+STOR_CODE,5);
BussEventMulticaster.Publish(
@@ -105,7 +108,8 @@ public class PalletIostorinvService {
(proc_inst_id,vehicle) -> {
iMdPbVehicleMaterService.update(new UpdateWrapper<MdPbVehicleMater>()
.set("proc_inst_id",proc_inst_id)
.eq("vehicle_code",vehicle));
.eq("vehicle_code",vehicle)
.eq("is_delete",false));
}
,auxParam)
.build("st_ivt_iostorinv",null,null,null, flowData)

View File

@@ -118,7 +118,10 @@ public class CheckStorageService {
dto.setT(mstJ);
dto.setItem(packageT(mstJ,"id"));
FlowStartEvent startEvent = new FlowStartEvent("st_ivt_check",
(proc_inst_id, empPlace) -> iMdPbVehicleMaterService.update(new UpdateWrapper<MdPbVehicleMater>().set("proc_inst_id", proc_inst_id).eq("vehicle_code", empPlace))
(proc_inst_id, empPlace) -> iMdPbVehicleMaterService.update(new UpdateWrapper<MdPbVehicleMater>()
.set("proc_inst_id", proc_inst_id)
.eq("vehicle_code", empPlace)
.eq("is_delete",false))
, null);
startEvent.setDto(dto);
startEvent.setCallback(proc_inst_id->{
@@ -164,7 +167,8 @@ public class CheckStorageService {
for (PmFormData dtl : dtls) {
iMdPbVehicleMaterService.update(new UpdateWrapper<MdPbVehicleMater>()
.set("qty",dtl.getForm_data().getBigDecimal("change_qty"))
.eq("vehicle_code",dtl.getVehicle_code()));
.eq("vehicle_code",dtl.getVehicle_code())
.eq("is_delete",false));
}
for (PmFormData dtl : dtls) {
FlowContinueEvent continueEvent = new FlowContinueEvent(vehicleMap.get(dtl.getVehicle_code()), null, null);

View File

@@ -259,6 +259,7 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl<StIvtIostorinvOutMapp
BussEventMulticaster.Publish(new FlowStartEvent("st_ivt_iostorinv_" + (iostorinv.getIn_storage() ? "in" : "out")
, (proc_inst_id, innerVehicle) -> iMdPbVehicleMaterService.update(new UpdateWrapper<MdPbVehicleMater>()
.set("proc_inst_id", proc_inst_id)
.eq("is_delete",false)
.in("vehicle_code", innerVehicle == null ? vechiles : ListOf.of(innerVehicle)))
//传递全局参数:出库分配出库点用
, iostorinv.getForm_data())

View File

@@ -128,7 +128,10 @@ public class MovingService {
dto.setT(mstJ);
dto.setItem(packageT(mstJ,"id"));
FlowStartEvent startEvent = new FlowStartEvent("st_ivt_move",
(proc_inst_id, empPlace) -> iMdPbVehicleMaterService.update(new UpdateWrapper<MdPbVehicleMater>().set("proc_inst_id", proc_inst_id).eq("vehicle_code", empPlace))
(proc_inst_id, empPlace) -> iMdPbVehicleMaterService.update(new UpdateWrapper<MdPbVehicleMater>()
.set("proc_inst_id", proc_inst_id)
.eq("is_delete",false)
.eq("vehicle_code", empPlace))
, null);
startEvent.setDto(dto);
startEvent.setCallback(proc_inst_id->{

View File

@@ -177,7 +177,9 @@ public class PickingService {
pickingService.disGroup(mst);
//只有透传才有vehicle_code参数否则只有inst_id
FlowContinueEvent continueEvent = new FlowContinueEvent(mst.getProc_inst_id(), (PermeateFunction<String, String>) (inst_id, vehicle_code) -> iMdPbVehicleMaterService.update(new UpdateWrapper<MdPbVehicleMater>()
.set("proc_inst_id",inst_id).eq("vehicle_code",vehicle_code)), null)
.set("proc_inst_id",inst_id)
.eq("is_delete",false)
.eq("vehicle_code",vehicle_code)), null)
.setDto(dto);
continueEvent.setCallback(emp->{
iFormDataService.update(new UpdateWrapper<PmFormData>()
@@ -204,6 +206,7 @@ public class PickingService {
.set("update_time", DateUtil.now())
.set("update_name", SecurityUtils.getCurrentNickName())
.set("qty", data.getQty())
.eq("is_delete",false)
.eq("vehicle_code", vehicle_code));
} else {
组盘:

View File

@@ -73,7 +73,8 @@
st_ivt_structattr
LEFT JOIN md_pb_vehicleMater ON st_ivt_structattr.vehicle_code = md_pb_vehicleMater.vehicle_code
WHERE
material_id = #{material_id}
md_pb_vehicleMater.is_delete = false
AND material_id = #{material_id}
AND pcsn = #{pcsn}
AND st_ivt_structattr.stor_code = #{stor_code}
<if test="vehicles != null and vehicles.size() > 0">
@@ -127,6 +128,7 @@
left join md_me_materialbase material on vm.material_id = material.material_id
<where>
struct.vehicle_code is not null
and vm.is_delete = false
<if test="query.search != null and query.search != ''">
and (struct.struct_code LIKE '%${query.search}%'
or struct.struct_name LIKE '%${query.search}%')