src/main/java/com/zy/asrs/entity/AdjDetl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/mapper/AdjDetlMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/zy/asrs/entity/AdjDetl.java
@@ -7,15 +7,16 @@ import com.core.common.Cools; import com.core.common.SpringUtils; import com.zy.asrs.service.LocMastService; import com.zy.asrs.service.MatService; import com.zy.system.service.UserService; import com.zy.system.entity.User; import com.zy.system.service.UserService; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.io.Serializable; import java.text.SimpleDateFormat; import java.util.Date; @Data @TableName("asr_adj_detl") public class AdjDetl implements Serializable { @@ -37,11 +38,16 @@ private String locNo; /** * 物料编号 * 商品编号 */ @ApiModelProperty(value= "物料编号") @TableField("mat_no") private String matNo; @ApiModelProperty(value= "商品编号") private String matnr; /** * 批号 */ @ApiModelProperty(value= "批号") private String batch; /** * 原箱数 @@ -121,9 +127,10 @@ public AdjDetl() {} public AdjDetl(String locNo,String matNo,Double oriCtns,Double oriQty,Double oriWt,Double adjCtns,Double adjQty,Double adjWt,String memo,Long modiUser,Date modiTime,Long appeUser,Date appeTime) { public AdjDetl(String locNo, String matnr, String batch, Double oriCtns, Double oriQty, Double oriWt, Double adjCtns, Double adjQty, Double adjWt, String memo, Long modiUser, Date modiTime, Long appeUser, Date appeTime) { this.locNo = locNo; this.matNo = matNo; this.matnr = matnr; this.batch = batch; this.oriCtns = oriCtns; this.oriQty = oriQty; this.oriWt = oriWt; @@ -140,6 +147,7 @@ // AdjDetl adjDetl = new AdjDetl( // null, // 库位号[非空] // null, // 物料编号[非空] // null, // 批号 // null, // 原箱数 // null, // 原数量 // null, // 原重量 @@ -153,17 +161,6 @@ // null // 添加时间 // ); public Long getAdjId() { return adjId; } public void setAdjId(Long adjId) { this.adjId = adjId; } public String getLocNo() { return locNo; } public String getLocNo$(){ LocMastService service = SpringUtils.getBean(LocMastService.class); @@ -174,86 +171,6 @@ return null; } public void setLocNo(String locNo) { this.locNo = locNo; } public String getMatNo() { return matNo; } public String getMatNo$(){ MatService service = SpringUtils.getBean(MatService.class); Mat mat = service.selectByMatnr(this.matNo); if (!Cools.isEmpty(mat)){ return String.valueOf(mat.getMatnr()); } return null; } public void setMatNo(String matNo) { this.matNo = matNo; } public Double getOriCtns() { return oriCtns; } public void setOriCtns(Double oriCtns) { this.oriCtns = oriCtns; } public Double getOriQty() { return oriQty; } public void setOriQty(Double oriQty) { this.oriQty = oriQty; } public Double getOriWt() { return oriWt; } public void setOriWt(Double oriWt) { this.oriWt = oriWt; } public Double getAdjCtns() { return adjCtns; } public void setAdjCtns(Double adjCtns) { this.adjCtns = adjCtns; } public Double getAdjQty() { return adjQty; } public void setAdjQty(Double adjQty) { this.adjQty = adjQty; } public Double getAdjWt() { return adjWt; } public void setAdjWt(Double adjWt) { this.adjWt = adjWt; } public String getMemo() { return memo; } public void setMemo(String memo) { this.memo = memo; } public Long getModiUser() { return modiUser; } public String getModiUser$(){ UserService service = SpringUtils.getBean(UserService.class); @@ -264,35 +181,11 @@ return null; } public void setModiUser(Long modiUser) { this.modiUser = modiUser; } public Date getModiTime() { return modiTime; } public String getModiTime$(){ if (Cools.isEmpty(this.modiTime)){ return ""; } return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.modiTime); } public void setModiTime(Date modiTime) { this.modiTime = modiTime; } public Long getAppeUser() { return appeUser; } public void setAppeUser(Long appeUser) { this.appeUser = appeUser; } public Date getAppeTime() { return appeTime; } public String getAppeTime$(){ @@ -301,10 +194,5 @@ } return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.appeTime); } public void setAppeTime(Date appeTime) { this.appeTime = appeTime; } } src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -584,79 +584,117 @@ if (Cools.isEmpty(locMast)) { throw new CoolException("库位不存在"); } for (LocDetlAdjustParam.LocDetlAdjust adjust : param.getList()) { if (Cools.isEmpty(adjust.getMatnr())) { throw new CoolException(BaseRes.PARAM); if (!(locMast.getLocSts().equals("F") || locMast.getLocSts().equals("D") || locMast.getLocSts().equals("O"))) { throw new CoolException("当前库位不可调整!库位状态:" + locMast.getLocSts$()); } LocDetl sqlParam = new LocDetl(); sqlParam.setLocNo(locMast.getLocNo()); sqlParam.setMatnr(adjust.getMatnr()); LocDetl one = locDetlService.selectOne(new EntityWrapper<>(sqlParam)); // 保存新库存明细 if (Cools.isEmpty(one)) { if (adjust.getCount() == 0){ continue; Date now = new Date(); List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", param.getLocNo())); List<LocDetlAdjustParam.LocDetlAdjust> list = param.getList(); // 修改数量 Iterator<LocDetl> iterator = locDetls.iterator(); while (iterator.hasNext()) { LocDetl locDetl = iterator.next(); Iterator<LocDetlAdjustParam.LocDetlAdjust> iterator1 = list.iterator(); while (iterator1.hasNext()) { LocDetlAdjustParam.LocDetlAdjust adjust = iterator1.next(); if (adjust.getCount() == 0) { continue; } if (locDetl.getMatnr().equals(adjust.getMatnr()) && Cools.eq(locDetl.getBatch(), adjust.getBatch())) { if (!locDetl.getAnfme().equals(adjust.getCount())) { // todo 盘点记录 // 修改库存 if (!locDetlService.updateAnfme(adjust.getCount(), locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getBatch())) { throw new CoolException(locDetl.getLocNo() + "库位," + locDetl.getMatnr() + "商品," + locDetl.getBatch() + "批号修改数量失败"); } // 保存调整记录 AdjDetl adjDetl = new AdjDetl(); adjDetl.setLocNo(locDetl.getLocNo()); adjDetl.setMatnr(locDetl.getMatnr()); adjDetl.setBatch(locDetl.getBatch()); adjDetl.setOriQty(locDetl.getAnfme()); adjDetl.setAdjQty(adjust.getCount()); adjDetl.setModiTime(now); adjDetl.setModiUser(userId); adjDetl.setAppeTime(now); adjDetl.setAppeUser(userId); adjDetlService.save(adjDetl, userId); } iterator.remove(); iterator1.remove(); } } } // 删除库存 for (LocDetl locDetl : locDetls) { // todo 盘点记录 if (!locDetlService.updateAnfme(-1.0D, locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getBatch())) { throw new CoolException("删除" + locDetl.getLocNo() + "库位," + locDetl.getMatnr() + "商品," + locDetl.getBatch() + "批号库存明细失败"); } // 保存调整记录 AdjDetl adjDetl = new AdjDetl(); adjDetl.setLocNo(locDetl.getLocNo()); adjDetl.setMatnr(locDetl.getMatnr()); adjDetl.setBatch(locDetl.getBatch()); adjDetl.setOriQty(locDetl.getAnfme()); adjDetl.setAdjQty(0.0D); adjDetl.setModiTime(now); adjDetl.setModiUser(userId); adjDetl.setAppeTime(now); adjDetl.setAppeUser(userId); adjDetlService.save(adjDetl, userId); } // 添加库存 for (LocDetlAdjustParam.LocDetlAdjust adjust : list) { if (adjust.getCount() == 0.0D) { continue; } Mat mat = matService.selectByMatnr(adjust.getMatnr()); LocDetl locDetl = new LocDetl(); locDetl.sync(mat); locDetl.setLocNo(locMast.getLocNo()); locDetl.setAnfme(adjust.getCount()); // 数量 locDetl.setModiUser(userId); // 操作人员信息 locDetl.setModiTime(new Date()); locDetl.setModiTime(now); locDetl.setAppeUser(userId); locDetl.setAppeTime(new Date()); locDetl.setAppeTime(now); if (!locDetlService.insert(locDetl)) { throw new CoolException("保存库存明细失败"); } // 保存调整记录 AdjDetl adjDetl = new AdjDetl(); adjDetl.setLocNo(locDetl.getLocNo()); adjDetl.setMatNo(locDetl.getMatnr()); adjDetl.setLocNo(locMast.getLocNo()); adjDetl.setMatnr(adjust.getMatnr()); adjDetl.setBatch(adjust.getBatch()); adjDetl.setOriQty(0.0D); adjDetl.setAdjQty(adjust.getCount()); adjDetlService.save(adjDetl, userId); // 修改原库存明细 } else { // 如果数量修改,则更新库存明细 if (!adjust.getCount().equals(one.getAnfme())) { // 当数量被修改为 0 时,直接清除库存明细 if (adjust.getCount() == 0) { // 删除库存 if (!locDetlService.delete(new EntityWrapper<>(one))) { throw new CoolException("清除库存明细失败"); } } else { LocDetl sqlParam1 = new LocDetl(); sqlParam1.setAnfme(adjust.getCount()); sqlParam1.setModiTime(new Date()); sqlParam1.setModiUser(userId); if (!locDetlService.update(sqlParam1, new EntityWrapper<LocDetl>() .eq("loc_no", locMast.getLocNo()) .eq("matnr", adjust.getMatnr()))) { throw new CoolException("修改库存明细失败"); } } // 保存调整记录 AdjDetl adjDetl = new AdjDetl(); adjDetl.setLocNo(locMast.getLocNo()); adjDetl.setMatNo(adjust.getMatnr()); adjDetl.setOriQty(one.getAnfme()); adjDetl.setAdjQty(adjust.getCount()); adjDetl.setModiTime(now); adjDetl.setModiUser(userId); adjDetl.setAppeTime(now); adjDetl.setAppeUser(userId); adjDetlService.save(adjDetl, userId); } } } List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", param.getLocNo())); if (locDetls.isEmpty()) { // 修改库位状态 int count = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("loc_no", locMast.getLocNo())); if (locMast.getLocSts().equals("F")) { if (count == 0) { locMast.setLocSts("D"); } } if (locMast.getLocSts().equals("D") || locMast.getLocSts().equals("O")) { if (count > 0) { locMast.setLocSts("F"); } } locMast.setModiUser(userId); locMast.setModiTime(new Date()); if (!locMastService.updateById(locMast)) { throw new CoolException("更新库位状态失败"); } } } @Override @Transactional src/main/resources/mapper/AdjDetlMapper.xml
@@ -6,7 +6,8 @@ <resultMap id="BaseResultMap" type="com.zy.asrs.entity.AdjDetl"> <id column="adj_id" property="adjId" /> <result column="loc_no" property="locNo" /> <result column="mat_no" property="matNo" /> <result column="matnr" property="matnr" /> <result column="batch" property="batch" /> <result column="ori_ctns" property="oriCtns" /> <result column="ori_qty" property="oriQty" /> <result column="ori_wt" property="oriWt" />