rev:设备管理功能优化

This commit is contained in:
zhangzhiqiang
2023-10-25 10:19:07 +08:00
parent afdb19dc70
commit c0cb6541b4
15 changed files with 270 additions and 17 deletions

View File

@@ -0,0 +1,20 @@
package org.nl.wms.analysis_manage.workmaterial.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 在制品物料报表 前端控制器
* </p>
*
* @author generator
* @since 2023-10-24
*/
@RestController
@RequestMapping("/pdmBiWorkmaterial")
public class PdmBiWorkmaterialController {
}

View File

@@ -0,0 +1,16 @@
package org.nl.wms.analysis_manage.workmaterial.service;
import org.nl.wms.analysis_manage.workmaterial.service.dao.PdmBiWorkmaterial;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* <p>
* 在制品物料报表 服务类
* </p>
*
* @author generator
* @since 2023-10-24
*/
public interface IPdmBiWorkmaterialService extends IService<PdmBiWorkmaterial> {
}

View File

@@ -0,0 +1,63 @@
package org.nl.wms.analysis_manage.workmaterial.service.dao;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
* 在制品物料报表
* </p>
*
* @author generator
* @since 2023-10-24
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("pdm_bi_workmaterial")
public class PdmBiWorkmaterial implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
* 车间
*/
private String product_area;
/**
* 物料id
*/
private String material_id;
/**
* 工序id
*/
private String workprocedure_id;
/**
* 数量
*/
private BigDecimal qty;
/**
* 单位
*/
private String qty_unit_id;
/**
* 创建时间
*/
private String create_time;
}

View File

@@ -0,0 +1,16 @@
package org.nl.wms.analysis_manage.workmaterial.service.dao.mapper;
import org.nl.wms.analysis_manage.workmaterial.service.dao.PdmBiWorkmaterial;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* 在制品物料报表 Mapper 接口
* </p>
*
* @author generator
* @since 2023-10-24
*/
public interface PdmBiWorkmaterialMapper extends BaseMapper<PdmBiWorkmaterial> {
}

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.nl.wms.analysis_manage.workmaterial.service.dao.mapper.PdmBiWorkmaterialMapper">
</mapper>

View File

@@ -0,0 +1,20 @@
package org.nl.wms.analysis_manage.workmaterial.service.impl;
import org.nl.wms.analysis_manage.workmaterial.service.dao.PdmBiWorkmaterial;
import org.nl.wms.analysis_manage.workmaterial.service.dao.mapper.PdmBiWorkmaterialMapper;
import org.nl.wms.analysis_manage.workmaterial.service.IPdmBiWorkmaterialService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
* <p>
* 在制品物料报表 服务实现类
* </p>
*
* @author generator
* @since 2023-10-24
*/
@Service
public class PdmBiWorkmaterialServiceImpl extends ServiceImpl<PdmBiWorkmaterialMapper, PdmBiWorkmaterial> implements IPdmBiWorkmaterialService {
}

View File

@@ -81,12 +81,12 @@ public class StIvtStructivtDaily implements Serializable {
/**
* 物料标识
* 物料编码
*/
private String material_code;
/**
* 物料标识
* 物料规格
*/
private String material_spec;

View File

@@ -8,6 +8,7 @@ import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.nl.modules.common.exception.BadRequestException;
import org.nl.wms.masterdata_manage.storage.service.dailyStructivt.IStIvtStructivtDailyService;
@@ -35,11 +36,13 @@ import java.util.stream.Collectors;
* @since 2023-09-18
*/
@Service
@Slf4j
public class StIvtStructivtDailyServiceImpl extends ServiceImpl<StIvtStructivtDailyMapper, StIvtStructivtDaily> implements IStIvtStructivtDailyService {
@Override
@Transactional
public void dailyStructivt(String... structivts) {
log.info("统计日库存——————————开始");
if (structivts==null || structivts.length == 0){
return;
}
@@ -93,4 +96,8 @@ public class StIvtStructivtDailyServiceImpl extends ServiceImpl<StIvtStructivtDa
this.saveBatch(list);
}
}
public void run(){
this.dailyStructivt("st_ivt_structivt_bcp", "st_ivt_structivt_cp", "st_ivt_structivt_yl");
}
}

View File

@@ -139,7 +139,7 @@
<where>
ivt.canuse_qty > 0
AND
sa.lock_type = '0'
sa.lock_type = '0' AND sa.sect_id <![CDATA[ <> ]]> '1707219721935523840'
<if test="query.material_search != null and query.material_search != ''">
and (mb.material_code = #{query.material_search} OR mb.material_name = #{query.material_search})
</if>

View File

@@ -10,6 +10,7 @@ import org.nl.common.anno.Log;
import org.nl.common.domain.query.PageQuery;
import org.nl.common.utils.ListOf;
import org.nl.common.utils.MapOf;
import org.nl.wms.storage_manage.IOSEnum;
import org.nl.wms.storage_manage.basedata.service.record.dto.StIvtStructivtflowVo;
import org.nl.wms.storage_manage.productmanage.service.structIvt.dto.CpIvtQuery;
import org.nl.wms.storage_manage.rawmanage.service.structIvt.dto.StructIvtYLQuery;
@@ -57,6 +58,7 @@ public class StIvtStructivtBcpController {
query.setPage(0);
StructIvtBcpQuery bcpQuery = new StructIvtBcpQuery();
bcpQuery.setIs_lock("0");
bcpQuery.setSect_id(IOSEnum.SECT_CODE.code("半成品库区"));
return new ResponseEntity<>(bcpService.packageQuery(bcpQuery,query), HttpStatus.OK);
}

View File

@@ -141,6 +141,7 @@
attr.struct_name,
attr.sect_code,
attr.sect_name,
attr.sect_id,
attr.stor_name,
attr.storagevehicle_code,
vehicle.vehicle_weight,
@@ -167,6 +168,9 @@
and attr.struct_code LIKE #{query.struct_code} or
(attr.struct_name LIKE #{query.struct_code})
</if>
<if test="query.sect_id!= null and query.sect_id != ''">
and attr.sect_id = #{query.sect_id}
</if>
<if test="query.start_time!= null and query.start_time != ''">
and ivt.instorage_time &gt;= #{query.start_time}
</if>
@@ -200,7 +204,7 @@
LEFT JOIN st_ivt_structattr attr ON attr.struct_id = ivt.struct_id
LEFT JOIN md_pb_measureunit unit ON unit.measure_unit_id = ivt.qty_unit_id
<where>
attr.lock_type = '0'
attr.lock_type = '0' AND attr.sect_id <![CDATA[ <> ]]> '1707219721935523840'
<if test="material_code!= null and material_code != ''">
and mater.material_code LIKE '%${material_code}%' or
(mater.material_name LIKE '%${material_code}%') or

View File

@@ -0,0 +1,55 @@
-- 保养人与设备档案维护
INSERT INTO `sys_menu`(`menu_id`, `pid`, `sub_count`, `type`, `title`, `component_name`, `component`, `menu_sort`, `icon`, `path`, `iframe`, `cache`, `hidden`, `permission`, `create_name`, `update_name`, `create_time`, `update_time`, `is_pc`, `system_type`, `create_id`, `category`, `update_id`) VALUES ('1716277962292203520', '1698506633375780864', 0, 3, '保养人与设备档案维护', NULL, 'wms/masterdata_manage/em/upkeeppersondevice/index', 999, 'source', 'Upkeeppersondevice', 0, b'1', b'0', NULL, NULL, NULL, NULL, NULL, 1, '1', 1, NULL, NULL);
-- 点检人与设备档案维护
INSERT INTO `sys_menu`(`menu_id`, `pid`, `sub_count`, `type`, `title`, `component_name`, `component`, `menu_sort`, `icon`, `path`, `iframe`, `cache`, `hidden`, `permission`, `create_name`, `update_name`, `create_time`, `update_time`, `is_pc`, `system_type`, `create_id`, `category`, `update_id`) VALUES ('1716282485769375744', '1698506633375780864', 0, 3, '点检人与设备档案维护', NULL, 'wms/masterdata_manage/em/sportpersondevice/index', 999, 'source', 'Sportpersondevice', 0, b'1', b'0', NULL, NULL, NULL, NULL, NULL, 1, '1', 1, NULL, NULL);
-- 润滑人与设备档案维护
INSERT INTO `sys_menu`(`menu_id`, `pid`, `sub_count`, `type`, `title`, `component_name`, `component`, `menu_sort`, `icon`, `path`, `iframe`, `cache`, `hidden`, `permission`, `create_name`, `update_name`, `create_time`, `update_time`, `is_pc`, `system_type`, `create_id`, `category`, `update_id`) VALUES ('1716285546982150144', '1698506633375780864', 0, 3, '润滑人与设备档案维护', NULL, 'wms/masterdata_manage/em/lubripersondevice/index', 999, 'source', 'Lubripersondevice', 0, b'1', b'0', NULL, NULL, NULL, NULL, NULL, 1, '1', 1, NULL, NULL);
-- 保养人对应设备档案维护
CREATE TABLE `em_bi_repairpersondeviceupkeep` (
`user_id` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '人员',
`device_code` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '设备编码',
`person_id` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '标识',
PRIMARY KEY (`person_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
-- 点检人对应设备档案维护
CREATE TABLE `em_bi_repairpersondevicesport` (
`user_id` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '人员',
`device_code` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '设备编码',
`person_id` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '标识',
PRIMARY KEY (`person_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
-- 润滑人对应设备档案维护
CREATE TABLE `em_bi_repairpersondevicelubri` (
`user_id` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '人员',
`device_code` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '设备编码',
`person_id` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '标识',
PRIMARY KEY (`person_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
alter table EM_BI_DeviceFaultClass add COLUMN faultclass_type_id bigint(19) not NULL COMMENT '故障分类标识';
INSERT INTO `md_pb_classstandard`(`class_id`, `class_code`, `long_class_code`, `class_name`, `class_desc`, `parent_class_id`, `sub_count`, `is_leaf`, `is_modify`, `class_level`, `ext_id`, `ext_parent_id`, `create_id`, `create_name`, `create_time`, `update_id`, `update_name`, `update_time`, `is_delete`) VALUES ('3', '10', '10', '故障分类', NULL, '0', 2, 0, 1, '1.0', NULL, NULL, '1694303357524643840', '管理员', '2023-10-20 13:19:06', NULL, NULL, NULL, 0);
-- 统计报表(目录)
INSERT INTO `sys_menu`(`menu_id`, `pid`, `sub_count`, `type`, `title`, `component_name`, `component`, `menu_sort`, `icon`, `path`, `iframe`, `cache`, `hidden`, `permission`, `create_name`, `update_name`, `create_time`, `update_time`, `is_pc`, `system_type`, `create_id`, `category`, `update_id`) VALUES ('1710540335240843264', '1324783485328', 3, 2, '统计报表', NULL, NULL, 999, 'chart', 'Stata', 0, b'0', b'0', NULL, NULL, NULL, NULL, NULL, 1, '1', 1, NULL, NULL);
-- 历史库存分析
INSERT INTO `sys_menu`(`menu_id`, `pid`, `sub_count`, `type`, `title`, `component_name`, `component`, `menu_sort`, `icon`, `path`, `iframe`, `cache`, `hidden`, `permission`, `create_name`, `update_name`, `create_time`, `update_time`, `is_pc`, `system_type`, `create_id`, `category`, `update_id`) VALUES ('1710540526962479104', '1710540335240843264', 0, 3, '历史库存分析', NULL, 'wms/stata_manage/historyivt/index', 1, 'chart', 'Historyivt', 0, b'1', b'0', NULL, NULL, NULL, NULL, NULL, 1, '1', 1, NULL, NULL);
-- 实时库存分析
INSERT INTO `sys_menu`(`menu_id`, `pid`, `sub_count`, `type`, `title`, `component_name`, `component`, `menu_sort`, `icon`, `path`, `iframe`, `cache`, `hidden`, `permission`, `create_name`, `update_name`, `create_time`, `update_time`, `is_pc`, `system_type`, `create_id`, `category`, `update_id`) VALUES ('1710893956692316160', '1710540335240843264', 0, 3, '实时库存分析', NULL, 'wms/stata_manage/realtimeivt/index', 2, 'chart', 'RealTimeIvt', 0, b'1', b'0', NULL, NULL, NULL, NULL, NULL, 1, '1', 1, NULL, NULL);
-- 收发存查询
INSERT INTO `sys_menu`(`menu_id`, `pid`, `sub_count`, `type`, `title`, `component_name`, `component`, `menu_sort`, `icon`, `path`, `iframe`, `cache`, `hidden`, `permission`, `create_name`, `update_name`, `create_time`, `update_time`, `is_pc`, `system_type`, `create_id`, `category`, `update_id`) VALUES ('1711264297872658432', '1710540335240843264', 0, 3, '收发存查询', NULL, 'wms/stata_manage/phyivt/index', 3, 'chart', 'Phyivt', 0, b'1', b'0', NULL, NULL, NULL, NULL, NULL, 1, '1', 1, NULL, NULL);
alter table st_ivt_structivt_bcp drop primary key;
-- 半成品虚拟库区
INSERT INTO `st_ivt_sectattr`(`sect_id`, `sect_code`, `sect_name`, `product_area`, `simple_name`, `sect_type_attr`, `stor_id`, `stor_name`, `stor_code`, `stor_type`, `capacity`, `width`, `height`, `zdepth`, `xqty`, `yqty`, `zqty`, `sect_manager_name`, `mobile_no`, `remark`, `create_id`, `create_name`, `update_id`, `create_time`, `update_name`, `update_time`, `is_delete`, `back_ground_color`, `front_ground_color`, `back_ground_pic`, `font_direction_scode`, `floor_no`, `is_used`, `ext_id`) VALUES ('1707219721935523840', 'KQ007', '半成品虚拟库区', 'A1', '半成品虚拟库区', '09', '15286279952695336962', '紫铜半成品仓库', 'F101', NULL, 100000, NULL, NULL, NULL, NULL, NULL, NULL, '车间操作工', NULL, NULL, '1694303357524643840', '管理员', '1694303357524643840', '2023-09-28 10:24:34.978', '管理员', '2023-09-28 10:24:43.408', '0', NULL, NULL, NULL, NULL, NULL, '1', NULL);

View File

@@ -162,6 +162,9 @@ export default {
methods: {
open() {
this.query.material_type_id = this.openParam.material_type_id
this.crud.query.class_idStr = this.class_idStr
this.queryClassId()
this.queryClassId2()
this.crud.toQuery()
},
clickChange(item) {
@@ -216,17 +219,10 @@ export default {
}
},
queryClassId() {
const param = {
'class_idStr': '2'
}
crudClassstandard.queryClassById(param).then(res => {
this.classes = res.content.map(obj => {
if (obj.hasChildren) {
obj.children = null
}
return obj
})
})
const data = {}
data.id = this.openParam.material_type_id
data.parent_id = '2'
this.getSubTypes(data)
},
queryClassId2() {
const param = {

View File

@@ -18,7 +18,7 @@
size="mini"
placeholder="所属仓库"
class="filter-item"
@change="crud.toQuery"
@change="changeSect(query.stor_id)"
>
<el-option
v-for="item in storlist"
@@ -29,6 +29,24 @@
</el-select>
</el-form-item>
<el-form-item label="所属库区">
<el-select
v-model="query.sect_id"
clearable
size="mini"
placeholder="所属库区"
class="filter-item"
@change="crud.toQuery"
>
<el-option
v-for="item in sectlist"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="入库日期">
<el-date-picker
v-model="query.createTime"
@@ -131,6 +149,7 @@ import udOperation from '@crud/UD.operation'
import pagination from '@crud/Pagination'
import DateRangePicker from '@/components/DateRangePicker/index'
import crudStorattr, { getStor } from '@/views/wms/storage_manage/basedata/basedata'
import crudSectattr from '@/api/wms/basedata/st/sectattr'
import semiproductivt from '@/views/wms/storage_manage/semiproduct/semiproductIvt/semiproductivt'
export default {
@@ -153,6 +172,7 @@ export default {
height: document.documentElement.clientHeight - 180 + 'px;',
permission: {},
storlist: [],
sectlist: [],
storId: null
}
},
@@ -167,12 +187,18 @@ export default {
this.storlist = res.content
})
},
methods: {
downloadMethod() {
semiproductivt.exportFile(this.query).then(res => {
this.crud.notify('导出成功', CRUD.NOTIFICATION_TYPE.SUCCESS)
})
},
changeSect(){
crudSectattr.getSect({ 'stor_id': this.query.stor_id }).then(res => {
this.sectlist = res.content[0].children
})
},
formatBillType(row, column) {
return this.dict.label.ST_INV_BCP_IN_TYPE[row.bill_type]
}

View File

@@ -19,6 +19,24 @@
label-width="80px"
label-suffix=":"
>
<el-form-item label="库区">
<el-select
v-model="query.sect_id"
clearable
size="mini"
placeholder="所属库区"
class="filter-item"
@keyup.enter.native="crud.toQuery"
>
<el-option
v-for="item in sectlist"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="货位">
<el-input
v-model="query.struct_search"
@@ -84,6 +102,8 @@ import rrOperation from '@crud/RR.operation'
import crudOperation from '@crud/CRUD.operation'
import pagination from '@crud/Pagination'
import DateRangePicker from '@/components/DateRangePicker/index'
import crudSectattr from '@/api/wms/basedata/st/sectattr'
const start = new Date()
export default {
@@ -110,6 +130,7 @@ export default {
return {
dialogVisible: false,
rows: [],
sectlist: [],
tableData: []
}
},
@@ -137,7 +158,9 @@ export default {
}
},
open() {
this.crud.toQuery()
crudSectattr.getSect({ 'stor_id': '15286279952695336962' }).then(res => {
this.sectlist = res.content[0].children
})
},
close() {
this.$emit('update:dialogShow', false)