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/WrkDetlService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/impl/WrkDetlServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/utils/VersionUtils.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/common/utils/Synchro.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/mapper/LocDetlMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/zy/asrs/entity/LocDetl.java
@@ -40,17 +40,18 @@ @ExcelProperty("商品名称") private String maktx; @ApiModelProperty(value= "批号") @ExcelProperty("批号") @ApiModelProperty(value= "规格") @ExcelProperty("规格") private String specs; @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; @@ -98,8 +99,7 @@ private Double weight; @ApiModelProperty(value= "长度") @TableField("man_length") private Double manLength; private Double man_length; @ApiModelProperty(value= "体积") private Double volume; @@ -155,6 +155,57 @@ @ApiModelProperty(value= "备注") private String memo; /** * 拥有者 */ @ApiModelProperty(value= "拥有者 1: 杰克 ") private Integer owner; /** * 备用1 */ @ApiModelProperty(value= "备用1") private String standby1 = ""; /** * 备用2 */ @ApiModelProperty(value= "备用2") private String standby2 = ""; /** * 备用3 */ @ApiModelProperty(value= "备用3") private String standby3 = ""; /** * 备用1 */ @ApiModelProperty(value= "备用1") @TableField("box_type1") private String boxType1 = ""; /** * 备用2 */ @ApiModelProperty(value= "备用2") @TableField("box_type2") private String boxType2 = ""; /** * 备用3 */ @ApiModelProperty(value= "备用3") @TableField("box_type3") private String boxType3 = ""; /** * 是否冻结 */ @ApiModelProperty(value= "是否冻结,0.未冻结,1.已冻结") private Integer frozen; public String getLocNo$(){ LocMastService service = SpringUtils.getBean(LocMastService.class); LocMast locMast = service.selectById(this.locNo); src/main/java/com/zy/asrs/entity/WrkDetl.java
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotations.TableName; import com.core.common.Cools; import com.core.common.SpringUtils; import com.zy.common.utils.Synchro; import com.zy.system.entity.User; import com.zy.system.service.UserService; import io.swagger.annotations.ApiModelProperty; @@ -418,5 +419,8 @@ return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.appeTime); } public void sync(Object source) { Synchro.Copy(source, this); } } src/main/java/com/zy/asrs/service/WrkDetlService.java
@@ -9,8 +9,6 @@ public interface WrkDetlService extends IService<WrkDetl> { void createWorkDetail(Integer workNo, List<WaitPakin> waitPakins, String barcode); List<WrkDetl> findByWorkNo(Integer workNo); boolean updateIoTime(Integer workNo, Date ioTime); src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -1859,10 +1859,11 @@ List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", shallowLoc.getLocNo())); for (LocDetl locDetl : locDetls) { WrkDetl wrkDetl = new WrkDetl(); wrkDetl.sync(locDetl); wrkDetl.setWrkNo(workNo); wrkDetl.setIoTime(now); wrkDetl.setAnfme(locDetl.getAnfme()); VersionUtils.setWrkDetl(wrkDetl, locDetl); // 版本控制 // VersionUtils.setWrkDetl(wrkDetl, locDetl); // 版本控制 wrkDetl.setAppeTime(now); wrkDetl.setModiTime(now); if (!wrkDetlService.insert(wrkDetl)) { @@ -1983,10 +1984,11 @@ for (LocDetl locDetl : locDetls) { WrkDetl wrkDetl = new WrkDetl(); wrkDetl.sync(locDetl); wrkDetl.setWrkNo(workNo); wrkDetl.setIoTime(new Date()); wrkDetl.setAnfme(locDetl.getAnfme()); VersionUtils.setWrkDetl(wrkDetl, locDetl); // 版本控制 // VersionUtils.setWrkDetl(wrkDetl, locDetl); // 版本控制 wrkDetl.setAppeTime(new Date()); wrkDetl.setModiTime(new Date()); if (!wrkDetlService.insert(wrkDetl)) { src/main/java/com/zy/asrs/service/impl/WrkDetlServiceImpl.java
@@ -1,52 +1,16 @@ package com.zy.asrs.service.impl; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.core.common.Cools; import com.core.exception.CoolException; import com.zy.asrs.entity.MatCode; import com.zy.asrs.entity.WaitPakin; import com.zy.asrs.entity.WrkDetl; import com.zy.asrs.mapper.WrkDetlMapper; import com.zy.asrs.service.MatCodeService; import com.zy.asrs.service.WrkDetlService; import com.zy.asrs.utils.VersionUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.Date; import java.util.List; @Service("wrkDetlService") public class WrkDetlServiceImpl extends ServiceImpl<WrkDetlMapper, WrkDetl> implements WrkDetlService { @Autowired private MatCodeService matCodeService; @Override @Transactional public void createWorkDetail(Integer workNo, List<WaitPakin> waitPakins, String barcode) { if (waitPakins.isEmpty()){ return; } for (WaitPakin waitPakin : waitPakins) { MatCode matCode = matCodeService.selectById(waitPakin.getMatnr()); if (Cools.isEmpty(matCode)){ throw new CoolException("物料条码数据为空"); } // 保持工作档明细 WrkDetl wrkDetl = new WrkDetl(); wrkDetl.setWrkNo(workNo); wrkDetl.setIoTime(new Date()); VersionUtils.setWrkDetl(wrkDetl, matCode); // 版本控制 wrkDetl.setZpallet(barcode); // 托盘条码 wrkDetl.setAppeTime(new Date()); wrkDetl.setModiTime(new Date()); if (!this.insert(wrkDetl)) { throw new CoolException("保存工作明细失败"); } } } @Override public List<WrkDetl> findByWorkNo(Integer workNo) { src/main/java/com/zy/asrs/utils/VersionUtils.java
@@ -1,66 +1,12 @@ package com.zy.asrs.utils; import com.core.exception.CoolException; import com.zy.asrs.entity.LocDetl; import com.zy.asrs.entity.LocMast; import com.zy.asrs.entity.MatCode; import com.zy.asrs.entity.WrkDetl; import com.zy.common.model.LocTypeDto; /** * Created by vincent on 2020/7/14 */ public class VersionUtils { // 业务 ---------------------------------------------------------------------- public static void setWrkDetl(WrkDetl wrkDetl, MatCode matCode) { // wrkDetl.setMatNo(matCode.getMatNo()); // 物料编号 // wrkDetl.setMatName(matCode.getMatName()); // 物料描述 // wrkDetl.setLgnum(matCode.getStr2()); // 规格 // wrkDetl.setType(matCode.getStr5()); // 型号 // wrkDetl.setColor(matCode.getBarcode()); // 条码 // wrkDetl.setSupplier(matCode.getStr6()); // 批号 // wrkDetl.setWarehouse(matCode.getStr7()); // 单据编号 // wrkDetl.setBrand(matCode.getStr3()); // 品项数 // wrkDetl.setAltme(matCode.getStr1()); // 单位 // wrkDetl.setBname(matCode.getStr4()); // 客户名称 } public static void setWrkDetl(WrkDetl wrkDetl, LocDetl locDetl) { wrkDetl.setMatnr(locDetl.getMatnr()); // 产品编号 wrkDetl.setMaktx(locDetl.getMaktx()); // 产品描述 wrkDetl.setSpecs(locDetl.getSpecs()); // 规格 wrkDetl.setUnit(locDetl.getUnit()); // 单位 // wrkDetl.setSize(locDetl.getSize()); // 尺寸 wrkDetl.setColor(locDetl.getColor()); // 颜色 wrkDetl.setWeight(locDetl.getWeight()); // 单重 wrkDetl.setZpallet(locDetl.getZpallet()); // 托盘条码 } public static void setLocDetl(LocDetl locDetl, MatCode matCode) { // locDetl.setMatNo(matCode.getMatNo()); // 物料编号 // locDetl.setMatName(matCode.getMatName()); // 物料描述 // locDetl.setLgnum(matCode.getStr2()); // 规格 // locDetl.setType(matCode.getStr5()); // 型号 // locDetl.setColor(matCode.getBarcode()); // 条码 // locDetl.setSupplier(matCode.getStr6()); // 批号 // locDetl.setWarehouse(matCode.getStr7()); // 单据编号 // locDetl.setBrand(matCode.getStr3()); // 品项数 // locDetl.setAltme(matCode.getStr1()); // 单位 // locDetl.setBname(matCode.getStr4()); // 客户名称 } public static void setLocDetl(LocDetl locDetl, WrkDetl wrkDetl) { locDetl.setMatnr(wrkDetl.getMatnr()); // 产品编号 locDetl.setMaktx(wrkDetl.getMaktx()); // 产品描述 locDetl.setSpecs(wrkDetl.getSpecs()); // 规格 locDetl.setUnit(wrkDetl.getUnit()); // 单位 // locDetl.setSize(wrkDetl.getSize()); // 尺寸 locDetl.setColor(wrkDetl.getColor()); // 颜色 locDetl.setAnfme(wrkDetl.getAnfme()); // 数量 locDetl.setZpallet(wrkDetl.getZpallet()); // 托盘条码 } /** * 库位移转时类型检测 src/main/java/com/zy/common/utils/Synchro.java
New file @@ -0,0 +1,38 @@ package com.zy.common.utils; import com.core.exception.CoolException; import java.beans.BeanInfo; import java.beans.Introspector; import java.beans.PropertyDescriptor; import java.lang.reflect.Method; /** * Created by vincent on 2022/4/1 */ public class Synchro { public static void Copy(Object source, Object dest) { try { BeanInfo sourceBean = Introspector.getBeanInfo(source.getClass(),Object.class); PropertyDescriptor[] sourceProperty = sourceBean.getPropertyDescriptors(); BeanInfo destBean = Introspector.getBeanInfo(dest.getClass(),Object.class); PropertyDescriptor[] destProperty = destBean.getPropertyDescriptors(); for (PropertyDescriptor propertyDescriptor : sourceProperty) { for (PropertyDescriptor descriptor : destProperty) { if (propertyDescriptor.getName().equals(descriptor.getName()) && propertyDescriptor.getPropertyType() == descriptor.getPropertyType()) { Method readMethod = propertyDescriptor.getReadMethod(); Method writeMethod = descriptor.getWriteMethod(); if (null != writeMethod && null != readMethod) { writeMethod.invoke(dest, readMethod.invoke(source)); } } } } } catch (Exception e) { e.printStackTrace(); throw new CoolException("属性复制失败:" + e.getMessage()); } } } src/main/resources/mapper/LocDetlMapper.xml
@@ -44,6 +44,13 @@ <result column="appe_user" property="appeUser" /> <result column="appe_time" property="appeTime" /> <result column="memo" property="memo" /> <result column="frozen" property="frozen" /> <result column="standby1" property="standby1" /> <result column="standby2" property="standby2" /> <result column="standby3" property="standby3" /> <result column="box_type1" property="boxType1" /> <result column="box_type2" property="boxType2" /> <result column="box_type3" property="boxType3" /> </resultMap> <sql id="stockOutCondition">