rev: 成品入库修改
This commit is contained in:
@@ -7,6 +7,7 @@
|
|||||||
der.*,
|
der.*,
|
||||||
mater.material_code,
|
mater.material_code,
|
||||||
mater.material_name,
|
mater.material_name,
|
||||||
|
mater.material_spec,
|
||||||
unit.unit_name AS qty_unit_name
|
unit.unit_name AS qty_unit_name
|
||||||
FROM
|
FROM
|
||||||
mps_sale_order der
|
mps_sale_order der
|
||||||
|
|||||||
@@ -19,6 +19,8 @@ public enum IOSEnum {
|
|||||||
IO_TYPE(MapOf.of("入库", "0", "出库", "1")),
|
IO_TYPE(MapOf.of("入库", "0", "出库", "1")),
|
||||||
//是否
|
//是否
|
||||||
IS_USED(MapOf.of("是", "1", "否", "0")),
|
IS_USED(MapOf.of("是", "1", "否", "0")),
|
||||||
|
//托盘超限类型
|
||||||
|
VEHICLE_OVER_TYPE(MapOf.of("标准", "00", "横向超", "01","纵向超","02")),
|
||||||
//单据类型
|
//单据类型
|
||||||
BILL_TYPE(MapOf.of("生产入库", "11", "手工入库", "12", "原料入库", "13"
|
BILL_TYPE(MapOf.of("生产入库", "11", "手工入库", "12", "原料入库", "13"
|
||||||
, "领料出库", "21", "销售出库", "22", "手工出库", "23")),
|
, "领料出库", "21", "销售出库", "22", "手工出库", "23")),
|
||||||
|
|||||||
@@ -75,11 +75,10 @@ public class IStivtlostorivnCpInController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@PostMapping("/vehicleCheck")
|
@PostMapping("/vehicleCheck")
|
||||||
@Log("校验载具是否存在")
|
@Log("生成载具")
|
||||||
@ApiOperation("校验载具是否存在")
|
@ApiOperation("生成载具")
|
||||||
public ResponseEntity<Object> vehicleCheck(@RequestBody JSONObject whereJson){
|
public ResponseEntity<Object> vehicleCheck(){
|
||||||
iStIvtIostorinvCpService.vehicleCheck(whereJson);
|
return new ResponseEntity<>(iStIvtIostorinvCpService.vehicleCheck(),HttpStatus.OK);
|
||||||
return new ResponseEntity<>(HttpStatus.OK);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@PostMapping("/confirmvehicle")
|
@PostMapping("/confirmvehicle")
|
||||||
|
|||||||
@@ -110,13 +110,13 @@ public interface IStIvtIostorinvCpService extends IService<StIvtIostorinvCp> {
|
|||||||
void delete(Long[] ids);
|
void delete(Long[] ids);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 校验载具是否存在
|
* 生成载具编码
|
||||||
* @param whereJson
|
* @return JSONObject
|
||||||
* {
|
* {
|
||||||
* "storagevehicle_code" : 载具号
|
* vehicle_code : 编码
|
||||||
* }
|
* }
|
||||||
*/
|
*/
|
||||||
void vehicleCheck(JSONObject whereJson);
|
JSONObject vehicleCheck();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 分配
|
* 分配
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ import com.alibaba.fastjson.JSON;
|
|||||||
import com.alibaba.fastjson.JSONArray;
|
import com.alibaba.fastjson.JSONArray;
|
||||||
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.UpdateWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
@@ -201,8 +202,7 @@ public class StIvtIostorinvCpServiceImpl extends ServiceImpl<StIvtIostorinvCpMap
|
|||||||
1.插入分配明细表
|
1.插入分配明细表
|
||||||
2.插入分配表
|
2.插入分配表
|
||||||
3.更新明细表
|
3.更新明细表
|
||||||
4.更新扩展属性表
|
4.更新箱记录表 (有箱号才更新)
|
||||||
5.更新箱记录表 (有箱号才更新)
|
|
||||||
*/
|
*/
|
||||||
JSONObject jsonDtl = whereJson.getJSONObject("dtl_row");
|
JSONObject jsonDtl = whereJson.getJSONObject("dtl_row");
|
||||||
JSONArray tableDisDtl = whereJson.getJSONArray("tableMater");
|
JSONArray tableDisDtl = whereJson.getJSONArray("tableMater");
|
||||||
@@ -210,24 +210,15 @@ public class StIvtIostorinvCpServiceImpl extends ServiceImpl<StIvtIostorinvCpMap
|
|||||||
/*
|
/*
|
||||||
处理有箱号分配明细: 要插入分配明细表
|
处理有箱号分配明细: 要插入分配明细表
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// 校验是否已经组盘
|
|
||||||
StIvtIostorinvdisCp disIs = iostorinvdisCpService.getOne(
|
|
||||||
new QueryWrapper<StIvtIostorinvdisCp>().lambda()
|
|
||||||
.eq(StIvtIostorinvdisCp::getIostorinvdtl_id, jsonDtl.getString("iostorinvdtl_id"))
|
|
||||||
);
|
|
||||||
if (ObjectUtil.isNotEmpty(disIs)) throw new BadRequestException("此明细已组盘");
|
|
||||||
|
|
||||||
List<JSONObject> disDtlList = tableDisDtl
|
List<JSONObject> disDtlList = tableDisDtl
|
||||||
.stream()
|
.stream()
|
||||||
.map(row -> (JSONObject) row)
|
.map(row -> (JSONObject) row)
|
||||||
.filter(row -> ObjectUtil.isNotEmpty(row.getString("bucketunique")))
|
.filter(row -> ObjectUtil.isNotEmpty(row.getString("bucketunique")))
|
||||||
|
.filter(row -> ObjectUtil.isEmpty(row.getString("iostorinvdis_id")))
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
// 1.处理分配明细数据
|
// 1.处理分配明细数据
|
||||||
JSONObject param = new JSONObject();
|
JSONObject param = new JSONObject();
|
||||||
param.put("iostorinv_id",jsonDtl.getString("iostorinv_id"));
|
|
||||||
param.put("iostorinvdtl_id",jsonDtl.getString("iostorinvdtl_id"));
|
|
||||||
param.put("iostorinvdis_id",org.nl.common.utils.IdUtil.getStringId());
|
param.put("iostorinvdis_id",org.nl.common.utils.IdUtil.getStringId());
|
||||||
|
|
||||||
if (ObjectUtil.isNotEmpty(disDtlList)) {
|
if (ObjectUtil.isNotEmpty(disDtlList)) {
|
||||||
@@ -238,7 +229,7 @@ public class StIvtIostorinvCpServiceImpl extends ServiceImpl<StIvtIostorinvCpMap
|
|||||||
// 3.根据托盘分组
|
// 3.根据托盘分组
|
||||||
Map<String, List<StIvtIostorinvdisdtlCp>> collect = disDtlDaoListAll
|
Map<String, List<StIvtIostorinvdisdtlCp>> collect = disDtlDaoListAll
|
||||||
.stream()
|
.stream()
|
||||||
.collect(Collectors.groupingBy(StIvtIostorinvdisdtlCp::getStoragevehicle_code));
|
.collect(Collectors.groupingBy(StIvtIostorinvdisdtlCp::getIostorinvdtl_id));
|
||||||
|
|
||||||
for (List<StIvtIostorinvdisdtlCp> disDtlDaoList : collect.values()) {
|
for (List<StIvtIostorinvdisdtlCp> disDtlDaoList : collect.values()) {
|
||||||
// 3.调用服务插入分配明细
|
// 3.调用服务插入分配明细
|
||||||
@@ -256,8 +247,8 @@ public class StIvtIostorinvCpServiceImpl extends ServiceImpl<StIvtIostorinvCpMap
|
|||||||
// 插入分配
|
// 插入分配
|
||||||
StIvtIostorinvdisCp disDao = new StIvtIostorinvdisCp()
|
StIvtIostorinvdisCp disDao = new StIvtIostorinvdisCp()
|
||||||
.setIostorinvdis_id(IdUtil.getStringId())
|
.setIostorinvdis_id(IdUtil.getStringId())
|
||||||
.setIostorinv_id(param.getString("iostorinv_id"))
|
.setIostorinv_id(disDtlDao.getIostorinv_id())
|
||||||
.setIostorinvdtl_id(param.getString("iostorinvdtl_id"))
|
.setIostorinvdtl_id(disDtlDao.getIostorinvdtl_id())
|
||||||
.setSeq_no(1)
|
.setSeq_no(1)
|
||||||
.setMaterial_id(disDtlDao.getMaterial_id())
|
.setMaterial_id(disDtlDao.getMaterial_id())
|
||||||
.setPcsn(disDtlDao.getPcsn())
|
.setPcsn(disDtlDao.getPcsn())
|
||||||
@@ -281,21 +272,9 @@ public class StIvtIostorinvCpServiceImpl extends ServiceImpl<StIvtIostorinvCpMap
|
|||||||
new StIvtIostorinvdisdtlCp().setIostorinvdis_id(disDao.getIostorinvdis_id()),
|
new StIvtIostorinvdisdtlCp().setIostorinvdis_id(disDao.getIostorinvdis_id()),
|
||||||
new QueryWrapper<StIvtIostorinvdisdtlCp>().lambda()
|
new QueryWrapper<StIvtIostorinvdisdtlCp>().lambda()
|
||||||
.eq(StIvtIostorinvdisdtlCp::getIostorinvdis_id, param.getString("iostorinvdis_id"))
|
.eq(StIvtIostorinvdisdtlCp::getIostorinvdis_id, param.getString("iostorinvdis_id"))
|
||||||
.eq(StIvtIostorinvdisdtlCp::getStoragevehicle_code, disDao.getStoragevehicle_code())
|
.eq(StIvtIostorinvdisdtlCp::getIostorinvdtl_id, disDao.getIostorinvdtl_id())
|
||||||
);
|
);
|
||||||
|
|
||||||
// 6.更新载具扩展属性表
|
|
||||||
MdPbStoragevehicleext vehicleDao = new MdPbStoragevehicleext();
|
|
||||||
vehicleDao.setMaterial_id(disDtlDao.getMaterial_id());
|
|
||||||
vehicleDao.setStorage_qty(qty);
|
|
||||||
vehicleDao.setUpdate_id(SecurityUtils.getCurrentUserId());
|
|
||||||
vehicleDao.setUpdate_name(SecurityUtils.getCurrentNickName());
|
|
||||||
vehicleDao.setUpdate_time(new Date());
|
|
||||||
|
|
||||||
iMdPbStoragevehicleextService.update(
|
|
||||||
vehicleDao,new QueryWrapper<MdPbStoragevehicleext>().lambda()
|
|
||||||
.eq(MdPbStoragevehicleext::getStoragevehicle_code, disDtlDao.getStoragevehicle_code())
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -306,6 +285,7 @@ public class StIvtIostorinvCpServiceImpl extends ServiceImpl<StIvtIostorinvCpMap
|
|||||||
.stream()
|
.stream()
|
||||||
.map(row -> (JSONObject) row)
|
.map(row -> (JSONObject) row)
|
||||||
.filter(row -> ObjectUtil.isEmpty(row.getString("bucketunique")))
|
.filter(row -> ObjectUtil.isEmpty(row.getString("bucketunique")))
|
||||||
|
.filter(row -> ObjectUtil.isEmpty(row.getString("iostorinvdis_id")))
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
if (ObjectUtil.isNotEmpty(unDisDtlList)) {
|
if (ObjectUtil.isNotEmpty(unDisDtlList)) {
|
||||||
@@ -320,48 +300,53 @@ public class StIvtIostorinvCpServiceImpl extends ServiceImpl<StIvtIostorinvCpMap
|
|||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void cancelConfirmvehicle(JSONObject whereJson) {
|
public void cancelConfirmvehicle(JSONObject whereJson) {
|
||||||
|
String bucketunique = whereJson.getString("bucketunique");
|
||||||
|
|
||||||
// 1.校验是否分配了货位
|
// 1.校验是否分配了货位
|
||||||
List<StIvtIostorinvdisCp> disDaoList = iostorinvdisCpService.list(
|
if (ObjectUtil.isNotEmpty(whereJson.getString("struct_id"))) throw new BadRequestException("已分配货位,不可取消组盘!");
|
||||||
new QueryWrapper<StIvtIostorinvdisCp>().lambda()
|
|
||||||
.eq(StIvtIostorinvdisCp::getIostorinvdtl_id, whereJson.getString("iostorinvdtl_id"))
|
|
||||||
);
|
|
||||||
|
|
||||||
if (ObjectUtil.isEmpty(disDaoList)) throw new BadRequestException("没有可取消组盘的分配明细!");
|
|
||||||
|
|
||||||
boolean is_struct = disDaoList.stream()
|
|
||||||
.anyMatch(row -> ObjectUtil.isNotEmpty(row.getStruct_id()));
|
|
||||||
|
|
||||||
if (is_struct) throw new BadRequestException("有分配明细已分配货位不可取消组盘!");
|
|
||||||
|
|
||||||
// 2.更新载具扩展属性、 箱记录
|
|
||||||
Map<String, List<StIvtIostorinvdisCp>> collect = disDaoList.stream().collect(Collectors.groupingBy(StIvtIostorinvdisCp::getStoragevehicle_code));
|
|
||||||
|
|
||||||
for (String storagevehicle_code : collect.keySet()) {
|
|
||||||
// 更新载具扩展属性
|
|
||||||
iMdPbStoragevehicleextService.update(
|
|
||||||
new UpdateWrapper<MdPbStoragevehicleext>().lambda()
|
|
||||||
.set(MdPbStoragevehicleext::getMaterial_id, "")
|
|
||||||
.set(MdPbStoragevehicleext::getStorage_qty, "0")
|
|
||||||
.eq(MdPbStoragevehicleext::getStoragevehicle_code, storagevehicle_code)
|
|
||||||
);
|
|
||||||
|
|
||||||
|
// 2.判断是否有箱,有则更新箱记录表、分配表
|
||||||
|
if (ObjectUtil.isNotEmpty(bucketunique)) {
|
||||||
// 更新箱记录表
|
// 更新箱记录表
|
||||||
iMdPbBucketrecordService.update(
|
iMdPbBucketrecordService.update(
|
||||||
new UpdateWrapper<MdPbBucketrecord>().lambda()
|
new UpdateWrapper<MdPbBucketrecord>().lambda()
|
||||||
.set(MdPbBucketrecord::getStoragevehicle_code, "")
|
.set(MdPbBucketrecord::getStoragevehicle_code, "")
|
||||||
.set(MdPbBucketrecord::getStatus, MasterEnum.BOX_STATUS.code("生成"))
|
.set(MdPbBucketrecord::getStatus, MasterEnum.BOX_STATUS.code("生成"))
|
||||||
.set(MdPbBucketrecord::getStoragevehicle_id, "")
|
.set(MdPbBucketrecord::getStoragevehicle_id, "")
|
||||||
.eq(MdPbBucketrecord::getStatus, MasterEnum.BOX_STATUS.code("组盘"))
|
.eq(MdPbBucketrecord::getStatus, MasterEnum.BOX_STATUS.code("组盘"))
|
||||||
.eq(MdPbBucketrecord::getStoragevehicle_code, storagevehicle_code)
|
.eq(MdPbBucketrecord::getStoragevehicle_code, whereJson.getString("storagevehicle_code"))
|
||||||
|
);
|
||||||
|
|
||||||
|
// 删除分配明细
|
||||||
|
iStIvtIostorinvdisdtlCpService.remove(
|
||||||
|
new QueryWrapper<StIvtIostorinvdisdtlCp>().lambda()
|
||||||
|
.eq(StIvtIostorinvdisdtlCp::getIostorinvdis_id, whereJson.getString("iostorinvdis_id"))
|
||||||
|
.eq(StIvtIostorinvdisdtlCp::getBucketunique, bucketunique)
|
||||||
|
);
|
||||||
|
|
||||||
|
// 更新分配表
|
||||||
|
StIvtIostorinvdisCp disDao = iostorinvdisCpService.getById(whereJson.getString("iostorinvdis_id"));
|
||||||
|
BigDecimal qty = NumberUtil.sub(disDao.getReal_qty(), whereJson.getBigDecimal("qty"));
|
||||||
|
disDao.setReal_qty(qty);
|
||||||
|
disDao.setPlan_qty(qty);
|
||||||
|
|
||||||
|
if (disDao.getReal_qty().doubleValue() <= 0) {
|
||||||
|
// 删除分配
|
||||||
|
iostorinvdisCpService.removeById(disDao);
|
||||||
|
} else {
|
||||||
|
// 更新
|
||||||
|
iostorinvdisCpService.updateById(disDao);
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
// 3:无箱 - 直接删除分配
|
||||||
|
iostorinvdisCpService.remove(
|
||||||
|
new QueryWrapper<StIvtIostorinvdisCp>().lambda()
|
||||||
|
.eq(StIvtIostorinvdisCp::getIostorinvdis_id, whereJson.getString("iostorinvdis_id"))
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 3.删除分配表
|
|
||||||
iostorinvdisCpService.remove(
|
|
||||||
new QueryWrapper<StIvtIostorinvdisCp>().lambda()
|
|
||||||
.eq(StIvtIostorinvdisCp::getIostorinvdtl_id, whereJson.getString("iostorinvdtl_id"))
|
|
||||||
);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -378,29 +363,13 @@ public class StIvtIostorinvCpServiceImpl extends ServiceImpl<StIvtIostorinvCpMap
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void vehicleCheck(JSONObject whereJson) {
|
public JSONObject vehicleCheck() {
|
||||||
|
|
||||||
// 1.校验载具是否存在
|
// 生成编码返回
|
||||||
MdPbStoragevehicleinfo daoVehicle = iMdPbStoragevehicleinfoService.getOne(
|
JSONObject json = new JSONObject();
|
||||||
new QueryWrapper<MdPbStoragevehicleinfo>().lambda()
|
json.put("vehicle_code", CodeUtil.getNewCode("VEHICCLE_CODE_CDMTP"));
|
||||||
.eq(MdPbStoragevehicleinfo::getStoragevehicle_code, whereJson.getString("storagevehicle_code"))
|
return json;
|
||||||
.eq(MdPbStoragevehicleinfo::getIs_used, true)
|
|
||||||
);
|
|
||||||
|
|
||||||
if (ObjectUtil.isEmpty(daoVehicle)) throw new BadRequestException("此载具不存在或未启用");
|
|
||||||
|
|
||||||
// 2.校验载具是否已组盘
|
|
||||||
MdPbStoragevehicleext daoVehicleExt = iMdPbStoragevehicleextService.getOne(
|
|
||||||
new QueryWrapper<MdPbStoragevehicleext>().lambda()
|
|
||||||
.eq(MdPbStoragevehicleext::getStoragevehicle_code, whereJson.getString("storagevehicle_code"))
|
|
||||||
);
|
|
||||||
|
|
||||||
if (ObjectUtil.isEmpty(daoVehicleExt)) {
|
|
||||||
throw new BadRequestException("此载具扩展属性不存在,请维护!");
|
|
||||||
} else {
|
|
||||||
if (ObjectUtil.isNotEmpty(daoVehicleExt.getMaterial_id()))
|
|
||||||
throw new BadRequestException("此载具已组盘!");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -430,7 +399,7 @@ public class StIvtIostorinvCpServiceImpl extends ServiceImpl<StIvtIostorinvCpMap
|
|||||||
/* 自动分配 */
|
/* 自动分配 */
|
||||||
|
|
||||||
// 判断载具是否超限
|
// 判断载具是否超限
|
||||||
if (StrUtil.equals(vehicleDao.getOverstruct_type(),IOSEnum.IS_USED.code("是"))) {
|
if (StrUtil.equals(whereJson.getString("vehicle_overstruct_type"),IOSEnum.VEHICLE_OVER_TYPE.code("横向超"))) {
|
||||||
whereJson.put("rule_type", RuleUtil.PRODUCTION_IN_2);
|
whereJson.put("rule_type", RuleUtil.PRODUCTION_IN_2);
|
||||||
} else {
|
} else {
|
||||||
whereJson.put("rule_type", RuleUtil.PRODUCTION_IN_1);
|
whereJson.put("rule_type", RuleUtil.PRODUCTION_IN_1);
|
||||||
@@ -465,11 +434,29 @@ public class StIvtIostorinvCpServiceImpl extends ServiceImpl<StIvtIostorinvCpMap
|
|||||||
iStIvtStructattrService.updateById(attrDao);
|
iStIvtStructattrService.updateById(attrDao);
|
||||||
|
|
||||||
// 4.更新库存
|
// 4.更新库存
|
||||||
StIvtIostorinvdtlCp dtlDao = iostorinvdtlCpService.getById(disDao.getIostorinvdtl_id());
|
Map<String, List<StIvtIostorinvdisCp>> collect = iostorinvdisCpService.list(
|
||||||
|
new QueryWrapper<StIvtIostorinvdisCp>().lambda()
|
||||||
|
.eq(StIvtIostorinvdisCp::getIostorinv_id, whereJson.getString("iostorinv_id"))
|
||||||
|
.eq(StIvtIostorinvdisCp::getStoragevehicle_code, whereJson.getString("storagevehicle_code"))
|
||||||
|
)
|
||||||
|
.stream()
|
||||||
|
.collect(Collectors.groupingBy(StIvtIostorinvdisCp::getMaterial_id));
|
||||||
|
|
||||||
disDao.setStruct_id(attrDao.getStruct_id());
|
for (List<StIvtIostorinvdisCp> list : collect.values()) {
|
||||||
iStIvtStructivtCpService.UpdateIvt(ivtDataParam(disDao,ChangeIvtUtil.ADDWAREHOUSING_QTY,dtlDao.getSource_billdtl_id()));
|
|
||||||
|
|
||||||
|
BigDecimal qty = list
|
||||||
|
.stream()
|
||||||
|
.map(StIvtIostorinvdisCp::getReal_qty)
|
||||||
|
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
|
|
||||||
|
StIvtIostorinvdisCp disDao_1 = list.get(0);
|
||||||
|
disDao_1.setPlan_qty(qty);
|
||||||
|
|
||||||
|
StIvtIostorinvdtlCp dtlDao = iostorinvdtlCpService.getById(disDao_1.getIostorinvdtl_id());
|
||||||
|
|
||||||
|
iStIvtStructivtCpService.UpdateIvt(ivtDataParam(disDao_1,ChangeIvtUtil.ADDWAREHOUSING_QTY,dtlDao.getBase_billdtl_id()));
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -503,7 +490,8 @@ public class StIvtIostorinvCpServiceImpl extends ServiceImpl<StIvtIostorinvCpMap
|
|||||||
.setSect_code("")
|
.setSect_code("")
|
||||||
.setSect_name(""),
|
.setSect_name(""),
|
||||||
new QueryWrapper<StIvtIostorinvdisdtlCp>().lambda()
|
new QueryWrapper<StIvtIostorinvdisdtlCp>().lambda()
|
||||||
.eq(StIvtIostorinvdisdtlCp::getIostorinvdis_id,disDao.getIostorinvdis_id())
|
.eq(StIvtIostorinvdisdtlCp::getIostorinv_id,disDao.getIostorinv_id())
|
||||||
|
.eq(StIvtIostorinvdisdtlCp::getStoragevehicle_code, disDao.getStoragevehicle_code())
|
||||||
);
|
);
|
||||||
|
|
||||||
// 3.更新任务
|
// 3.更新任务
|
||||||
@@ -526,9 +514,8 @@ public class StIvtIostorinvCpServiceImpl extends ServiceImpl<StIvtIostorinvCpMap
|
|||||||
);
|
);
|
||||||
|
|
||||||
// 判断载具是否超限
|
// 判断载具是否超限
|
||||||
MdPbStoragevehicleinfo vehicleDao = iMdPbStoragevehicleinfoService.getById(disDao.getStoragevehicle_id());
|
if (StrUtil.equals(whereJson.getString("vehicle_overstruct_type"),IOSEnum.VEHICLE_OVER_TYPE.code("横向超"))) {
|
||||||
|
|
||||||
if (StrUtil.equals(vehicleDao.getOverstruct_type(),IOSEnum.IS_USED.code("是"))) {
|
|
||||||
// 解锁超限货位
|
// 解锁超限货位
|
||||||
iStIvtStructattrService.update(
|
iStIvtStructattrService.update(
|
||||||
new UpdateWrapper<StIvtStructattr>().lambda()
|
new UpdateWrapper<StIvtStructattr>().lambda()
|
||||||
@@ -538,41 +525,83 @@ public class StIvtIostorinvCpServiceImpl extends ServiceImpl<StIvtIostorinvCpMap
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 更新库存
|
// 更新库存
|
||||||
iStIvtStructivtCpService.UpdateIvt(ivtDataParam(disDao,ChangeIvtUtil.SUBWAREHOUSING_QTY,null));
|
Map<String, List<StIvtIostorinvdisCp>> collect = iostorinvdisCpService.list(
|
||||||
|
new QueryWrapper<StIvtIostorinvdisCp>().lambda()
|
||||||
|
.eq(StIvtIostorinvdisCp::getIostorinv_id, whereJson.getString("iostorinv_id"))
|
||||||
|
.eq(StIvtIostorinvdisCp::getStoragevehicle_code, whereJson.getString("storagevehicle_code"))
|
||||||
|
)
|
||||||
|
.stream()
|
||||||
|
.collect(Collectors.groupingBy(StIvtIostorinvdisCp::getMaterial_id));
|
||||||
|
|
||||||
// 4.更新分配
|
for (List<StIvtIostorinvdisCp> list : collect.values()) {
|
||||||
iostorinvdisCpService.updateById(
|
|
||||||
disDao.setStruct_name("").setStruct_code("")
|
|
||||||
.setStruct_id("").setSect_id("")
|
|
||||||
.setSect_code("").setSect_name("")
|
|
||||||
.setPoint_id("").setPoint_code("")
|
|
||||||
.setPoint_name("")
|
|
||||||
.setWork_status(IOSEnum.WORK_STATUS.code("生成"))
|
|
||||||
);
|
|
||||||
|
|
||||||
// 5.更新明细
|
BigDecimal qty = list
|
||||||
StIvtIostorinvdtlCp dtlDao = iostorinvdtlCpService.getOne(
|
.stream()
|
||||||
new QueryWrapper<StIvtIostorinvdtlCp>().lambda()
|
.map(StIvtIostorinvdisCp::getReal_qty)
|
||||||
.eq(StIvtIostorinvdtlCp::getIostorinvdtl_id, disDao.getIostorinvdtl_id())
|
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
);
|
|
||||||
|
StIvtIostorinvdisCp disDao_1 = list.get(0);
|
||||||
|
disDao_1.setPlan_qty(qty);
|
||||||
|
|
||||||
|
iStIvtStructivtCpService.UpdateIvt(ivtDataParam(disDao_1,ChangeIvtUtil.SUBWAREHOUSING_QTY,null));
|
||||||
|
|
||||||
if (StrUtil.equals(dtlDao.getBill_status(), IOSEnum.BILL_STATUS.code("生成"))) {
|
|
||||||
throw new BadRequestException("没有可取消的分配明细!");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
dtlDao.setAssign_qty(NumberUtil.sub(dtlDao.getAssign_qty(),disDao.getReal_qty()));
|
// 4.更新明细
|
||||||
dtlDao.setUnassign_qty(disDao.getReal_qty());
|
Map<String, List<StIvtIostorinvdisCp>> collect2 = iostorinvdisCpService.list(
|
||||||
|
new QueryWrapper<StIvtIostorinvdisCp>().lambda()
|
||||||
|
.eq(StIvtIostorinvdisCp::getIostorinv_id, whereJson.getString("iostorinv_id"))
|
||||||
|
.eq(StIvtIostorinvdisCp::getStoragevehicle_code, whereJson.getString("storagevehicle_code"))
|
||||||
|
)
|
||||||
|
.stream()
|
||||||
|
.filter(row -> ObjectUtil.isNotEmpty(row.getStruct_id()))
|
||||||
|
.collect(Collectors.groupingBy(StIvtIostorinvdisCp::getIostorinvdtl_id));
|
||||||
|
|
||||||
if (dtlDao.getAssign_qty().doubleValue() == 0) {
|
for (List<StIvtIostorinvdisCp> collectList : collect2.values()) {
|
||||||
dtlDao.setBill_status(IOSEnum.BILL_STATUS.code("生成"));
|
// 计算已分配
|
||||||
} else if (dtlDao.getAssign_qty().doubleValue() > 0) {
|
BigDecimal qty = collectList
|
||||||
dtlDao.setBill_status(IOSEnum.BILL_STATUS.code("分配中"));
|
.stream()
|
||||||
|
.map(StIvtIostorinvdisCp::getReal_qty)
|
||||||
|
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
|
|
||||||
|
StIvtIostorinvdtlCp dtlDao = iostorinvdtlCpService.getById(collectList.get(0).getIostorinvdtl_id());
|
||||||
|
|
||||||
|
// 明细已分配数量
|
||||||
|
BigDecimal assign_qty = NumberUtil.sub(dtlDao.getAssign_qty(), qty);
|
||||||
|
// 明细未分配数量
|
||||||
|
BigDecimal unAssign_qty = NumberUtil.add(dtlDao.getUnassign_qty(), qty);
|
||||||
|
|
||||||
|
dtlDao.setAssign_qty(assign_qty);
|
||||||
|
dtlDao.setUnassign_qty(unAssign_qty);
|
||||||
|
|
||||||
|
if (assign_qty.doubleValue() == 0) {
|
||||||
|
dtlDao.setBill_status(IOSEnum.BILL_STATUS.code("生成"));
|
||||||
|
} else {
|
||||||
|
dtlDao.setBill_status(IOSEnum.BILL_STATUS.code("分配中"));
|
||||||
|
}
|
||||||
|
|
||||||
|
iostorinvdtlCpService.updateById(dtlDao);
|
||||||
}
|
}
|
||||||
|
|
||||||
iostorinvdtlCpService.updateById(dtlDao);
|
// 5.更新分配
|
||||||
|
iostorinvdisCpService.update(
|
||||||
|
new UpdateWrapper<StIvtIostorinvdisCp>().lambda()
|
||||||
|
.set(StIvtIostorinvdisCp::getStruct_id, "")
|
||||||
|
.set(StIvtIostorinvdisCp::getStruct_code, "")
|
||||||
|
.set(StIvtIostorinvdisCp::getStruct_name,"")
|
||||||
|
.set(StIvtIostorinvdisCp::getSect_id,"")
|
||||||
|
.set(StIvtIostorinvdisCp::getSect_code,"")
|
||||||
|
.set(StIvtIostorinvdisCp::getSect_name, "")
|
||||||
|
.set(StIvtIostorinvdisCp::getPoint_id, "")
|
||||||
|
.set(StIvtIostorinvdisCp::getPoint_code, "")
|
||||||
|
.set(StIvtIostorinvdisCp::getPoint_name,"")
|
||||||
|
.set(StIvtIostorinvdisCp::getWork_status, IOSEnum.WORK_STATUS.code("生成"))
|
||||||
|
.eq(StIvtIostorinvdisCp::getStoragevehicle_code, whereJson.getString("storagevehicle_code"))
|
||||||
|
.eq(StIvtIostorinvdisCp::getIostorinv_id,whereJson.getString("iostorinv_id"))
|
||||||
|
);
|
||||||
|
|
||||||
// 6.更新主表
|
// 6.更新主表
|
||||||
updateMst(dtlDao.getIostorinv_id());
|
updateMst(disDao.getIostorinv_id());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -603,12 +632,17 @@ public class StIvtIostorinvCpServiceImpl extends ServiceImpl<StIvtIostorinvCpMap
|
|||||||
BussEventMulticaster.Publish(event);
|
BussEventMulticaster.Publish(event);
|
||||||
|
|
||||||
// 3.更新分配表
|
// 3.更新分配表
|
||||||
iostorinvdisCpService.updateById(
|
iostorinvdisCpService.update(
|
||||||
disDao.setPoint_id(pointDao.getPoint_id())
|
new UpdateWrapper<StIvtIostorinvdisCp>().lambda()
|
||||||
.setPoint_code(pointDao.getPoint_code())
|
.set(StIvtIostorinvdisCp::getPoint_id, pointDao.getPoint_id())
|
||||||
.setPoint_name(pointDao.getPoint_name())
|
.set(StIvtIostorinvdisCp::getPoint_code, pointDao.getPoint_code())
|
||||||
.setWork_status(IOSEnum.WORK_STATUS.code("生成"))
|
.set(StIvtIostorinvdisCp::getPoint_name,pointDao.getPoint_name())
|
||||||
|
.set(StIvtIostorinvdisCp::getWork_status, IOSEnum.WORK_STATUS.code("生成"))
|
||||||
|
.set(StIvtIostorinvdisCp::getTask_id, disDao.getTask_id())
|
||||||
|
.eq(StIvtIostorinvdisCp::getStoragevehicle_code, disDao.getStoragevehicle_code())
|
||||||
|
.eq(StIvtIostorinvdisCp::getIostorinv_id, disDao.getIostorinv_id())
|
||||||
);
|
);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -695,9 +729,6 @@ public class StIvtIostorinvCpServiceImpl extends ServiceImpl<StIvtIostorinvCpMap
|
|||||||
String task_id = form.getString("task_id");
|
String task_id = form.getString("task_id");
|
||||||
String status = form.getString("status");
|
String status = form.getString("status");
|
||||||
|
|
||||||
StIvtIostorinvdisCp disDao = iostorinvdisCpService.getOne(new QueryWrapper<StIvtIostorinvdisCp>().lambda()
|
|
||||||
.eq(StIvtIostorinvdisCp::getTask_id, task_id));
|
|
||||||
|
|
||||||
// 更新任务状态为完成
|
// 更新任务状态为完成
|
||||||
if (status.equals(AcsTaskEnum.STATUS_FINISH.getCode())) {
|
if (status.equals(AcsTaskEnum.STATUS_FINISH.getCode())) {
|
||||||
// 更新任务为完成
|
// 更新任务为完成
|
||||||
@@ -712,12 +743,23 @@ public class StIvtIostorinvCpServiceImpl extends ServiceImpl<StIvtIostorinvCpMap
|
|||||||
.eq(StIvtIostorinvdisCp::getTask_id, task_id)
|
.eq(StIvtIostorinvdisCp::getTask_id, task_id)
|
||||||
.set(StIvtIostorinvdisCp::getWork_status, IOSEnum.WORK_STATUS.code("完成"))
|
.set(StIvtIostorinvdisCp::getWork_status, IOSEnum.WORK_STATUS.code("完成"))
|
||||||
);
|
);
|
||||||
|
|
||||||
// 调用分配完成
|
// 调用分配完成
|
||||||
JSONObject mst_jo = new JSONObject();
|
Map<String, List<StIvtIostorinvdisCp>> collect = iostorinvdisCpService.list(
|
||||||
mst_jo.put("iostorinvdtl_id", disDao.getIostorinvdtl_id());
|
new QueryWrapper<StIvtIostorinvdisCp>().lambda()
|
||||||
mst_jo.put("iostorinv_id", disDao.getIostorinv_id());
|
.eq(StIvtIostorinvdisCp::getTask_id, task_id)
|
||||||
mst_jo.put("is_out", false);
|
)
|
||||||
iostorinvdisCpService.confirm(mst_jo);
|
.stream()
|
||||||
|
.collect(Collectors.groupingBy(StIvtIostorinvdisCp::getIostorinvdtl_id));
|
||||||
|
|
||||||
|
for(List<StIvtIostorinvdisCp> list : collect.values()) {
|
||||||
|
StIvtIostorinvdisCp disDao_2 = list.get(0);
|
||||||
|
JSONObject mst_jo = new JSONObject();
|
||||||
|
mst_jo.put("iostorinvdtl_id", disDao_2.getIostorinvdtl_id());
|
||||||
|
mst_jo.put("iostorinv_id", disDao_2.getIostorinv_id());
|
||||||
|
mst_jo.put("is_out", false);
|
||||||
|
iostorinvdisCpService.confirm(mst_jo);
|
||||||
|
}
|
||||||
|
|
||||||
} else if (status.equals(AcsTaskEnum.STATUS_START.getCode())) {
|
} else if (status.equals(AcsTaskEnum.STATUS_START.getCode())) {
|
||||||
// 更新任务为执行中
|
// 更新任务为执行中
|
||||||
@@ -734,6 +776,9 @@ public class StIvtIostorinvCpServiceImpl extends ServiceImpl<StIvtIostorinvCpMap
|
|||||||
);
|
);
|
||||||
} else if (status.equals(AcsTaskEnum.STATUS_CANNEL.getCode())) {
|
} else if (status.equals(AcsTaskEnum.STATUS_CANNEL.getCode())) {
|
||||||
// 取消任务
|
// 取消任务
|
||||||
|
StIvtIostorinvdisCp disDao = iostorinvdisCpService.getOne(new QueryWrapper<StIvtIostorinvdisCp>().lambda()
|
||||||
|
.eq(StIvtIostorinvdisCp::getTask_id, task_id),false);
|
||||||
|
|
||||||
JSONObject param = new JSONObject();
|
JSONObject param = new JSONObject();
|
||||||
param.put("iostorinvdis_id",disDao.getIostorinvdis_id());
|
param.put("iostorinvdis_id",disDao.getIostorinvdis_id());
|
||||||
delTask(param);
|
delTask(param);
|
||||||
@@ -753,12 +798,16 @@ public class StIvtIostorinvCpServiceImpl extends ServiceImpl<StIvtIostorinvCpMap
|
|||||||
);
|
);
|
||||||
|
|
||||||
// 2.更新分配
|
// 2.更新分配
|
||||||
disDao.setTask_id("");
|
iostorinvdisCpService.update(
|
||||||
disDao.setPoint_code("");
|
new UpdateWrapper<StIvtIostorinvdisCp>().lambda()
|
||||||
disDao.setPoint_id("");
|
.set(StIvtIostorinvdisCp::getPoint_id, "")
|
||||||
disDao.setPoint_name("");
|
.set(StIvtIostorinvdisCp::getPoint_code, "")
|
||||||
disDao.setWork_status(IOSEnum.WORK_STATUS.code("未生成"));
|
.set(StIvtIostorinvdisCp::getPoint_name,"")
|
||||||
iostorinvdisCpService.updateById(disDao);
|
.set(StIvtIostorinvdisCp::getWork_status, IOSEnum.WORK_STATUS.code("未生成"))
|
||||||
|
.set(StIvtIostorinvdisCp::getTask_id, "")
|
||||||
|
.eq(StIvtIostorinvdisCp::getStoragevehicle_code, disDao.getStoragevehicle_code())
|
||||||
|
.eq(StIvtIostorinvdisCp::getIostorinv_id, disDao.getIostorinv_id())
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -847,7 +896,7 @@ public class StIvtIostorinvCpServiceImpl extends ServiceImpl<StIvtIostorinvCpMap
|
|||||||
.setStruct_code(attrDao.getStruct_code())
|
.setStruct_code(attrDao.getStruct_code())
|
||||||
.setStruct_name(attrDao.getStruct_name()),
|
.setStruct_name(attrDao.getStruct_name()),
|
||||||
new QueryWrapper<StIvtIostorinvdisdtlCp>().lambda()
|
new QueryWrapper<StIvtIostorinvdisdtlCp>().lambda()
|
||||||
.eq(StIvtIostorinvdisdtlCp::getIostorinvdis_id, whereJson.getString("iostorinvdis_id"))
|
.eq(StIvtIostorinvdisdtlCp::getIostorinv_id, whereJson.getString("iostorinv_id"))
|
||||||
.eq(StIvtIostorinvdisdtlCp::getStoragevehicle_code, whereJson.getString("storagevehicle_code"))
|
.eq(StIvtIostorinvdisdtlCp::getStoragevehicle_code, whereJson.getString("storagevehicle_code"))
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -861,23 +910,45 @@ public class StIvtIostorinvCpServiceImpl extends ServiceImpl<StIvtIostorinvCpMap
|
|||||||
.setStruct_code(attrDao.getStruct_code())
|
.setStruct_code(attrDao.getStruct_code())
|
||||||
.setStruct_name(attrDao.getStruct_name()),
|
.setStruct_name(attrDao.getStruct_name()),
|
||||||
new QueryWrapper<StIvtIostorinvdisCp>().lambda()
|
new QueryWrapper<StIvtIostorinvdisCp>().lambda()
|
||||||
.eq(StIvtIostorinvdisCp::getIostorinvdtl_id, whereJson.getString("iostorinvdtl_id"))
|
.eq(StIvtIostorinvdisCp::getIostorinv_id, whereJson.getString("iostorinv_id"))
|
||||||
|
.eq(StIvtIostorinvdisCp::getStoragevehicle_code, whereJson.getString("storagevehicle_code"))
|
||||||
);
|
);
|
||||||
|
|
||||||
// 3.更新明细表
|
// 3.更新明细表
|
||||||
BigDecimal unassign_qty = iostorinvdtlCpService.getOne(
|
Map<String, List<StIvtIostorinvdisCp>> collect = iostorinvdisCpService.list(
|
||||||
new QueryWrapper<StIvtIostorinvdtlCp>().lambda()
|
new QueryWrapper<StIvtIostorinvdisCp>().lambda()
|
||||||
.eq(StIvtIostorinvdtlCp::getIostorinvdtl_id, whereJson.getString("iostorinvdtl_id"))
|
.eq(StIvtIostorinvdisCp::getIostorinv_id, whereJson.getString("iostorinv_id"))
|
||||||
).getUnassign_qty();
|
.eq(StIvtIostorinvdisCp::getStoragevehicle_code, whereJson.getString("storagevehicle_code"))
|
||||||
|
)
|
||||||
|
.stream()
|
||||||
|
.filter(row -> ObjectUtil.isNotEmpty(row.getStruct_id()))
|
||||||
|
.collect(Collectors.groupingBy(StIvtIostorinvdisCp::getIostorinvdtl_id));
|
||||||
|
|
||||||
iostorinvdtlCpService.update(
|
for (List<StIvtIostorinvdisCp> collectList : collect.values()) {
|
||||||
new StIvtIostorinvdtlCp()
|
// 计算已分配
|
||||||
.setBill_status(IOSEnum.BILL_STATUS.code("分配完"))
|
BigDecimal qty = collectList
|
||||||
.setAssign_qty(unassign_qty)
|
.stream()
|
||||||
.setUnassign_qty(new BigDecimal(0)),
|
.map(StIvtIostorinvdisCp::getReal_qty)
|
||||||
new QueryWrapper<StIvtIostorinvdtlCp>().lambda()
|
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
.eq(StIvtIostorinvdtlCp::getIostorinvdtl_id, whereJson.getString("iostorinvdtl_id"))
|
|
||||||
);
|
StIvtIostorinvdtlCp dtlDao = iostorinvdtlCpService.getById(collectList.get(0).getIostorinvdtl_id());
|
||||||
|
|
||||||
|
// 明细已分配数量
|
||||||
|
BigDecimal assign_qty = NumberUtil.add(dtlDao.getAssign_qty(), qty);
|
||||||
|
// 明细未分配数量
|
||||||
|
BigDecimal unAssign_qty = NumberUtil.sub(dtlDao.getUnassign_qty(), qty);
|
||||||
|
|
||||||
|
dtlDao.setAssign_qty(assign_qty);
|
||||||
|
dtlDao.setUnassign_qty(unAssign_qty);
|
||||||
|
|
||||||
|
if (unAssign_qty.doubleValue() == 0) {
|
||||||
|
dtlDao.setBill_status(IOSEnum.BILL_STATUS.code("分配完"));
|
||||||
|
} else {
|
||||||
|
dtlDao.setBill_status(IOSEnum.BILL_STATUS.code("分配中"));
|
||||||
|
}
|
||||||
|
|
||||||
|
iostorinvdtlCpService.updateById(dtlDao);
|
||||||
|
}
|
||||||
|
|
||||||
// 4.更新主表
|
// 4.更新主表
|
||||||
updateMst(whereJson.getString("iostorinv_id"));
|
updateMst(whereJson.getString("iostorinv_id"));
|
||||||
|
|||||||
@@ -92,11 +92,6 @@ public class StIvtIostorinvdisCpServiceImpl extends ServiceImpl<StIvtIostorinvdi
|
|||||||
List<StIvtIostorinvdisCp> result = new ArrayList<>();
|
List<StIvtIostorinvdisCp> result = new ArrayList<>();
|
||||||
|
|
||||||
list.forEach(item -> {
|
list.forEach(item -> {
|
||||||
// 获取载具信息
|
|
||||||
MdPbStoragevehicleinfo vehicleDao = iMdPbStoragevehicleinfoService.getOne(
|
|
||||||
new QueryWrapper<MdPbStoragevehicleinfo>()
|
|
||||||
.eq("storagevehicle_code", item.getString("storagevehicle_code"))
|
|
||||||
);
|
|
||||||
|
|
||||||
// 获取物料信息
|
// 获取物料信息
|
||||||
MdMeMaterialbase materDao = iMdMeMaterialbaseService.getOne(
|
MdMeMaterialbase materDao = iMdMeMaterialbaseService.getOne(
|
||||||
@@ -108,10 +103,13 @@ public class StIvtIostorinvdisCpServiceImpl extends ServiceImpl<StIvtIostorinvdi
|
|||||||
new QueryWrapper<MdPbMeasureunit>().eq("measure_unit_id", materDao.getBase_unit_id())
|
new QueryWrapper<MdPbMeasureunit>().eq("measure_unit_id", materDao.getBase_unit_id())
|
||||||
);
|
);
|
||||||
|
|
||||||
|
StIvtIostorinvdtlCp dtlDao = iostorinvdtlCpService.getById(item.getString("iostorinvdtl_id"));
|
||||||
|
|
||||||
|
|
||||||
StIvtIostorinvdisCp disDao = new StIvtIostorinvdisCp()
|
StIvtIostorinvdisCp disDao = new StIvtIostorinvdisCp()
|
||||||
.setIostorinvdis_id(json.getString("iostorinvdis_id"))
|
.setIostorinvdis_id(IdUtil.getStringId())
|
||||||
.setIostorinvdtl_id(json.getString("iostorinvdtl_id"))
|
.setIostorinvdtl_id(dtlDao.getIostorinvdtl_id())
|
||||||
.setIostorinv_id(json.getString("iostorinv_id"))
|
.setIostorinv_id(dtlDao.getIostorinv_id())
|
||||||
.setSeq_no(1)
|
.setSeq_no(1)
|
||||||
.setMaterial_id(materDao.getMaterial_id())
|
.setMaterial_id(materDao.getMaterial_id())
|
||||||
.setPcsn(DateUtil.today())
|
.setPcsn(DateUtil.today())
|
||||||
@@ -119,9 +117,7 @@ public class StIvtIostorinvdisCpServiceImpl extends ServiceImpl<StIvtIostorinvdi
|
|||||||
.setIvt_level(IVTEnum.IVT_LEVEL.code("一级"))
|
.setIvt_level(IVTEnum.IVT_LEVEL.code("一级"))
|
||||||
.setIs_active(true)
|
.setIs_active(true)
|
||||||
.setWork_status(IOSEnum.WORK_STATUS.code("未生成"))
|
.setWork_status(IOSEnum.WORK_STATUS.code("未生成"))
|
||||||
.setStoragevehicle_id(vehicleDao.getStoragevehicle_id())
|
.setStoragevehicle_code(item.getString("storagevehicle_code"))
|
||||||
.setStoragevehicle_code(vehicleDao.getStoragevehicle_code())
|
|
||||||
.setStoragevehicle_type(vehicleDao.getStoragevehicle_type())
|
|
||||||
.setIs_issued(false)
|
.setIs_issued(false)
|
||||||
.setQty_unit_id(unitDao.getMeasure_unit_id())
|
.setQty_unit_id(unitDao.getMeasure_unit_id())
|
||||||
.setQty_unit_name(unitDao.getUnit_name())
|
.setQty_unit_name(unitDao.getUnit_name())
|
||||||
@@ -129,18 +125,6 @@ public class StIvtIostorinvdisCpServiceImpl extends ServiceImpl<StIvtIostorinvdi
|
|||||||
.setReal_qty(item.getBigDecimal("qty"));
|
.setReal_qty(item.getBigDecimal("qty"));
|
||||||
result.add(disDao);
|
result.add(disDao);
|
||||||
|
|
||||||
// 更新载具扩展属性表
|
|
||||||
MdPbStoragevehicleext vehicleExtDao = new MdPbStoragevehicleext();
|
|
||||||
vehicleExtDao.setMaterial_id(item.getString("material_id"));
|
|
||||||
vehicleExtDao.setStorage_qty(NumberUtil.add(vehicleExtDao.getStorage_qty(),item.getBigDecimal("qty")));
|
|
||||||
vehicleExtDao.setUpdate_id(SecurityUtils.getCurrentUserId());
|
|
||||||
vehicleExtDao.setUpdate_name(SecurityUtils.getCurrentNickName());
|
|
||||||
vehicleExtDao.setUpdate_time(new Date());
|
|
||||||
|
|
||||||
iMdPbStoragevehicleextService.update(
|
|
||||||
vehicleExtDao,new QueryWrapper<MdPbStoragevehicleext>().eq("storagevehicle_code", vehicleDao.getStoragevehicle_code())
|
|
||||||
);
|
|
||||||
|
|
||||||
});
|
});
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,7 +16,9 @@ import org.nl.wms.masterdata_manage.service.vehicle.dao.MdPbBucketrecord;
|
|||||||
import org.nl.wms.masterdata_manage.service.vehicle.dao.MdPbStoragevehicleinfo;
|
import org.nl.wms.masterdata_manage.service.vehicle.dao.MdPbStoragevehicleinfo;
|
||||||
import org.nl.wms.storage_manage.IVTEnum;
|
import org.nl.wms.storage_manage.IVTEnum;
|
||||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.IStIvtIostorinvdisdtlCpService;
|
import org.nl.wms.storage_manage.productmanage.service.iostorInv.IStIvtIostorinvdisdtlCpService;
|
||||||
|
import org.nl.wms.storage_manage.productmanage.service.iostorInv.IStIvtIostorinvdtlCpService;
|
||||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvdisdtlCp;
|
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvdisdtlCp;
|
||||||
|
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvdtlCp;
|
||||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.mapper.StIvtIostorinvdisdtlCpMapper;
|
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.mapper.StIvtIostorinvdisdtlCpMapper;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
@@ -52,6 +54,9 @@ public class StIvtIostorinvdisdtlCpServiceImpl extends ServiceImpl<StIvtIostorin
|
|||||||
protected IMdMeMaterialbaseService iMdMeMaterialbaseService; // 物料服务
|
protected IMdMeMaterialbaseService iMdMeMaterialbaseService; // 物料服务
|
||||||
|
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
protected IStIvtIostorinvdtlCpService iostorinvdtlCpService; // 成品出入库明细表服务
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void batchInsert(Collection<StIvtIostorinvdisdtlCp> list) {
|
public void batchInsert(Collection<StIvtIostorinvdisdtlCp> list) {
|
||||||
if (!CollectionUtils.isEmpty(list)){
|
if (!CollectionUtils.isEmpty(list)){
|
||||||
@@ -69,20 +74,17 @@ public class StIvtIostorinvdisdtlCpServiceImpl extends ServiceImpl<StIvtIostorin
|
|||||||
List<StIvtIostorinvdisdtlCp> result = new ArrayList<>();
|
List<StIvtIostorinvdisdtlCp> result = new ArrayList<>();
|
||||||
|
|
||||||
list.forEach(item -> {
|
list.forEach(item -> {
|
||||||
// 获取载具信息
|
|
||||||
MdPbStoragevehicleinfo vehicleDao = iMdPbStoragevehicleinfoService.getOne(
|
|
||||||
new QueryWrapper<MdPbStoragevehicleinfo>()
|
|
||||||
.eq("storagevehicle_code", item.getString("storagevehicle_code"))
|
|
||||||
);
|
|
||||||
|
|
||||||
MdMeMaterialbase mataDao = iMdMeMaterialbaseService.getOne(
|
MdMeMaterialbase mataDao = iMdMeMaterialbaseService.getOne(
|
||||||
new QueryWrapper<MdMeMaterialbase>().lambda()
|
new QueryWrapper<MdMeMaterialbase>().lambda()
|
||||||
.eq(MdMeMaterialbase::getMaterial_code, item.getString("material_code"))
|
.eq(MdMeMaterialbase::getMaterial_code, item.getString("material_code"))
|
||||||
);
|
);
|
||||||
|
|
||||||
|
StIvtIostorinvdtlCp dtlDao = iostorinvdtlCpService.getById(item.getString("iostorinvdtl_id"));
|
||||||
|
|
||||||
StIvtIostorinvdisdtlCp disDtlDao = new StIvtIostorinvdisdtlCp()
|
StIvtIostorinvdisdtlCp disDtlDao = new StIvtIostorinvdisdtlCp()
|
||||||
.setIostorinv_id(json.getString("iostorinv_id"))
|
.setIostorinv_id(dtlDao.getIostorinv_id())
|
||||||
.setIostorinvdtl_id(json.getString("iostorinvdtl_id"))
|
.setIostorinvdtl_id(dtlDao.getIostorinvdtl_id())
|
||||||
.setIostorinvdis_id(json.getString("iostorinvdis_id"))
|
.setIostorinvdis_id(json.getString("iostorinvdis_id"))
|
||||||
.setIostorinvdisdtl_id(IdUtil.getStringId())
|
.setIostorinvdisdtl_id(IdUtil.getStringId())
|
||||||
.setSeq_no(new BigDecimal(1))
|
.setSeq_no(new BigDecimal(1))
|
||||||
@@ -91,9 +93,7 @@ public class StIvtIostorinvdisdtlCpServiceImpl extends ServiceImpl<StIvtIostorin
|
|||||||
.setQuality_scode(IVTEnum.QUALITY_SCODE.code("合格品"))
|
.setQuality_scode(IVTEnum.QUALITY_SCODE.code("合格品"))
|
||||||
.setIvt_level(IVTEnum.IVT_LEVEL.code("一级"))
|
.setIvt_level(IVTEnum.IVT_LEVEL.code("一级"))
|
||||||
.setIs_active(true)
|
.setIs_active(true)
|
||||||
.setStoragevehicle_id(vehicleDao.getStoragevehicle_id())
|
.setStoragevehicle_code(item.getString("storagevehicle_code"))
|
||||||
.setStoragevehicle_code(vehicleDao.getStoragevehicle_code())
|
|
||||||
.setStoragevehicle_type(vehicleDao.getStoragevehicle_type())
|
|
||||||
.setBucketunique(item.getString("bucketunique"))
|
.setBucketunique(item.getString("bucketunique"))
|
||||||
.setQty_unit_id(item.getString("qty_unit_id"))
|
.setQty_unit_id(item.getString("qty_unit_id"))
|
||||||
.setQty_unit_name(item.getString("qty_unit_name"))
|
.setQty_unit_name(item.getString("qty_unit_name"))
|
||||||
@@ -103,9 +103,8 @@ public class StIvtIostorinvdisdtlCpServiceImpl extends ServiceImpl<StIvtIostorin
|
|||||||
// 更新箱记录表
|
// 更新箱记录表
|
||||||
iMdPbBucketrecordService.update(
|
iMdPbBucketrecordService.update(
|
||||||
MdPbBucketrecord.builder()
|
MdPbBucketrecord.builder()
|
||||||
.storagevehicle_id(vehicleDao.getStoragevehicle_id())
|
|
||||||
.status(MasterEnum.BOX_STATUS.code("组盘"))
|
.status(MasterEnum.BOX_STATUS.code("组盘"))
|
||||||
.storagevehicle_code(vehicleDao.getStoragevehicle_code())
|
.storagevehicle_code(item.getString("storagevehicle_code"))
|
||||||
.instor_optid(Long.getLong(SecurityUtils.getCurrentUserId()))
|
.instor_optid(Long.getLong(SecurityUtils.getCurrentUserId()))
|
||||||
.instor_optname(SecurityUtils.getCurrentNickName())
|
.instor_optname(SecurityUtils.getCurrentNickName())
|
||||||
.instor_time(DateUtil.now())
|
.instor_time(DateUtil.now())
|
||||||
|
|||||||
@@ -1,15 +1,19 @@
|
|||||||
package org.nl.wms.storage_manage.productmanage.service.iostorInv.impl;
|
package org.nl.wms.storage_manage.productmanage.service.iostorInv.impl;
|
||||||
|
|
||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import com.alibaba.fastjson.JSONArray;
|
import com.alibaba.fastjson.JSONArray;
|
||||||
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.UpdateWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
import org.nl.modules.common.exception.BadRequestException;
|
||||||
import org.nl.wms.masterdata_manage.service.master.IMdPbMeasureunitService;
|
import org.nl.wms.masterdata_manage.service.master.IMdPbMeasureunitService;
|
||||||
import org.nl.wms.masterdata_manage.service.material.IMdMeMaterialbaseService;
|
import org.nl.wms.masterdata_manage.service.material.IMdMeMaterialbaseService;
|
||||||
import org.nl.wms.masterdata_manage.service.material.dao.MdMeMaterialbase;
|
import org.nl.wms.masterdata_manage.service.material.dao.MdMeMaterialbase;
|
||||||
|
import org.nl.wms.mps_manage.ordermanage.service.saleOrder.IMpsSaleOrderService;
|
||||||
|
import org.nl.wms.mps_manage.ordermanage.service.saleOrder.dao.MpsSaleOrder;
|
||||||
import org.nl.wms.storage_manage.IOSEnum;
|
import org.nl.wms.storage_manage.IOSEnum;
|
||||||
import org.nl.wms.storage_manage.IVTEnum;
|
import org.nl.wms.storage_manage.IVTEnum;
|
||||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.IStIvtIostorinvdisCpService;
|
import org.nl.wms.storage_manage.productmanage.service.iostorInv.IStIvtIostorinvdisCpService;
|
||||||
@@ -50,6 +54,9 @@ public class StIvtIostorinvdtlCpServiceImpl extends ServiceImpl<StIvtIostorinvdt
|
|||||||
@Autowired
|
@Autowired
|
||||||
protected IStIvtIostorinvdisCpService iostorinvdisCpService;
|
protected IStIvtIostorinvdisCpService iostorinvdisCpService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
protected IMpsSaleOrderService iMpsSaleOrderService; // 销售订单服务
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void batchInsert(Collection<StIvtIostorinvdtlCp> list) {
|
public void batchInsert(Collection<StIvtIostorinvdtlCp> list) {
|
||||||
@@ -74,6 +81,21 @@ public class StIvtIostorinvdtlCpServiceImpl extends ServiceImpl<StIvtIostorinvdt
|
|||||||
.eq(MdMeMaterialbase::getMaterial_code, json.getString("material_code"))
|
.eq(MdMeMaterialbase::getMaterial_code, json.getString("material_code"))
|
||||||
);
|
);
|
||||||
|
|
||||||
|
if (ObjectUtil.isNotEmpty(row.getSource_bill_code())) {
|
||||||
|
MpsSaleOrder orderDao = iMpsSaleOrderService.getOne(
|
||||||
|
new QueryWrapper<MpsSaleOrder>().lambda()
|
||||||
|
.eq(MpsSaleOrder::getSale_code, row.getBase_bill_code())
|
||||||
|
.eq(MpsSaleOrder::getSeq_no, row.getBase_bill_table())
|
||||||
|
);
|
||||||
|
if (ObjectUtil.isEmpty(orderDao))
|
||||||
|
throw new BadRequestException("销售单号错误!");
|
||||||
|
|
||||||
|
row.setBase_billdtl_id(orderDao.getSale_id().toString());
|
||||||
|
row.setBase_bill_code(orderDao.getSale_code());
|
||||||
|
row.setBase_bill_type(orderDao.getSale_type());
|
||||||
|
row.setBase_bill_table(orderDao.getSeq_no().toString());
|
||||||
|
}
|
||||||
|
|
||||||
row.setIostorinv_id(iostorinvCp_id);
|
row.setIostorinv_id(iostorinvCp_id);
|
||||||
row.setMaterial_id(materDao.getMaterial_id());
|
row.setMaterial_id(materDao.getMaterial_id());
|
||||||
row.setIostorinvdtl_id(org.nl.common.utils.IdUtil.getStringId());
|
row.setIostorinvdtl_id(org.nl.common.utils.IdUtil.getStringId());
|
||||||
|
|||||||
@@ -146,6 +146,7 @@
|
|||||||
<span v-show="scope.row.edit">{{ scope.row.material_code }}</span>
|
<span v-show="scope.row.edit">{{ scope.row.material_code }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
<el-table-column show-overflow-tooltip prop="material_spec" label="物料规格" />
|
||||||
<el-table-column show-overflow-tooltip prop="material_name" label="物料名称" />
|
<el-table-column show-overflow-tooltip prop="material_name" label="物料名称" />
|
||||||
<el-table-column show-overflow-tooltip prop="plan_qty" label="入库数量">
|
<el-table-column show-overflow-tooltip prop="plan_qty" label="入库数量">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
@@ -168,8 +169,33 @@
|
|||||||
<el-input v-model="form.tableData[scope.$index].remark" size="small" />
|
<el-input v-model="form.tableData[scope.$index].remark" size="small" />
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column show-overflow-tooltip prop="source_bill_type" label="源单类型" />
|
<el-table-column show-overflow-tooltip prop="base_bill_type" label="源单类型" />
|
||||||
<el-table-column show-overflow-tooltip prop="source_bill_code" label="源单号" />
|
<el-table-column show-overflow-tooltip prop="base_bill_code" label="源单号">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-input
|
||||||
|
v-show="!scope.row.edit"
|
||||||
|
v-model="form.tableData[scope.$index].base_bill_code"
|
||||||
|
clearable
|
||||||
|
:controls="false"
|
||||||
|
controls-position="right"
|
||||||
|
size="small"
|
||||||
|
/>
|
||||||
|
<span v-show="scope.row.edit">{{ scope.row.base_bill_code }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column show-overflow-tooltip prop="base_bill_table" label="源单行号">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-input
|
||||||
|
v-show="!scope.row.edit"
|
||||||
|
v-model="form.tableData[scope.$index].base_bill_table"
|
||||||
|
clearable
|
||||||
|
:controls="false"
|
||||||
|
controls-position="right"
|
||||||
|
size="small"
|
||||||
|
/>
|
||||||
|
<span v-show="scope.row.edit">{{ scope.row.base_bill_table }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
|
||||||
<el-table-column v-if="crud.status.cu > 0" align="center" label="操作" width="170" fixed="right">
|
<el-table-column v-if="crud.status.cu > 0" align="center" label="操作" width="170" fixed="right">
|
||||||
<template scope="scope">
|
<template scope="scope">
|
||||||
@@ -308,6 +334,14 @@ export default {
|
|||||||
this.crud.notify('数量不能为空', CRUD.NOTIFICATION_TYPE.INFO)
|
this.crud.notify('数量不能为空', CRUD.NOTIFICATION_TYPE.INFO)
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
if (!row.base_bill_code) {
|
||||||
|
this.crud.notify('销售单号不能为空!', CRUD.NOTIFICATION_TYPE.INFO)
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
if (!row.base_bill_table) {
|
||||||
|
this.crud.notify('销售单号行不能为空!', CRUD.NOTIFICATION_TYPE.INFO)
|
||||||
|
return false
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
deleteRow(index, rows) {
|
deleteRow(index, rows) {
|
||||||
@@ -329,6 +363,7 @@ export default {
|
|||||||
this.nowrow.material_id = row.material_id
|
this.nowrow.material_id = row.material_id
|
||||||
this.nowrow.material_code = row.material_code
|
this.nowrow.material_code = row.material_code
|
||||||
this.nowrow.material_name = row.material_name
|
this.nowrow.material_name = row.material_name
|
||||||
|
this.nowrow.material_spec = row.material_spec
|
||||||
this.nowrow.plan_qty = '0'
|
this.nowrow.plan_qty = '0'
|
||||||
this.nowrow.qty_unit_name = row.unit_name
|
this.nowrow.qty_unit_name = row.unit_name
|
||||||
this.nowrow.qty_unit_id = row.base_unit_id
|
this.nowrow.qty_unit_id = row.base_unit_id
|
||||||
@@ -348,9 +383,10 @@ export default {
|
|||||||
data.plan_qty = row.product_qty
|
data.plan_qty = row.product_qty
|
||||||
data.qty_unit_name = row.qty_unit_name
|
data.qty_unit_name = row.qty_unit_name
|
||||||
data.qty_unit_id = row.qty_unit_id
|
data.qty_unit_id = row.qty_unit_id
|
||||||
data.source_billdtl_id = row.sale_id
|
data.base_billdtl_id = row.sale_id
|
||||||
data.source_bill_type = row.sale_type
|
data.base_bill_type = row.sale_type
|
||||||
data.source_bill_code = row.sale_code
|
data.base_bill_code = row.sale_code
|
||||||
|
data.base_bill_table = row.seq_no
|
||||||
data.edit = true
|
data.edit = true
|
||||||
this.form.tableData.splice(-1, 0, data)
|
this.form.tableData.splice(-1, 0, data)
|
||||||
this.form.total_qty = parseFloat(this.form.total_qty) + parseFloat(data.plan_qty)
|
this.form.total_qty = parseFloat(this.form.total_qty) + parseFloat(data.plan_qty)
|
||||||
|
|||||||
@@ -53,6 +53,7 @@
|
|||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column show-overflow-tooltip prop="material_code" label="物料编码" align="center" />
|
<el-table-column show-overflow-tooltip prop="material_code" label="物料编码" align="center" />
|
||||||
|
<el-table-column show-overflow-tooltip prop="material_spec" label="物料规格" align="center" />
|
||||||
<el-table-column show-overflow-tooltip prop="material_name" label="物料名称" align="center" />
|
<el-table-column show-overflow-tooltip prop="material_name" label="物料名称" align="center" />
|
||||||
<el-table-column show-overflow-tooltip prop="plan_qty" :formatter="crud.formatNum3" label="数量" align="center" />
|
<el-table-column show-overflow-tooltip prop="plan_qty" :formatter="crud.formatNum3" label="数量" align="center" />
|
||||||
<el-table-column show-overflow-tooltip prop="assign_qty" :formatter="crud.formatNum3" label="已分配数量" align="center" />
|
<el-table-column show-overflow-tooltip prop="assign_qty" :formatter="crud.formatNum3" label="已分配数量" align="center" />
|
||||||
@@ -66,14 +67,9 @@
|
|||||||
<el-card class="box-card" shadow="never" :body-style="{padding:'20px 20px 0 20px'}">
|
<el-card class="box-card" shadow="never" :body-style="{padding:'20px 20px 0 20px'}">
|
||||||
<el-form ref="form2" :inline="true" :model="form" :rules="rules" size="mini">
|
<el-form ref="form2" :inline="true" :model="form" :rules="rules" size="mini">
|
||||||
<el-form-item label="载具号:" prop="vehicle_code">
|
<el-form-item label="载具号:" prop="vehicle_code">
|
||||||
<el-input
|
<el-input v-model="form.vehicle_code" style="width: 200px" size="mini" disabled clearable placeholder="载具号">
|
||||||
v-model="form.vehicle_code"
|
<el-button slot="append" @click="vehicleCheck" >生成</el-button>
|
||||||
style="width: 200px"
|
</el-input>
|
||||||
size="mini"
|
|
||||||
clearable
|
|
||||||
placeholder="载具号"
|
|
||||||
@blur="vehicleCheck(form.vehicle_code)"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item label="箱号:" prop="pageBox_code">
|
<el-form-item label="箱号:" prop="pageBox_code">
|
||||||
@@ -91,6 +87,7 @@
|
|||||||
:controls="false"
|
:controls="false"
|
||||||
precision="3"
|
precision="3"
|
||||||
:min="0"
|
:min="0"
|
||||||
|
@change="changeQty"
|
||||||
placeholder="数量"
|
placeholder="数量"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@@ -113,6 +110,23 @@
|
|||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item label="载具超限类型:" prop="vehicle_overstruct_type">
|
||||||
|
<el-select
|
||||||
|
v-model="form.vehicle_overstruct_type"
|
||||||
|
size="mini"
|
||||||
|
placeholder="请选择"
|
||||||
|
class="filter-item"
|
||||||
|
style="width: 200px;"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="item in dict.VEHICLE_OVER_TYPE"
|
||||||
|
:key="item.value"
|
||||||
|
:label="item.label"
|
||||||
|
:value="item.value"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
</el-form>
|
</el-form>
|
||||||
</el-card>
|
</el-card>
|
||||||
<div class="crud-opts2">
|
<div class="crud-opts2">
|
||||||
@@ -123,6 +137,7 @@
|
|||||||
<el-cascader
|
<el-cascader
|
||||||
placeholder="请选择"
|
placeholder="请选择"
|
||||||
:options="sects"
|
:options="sects"
|
||||||
|
v-model="defaultList"
|
||||||
:props="{ checkStrictly: true }"
|
:props="{ checkStrictly: true }"
|
||||||
clearable
|
clearable
|
||||||
@change="sectQueryChange"
|
@change="sectQueryChange"
|
||||||
@@ -212,6 +227,7 @@
|
|||||||
>
|
>
|
||||||
<el-table-column show-overflow-tooltip type="index" label="序号" align="center" />
|
<el-table-column show-overflow-tooltip type="index" label="序号" align="center" />
|
||||||
<el-table-column show-overflow-tooltip prop="material_code" label="物料编码" align="center" />
|
<el-table-column show-overflow-tooltip prop="material_code" label="物料编码" align="center" />
|
||||||
|
<el-table-column show-overflow-tooltip prop="material_spec" label="物料规格" align="center" />
|
||||||
<el-table-column show-overflow-tooltip prop="material_name" label="物料名称" align="center" />
|
<el-table-column show-overflow-tooltip prop="material_name" label="物料名称" align="center" />
|
||||||
<el-table-column show-overflow-tooltip prop="storagevehicle_code" label="托盘号" align="center" />
|
<el-table-column show-overflow-tooltip prop="storagevehicle_code" label="托盘号" align="center" />
|
||||||
<el-table-column show-overflow-tooltip prop="bucketunique" label="箱号" align="center" />
|
<el-table-column show-overflow-tooltip prop="bucketunique" label="箱号" align="center" />
|
||||||
@@ -252,7 +268,7 @@ export default {
|
|||||||
name: 'DivDialog',
|
name: 'DivDialog',
|
||||||
components: { StructDiv, AddBox },
|
components: { StructDiv, AddBox },
|
||||||
mixins: [crud()],
|
mixins: [crud()],
|
||||||
dicts: ['IO_BILL_STATUS', 'MD_OVERSTRUCT_TYPE'],
|
dicts: ['IO_BILL_STATUS', 'VEHICLE_OVER_TYPE'],
|
||||||
props: {
|
props: {
|
||||||
dialogShow: {
|
dialogShow: {
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
@@ -272,8 +288,8 @@ export default {
|
|||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
dialogVisible: false,
|
dialogVisible: false,
|
||||||
stor_id: '',
|
stor_id: '1528627995269533696',
|
||||||
sect_id: '',
|
sect_id: '1528631043496742912',
|
||||||
sectProp: null,
|
sectProp: null,
|
||||||
structShow: false,
|
structShow: false,
|
||||||
bucketObj: null,
|
bucketObj: null,
|
||||||
@@ -282,6 +298,7 @@ export default {
|
|||||||
addBoxShow: false,
|
addBoxShow: false,
|
||||||
bucketuniqueObj: null,
|
bucketuniqueObj: null,
|
||||||
sects: [],
|
sects: [],
|
||||||
|
defaultList: ['1528627995269533696', '1528631043496742912'],
|
||||||
dis_row: null,
|
dis_row: null,
|
||||||
form: {
|
form: {
|
||||||
dtl_row: null,
|
dtl_row: null,
|
||||||
@@ -292,6 +309,7 @@ export default {
|
|||||||
vehicle_code: '',
|
vehicle_code: '',
|
||||||
bucketunique: '',
|
bucketunique: '',
|
||||||
checked: true,
|
checked: true,
|
||||||
|
vehicle_overstruct_type: '00',
|
||||||
tableMater: []
|
tableMater: []
|
||||||
},
|
},
|
||||||
storlist: [],
|
storlist: [],
|
||||||
@@ -309,7 +327,6 @@ export default {
|
|||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
disabledIos(row) {
|
disabledIos(row) {
|
||||||
debugger
|
|
||||||
if (row.iostorinvdis_id === undefined) {
|
if (row.iostorinvdis_id === undefined) {
|
||||||
return false
|
return false
|
||||||
} else {
|
} else {
|
||||||
@@ -340,22 +357,34 @@ export default {
|
|||||||
},
|
},
|
||||||
clcikRow(row, column, event) {
|
clcikRow(row, column, event) {
|
||||||
this.form.dtl_row = row
|
this.form.dtl_row = row
|
||||||
|
this.form.storage_qty = this.form.dtl_row.plan_qty
|
||||||
crudProductIn.getIosInvDis({ 'iostorinv_id': row.iostorinv_id, 'iostorinvdtl_id': row.iostorinvdtl_id }).then(res => {
|
crudProductIn.getIosInvDis({ 'iostorinv_id': row.iostorinv_id, 'iostorinvdtl_id': row.iostorinvdtl_id }).then(res => {
|
||||||
this.form.tableMater = res
|
debugger
|
||||||
|
if (res.length !== 0) {
|
||||||
|
this.form.tableMater = res
|
||||||
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
clcikRowDis(row, column, event) {
|
clcikRowDis(row, column, event) {
|
||||||
this.dis_row = row
|
this.dis_row = row
|
||||||
},
|
},
|
||||||
vehicleCheck(vehicle_code) {
|
vehicleCheck() {
|
||||||
this.form.bucketunique = ''
|
// 生成托盘
|
||||||
// 校验载具号是否存在&&是否已被组盘
|
crudProductIn.vehicleCheck().then(res => {
|
||||||
crudProductIn.vehicleCheck({ 'storagevehicle_code': vehicle_code }).then(res => {
|
this.form.tableMater = []
|
||||||
this.crud.notify('查询成功!', CRUD.NOTIFICATION_TYPE.SUCCESS)
|
this.form.vehicle_code = res.vehicle_code
|
||||||
|
this.crud.notify('生成成功!', CRUD.NOTIFICATION_TYPE.SUCCESS)
|
||||||
}).catch(() => {
|
}).catch(() => {
|
||||||
this.form.vehicle_code = ''
|
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
changeQty(val) {
|
||||||
|
debugger
|
||||||
|
if (parseFloat(this.form.dtl_row.plan_qty) < parseFloat(val)) {
|
||||||
|
this.crud.notify('放入数量不能大于明细数量!', CRUD.NOTIFICATION_TYPE.INFO)
|
||||||
|
this.$set(this.form, 'storage_qty', parseFloat(this.form.dtl_row.plan_qty))
|
||||||
|
}
|
||||||
|
},
|
||||||
queryBox() {
|
queryBox() {
|
||||||
// 校验载具是否为空
|
// 校验载具是否为空
|
||||||
if (!this.form.vehicle_code) {
|
if (!this.form.vehicle_code) {
|
||||||
@@ -393,6 +422,7 @@ export default {
|
|||||||
})
|
})
|
||||||
|
|
||||||
if (fla) {
|
if (fla) {
|
||||||
|
this.bucketuniqueObj.iostorinvdtl_id = this.form.dtl_row.iostorinvdtl_id
|
||||||
this.form.tableMater.splice(-1, 0, this.bucketuniqueObj)
|
this.form.tableMater.splice(-1, 0, this.bucketuniqueObj)
|
||||||
this.form.bucketunique = ''
|
this.form.bucketunique = ''
|
||||||
}
|
}
|
||||||
@@ -404,12 +434,24 @@ export default {
|
|||||||
}
|
}
|
||||||
const item = {
|
const item = {
|
||||||
'storagevehicle_code': this.form.vehicle_code,
|
'storagevehicle_code': this.form.vehicle_code,
|
||||||
|
'iostorinvdtl_id': this.form.dtl_row.iostorinvdtl_id,
|
||||||
'material_id': this.form.dtl_row.material_id,
|
'material_id': this.form.dtl_row.material_id,
|
||||||
'material_code': this.form.dtl_row.material_code,
|
'material_code': this.form.dtl_row.material_code,
|
||||||
|
'material_spec': this.form.dtl_row.material_spec,
|
||||||
'material_name': this.form.dtl_row.material_name,
|
'material_name': this.form.dtl_row.material_name,
|
||||||
'qty': this.form.storage_qty
|
'qty': this.form.storage_qty
|
||||||
}
|
}
|
||||||
this.form.tableMater.splice(-1, 0, item)
|
|
||||||
|
let fla2 = true
|
||||||
|
this.form.tableMater.forEach(res => {
|
||||||
|
if (res.iostorinvdtl_id === item.iostorinvdtl_id && res.storagevehicle_code === item.storagevehicle_code) {
|
||||||
|
fla2 = false
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
if (fla2) {
|
||||||
|
this.form.tableMater.splice(-1, 0, item)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
deleteRow(index, rows) {
|
deleteRow(index, rows) {
|
||||||
@@ -486,11 +528,11 @@ export default {
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
cancelConfirmvehicle() {
|
cancelConfirmvehicle() {
|
||||||
if (!this.form.dtl_row) {
|
if (!this.dis_row) {
|
||||||
this.crud.notify('请选择一条明细', CRUD.NOTIFICATION_TYPE.INFO)
|
this.crud.notify('请选择一条分配明细', CRUD.NOTIFICATION_TYPE.INFO)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
crudProductIn.cancelConfirmvehicle(this.form.dtl_row).then(res => {
|
crudProductIn.cancelConfirmvehicle(this.dis_row).then(res => {
|
||||||
crudProductIn.getIosInvDtl({ 'iostorinv_id': this.form.dtl_row.iostorinv_id }).then(res => {
|
crudProductIn.getIosInvDtl({ 'iostorinv_id': this.form.dtl_row.iostorinv_id }).then(res => {
|
||||||
this.form.vehicle_code = ''
|
this.form.vehicle_code = ''
|
||||||
this.form.bucketunique = ''
|
this.form.bucketunique = ''
|
||||||
@@ -579,6 +621,7 @@ export default {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.dis_row.vehicle_overstruct_type = this.form.vehicle_overstruct_type
|
||||||
crudProductIn.unDivStruct(this.dis_row).then(res => {
|
crudProductIn.unDivStruct(this.dis_row).then(res => {
|
||||||
crudProductIn.getIosInvDtl({ 'iostorinv_id': this.dis_row.iostorinv_id }).then(res => {
|
crudProductIn.getIosInvDtl({ 'iostorinv_id': this.dis_row.iostorinv_id }).then(res => {
|
||||||
this.openParam = res
|
this.openParam = res
|
||||||
|
|||||||
@@ -40,11 +40,10 @@ export function getIosInvDis(data) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
export function vehicleCheck(data) {
|
export function vehicleCheck() {
|
||||||
return request({
|
return request({
|
||||||
url: '/api/productIn/vehicleCheck',
|
url: '/api/productIn/vehicleCheck',
|
||||||
method: 'post',
|
method: 'post'
|
||||||
data
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user