Compare commits

..

5 Commits

@ -18,6 +18,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
bemi.material_name bemi.material_name
from qc_inspection_task qc from qc_inspection_task qc
left join base_material_info bemi on qc.material_id = bemi.material_id left join base_material_info bemi on qc.material_id = bemi.material_id
where qc_material_code = #{code} where sfc = #{code}
</select> </select>
</mapper> </mapper>

@ -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;
@ -341,6 +339,7 @@ public class WmsPdaApiController extends BaseController {
*/ */
@PostMapping("/selectMachineStationList") @PostMapping("/selectMachineStationList")
public R<List<String>> selectMachineStationList(Long machineId) { public R<List<String>> selectMachineStationList(Long machineId) {
System.out.println("上位机机台:"+machineId);
List<String> list = apiService.selectMachineStationList(machineId); List<String> list = apiService.selectMachineStationList(machineId);
return list == null ? R.fail() : R.ok(list); return list == null ? R.fail() : R.ok(list);
} }

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

@ -2,6 +2,7 @@ package org.dromara.wms.domain;
import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.annotation.*;
import lombok.Data; import lombok.Data;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal; import java.math.BigDecimal;
@ -98,4 +99,8 @@ public class WmsHppStorageDetail implements Serializable {
@TableField(exist = false) @TableField(exist = false)
private Date maxTime; private Date maxTime;
private String unitName; private String unitName;
// private Long unitId;
} }

@ -1,18 +1,12 @@
package org.dromara.wms.domain.bo; package org.dromara.wms.domain.bo;
import com.baomidou.mybatisplus.annotation.TableField;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper; import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import org.dromara.common.mybatis.core.domain.BaseEntity;
import jakarta.validation.constraints.*; import org.dromara.wms.domain.WmsReturnOrder;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.dromara.wms.domain.WmsReturnOrder;
/** /**
* 退 wms_return_order * 退 wms_return_order
@ -22,102 +16,86 @@ import org.dromara.wms.domain.WmsReturnOrder;
*/ */
@Data @Data
@AutoMapper(target = WmsReturnOrder.class, reverseConvertGenerate = false) @AutoMapper(target = WmsReturnOrder.class, reverseConvertGenerate = false)
public class WmsReturnOrderBo extends BaseEntity{ 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> {
} }

@ -2,7 +2,6 @@ package org.dromara.wms.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.github.yulichang.toolkit.JoinWrappers; import com.github.yulichang.toolkit.JoinWrappers;
import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.github.yulichang.wrapper.MPJLambdaWrapper;
@ -45,11 +44,7 @@ public class WmsPdaApiServiceImpl implements IWmsPdaApiService {
@Override @Override
public WmsOutstockRecordVo returnSelectCode(String code) { public WmsOutstockRecordVo returnSelectCode(String code) {
MPJLambdaWrapper<WmsOutstockRecord> lqw = JoinWrappers.lambda(WmsOutstockRecord.class) MPJLambdaWrapper<WmsOutstockRecord> lqw = JoinWrappers.lambda(WmsOutstockRecord.class).selectAll(WmsOutstockRecord.class).select(BaseMaterialInfo::getMaterialCode, BaseMaterialInfo::getMaterialName, BaseMaterialInfo::getMaterialUnit, BaseMaterialInfo::getMaterialSpec).leftJoin(BaseMaterialInfo.class, BaseMaterialInfo::getMaterialId, WmsOutstockRecord::getMaterialId).select(WmsBaseLocation::getWarehouseId).leftJoin(WmsBaseLocation.class, WmsBaseLocation::getLocationCode, WmsOutstockRecord::getLocationCode).eq(WmsOutstockRecord::getBatchCode, code).eq(WmsOutstockRecord::getReturnFlag, 0).orderByDesc(WmsOutstockRecord::getCreateTime);
.selectAll(WmsOutstockRecord.class)
.select(BaseMaterialInfo::getMaterialCode, BaseMaterialInfo::getMaterialName, BaseMaterialInfo::getMaterialUnit,
BaseMaterialInfo::getMaterialSpec)
.leftJoin(BaseMaterialInfo.class, BaseMaterialInfo::getMaterialId, WmsOutstockRecord::getMaterialId).select(WmsBaseLocation::getWarehouseId).leftJoin(WmsBaseLocation.class, WmsBaseLocation::getLocationCode, WmsOutstockRecord::getLocationCode).eq(WmsOutstockRecord::getBatchCode, code).eq(WmsOutstockRecord::getReturnFlag, 0).orderByDesc(WmsOutstockRecord::getCreateTime);
return wmsOutstockRecordMapper.selectVoOne(lqw); return wmsOutstockRecordMapper.selectVoOne(lqw);
} }
@ -133,8 +128,8 @@ public class WmsPdaApiServiceImpl implements IWmsPdaApiService {
hppStorageDetail.setObjId(null); hppStorageDetail.setObjId(null);
hppStorageDetail.setStorageNum(vo.getInstockNum()); hppStorageDetail.setStorageNum(vo.getInstockNum());
BaseMaterialInfoVo baseMaterialInfoVo = baseMaterialInfoMapper.selectVoById(vo.getMaterialId()); BaseMaterialInfoVo baseMaterialInfoVo = baseMaterialInfoMapper.selectVoById(vo.getMaterialId());
hppStorageDetail.setMinParkingTime(baseMaterialInfoVo.getMinParkingTime() / 3600); hppStorageDetail.setMinParkingTime((double) baseMaterialInfoVo.getMinParkingTime() / 3600);
hppStorageDetail.setMaxParkingTime(baseMaterialInfoVo.getMaxParkingTime() / 3600); hppStorageDetail.setMaxParkingTime((double) baseMaterialInfoVo.getMaxParkingTime() / 3600);
hppStorageDetailMapper.insert(hppStorageDetail); hppStorageDetailMapper.insert(hppStorageDetail);
return true; return true;
} }
@ -155,17 +150,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;
@ -328,8 +324,7 @@ public class WmsPdaApiServiceImpl implements IWmsPdaApiService {
@Override @Override
public Boolean storeCheckSubmitCheckRecord(WmsInventoryCheckRecord wmsInventoryCheckRecord) { public Boolean storeCheckSubmitCheckRecord(WmsInventoryCheckRecord wmsInventoryCheckRecord) {
wmsInventoryCheckRecord.setCheckStatus( wmsInventoryCheckRecord.setCheckStatus(wmsInventoryCheckRecord.getInventoryQty().compareTo(wmsInventoryCheckRecord.getCheckQty()) == 0 ? "0" : "1");
wmsInventoryCheckRecord.getInventoryQty().compareTo(wmsInventoryCheckRecord.getCheckQty()) == 0 ? "0" : "1");
wmsInventoryCheckRecord.setCreateBy(LoginHelper.getUsername()); wmsInventoryCheckRecord.setCreateBy(LoginHelper.getUsername());
wmsInventoryCheckRecordMapper.insert(wmsInventoryCheckRecord); wmsInventoryCheckRecordMapper.insert(wmsInventoryCheckRecord);
@ -347,10 +342,7 @@ public class WmsPdaApiServiceImpl implements IWmsPdaApiService {
@Override @Override
public List<WmsHppStorePlaceVo> seimMoveSelectStoreLocation() { public List<WmsHppStorePlaceVo> seimMoveSelectStoreLocation() {
MPJLambdaWrapper<WmsHppStorePlace> lqw = JoinWrappers.lambda(WmsHppStorePlace.class) MPJLambdaWrapper<WmsHppStorePlace> lqw = JoinWrappers.lambda(WmsHppStorePlace.class).select(WmsHppStorePlace::getStorePlaceCode, WmsHppStorePlace::getObjId).select(WmsHppStore::getStoreName).leftJoin(WmsHppStore.class, WmsHppStore::getObjId, WmsHppStorePlace::getStoreId);
.select(WmsHppStorePlace::getStorePlaceCode, WmsHppStorePlace::getObjId)
.select(WmsHppStore::getStoreName)
.leftJoin(WmsHppStore.class, WmsHppStore::getObjId, WmsHppStorePlace::getStoreId);
return wmsHppStorePlaceMapper.selectVoList(lqw); return wmsHppStorePlaceMapper.selectVoList(lqw);
} }

@ -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