提交 退库

master
wanghao 1 month ago
parent b2b089dded
commit 9410d543a6

@ -17,9 +17,7 @@ import java.util.List;
public class WmsPdaApiController extends BaseController { public class WmsPdaApiController extends BaseController {
private final IWmsPdaApiService apiService; private final IWmsPdaApiService apiService;
private final IWmsReturnOrderService wmsReturnOrderService; private final IWmsReturnOrderService wmsReturnOrderService;
private final IWmsPsmStorePlaceService wmsPsmStorePlaceService; private final IWmsPsmStorePlaceService wmsPsmStorePlaceService;
private final IWmsBaseLocationService baseLocationService; private final IWmsBaseLocationService baseLocationService;
private final IWmsHppStorePlaceService wmsHppStorePlaceService; private final IWmsHppStorePlaceService wmsHppStorePlaceService;

@ -85,5 +85,7 @@ public class WmsHppOutStockDetail{
private Long materialId; private Long materialId;
private double outQty;
} }

@ -27,97 +27,81 @@ public class WmsReturnOrderBo extends BaseEntity{
/** /**
* *
*/ */
// @NotNull(message = "表主键不能为空", groups = { AddGroup.class, EditGroup.class })
private Long roId; private Long roId;
/** /**
* ID * ID
*/ */
// @NotNull(message = "物料ID不能为空", groups = { AddGroup.class, EditGroup.class })
private Long materialId; private Long materialId;
/** /**
* *
*/ */
// @NotBlank(message = "物料大类不能为空", groups = { AddGroup.class, EditGroup.class })
private String materialCategoryId; private String materialCategoryId;
/** /**
* *
*/ */
// @NotBlank(message = "批次条码不能为空", groups = { AddGroup.class, EditGroup.class })
private String batchCode; private String batchCode;
/** /**
* *
*/ */
// @NotNull(message = "计划数量不能为空", groups = { AddGroup.class, EditGroup.class })
private BigDecimal planAmount; private BigDecimal planAmount;
/** /**
* ID * ID
*/ */
// @NotNull(message = "仓库ID不能为空", groups = { AddGroup.class, EditGroup.class })
private Long warehouseId; private Long warehouseId;
/** /**
* 退 * 退
*/ */
// @NotBlank(message = "计划退库库位不能为空", groups = { AddGroup.class, EditGroup.class })
private String planLocationCode; private String planLocationCode;
/** /**
* 退 * 退
*/ */
// @NotBlank(message = "退库工单状态不能为空", groups = { AddGroup.class, EditGroup.class })
private String orderStatus; private String orderStatus;
/** /**
* *
*/ */
// @NotNull(message = "实际数量不能为空", groups = { AddGroup.class, EditGroup.class })
private BigDecimal returnAmount; private BigDecimal returnAmount;
/** /**
* 退 * 退
*/ */
// @NotBlank(message = "实际退库库位不能为空", groups = { AddGroup.class, EditGroup.class })
private String returnLocationCode; private String returnLocationCode;
/** /**
* *
*/ */
// @NotBlank(message = "审核人不能为空", groups = { AddGroup.class, EditGroup.class })
private String auditBy; private String auditBy;
/** /**
* *
*/ */
// @NotNull(message = "审核时间不能为空", groups = { AddGroup.class, EditGroup.class })
private Date auditTime; private Date auditTime;
/** /**
* (0,1,2) * (0,1,2)
*/ */
// @NotBlank(message = "审核状态(0待审核,1审核通过,2审核未通过)不能为空", groups = { AddGroup.class, EditGroup.class })
private String auditStatus; private String auditStatus;
/** /**
* *
*/ */
// @NotBlank(message = "审核意见不能为空", groups = { AddGroup.class, EditGroup.class })
private String auditComments; private String auditComments;
/** /**
* erp * erp
*/ */
// @NotBlank(message = "erp同步状态不能为空", groups = { AddGroup.class, EditGroup.class })
private String erpSynchronousStatus; private String erpSynchronousStatus;
/** /**
* erp * erp
*/ */
// @NotNull(message = "erp同步数量不能为空", groups = { AddGroup.class, EditGroup.class })
private Long erpSynchronousQty; private Long erpSynchronousQty;
private String tenantId; private String tenantId;
private String materialCode; private String materialCode;

@ -17,6 +17,6 @@ import org.springframework.stereotype.Repository;
public interface WmsHppStorageDetailMapper extends BaseMapperPlus<WmsHppStorageDetail, WmsHppStorageDetailVo> { public interface WmsHppStorageDetailMapper extends BaseMapperPlus<WmsHppStorageDetail, WmsHppStorageDetailVo> {
@Select("select top 1 obj_id, card_no,shelf_no,material_id,store_place_code,storage_num,material_code,unit_name,create_time," + @Select("select top 1 obj_id, card_no,shelf_no,material_id,store_place_code,storage_num,material_code,unit_name,create_time," +
" dateadd(hh, min_parking_time, create_time) as min_time,dateadd(hh, max_parking_time, create_time) as max_time " + " dateadd(hh, min_parking_time, create_time) as min_time,dateadd(hh, max_parking_time, create_time) as max_time " +
"from wms_hpp_storage_detail where card_no=#{code} ") "from wms_hpp_storage_detail where card_no=#{code} order by create_time desc ")
WmsHppStorageDetailVo selectHppStorageDetailInfobyCode(String code); WmsHppStorageDetailVo selectHppStorageDetailInfobyCode(String code);
} }

@ -3,6 +3,8 @@ package org.dromara.wms.mapper;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import org.dromara.wms.domain.WmsReturnOrder; import org.dromara.wms.domain.WmsReturnOrder;
import org.dromara.wms.domain.vo.WmsReturnOrderVo; import org.dromara.wms.domain.vo.WmsReturnOrderVo;
import org.springframework.stereotype.Repository;
import org.springframework.web.bind.annotation.RequestBody;
/** /**
* 退Mapper * 退Mapper
@ -10,6 +12,7 @@ import org.dromara.wms.domain.vo.WmsReturnOrderVo;
* @author LionLi * @author LionLi
* @date 2025-01-09 * @date 2025-01-09
*/ */
@Repository
public interface WmsReturnOrderMapper extends BaseMapperPlus<WmsReturnOrder, WmsReturnOrderVo> { public interface WmsReturnOrderMapper extends BaseMapperPlus<WmsReturnOrder, WmsReturnOrderVo> {
} }

@ -155,17 +155,18 @@ public class WmsPdaApiServiceImpl implements IWmsPdaApiService {
@Override @Override
public Boolean semiSubmitOutInfo(WmsHppStorageDetailVo vo) { public Boolean semiSubmitOutInfo(WmsHppStorageDetailVo vo) {
if (vo.getStorageNum() == vo.getOutNumber()) { // if (vo.getStorageNum() == vo.getOutNumber()) {
hppStorageDetailMapper.deleteById(vo.getObjId()); // hppStorageDetailMapper.deleteById(vo.getObjId());
} else { // } else {
LambdaUpdateWrapper<WmsHppStorageDetail> updateWrapper = new LambdaUpdateWrapper<>(); // LambdaUpdateWrapper<WmsHppStorageDetail> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(WmsHppStorageDetail::getObjId, vo.getObjId()).set(WmsHppStorageDetail::getStorageNum, vo.getStorageNum() - vo.getOutNumber()).set(WmsHppStorageDetail::getUpdateTime, DateUtils.getTime()); // updateWrapper.eq(WmsHppStorageDetail::getObjId, vo.getObjId()).set(WmsHppStorageDetail::getStorageNum, vo.getStorageNum() - vo.getOutNumber()).set(WmsHppStorageDetail::getUpdateTime, DateUtils.getTime());
hppStorageDetailMapper.update(updateWrapper); // hppStorageDetailMapper.update(updateWrapper);
} // }
WmsHppOutStockDetail outStockDetail = new WmsHppOutStockDetail(); WmsHppOutStockDetail outStockDetail = new WmsHppOutStockDetail();
BeanUtils.copyProperties(vo, outStockDetail); BeanUtils.copyProperties(vo, outStockDetail);
outStockDetail.setObjId(null); outStockDetail.setObjId(null);
outStockDetail.setCreateBy(LoginHelper.getUsername()); outStockDetail.setCreateBy(LoginHelper.getUsername());
outStockDetail.setOutQty(vo.getOutNumber());
// System.out.println(outStockDetail.getStorePlaceCode()); // System.out.println(outStockDetail.getStorePlaceCode());
hppOutStockDetailMapper.insert(outStockDetail); hppOutStockDetailMapper.insert(outStockDetail);
return true; return true;

@ -136,8 +136,6 @@ public class WmsReturnOrderServiceImpl implements IWmsReturnOrderService {
@Override @Override
public Boolean insertByBo(WmsReturnOrderBo bo) { public Boolean insertByBo(WmsReturnOrderBo bo) {
WmsReturnOrder add = MapstructUtils.convert(bo, WmsReturnOrder.class); WmsReturnOrder add = MapstructUtils.convert(bo, WmsReturnOrder.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0; boolean flag = baseMapper.insert(add) > 0;
if (flag) { if (flag) {
bo.setRoId(add.getRoId()); bo.setRoId(add.getRoId());
@ -154,17 +152,11 @@ public class WmsReturnOrderServiceImpl implements IWmsReturnOrderService {
@Override @Override
public Boolean updateByBo(WmsReturnOrderBo bo) { public Boolean updateByBo(WmsReturnOrderBo bo) {
WmsReturnOrder update = MapstructUtils.convert(bo, WmsReturnOrder.class); WmsReturnOrder update = MapstructUtils.convert(bo, WmsReturnOrder.class);
validEntityBeforeSave(update);
update.setUpdateBy(LoginHelper.getUsername()); update.setUpdateBy(LoginHelper.getUsername());
return baseMapper.updateById(update) > 0; return baseMapper.updateById(update) > 0;
} }
/**
*
*/
private void validEntityBeforeSave(WmsReturnOrder entity){
//TODO 做一些数据校验,如唯一约束
}
/** /**
* 退 * 退
@ -175,9 +167,6 @@ public class WmsReturnOrderServiceImpl implements IWmsReturnOrderService {
*/ */
@Override @Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) { public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteByIds(ids) > 0; return baseMapper.deleteByIds(ids) > 0;
} }
} }

@ -38,13 +38,12 @@
<result column="load_amount" property="loadAmount"/> <result column="load_amount" property="loadAmount"/>
</resultMap> </resultMap>
<select id="productSelectVehicleInfo" resultMap="WmsPsmInLoadVoResultMap"> <select id="productSelectVehicleInfo" resultMap="WmsPsmInLoadVoResultMap">
SELECT top 1 in_load_id, SELECT top 1 in_load_id, tooling_barcode,
tooling_barcode, material_id,
material_id, material_spe,
material_spe, check_grade_code,
check_grade_code, load_amount,
load_amount, material_code
material_code
FROM wms_psm_in_load FROM wms_psm_in_load
WHERE tooling_barcode = #{code} WHERE tooling_barcode = #{code}
AND store_place_code IS NULL AND store_place_code IS NULL
@ -131,11 +130,10 @@
<result property="toolingRfidBarcode" column="tooling_rfid_barcode"/> <result property="toolingRfidBarcode" column="tooling_rfid_barcode"/>
</resultMap> </resultMap>
<select id="productBindSelectVehicle" resultMap="baseToolInfoMap"> <select id="productBindSelectVehicle" resultMap="baseToolInfoMap">
select top 1 tooling_id, select top 1 tooling_id, tooling_code,
tooling_code, tooling_name,
tooling_name, tooling_barcode,
tooling_barcode, tooling_rfid_barcode
tooling_rfid_barcode
from base_tooling_info from base_tooling_info
where del_flag = '0' where del_flag = '0'
AND tooling_type_id = 301 AND tooling_type_id = 301
@ -148,15 +146,29 @@
</resultMap> </resultMap>
<select id="productBindSelectTyreCode" resultMap="tyreInfoMap"> <select id="productBindSelectTyreCode" resultMap="tyreInfoMap">
select material_id,return_barcode from prod_product_plan_detail_4 where return_barcode =#{code} select material_id, return_barcode
from prod_product_plan_detail_4
where return_barcode = #{code}
</select> </select>
<resultMap id="OutRecord" type="org.dromara.wms.domain.vo.WmsOutstockRecordVo"> <resultMap id="OutRecord" type="org.dromara.wms.domain.vo.WmsOutstockRecordVo">
<result column="card_no" property="batchCode"/>
<result column="store_place_code" property="locationCode"/>
<result column="material_name" property="materialName"/>
<result column="out_qty" property="outstockQty"/>
<result column="obj_id" property="outstockRecordId"/>
</resultMap> </resultMap>
<select id="setHppOutRecord" resultMap="OutRecord"> <select id="setHppOutRecord" resultMap="OutRecord">
select top 1 card_no, out.obj_id,
out.store_place_code,
mater.material_name,
out.out_qty
from wms_hpp_out_stock_detail out
left join dbo.wms_hpp_store_place whsp on out.store_place_id = whsp.obj_id
left join base_material_info mater on mater.material_id = out.material_id
WHERE card_no = #{code}
ORDER BY out.create_time DESC
</select> </select>

Loading…
Cancel
Save