add - 放卷记录、读取记录

master
wenjy 2 years ago
parent d60e885aa9
commit 8b4208c079

@ -199,6 +199,12 @@
<version>${ruoyi.version}</version>
</dependency>
<dependency>
<groupId>com.ruoyi</groupId>
<artifactId>ruoyi-traceability</artifactId>
<version>${ruoyi.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
@ -209,6 +215,7 @@
<module>ruoyi-quartz</module>
<module>ruoyi-generator</module>
<module>ruoyi-common</module>
<module>ruoyi-traceability</module>
</modules>
<packaging>pom</packaging>

@ -67,6 +67,11 @@
<artifactId>ruoyi-generator</artifactId>
</dependency>
<dependency>
<groupId>com.ruoyi</groupId>
<artifactId>ruoyi-traceability</artifactId>
</dependency>
</dependencies>
<build>

@ -16,7 +16,7 @@ ruoyi:
# 开发环境配置
server:
# 服务器的HTTP端口默认为80
port: 8011
port: 6088
servlet:
# 应用的访问路径
context-path: /

@ -0,0 +1,31 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>ruoyi</artifactId>
<groupId>com.ruoyi</groupId>
<version>4.7.5</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>ruoyi-traceability</artifactId>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>com.ruoyi</groupId>
<artifactId>ruoyi-common</artifactId>
</dependency>
<dependency>
<groupId>com.ruoyi</groupId>
<artifactId>ruoyi-framework</artifactId>
</dependency>
</dependencies>
</project>

@ -0,0 +1,127 @@
package com.ruoyi.traceability.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.traceability.domain.ProReadrecord;
import com.ruoyi.traceability.service.IProReadrecordService;
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 wenjy
* @date 2022-11-09
*/
@Controller
@RequestMapping("/traceability/readRecord")
public class ProReadrecordController extends BaseController
{
private String prefix = "traceability/readRecord";
@Autowired
private IProReadrecordService proReadrecordService;
@RequiresPermissions("traceability:readRecord:view")
@GetMapping()
public String readRecord()
{
return prefix + "/readRecord";
}
/**
*
*/
@RequiresPermissions("traceability:readRecord:list")
@PostMapping("/list")
@ResponseBody
public TableDataInfo list(ProReadrecord proReadrecord)
{
startPage();
List<ProReadrecord> list = proReadrecordService.selectProReadrecordList(proReadrecord);
return getDataTable(list);
}
/**
*
*/
@RequiresPermissions("traceability:readRecord:export")
@Log(title = "读取记录", businessType = BusinessType.EXPORT)
@PostMapping("/export")
@ResponseBody
public AjaxResult export(ProReadrecord proReadrecord)
{
List<ProReadrecord> list = proReadrecordService.selectProReadrecordList(proReadrecord);
ExcelUtil<ProReadrecord> util = new ExcelUtil<ProReadrecord>(ProReadrecord.class);
return util.exportExcel(list, "读取记录数据");
}
/**
*
*/
@GetMapping("/add")
public String add()
{
return prefix + "/add";
}
/**
*
*/
@RequiresPermissions("traceability:readRecord:add")
@Log(title = "读取记录", businessType = BusinessType.INSERT)
@PostMapping("/add")
@ResponseBody
public AjaxResult addSave(ProReadrecord proReadrecord)
{
return toAjax(proReadrecordService.insertProReadrecord(proReadrecord));
}
/**
*
*/
@RequiresPermissions("traceability:readRecord:edit")
@GetMapping("/edit/{id}")
public String edit(@PathVariable("id") Long id, ModelMap mmap)
{
ProReadrecord proReadrecord = proReadrecordService.selectProReadrecordById(id);
mmap.put("proReadrecord", proReadrecord);
return prefix + "/edit";
}
/**
*
*/
@RequiresPermissions("traceability:readRecord:edit")
@Log(title = "读取记录", businessType = BusinessType.UPDATE)
@PostMapping("/edit")
@ResponseBody
public AjaxResult editSave(ProReadrecord proReadrecord)
{
return toAjax(proReadrecordService.updateProReadrecord(proReadrecord));
}
/**
*
*/
@RequiresPermissions("traceability:readRecord:remove")
@Log(title = "读取记录", businessType = BusinessType.DELETE)
@PostMapping( "/remove")
@ResponseBody
public AjaxResult remove(String ids)
{
return toAjax(proReadrecordService.deleteProReadrecordByIds(ids));
}
}

@ -0,0 +1,127 @@
package com.ruoyi.traceability.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.traceability.domain.ProUprecord;
import com.ruoyi.traceability.service.IProUprecordService;
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 wenjy
* @date 2022-11-09
*/
@Controller
@RequestMapping("/traceability/upRecord")
public class ProUprecordController extends BaseController
{
private String prefix = "traceability/upRecord";
@Autowired
private IProUprecordService proUprecordService;
@RequiresPermissions("traceability:upRecord:view")
@GetMapping()
public String upRecord()
{
return prefix + "/upRecord";
}
/**
*
*/
@RequiresPermissions("traceability:upRecord:list")
@PostMapping("/list")
@ResponseBody
public TableDataInfo list(ProUprecord proUprecord)
{
startPage();
List<ProUprecord> list = proUprecordService.selectProUprecordList(proUprecord);
return getDataTable(list);
}
/**
*
*/
@RequiresPermissions("traceability:upRecord:export")
@Log(title = "上料记录", businessType = BusinessType.EXPORT)
@PostMapping("/export")
@ResponseBody
public AjaxResult export(ProUprecord proUprecord)
{
List<ProUprecord> list = proUprecordService.selectProUprecordList(proUprecord);
ExcelUtil<ProUprecord> util = new ExcelUtil<ProUprecord>(ProUprecord.class);
return util.exportExcel(list, "上料记录数据");
}
/**
*
*/
@GetMapping("/add")
public String add()
{
return prefix + "/add";
}
/**
*
*/
@RequiresPermissions("traceability:upRecord:add")
@Log(title = "上料记录", businessType = BusinessType.INSERT)
@PostMapping("/add")
@ResponseBody
public AjaxResult addSave(ProUprecord proUprecord)
{
return toAjax(proUprecordService.insertProUprecord(proUprecord));
}
/**
*
*/
@RequiresPermissions("traceability:upRecord:edit")
@GetMapping("/edit/{id}")
public String edit(@PathVariable("id") Long id, ModelMap mmap)
{
ProUprecord proUprecord = proUprecordService.selectProUprecordById(id);
mmap.put("proUprecord", proUprecord);
return prefix + "/edit";
}
/**
*
*/
@RequiresPermissions("traceability:upRecord:edit")
@Log(title = "上料记录", businessType = BusinessType.UPDATE)
@PostMapping("/edit")
@ResponseBody
public AjaxResult editSave(ProUprecord proUprecord)
{
return toAjax(proUprecordService.updateProUprecord(proUprecord));
}
/**
*
*/
@RequiresPermissions("traceability:upRecord:remove")
@Log(title = "上料记录", businessType = BusinessType.DELETE)
@PostMapping( "/remove")
@ResponseBody
public AjaxResult remove(String ids)
{
return toAjax(proUprecordService.deleteProUprecordByIds(ids));
}
}

@ -0,0 +1,149 @@
package com.ruoyi.traceability.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;
/**
* pro_readrecord
*
* @author wenjy
* @date 2022-11-09
*/
public class ProReadrecord extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 主键标识 */
private Long id;
/** 机台编号 */
@Excel(name = "机台编号")
private Long machineId;
/** 资源号 */
@Excel(name = "资源号")
private String resource;
/** 设备编号 */
@Excel(name = "设备编号")
private Long equipId;
/** 位置编号 */
@Excel(name = "位置编号")
private Long positionId;
/** 天线编号 */
@Excel(name = "天线编号")
private Long ant;
/** RFID条码 */
@Excel(name = "RFID条码")
private String rfidStr;
/** 是否成功 */
@Excel(name = "是否成功")
private Long isSuccess;
/** 读取时间 */
@Excel(name = "读取时间")
private String readTime;
public void setId(Long id)
{
this.id = id;
}
public Long getId()
{
return id;
}
public void setMachineId(Long machineId)
{
this.machineId = machineId;
}
public Long getMachineId()
{
return machineId;
}
public void setResource(String resource)
{
this.resource = resource;
}
public String getResource()
{
return resource;
}
public void setEquipId(Long equipId)
{
this.equipId = equipId;
}
public Long getEquipId()
{
return equipId;
}
public void setPositionId(Long positionId)
{
this.positionId = positionId;
}
public Long getPositionId()
{
return positionId;
}
public void setAnt(Long ant)
{
this.ant = ant;
}
public Long getAnt()
{
return ant;
}
public void setRfidStr(String rfidStr)
{
this.rfidStr = rfidStr;
}
public String getRfidStr()
{
return rfidStr;
}
public void setIsSuccess(Long isSuccess)
{
this.isSuccess = isSuccess;
}
public Long getIsSuccess()
{
return isSuccess;
}
public void setReadTime(String readTime)
{
this.readTime = readTime;
}
public String getReadTime()
{
return readTime;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("id", getId())
.append("machineId", getMachineId())
.append("resource", getResource())
.append("equipId", getEquipId())
.append("positionId", getPositionId())
.append("ant", getAnt())
.append("rfidStr", getRfidStr())
.append("isSuccess", getIsSuccess())
.append("readTime", getReadTime())
.toString();
}
}

@ -0,0 +1,191 @@
package com.ruoyi.traceability.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;
/**
* pro_uprecord
*
* @author wenjy
* @date 2022-11-09
*/
public class ProUprecord extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 主键标识 */
private Long id;
/** 设备编号 */
@Excel(name = "设备编号")
private Long machineId;
/** 资源编号 */
@Excel(name = "资源编号")
private String resource;
/** 位置编号 */
@Excel(name = "位置编号")
private Long positionId;
/** rfid条码 */
@Excel(name = "rfid条码")
private String rfidStr;
/** SFC编码 */
@Excel(name = "SFC编码")
private String sfcStr;
/** EA数量 */
@Excel(name = "EA数量")
private Long eaValue;
/** 是否生产 */
@Excel(name = "是否生产")
private Long isProduction;
/** 是否完工 */
@Excel(name = "是否完工")
private Long isFinish;
/** 记录时间 */
@Excel(name = "记录时间")
private String recordTime;
/** 开始时间 */
@Excel(name = "开始时间")
private String beginTime;
/** 结束时间 */
@Excel(name = "结束时间")
private String endTime;
public void setId(Long id)
{
this.id = id;
}
public Long getId()
{
return id;
}
public void setMachineId(Long machineId)
{
this.machineId = machineId;
}
public Long getMachineId()
{
return machineId;
}
public void setResource(String resource)
{
this.resource = resource;
}
public String getResource()
{
return resource;
}
public void setPositionId(Long positionId)
{
this.positionId = positionId;
}
public Long getPositionId()
{
return positionId;
}
public void setRfidStr(String rfidStr)
{
this.rfidStr = rfidStr;
}
public String getRfidStr()
{
return rfidStr;
}
public void setSfcStr(String sfcStr)
{
this.sfcStr = sfcStr;
}
public String getSfcStr()
{
return sfcStr;
}
public void setEaValue(Long eaValue)
{
this.eaValue = eaValue;
}
public Long getEaValue()
{
return eaValue;
}
public void setIsProduction(Long isProduction)
{
this.isProduction = isProduction;
}
public Long getIsProduction()
{
return isProduction;
}
public void setIsFinish(Long isFinish)
{
this.isFinish = isFinish;
}
public Long getIsFinish()
{
return isFinish;
}
public void setRecordTime(String recordTime)
{
this.recordTime = recordTime;
}
public String getRecordTime()
{
return recordTime;
}
public void setBeginTime(String beginTime)
{
this.beginTime = beginTime;
}
public String getBeginTime()
{
return beginTime;
}
public void setEndTime(String endTime)
{
this.endTime = endTime;
}
public String getEndTime()
{
return endTime;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("id", getId())
.append("machineId", getMachineId())
.append("resource", getResource())
.append("positionId", getPositionId())
.append("rfidStr", getRfidStr())
.append("sfcStr", getSfcStr())
.append("eaValue", getEaValue())
.append("isProduction", getIsProduction())
.append("isFinish", getIsFinish())
.append("recordTime", getRecordTime())
.append("beginTime", getBeginTime())
.append("endTime", getEndTime())
.toString();
}
}

@ -0,0 +1,61 @@
package com.ruoyi.traceability.mapper;
import java.util.List;
import com.ruoyi.traceability.domain.ProReadrecord;
/**
* Mapper
*
* @author wenjy
* @date 2022-11-09
*/
public interface ProReadrecordMapper
{
/**
*
*
* @param id
* @return
*/
public ProReadrecord selectProReadrecordById(Long id);
/**
*
*
* @param proReadrecord
* @return
*/
public List<ProReadrecord> selectProReadrecordList(ProReadrecord proReadrecord);
/**
*
*
* @param proReadrecord
* @return
*/
public int insertProReadrecord(ProReadrecord proReadrecord);
/**
*
*
* @param proReadrecord
* @return
*/
public int updateProReadrecord(ProReadrecord proReadrecord);
/**
*
*
* @param id
* @return
*/
public int deleteProReadrecordById(Long id);
/**
*
*
* @param ids
* @return
*/
public int deleteProReadrecordByIds(String[] ids);
}

@ -0,0 +1,61 @@
package com.ruoyi.traceability.mapper;
import java.util.List;
import com.ruoyi.traceability.domain.ProUprecord;
/**
* Mapper
*
* @author wenjy
* @date 2022-11-09
*/
public interface ProUprecordMapper
{
/**
*
*
* @param id
* @return
*/
public ProUprecord selectProUprecordById(Long id);
/**
*
*
* @param proUprecord
* @return
*/
public List<ProUprecord> selectProUprecordList(ProUprecord proUprecord);
/**
*
*
* @param proUprecord
* @return
*/
public int insertProUprecord(ProUprecord proUprecord);
/**
*
*
* @param proUprecord
* @return
*/
public int updateProUprecord(ProUprecord proUprecord);
/**
*
*
* @param id
* @return
*/
public int deleteProUprecordById(Long id);
/**
*
*
* @param ids
* @return
*/
public int deleteProUprecordByIds(String[] ids);
}

@ -0,0 +1,61 @@
package com.ruoyi.traceability.service;
import java.util.List;
import com.ruoyi.traceability.domain.ProReadrecord;
/**
* Service
*
* @author wenjy
* @date 2022-11-09
*/
public interface IProReadrecordService
{
/**
*
*
* @param id
* @return
*/
public ProReadrecord selectProReadrecordById(Long id);
/**
*
*
* @param proReadrecord
* @return
*/
public List<ProReadrecord> selectProReadrecordList(ProReadrecord proReadrecord);
/**
*
*
* @param proReadrecord
* @return
*/
public int insertProReadrecord(ProReadrecord proReadrecord);
/**
*
*
* @param proReadrecord
* @return
*/
public int updateProReadrecord(ProReadrecord proReadrecord);
/**
*
*
* @param ids
* @return
*/
public int deleteProReadrecordByIds(String ids);
/**
*
*
* @param id
* @return
*/
public int deleteProReadrecordById(Long id);
}

@ -0,0 +1,61 @@
package com.ruoyi.traceability.service;
import java.util.List;
import com.ruoyi.traceability.domain.ProUprecord;
/**
* Service
*
* @author wenjy
* @date 2022-11-09
*/
public interface IProUprecordService
{
/**
*
*
* @param id
* @return
*/
public ProUprecord selectProUprecordById(Long id);
/**
*
*
* @param proUprecord
* @return
*/
public List<ProUprecord> selectProUprecordList(ProUprecord proUprecord);
/**
*
*
* @param proUprecord
* @return
*/
public int insertProUprecord(ProUprecord proUprecord);
/**
*
*
* @param proUprecord
* @return
*/
public int updateProUprecord(ProUprecord proUprecord);
/**
*
*
* @param ids
* @return
*/
public int deleteProUprecordByIds(String ids);
/**
*
*
* @param id
* @return
*/
public int deleteProUprecordById(Long id);
}

@ -0,0 +1,94 @@
package com.ruoyi.traceability.service.impl;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.traceability.mapper.ProReadrecordMapper;
import com.ruoyi.traceability.domain.ProReadrecord;
import com.ruoyi.traceability.service.IProReadrecordService;
import com.ruoyi.common.core.text.Convert;
/**
* Service
*
* @author wenjy
* @date 2022-11-09
*/
@Service
public class ProReadrecordServiceImpl implements IProReadrecordService
{
@Autowired
private ProReadrecordMapper proReadrecordMapper;
/**
*
*
* @param id
* @return
*/
@Override
public ProReadrecord selectProReadrecordById(Long id)
{
return proReadrecordMapper.selectProReadrecordById(id);
}
/**
*
*
* @param proReadrecord
* @return
*/
@Override
public List<ProReadrecord> selectProReadrecordList(ProReadrecord proReadrecord)
{
return proReadrecordMapper.selectProReadrecordList(proReadrecord);
}
/**
*
*
* @param proReadrecord
* @return
*/
@Override
public int insertProReadrecord(ProReadrecord proReadrecord)
{
return proReadrecordMapper.insertProReadrecord(proReadrecord);
}
/**
*
*
* @param proReadrecord
* @return
*/
@Override
public int updateProReadrecord(ProReadrecord proReadrecord)
{
return proReadrecordMapper.updateProReadrecord(proReadrecord);
}
/**
*
*
* @param ids
* @return
*/
@Override
public int deleteProReadrecordByIds(String ids)
{
return proReadrecordMapper.deleteProReadrecordByIds(Convert.toStrArray(ids));
}
/**
*
*
* @param id
* @return
*/
@Override
public int deleteProReadrecordById(Long id)
{
return proReadrecordMapper.deleteProReadrecordById(id);
}
}

@ -0,0 +1,94 @@
package com.ruoyi.traceability.service.impl;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.traceability.mapper.ProUprecordMapper;
import com.ruoyi.traceability.domain.ProUprecord;
import com.ruoyi.traceability.service.IProUprecordService;
import com.ruoyi.common.core.text.Convert;
/**
* Service
*
* @author wenjy
* @date 2022-11-09
*/
@Service
public class ProUprecordServiceImpl implements IProUprecordService
{
@Autowired
private ProUprecordMapper proUprecordMapper;
/**
*
*
* @param id
* @return
*/
@Override
public ProUprecord selectProUprecordById(Long id)
{
return proUprecordMapper.selectProUprecordById(id);
}
/**
*
*
* @param proUprecord
* @return
*/
@Override
public List<ProUprecord> selectProUprecordList(ProUprecord proUprecord)
{
return proUprecordMapper.selectProUprecordList(proUprecord);
}
/**
*
*
* @param proUprecord
* @return
*/
@Override
public int insertProUprecord(ProUprecord proUprecord)
{
return proUprecordMapper.insertProUprecord(proUprecord);
}
/**
*
*
* @param proUprecord
* @return
*/
@Override
public int updateProUprecord(ProUprecord proUprecord)
{
return proUprecordMapper.updateProUprecord(proUprecord);
}
/**
*
*
* @param ids
* @return
*/
@Override
public int deleteProUprecordByIds(String ids)
{
return proUprecordMapper.deleteProUprecordByIds(Convert.toStrArray(ids));
}
/**
*
*
* @param id
* @return
*/
@Override
public int deleteProUprecordById(Long id)
{
return proUprecordMapper.deleteProUprecordById(id);
}
}

@ -0,0 +1,89 @@
<?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.traceability.mapper.ProReadrecordMapper">
<resultMap type="ProReadrecord" id="ProReadrecordResult">
<result property="id" column="id" />
<result property="machineId" column="machineId" />
<result property="resource" column="resource" />
<result property="equipId" column="equipId" />
<result property="positionId" column="positionId" />
<result property="ant" column="ant" />
<result property="rfidStr" column="rfidStr" />
<result property="isSuccess" column="is_success" />
<result property="readTime" column="readTime" />
</resultMap>
<sql id="selectProReadrecordVo">
select id, machineId, resource, equipId, positionId, ant, rfidStr, is_success, readTime from pro_readrecord
</sql>
<select id="selectProReadrecordList" parameterType="ProReadrecord" resultMap="ProReadrecordResult">
<include refid="selectProReadrecordVo"/>
<where>
<if test="resource != null and resource != ''"> and resource = #{resource}</if>
<if test="positionId != null "> and positionId = #{positionId}</if>
<if test="rfidStr != null and rfidStr != ''"> and rfidStr = #{rfidStr}</if>
<if test="isSuccess != null "> and is_success = #{isSuccess}</if>
<if test="params.beginReadTime != null and params.beginReadTime != '' and params.endReadTime != null and params.endReadTime != ''"> and readTime between #{params.beginReadTime} and #{params.endReadTime}</if>
</where>
</select>
<select id="selectProReadrecordById" parameterType="Long" resultMap="ProReadrecordResult">
<include refid="selectProReadrecordVo"/>
where id = #{id}
</select>
<insert id="insertProReadrecord" parameterType="ProReadrecord" useGeneratedKeys="true" keyProperty="id">
insert into pro_readrecord
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="machineId != null">machineId,</if>
<if test="resource != null">resource,</if>
<if test="equipId != null">equipId,</if>
<if test="positionId != null">positionId,</if>
<if test="ant != null">ant,</if>
<if test="rfidStr != null">rfidStr,</if>
<if test="isSuccess != null">is_success,</if>
<if test="readTime != null">readTime,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="machineId != null">#{machineId},</if>
<if test="resource != null">#{resource},</if>
<if test="equipId != null">#{equipId},</if>
<if test="positionId != null">#{positionId},</if>
<if test="ant != null">#{ant},</if>
<if test="rfidStr != null">#{rfidStr},</if>
<if test="isSuccess != null">#{isSuccess},</if>
<if test="readTime != null">#{readTime},</if>
</trim>
</insert>
<update id="updateProReadrecord" parameterType="ProReadrecord">
update pro_readrecord
<trim prefix="SET" suffixOverrides=",">
<if test="machineId != null">machineId = #{machineId},</if>
<if test="resource != null">resource = #{resource},</if>
<if test="equipId != null">equipId = #{equipId},</if>
<if test="positionId != null">positionId = #{positionId},</if>
<if test="ant != null">ant = #{ant},</if>
<if test="rfidStr != null">rfidStr = #{rfidStr},</if>
<if test="isSuccess != null">is_success = #{isSuccess},</if>
<if test="readTime != null">readTime = #{readTime},</if>
</trim>
where id = #{id}
</update>
<delete id="deleteProReadrecordById" parameterType="Long">
delete from pro_readrecord where id = #{id}
</delete>
<delete id="deleteProReadrecordByIds" parameterType="String">
delete from pro_readrecord where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
</mapper>

@ -0,0 +1,105 @@
<?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.traceability.mapper.ProUprecordMapper">
<resultMap type="ProUprecord" id="ProUprecordResult">
<result property="id" column="id" />
<result property="machineId" column="machineId" />
<result property="resource" column="resource" />
<result property="positionId" column="positionId" />
<result property="rfidStr" column="rfidStr" />
<result property="sfcStr" column="sfcStr" />
<result property="eaValue" column="eaValue" />
<result property="isProduction" column="is_production" />
<result property="isFinish" column="is_Finish" />
<result property="recordTime" column="recordTime" />
<result property="beginTime" column="begin_Time" />
<result property="endTime" column="end_Time" />
</resultMap>
<sql id="selectProUprecordVo">
select id, machineId, resource, positionId, rfidStr, sfcStr, eaValue, is_production, is_Finish, recordTime, begin_Time, end_Time from pro_uprecord
</sql>
<select id="selectProUprecordList" parameterType="ProUprecord" resultMap="ProUprecordResult">
<include refid="selectProUprecordVo"/>
<where>
<if test="resource != null and resource != ''"> and resource = #{resource}</if>
<if test="positionId != null "> and positionId = #{positionId}</if>
<if test="rfidStr != null and rfidStr != ''"> and rfidStr like concat('%', #{rfidStr}, '%')</if>
<if test="sfcStr != null and sfcStr != ''"> and sfcStr like concat('%', #{sfcStr}, '%')</if>
<if test="eaValue != null "> and eaValue = #{eaValue}</if>
<if test="isProduction != null "> and is_production = #{isProduction}</if>
<if test="isFinish != null "> and is_Finish = #{isFinish}</if>
<if test="beginTime != null and beginTime != ''"> and begin_Time &gt;= #{beginTime}</if>
<if test="endTime != null and endTime != ''"> and end_Time &lt;= #{endTime}</if>
</where>
</select>
<select id="selectProUprecordById" parameterType="Long" resultMap="ProUprecordResult">
<include refid="selectProUprecordVo"/>
where id = #{id}
</select>
<insert id="insertProUprecord" parameterType="ProUprecord" useGeneratedKeys="true" keyProperty="id">
insert into pro_uprecord
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="machineId != null">machineId,</if>
<if test="resource != null">resource,</if>
<if test="positionId != null">positionId,</if>
<if test="rfidStr != null">rfidStr,</if>
<if test="sfcStr != null">sfcStr,</if>
<if test="eaValue != null">eaValue,</if>
<if test="isProduction != null">is_production,</if>
<if test="isFinish != null">is_Finish,</if>
<if test="recordTime != null">recordTime,</if>
<if test="beginTime != null">begin_Time,</if>
<if test="endTime != null">end_Time,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="machineId != null">#{machineId},</if>
<if test="resource != null">#{resource},</if>
<if test="positionId != null">#{positionId},</if>
<if test="rfidStr != null">#{rfidStr},</if>
<if test="sfcStr != null">#{sfcStr},</if>
<if test="eaValue != null">#{eaValue},</if>
<if test="isProduction != null">#{isProduction},</if>
<if test="isFinish != null">#{isFinish},</if>
<if test="recordTime != null">#{recordTime},</if>
<if test="beginTime != null">#{beginTime},</if>
<if test="endTime != null">#{endTime},</if>
</trim>
</insert>
<update id="updateProUprecord" parameterType="ProUprecord">
update pro_uprecord
<trim prefix="SET" suffixOverrides=",">
<if test="machineId != null">machineId = #{machineId},</if>
<if test="resource != null">resource = #{resource},</if>
<if test="positionId != null">positionId = #{positionId},</if>
<if test="rfidStr != null">rfidStr = #{rfidStr},</if>
<if test="sfcStr != null">sfcStr = #{sfcStr},</if>
<if test="eaValue != null">eaValue = #{eaValue},</if>
<if test="isProduction != null">is_production = #{isProduction},</if>
<if test="isFinish != null">is_Finish = #{isFinish},</if>
<if test="recordTime != null">recordTime = #{recordTime},</if>
<if test="beginTime != null">begin_Time = #{beginTime},</if>
<if test="endTime != null">end_Time = #{endTime},</if>
</trim>
where id = #{id}
</update>
<delete id="deleteProUprecordById" parameterType="Long">
delete from pro_uprecord where id = #{id}
</delete>
<delete id="deleteProUprecordByIds" parameterType="String">
delete from pro_uprecord where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
</mapper>

@ -0,0 +1,81 @@
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
<head>
<th:block th:include="include :: header('新增读取记录')" />
<th:block th:include="include :: datetimepicker-css" />
</head>
<body class="white-bg">
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
<form class="form-horizontal m" id="form-readRecord-add">
<div class="form-group">
<label class="col-sm-3 control-label">资源号:</label>
<div class="col-sm-8">
<input name="resource" 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="equipId" 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="positionId" 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="ant" 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="rfidStr" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">是否成功:</label>
<div class="col-sm-8">
<select name="isSuccess" class="form-control m-b" th:with="type=${@dict.getType('is_flag')}">
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
</select>
</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="readTime" class="form-control" placeholder="yyyy-MM-dd" type="text">
<span class="input-group-addon"><i class="fa fa-calendar"></i></span>
</div>
</div>
</div>-->
</form>
</div>
<th:block th:include="include :: footer" />
<th:block th:include="include :: datetimepicker-js" />
<script th:inline="javascript">
var prefix = ctx + "traceability/readRecord"
$("#form-readRecord-add").validate({
focusCleanup: true
});
function submitHandler() {
if ($.validate.form()) {
$.operate.save(prefix + "/add", $('#form-readRecord-add').serialize());
}
}
$("input[name='readTime']").datetimepicker({
format: "yyyy-mm-dd",
minView: "month",
autoclose: true
});
</script>
</body>
</html>

@ -0,0 +1,81 @@
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
<head>
<th:block th:include="include :: header('修改读取记录')" />
<th:block th:include="include :: datetimepicker-css" />
</head>
<body class="white-bg">
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
<form class="form-horizontal m" id="form-readRecord-edit" th:object="${proReadrecord}">
<input name="id" th:field="*{id}" type="hidden">
<div class="form-group">
<label class="col-sm-3 control-label">资源号:</label>
<div class="col-sm-8">
<input name="resource" th:field="*{resource}" 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="equipId" th:field="*{equipId}" 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="positionId" th:field="*{positionId}" 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="ant" th:field="*{ant}" 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="rfidStr" th:field="*{rfidStr}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">是否成功:</label>
<div class="col-sm-8">
<select name="isSuccess" class="form-control m-b" th:with="type=${@dict.getType('is_flag')}">
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}" th:field="*{isSuccess}"></option>
</select>
</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="readTime" th:value="${#dates.format(proReadrecord.readTime, '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>-->
</form>
</div>
<th:block th:include="include :: footer" />
<th:block th:include="include :: datetimepicker-js" />
<script th:inline="javascript">
var prefix = ctx + "traceability/readRecord";
$("#form-readRecord-edit").validate({
focusCleanup: true
});
function submitHandler() {
if ($.validate.form()) {
$.operate.save(prefix + "/edit", $('#form-readRecord-edit').serialize());
}
}
$("input[name='readTime']").datetimepicker({
format: "yyyy-mm-dd",
minView: "month",
autoclose: true
});
</script>
</body>
</html>

@ -0,0 +1,140 @@
<!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="resource"/>
</li>
<li>
<label>位置编号:</label>
<input type="text" name="positionId"/>
</li>
<li>
<label>RFID条码</label>
<input type="text" name="rfidStr"/>
</li>
<li>
<label>是否成功:</label>
<select name="isSuccess" th:with="type=${@dict.getType('is_flag')}">
<option value="">所有</option>
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
</select>
</li>
<li class="select-time">
<label>读取时间:</label>
<input type="text" class="time-input" id="startTime" placeholder="开始时间" name="params[beginReadTime]"/>
<span>-</span>
<input type="text" class="time-input" id="endTime" placeholder="结束时间" name="params[endReadTime]"/>
</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="traceability:readRecord:add">
<i class="fa fa-plus"></i> 添加
</a>
<a class="btn btn-primary single disabled" onclick="$.operate.edit()" shiro:hasPermission="traceability:readRecord:edit">
<i class="fa fa-edit"></i> 修改
</a>
<a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()" shiro:hasPermission="traceability:readRecord:remove">
<i class="fa fa-remove"></i> 删除
</a>
<a class="btn btn-warning" onclick="$.table.exportExcel()" shiro:hasPermission="traceability:readRecord: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('traceability:readRecord:edit')}]];
var removeFlag = [[${@permission.hasPermi('traceability:readRecord:remove')}]];
var isSuccessDatas = [[${@dict.getType('is_flag')}]];
var prefix = ctx + "traceability/readRecord";
$(function() {
var options = {
url: prefix + "/list",
createUrl: prefix + "/add",
updateUrl: prefix + "/edit/{id}",
removeUrl: prefix + "/remove",
exportUrl: prefix + "/export",
modalName: "读取记录",
columns: [{
checkbox: true
},
{
field: 'id',
title: '主键标识',
visible: false
},
{
field: 'machineId',
title: '机台编号',
visible: false
},
{
field: 'resource',
title: '资源号'
},
{
field: 'equipId',
title: '设备编号'
},
{
field: 'positionId',
title: '位置编号'
},
{
field: 'ant',
title: '天线编号'
},
{
field: 'rfidStr',
title: 'RFID条码'
},
{
field: 'isSuccess',
title: '是否成功',
formatter: function(value, row, index) {
return $.table.selectDictLabel(isSuccessDatas, value);
}
},
{
field: 'readTime',
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.id + '\')"><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.id + '\')"><i class="fa fa-remove"></i>删除</a>');
return actions.join('');
}
}]
};
$.table.init(options);
});
</script>
</body>
</html>

@ -0,0 +1,124 @@
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
<head>
<th:block th:include="include :: header('新增上料记录')" />
<th:block th:include="include :: datetimepicker-css" />
</head>
<body class="white-bg">
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
<form class="form-horizontal m" id="form-upRecord-add">
<div class="form-group">
<label class="col-sm-3 control-label">设备编号:</label>
<div class="col-sm-8">
<input name="machineId" 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="resource" 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="positionId" 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="rfidStr" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">SFC编码</label>
<div class="col-sm-8">
<input name="sfcStr" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">EA数量</label>
<div class="col-sm-8">
<input name="eaValue" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">是否生产:</label>
<div class="col-sm-8">
<select name="isProduction" class="form-control m-b" th:with="type=${@dict.getType('is_flag')}">
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">是否完工:</label>
<div class="col-sm-8">
<select name="isFinish" class="form-control m-b" th:with="type=${@dict.getType('is_flag')}">
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
</select>
</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="recordTime" 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">
<div class="input-group date">
<input name="beginTime" 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">
<div class="input-group date">
<input name="endTime" class="form-control" placeholder="yyyy-MM-dd" type="text">
<span class="input-group-addon"><i class="fa fa-calendar"></i></span>
</div>
</div>
</div>-->
</form>
</div>
<th:block th:include="include :: footer" />
<th:block th:include="include :: datetimepicker-js" />
<script th:inline="javascript">
var prefix = ctx + "traceability/upRecord"
$("#form-upRecord-add").validate({
focusCleanup: true
});
function submitHandler() {
if ($.validate.form()) {
$.operate.save(prefix + "/add", $('#form-upRecord-add').serialize());
}
}
$("input[name='recordTime']").datetimepicker({
format: "yyyy-mm-dd",
minView: "month",
autoclose: true
});
$("input[name='beginTime']").datetimepicker({
format: "yyyy-mm-dd",
minView: "month",
autoclose: true
});
$("input[name='endTime']").datetimepicker({
format: "yyyy-mm-dd",
minView: "month",
autoclose: true
});
</script>
</body>
</html>

@ -0,0 +1,125 @@
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
<head>
<th:block th:include="include :: header('修改上料记录')" />
<th:block th:include="include :: datetimepicker-css" />
</head>
<body class="white-bg">
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
<form class="form-horizontal m" id="form-upRecord-edit" th:object="${proUprecord}">
<input name="id" th:field="*{id}" type="hidden">
<div class="form-group">
<label class="col-sm-3 control-label">设备编号:</label>
<div class="col-sm-8">
<input name="machineId" th:field="*{machineId}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">资源编号:</label>
<div class="col-sm-8">
<input name="resource" th:field="*{resource}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">位置编号:</label>
<div class="col-sm-8">
<input name="positionId" th:field="*{positionId}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">rfid条码</label>
<div class="col-sm-8">
<input name="rfidStr" th:field="*{rfidStr}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">SFC编码</label>
<div class="col-sm-8">
<input name="sfcStr" th:field="*{sfcStr}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">EA数量</label>
<div class="col-sm-8">
<input name="eaValue" th:field="*{eaValue}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">是否生产:</label>
<div class="col-sm-8">
<select name="isProduction" class="form-control m-b" th:with="type=${@dict.getType('is_flag')}">
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}" th:field="*{isProduction}"></option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">是否完工:</label>
<div class="col-sm-8">
<select name="isFinish" class="form-control m-b" th:with="type=${@dict.getType('is_flag')}">
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}" th:field="*{isFinish}"></option>
</select>
</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="recordTime" th:value="${#dates.format(proUprecord.recordTime, '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">
<div class="input-group date">
<input name="beginTime" th:value="${#dates.format(proUprecord.beginTime, '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">
<div class="input-group date">
<input name="endTime" th:value="${#dates.format(proUprecord.endTime, '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>-->
</form>
</div>
<th:block th:include="include :: footer" />
<th:block th:include="include :: datetimepicker-js" />
<script th:inline="javascript">
var prefix = ctx + "traceability/upRecord";
$("#form-upRecord-edit").validate({
focusCleanup: true
});
function submitHandler() {
if ($.validate.form()) {
$.operate.save(prefix + "/edit", $('#form-upRecord-edit').serialize());
}
}
/*$("input[name='recordTime']").datetimepicker({
format: "yyyy-mm-dd",
minView: "month",
autoclose: true
});
$("input[name='beginTime']").datetimepicker({
format: "yyyy-mm-dd",
minView: "month",
autoclose: true
});
$("input[name='endTime']").datetimepicker({
format: "yyyy-mm-dd",
minView: "month",
autoclose: true
});*/
</script>
</body>
</html>

@ -0,0 +1,172 @@
<!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="resource"/>
</li>
<li>
<label>位置编号:</label>
<input type="text" name="positionId"/>
</li>
<li>
<label>rfid条码</label>
<input type="text" name="rfidStr"/>
</li>
<li>
<label>SFC编码</label>
<input type="text" name="sfcStr"/>
</li>
<li>
<label>EA数量</label>
<input type="text" name="eaValue"/>
</li>
<li>
<label>是否生产:</label>
<select name="isProduction" th:with="type=${@dict.getType('is_flag')}">
<option value="">所有</option>
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
</select>
</li>
<li>
<label>是否完工:</label>
<select name="isFinish" th:with="type=${@dict.getType('is_flag')}">
<option value="">所有</option>
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
</select>
</li>
<li>
<label>开始时间:</label>
<input type="text" class="time-input" placeholder="请选择开始时间" name="beginTime"/>
</li>
<li>
<label>结束时间:</label>
<input type="text" class="time-input" placeholder="请选择结束时间" name="endTime"/>
</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="traceability:upRecord:add">
<i class="fa fa-plus"></i> 添加
</a>
<a class="btn btn-primary single disabled" onclick="$.operate.edit()" shiro:hasPermission="traceability:upRecord:edit">
<i class="fa fa-edit"></i> 修改
</a>
<a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()" shiro:hasPermission="traceability:upRecord:remove">
<i class="fa fa-remove"></i> 删除
</a>
<a class="btn btn-warning" onclick="$.table.exportExcel()" shiro:hasPermission="traceability:upRecord: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('traceability:upRecord:edit')}]];
var removeFlag = [[${@permission.hasPermi('traceability:upRecord:remove')}]];
var isProductionDatas = [[${@dict.getType('is_flag')}]];
var isFinishDatas = [[${@dict.getType('is_flag')}]];
var prefix = ctx + "traceability/upRecord";
$(function() {
var options = {
url: prefix + "/list",
createUrl: prefix + "/add",
updateUrl: prefix + "/edit/{id}",
removeUrl: prefix + "/remove",
exportUrl: prefix + "/export",
modalName: "上料记录",
columns: [{
checkbox: true
},
{
field: 'id',
title: '主键标识',
visible: false
},
{
field: 'machineId',
title: '设备编号'
},
{
field: 'resource',
title: '资源编号'
},
{
field: 'positionId',
title: '位置编号'
},
{
field: 'rfidStr',
title: 'rfid条码'
},
{
field: 'sfcStr',
title: 'SFC编码'
},
{
field: 'eaValue',
title: 'EA数量'
},
{
field: 'isProduction',
title: '是否生产',
formatter: function(value, row, index) {
return $.table.selectDictLabel(isProductionDatas, value);
}
},
{
field: 'isFinish',
title: '是否完工',
formatter: function(value, row, index) {
return $.table.selectDictLabel(isFinishDatas, value);
}
},
{
field: 'recordTime',
title: '记录时间'
},
{
field: 'beginTime',
title: '开始时间'
},
{
field: 'endTime',
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.id + '\')"><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.id + '\')"><i class="fa fa-remove"></i>删除</a>');
return actions.join('');
}
}]
};
$.table.init(options);
});
</script>
</body>
</html>

@ -0,0 +1,127 @@
package com.ruoyi.traceability.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.traceability.domain.ProUprecord;
import com.ruoyi.traceability.service.IProUprecordService;
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 wenjy
* @date 2022-11-09
*/
@Controller
@RequestMapping("/traceability/upRecord")
public class ProUprecordController extends BaseController
{
private String prefix = "traceability/upRecord";
@Autowired
private IProUprecordService proUprecordService;
@RequiresPermissions("traceability:upRecord:view")
@GetMapping()
public String upRecord()
{
return prefix + "/upRecord";
}
/**
*
*/
@RequiresPermissions("traceability:upRecord:list")
@PostMapping("/list")
@ResponseBody
public TableDataInfo list(ProUprecord proUprecord)
{
startPage();
List<ProUprecord> list = proUprecordService.selectProUprecordList(proUprecord);
return getDataTable(list);
}
/**
*
*/
@RequiresPermissions("traceability:upRecord:export")
@Log(title = "上料记录", businessType = BusinessType.EXPORT)
@PostMapping("/export")
@ResponseBody
public AjaxResult export(ProUprecord proUprecord)
{
List<ProUprecord> list = proUprecordService.selectProUprecordList(proUprecord);
ExcelUtil<ProUprecord> util = new ExcelUtil<ProUprecord>(ProUprecord.class);
return util.exportExcel(list, "上料记录数据");
}
/**
*
*/
@GetMapping("/add")
public String add()
{
return prefix + "/add";
}
/**
*
*/
@RequiresPermissions("traceability:upRecord:add")
@Log(title = "上料记录", businessType = BusinessType.INSERT)
@PostMapping("/add")
@ResponseBody
public AjaxResult addSave(ProUprecord proUprecord)
{
return toAjax(proUprecordService.insertProUprecord(proUprecord));
}
/**
*
*/
@RequiresPermissions("traceability:upRecord:edit")
@GetMapping("/edit/{id}")
public String edit(@PathVariable("id") Long id, ModelMap mmap)
{
ProUprecord proUprecord = proUprecordService.selectProUprecordById(id);
mmap.put("proUprecord", proUprecord);
return prefix + "/edit";
}
/**
*
*/
@RequiresPermissions("traceability:upRecord:edit")
@Log(title = "上料记录", businessType = BusinessType.UPDATE)
@PostMapping("/edit")
@ResponseBody
public AjaxResult editSave(ProUprecord proUprecord)
{
return toAjax(proUprecordService.updateProUprecord(proUprecord));
}
/**
*
*/
@RequiresPermissions("traceability:upRecord:remove")
@Log(title = "上料记录", businessType = BusinessType.DELETE)
@PostMapping( "/remove")
@ResponseBody
public AjaxResult remove(String ids)
{
return toAjax(proUprecordService.deleteProUprecordByIds(ids));
}
}

@ -0,0 +1,191 @@
package com.ruoyi.traceability.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;
/**
* pro_uprecord
*
* @author wenjy
* @date 2022-11-09
*/
public class ProUprecord extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 主键标识 */
private Long id;
/** 设备编号 */
@Excel(name = "设备编号")
private Long machineId;
/** 资源编号 */
@Excel(name = "资源编号")
private String resource;
/** 位置编号 */
@Excel(name = "位置编号")
private Long positionId;
/** rfid条码 */
@Excel(name = "rfid条码")
private String rfidStr;
/** SFC编码 */
@Excel(name = "SFC编码")
private String sfcStr;
/** EA数量 */
@Excel(name = "EA数量")
private Long eaValue;
/** 是否生产 */
@Excel(name = "是否生产")
private Long isProduction;
/** 是否完工 */
@Excel(name = "是否完工")
private Long isFinish;
/** 记录时间 */
@Excel(name = "记录时间")
private String recordTime;
/** 开始时间 */
@Excel(name = "开始时间")
private String beginTime;
/** 结束时间 */
@Excel(name = "结束时间")
private String endTime;
public void setId(Long id)
{
this.id = id;
}
public Long getId()
{
return id;
}
public void setMachineId(Long machineId)
{
this.machineId = machineId;
}
public Long getMachineId()
{
return machineId;
}
public void setResource(String resource)
{
this.resource = resource;
}
public String getResource()
{
return resource;
}
public void setPositionId(Long positionId)
{
this.positionId = positionId;
}
public Long getPositionId()
{
return positionId;
}
public void setRfidStr(String rfidStr)
{
this.rfidStr = rfidStr;
}
public String getRfidStr()
{
return rfidStr;
}
public void setSfcStr(String sfcStr)
{
this.sfcStr = sfcStr;
}
public String getSfcStr()
{
return sfcStr;
}
public void setEaValue(Long eaValue)
{
this.eaValue = eaValue;
}
public Long getEaValue()
{
return eaValue;
}
public void setIsProduction(Long isProduction)
{
this.isProduction = isProduction;
}
public Long getIsProduction()
{
return isProduction;
}
public void setIsFinish(Long isFinish)
{
this.isFinish = isFinish;
}
public Long getIsFinish()
{
return isFinish;
}
public void setRecordTime(String recordTime)
{
this.recordTime = recordTime;
}
public String getRecordTime()
{
return recordTime;
}
public void setBeginTime(String beginTime)
{
this.beginTime = beginTime;
}
public String getBeginTime()
{
return beginTime;
}
public void setEndTime(String endTime)
{
this.endTime = endTime;
}
public String getEndTime()
{
return endTime;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("id", getId())
.append("machineId", getMachineId())
.append("resource", getResource())
.append("positionId", getPositionId())
.append("rfidStr", getRfidStr())
.append("sfcStr", getSfcStr())
.append("eaValue", getEaValue())
.append("isProduction", getIsProduction())
.append("isFinish", getIsFinish())
.append("recordTime", getRecordTime())
.append("beginTime", getBeginTime())
.append("endTime", getEndTime())
.toString();
}
}

@ -0,0 +1,61 @@
package com.ruoyi.traceability.mapper;
import java.util.List;
import com.ruoyi.traceability.domain.ProUprecord;
/**
* Mapper
*
* @author wenjy
* @date 2022-11-09
*/
public interface ProUprecordMapper
{
/**
*
*
* @param id
* @return
*/
public ProUprecord selectProUprecordById(Long id);
/**
*
*
* @param proUprecord
* @return
*/
public List<ProUprecord> selectProUprecordList(ProUprecord proUprecord);
/**
*
*
* @param proUprecord
* @return
*/
public int insertProUprecord(ProUprecord proUprecord);
/**
*
*
* @param proUprecord
* @return
*/
public int updateProUprecord(ProUprecord proUprecord);
/**
*
*
* @param id
* @return
*/
public int deleteProUprecordById(Long id);
/**
*
*
* @param ids
* @return
*/
public int deleteProUprecordByIds(String[] ids);
}

@ -0,0 +1,61 @@
package com.ruoyi.traceability.service;
import java.util.List;
import com.ruoyi.traceability.domain.ProUprecord;
/**
* Service
*
* @author wenjy
* @date 2022-11-09
*/
public interface IProUprecordService
{
/**
*
*
* @param id
* @return
*/
public ProUprecord selectProUprecordById(Long id);
/**
*
*
* @param proUprecord
* @return
*/
public List<ProUprecord> selectProUprecordList(ProUprecord proUprecord);
/**
*
*
* @param proUprecord
* @return
*/
public int insertProUprecord(ProUprecord proUprecord);
/**
*
*
* @param proUprecord
* @return
*/
public int updateProUprecord(ProUprecord proUprecord);
/**
*
*
* @param ids
* @return
*/
public int deleteProUprecordByIds(String ids);
/**
*
*
* @param id
* @return
*/
public int deleteProUprecordById(Long id);
}

@ -0,0 +1,94 @@
package com.ruoyi.traceability.service.impl;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.traceability.mapper.ProUprecordMapper;
import com.ruoyi.traceability.domain.ProUprecord;
import com.ruoyi.traceability.service.IProUprecordService;
import com.ruoyi.common.core.text.Convert;
/**
* Service
*
* @author wenjy
* @date 2022-11-09
*/
@Service
public class ProUprecordServiceImpl implements IProUprecordService
{
@Autowired
private ProUprecordMapper proUprecordMapper;
/**
*
*
* @param id
* @return
*/
@Override
public ProUprecord selectProUprecordById(Long id)
{
return proUprecordMapper.selectProUprecordById(id);
}
/**
*
*
* @param proUprecord
* @return
*/
@Override
public List<ProUprecord> selectProUprecordList(ProUprecord proUprecord)
{
return proUprecordMapper.selectProUprecordList(proUprecord);
}
/**
*
*
* @param proUprecord
* @return
*/
@Override
public int insertProUprecord(ProUprecord proUprecord)
{
return proUprecordMapper.insertProUprecord(proUprecord);
}
/**
*
*
* @param proUprecord
* @return
*/
@Override
public int updateProUprecord(ProUprecord proUprecord)
{
return proUprecordMapper.updateProUprecord(proUprecord);
}
/**
*
*
* @param ids
* @return
*/
@Override
public int deleteProUprecordByIds(String ids)
{
return proUprecordMapper.deleteProUprecordByIds(Convert.toStrArray(ids));
}
/**
*
*
* @param id
* @return
*/
@Override
public int deleteProUprecordById(Long id)
{
return proUprecordMapper.deleteProUprecordById(id);
}
}

@ -0,0 +1,105 @@
<?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.traceability.mapper.ProUprecordMapper">
<resultMap type="ProUprecord" id="ProUprecordResult">
<result property="id" column="id" />
<result property="machineId" column="machineId" />
<result property="resource" column="resource" />
<result property="positionId" column="positionId" />
<result property="rfidStr" column="rfidStr" />
<result property="sfcStr" column="sfcStr" />
<result property="eaValue" column="eaValue" />
<result property="isProduction" column="is_production" />
<result property="isFinish" column="is_Finish" />
<result property="recordTime" column="recordTime" />
<result property="beginTime" column="begin_Time" />
<result property="endTime" column="end_Time" />
</resultMap>
<sql id="selectProUprecordVo">
select id, machineId, resource, positionId, rfidStr, sfcStr, eaValue, is_production, is_Finish, recordTime, begin_Time, end_Time from pro_uprecord
</sql>
<select id="selectProUprecordList" parameterType="ProUprecord" resultMap="ProUprecordResult">
<include refid="selectProUprecordVo"/>
<where>
<if test="resource != null and resource != ''"> and resource = #{resource}</if>
<if test="positionId != null "> and positionId = #{positionId}</if>
<if test="rfidStr != null and rfidStr != ''"> and rfidStr like concat('%', #{rfidStr}, '%')</if>
<if test="sfcStr != null and sfcStr != ''"> and sfcStr like concat('%', #{sfcStr}, '%')</if>
<if test="eaValue != null "> and eaValue = #{eaValue}</if>
<if test="isProduction != null "> and is_production = #{isProduction}</if>
<if test="isFinish != null "> and is_Finish = #{isFinish}</if>
<if test="beginTime != null and beginTime != ''"> and begin_Time &gt;= #{beginTime}</if>
<if test="endTime != null and endTime != ''"> and end_Time &lt;= #{endTime}</if>
</where>
</select>
<select id="selectProUprecordById" parameterType="Long" resultMap="ProUprecordResult">
<include refid="selectProUprecordVo"/>
where id = #{id}
</select>
<insert id="insertProUprecord" parameterType="ProUprecord" useGeneratedKeys="true" keyProperty="id">
insert into pro_uprecord
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="machineId != null">machineId,</if>
<if test="resource != null">resource,</if>
<if test="positionId != null">positionId,</if>
<if test="rfidStr != null">rfidStr,</if>
<if test="sfcStr != null">sfcStr,</if>
<if test="eaValue != null">eaValue,</if>
<if test="isProduction != null">is_production,</if>
<if test="isFinish != null">is_Finish,</if>
<if test="recordTime != null">recordTime,</if>
<if test="beginTime != null">begin_Time,</if>
<if test="endTime != null">end_Time,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="machineId != null">#{machineId},</if>
<if test="resource != null">#{resource},</if>
<if test="positionId != null">#{positionId},</if>
<if test="rfidStr != null">#{rfidStr},</if>
<if test="sfcStr != null">#{sfcStr},</if>
<if test="eaValue != null">#{eaValue},</if>
<if test="isProduction != null">#{isProduction},</if>
<if test="isFinish != null">#{isFinish},</if>
<if test="recordTime != null">#{recordTime},</if>
<if test="beginTime != null">#{beginTime},</if>
<if test="endTime != null">#{endTime},</if>
</trim>
</insert>
<update id="updateProUprecord" parameterType="ProUprecord">
update pro_uprecord
<trim prefix="SET" suffixOverrides=",">
<if test="machineId != null">machineId = #{machineId},</if>
<if test="resource != null">resource = #{resource},</if>
<if test="positionId != null">positionId = #{positionId},</if>
<if test="rfidStr != null">rfidStr = #{rfidStr},</if>
<if test="sfcStr != null">sfcStr = #{sfcStr},</if>
<if test="eaValue != null">eaValue = #{eaValue},</if>
<if test="isProduction != null">is_production = #{isProduction},</if>
<if test="isFinish != null">is_Finish = #{isFinish},</if>
<if test="recordTime != null">recordTime = #{recordTime},</if>
<if test="beginTime != null">begin_Time = #{beginTime},</if>
<if test="endTime != null">end_Time = #{endTime},</if>
</trim>
where id = #{id}
</update>
<delete id="deleteProUprecordById" parameterType="Long">
delete from pro_uprecord where id = #{id}
</delete>
<delete id="deleteProUprecordByIds" parameterType="String">
delete from pro_uprecord where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
</mapper>

@ -0,0 +1,124 @@
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
<head>
<th:block th:include="include :: header('新增上料记录')" />
<th:block th:include="include :: datetimepicker-css" />
</head>
<body class="white-bg">
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
<form class="form-horizontal m" id="form-upRecord-add">
<div class="form-group">
<label class="col-sm-3 control-label">设备编号:</label>
<div class="col-sm-8">
<input name="machineId" 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="resource" 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="positionId" 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="rfidStr" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">SFC编码</label>
<div class="col-sm-8">
<input name="sfcStr" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">EA数量</label>
<div class="col-sm-8">
<input name="eaValue" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">是否生产:</label>
<div class="col-sm-8">
<select name="isProduction" class="form-control m-b" th:with="type=${@dict.getType('is_flag')}">
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">是否完工:</label>
<div class="col-sm-8">
<select name="isFinish" class="form-control m-b" th:with="type=${@dict.getType('is_flag')}">
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
</select>
</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="recordTime" 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">
<div class="input-group date">
<input name="beginTime" 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">
<div class="input-group date">
<input name="endTime" class="form-control" placeholder="yyyy-MM-dd" type="text">
<span class="input-group-addon"><i class="fa fa-calendar"></i></span>
</div>
</div>
</div>
</form>
</div>
<th:block th:include="include :: footer" />
<th:block th:include="include :: datetimepicker-js" />
<script th:inline="javascript">
var prefix = ctx + "traceability/upRecord"
$("#form-upRecord-add").validate({
focusCleanup: true
});
function submitHandler() {
if ($.validate.form()) {
$.operate.save(prefix + "/add", $('#form-upRecord-add').serialize());
}
}
$("input[name='recordTime']").datetimepicker({
format: "yyyy-mm-dd",
minView: "month",
autoclose: true
});
$("input[name='beginTime']").datetimepicker({
format: "yyyy-mm-dd",
minView: "month",
autoclose: true
});
$("input[name='endTime']").datetimepicker({
format: "yyyy-mm-dd",
minView: "month",
autoclose: true
});
</script>
</body>
</html>

@ -0,0 +1,125 @@
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
<head>
<th:block th:include="include :: header('修改上料记录')" />
<th:block th:include="include :: datetimepicker-css" />
</head>
<body class="white-bg">
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
<form class="form-horizontal m" id="form-upRecord-edit" th:object="${proUprecord}">
<input name="id" th:field="*{id}" type="hidden">
<div class="form-group">
<label class="col-sm-3 control-label">设备编号:</label>
<div class="col-sm-8">
<input name="machineId" th:field="*{machineId}" 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="resource" th:field="*{resource}" 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="positionId" th:field="*{positionId}" 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="rfidStr" th:field="*{rfidStr}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">SFC编码</label>
<div class="col-sm-8">
<input name="sfcStr" th:field="*{sfcStr}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">EA数量</label>
<div class="col-sm-8">
<input name="eaValue" th:field="*{eaValue}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">是否生产:</label>
<div class="col-sm-8">
<select name="isProduction" class="form-control m-b" th:with="type=${@dict.getType('is_flag')}">
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}" th:field="*{isProduction}"></option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">是否完工:</label>
<div class="col-sm-8">
<select name="isFinish" class="form-control m-b" th:with="type=${@dict.getType('is_flag')}">
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}" th:field="*{isFinish}"></option>
</select>
</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="recordTime" th:value="${#dates.format(proUprecord.recordTime, '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">
<div class="input-group date">
<input name="beginTime" th:value="${#dates.format(proUprecord.beginTime, '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">
<div class="input-group date">
<input name="endTime" th:value="${#dates.format(proUprecord.endTime, '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>
</form>
</div>
<th:block th:include="include :: footer" />
<th:block th:include="include :: datetimepicker-js" />
<script th:inline="javascript">
var prefix = ctx + "traceability/upRecord";
$("#form-upRecord-edit").validate({
focusCleanup: true
});
function submitHandler() {
if ($.validate.form()) {
$.operate.save(prefix + "/edit", $('#form-upRecord-edit').serialize());
}
}
$("input[name='recordTime']").datetimepicker({
format: "yyyy-mm-dd",
minView: "month",
autoclose: true
});
$("input[name='beginTime']").datetimepicker({
format: "yyyy-mm-dd",
minView: "month",
autoclose: true
});
$("input[name='endTime']").datetimepicker({
format: "yyyy-mm-dd",
minView: "month",
autoclose: true
});
</script>
</body>
</html>

@ -0,0 +1,172 @@
<!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="resource"/>
</li>
<li>
<label>位置编号:</label>
<input type="text" name="positionId"/>
</li>
<li>
<label>rfid条码</label>
<input type="text" name="rfidStr"/>
</li>
<li>
<label>SFC编码</label>
<input type="text" name="sfcStr"/>
</li>
<li>
<label>EA数量</label>
<input type="text" name="eaValue"/>
</li>
<li>
<label>是否生产:</label>
<select name="isProduction" th:with="type=${@dict.getType('is_flag')}">
<option value="">所有</option>
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
</select>
</li>
<li>
<label>是否完工:</label>
<select name="isFinish" th:with="type=${@dict.getType('is_flag')}">
<option value="">所有</option>
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
</select>
</li>
<li>
<label>开始时间:</label>
<input type="text" class="time-input" placeholder="请选择开始时间" name="beginTime"/>
</li>
<li>
<label>结束时间:</label>
<input type="text" class="time-input" placeholder="请选择结束时间" name="endTime"/>
</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="traceability:upRecord:add">
<i class="fa fa-plus"></i> 添加
</a>
<a class="btn btn-primary single disabled" onclick="$.operate.edit()" shiro:hasPermission="traceability:upRecord:edit">
<i class="fa fa-edit"></i> 修改
</a>
<a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()" shiro:hasPermission="traceability:upRecord:remove">
<i class="fa fa-remove"></i> 删除
</a>
<a class="btn btn-warning" onclick="$.table.exportExcel()" shiro:hasPermission="traceability:upRecord: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('traceability:upRecord:edit')}]];
var removeFlag = [[${@permission.hasPermi('traceability:upRecord:remove')}]];
var isProductionDatas = [[${@dict.getType('is_flag')}]];
var isFinishDatas = [[${@dict.getType('is_flag')}]];
var prefix = ctx + "traceability/upRecord";
$(function() {
var options = {
url: prefix + "/list",
createUrl: prefix + "/add",
updateUrl: prefix + "/edit/{id}",
removeUrl: prefix + "/remove",
exportUrl: prefix + "/export",
modalName: "上料记录",
columns: [{
checkbox: true
},
{
field: 'id',
title: '主键标识',
visible: false
},
{
field: 'machineId',
title: '设备编号'
},
{
field: 'resource',
title: '资源编号'
},
{
field: 'positionId',
title: '位置编号'
},
{
field: 'rfidStr',
title: 'rfid条码'
},
{
field: 'sfcStr',
title: 'SFC编码'
},
{
field: 'eaValue',
title: 'EA数量'
},
{
field: 'isProduction',
title: '是否生产',
formatter: function(value, row, index) {
return $.table.selectDictLabel(isProductionDatas, value);
}
},
{
field: 'isFinish',
title: '是否完工',
formatter: function(value, row, index) {
return $.table.selectDictLabel(isFinishDatas, value);
}
},
{
field: 'recordTime',
title: '记录时间'
},
{
field: 'beginTime',
title: '开始时间'
},
{
field: 'endTime',
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.id + '\')"><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.id + '\')"><i class="fa fa-remove"></i>删除</a>');
return actions.join('');
}
}]
};
$.table.init(options);
});
</script>
</body>
</html>
Loading…
Cancel
Save