提交 退库

master
wanghao 1 month ago
parent b2b089dded
commit 9410d543a6

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

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

@ -17,6 +17,6 @@ import org.springframework.stereotype.Repository;
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," +
" 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);
}

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

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

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

@ -38,13 +38,12 @@
<result column="load_amount" property="loadAmount"/>
</resultMap>
<select id="productSelectVehicleInfo" resultMap="WmsPsmInLoadVoResultMap">
SELECT top 1 in_load_id,
tooling_barcode,
material_id,
material_spe,
check_grade_code,
load_amount,
material_code
SELECT top 1 in_load_id, tooling_barcode,
material_id,
material_spe,
check_grade_code,
load_amount,
material_code
FROM wms_psm_in_load
WHERE tooling_barcode = #{code}
AND store_place_code IS NULL
@ -131,11 +130,10 @@
<result property="toolingRfidBarcode" column="tooling_rfid_barcode"/>
</resultMap>
<select id="productBindSelectVehicle" resultMap="baseToolInfoMap">
select top 1 tooling_id,
tooling_code,
tooling_name,
tooling_barcode,
tooling_rfid_barcode
select top 1 tooling_id, tooling_code,
tooling_name,
tooling_barcode,
tooling_rfid_barcode
from base_tooling_info
where del_flag = '0'
AND tooling_type_id = 301
@ -148,15 +146,29 @@
</resultMap>
<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>
<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>
<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>

Loading…
Cancel
Save