库存盘点实时统计修改

库存盘点实时统计修改
pull/3/head
siontion 9 months ago
parent 5d7783cb62
commit 64c2d830fc

@ -94,6 +94,7 @@ public class StorageController {
List<StorageLogDO> logList = BeanUtils.toBean(matList,StorageLogDO.class); List<StorageLogDO> logList = BeanUtils.toBean(matList,StorageLogDO.class);
// 同步库存单状态到日志,便于以后统计 // 同步库存单状态到日志,便于以后统计
for (StorageLogDO log : logList){ for (StorageLogDO log : logList){
log.setId(null);
log.setStatus(targetDo.getStatus()); log.setStatus(targetDo.getStatus());
} }
// 批量保存当前库存物料日志信息 // 批量保存当前库存物料日志信息

@ -37,7 +37,7 @@ public interface PnMapper extends BaseMapperX<PnDO> {
} }
default List<Map<String, Object>> selectSimpleList() { default List<Map<String, Object>> selectSimpleList() {
return selectMaps(new QueryWrapper<PnDO>().select("id", "pn_name","rg_id","wh_id").lambda()); return selectMaps(new QueryWrapper<PnDO>().select("id", "pn_name","rg_id","wh_id").eq("pn_status","1").lambda());
} }
} }

@ -35,7 +35,7 @@ public interface RgMapper extends BaseMapperX<RgDO> {
default List<Map<String, Object>> selectSimpleList() { default List<Map<String, Object>> selectSimpleList() {
return selectMaps(new QueryWrapper<RgDO>().select("id", "rg_name","wh_id").lambda()); return selectMaps(new QueryWrapper<RgDO>().select("id", "rg_name","wh_id").eq("rg_status","1").lambda());
} }

@ -32,6 +32,7 @@ public interface StorageLogNowMapper extends BaseMapperX<StorageLogNowDO> {
.eq(reqVO.getWhId()!= null,StorageLogNowDO::getWhId, reqVO.getWhId()) .eq(reqVO.getWhId()!= null,StorageLogNowDO::getWhId, reqVO.getWhId())
.eq(reqVO.getRgId()!= null,StorageLogNowDO::getRgId, reqVO.getRgId()) .eq(reqVO.getRgId()!= null,StorageLogNowDO::getRgId, reqVO.getRgId())
.eq(reqVO.getPnId()!= null,StorageLogNowDO::getPnId, reqVO.getPnId()) .eq(reqVO.getPnId()!= null,StorageLogNowDO::getPnId, reqVO.getPnId())
.ne(true,StorageLogNowDO::getStorageOkQty,0)
.like(!StringUtils.isEmpty(reqVO.getMatName()), StorageLogNowDO::getMatName, reqVO.getMatName()) .like(!StringUtils.isEmpty(reqVO.getMatName()), StorageLogNowDO::getMatName, reqVO.getMatName())
.like(!StringUtils.isEmpty(reqVO.getMatCode()), StorageLogNowDO::getMatCode, reqVO.getMatCode()) .like(!StringUtils.isEmpty(reqVO.getMatCode()), StorageLogNowDO::getMatCode, reqVO.getMatCode())
.like(!StringUtils.isEmpty(reqVO.getLotNo()),StorageLogNowDO::getLotNo, reqVO.getLotNo()); .like(!StringUtils.isEmpty(reqVO.getLotNo()),StorageLogNowDO::getLotNo, reqVO.getLotNo());

@ -42,7 +42,7 @@ public interface WarehouseMapper extends BaseMapperX<WarehouseDO> {
default List<Map<String, Object>> selectSimpleList() { default List<Map<String, Object>> selectSimpleList() {
return selectMaps(new QueryWrapper<WarehouseDO>().select("id", "wh_name").lambda()); return selectMaps(new QueryWrapper<WarehouseDO>().select("id", "wh_name").eq("wh_status","1").lambda());
} }
} }

@ -57,7 +57,7 @@
(select label from system_dict_data where dict_type='heli_material_unit' and value= mat.unit) as mat_unit, (select label from system_dict_data where dict_type='heli_material_unit' and value= mat.unit) as mat_unit,
brand as mat_brand,'' as wh_id, '' as wh_name,'' as rg_id,'' as rg_name,'' as pn_id,'' as pn_name,'' brand as mat_brand,'' as wh_id, '' as wh_name,'' as rg_id,'' as rg_name,'' as pn_id,'' as pn_name,''
lot_no,short_name,0 as storage_ok_qty lot_no,short_name,0 as storage_ok_qty
from base_material as mat where virtual_part='N' and not exists(select id from v_storage_material_now where wh_id=#{whId} and id=mat.id) from base_material as mat where virtual_part='N' and mat.status=1 and not exists(select id from v_storage_material_now where wh_id=#{whId} and id=mat.id)
) t ) t
<where> <where>
<if test="matCode != null and matCode != ''"> <if test="matCode != null and matCode != ''">

@ -369,52 +369,54 @@ const handleStockType = async (typeid) => {
} }
const handleStatus = async (num) => { const handleStatus = async (num) => {
// formData.value.status = num
await formRef.value.validate() const data = formData.value as unknown as StorageApi.StorageVO
if (formData.value.matItemDOList.length === 0) { if(num==2){
message.alertWarning('请添加物料信息!')
return //
} await formRef.value.validate()
// if (formData.value.matItemDOList.length === 0) {
try { message.alertWarning('请添加物料信息!')
await matSubFormRef.value.validate() return
} catch (e) {
return
}
//
const matCurrentData = await StorageMatApi.getStorageMatList(0)
var hasRestNum = true
formData.value.matItemDOList.forEach((rest) => {
if (
matCurrentData.find(
(mat) =>
mat.matId == rest.matId &&
mat.pnId == rest.pnId &&
mat.matRest < Number(rest.storageOkQty)
) !== undefined || rest.storageOkQty.length ==0
) {
hasRestNum = false
} }
}) //
if (!hasRestNum) { try {
message.alertWarning('物料库存不足') await matSubFormRef.value.validate()
return } catch (e) {
} return
}
// //
await message.confirm('确认'+(num==2?'提交':'作废')+'出库信息?') const matCurrentData = await StorageMatApi.getStorageMatList(0)
// var hasRestNum = true
await saveFormData() formData.value.matItemDOList.forEach((rest) => {
if (
matCurrentData.find(
(mat) =>
mat.matId == rest.matId &&
mat.pnId == rest.pnId &&
mat.matRest < Number(rest.storageOkQty)
) !== undefined || rest.storageOkQty.length ==0
) {
hasRestNum = false
}
})
if (!hasRestNum) {
message.alertWarning('物料库存不足')
return
}
//
await message.confirm('确认提交出库信息?')
//
await saveFormData()
formData.value.status = num data.outbound = useUserStore().getUser.id
const dataUpdate = formData.value as unknown as StorageApi.StorageVO }else{
if (num == 2) { await StorageApi.updateStorage(data)
dataUpdate.outbound = useUserStore().getUser.id data.cancel = useUserStore().getUser.id
} else { commonResult = 'common.updateSuccess'
dataUpdate.cancel = useUserStore().getUser.id
} }
await StorageApi.updateStorageStatus(dataUpdate) await StorageApi.updateStorageStatus(data)
message.success(t('common.updateSuccess')) message.success(t('common.updateSuccess'))

@ -70,3 +70,28 @@ CREATE TABLE `pro_process_design_progress` (
ALTER TABLE project_deliver_order MODIFY COLUMN `deliver_mode` CHAR ( 1 ) COMMENT '发货方式'; ALTER TABLE project_deliver_order MODIFY COLUMN `deliver_mode` CHAR ( 1 ) COMMENT '发货方式';
ALTER TABLE wms_storage ADD COLUMN `v_mat_name` varchar(128) COMMENT '虚拟物料名称'; ALTER TABLE wms_storage ADD COLUMN `v_mat_name` varchar(128) COMMENT '虚拟物料名称';
CREATE OR REPLACE VIEW v_storage_material_now AS
select `t`.`deleted` AS `deleted`,`t`.`id` AS `id`,`t`.`creator` AS `creator`,`t`.`updater` AS `updater`,cast('2000-01-01 00:00' as date) AS `create_time`,cast('2000-01-01 00:00' as date) AS `update_time`,
`t`.`tenant_id` AS `tenant_id`,`t`.`mat_code` AS `mat_code`,`t`.`mat_name` AS `mat_name`,
`t`.`mat_type` AS `mat_type`,`t`.`mat_spec` AS `mat_spec`,`t`.`mat_unit` AS `mat_unit`,`t`.`mat_brand` AS `mat_brand`,`t`.`wh_id` AS `wh_id`,`t`.`wh_name` AS `wh_name`,`t`.`rg_id` AS `rg_id`,
`t`.`rg_name` AS `rg_name`,`t`.`pn_id` AS `pn_id`,`t`.`pn_name` AS `pn_name`,'' AS `lot_no`,`t`.`short_name` AS `short_name`,sum(`t`.`storage_ok_qty`) AS `storage_ok_qty`
from (
select 0 AS `deleted`,`mat`.`id` AS `id`,`mat`.`creator` AS `creator`,`mat`.`updater` AS `updater`,`mat`.`tenant_id` AS `tenant_id`,`mat`.`code` AS `mat_code`,`mat`.`name` AS `mat_name`,
(select `mes-heli`.`system_dict_data`.`label` from `mes-heli`.`system_dict_data` where ((`mes-heli`.`system_dict_data`.`dict_type` = 'heli_material_type') and (`mes-heli`.`system_dict_data`.`value` = `mat`.`material_type`))) AS `mat_type`,
(case when (isnull(`mat`.`short_name`) = TRUE) then '' else `mat`.`short_name` end) AS `short_name`,
(case when (isnull(`mat`.`spec`) = TRUE) then '' else `mat`.`spec` end) AS `mat_spec`,
(case when (isnull(`mat`.`brand`) = TRUE) then '' else `mat`.`brand` end) AS `mat_brand`,
(select `mes-heli`.`system_dict_data`.`label` from `mes-heli`.`system_dict_data` where ((`mes-heli`.`system_dict_data`.`dict_type` = 'heli_material_unit') and (`mes-heli`.`system_dict_data`.`value` = `mat`.`unit`))) AS `mat_unit`,
`wh`.`id` AS `wh_id`,`wh`.`wh_name` AS `wh_name`,`rg`.`id` AS `rg_id`,`rg`.`rg_name` AS `rg_name`,`pn`.`id` AS `pn_id`,`pn`.`pn_name` AS `pn_name`,
(case when (isnull(`lg`.`lot_no`) = 1) then '' else `lg`.`lot_no` end) AS `lot_no`,
(case when ((`st`.`stock_type` = 1) and (`lg`.`status` = 2)) then `lg`.`storage_ok_qty` when ((`st`.`stock_type` = 1) and (`lg`.`status` = 3)) then (-(1) * `lg`.`storage_ok_qty`) when ((`st`.`stock_type` = 2) and (`lg`.`status` = 2)) then (-(1) * `lg`.`storage_ok_qty`) when ((`st`.`stock_type` = 2) and (`lg`.`status` = 3)) then `lg`.`storage_ok_qty` else `lg`.`storage_ok_qty` end) AS `storage_ok_qty`
from (((((`mes-heli`.`wms_storage_log` `lg`
left join `mes-heli`.`wms_storage` `st` on((`lg`.`stock_id` = `st`.`id`)))
left join `mes-heli`.`base_material` `mat` on((`lg`.`mat_id` = `mat`.`id`)))
left join `mes-heli`.`wms_wh` `wh` on((`lg`.`wh_id` = `wh`.`id`)))
left join `mes-heli`.`wms_rg` `rg` on((`lg`.`rg_id` = `rg`.`id`)))
left join `mes-heli`.`wms_pn` `pn` on((`lg`.`pn_id` = `pn`.`id`)))
where ((`st`.`deleted` = 0) and (`mat`.`deleted` = 0) and (`wh`.`deleted` = 0) and (`rg`.`deleted` = 0) and (`pn`.`deleted` = 0))) `t`
group by `t`.`deleted`,`t`.`id`,`t`.`creator`,`t`.`updater`,`t`.`tenant_id`,`t`.`mat_code`,`t`.`mat_name`,`t`.`mat_type`,`t`.`mat_spec`,`t`.`mat_unit`,`t`.`mat_brand`,`t`.`wh_id`,`t`.`wh_name`,`t`.`rg_id`,`t`.`rg_name`,`t`.`pn_id`,`t`.`pn_name`,`t`.`short_name`

Loading…
Cancel
Save