rev:变动库存支持单据跟任务
This commit is contained in:
@@ -74,6 +74,7 @@ public class SpelUtil {
|
||||
// String value = expression.getValue(context, String.class);
|
||||
// System.out.println(value);
|
||||
}
|
||||
//如果表达式为null,空则返回''
|
||||
public static Map<String,String> parse(JSONObject sourceData,Map<String,String> fieldSkip){
|
||||
StandardEvaluationContext context = new StandardEvaluationContext();
|
||||
context.setVariable("M",sourceData);
|
||||
|
||||
@@ -78,7 +78,7 @@ public class StIvtBsrealstorattrController {
|
||||
@PutMapping("/changeActive")
|
||||
public ResponseEntity<Object> changeActive(@Validated @RequestBody StIvtBsrealstorattr dao) {
|
||||
iStIvtBsrealstorattrService.changeActive(dao);
|
||||
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/batchSaveAttr")
|
||||
@@ -117,7 +117,7 @@ public class StIvtBsrealstorattrController {
|
||||
}
|
||||
}
|
||||
iStIvtStructattrService.saveBatch(list);
|
||||
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -51,7 +51,7 @@ public class BmClassStandardController {
|
||||
@PutMapping
|
||||
public ResponseEntity<Object> update(@Validated @RequestBody JSONObject form) {
|
||||
classStandardService.updateForm(form);
|
||||
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
|
||||
@DeleteMapping
|
||||
|
||||
@@ -56,7 +56,7 @@ public class BmCustomerController {
|
||||
@Log("修改客户基础表")
|
||||
public ResponseEntity<Object> update(@Validated @RequestBody JSONObject dto) {
|
||||
customerService.update(dto);
|
||||
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
|
||||
@Log("删除客户基础表")
|
||||
|
||||
@@ -62,7 +62,7 @@ public class StIvtSectattrController {
|
||||
@PutMapping("/changeActive")
|
||||
public ResponseEntity<Object> changeActive(@Validated @RequestBody StIvtSectattr dao) {
|
||||
iStIvtSectattrService.changeActive(dao);
|
||||
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
|
||||
@GetMapping("/getSect")
|
||||
|
||||
@@ -51,7 +51,7 @@ public class BmVehicleInfoController {
|
||||
@Log("修改载具")
|
||||
public ResponseEntity<Object> update(@Validated @RequestBody JSONObject dto) {
|
||||
vehicleInfoService.update(dto);
|
||||
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
|
||||
@Log("删除载具")
|
||||
@@ -65,7 +65,7 @@ public class BmVehicleInfoController {
|
||||
@Log("修改点位启用状态")
|
||||
public ResponseEntity<Object> changeActive(@RequestBody JSONObject json) {
|
||||
vehicleInfoService.changeActive(json);
|
||||
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
|
||||
@GetMapping("/getVehicle/{code}")
|
||||
|
||||
@@ -76,7 +76,7 @@ public class StStrategyConfigController {
|
||||
@Log("修改启用状态")
|
||||
public ResponseEntity<Object> changeActive(@Validated @RequestBody StStrategyConfig dao) {
|
||||
iStStrategyConfigService.changeActive(dao);
|
||||
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -68,7 +68,7 @@ public class StartDecisionChainer extends DecisionerChain<List> {
|
||||
}
|
||||
boolean in_storage = StatusEnum.STRATEGY_TYPE.code("入库").equals(strategy_type);
|
||||
if (in_storage){
|
||||
return MapOf.of("struct_code",processResult.get(0));
|
||||
return MapOf.of("form_data",MapOf.of("end_struct_code",processResult.get(0)));
|
||||
}else {
|
||||
return MapOf.of("vehicle_code",processResult.stream().collect(Collectors.joining(",")));
|
||||
}
|
||||
|
||||
@@ -53,7 +53,7 @@ public class SchBasePointController {
|
||||
entity.setUpdate_name(SecurityUtils.getCurrentNickName());
|
||||
entity.setUpdate_time(DateUtil.now());
|
||||
pointService.updateById(entity);
|
||||
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -51,7 +51,7 @@ public class SchBaseRegionController {
|
||||
entity.setUpdate_name(SecurityUtils.getCurrentNickName());
|
||||
entity.setUpdate_time(DateUtil.now());
|
||||
regionService.updateById(entity);
|
||||
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -4,6 +4,8 @@ import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import org.nl.common.publish.event.PublishEvent;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/*
|
||||
* @author ZZQ
|
||||
* @Date 2024/5/23 13:15
|
||||
@@ -12,16 +14,16 @@ import org.nl.common.publish.event.PublishEvent;
|
||||
@Builder
|
||||
public class StructEvent extends PublishEvent {
|
||||
/**
|
||||
* 任务类型
|
||||
* 变动任务类型
|
||||
*/
|
||||
private String task_type;
|
||||
/**
|
||||
* 载具编码
|
||||
*/
|
||||
private String vehicle_code;
|
||||
//变动起点
|
||||
private String point_code1;
|
||||
//变动终点
|
||||
private String point_code2;
|
||||
//变动货位
|
||||
private String struct_code;
|
||||
//变动数量
|
||||
private BigDecimal change_qty;
|
||||
|
||||
}
|
||||
|
||||
@@ -95,20 +95,11 @@ public class ConveyorOutStorageTask extends AbstractTask {
|
||||
@Override
|
||||
public void updateStatus(JSONObject data) {
|
||||
this.updateTask(data);
|
||||
SchBaseTask schBaseTask = taskService.getOne(new QueryWrapper<SchBaseTask>().eq("task_code", data.getString("task_code")));
|
||||
BussEventMulticaster.Publish(StructEvent.builder()
|
||||
.task_type(schBaseTask.getTask_type())
|
||||
.vehicle_code(schBaseTask.getVehicle_code())
|
||||
.point_code1(schBaseTask.getPoint_code1())
|
||||
.point_code2(schBaseTask.getPoint_code2())
|
||||
.build());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void finish(JSONObject data) {
|
||||
this.updateTask(data);
|
||||
SchBaseTask schBaseTask = taskService.getOne(new QueryWrapper<SchBaseTask>().eq("task_code", data.getString("task_code")));
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -11,6 +11,7 @@ import org.nl.common.enums.StatusEnum;
|
||||
import org.nl.common.publish.BussEventMulticaster;
|
||||
import org.nl.common.utils.MapOf;
|
||||
import org.nl.wms.dispatch_manage.task.handler.AbstractTask;
|
||||
import org.nl.wms.dispatch_manage.task.service.ISchBaseTaskService;
|
||||
import org.nl.wms.dispatch_manage.task.service.dao.SchBaseTask;
|
||||
import org.nl.wms.flow_manage.flow.framework.entity.ExecutionDto;
|
||||
import org.nl.wms.flow_manage.flow.service.deployment.IActReProcdefService;
|
||||
@@ -25,6 +26,7 @@ import org.nl.wms.md_manage.vehicleMater.service.IMdPbVehicleMaterService;
|
||||
import org.nl.wms.md_manage.vehicleMater.service.dao.MdPbVehicleMater;
|
||||
import org.nl.wms.md_manage.vehicleMater.service.dto.MdPbVehicleMaterVo;
|
||||
import org.nl.wms.pm_manage.form_data.service.dao.PmFormData;
|
||||
import org.nl.wms.stor_manage.struct.service.IStIvtStructattrService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
@@ -45,12 +47,16 @@ import java.util.List;
|
||||
@Service("groupInStorage")
|
||||
public class GroupDickInStorageTask extends AbstractTask {
|
||||
|
||||
@Autowired
|
||||
private ISchBaseTaskService iSchBaseTaskService;
|
||||
@Autowired
|
||||
private IMdPbVehicleMaterService iMdPbVehicleMaterService;
|
||||
@Autowired
|
||||
private IMdGruopDickService iMdGruopDickService;
|
||||
@Autowired
|
||||
private IActRuExecutionService iActRuExecutionService;
|
||||
@Autowired
|
||||
private IStIvtStructattrService iStIvtStructattrService;
|
||||
|
||||
@Override
|
||||
public JSONObject createTask(JSONObject data) {
|
||||
@@ -103,6 +109,10 @@ public class GroupDickInStorageTask extends AbstractTask {
|
||||
|
||||
@Override
|
||||
public void finish(JSONObject data) {
|
||||
this.updateTask(data);
|
||||
SchBaseTask schBaseTask = iSchBaseTaskService.getOne(new QueryWrapper<SchBaseTask>().eq("task_code", data.getString("task_code")));
|
||||
//跟新库存
|
||||
iStIvtStructattrService.changeStruct(schBaseTask.getPoint_code1(),schBaseTask.getVehicle_code(),schBaseTask.getTask_type(), null,Boolean.TRUE);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -5,28 +5,25 @@ import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.nl.common.domain.exception.BadRequestException;
|
||||
import org.nl.common.enums.StatusEnum;
|
||||
import org.nl.common.publish.BussEventMulticaster;
|
||||
import org.nl.common.utils.CodeUtil;
|
||||
import org.nl.common.utils.IdUtil;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.wms.dispatch_manage.task.handler.AbstractTask;
|
||||
import org.nl.wms.dispatch_manage.task.handler.StructEvent;
|
||||
import org.nl.wms.dispatch_manage.task.service.ISchBaseTaskService;
|
||||
import org.nl.wms.dispatch_manage.task.service.dao.SchBaseTask;
|
||||
import org.nl.wms.flow_manage.flow.framework.process.nodeType.excess.impl.process.classprocess.ClassProcess;
|
||||
import org.nl.wms.md_manage.vehicleMater.service.IMdPbVehicleMaterService;
|
||||
import org.nl.wms.md_manage.vehicleMater.service.dao.MdPbVehicleMater;
|
||||
import org.nl.wms.stor_manage.struct.service.IStIvtStructattrService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/*
|
||||
@@ -38,21 +35,23 @@ import java.util.stream.Collectors;
|
||||
public class InStorageTask extends AbstractTask {
|
||||
|
||||
@Autowired
|
||||
ISchBaseTaskService taskService;
|
||||
private ISchBaseTaskService iSchBaseTaskService;
|
||||
|
||||
@Autowired
|
||||
IMdPbVehicleMaterService iMdPbVehicleMaterService;
|
||||
private IMdPbVehicleMaterService iMdPbVehicleMaterService;
|
||||
@Autowired
|
||||
private IStIvtStructattrService iStIvtStructattrService;
|
||||
|
||||
@Override
|
||||
public JSONObject createTask(JSONObject from) {
|
||||
String vehicle_code = from.getString("vehicle_code");
|
||||
String struct_code = from.getString("struct_code");
|
||||
String struct_code = from.getJSONObject("form_data").getString("end_struct_code");
|
||||
String start_point = from.getString("start_point");
|
||||
String task_type = from.getString("task_type");
|
||||
if (StringUtils.isEmpty(vehicle_code) ||StringUtils.isEmpty(start_point)||StringUtils.isEmpty(struct_code)){
|
||||
throw new BadRequestException("创建任务失败:方法请求参数不能为空");
|
||||
}
|
||||
List<SchBaseTask> list = taskService.list(new QueryWrapper<SchBaseTask>().eq("vehicle_code", vehicle_code)
|
||||
List<SchBaseTask> list = iSchBaseTaskService.list(new QueryWrapper<SchBaseTask>().eq("vehicle_code", vehicle_code)
|
||||
.ne("status", StatusEnum.FORM_STATUS.code("完成")));
|
||||
if (!CollectionUtils.isEmpty(list)){
|
||||
throw new BadRequestException("当前载具存在任务:"+list.stream().map(SchBaseTask::getTask_code).collect(Collectors.joining(",")));
|
||||
@@ -70,7 +69,7 @@ public class InStorageTask extends AbstractTask {
|
||||
task.setVehicle_code(vehicle_code);
|
||||
task.setPoint_code1(start_point);
|
||||
task.setPoint_code2(struct_code);
|
||||
taskService.create(task);
|
||||
iSchBaseTaskService.create(task);
|
||||
iMdPbVehicleMaterService.update(new LambdaUpdateWrapper<MdPbVehicleMater>()
|
||||
.set(MdPbVehicleMater::getTask_code,task.getTask_code())
|
||||
.eq(MdPbVehicleMater::getVehicle_code,task.getVehicle_code()));
|
||||
@@ -82,14 +81,10 @@ public class InStorageTask extends AbstractTask {
|
||||
@Transactional
|
||||
public void finish(JSONObject data) {
|
||||
this.updateTask(data);
|
||||
SchBaseTask schBaseTask = taskService.getOne(new QueryWrapper<SchBaseTask>().eq("task_code", data.getString("task_code")));
|
||||
SchBaseTask schBaseTask = iSchBaseTaskService.getOne(new QueryWrapper<SchBaseTask>().eq("task_code", data.getString("task_code")));
|
||||
//跟新库存
|
||||
BussEventMulticaster.Publish(StructEvent.builder()
|
||||
.task_type(schBaseTask.getTask_type())
|
||||
.vehicle_code(schBaseTask.getVehicle_code())
|
||||
.point_code1(schBaseTask.getPoint_code1())
|
||||
.point_code2(schBaseTask.getPoint_code2())
|
||||
.build());
|
||||
iStIvtStructattrService.changeStruct(schBaseTask.getPoint_code2(),schBaseTask.getVehicle_code(),schBaseTask.getTask_type(), null,Boolean.TRUE);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -102,25 +102,13 @@ public class OutStorageTask extends AbstractTask {
|
||||
@Transactional
|
||||
public void updateStatus(JSONObject data) {
|
||||
this.updateTask(data);
|
||||
SchBaseTask schBaseTask = taskService.getOne(new QueryWrapper<SchBaseTask>().eq("task_code", data.getString("task_code")));
|
||||
BussEventMulticaster.Publish(StructEvent.builder()
|
||||
.task_type(schBaseTask.getTask_type())
|
||||
.vehicle_code(schBaseTask.getVehicle_code())
|
||||
.point_code1(schBaseTask.getPoint_code1())
|
||||
.point_code2(schBaseTask.getPoint_code2())
|
||||
.build());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void finish(JSONObject data) {
|
||||
this.updateTask(data);
|
||||
SchBaseTask schBaseTask = taskService.getOne(new QueryWrapper<SchBaseTask>().eq("task_code", data.getString("task_code")));
|
||||
BussEventMulticaster.Publish(StructEvent.builder()
|
||||
.task_type(schBaseTask.getTask_type())
|
||||
.vehicle_code(schBaseTask.getVehicle_code())
|
||||
.point_code1(schBaseTask.getPoint_code1())
|
||||
.point_code2(schBaseTask.getPoint_code2())
|
||||
.build());
|
||||
iStIvtStructattrService.changeStruct(schBaseTask.getPoint_code1(),schBaseTask.getVehicle_code(),schBaseTask.getTask_type(), null,Boolean.FALSE);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -23,6 +23,7 @@ import org.nl.wms.md_manage.group_dick.service.dao.MdGruopDick;
|
||||
import org.nl.wms.md_manage.vehicleMater.service.IMdPbVehicleMaterService;
|
||||
import org.nl.wms.md_manage.vehicleMater.service.dao.MdPbVehicleMater;
|
||||
import org.nl.wms.md_manage.vehicleMater.service.dto.MdPbVehicleMaterVo;
|
||||
import org.nl.wms.stor_manage.struct.service.IStIvtStructattrService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
@@ -43,6 +44,8 @@ import java.util.List;
|
||||
@Service("palletInStorageTask")
|
||||
public class PalletInStorageTask extends AbstractTask {
|
||||
|
||||
@Autowired
|
||||
private IStIvtStructattrService iStIvtStructattrService;
|
||||
@Autowired
|
||||
private IMdPbVehicleMaterService iMdPbVehicleMaterService;
|
||||
@Autowired
|
||||
@@ -79,11 +82,15 @@ public class PalletInStorageTask extends AbstractTask {
|
||||
|
||||
@Override
|
||||
public void updateStatus(JSONObject data) {
|
||||
|
||||
this.updateTask(data);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void finish(JSONObject data) {
|
||||
this.updateTask(data);
|
||||
SchBaseTask schBaseTask = iSchBaseTaskService.getOne(new QueryWrapper<SchBaseTask>().eq("task_code", data.getString("task_code")));
|
||||
//跟新库存
|
||||
iStIvtStructattrService.changeStruct(schBaseTask.getPoint_code2(),schBaseTask.getVehicle_code(),schBaseTask.getTask_type(), null,Boolean.TRUE);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -17,7 +17,6 @@ import org.nl.wms.dispatch_manage.task.service.dao.SchBaseTask;
|
||||
import org.nl.wms.md_manage.vehicleMater.service.IMdPbVehicleMaterService;
|
||||
import org.nl.wms.md_manage.vehicleMater.service.dao.MdPbVehicleMater;
|
||||
import org.nl.wms.stor_manage.struct.service.IStIvtStructattrService;
|
||||
import org.nl.wms.system_manage.service.param.ISysParamService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
@@ -36,7 +35,9 @@ import java.util.stream.Collectors;
|
||||
public class PickStorageTask extends AbstractTask {
|
||||
|
||||
@Autowired
|
||||
private ISchBaseTaskService taskService;
|
||||
private ISchBaseTaskService iSchBaseTaskService;
|
||||
@Autowired
|
||||
private IStIvtStructattrService iStIvtStructattrService;
|
||||
|
||||
@Autowired
|
||||
private IMdPbVehicleMaterService iMdPbVehicleMaterService;
|
||||
@@ -51,7 +52,7 @@ public class PickStorageTask extends AbstractTask {
|
||||
throw new BadRequestException("创建任务失败:方法请求参数不能为空");
|
||||
}
|
||||
|
||||
List<SchBaseTask> list = taskService.list(new QueryWrapper<SchBaseTask>()
|
||||
List<SchBaseTask> list = iSchBaseTaskService.list(new QueryWrapper<SchBaseTask>()
|
||||
.eq("task_type", from.getString("task_type"))
|
||||
.ne("status", StatusEnum.FORM_STATUS.code("完成")));
|
||||
if (!CollectionUtils.isEmpty(list)){
|
||||
@@ -69,7 +70,7 @@ public class PickStorageTask extends AbstractTask {
|
||||
task.setVehicle_code(vehicle_code);
|
||||
task.setPoint_code1(struct_code);
|
||||
task.setPoint_code2(target_point);
|
||||
taskService.save(task);
|
||||
iSchBaseTaskService.save(task);
|
||||
iMdPbVehicleMaterService.update(new LambdaUpdateWrapper<MdPbVehicleMater>()
|
||||
.set(MdPbVehicleMater::getTask_code,task.getTask_code())
|
||||
.eq(MdPbVehicleMater::getVehicle_code,task.getVehicle_code()));
|
||||
@@ -83,11 +84,15 @@ public class PickStorageTask extends AbstractTask {
|
||||
|
||||
@Override
|
||||
public void updateStatus(JSONObject data) {
|
||||
|
||||
this.updateTask(data);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void finish(JSONObject data) {
|
||||
this.updateTask(data);
|
||||
SchBaseTask schBaseTask = iSchBaseTaskService.getOne(new QueryWrapper<SchBaseTask>().eq("task_code", data.getString("task_code")));
|
||||
//跟新库存
|
||||
iStIvtStructattrService.changeStruct(schBaseTask.getPoint_code2(),schBaseTask.getVehicle_code(),schBaseTask.getTask_type(), null,Boolean.TRUE);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -97,25 +97,15 @@ public class moveStorageTask extends AbstractTask {
|
||||
@Transactional
|
||||
public void updateStatus(JSONObject data) {
|
||||
this.updateTask(data);
|
||||
SchBaseTask schBaseTask = taskService.getOne(new QueryWrapper<SchBaseTask>().eq("task_code", data.getString("task_code")));
|
||||
BussEventMulticaster.Publish(StructEvent.builder()
|
||||
.task_type(schBaseTask.getTask_type())
|
||||
.vehicle_code(schBaseTask.getVehicle_code())
|
||||
.point_code1(schBaseTask.getPoint_code1())
|
||||
.point_code2(schBaseTask.getPoint_code2())
|
||||
.build());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void finish(JSONObject data) {
|
||||
this.updateTask(data);
|
||||
SchBaseTask schBaseTask = taskService.getOne(new QueryWrapper<SchBaseTask>().eq("task_code", data.getString("task_code")));
|
||||
BussEventMulticaster.Publish(StructEvent.builder()
|
||||
.task_type(schBaseTask.getTask_type())
|
||||
.vehicle_code(schBaseTask.getVehicle_code())
|
||||
.point_code1(schBaseTask.getPoint_code1())
|
||||
.point_code2(schBaseTask.getPoint_code2())
|
||||
.build());
|
||||
iStIvtStructattrService.changeStruct(schBaseTask.getPoint_code1(),schBaseTask.getVehicle_code(),schBaseTask.getTask_type(), null,Boolean.FALSE);
|
||||
iStIvtStructattrService.changeStruct(schBaseTask.getPoint_code2(),schBaseTask.getVehicle_code(),schBaseTask.getTask_type(), null,Boolean.TRUE);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -96,8 +96,8 @@ public class SubProcessActivityBehavior extends FlowNodeActivityBehavior<JSONObj
|
||||
subList.stream().map((Function<Object, CompletableFuture>) o -> CompletableFuture.runAsync(() -> {
|
||||
ExecutionEntity subEntity = new ExecutionEntity();
|
||||
subEntity.setParent_id(entity.getProc_inst_id());
|
||||
subEntity.setForm_id(entity.getForm_id());
|
||||
subEntity.setForm_type(entity.getForm_type());
|
||||
subEntity.setForm_id(((JSONObject) o).getString("form_id"));
|
||||
subEntity.setForm_type(((JSONObject) o).getString("form_type"));
|
||||
subEntity.setDeploymentId(entity.getDeploymentId());
|
||||
JSONObject subAuxParam = new JSONObject();
|
||||
subAuxParam.putAll(entity.getAuxParam());
|
||||
|
||||
@@ -50,11 +50,11 @@ public class ExecutionEntity<T> implements Cloneable{
|
||||
*/
|
||||
protected String deploymentId;
|
||||
/**
|
||||
* 源单类型
|
||||
* 单类型
|
||||
*/
|
||||
protected String form_type;
|
||||
/**
|
||||
* 源单id
|
||||
* 单id
|
||||
*/
|
||||
protected String form_id;
|
||||
|
||||
|
||||
@@ -33,7 +33,9 @@ public class ClassHandler extends TypeHandler<JSONObject,ExecutionEntity<JSONOb
|
||||
if (process==null){
|
||||
throw new BadRequestException("当前serverTask配置的类信息不存在");
|
||||
}
|
||||
String form_type = flowNode.getForm_type();
|
||||
JSONObject auxParam = new JSONObject();
|
||||
auxParam.put("form_type",form_type);
|
||||
auxParam.putAll(flowNode.getAuxParam());
|
||||
if (!CollectionUtils.isEmpty(entity.getAuxParam())){
|
||||
auxParam.putAll(entity.getAuxParam());
|
||||
@@ -45,14 +47,14 @@ public class ClassHandler extends TypeHandler<JSONObject,ExecutionEntity<JSONOb
|
||||
//后续:涉及框架的参数提到框架中处理
|
||||
String source_form_type = dto.getForm_type();
|
||||
String source_form_id = dto.getForm_id();
|
||||
if (dto.getForm_type().equals(flowNode.getForm_type())){
|
||||
if (dto.getForm_type().equals(form_type)){
|
||||
source_form_type = dto.getSource_form_type();
|
||||
source_form_id = dto.getSource_form_id();
|
||||
}
|
||||
result.put("source_form_id",source_form_id);
|
||||
result.put("source_form_type",source_form_type);
|
||||
result.put("form_id",form.getString("id"));
|
||||
result.put("form_type",flowNode.getForm_type());
|
||||
result.put("form_type", form_type);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -1,60 +1,93 @@
|
||||
package org.nl.wms.flow_manage.flow.service.classprocessimpl;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import lombok.SneakyThrows;
|
||||
import org.apache.commons.lang3.ClassUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.nl.common.domain.exception.BadRequestException;
|
||||
import org.nl.common.enums.StatusEnum;
|
||||
import org.nl.common.publish.BussEventMulticaster;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
|
||||
|
||||
import org.nl.common.utils.ListOf;
|
||||
import org.nl.common.utils.MapOf;
|
||||
import org.nl.common.utils.SpelUtil;
|
||||
import org.nl.common.utils.SpringContextHolder;
|
||||
import org.nl.wms.dispatch_manage.task.handler.AbstractTask;
|
||||
import org.nl.wms.dispatch_manage.task.handler.StructEvent;
|
||||
import org.nl.wms.flow_manage.flow.framework.process.nodeType.excess.impl.process.classprocess.ClassProcess;
|
||||
import org.nl.wms.dispatch_manage.task.service.ISchBaseTaskService;
|
||||
import org.nl.wms.dispatch_manage.task.service.dao.SchBaseTask;
|
||||
import org.nl.wms.md_manage.vehicleMater.service.IMdPbVehicleMaterService;
|
||||
import org.nl.wms.md_manage.vehicleMater.service.dao.MdPbVehicleMater;
|
||||
|
||||
import org.nl.wms.stor_manage.struct.service.IStIvtStructattrService;
|
||||
import org.nl.wms.stor_manage.struct.service.dao.StIvtStructattr;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/*
|
||||
* @author ZZQ
|
||||
* @Date 2024/5/6 14:34
|
||||
* 有任务的根据任务变动;没任务的直接变动库存
|
||||
* 单据统一
|
||||
* start_struct_code:起始仓位,end_struct_code目标仓位
|
||||
* 如果有change_qty库存变动必须有变动数量:则指定change_qty
|
||||
* 如果没change_qty则取载具当前qty,start:为负,end为正
|
||||
*/
|
||||
@Service
|
||||
public class StorageChangesProcessHandler implements ClassProcess {
|
||||
|
||||
private static List<String> Base_Fields = ListOf.of("start_struct_code","end_struct_code","change_qty");
|
||||
|
||||
@Autowired
|
||||
private ISchBaseTaskService schBaseTaskService;
|
||||
private IStIvtStructattrService iStIvtStructattrService;
|
||||
|
||||
@Override
|
||||
@SneakyThrows
|
||||
public JSONObject process(JSONObject from, JSONObject param) {
|
||||
//暂时出入入库的问题:库存变动中任务变动由任务变动接口处理
|
||||
from.put("status",param.getString("status"));
|
||||
from.put("update_time",DateUtil.now());
|
||||
from.put("update_name",SecurityUtils.getCurrentNickName());
|
||||
//基于任务变动
|
||||
String vehicle_code = from.getString("vehicle_code");
|
||||
String form_type = param.getString("form_type");
|
||||
if (StringUtils.isEmpty(vehicle_code)){
|
||||
throw new BadRequestException("库存变动失败:请求参数载具编码不能为空");
|
||||
}
|
||||
SchBaseTask schBaseTask = from.toJavaObject(SchBaseTask.class);
|
||||
schBaseTaskService.updateById(schBaseTask);
|
||||
|
||||
StatusEnum.FORM_STATUS.code("生成");
|
||||
StatusEnum.FORM_STATUS.code("执行中");
|
||||
StatusEnum.FORM_STATUS.code("完成");
|
||||
StatusEnum.FORM_STATUS.code("取消");
|
||||
//TODO:后续在流程节点中配置监听时间触发
|
||||
BussEventMulticaster.Publish(StructEvent.builder()
|
||||
.task_type(schBaseTask.getTask_type())
|
||||
.vehicle_code(schBaseTask.getVehicle_code())
|
||||
.point_code1(schBaseTask.getPoint_code1())
|
||||
.point_code2(schBaseTask.getPoint_code2())
|
||||
.build());
|
||||
if (form_type.equals("sch_base_task")){
|
||||
String handleClass = from.getString("handle_class");
|
||||
AbstractTask bean = (AbstractTask)SpringContextHolder.getBean(Class.forName(handleClass));
|
||||
bean.finish(from);
|
||||
}else {
|
||||
if (StringUtils.isEmpty(param.getString("task_type"))){
|
||||
throw new BadRequestException("库存变动失败:单据变动库存时需要配置task_type");
|
||||
}
|
||||
//基于单据变动
|
||||
Map<String, String> spelMap = new HashMap<>();
|
||||
Map<String, String> valueMap = new HashMap<>();
|
||||
for (String base_field : Base_Fields) {
|
||||
String skip = param.getString("base_field");
|
||||
if (skip.contains("#M")){
|
||||
spelMap.put(base_field,skip);
|
||||
}else {
|
||||
valueMap.put(base_field,skip);
|
||||
}
|
||||
}
|
||||
if (!CollectionUtils.isEmpty(spelMap)){
|
||||
Map<String, String> parse = SpelUtil.parse(from, spelMap);
|
||||
valueMap.putAll(parse);
|
||||
}
|
||||
String start_struct_code = valueMap.get("start_struct_code");
|
||||
String end_struct_code = valueMap.get("end_struct_code");
|
||||
String change_qty = StringUtils.isEmpty(valueMap.get("change_qty"))?null:valueMap.get("change_qty");
|
||||
if (StringUtils.isNotEmpty(start_struct_code)){
|
||||
iStIvtStructattrService.changeStruct(start_struct_code,vehicle_code,param.getString("task_type"), new BigDecimal(change_qty),Boolean.FALSE);
|
||||
}
|
||||
if (StringUtils.isNotEmpty(end_struct_code)){
|
||||
iStIvtStructattrService.changeStruct(end_struct_code,vehicle_code,param.getString("task_type"), new BigDecimal(change_qty),Boolean.TRUE);
|
||||
}
|
||||
}
|
||||
return from;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,11 +2,14 @@ package org.nl.wms.stor_manage.checkStorage.controller;
|
||||
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import org.nl.common.TableDataInfo;
|
||||
import org.nl.common.anno.Log;
|
||||
import org.nl.common.domain.entity.PageQuery;
|
||||
import org.nl.common.enums.StatusEnum;
|
||||
import org.nl.wms.md_manage.vehicleMater.service.IMdPbVehicleMaterService;
|
||||
import org.nl.wms.md_manage.vehicleMater.service.dao.MdPbVehicleMater;
|
||||
import org.nl.wms.pm_manage.form_data.service.IPmFormDataService;
|
||||
import org.nl.wms.pm_manage.form_data.service.dao.PmFormData;
|
||||
import org.nl.wms.pm_manage.form_data.service.dto.FormDataQuery;
|
||||
@@ -35,6 +38,8 @@ public class CheckController {
|
||||
private IPmFormDataService iPmFormDataService;
|
||||
@Autowired
|
||||
private CheckStorageService checkStorageService;
|
||||
@Autowired
|
||||
private IMdPbVehicleMaterService iMdPbVehicleMaterService;
|
||||
|
||||
|
||||
@GetMapping()
|
||||
@@ -68,17 +73,6 @@ public class CheckController {
|
||||
}
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
@PostMapping("/saveCheckTask")
|
||||
@Log("盘点确认")
|
||||
public ResponseEntity<Object> saveCheckTask(@RequestBody JSONObject param) {
|
||||
//TODO:明细校验
|
||||
param.getJSONObject("form_data");
|
||||
iPmFormDataService.update(new UpdateWrapper<PmFormData>()
|
||||
.set("status", StatusEnum.FORM_STATUS.code("已分配"))
|
||||
.set("form_data",param.getJSONObject("form_data").toJSONString())
|
||||
.eq("id",param.getString("id")));
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
@PostMapping("/taskOpen")
|
||||
@Log("盘点单下发")
|
||||
public ResponseEntity<Object> taskOpen(@RequestBody JSONObject param) {
|
||||
@@ -86,6 +80,30 @@ public class CheckController {
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/saveCheckTask")
|
||||
@Log("盘点确认")
|
||||
public ResponseEntity<Object> saveCheckTask(@RequestBody JSONObject param) {
|
||||
//TODO:明细校验
|
||||
PmFormData pmFormData = param.toJavaObject(PmFormData.class);
|
||||
iPmFormDataService.update(new UpdateWrapper<PmFormData>()
|
||||
.set("status", StatusEnum.FORM_STATUS.code("已分配"))
|
||||
.set("form_data",param.getJSONObject("form_data").toJSONString())
|
||||
.eq("id",param.getString("id")));
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
@PostMapping("/checkFinish")
|
||||
@Log("盘点完成")
|
||||
public ResponseEntity<Object> checkFinish(@RequestBody JSONObject param) {
|
||||
//TODO:明细校验
|
||||
PmFormData pmFormData = param.toJavaObject(PmFormData.class);
|
||||
iPmFormDataService.update(new UpdateWrapper<PmFormData>()
|
||||
.set("status", StatusEnum.FORM_STATUS.code("已分配"))
|
||||
.set("form_data",param.getJSONObject("form_data").toJSONString())
|
||||
.eq("id",param.getString("id")));
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
|
||||
|
||||
@DeleteMapping()
|
||||
public ResponseEntity<Object> delete(@RequestBody String[] ids) {
|
||||
checkStorageService.delete(ids);
|
||||
|
||||
@@ -1,14 +1,11 @@
|
||||
package org.nl.wms.stor_manage.monitor.listener;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.common.enums.StatusEnum;
|
||||
import org.nl.common.publish.AbstraceListener;
|
||||
import org.nl.wms.dispatch_manage.task.handler.StructEvent;
|
||||
|
||||
import org.nl.wms.stor_manage.io.service.iostor_dtl.IStIvtIostorinvdtlService;
|
||||
import org.nl.wms.stor_manage.io.service.iostor_dtl.dao.StIvtIostorinvdtl;
|
||||
import org.nl.wms.stor_manage.struct.service.IStIvtStructattrService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
@@ -30,17 +27,7 @@ public class StructEventListener extends AbstraceListener<StructEvent> {
|
||||
protected String doEvent(StructEvent event) {
|
||||
//根据不同的task_type获取对应出入库类型
|
||||
String task_type = event.getTask_type();
|
||||
if (StatusEnum.IOBILL_TYPE_IN.check(task_type)){
|
||||
structattrService.changeStruct(event.getPoint_code2(),event.getVehicle_code(),task_type,true);
|
||||
}
|
||||
if (StatusEnum.IOBILL_TYPE_OUT.check(task_type)){
|
||||
structattrService.changeStruct(event.getPoint_code1(),null,task_type,false);
|
||||
}
|
||||
if (StatusEnum.IOBILL_TYPE_MOVE.check(task_type)){
|
||||
structattrService.changeStruct(event.getPoint_code1(),null,task_type,false);
|
||||
structattrService.changeStruct(event.getPoint_code2(),event.getVehicle_code(),task_type,true);
|
||||
}
|
||||
|
||||
// structattrService.changeStruct(event.getStruct_code(),event.getVehicle_code(),task_type, event.getChange_qty());
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,6 +13,7 @@ import org.nl.common.publish.BussEventMulticaster;
|
||||
import org.nl.common.utils.CodeUtil;
|
||||
import org.nl.common.utils.IdUtil;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.common.utils.SpringContextHolder;
|
||||
import org.nl.wms.base_manage.vehicle.service.IBmVehicleInfoService;
|
||||
import org.nl.wms.base_manage.vehicle.service.dao.BmVehicleInfo;
|
||||
import org.nl.wms.flow_manage.flow.framework.entity.ExecutionDto;
|
||||
@@ -27,6 +28,7 @@ import org.nl.wms.pm_manage.form_data.service.dao.PmFormData;
|
||||
import org.nl.wms.stor_manage.io.service.iostor.dao.StIvtIostorinv;
|
||||
import org.nl.wms.stor_manage.io.service.iostor_dtl.dto.StIvtIostorinvdtlVo;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.scheduling.annotation.Async;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
@@ -59,8 +61,6 @@ public class PickingService {
|
||||
*/
|
||||
@Transactional
|
||||
public void savePickTask(JSONArray params){
|
||||
String now = DateUtil.now();
|
||||
String user = SecurityUtils.getCurrentNickName();
|
||||
PmFormData dtl = iFormDataService.getById((String)((Map) params.get(0)).get("parent_id"));
|
||||
MdPbVehicleMater one = iMdPbVehicleMaterService.getOne(new QueryWrapper<MdPbVehicleMater>()
|
||||
.eq("vehicle_code", dtl.getVehicle_code()).eq("material_id", dtl.getMaterial_id()));
|
||||
@@ -77,6 +77,8 @@ public class PickingService {
|
||||
if (mCode>0){
|
||||
throw new BadRequestException("当前载具以存在载具物料信息");
|
||||
}
|
||||
String now = DateUtil.now();
|
||||
String user = SecurityUtils.getCurrentNickName();
|
||||
for (Object param : params) {
|
||||
JSONObject task = new JSONObject((Map) param);
|
||||
PmFormData data = task.toJavaObject(PmFormData.class);
|
||||
@@ -91,46 +93,23 @@ public class PickingService {
|
||||
data.setCreate_name(user);
|
||||
data.setId(IdUtil.getStringId());
|
||||
iFormDataService.save(data);
|
||||
String vehicle_code = data.getVehicle_code();
|
||||
if (dtl.getVehicle_code().equals(vehicle_code)){
|
||||
iMdPbVehicleMaterService.update(new UpdateWrapper<MdPbVehicleMater>()
|
||||
.set("frozen_qty",0).set("update_time",now)
|
||||
.set("update_name", user)
|
||||
.set("qty",data.getQty())
|
||||
.eq("vehicle_code",vehicle_code));
|
||||
}else {
|
||||
MdGruopDick dick = new MdGruopDick();
|
||||
dick.setVehicle_code(vehicle_code);
|
||||
dick.setSource_form_type("Picking_Task");
|
||||
dick.setSource_form_id(data.getId());
|
||||
dick.setCreate_name(user);
|
||||
dick.setCreate_time(now);
|
||||
dick.setStatus(StatusEnum.FORM_STATUS.code("完成"));
|
||||
dick.setCode(CodeUtil.getNewCode("md_group_dick"));
|
||||
dick.setId(IdUtil.getStringId());
|
||||
MdPbVehicleMater mater = new MdPbVehicleMater();
|
||||
mater.setMaterial_id(one.getMaterial_id());
|
||||
mater.setPcsn(one.getPcsn());
|
||||
mater.setQty(data.getQty());
|
||||
mater.setUnit_id(data.getUnit_id());
|
||||
mater.setVehicle_code(vehicle_code);
|
||||
//设置目标仓库
|
||||
mater.setStor_code(data.getForm_data().getString("stor_code"));
|
||||
mater.setHas_child(false);
|
||||
mater.setId(IdUtil.getStringId());
|
||||
mater.setGroup_id(dick.getId());
|
||||
mater.setCreate_name(user);
|
||||
mater.setCreate_time(now);
|
||||
mater.setSource_form_type("Picking_Task");
|
||||
mater.setSource_form_id(data.getId());
|
||||
mater.setForm_data(one.getForm_data());
|
||||
mater.setStor_code(one.getStor_code());
|
||||
iMdPbVehicleMaterService.save(mater);
|
||||
iMdGruopDickService.save(dick);
|
||||
}
|
||||
单据状态变动:{
|
||||
iFormDataService.update(new UpdateWrapper<PmFormData>()
|
||||
.set("status", StatusEnum.FORM_STATUS.code("已分配")).eq("id", dtl.getId()));
|
||||
int count = iFormDataService.count(new QueryWrapper<PmFormData>()
|
||||
.eq("parent_id", dtl.getParent_id())
|
||||
.eq("status", StatusEnum.FORM_STATUS.code("生成")));
|
||||
if (count == 0) {
|
||||
iFormDataService.update(new UpdateWrapper<PmFormData>()
|
||||
.set("status", StatusEnum.FORM_STATUS.code("已分配"))
|
||||
.eq("id", dtl.getParent_id()));
|
||||
} else {
|
||||
iFormDataService.update(new UpdateWrapper<PmFormData>()
|
||||
.set("status", StatusEnum.FORM_STATUS.code("生成"))
|
||||
.eq("id", dtl.getParent_id()));
|
||||
}
|
||||
}
|
||||
iFormDataService.update(new UpdateWrapper<PmFormData>()
|
||||
.set("status",StatusEnum.FORM_STATUS.code("已分配")));
|
||||
}
|
||||
|
||||
|
||||
@@ -139,6 +118,8 @@ public class PickingService {
|
||||
if (StringUtils.isEmpty(mst.getProc_inst_id())){
|
||||
throw new BadRequestException("当前单据不存在流程实例id");
|
||||
}
|
||||
PickingService pickingService = SpringContextHolder.getBean(this.getClass());
|
||||
pickingService.disGroup(mst);
|
||||
JSONObject mstJ = (JSONObject) JSON.toJSON(mst);
|
||||
ExecutionDto dto = new ExecutionDto();
|
||||
dto.setForm_id(mst.getId());
|
||||
@@ -158,6 +139,60 @@ public class PickingService {
|
||||
BussEventMulticaster.Publish(continueEvent);
|
||||
|
||||
}
|
||||
|
||||
@Transactional
|
||||
public void disGroup(PmFormData mst) {
|
||||
List<PmFormData> dtls = iFormDataService.getByParentId(mst.getId());
|
||||
for (PmFormData dtl : dtls) {
|
||||
//载具物料信息
|
||||
MdPbVehicleMater one = iMdPbVehicleMaterService.getOne(new QueryWrapper<MdPbVehicleMater>()
|
||||
.eq("vehicle_code", dtl.getVehicle_code()).eq("material_id", dtl.getMaterial_id()));
|
||||
List<PmFormData> dis = iFormDataService.getByParentId(dtl.getId());
|
||||
for (PmFormData data : dis) {
|
||||
String vehicle_code = data.getVehicle_code();
|
||||
if (dtl.getVehicle_code().equals(vehicle_code)){
|
||||
iMdPbVehicleMaterService.update(new UpdateWrapper<MdPbVehicleMater>()
|
||||
.set("frozen_qty",0)
|
||||
.set("update_time",DateUtil.now())
|
||||
.set("update_name", SecurityUtils.getCurrentNickName())
|
||||
.set("qty",data.getQty())
|
||||
.eq("vehicle_code",vehicle_code));
|
||||
}else {
|
||||
组盘:{
|
||||
MdGruopDick dick = new MdGruopDick();
|
||||
dick.setVehicle_code(vehicle_code);
|
||||
dick.setSource_form_type("Picking_Task");
|
||||
dick.setSource_form_id(data.getId());
|
||||
dick.setCreate_name(SecurityUtils.getCurrentNickName());
|
||||
dick.setCreate_time(DateUtil.now());
|
||||
dick.setStatus(StatusEnum.FORM_STATUS.code("完成"));
|
||||
dick.setCode(CodeUtil.getNewCode("md_group_dick"));
|
||||
dick.setId(IdUtil.getStringId());
|
||||
MdPbVehicleMater mater = new MdPbVehicleMater();
|
||||
mater.setMaterial_id(one.getMaterial_id());
|
||||
mater.setPcsn(one.getPcsn());
|
||||
mater.setQty(data.getQty());
|
||||
mater.setUnit_id(data.getUnit_id());
|
||||
mater.setVehicle_code(vehicle_code);
|
||||
//设置目标仓库
|
||||
mater.setStor_code(data.getForm_data().getString("stor_code"));
|
||||
mater.setHas_child(false);
|
||||
mater.setId(IdUtil.getStringId());
|
||||
mater.setGroup_id(dick.getId());
|
||||
mater.setCreate_name(SecurityUtils.getCurrentNickName());
|
||||
mater.setCreate_time(DateUtil.now());
|
||||
mater.setSource_form_type("Picking_Task");
|
||||
mater.setSource_form_id(data.getId());
|
||||
mater.setForm_data(one.getForm_data());
|
||||
mater.setStor_code(one.getStor_code());
|
||||
iMdPbVehicleMaterService.save(mater);
|
||||
iMdGruopDickService.save(dick);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private List<ExecutionDto> packageT(JSONObject current,String itemField){
|
||||
String id = current.getString(itemField);
|
||||
List<PmFormData> items = iFormDataService.getByParentId(id);
|
||||
|
||||
@@ -60,6 +60,10 @@ public class StIvtStructivtflow implements Serializable {
|
||||
* 总库存
|
||||
*/
|
||||
private BigDecimal qty;
|
||||
/**
|
||||
* 变动库存
|
||||
*/
|
||||
private BigDecimal change_qty;
|
||||
|
||||
/**
|
||||
* 冻结库存
|
||||
|
||||
@@ -2,6 +2,8 @@ package org.nl.wms.stor_manage.struct.controller;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.nl.common.domain.entity.PageQuery;
|
||||
import org.nl.common.utils.IdUtil;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
@@ -49,8 +51,12 @@ public class StIvtStructattrController {
|
||||
|
||||
@PutMapping
|
||||
public ResponseEntity<Object> update(@Validated @RequestBody StIvtStructattr dto) {
|
||||
String vehicle_code = dto.getVehicle_code();
|
||||
if (StringUtils.isEmpty(vehicle_code)){
|
||||
dto.setVehicle_code(null);
|
||||
}
|
||||
structattrService.updateById(dto);
|
||||
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
|
||||
@DeleteMapping
|
||||
@@ -62,7 +68,7 @@ public class StIvtStructattrController {
|
||||
@PutMapping("/changeActive")
|
||||
public ResponseEntity<Object> changeActive(@RequestBody StIvtStructattr dto) {
|
||||
structattrService.changeActive(dto);
|
||||
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
|
||||
@GetMapping("/getStructIvt")
|
||||
|
||||
@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import org.nl.wms.stor_manage.struct.service.dto.StructattrQuery;
|
||||
import org.nl.wms.stor_manage.struct.service.dto.StructattrVechielDto;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@@ -27,7 +28,7 @@ public interface IStIvtStructattrService extends IService<StIvtStructattr> {
|
||||
*/
|
||||
List<Map<String, Object>> getByQuery(StructattrQuery query);
|
||||
|
||||
void changeStruct(String struct_code,String vehicle_code,String task_type,Boolean in_storage);
|
||||
void changeStruct(String struct_code, String vehicle_code, String task_type, BigDecimal change_qty,Boolean growth);
|
||||
void deleteAll(Long[] ids);
|
||||
|
||||
Object pageQuery(StructattrQuery query, PageQuery page);
|
||||
|
||||
@@ -2,6 +2,7 @@ package org.nl.wms.stor_manage.struct.service.dao;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.FieldStrategy;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import java.io.Serializable;
|
||||
@@ -160,6 +161,7 @@ public class StIvtStructattr implements Serializable {
|
||||
/**
|
||||
* 存储载具号
|
||||
*/
|
||||
@TableField(updateStrategy = FieldStrategy.IGNORED)
|
||||
private String vehicle_code;
|
||||
|
||||
/**
|
||||
|
||||
@@ -32,6 +32,7 @@ import org.springframework.context.annotation.Lazy;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
@@ -64,25 +65,23 @@ public class StIvtStructattrServiceImpl extends ServiceImpl<StIvtStructattrMappe
|
||||
System.out.println(in);
|
||||
}
|
||||
@Override
|
||||
public void changeStruct(String struct_code, String vehicle_code, String task_type,Boolean in_storage) {
|
||||
String now = DateUtil.now();
|
||||
public void changeStruct(String struct_code, String vehicle_code, String task_type, BigDecimal change_qty,Boolean growth) {
|
||||
this.update(new UpdateWrapper<StIvtStructattr>()
|
||||
.set("vehicle_code",vehicle_code)
|
||||
.set("update_time",now)
|
||||
.set("lock_type", StatusEnum.LOCK.code("无锁"))
|
||||
.eq("struct_code",struct_code));
|
||||
//变动结存记录"如果没有载具物料信息则不考虑结存:TODO:多级载具处理
|
||||
.set("update_time",DateUtil.now())
|
||||
.set("lock_type", StatusEnum.LOCK.code("无锁"))
|
||||
.eq("struct_code",struct_code));
|
||||
List<MdPbVehicleMater> vehicleMaters = vehicleMaterService.list(new QueryWrapper<MdPbVehicleMater>().eq("vehicle_code", vehicle_code));
|
||||
List<StIvtStructivtflow> records = new ArrayList<>();
|
||||
StIvtStructattr attr = this.getOne(new QueryWrapper<StIvtStructattr>().eq("struct_code", struct_code).select("stor_code"));
|
||||
for (MdPbVehicleMater vehicleMater : vehicleMaters) {
|
||||
StIvtStructivtflow record = new StIvtStructivtflow();
|
||||
record.setId(IdUtil.getStringId());
|
||||
record.setUpdate_time(now);
|
||||
record.setUpdate_time(DateUtil.now());
|
||||
record.setVehicle_code(vehicleMater.getVehicle_code());
|
||||
record.setMaterial_id(vehicleMater.getMaterial_id());
|
||||
record.setPcsn(vehicleMater.getPcsn());
|
||||
record.setQty(vehicleMater.getQty());
|
||||
record.setChange_qty(change_qty==null?vehicleMater.getQty():change_qty);
|
||||
record.setTask_type(task_type);
|
||||
record.setFrozen_qty(vehicleMater.getFrozen_qty());
|
||||
record.setSource_form_type(vehicleMater.getSource_form_type());
|
||||
@@ -91,7 +90,7 @@ public class StIvtStructattrServiceImpl extends ServiceImpl<StIvtStructattrMappe
|
||||
record.setStruct_code(struct_code);
|
||||
record.setStor_code(attr.getStor_code());
|
||||
record.setVehicle_form_data(vehicleMater.getForm_data());
|
||||
record.setGrowth(in_storage);
|
||||
record.setGrowth(growth);
|
||||
records.add(record);
|
||||
}
|
||||
if (!CollectionUtils.isEmpty(records)){
|
||||
|
||||
@@ -65,7 +65,7 @@ public class SysCodeRuleController {
|
||||
// //SaCheckPermission("genCode:edit")
|
||||
public ResponseEntity<Object> update(@RequestBody SysCodeRule codeRule) {
|
||||
codeRuleService.updateCodeRule(codeRule);
|
||||
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
|
||||
//("导出任务数据")
|
||||
|
||||
@@ -60,7 +60,7 @@ public class SysCodeRuleDetailController {
|
||||
// //SaCheckPermission("genCode:edit")
|
||||
public ResponseEntity<Object> update(@RequestBody SysCodeRuleDetail json){
|
||||
codeDetailService.update(json);
|
||||
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -101,7 +101,7 @@ public class DeptController {
|
||||
throw new BadRequestException("上级不能为自己");
|
||||
}
|
||||
deptService.updateDept(dept);
|
||||
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
//
|
||||
@Log("删除部门")
|
||||
|
||||
@@ -64,7 +64,7 @@ public class SysDictController {
|
||||
@Log("修改字典")
|
||||
public ResponseEntity<Object> updateDict(@Validated @RequestBody Dict dto){
|
||||
dictService.updateDict(dto);
|
||||
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
|
||||
@Log("删除字典")
|
||||
|
||||
@@ -108,7 +108,7 @@ public class SysMenuController {
|
||||
//SaCheckPermission("menu:edit")
|
||||
public ResponseEntity<Object> update( @RequestBody SysMenu form) {
|
||||
iSysMenuService.update(form);
|
||||
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
|
||||
@Log("删除菜单")
|
||||
|
||||
@@ -59,7 +59,7 @@ class SysParamController {
|
||||
////SaCheckPermission("param:edit")
|
||||
public ResponseEntity<Object> update(@Validated @RequestBody Param param) {
|
||||
paramService.update(param);
|
||||
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
|
||||
@Log("删除系统参数")
|
||||
|
||||
@@ -59,7 +59,7 @@ public class SysDataPermissionController {
|
||||
////SaCheckPermission("@el.check('dataPermission:edit')")
|
||||
public ResponseEntity<Object> update(@Validated @RequestBody SysDataPermission permission) {
|
||||
dataPermissionService.update(permission);
|
||||
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
|
||||
@Log("删除数据权限")
|
||||
|
||||
@@ -68,7 +68,7 @@ public class SysQuartzJobController {
|
||||
//SaCheckPermission("timing:edit")
|
||||
public ResponseEntity<Object> update(@Validated @RequestBody SysQuartzJob resources) {
|
||||
quartzJobService.updateJob(resources);
|
||||
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
|
||||
@Log("更改定时任务状态")
|
||||
@@ -76,7 +76,7 @@ public class SysQuartzJobController {
|
||||
//SaCheckPermission("timing:edit")
|
||||
public ResponseEntity<Object> update(@PathVariable String id) {
|
||||
quartzJobService.updateIsPause(quartzJobService.getById(id));
|
||||
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
|
||||
@Log("执行定时任务")
|
||||
@@ -84,7 +84,7 @@ public class SysQuartzJobController {
|
||||
//SaCheckPermission("timing:edit")
|
||||
public ResponseEntity<Object> execution(@PathVariable String id) {
|
||||
quartzJobService.execution(quartzJobService.getById(id));
|
||||
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
|
||||
@Log("删除定时任务")
|
||||
|
||||
@@ -59,7 +59,7 @@ public class SysRoleController {
|
||||
//SaCheckPermission("roles:edit")
|
||||
public ResponseEntity<Object> update(@RequestBody JSONObject param) {
|
||||
roleService.update(param);
|
||||
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
|
||||
@Log("删除角色")
|
||||
@@ -77,7 +77,7 @@ public class SysRoleController {
|
||||
//SaCheckPermission("roles:edit")
|
||||
public ResponseEntity<Object> updateMenu(@RequestBody JSONObject form) {
|
||||
roleService.updateMenu(form);
|
||||
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -70,7 +70,7 @@ public class UserController {
|
||||
@PutMapping
|
||||
public ResponseEntity<Object> update( @RequestBody JSONObject resources) throws Exception {
|
||||
userService.update(resources);
|
||||
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
|
||||
@Log("修改用户:个人中心")
|
||||
@@ -81,7 +81,7 @@ public class UserController {
|
||||
throw new BadRequestException("不能修改他人资料");
|
||||
}
|
||||
userService.update(JSON.parseObject(JSON.toJSONString(resources)));
|
||||
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
|
||||
@Log("删除用户")
|
||||
|
||||
@@ -51,7 +51,7 @@ public class ${className}Controller {
|
||||
//@PreAuthorize("@el.check('${changeClassName}:edit')")
|
||||
public ResponseEntity<Object> update(@Validated @RequestBody ${className}Dto dto){
|
||||
${changeClassName}Service.update(dto);
|
||||
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
|
||||
@Log("删除${apiAlias}")
|
||||
|
||||
@@ -205,6 +205,9 @@ export default {
|
||||
})
|
||||
formstruc.getHeader('st_ivt_checkdtl').then(res => {
|
||||
this.dtlCols = res
|
||||
res.forEach(a => {
|
||||
this.dtlCols.form_data[a.value,'']
|
||||
})
|
||||
})
|
||||
},
|
||||
close() {
|
||||
|
||||
@@ -47,5 +47,12 @@ export function taskopen(data) {
|
||||
data
|
||||
})
|
||||
}
|
||||
export function checkFinish(data) {
|
||||
return request({
|
||||
url: '/api/check/checkFinish',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export default {add, edit, del, updateStatus, taskopen, saveCheckTask}
|
||||
export default {add, edit, del, updateStatus, taskopen, saveCheckTask, checkFinish}
|
||||
|
||||
@@ -39,6 +39,17 @@
|
||||
</div>
|
||||
<!--如果想在工具栏加入更多按钮,可以使用插槽方式, slot = 'left' or 'right'-->
|
||||
<crudOperation :permission="permission">
|
||||
<el-button
|
||||
slot="right"
|
||||
class="filter-item"
|
||||
type="warning"
|
||||
icon="el-icon-position"
|
||||
size="mini"
|
||||
:disabled="task_flag"
|
||||
@click="taskOpen"
|
||||
>
|
||||
作业下发
|
||||
</el-button>
|
||||
<el-button
|
||||
slot="right"
|
||||
class="filter-item"
|
||||
@@ -53,13 +64,13 @@
|
||||
<el-button
|
||||
slot="right"
|
||||
class="filter-item"
|
||||
type="success"
|
||||
type="primary"
|
||||
icon="el-icon-position"
|
||||
size="mini"
|
||||
:disabled="task_flag"
|
||||
@click="taskOpen"
|
||||
:disabled="finish_flag"
|
||||
@click="checkFinish"
|
||||
>
|
||||
作业下发
|
||||
盘点完成
|
||||
</el-button>
|
||||
</crudOperation>
|
||||
|
||||
@@ -197,6 +208,7 @@ export default {
|
||||
currentRow: null,
|
||||
uploadShow: false,
|
||||
dis_flag: true,
|
||||
finish_flag: true,
|
||||
fromTypes: [],
|
||||
permission: {},
|
||||
rules: {},
|
||||
@@ -253,11 +265,17 @@ export default {
|
||||
}else {
|
||||
this.task_flag = true
|
||||
}
|
||||
if (row.status == '13'){
|
||||
this.finish_flag = false
|
||||
}else {
|
||||
this.finish_flag = false
|
||||
}
|
||||
this.dis_flag = false
|
||||
this.currentRow = row
|
||||
} else {
|
||||
this.task_flag = true
|
||||
this.dis_flag = true
|
||||
this.finish_flag = true
|
||||
this.currentRow = null
|
||||
}
|
||||
},
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
</el-col>
|
||||
<el-col :span="4">
|
||||
<span>
|
||||
<el-button icon="el-icon-check" size="mini" type="primary" @click="savePickMst">保存</el-button>
|
||||
<el-button icon="el-icon-check" size="mini" type="primary" @click="savePickTask">保存</el-button>
|
||||
<el-button icon="el-icon-close" size="mini" type="info" @click="closeDialog">关闭</el-button>
|
||||
</span>
|
||||
</el-col>
|
||||
@@ -148,16 +148,6 @@
|
||||
>
|
||||
新增一行
|
||||
</el-button>
|
||||
<el-button
|
||||
slot="left"
|
||||
class="filter-item"
|
||||
type="primary"
|
||||
icon="el-icon-plus"
|
||||
size="mini"
|
||||
@click="savePickTask()"
|
||||
>
|
||||
保存
|
||||
</el-button>
|
||||
</span>
|
||||
</div>
|
||||
<el-card class="box-card" shadow="never" :body-style="{padding:'0'}">
|
||||
|
||||
Reference in New Issue
Block a user