rev:出入库编辑异常

This commit is contained in:
2024-07-15 17:59:57 +08:00
parent d95d590ec2
commit d23359f59e
12 changed files with 307 additions and 209 deletions

View File

@@ -63,7 +63,7 @@ public interface IBmVehicleInfoService extends IService<BmVehicleInfo> {
* @param code code
* @return BmVehicleInfo
*/
Object findByCode(String code);
BmVehicleInfo findByCode(String code);
/**
* 编辑

View File

@@ -124,8 +124,8 @@ public class BmVehicleInfoServiceImpl extends ServiceImpl<BmVehicleInfoMapper, B
}
@Override
public Object findByCode(String code) {
return this.getOne(new QueryWrapper<BmVehicleInfo>().eq("storagevehicle_code",code));
public BmVehicleInfo findByCode(String code) {
return this.getOne(new QueryWrapper<BmVehicleInfo>().eq("vehicle_code",code));
}

View File

@@ -54,6 +54,12 @@ public class StIvtIostorinvController {
return new ResponseEntity<>(HttpStatus.OK);
}
@PostMapping("/update")
public ResponseEntity<Object> update(@RequestBody JSONObject form) {
iStIvtIostorinvService.update(form);
return new ResponseEntity<>(HttpStatus.OK);
}
@PostMapping("getIosInvDtl")
public ResponseEntity<Object> getDtl(@RequestBody String inv_id) {
List<Map> mapList = iStIvtIostorinvDtlService.getByInv(inv_id);

View File

@@ -54,6 +54,12 @@ public class StIvtIostorinvOutController {
return new ResponseEntity<>(HttpStatus.OK);
}
@PostMapping("/update")
public ResponseEntity<Object> update(@RequestBody JSONObject form) {
iStIvtIostorinvService.update(form);
return new ResponseEntity<>(HttpStatus.OK);
}
@PostMapping("getIosInvDtl")
public ResponseEntity<Object> getDtl(@RequestBody String inv_id) {
List<Map> mapList = iStIvtIostorinvDtlOutService.getByInv(inv_id);

View File

@@ -15,6 +15,7 @@ import org.nl.wms.stor_manage.io.service.iostor.dao.StIvtIostorinv;
public interface IStIvtIostorinvService extends IService<StIvtIostorinv> {
void save(JSONObject form);
void update(JSONObject form);
/**
* 出库分配

View File

@@ -101,7 +101,7 @@ public class StIvtIostorinv implements Serializable {
/**
* 是否为入库单
*/
@TableField(insertStrategy = FieldStrategy.NEVER)
@TableField(insertStrategy = FieldStrategy.NEVER,updateStrategy = FieldStrategy.NEVER)
private Boolean in_storage;

View File

@@ -54,10 +54,11 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl<StIvtIostorinvOutMapp
private IMdGruopDickService iMdGruopDickService;
@Autowired
private IBmVehicleInfoService iBmVehicleInfoService;
@Override
@Transactional
public void save(JSONObject form) {
if (form==null){
if (form == null) {
return;
}
List<Map> dtls = (List<Map>) form.remove("item");
@@ -67,7 +68,7 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl<StIvtIostorinvOutMapp
mst.setCreate_time(DateUtil.now());
mst.setCode(CodeUtil.getNewCode("IO_CODE"));
mst.setStatus(StatusEnum.FORM_STATUS.code("生成"));
if (dtls!=null && dtls.size()>0){
if (dtls != null && dtls.size() > 0) {
for (int i = 0; i < dtls.size(); i++) {
StIvtIostorinvdtl dtl = new JSONObject(dtls.get(i)).toJavaObject(StIvtIostorinvdtl.class);
dtl.setId(IdUtil.getStringId());
@@ -79,12 +80,30 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl<StIvtIostorinvOutMapp
this.save(mst);
}
@Override
@Transactional
public void update(JSONObject form) {
if (form == null) {
return;
}
List<Map> dtls = (List<Map>) form.remove("item");
StIvtIostorinv mst = form.toJavaObject(StIvtIostorinv.class);
if (dtls != null && dtls.size() > 0) {
for (int i = 0; i < dtls.size(); i++) {
StIvtIostorinvdtl dtl = new JSONObject(dtls.get(i)).toJavaObject(StIvtIostorinvdtl.class);
// dtl.setInv_id(mst.getId());
iStIvtIostorinvDtlService.updateById(dtl);
}
}
this.updateById(mst);
}
@Override
@Transactional
public void inDecision(JSONObject form) {
Object tmpItemO = form.remove("item");
if (tmpItemO==null||((List)tmpItemO).size()<1){
if (tmpItemO == null || ((List) tmpItemO).size() < 1) {
throw new BadRequestException("入库分配失败:明细不能为空");
}
String now = DateUtil.now();
@@ -92,18 +111,18 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl<StIvtIostorinvOutMapp
List<MdPbVehicleMater> vehicleMaters = groupVehicle(form, (List<Map>) tmpItemO, dtl);
iStIvtIostorinvDtlService.update(new UpdateWrapper<StIvtIostorinvdtl>()
.set("update_time", now)
.set("vehicle_code",vehicleMaters.stream().map(MdPbVehicleMater::getVehicle_code).collect(Collectors.joining(",")))
.set("vehicle_id",vehicleMaters.stream().map(MdPbVehicleMater::getId).collect(Collectors.joining(",")))
.set("vehicle_code", vehicleMaters.stream().map(MdPbVehicleMater::getVehicle_code).collect(Collectors.joining(",")))
.set("vehicle_id", vehicleMaters.stream().map(MdPbVehicleMater::getId).collect(Collectors.joining(",")))
.eq("id", dtl.getId())
);
//更新组单据
int count = iStIvtIostorinvDtlService.count(new QueryWrapper<StIvtIostorinvdtl>()
.eq("inv_id", dtl.getInv_id()).isNull("vehicle_code"));
if (count == 0){
if (count == 0) {
this.update(new UpdateWrapper<StIvtIostorinv>()
.set("status",StatusEnum.FORM_STATUS.code("已分配"))
.set("update_time", now).set("update_name",SecurityUtils.getCurrentNickName())
.eq("id",dtl.getInv_id()));
.set("status", StatusEnum.FORM_STATUS.code("已分配"))
.set("update_time", now).set("update_name", SecurityUtils.getCurrentNickName())
.eq("id", dtl.getInv_id()));
}
}
@@ -144,12 +163,12 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl<StIvtIostorinvOutMapp
//载具校验
Set<String> collect = vehicleMaters.stream().map(MdPbVehicleMater::getVehicle_code).collect(Collectors.toSet());
int tmpCount = iBmVehicleInfoService.count(new QueryWrapper<BmVehicleInfo>().in("vehicle_code", collect));
if (tmpCount<vehicleMaters.size()){
if (tmpCount < vehicleMaters.size()) {
throw new BadRequestException("组盘失败:载具编号不存在");
}
List<MdPbVehicleMater> tmpCount1 = iMdPbVehicleMaterService.list(new QueryWrapper<MdPbVehicleMater>().in("vehicle_code", collect));
if (tmpCount1.size()>0){
throw new BadRequestException("组盘失败:载具已经存在组盘信息"+tmpCount1.stream().map(MdPbVehicleMater::getVehicle_code).distinct().collect(Collectors.joining(",")));
if (tmpCount1.size() > 0) {
throw new BadRequestException("组盘失败:载具已经存在组盘信息" + tmpCount1.stream().map(MdPbVehicleMater::getVehicle_code).distinct().collect(Collectors.joining(",")));
}
//生成组盘信息
iMdPbVehicleMaterService.saveBatch(vehicleMaters);
@@ -160,47 +179,47 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl<StIvtIostorinvOutMapp
@Override
@Transactional
public void cancelVehicle(JSONObject form) {
if (form==null){
if (form == null) {
throw new BadRequestException("取消分配失败:请求参数不能为空");
}
StIvtIostorinvdtl dtl = form.toJavaObject(StIvtIostorinvdtl.class);
String[] vehicles = dtl.getVehicle_id().split(",");
iMdPbVehicleMaterService.remove(new QueryWrapper<MdPbVehicleMater>().in("id",Arrays.asList(vehicles)));
iMdPbVehicleMaterService.remove(new QueryWrapper<MdPbVehicleMater>().in("id", Arrays.asList(vehicles)));
iMdGruopDickService.remove(new QueryWrapper<MdGruopDick>()
.in("vehicle_code",Arrays.asList(dtl.getVehicle_id().split(",")))
.lt("status",StatusEnum.FORM_STATUS.code("完成")));
.in("vehicle_code", Arrays.asList(dtl.getVehicle_id().split(",")))
.lt("status", StatusEnum.FORM_STATUS.code("完成")));
iStIvtIostorinvDtlService.update(new UpdateWrapper<StIvtIostorinvdtl>()
.set("update_time",DateUtil.now())
.set("vehicle_code",null)
.set("vehicle_id",null)
.eq("id",dtl.getId())
.set("update_time", DateUtil.now())
.set("vehicle_code", null)
.set("vehicle_id", null)
.eq("id", dtl.getId())
);
this.update(new UpdateWrapper<StIvtIostorinv>()
.set("status",StatusEnum.FORM_STATUS.code("生成"))
.set("status", StatusEnum.FORM_STATUS.code("生成"))
.set("update_time", DateUtil.now())
.set("update_name",SecurityUtils.getCurrentNickName())
.eq("id",dtl.getInv_id()));
.set("update_name", SecurityUtils.getCurrentNickName())
.eq("id", dtl.getInv_id()));
}
@Override
public String outDispense(JSONObject form) {
//分配更新
Map<String, String> map = iStIvtStructattrService.desicion(form, Boolean.FALSE);
if (CollectionUtils.isEmpty(map)){
if (CollectionUtils.isEmpty(map)) {
throw new BadRequestException("分配失败,当前出库分配无可用货位");
}
String vehicle_code = map.get("vehicle_code");
Map<String, String> stringMap = iMdPbVehicleMaterService.getVehicleCode2Id(vehicle_code.split(","));
iStIvtIostorinvDtlService.update(new UpdateWrapper<StIvtIostorinvdtl>()
.set("vehicle_code",vehicle_code)
.set("vehicle_id",stringMap.values().stream().collect(Collectors.joining(",")))
.eq("id",form.getString("id")));
.set("vehicle_code", vehicle_code)
.set("vehicle_id", stringMap.values().stream().collect(Collectors.joining(",")))
.eq("id", form.getString("id")));
int count = iStIvtIostorinvDtlService.count(new QueryWrapper<StIvtIostorinvdtl>()
.eq("inv_id", form.getString("inv_id")).isNull("vehicle_code"));
if (count == 0){
if (count == 0) {
this.update(new UpdateWrapper<StIvtIostorinv>()
.set("status",StatusEnum.FORM_STATUS.code("已分配"))
.eq("id",form.getString("inv_id")));
.set("status", StatusEnum.FORM_STATUS.code("已分配"))
.eq("id", form.getString("inv_id")));
}
return vehicle_code;
}
@@ -209,21 +228,21 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl<StIvtIostorinvOutMapp
@Transactional
public String canceldispense(JSONObject form) {
String vehicles = form.getString("vehicle_code");
if (StringUtils.isNotEmpty(vehicles)){
if (StringUtils.isNotEmpty(vehicles)) {
String[] split = vehicles.split(",");
//更新点位锁,删除分配
iMdPbVehicleMaterService.update(new UpdateWrapper<MdPbVehicleMater>()
.set("frozen_qty", 0)
.eq("is_delete",false)
.eq("is_delete", false)
.in("vehicle_code", Arrays.asList(split)));
iStIvtIostorinvDtlService.update(new UpdateWrapper<StIvtIostorinvdtl>()
.set("vehicle_code",null)
.set("vehicle_id",null)
.eq("id",form.getString("id")));
.set("vehicle_code", null)
.set("vehicle_id", null)
.eq("id", form.getString("id")));
this.update(new UpdateWrapper<StIvtIostorinv>()
.set("status",StatusEnum.FORM_STATUS.code("生成"))
.eq("id",form.getString("inv_id")));
.set("status", StatusEnum.FORM_STATUS.code("生成"))
.eq("id", form.getString("inv_id")));
}
return null;
}
@@ -237,21 +256,21 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl<StIvtIostorinvOutMapp
List<StIvtIostorinvdtlVo> dtlVo = iStIvtIostorinvDtlService.getDtlVo(iostorinv.getId());
List<String> vechiles = dtlVo.stream().map(StIvtIostorinvdtlVo::getVehicle_code).collect(Collectors.toList());
//扔一个物料信息进去
BussEventMulticaster.Publish(new FlowStartEvent("st_ivt_iostorinv_"+(iostorinv.getIn_storage()?"in":"out")
, (proc_inst_id,innerVehicle) -> iMdPbVehicleMaterService.update(new UpdateWrapper<MdPbVehicleMater>()
.set("proc_inst_id",proc_inst_id)
.in("vehicle_code",innerVehicle==null?vechiles: ListOf.of(innerVehicle)))
BussEventMulticaster.Publish(new FlowStartEvent("st_ivt_iostorinv_" + (iostorinv.getIn_storage() ? "in" : "out")
, (proc_inst_id, innerVehicle) -> iMdPbVehicleMaterService.update(new UpdateWrapper<MdPbVehicleMater>()
.set("proc_inst_id", proc_inst_id)
.in("vehicle_code", innerVehicle == null ? vechiles : ListOf.of(innerVehicle)))
//传递全局参数:出库分配出库点用
,iostorinv.getForm_data())
.build("st_ivt_iostorinv",iostorinv.getId(),iostorinv.getSource_form_type(),iostorinv.getSource_form_id(),form)
.build("st_ivt_iostorinvdtl",dtlVo)
);
, iostorinv.getForm_data())
.build("st_ivt_iostorinv", iostorinv.getId(), iostorinv.getSource_form_type(), iostorinv.getSource_form_id(), form)
.build("st_ivt_iostorinvdtl", dtlVo)
);
this.update(new UpdateWrapper<StIvtIostorinv>()
.set("status",StatusEnum.FORM_STATUS.code("执行中"))
.set("update_time",DateUtil.now())
.set("update_name",SecurityUtils.getCurrentNickName())
.eq("id",form.getString("id")));
.set("status", StatusEnum.FORM_STATUS.code("执行中"))
.set("update_time", DateUtil.now())
.set("update_name", SecurityUtils.getCurrentNickName())
.eq("id", form.getString("id")));
}
@Override
@@ -259,7 +278,7 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl<StIvtIostorinvOutMapp
StIvtIostorinv mst = this.getById(id);
List<StIvtIostorinvdtl> iostorinvdtls = iStIvtIostorinvDtlService.list(new QueryWrapper<StIvtIostorinvdtl>().eq("inv_id", id));
String collect = iostorinvdtls.stream().map(StIvtIostorinvdtl::getVehicle_id).collect(Collectors.joining(","));
if (StringUtils.isNotEmpty(collect)){
if (StringUtils.isNotEmpty(collect)) {
String[] split = collect.split(",");
//更新点位锁,删除分配
iMdPbVehicleMaterService.update(new UpdateWrapper<MdPbVehicleMater>()
@@ -267,8 +286,8 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl<StIvtIostorinvOutMapp
.in("id", Arrays.asList(split)));
}
this.update(new UpdateWrapper<StIvtIostorinv>()
.set("status",StatusEnum.FORM_STATUS.code("取消"))
.eq("id",id));
.set("status", StatusEnum.FORM_STATUS.code("取消"))
.eq("id", id));
return null;
}
}