增加 盘点提交功能

master
wangh 8 months ago
parent 4a595afb9c
commit e7a8755ed0

@ -1,5 +1,6 @@
package com.ruoyi.api.controller;
import com.alibaba.fastjson.JSONObject;
import com.ruoyi.api.domain.InStoreDto;
import com.ruoyi.api.domain.OutStoreDto;
import com.ruoyi.api.domain.StockDto;
@ -8,11 +9,16 @@ import com.ruoyi.common.core.domain.AjaxResult;
import static com.ruoyi.common.core.domain.AjaxResult.*;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.manage.domain.BaseLocation;
import com.ruoyi.manage.domain.BaseManufacturer;
import com.ruoyi.manage.domain.RecordStoreCheck;
import com.ruoyi.manage.service.IBaseLocationService;
import com.ruoyi.manage.service.IBaseManufacturerService;
import com.ruoyi.manage.service.IRecordStoreCheckService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.unit.DataUnit;
import org.springframework.web.bind.annotation.*;
import java.util.HashMap;
@ -60,7 +66,7 @@ public class ApiController {
@PostMapping("/outStore/select")
public AjaxResult outStoreSelect(){
public AjaxResult outStoreSelect() {
BaseLocation baseLocation = new BaseLocation();
baseLocation.setStoteTag(2L);
baseLocation.setIsEnable("Y");
@ -69,24 +75,39 @@ public class ApiController {
}
@PostMapping("/outStore/submit")
public AjaxResult outStoreSubmit(@RequestBody OutStoreDto outStoreDto){
public AjaxResult outStoreSubmit(@RequestBody OutStoreDto outStoreDto) {
apiService.submitInsertRecordOut(outStoreDto);
apiService.updataLedger(outStoreDto);
return success();
}
@PostMapping("/storecheck/select")
public AjaxResult storeCheckSelect(){
List<StockDto> list=apiService.storeCheckSelect();
if (list==null||list.isEmpty()){
public AjaxResult storeCheckSelect() {
List<StockDto> list = apiService.storeCheckSelect();
if (list == null || list.isEmpty()) {
return error("库存为空");
}
return success(list);
}
@Autowired
private IRecordStoreCheckService checkService;
@Transactional
@PostMapping("/storecheck/submit")
public AjaxResult storeCheckSubmit(@RequestBody List<StockDto> list, @RequestParam("user") String user){
System.out.println(list.toString());
public AjaxResult storeCheckSubmit(String json , String user) {
try {
List<StockDto> list= JSONObject.parseArray(json,StockDto.class);
RecordStoreCheck recordStoreCheck = new RecordStoreCheck();
recordStoreCheck.setCheckNumber(list.size());
recordStoreCheck.setCheckTime(DateUtils.getNowDate());
recordStoreCheck.setCheckUser(user);
int key = checkService.insertRecordStoreCheck(recordStoreCheck);
apiService.insertCheckInfo(list,recordStoreCheck.getCheckId());
return success();
}catch (Exception e){
return error("数据异常,请求失败");
}
return success();
}
}

@ -23,4 +23,6 @@ public interface ApiMapper {
int updataLedger(@Param("outStoreDto") OutStoreDto outStoreDto);
List<StockDto> storeCheckSelect();
void insertCheckInfo(@Param("list") List<StockDto> list, @Param("id") Long checkId);
}

@ -37,4 +37,8 @@ public class ApiService {
public List<StockDto> storeCheckSelect() {
return mapper.storeCheckSelect();
}
public void insertCheckInfo(List<StockDto> list, Long checkId) {
mapper.insertCheckInfo(list,checkId);
}
}

@ -42,11 +42,19 @@
<select id="storeCheckSelect" resultType="com.ruoyi.api.domain.StockDto">
select row_number() over (order by location_code) as 'index',
rifd_code as epcCode,
location_code as locationCode,
'N' as state
rifd_code as epcCode,
location_code as locationCode,
'N' as state
from ledger_rfid
where location_type = 1
and is_scrap = 1
</select>
<insert id="insertCheckInfo">
INSERT INTO bg_wheel_chocks.record_store_check_info (check_id, epc_code, location_code, check_state)
VALUES
<foreach collection="list" item="item" separator=",">
(#{id}, #{item.epcCode},#{item.locationCode},#{item.state})
</foreach>
</insert>
</mapper>

@ -0,0 +1,127 @@
package com.ruoyi.manage.controller;
import java.util.List;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.manage.domain.RecordStoreCheckInfo;
import com.ruoyi.manage.service.IRecordStoreCheckInfoService;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.common.core.page.TableDataInfo;
/**
* Controller
*
* @author wangh
* @date 2024-01-22
*/
@Controller
@RequestMapping("/manage/check_info")
public class RecordStoreCheckInfoController extends BaseController
{
private String prefix = "manage/check_info";
@Autowired
private IRecordStoreCheckInfoService recordStoreCheckInfoService;
@RequiresPermissions("manage:check_info:view")
@GetMapping()
public String check_info()
{
return prefix + "/check_info";
}
/**
*
*/
@RequiresPermissions("manage:check_info:list")
@PostMapping("/list")
@ResponseBody
public TableDataInfo list(RecordStoreCheckInfo recordStoreCheckInfo)
{
startPage();
List<RecordStoreCheckInfo> list = recordStoreCheckInfoService.selectRecordStoreCheckInfoList(recordStoreCheckInfo);
return getDataTable(list);
}
/**
*
*/
@RequiresPermissions("manage:check_info:export")
@Log(title = "盘点数据记录", businessType = BusinessType.EXPORT)
@PostMapping("/export")
@ResponseBody
public AjaxResult export(RecordStoreCheckInfo recordStoreCheckInfo)
{
List<RecordStoreCheckInfo> list = recordStoreCheckInfoService.selectRecordStoreCheckInfoList(recordStoreCheckInfo);
ExcelUtil<RecordStoreCheckInfo> util = new ExcelUtil<RecordStoreCheckInfo>(RecordStoreCheckInfo.class);
return util.exportExcel(list, "盘点数据记录数据");
}
/**
*
*/
@GetMapping("/add")
public String add()
{
return prefix + "/add";
}
/**
*
*/
@RequiresPermissions("manage:check_info:add")
@Log(title = "盘点数据记录", businessType = BusinessType.INSERT)
@PostMapping("/add")
@ResponseBody
public AjaxResult addSave(RecordStoreCheckInfo recordStoreCheckInfo)
{
return toAjax(recordStoreCheckInfoService.insertRecordStoreCheckInfo(recordStoreCheckInfo));
}
/**
*
*/
@RequiresPermissions("manage:check_info:edit")
@GetMapping("/edit/{checkId}")
public String edit(@PathVariable("checkId") Long checkId, ModelMap mmap)
{
RecordStoreCheckInfo recordStoreCheckInfo = recordStoreCheckInfoService.selectRecordStoreCheckInfoByCheckId(checkId);
mmap.put("recordStoreCheckInfo", recordStoreCheckInfo);
return prefix + "/edit";
}
/**
*
*/
@RequiresPermissions("manage:check_info:edit")
@Log(title = "盘点数据记录", businessType = BusinessType.UPDATE)
@PostMapping("/edit")
@ResponseBody
public AjaxResult editSave(RecordStoreCheckInfo recordStoreCheckInfo)
{
return toAjax(recordStoreCheckInfoService.updateRecordStoreCheckInfo(recordStoreCheckInfo));
}
/**
*
*/
@RequiresPermissions("manage:check_info:remove")
@Log(title = "盘点数据记录", businessType = BusinessType.DELETE)
@PostMapping( "/remove")
@ResponseBody
public AjaxResult remove(String ids)
{
return toAjax(recordStoreCheckInfoService.deleteRecordStoreCheckInfoByCheckIds(ids));
}
}

@ -21,8 +21,8 @@ public class RecordStoreCheck extends BaseEntity
private Long checkId;
/** 盘点时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "盘点时间", width = 30, dateFormat = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "盘点时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date checkTime;
/** 盘点人 */
@ -31,7 +31,7 @@ public class RecordStoreCheck extends BaseEntity
/** 盘点条数 */
@Excel(name = "盘点条数")
private Long checkNumber;
private int checkNumber;
/** 盘点说明 */
@Excel(name = "盘点说明")
@ -64,12 +64,12 @@ public class RecordStoreCheck extends BaseEntity
{
return checkUser;
}
public void setCheckNumber(Long checkNumber)
public void setCheckNumber(int checkNumber)
{
this.checkNumber = checkNumber;
}
public Long getCheckNumber()
public int getCheckNumber()
{
return checkNumber;
}

@ -0,0 +1,80 @@
package com.ruoyi.manage.domain;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
/**
* record_store_check_info
*
* @author wangh
* @date 2024-01-22
*/
public class RecordStoreCheckInfo extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 外键 */
@Excel(name = "外键")
private Long checkId;
/** RFID */
@Excel(name = "RFID")
private String epcCode;
/** 库位码 */
@Excel(name = "库位码")
private String locationCode;
/** 是否扫描 */
@Excel(name = "是否扫描")
private String checkState;
public void setCheckId(Long checkId)
{
this.checkId = checkId;
}
public Long getCheckId()
{
return checkId;
}
public void setEpcCode(String epcCode)
{
this.epcCode = epcCode;
}
public String getEpcCode()
{
return epcCode;
}
public void setLocationCode(String locationCode)
{
this.locationCode = locationCode;
}
public String getLocationCode()
{
return locationCode;
}
public void setCheckState(String checkState)
{
this.checkState = checkState;
}
public String getCheckState()
{
return checkState;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("checkId", getCheckId())
.append("epcCode", getEpcCode())
.append("locationCode", getLocationCode())
.append("checkState", getCheckState())
.toString();
}
}

@ -0,0 +1,62 @@
package com.ruoyi.manage.mapper;
import java.util.List;
import com.ruoyi.manage.domain.RecordStoreCheckInfo;
import org.springframework.stereotype.Repository;
/**
* Mapper
*
* @author wangh
* @date 2024-01-22
*/
@Repository
public interface RecordStoreCheckInfoMapper
{
/**
*
*
* @param checkId
* @return
*/
public RecordStoreCheckInfo selectRecordStoreCheckInfoByCheckId(Long checkId);
/**
*
*
* @param recordStoreCheckInfo
* @return
*/
public List<RecordStoreCheckInfo> selectRecordStoreCheckInfoList(RecordStoreCheckInfo recordStoreCheckInfo);
/**
*
*
* @param recordStoreCheckInfo
* @return
*/
public int insertRecordStoreCheckInfo(RecordStoreCheckInfo recordStoreCheckInfo);
/**
*
*
* @param recordStoreCheckInfo
* @return
*/
public int updateRecordStoreCheckInfo(RecordStoreCheckInfo recordStoreCheckInfo);
/**
*
*
* @param checkId
* @return
*/
public int deleteRecordStoreCheckInfoByCheckId(Long checkId);
/**
*
*
* @param checkIds
* @return
*/
public int deleteRecordStoreCheckInfoByCheckIds(String[] checkIds);
}

@ -0,0 +1,61 @@
package com.ruoyi.manage.service;
import java.util.List;
import com.ruoyi.manage.domain.RecordStoreCheckInfo;
/**
* Service
*
* @author wangh
* @date 2024-01-22
*/
public interface IRecordStoreCheckInfoService
{
/**
*
*
* @param checkId
* @return
*/
public RecordStoreCheckInfo selectRecordStoreCheckInfoByCheckId(Long checkId);
/**
*
*
* @param recordStoreCheckInfo
* @return
*/
public List<RecordStoreCheckInfo> selectRecordStoreCheckInfoList(RecordStoreCheckInfo recordStoreCheckInfo);
/**
*
*
* @param recordStoreCheckInfo
* @return
*/
public int insertRecordStoreCheckInfo(RecordStoreCheckInfo recordStoreCheckInfo);
/**
*
*
* @param recordStoreCheckInfo
* @return
*/
public int updateRecordStoreCheckInfo(RecordStoreCheckInfo recordStoreCheckInfo);
/**
*
*
* @param checkIds
* @return
*/
public int deleteRecordStoreCheckInfoByCheckIds(String checkIds);
/**
*
*
* @param checkId
* @return
*/
public int deleteRecordStoreCheckInfoByCheckId(Long checkId);
}

@ -0,0 +1,107 @@
package com.ruoyi.manage.service.impl;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.manage.mapper.RecordStoreCheckInfoMapper;
import com.ruoyi.manage.domain.RecordStoreCheckInfo;
import com.ruoyi.manage.service.IRecordStoreCheckInfoService;
import com.ruoyi.common.core.text.Convert;
/**
* Service
*
* @author wangh
* @date 2024-01-22
*/
@Service
public class RecordStoreCheckInfoServiceImpl implements IRecordStoreCheckInfoService {
@Autowired
private RecordStoreCheckInfoMapper recordStoreCheckInfoMapper;
/**
*
*
* @param checkId
* @return
*/
@Override
public RecordStoreCheckInfo selectRecordStoreCheckInfoByCheckId(Long checkId) {
return recordStoreCheckInfoMapper.selectRecordStoreCheckInfoByCheckId(checkId);
}
/**
*
*
* @param recordStoreCheckInfo
* @return
*/
@Override
public List<RecordStoreCheckInfo> selectRecordStoreCheckInfoList(RecordStoreCheckInfo recordStoreCheckInfo) {
return recordStoreCheckInfoMapper.selectRecordStoreCheckInfoList(recordStoreCheckInfo);
}
/**
*
*
* @param recordStoreCheckInfo
* @return
*/
@Override
public int insertRecordStoreCheckInfo(RecordStoreCheckInfo recordStoreCheckInfo) {
return recordStoreCheckInfoMapper.insertRecordStoreCheckInfo(recordStoreCheckInfo);
}
/**
*
*
* @param recordStoreCheckInfo
* @return
*/
@Override
public int updateRecordStoreCheckInfo(RecordStoreCheckInfo recordStoreCheckInfo) {
return recordStoreCheckInfoMapper.updateRecordStoreCheckInfo(recordStoreCheckInfo);
}
/**
*
*
* @param checkIds
* @return
*/
@Override
public int deleteRecordStoreCheckInfoByCheckIds(String checkIds) {
return recordStoreCheckInfoMapper.deleteRecordStoreCheckInfoByCheckIds(Convert.toStrArray(checkIds));
}
/**
*
*
* @param checkId
* @return
*/
@Override
public int deleteRecordStoreCheckInfoByCheckId(Long checkId) {
return recordStoreCheckInfoMapper.deleteRecordStoreCheckInfoByCheckId(checkId);
}
}

@ -1,6 +1,6 @@
-- 菜单 SQL
insert into sys_menu (menu_name, parent_id, order_num, url, menu_type, visible, perms, icon, create_by, create_time, update_by, update_time, remark)
values('盘点记录', '2026', '1', '/manage/record_store_check', 'C', '0', 'manage:record_store_check:view', '#', 'admin', sysdate(), '', null, '盘点记录菜单');
values('盘点记录', '2026', '4', '/manage/record_store_check', 'C', '0', 'manage:record_store_check:view', '#', 'admin', sysdate(), '', null, '盘点记录菜单');
-- 按钮父菜单ID
SELECT @parentId := LAST_INSERT_ID();

@ -0,0 +1,70 @@
<?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="com.ruoyi.manage.mapper.RecordStoreCheckInfoMapper">
<resultMap type="RecordStoreCheckInfo" id="RecordStoreCheckInfoResult">
<result property="checkId" column="check_id" />
<result property="epcCode" column="epc_code" />
<result property="locationCode" column="location_code" />
<result property="checkState" column="check_state" />
</resultMap>
<sql id="selectRecordStoreCheckInfoVo">
select check_id, epc_code, location_code, check_state from record_store_check_info
</sql>
<select id="selectRecordStoreCheckInfoList" parameterType="RecordStoreCheckInfo" resultMap="RecordStoreCheckInfoResult">
<include refid="selectRecordStoreCheckInfoVo"/>
<where>
<if test="checkId != null "> and check_id = #{checkId}</if>
<if test="epcCode != null and epcCode != ''"> and epc_code = #{epcCode}</if>
<if test="locationCode != null and locationCode != ''"> and location_code = #{locationCode}</if>
<if test="checkState != null and checkState != ''"> and check_state = #{checkState}</if>
</where>
</select>
<select id="selectRecordStoreCheckInfoByCheckId" parameterType="Long" resultMap="RecordStoreCheckInfoResult">
<include refid="selectRecordStoreCheckInfoVo"/>
where check_id = #{checkId}
</select>
<insert id="insertRecordStoreCheckInfo" parameterType="RecordStoreCheckInfo">
insert into record_store_check_info
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="checkId != null">check_id,</if>
<if test="epcCode != null">epc_code,</if>
<if test="locationCode != null">location_code,</if>
<if test="checkState != null">check_state,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="checkId != null">#{checkId},</if>
<if test="epcCode != null">#{epcCode},</if>
<if test="locationCode != null">#{locationCode},</if>
<if test="checkState != null">#{checkState},</if>
</trim>
</insert>
<update id="updateRecordStoreCheckInfo" parameterType="RecordStoreCheckInfo">
update record_store_check_info
<trim prefix="SET" suffixOverrides=",">
<if test="epcCode != null">epc_code = #{epcCode},</if>
<if test="locationCode != null">location_code = #{locationCode},</if>
<if test="checkState != null">check_state = #{checkState},</if>
</trim>
where check_id = #{checkId}
</update>
<delete id="deleteRecordStoreCheckInfoByCheckId" parameterType="Long">
delete from record_store_check_info where check_id = #{checkId}
</delete>
<delete id="deleteRecordStoreCheckInfoByCheckIds" parameterType="String">
delete from record_store_check_info where check_id in
<foreach item="checkId" collection="array" open="(" separator="," close=")">
#{checkId}
</foreach>
</delete>
</mapper>

@ -18,8 +18,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="selectRecordStoreCheckList" parameterType="RecordStoreCheck" resultMap="RecordStoreCheckResult">
<include refid="selectRecordStoreCheckVo"/>
<where>
<if test="checkTime != null "> and check_time = #{checkTime}</if>
<where>
<if test="params.beginCheckTime != null and params.beginCheckTime != '' and params.endCheckTime != null and params.endCheckTime != ''"> and check_time between #{params.beginCheckTime} and #{params.endCheckTime}</if>
<if test="checkUser != null and checkUser != ''"> and check_user = #{checkUser}</if>
</where>
</select>

@ -0,0 +1,49 @@
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
<head>
<th:block th:include="include :: header('新增盘点数据记录')" />
</head>
<body class="white-bg">
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
<form class="form-horizontal m" id="form-check_info-add">
<div class="form-group">
<label class="col-sm-3 control-label">外键:</label>
<div class="col-sm-8">
<input name="checkId" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">RFID</label>
<div class="col-sm-8">
<input name="epcCode" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">库位码:</label>
<div class="col-sm-8">
<input name="locationCode" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">是否扫描:</label>
<div class="col-sm-8">
<input name="checkState" class="form-control" type="text">
</div>
</div>
</form>
</div>
<th:block th:include="include :: footer" />
<script th:inline="javascript">
var prefix = ctx + "manage/check_info"
$("#form-check_info-add").validate({
focusCleanup: true
});
function submitHandler() {
if ($.validate.form()) {
$.operate.save(prefix + "/add", $('#form-check_info-add').serialize());
}
}
</script>
</body>
</html>

@ -0,0 +1,105 @@
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
<head>
<th:block th:include="include :: header('盘点数据记录列表')" />
</head>
<body class="gray-bg">
<div class="container-div">
<div class="row">
<div class="col-sm-12 search-collapse">
<form id="formId">
<div class="select-list">
<ul>
<li>
<label>外键:</label>
<input type="text" name="checkId"/>
</li>
<li>
<label>RFID</label>
<input type="text" name="epcCode"/>
</li>
<li>
<label>库位码:</label>
<input type="text" name="locationCode"/>
</li>
<li>
<label>是否扫描:</label>
<input type="text" name="checkState"/>
</li>
<li>
<a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i>&nbsp;搜索</a>
<a class="btn btn-warning btn-rounded btn-sm" onclick="$.form.reset()"><i class="fa fa-refresh"></i>&nbsp;重置</a>
</li>
</ul>
</div>
</form>
</div>
<div class="btn-group-sm" id="toolbar" role="group">
<a class="btn btn-success" onclick="$.operate.add()" shiro:hasPermission="manage:check_info:add">
<i class="fa fa-plus"></i> 添加
</a>
<a class="btn btn-primary single disabled" onclick="$.operate.edit()" shiro:hasPermission="manage:check_info:edit">
<i class="fa fa-edit"></i> 修改
</a>
<a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()" shiro:hasPermission="manage:check_info:remove">
<i class="fa fa-remove"></i> 删除
</a>
<a class="btn btn-warning" onclick="$.table.exportExcel()" shiro:hasPermission="manage:check_info:export">
<i class="fa fa-download"></i> 导出
</a>
</div>
<div class="col-sm-12 select-table table-striped">
<table id="bootstrap-table"></table>
</div>
</div>
</div>
<th:block th:include="include :: footer" />
<script th:inline="javascript">
var editFlag = [[${@permission.hasPermi('manage:check_info:edit')}]];
var removeFlag = [[${@permission.hasPermi('manage:check_info:remove')}]];
var prefix = ctx + "manage/check_info";
$(function() {
var options = {
url: prefix + "/list",
createUrl: prefix + "/add",
updateUrl: prefix + "/edit/{id}",
removeUrl: prefix + "/remove",
exportUrl: prefix + "/export",
modalName: "盘点数据记录",
columns: [{
checkbox: true
},
{
field: 'checkId',
title: '外键'
},
{
field: 'epcCode',
title: 'RFID'
},
{
field: 'locationCode',
title: '库位码'
},
{
field: 'checkState',
title: '是否扫描'
},
{
title: '操作',
align: 'center',
formatter: function(value, row, index) {
var actions = [];
actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="$.operate.edit(\'' + row.checkId + '\')"><i class="fa fa-edit"></i>编辑</a> ');
actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.checkId + '\')"><i class="fa fa-remove"></i>删除</a>');
return actions.join('');
}
}]
};
$.table.init(options);
});
</script>
</body>
</html>

@ -0,0 +1,50 @@
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
<head>
<th:block th:include="include :: header('修改盘点数据记录')" />
</head>
<body class="white-bg">
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
<form class="form-horizontal m" id="form-check_info-edit" th:object="${recordStoreCheckInfo}">
<input name="checkId" th:field="*{checkId}" type="hidden">
<div class="form-group">
<label class="col-sm-3 control-label">外键:</label>
<div class="col-sm-8">
<input name="checkId" th:field="*{checkId}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">RFID</label>
<div class="col-sm-8">
<input name="epcCode" th:field="*{epcCode}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">库位码:</label>
<div class="col-sm-8">
<input name="locationCode" th:field="*{locationCode}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">是否扫描:</label>
<div class="col-sm-8">
<input name="checkState" th:field="*{checkState}" class="form-control" type="text">
</div>
</div>
</form>
</div>
<th:block th:include="include :: footer" />
<script th:inline="javascript">
var prefix = ctx + "manage/check_info";
$("#form-check_info-edit").validate({
focusCleanup: true
});
function submitHandler() {
if ($.validate.form()) {
$.operate.save(prefix + "/edit", $('#form-check_info-edit').serialize());
}
}
</script>
</body>
</html>

@ -8,31 +8,31 @@
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
<form class="form-horizontal m" id="form-record_store_check-edit" th:object="${recordStoreCheck}">
<input name="checkId" th:field="*{checkId}" type="hidden">
<div class="form-group">
<label class="col-sm-3 control-label">盘点时间:</label>
<div class="col-sm-8">
<div class="input-group date">
<input name="checkTime" th:value="${#dates.format(recordStoreCheck.checkTime, 'yyyy-MM-dd')}" class="form-control" placeholder="yyyy-MM-dd" type="text">
<span class="input-group-addon"><i class="fa fa-calendar"></i></span>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">盘点人:</label>
<div class="col-sm-8">
<input name="checkUser" th:field="*{checkUser}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">盘点条数:</label>
<div class="col-sm-8">
<input name="checkNumber" th:field="*{checkNumber}" class="form-control" type="text">
</div>
</div>
<!-- <div class="form-group"> -->
<!-- <label class="col-sm-3 control-label">盘点时间:</label>-->
<!-- <div class="col-sm-8">-->
<!-- <div class="input-group date">-->
<!-- <input name="checkTime" th:value="${#dates.format(recordStoreCheck.checkTime, 'yyyy-MM-dd')}" class="form-control" placeholder="yyyy-MM-dd" type="text">-->
<!-- <span class="input-group-addon"><i class="fa fa-calendar"></i></span>-->
<!-- </div>-->
<!-- </div>-->
<!-- </div>-->
<!-- <div class="form-group"> -->
<!-- <label class="col-sm-3 control-label">盘点人:</label>-->
<!-- <div class="col-sm-8">-->
<!-- <input name="checkUser" th:field="*{checkUser}" class="form-control" type="text">-->
<!-- </div>-->
<!-- </div>-->
<!-- <div class="form-group"> -->
<!-- <label class="col-sm-3 control-label">盘点条数:</label>-->
<!-- <div class="col-sm-8">-->
<!-- <input name="checkNumber" th:field="*{checkNumber}" class="form-control" type="text">-->
<!-- </div>-->
<!-- </div>-->
<div class="form-group">
<label class="col-sm-3 control-label">盘点说明:</label>
<div class="col-sm-8">
<input name="checkRemack" th:field="*{checkRemack}" class="form-control" type="text">
<textarea name="checkRemack" th:field="*{checkRemack}" class="form-control" type="text"></textarea>
</div>
</div>
</form>

@ -1,68 +1,81 @@
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
<head>
<th:block th:include="include :: header('盘点记录列表')" />
<th:block th:include="include :: header('盘点记录列表')"/>
</head>
<body class="gray-bg">
<div class="container-div">
<div class="row">
<div class="col-sm-12 search-collapse">
<form id="formId">
<div class="select-list">
<ul>
<li>
<label>盘点时间:</label>
<input type="text" class="time-input" placeholder="请选择盘点时间" name="checkTime"/>
</li>
<li>
<label>盘点人:</label>
<input type="text" name="checkUser"/>
</li>
<li>
<a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i>&nbsp;搜索</a>
<a class="btn btn-warning btn-rounded btn-sm" onclick="$.form.reset()"><i class="fa fa-refresh"></i>&nbsp;重置</a>
</li>
</ul>
</div>
</form>
</div>
<div class="container-div">
<div class="row">
<div class="col-sm-12 search-collapse">
<form id="formId">
<div class="select-list">
<ul>
<li class="select-time">
<label>盘点时间:</label>
<input type="text" class="time-input" id="startTime" placeholder="开始时间"
name="params[beginCheckTime]"/>
<span>-</span>
<input type="text" class="time-input" id="endTime" placeholder="结束时间"
name="params[endCheckTime]"/>
</li>
<li>
<label>盘点人:</label>
<input type="text" name="checkUser"/>
</li>
<li>
<a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i
class="fa fa-search"></i>&nbsp;搜索</a>
<a class="btn btn-warning btn-rounded btn-sm" onclick="$.form.reset()"><i
class="fa fa-refresh"></i>&nbsp;重置</a>
</li>
</ul>
</div>
</form>
</div>
<div class="btn-group-sm" id="toolbar" role="group">
<a class="btn btn-success" onclick="$.operate.add()" shiro:hasPermission="manage:record_store_check:add">
<i class="fa fa-plus"></i> 添加
</a>
<a class="btn btn-primary single disabled" onclick="$.operate.edit()" shiro:hasPermission="manage:record_store_check:edit">
<i class="fa fa-edit"></i> 修改
</a>
<a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()" shiro:hasPermission="manage:record_store_check:remove">
<i class="fa fa-remove"></i> 删除
</a>
<a class="btn btn-warning" onclick="$.table.exportExcel()" shiro:hasPermission="manage:record_store_check:export">
<i class="fa fa-download"></i> 导出
</a>
</div>
<div class="col-sm-12 select-table table-striped">
<table id="bootstrap-table"></table>
</div>
<div class="btn-group-sm" id="toolbar" role="group">
<!-- <a class="btn btn-success" onclick="$.operate.add()" shiro:hasPermission="manage:record_store_check:add">-->
<!-- <i class="fa fa-plus"></i> 添加-->
<!-- </a>-->
<a class="btn btn-primary single disabled" onclick="$.operate.edit()"
shiro:hasPermission="manage:record_store_check:edit">
<i class="fa fa-edit"></i> 增加盘点说明
</a>
<a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()"
shiro:hasPermission="manage:record_store_check:remove">
<i class="fa fa-remove"></i> 删除
</a>
<!-- <a class="btn btn-warning" onclick="$.table.exportExcel()"-->
<!-- shiro:hasPermission="manage:record_store_check:export">-->
<!-- <i class="fa fa-download"></i> 导出-->
<!-- </a>-->
</div>
<div class="col-sm-12 select-table table-striped">
<table id="bootstrap-table"></table>
</div>
</div>
<th:block th:include="include :: footer" />
<script th:inline="javascript">
var editFlag = [[${@permission.hasPermi('manage:record_store_check:edit')}]];
var removeFlag = [[${@permission.hasPermi('manage:record_store_check:remove')}]];
var prefix = ctx + "manage/record_store_check";
</div>
<th:block th:include="include :: footer"/>
<script th:inline="javascript">
var editFlag = [[${@permission.hasPermi('manage:record_store_check:edit')}]];
var removeFlag = [[${@permission.hasPermi('manage:record_store_check:remove')}]];
var prefix = ctx + "manage/record_store_check";
$(function() {
var options = {
url: prefix + "/list",
createUrl: prefix + "/add",
updateUrl: prefix + "/edit/{id}",
removeUrl: prefix + "/remove",
exportUrl: prefix + "/export",
modalName: "盘点记录",
columns: [{
checkbox: true
},
$(function () {
var options = {
url: prefix + "/list",
createUrl: prefix + "/add",
updateUrl: prefix + "/edit/{id}",
removeUrl: prefix + "/remove",
exportUrl: prefix + "/export",
modalName: "盘点记录",
detailView: true,
onExpandRow: function (index, row, $detail) {
initChildTable(index, row, $detail);
},
columns: [{
checkbox: true
},
{
field: 'checkId',
title: '主键',
@ -84,19 +97,56 @@
field: 'checkRemack',
title: '盘点说明'
},
/* {
title: '操作',
align: 'center',
formatter: function(value, row, index) {
var actions = [];
actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="$.operate.edit(\'' + row.checkId + '\')"><i class="fa fa-edit"></i>编辑</a> ');
actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.checkId + '\')"><i class="fa fa-remove"></i>删除</a>');
return actions.join('');
}
}*/]
};
$.table.init(options);
});
var checkStateDatas = [[${@dict.getType('sys_yes_no')}]];
initChildTable = function (index, row, $detail) {
var childTable = $detail.html('<table style="table-layout:fixed"></table>').find('table');
$(childTable).bootstrapTable({
url: ctx + "manage/check_info/list",
method: 'post',
sidePagination: "server",
contentType: "application/x-www-form-urlencoded",
queryParams: {
checkId: row.checkId
},
columns: [
{
title: '序号',
formatter: function (value, row, index) {
return index+1
}
},
{
field: 'epcCode',
title: 'RFID'
},
{
field: 'locationCode',
title: '库位码'
},
{
title: '操作',
align: 'center',
formatter: function(value, row, index) {
var actions = [];
actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="$.operate.edit(\'' + row.checkId + '\')"><i class="fa fa-edit"></i>编辑</a> ');
actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.checkId + '\')"><i class="fa fa-remove"></i>删除</a>');
return actions.join('');
field: 'checkState',
title: '是否扫描',
formatter: function (value, row, index) {
return $.table.selectDictLabel(checkStateDatas, value);
}
}]
};
$.table.init(options);
});
</script>
};
</script>
</body>
</html>
Loading…
Cancel
Save