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