盘库前端页面为负数问题
This commit is contained in:
parent
05d944ecd4
commit
4ffb6db0a2
@ -64,7 +64,7 @@ public class StorageCheckController {
|
||||
@PreAuthorize("@ss.hasPermission('heli:storage-mat:create')")
|
||||
public CommonResult<Long> createStorageCheckMat(@Valid @RequestBody List<StorageCheckMatSaveReqVO> createReqVO, @RequestParam("checkId") Long checkId) {
|
||||
|
||||
storageCheckMatService.deleteCheckMatList(checkId);
|
||||
storageCheckMatService.deleteCheckMatListNew(checkId);
|
||||
for (StorageCheckMatSaveReqVO item : createReqVO) {
|
||||
item.setId(null);
|
||||
|
||||
|
@ -88,5 +88,5 @@ public class StorageInventoryPageReqVO extends PageParam {
|
||||
@Schema(description = "是否排除库存为0的物料")
|
||||
private Integer noZero;
|
||||
@Schema(description = "是否全部数据")
|
||||
private boolean isALL;
|
||||
private Integer selectAll;
|
||||
}
|
||||
|
@ -8,6 +8,7 @@ import com.chanko.yunxi.mes.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.storagecheckmat.StorageCheckMatDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import com.chanko.yunxi.mes.module.heli.controller.admin.storagecheckmat.vo.*;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
/**
|
||||
* 盘点物料 Mapper
|
||||
@ -35,10 +36,12 @@ public interface StorageCheckMatMapper extends BaseMapperX<StorageCheckMatDO> {
|
||||
.orderByDesc(StorageCheckMatDO::getId));
|
||||
}
|
||||
|
||||
int deleteCheckMatList(@Param("checkId") Long checkId);
|
||||
|
||||
default List<StorageCheckMatDO> selectListByCheckID(Long checkId) {
|
||||
return selectList(new LambdaQueryWrapperX<StorageCheckMatDO>()
|
||||
.eqIfPresent(StorageCheckMatDO::getCheckId, checkId)
|
||||
.orderByDesc(StorageCheckMatDO::getId));
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -116,6 +116,7 @@ public interface StorageInventoryMapper extends BaseMapperX<StorageInventoryDO>
|
||||
List<StorageInventoryDO> selectNowList(StorageInventoryPageReqVO reqVO);
|
||||
|
||||
|
||||
List<StorageInventoryDO> selectNowListAll(StorageInventoryPageReqVO reqVO);
|
||||
default PageResult<StorageInventoryDO> getStorageNowPageAll(StorageLogPageReqVO pageReqVO){
|
||||
// MPJLambdaWrapper<MaterialDO> query = new MPJLambdaWrapper<>();
|
||||
//
|
||||
|
@ -170,7 +170,7 @@ public class StorageCheckServiceImpl implements StorageCheckService {
|
||||
|
||||
//要同步设置
|
||||
} else {
|
||||
storageInventoryDO.setYardAmount(storageInventoryDO.getYardAmount().add(storageMatDO.getStorageOkQty()));
|
||||
storageInventoryDO.setYardAmount(storageMatDO.getStorageOkQty());
|
||||
}
|
||||
|
||||
if (storageMatDO.getOnemoney() != null && !storageMatDO.getOnemoney().trim().equals("")) {
|
||||
@ -188,7 +188,7 @@ public class StorageCheckServiceImpl implements StorageCheckService {
|
||||
wrapper.eq(StorageInventoryDO::getDeleted, 0);
|
||||
StorageInventoryDO storageInventoryDO = storageInventoryMapper.selectOne(wrapper);
|
||||
if (ObjectUtil.isNotEmpty(storageInventoryDO)) {
|
||||
storageInventoryDO.setYardAmount(storageInventoryDO.getYardAmount().subtract(storageMatDO.getStorageOkQty()));
|
||||
storageInventoryDO.setYardAmount(storageMatDO.getStorageOkQty());
|
||||
}
|
||||
if (storageMatDO.getOnemoney() != null && !storageMatDO.getOnemoney().trim().equals("")) {
|
||||
BigDecimal bigDecimal = new BigDecimal(storageMatDO.getOnemoney());
|
||||
|
@ -55,5 +55,5 @@ public interface StorageCheckMatService {
|
||||
List<StorageCheckMatDO> getStorageMatListByCheckId(Long id);
|
||||
|
||||
Integer deleteCheckMatList(Long checkId);
|
||||
|
||||
Integer deleteCheckMatListNew(Long checkId);
|
||||
}
|
||||
|
@ -146,4 +146,10 @@ public class StorageCheckMatServiceImpl implements StorageCheckMatService {
|
||||
|
||||
return storageCheckMatMapper.deleteByMap(columnMap);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Integer deleteCheckMatListNew(Long checkId) {
|
||||
//删除条件
|
||||
return storageCheckMatMapper.deleteCheckMatList(checkId);
|
||||
}
|
||||
}
|
||||
|
@ -86,8 +86,8 @@ public class StorageInventoryServiceImpl implements StorageInventoryService {
|
||||
return storageInventoryMapper.selectNoZero(queryReqVO);
|
||||
}else{
|
||||
// 筛选全部的实时库存数据,包含未分配仓库的物料信息和已分配仓库的物料信息
|
||||
if(queryReqVO.isALL()){
|
||||
return storageInventoryMapper.selectNowList(queryReqVO);
|
||||
if(queryReqVO.getSelectAll() == 1){
|
||||
return storageInventoryMapper.selectNowListAll(queryReqVO);
|
||||
}else{
|
||||
return storageInventoryMapper.selectNowList(queryReqVO);
|
||||
}
|
||||
|
@ -8,5 +8,7 @@
|
||||
代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
|
||||
文档可见:https://www.iocoder.cn/MyBatis/x-plugins/
|
||||
-->
|
||||
|
||||
</mapper>
|
||||
<delete id="deleteCheckMatList" parameterType="java.lang.Long" >
|
||||
delete from wms_storage_check_mat where check_id = #{checkId}
|
||||
</delete>
|
||||
</mapper>
|
||||
|
@ -54,44 +54,6 @@
|
||||
AND t.tenant_id = 2
|
||||
GROUP BY
|
||||
t.id
|
||||
|
||||
UNION ALL
|
||||
|
||||
-- 第二部分:查询不在库存中的物料
|
||||
SELECT
|
||||
mat.id as id,
|
||||
mat.id as material_id,
|
||||
mat.spec as boom_spec,
|
||||
mat.unit as boom_unit,
|
||||
mat.code AS mat_code,
|
||||
mat.name AS mat_name,
|
||||
(SELECT label FROM system_dict_data WHERE dict_type = 'heli_material_type' AND value = mat.material_type) AS mat_type,
|
||||
mat.spec AS mat_spec,
|
||||
(SELECT label FROM system_dict_data WHERE dict_type = 'heli_material_unit' AND value = mat.unit) AS mat_unit,
|
||||
mat.brand AS mat_brand,
|
||||
'' AS wh_id,
|
||||
'' AS wh_name,
|
||||
'' AS rg_id,
|
||||
'' AS rg_name,
|
||||
'' AS pn_id,
|
||||
'' AS pn_name,
|
||||
'' AS lot_no,
|
||||
0 AS price,
|
||||
mat.short_name as short_name,
|
||||
0 AS mat_rest,
|
||||
1 as exist
|
||||
FROM
|
||||
base_material AS mat
|
||||
WHERE
|
||||
mat.virtual_part = 'N'
|
||||
AND mat.status = 1
|
||||
AND NOT EXISTS (
|
||||
SELECT 1 FROM wms_storage_inventory ml
|
||||
WHERE ml.wh_id = #{whId}
|
||||
AND ml.material_id = mat.id
|
||||
AND ml.tenant_id = 2
|
||||
)
|
||||
AND mat.tenant_id = 2
|
||||
) gh
|
||||
<where>
|
||||
<if test="matCode != null and matCode != ''">
|
||||
@ -106,4 +68,104 @@
|
||||
</where>
|
||||
ORDER BY gh.mat_code
|
||||
</select>
|
||||
|
||||
<select id="selectNowListAll"
|
||||
parameterType="com.chanko.yunxi.mes.module.heli.controller.admin.storageinventory.vo.StorageInventoryPageReqVO"
|
||||
resultType="com.chanko.yunxi.mes.module.heli.dal.dataobject.storageinventory.StorageInventoryDO">
|
||||
SELECT DISTINCT *
|
||||
FROM (
|
||||
-- 第一部分:查询当前库存中的物料
|
||||
SELECT
|
||||
t.material_id as id,
|
||||
t.material_id as material_id,
|
||||
t.boom_spec as boom_spec,
|
||||
t.boom_unit as boom_unit,
|
||||
m.name AS mat_name,
|
||||
m.code AS mat_code,
|
||||
d.label AS mat_type,
|
||||
m.spec AS mat_spec,
|
||||
m.brand AS mat_band,
|
||||
d1.label AS mat_unit,
|
||||
t.wh_id as wh_id,
|
||||
t.rg_id as rg_id,
|
||||
t.pn_id as pn_id,
|
||||
w.wh_name AS wh_name,
|
||||
r.rg_name AS rg_name,
|
||||
p.pn_name AS pn_name,
|
||||
t.lot_no as lot_no,
|
||||
IFNULL(t.price, 0)as price,
|
||||
t.short_name as short_name,
|
||||
IFNULL(SUM(t.yard_amount), 0) AS mat_rest,
|
||||
0 as exist
|
||||
FROM
|
||||
wms_storage_inventory t
|
||||
LEFT JOIN base_material m ON m.id = t.material_id AND m.tenant_id = 2
|
||||
LEFT JOIN system_dict_data d ON d.value = m.material_type AND d.dict_type = 'heli_material_type'
|
||||
LEFT JOIN system_dict_data d1 ON d1.value = m.unit AND d1.dict_type = 'heli_material_unit'
|
||||
LEFT JOIN wms_wh w ON w.id = t.wh_id AND w.tenant_id = 2
|
||||
LEFT JOIN wms_rg r ON r.id = t.rg_id AND r.tenant_id = 2
|
||||
LEFT JOIN wms_pn p ON p.id = t.pn_id AND p.tenant_id = 2
|
||||
WHERE
|
||||
t.deleted = 0
|
||||
AND t.wh_id = #{whId}
|
||||
AND m.virtual_part = 'N'
|
||||
AND m.status = 1
|
||||
AND t.tenant_id = 2
|
||||
GROUP BY
|
||||
t.id
|
||||
|
||||
UNION ALL
|
||||
|
||||
-- 第二部分:查询不在库存中的物料
|
||||
SELECT
|
||||
mat.id as id,
|
||||
mat.id as material_id,
|
||||
mat.spec as boom_spec,
|
||||
mat.unit as boom_unit,
|
||||
mat.code AS mat_code,
|
||||
mat.name AS mat_name,
|
||||
(SELECT label FROM system_dict_data WHERE dict_type = 'heli_material_type' AND value = mat.material_type) AS mat_type,
|
||||
mat.spec AS mat_spec,
|
||||
(SELECT label FROM system_dict_data WHERE dict_type = 'heli_material_unit' AND value = mat.unit) AS mat_unit,
|
||||
mat.brand AS mat_brand,
|
||||
'' AS wh_id,
|
||||
'' AS wh_name,
|
||||
'' AS rg_id,
|
||||
'' AS rg_name,
|
||||
'' AS pn_id,
|
||||
'' AS pn_name,
|
||||
'' AS lot_no,
|
||||
0 AS price,
|
||||
mat.short_name as short_name,
|
||||
0 AS mat_rest,
|
||||
1 as exist
|
||||
FROM
|
||||
base_material AS mat
|
||||
WHERE
|
||||
mat.virtual_part = 'N'
|
||||
AND mat.status = 1
|
||||
AND NOT EXISTS (
|
||||
SELECT 1 FROM wms_storage_inventory ml
|
||||
WHERE ml.wh_id = #{whId}
|
||||
AND ml.material_id = mat.id
|
||||
AND ml.tenant_id = 2
|
||||
)
|
||||
AND mat.tenant_id = 2
|
||||
) gh
|
||||
<where>
|
||||
<if test="matCode != null and matCode != ''">
|
||||
AND (gh.mat_code LIKE CONCAT('%', #{matCode}, '%') OR gh.mat_name LIKE CONCAT('%', #{matCode}, '%'))
|
||||
</if>
|
||||
<if test="matType != null and matType != ''">
|
||||
AND gh.mat_type = #{matType}
|
||||
</if>
|
||||
<if test="matSpec != null and matSpec != ''">
|
||||
AND gh.mat_spec LIKE CONCAT('%', #{matSpec}, '%')
|
||||
</if>
|
||||
<if test="matSpec != null and matSpec != ''">
|
||||
AND gh.mat_spec LIKE CONCAT('%', #{matSpec}, '%')
|
||||
</if>
|
||||
</where>
|
||||
ORDER BY gh.mat_code
|
||||
</select>
|
||||
</mapper>
|
||||
|
@ -135,7 +135,7 @@
|
||||
<template #header> <span class="hl-table_header">*</span>盘点数量</template>
|
||||
<template #default="scope">
|
||||
<el-form-item :prop="`${scope.$index}.storageOkQty`" :rules="subFormRules.storageOkQty" class="mb-0px!">
|
||||
<el-input v-model="scope.row.storageOkQty" @change="(val)=>handleSub(val,scope)" :disabled="ctrView || ctrSave" />
|
||||
<el-input-number v-model="scope.row.storageOkQty" :min="0" @change="(val)=>handleSub(val,scope)" :disabled="ctrView || ctrSave"/>
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
@ -151,7 +151,7 @@
|
||||
<el-table-column prop="onemoney" label="单价" min-width="120" align="center">
|
||||
<template #default="scope">
|
||||
<el-form-item :prop="`${scope.$index}.onemoney`" class="mb-0px!" >
|
||||
<el-input v-model="scope.row.onemoney" :disabled="ctrView || ctrSave" />
|
||||
<el-input-number v-model="scope.row.onemoney" :min="0" :disabled="ctrView || ctrSave"/>
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
@ -733,7 +733,10 @@ const handleSub = async (pNum, scope) => {
|
||||
//-------------------库位全数据
|
||||
// scope.row.matSub = Number(pNum) - Number(scope.row.matRest)
|
||||
// console.log(typeof scope.row.matSub)
|
||||
if(scope.row.storageOkQty < 0){
|
||||
scope.row.storageOkQty = 0;
|
||||
|
||||
}
|
||||
const matSubValue = Number(pNum) - Number(scope.row.matRest)
|
||||
scope.row.matSub = matSubValue.toFixed(2) // 保留两位小数
|
||||
console.log(typeof scope.row.matSub)
|
||||
|
@ -94,7 +94,7 @@ const queryReqVo: any = reactive({
|
||||
matCode: undefined,
|
||||
matType: undefined,
|
||||
matSpec: undefined,
|
||||
isAll:false,
|
||||
selectAll: 0,
|
||||
})
|
||||
/** 搜索按钮操作 */
|
||||
const handleQuery = async () => {
|
||||
@ -125,7 +125,7 @@ const getList = async () => {
|
||||
}
|
||||
const overallList = async () => {
|
||||
// queryReqVo.pageSize = overallnum.value
|
||||
queryReqVo.isAll = true
|
||||
queryReqVo.selectAll = 1
|
||||
const data1 = await SotrageInventoryApi.getStorageNowList(queryReqVo)
|
||||
// queryReqVo.pageSize = 10
|
||||
handleSelectionChange(data1)
|
||||
@ -149,6 +149,7 @@ const open = async (noZero: number, whId?: number, isAll?: number) => {
|
||||
getList()
|
||||
chkboxEnable.value = isAll === 2 ? false : true
|
||||
if (isAll == 2) {
|
||||
queryReqVo.selectAll = 1
|
||||
getList()
|
||||
overallList()
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user