src/main/java/com/zy/asrs/entity/LocDetl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/entity/WrkDetl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/utils/VersionUtils.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/core/thread/LedThread.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/application.yml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/mapper/LocDetlMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/mapper/WrkDetlMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/zy/asrs/entity/LocDetl.java
@@ -1,14 +1,13 @@ package com.zy.asrs.entity; import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.annotations.TableName; import com.baomidou.mybatisplus.enums.IdType; import com.core.common.Cools; import com.core.common.SpringUtils; import com.zy.asrs.service.LocMastService; import com.zy.system.entity.User; import com.zy.system.service.UserService; import com.core.common.Cools; import com.core.common.SpringUtils; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -22,57 +21,119 @@ private static final long serialVersionUID = 1L; @ApiModelProperty(value= "库位号") @TableId(value = "loc_no", type = IdType.INPUT) @TableField("loc_no") private String locNo; @ApiModelProperty(value= "产品编码") @TableId(value = "mat_no", type = IdType.INPUT) @TableField("mat_no") private String matNo; @ApiModelProperty(value= "产品名称") @TableId(value = "mat_name") @TableField("mat_name") private String matName; @ApiModelProperty(value= "规格") private String specs; @ApiModelProperty(value= "尺寸") private String size; @ApiModelProperty(value= "颜色") private String color; @ApiModelProperty(value= "单重") private Double weight; @ApiModelProperty(value= "供应商") private String supplier; @ApiModelProperty(value= "仓库") private String warehouse; @ApiModelProperty(value= "品牌") private String brand; @ApiModelProperty(value= "数量") private Double qty; @ApiModelProperty(value= "单位") private String unit; @ApiModelProperty(value= "托盘条码") private String zpallet; @ApiModelProperty(value= "用户ID") private String bname; @ApiModelProperty(value= "数量") @ExcelProperty("数量") private Double anfme; @ApiModelProperty(value= "备注") private String memo; @ApiModelProperty(value= "商品编号") @ExcelProperty("商品编号") private String matnr; @ApiModelProperty(value= "商品名称") @ExcelProperty("商品名称") private String maktx; @ApiModelProperty(value= "批号") @ExcelProperty("批号") private String batch; @ApiModelProperty(value= "单据编号") @ExcelProperty("单据编号") @TableField("order_no") private String orderNo; @ApiModelProperty(value= "规格") private String specs; @ApiModelProperty(value= "型号") private String model; @ApiModelProperty(value= "颜色") private String color; @ApiModelProperty(value= "品牌") private String brand; @ApiModelProperty(value= "单位") private String unit; @ApiModelProperty(value= "单价") private Double price; @ApiModelProperty(value= "sku") private String sku; @ApiModelProperty(value= "单位量") private Double units; @ApiModelProperty(value= "条码") private String barcode; @ApiModelProperty(value= "产地") private String origin; @ApiModelProperty(value= "厂家") private String manu; @ApiModelProperty(value= "生产日期") @TableField("manu_date") private String manuDate; @ApiModelProperty(value= "品项数") @TableField("item_num") private String itemNum; @ApiModelProperty(value= "安全库存量") @TableField("safe_qty") private Double safeQty; @ApiModelProperty(value= "重量") private Double weight; @ApiModelProperty(value= "长度") private Double length; @ApiModelProperty(value= "体积") private Double volume; @ApiModelProperty(value= "三方编码") @TableField("three_code") private String threeCode; @ApiModelProperty(value= "供应商") private String supp; @ApiModelProperty(value= "供应商编码") @TableField("supp_code") private String suppCode; @ApiModelProperty(value= "是否批次 1: 是 0: 否 ") @TableField("be_batch") private Integer beBatch; @ApiModelProperty(value= "保质期") @TableField("dead_time") private String deadTime; @ApiModelProperty(value= "预警天数") @TableField("dead_warn") private Integer deadWarn; @ApiModelProperty(value= "制购 1: 制造 2: 采购 3: 外协 ") private Integer source; @ApiModelProperty(value= "要求检验 1: 是 0: 否 ") private Integer inspect; @ApiModelProperty(value= "危险品 1: 是 0: 否 ") private Integer danger; @ApiModelProperty(value= "修改人员") @TableField("modi_user") @@ -90,30 +151,8 @@ @TableField("appe_time") private Date appeTime; @TableField("bill_no") private String billNo; @TableField("seq_no") private int seqNo; @TableField("bill_type") private int billType; @TableField("object_id") private String objectId; @TableField("object_name") private String objectName; @TableField("det_id") private int detId; @TableId(value = "Item_batch", type = IdType.INPUT) @TableField("Item_batch") private String itemBatch; @TableField("order_no") private String orderNo; @ApiModelProperty(value= "备注") private String memo; public String getLocNo$(){ LocMastService service = SpringUtils.getBean(LocMastService.class); @@ -122,6 +161,56 @@ return String.valueOf(locMast.getLocNo()); } return null; } public String getBeBatch$(){ if (null == this.beBatch){ return null; } switch (this.beBatch){ case 1: return "是"; case 0: return "否"; default: return String.valueOf(this.beBatch); } } public String getSource$(){ if (null == this.source){ return null; } switch (this.source){ case 1: return "制造"; case 2: return "采购"; case 3: return "外协"; default: return String.valueOf(this.source); } } public String getInspect$(){ if (null == this.inspect){ return null; } switch (this.inspect){ case 1: return "是"; case 0: return "否"; default: return String.valueOf(this.inspect); } } public String getDanger$(){ if (null == this.danger){ return null; } switch (this.danger){ case 1: return "是"; case 0: return "否"; default: return String.valueOf(this.danger); } } public String getModiUser$(){ @@ -140,7 +229,6 @@ return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.modiTime); } public String getAppeUser$(){ UserService service = SpringUtils.getBean(UserService.class); User user = service.selectById(this.appeUser); @@ -156,4 +244,6 @@ } return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.appeTime); } } src/main/java/com/zy/asrs/entity/WrkDetl.java
@@ -1,24 +1,19 @@ package com.zy.asrs.entity; import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.annotations.TableName; import com.core.common.Cools; import com.core.common.SpringUtils; import com.zy.system.entity.User; import com.zy.system.service.UserService; import io.swagger.annotations.ApiModelProperty; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import java.io.Serializable; import java.text.SimpleDateFormat; import java.util.Date; @Data @NoArgsConstructor @AllArgsConstructor @TableName("asr_wrk_detl") public class WrkDetl implements Serializable { @@ -38,59 +33,11 @@ @TableField("io_time") private Date ioTime; @ApiModelProperty(value= "产品编码") @TableId(value = "mat_no") @TableField("mat_no") private String matNo; @ApiModelProperty(value= "产品名称") @TableId(value = "mat_name") @TableField("mat_name") private String matName; @ApiModelProperty(value= "规格") private String specs; @ApiModelProperty(value= "尺寸") private String size; @ApiModelProperty(value= "颜色") private String color; @ApiModelProperty(value= "单重") private Double weight; /** * 单据编号 */ @ApiModelProperty(value= "单据编号") @TableField("bill_no") private String billNo; /** * 序号 */ @ApiModelProperty(value= "序号") @TableField("seq_no") private Integer seqNo; /** * 仓库号 */ @ApiModelProperty(value= "品牌") private String brand; /** * 数量 */ @ApiModelProperty(value= "数量") private Double qty; /** * 单位 */ @ApiModelProperty(value= "单位") private String unit; private Double anfme; /** * 托盘条码 @@ -99,16 +46,193 @@ private String zpallet; /** * 用户ID * 物料 */ @ApiModelProperty(value= "用户ID") private String bname; @ApiModelProperty(value= "商品编号") private String matnr; /** * 备注 * 物料描述 */ @ApiModelProperty(value= "备注") private String memo; @ApiModelProperty(value= "商品名称") private String maktx; /** * 批号 */ @ApiModelProperty(value= "批号") private String batch; /** * 单据编号 */ @ApiModelProperty(value= "单据编号") @TableField("order_no") private String orderNo; /** * 规格 */ @ApiModelProperty(value= "规格") private String specs; /** * 型号 */ @ApiModelProperty(value= "型号") private String model; /** * 颜色 */ @ApiModelProperty(value= "颜色") private String color; /** * 品牌 */ @ApiModelProperty(value= "品牌") private String brand; /** * 单位 */ @ApiModelProperty(value= "单位") private String unit; /** * 单价 */ @ApiModelProperty(value= "单价") private Double price; /** * sku */ @ApiModelProperty(value= "sku") private String sku; /** * 单位量 */ @ApiModelProperty(value= "单位量") private Double units; /** * 条码 */ @ApiModelProperty(value= "条码") private String barcode; /** * 产地 */ @ApiModelProperty(value= "产地") private String origin; /** * 厂家 */ @ApiModelProperty(value= "厂家") private String manu; /** * 生产日期 */ @ApiModelProperty(value= "生产日期") @TableField("manu_date") private String manuDate; /** * 品项数 */ @ApiModelProperty(value= "品项数") @TableField("item_num") private String itemNum; /** * 安全库存量 */ @ApiModelProperty(value= "安全库存量") @TableField("safe_qty") private Double safeQty; /** * 重量 */ @ApiModelProperty(value= "重量") private Double weight; /** * 长度 */ @ApiModelProperty(value= "长度") private Double length; /** * 体积 */ @ApiModelProperty(value= "体积") private Double volume; /** * 三方编码 */ @ApiModelProperty(value= "三方编码") @TableField("three_code") private String threeCode; /** * 供应商 */ @ApiModelProperty(value= "供应商") private String supp; /** * 供应商编码 */ @ApiModelProperty(value= "供应商编码") @TableField("supp_code") private String suppCode; /** * 是否批次 1: 是 0: 否 */ @ApiModelProperty(value= "是否批次 1: 是 0: 否 ") @TableField("be_batch") private Integer beBatch; /** * 保质期 */ @ApiModelProperty(value= "保质期") @TableField("dead_time") private String deadTime; /** * 预警天数 */ @ApiModelProperty(value= "预警天数") @TableField("dead_warn") private Integer deadWarn; /** * 制购 1: 制造 2: 采购 3: 外协 */ @ApiModelProperty(value= "制购 1: 制造 2: 采购 3: 外协 ") private Integer source; /** * 要求检验 1: 是 0: 否 */ @ApiModelProperty(value= "要求检验 1: 是 0: 否 ") private Integer inspect; /** * 危险品 1: 是 0: 否 */ @ApiModelProperty(value= "危险品 1: 是 0: 否 ") private Integer danger; /** * 修改人员 @@ -138,21 +262,67 @@ @TableField("appe_time") private Date appeTime; @ApiModelProperty(value= "库位号") @TableField(exist = false) private String locNo; @TableField("Item_batch") private String itemBatch; @TableField("order_no") private String orderNo; /** * 备注 */ @ApiModelProperty(value= "备注") private String memo; public String getIoTime$(){ if (Cools.isEmpty(this.ioTime)){ return ""; } return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.ioTime); } public String getBeBatch$(){ if (null == this.beBatch){ return null; } switch (this.beBatch){ case 1: return "是"; case 0: return "否"; default: return String.valueOf(this.beBatch); } } public String getSource$(){ if (null == this.source){ return null; } switch (this.source){ case 1: return "制造"; case 2: return "采购"; case 3: return "外协"; default: return String.valueOf(this.source); } } public String getInspect$(){ if (null == this.inspect){ return null; } switch (this.inspect){ case 1: return "是"; case 0: return "否"; default: return String.valueOf(this.inspect); } } public String getDanger$(){ if (null == this.danger){ return null; } switch (this.danger){ case 1: return "是"; case 0: return "否"; default: return String.valueOf(this.danger); } } public String getModiUser$(){ @@ -187,4 +357,5 @@ return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.appeTime); } } src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -130,7 +130,7 @@ // 判断是否满足入库条件 if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() && !staProtocol.isEmptyMk() && (staProtocol.getWorkNo() == 0 || staProtocol.getWorkNo() == 9999) && !staProtocol.isEmptyMk() && (staProtocol.getWorkNo() == 0 || staProtocol.getWorkNo() > 9990) && staProtocol.isPakMk()){// && !Cools.isEmpty(barcode)) { // if(Cools.isEmpty(barcode) || "NG".endsWith(barcode) || "NoRead".equals(barcode)) { @@ -1408,7 +1408,7 @@ ledCommand.setStaNo(wrkMast.getStaNo()); if (wrkMast.getIoType() != 110) { List<WrkDetl> wrkDetls = wrkDetlService.findByWorkNo(wrkMast.getWrkNo()); wrkDetls.forEach(wrkDetl -> ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatNo(), wrkDetl.getMatName(), wrkDetl.getQty()))); wrkDetls.forEach(wrkDetl -> ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getAnfme()))); } commands.add(ledCommand); } @@ -1499,7 +1499,7 @@ } } // 获取led线程 LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, led.getDevpPlcId()); LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, led.getId()); // led显示默认内容 if (reset && !ledThread.isLedMk()) { ledThread.setLedMk(true); @@ -1553,7 +1553,7 @@ WrkDetl wrkDetl = new WrkDetl(); wrkDetl.setWrkNo(workNo); wrkDetl.setIoTime(now); wrkDetl.setQty(locDetl.getQty()); wrkDetl.setAnfme(locDetl.getAnfme()); VersionUtils.setWrkDetl(wrkDetl, locDetl); // 版本控制 wrkDetl.setAppeTime(now); wrkDetl.setModiTime(now); @@ -1670,7 +1670,7 @@ WrkDetl wrkDetl = new WrkDetl(); wrkDetl.setWrkNo(workNo); wrkDetl.setIoTime(new Date()); wrkDetl.setQty(locDetl.getQty()); wrkDetl.setAnfme(locDetl.getAnfme()); VersionUtils.setWrkDetl(wrkDetl, locDetl); // 版本控制 wrkDetl.setAppeTime(new Date()); wrkDetl.setModiTime(new Date()); src/main/java/com/zy/asrs/utils/VersionUtils.java
@@ -28,11 +28,11 @@ } public static void setWrkDetl(WrkDetl wrkDetl, LocDetl locDetl) { wrkDetl.setMatNo(locDetl.getMatNo()); // 产品编号 wrkDetl.setMatName(locDetl.getMatName()); // 产品描述 wrkDetl.setMatnr(locDetl.getMatnr()); // 产品编号 wrkDetl.setMaktx(locDetl.getMaktx()); // 产品描述 wrkDetl.setSpecs(locDetl.getSpecs()); // 规格 wrkDetl.setUnit(locDetl.getUnit()); // 单位 wrkDetl.setSize(locDetl.getSize()); // 尺寸 // wrkDetl.setSize(locDetl.getSize()); // 尺寸 wrkDetl.setColor(locDetl.getColor()); // 颜色 wrkDetl.setWeight(locDetl.getWeight()); // 单重 wrkDetl.setZpallet(locDetl.getZpallet()); // 托盘条码 @@ -52,13 +52,13 @@ } public static void setLocDetl(LocDetl locDetl, WrkDetl wrkDetl) { locDetl.setMatNo(wrkDetl.getMatNo()); // 产品编号 locDetl.setMatName(wrkDetl.getMatName()); // 产品描述 locDetl.setMatnr(wrkDetl.getMatnr()); // 产品编号 locDetl.setMaktx(wrkDetl.getMaktx()); // 产品描述 locDetl.setSpecs(wrkDetl.getSpecs()); // 规格 locDetl.setUnit(wrkDetl.getUnit()); // 单位 locDetl.setSize(wrkDetl.getSize()); // 尺寸 // locDetl.setSize(wrkDetl.getSize()); // 尺寸 locDetl.setColor(wrkDetl.getColor()); // 颜色 locDetl.setQty(wrkDetl.getQty()); // 数量 locDetl.setAnfme(wrkDetl.getAnfme()); // 数量 locDetl.setZpallet(wrkDetl.getZpallet()); // 托盘条码 } src/main/java/com/zy/core/thread/LedThread.java
@@ -40,7 +40,7 @@ TextCaptionBxArea area; DisplayStyleFactory.DisplayStyle[] styles = DisplayStyleFactory.getStyles().toArray(new DisplayStyleFactory.DisplayStyle[0]); private Set<Integer> workNos = new HashSet<>(); private boolean ledMk = true; private boolean ledMk = false; private boolean resetStatus = false; // 复位状态 public LedThread(Slave slave) { @@ -114,7 +114,7 @@ } // 设置字体 page.setFont(new Font("宋体",Font.PLAIN,10)); page.setFont(new Font("宋体",Font.PLAIN,12)); // 设置文本颜色 page.setForeground(Color.red); // 设置显示特技为快速打出 @@ -133,9 +133,9 @@ } private void reset() throws Bx5GException { // if (!connect()) { // return; // } if (!connect()) { return; } // if (resetStatus) { // return; // } @@ -146,20 +146,21 @@ // 创建一个数据页 TextBxPage page = new TextBxPage(); List<String> list = null; try { String ledDefaultMsg = Parameter.get().getLedDefaultMsg(); list = JSON.parseArray(ledDefaultMsg, String.class); } catch (Exception ignore) { } if (!Cools.isEmpty(list)) { for (String str : list) { page.newLine(str); } } else { page.newLine("自动化立体仓库"); page.newLine("西格迈股份有限公司"); } // List<String> list = null; // try { // String ledDefaultMsg = Parameter.get().getLedDefaultMsg(); // list = JSON.parseArray(ledDefaultMsg, String.class); // } catch (Exception ignore) { // } // if (!Cools.isEmpty(list)) { // for (String str : list) { // page.newLine(str); // } // } else { // page.newLine("自动化立体仓库"); // page.newLine("西格迈股份有限公司"); // } page.newLine(""); // 设置字体 page.setFont(new Font("宋体",Font.PLAIN,13)); src/main/resources/application.yml
@@ -185,39 +185,39 @@ ip: 10.10.10.201 port: 5005 devpPlcId: ${wcs-slave.devp[0].id} staArr: 110 staArr: 102 # LED2 led[1]: id: 2 ip: 10.10.10.202 port: 5005 devpPlcId: ${wcs-slave.devp[0].id} staArr: 117 staArr: 103 # LED3 led[2]: id: 3 ip: 10.10.10.203 port: 5005 devpPlcId: ${wcs-slave.devp[0].id} staArr: 124 staArr: 202 # LED4 led[3]: id: 4 ip: 10.10.10.204 port: 5005 devpPlcId: ${wcs-slave.devp[0].id} staArr: 131 staArr: 203 # LED5 led[4]: id: 5 ip: 10.10.10.205 port: 5005 devpPlcId: ${wcs-slave.devp[0].id} staArr: 136 staArr: 303 # LED6 led[5]: id: 5 ip: 10.10.10.206 port: 5005 devpPlcId: ${wcs-slave.devp[0].id} staArr: 136 staArr: 305 src/main/resources/mapper/LocDetlMapper.xml
@@ -5,24 +5,45 @@ <!-- 通用查询映射结果 --> <resultMap id="BaseResultMap" type="com.zy.asrs.entity.LocDetl"> <result column="loc_no" property="locNo" /> <result column="mat_no" property="matNo" /> <result column="mat_name" property="matName" /> <result column="specs" property="specs" /> <result column="size" property="size" /> <result column="color" property="color" /> <result column="weight" property="weight" /> <result column="supplier" property="supplier" /> <result column="warehouse" property="warehouse" /> <result column="brand" property="brand" /> <result column="qty" property="qty" /> <result column="unit" property="unit" /> <result column="zpallet" property="zpallet" /> <result column="bname" property="bname" /> <result column="memo" property="memo" /> <result column="anfme" property="anfme" /> <result column="matnr" property="matnr" /> <result column="maktx" property="maktx" /> <result column="batch" property="batch" /> <result column="order_no" property="orderNo" /> <result column="specs" property="specs" /> <result column="model" property="model" /> <result column="color" property="color" /> <result column="brand" property="brand" /> <result column="unit" property="unit" /> <result column="price" property="price" /> <result column="sku" property="sku" /> <result column="units" property="units" /> <result column="barcode" property="barcode" /> <result column="origin" property="origin" /> <result column="manu" property="manu" /> <result column="manu_date" property="manuDate" /> <result column="item_num" property="itemNum" /> <result column="safe_qty" property="safeQty" /> <result column="weight" property="weight" /> <result column="length" property="length" /> <result column="volume" property="volume" /> <result column="three_code" property="threeCode" /> <result column="supp" property="supp" /> <result column="supp_code" property="suppCode" /> <result column="be_batch" property="beBatch" /> <result column="dead_time" property="deadTime" /> <result column="dead_warn" property="deadWarn" /> <result column="source" property="source" /> <result column="inspect" property="inspect" /> <result column="danger" property="danger" /> <result column="modi_user" property="modiUser" /> <result column="modi_time" property="modiTime" /> <result column="appe_user" property="appeUser" /> <result column="appe_time" property="appeTime" /> <result column="memo" property="memo" /> </resultMap> <sql id="stockOutCondition"> @@ -30,10 +51,10 @@ and a.loc_no like '%' + #{loc_no} + '%' </if> <if test="matNo!=null and matNo!='' "> and a.mat_no like '%' + #{matNo} + '%' and a.matnr like '%' + #{matNo} + '%' </if> <if test="matName!=null and matName!='' "> and a.mat_name like '%' + #{matName} + '%' and a.maktx like '%' + #{matName} + '%' </if> <if test="anfme!=null and anfme!='' "> and a.anfme like '%' + #{anfme} + '%' src/main/resources/mapper/WrkDetlMapper.xml
@@ -6,8 +6,8 @@ <resultMap id="BaseResultMap" type="com.zy.asrs.entity.WrkDetl"> <result column="wrk_no" property="wrkNo" /> <result column="io_time" property="ioTime" /> <result column="mat_no" property="matNo" /> <result column="mat_name" property="matName" /> <result column="matnr" property="matnr" /> <result column="maktx" property="maktx" /> <result column="specs" property="specs" /> <result column="size" property="size" /> <result column="color" property="color" /> @@ -15,7 +15,7 @@ <result column="bill_no" property="billNo" /> <result column="seq_no" property="seqNo" /> <result column="brand" property="brand" /> <result column="qty" property="qty" /> <result column="anfme" property="anfme" /> <result column="unit" property="unit" /> <result column="zpallet" property="zpallet" /> <result column="bname" property="bname" /> @@ -27,7 +27,7 @@ </resultMap> <select id="findByWorkNo" resultMap="BaseResultMap"> select wrk_no, mat_no, mat_name, qty from asr_wrk_detl where 1=1 and wrk_no = #{workNo} select wrk_no, matnr, maktx, anfme from asr_wrk_detl where 1=1 and wrk_no = #{workNo} </select> <update id="updateIoTime">