|
|
|
|
@@ -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;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|