修改 Qc接口和仓库基础信息

master
wanghao 2 months ago
parent 88d5fb3d04
commit ac795d4c8d

@ -3,12 +3,16 @@ package org.dromara.api.controller;
import jakarta.validation.constraints.NotBlank;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.dromara.api.domain.QcTaskInfo;
import org.dromara.api.service.IPdaApiService;
import org.dromara.common.core.domain.R;
import org.dromara.pda.api.model.BaseMaterial;
import org.dromara.pda.api.model.vo.RemoteDefectVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@ -35,8 +39,25 @@ public class PdaApiController {
public BaseMaterial getMaterialInfo(@PathVariable(value = "MaterialCode", required = false) String MaterialCode) {
return iPdaApiService.getMaterialInfo(MaterialCode);
}
@GetMapping(value = {"/getMaterialInfo"})
public R<QcTaskInfo> getCheckMaterialInfo(String code) {
QcTaskInfo qcTaskInfo = iPdaApiService.getCheckMaterialInfo(code);
if (qcTaskInfo == null) {
return R.fail("查询失败");
}
return R.ok(qcTaskInfo);
}
@GetMapping("/getDefectDetail")
public List<RemoteDefectVo> getDefectDetail(@NotBlank(message = "{defect.type.not.blank}") String defectType) {
return iPdaApiService.getDefectDetail(defectType);
public R< List<RemoteDefectVo>> getDefectDetail(@NotBlank(message = "{defect.type.not.blank}") String defectType) {
List<RemoteDefectVo> defectDetail = iPdaApiService.getDefectDetail(defectType);
if (defectDetail == null) {
return R.fail();
}
return R.ok(defectDetail);
}
}

@ -0,0 +1,12 @@
package org.dromara.api.domain;
import lombok.Data;
@Data
public class QcTaskInfo {
private String taskId;
private Long materialId;
private String materialName;
private String operation;
}

@ -0,0 +1,10 @@
package org.dromara.api.mapper;
import org.apache.ibatis.annotations.Param;
import org.dromara.api.domain.QcTaskInfo;
import org.springframework.stereotype.Repository;
@Repository
public interface PdaApiMapper {
QcTaskInfo getCheckMaterialInfo(@Param("code") String code);
}

@ -1,6 +1,6 @@
package org.dromara.api.service;
import org.dromara.common.core.domain.R;
import org.dromara.api.domain.QcTaskInfo;
import org.dromara.pda.api.model.BaseMaterial;
import org.dromara.pda.api.model.vo.RemoteDefectVo;
@ -17,4 +17,6 @@ public interface IPdaApiService {
BaseMaterial getMaterialInfo(String materialCode);
List<RemoteDefectVo> getDefectDetail(String defectType);
QcTaskInfo getCheckMaterialInfo(String code);
}

@ -2,8 +2,9 @@ package org.dromara.api.service.impl;
import lombok.RequiredArgsConstructor;
import org.apache.dubbo.config.annotation.DubboReference;
import org.dromara.api.domain.QcTaskInfo;
import org.dromara.api.mapper.PdaApiMapper;
import org.dromara.api.service.IPdaApiService;
import org.dromara.common.core.domain.R;
import org.dromara.pda.api.RemotePdaMesApiService;
import org.dromara.pda.api.RemotePdaQmsApiService;
import org.dromara.pda.api.model.BaseMaterial;
@ -29,4 +30,11 @@ public class IPdaApiServiceImpl implements IPdaApiService {
public List<RemoteDefectVo> getDefectDetail(String defectType) {
return remotePdaQmsApiService.remoteQueryDefectList(defectType,"000000");
}
private final PdaApiMapper pdaApiMapper;
@Override
public QcTaskInfo getCheckMaterialInfo(String code) {
return pdaApiMapper.getCheckMaterialInfo(code);
}
}

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.api.mapper.PdaApiMapper">
<resultMap id="QcTaskInfoResultMap" type="org.dromara.api.domain.QcTaskInfo">
<result column="task_id" property="taskId"/>
<result column="material_id" property="materialId"/>
<result column="operation" property="operation"/>
<result column="material_name" property="materialName"/>
</resultMap>
<select id="getCheckMaterialInfo" resultMap="QcTaskInfoResultMap">
select top 1 task_id,
qc.material_id,
qc_material_code,
operation,
bemi.material_name
from qc_inspection_task qc
left join base_material_info bemi on qc.material_id = bemi.material_id
where qc_material_code = #{code}
</select>
</mapper>

@ -1,30 +1,20 @@
package org.dromara.qms.dubbo;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import lombok.RequiredArgsConstructor;
import org.apache.dubbo.config.annotation.DubboService;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.exception.user.UserException;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.tenant.helper.TenantHelper;
import org.dromara.pda.api.RemotePdaMesApiService;
import org.dromara.pda.api.RemotePdaQmsApiService;
import org.dromara.pda.api.model.BaseMaterial;
import org.dromara.pda.api.model.vo.RemoteDefectVo;
import org.dromara.qms.domain.QcDefectDetail;
import org.dromara.qms.domain.bo.QcDefectDetailBo;
import org.dromara.qms.domain.vo.QcDefectDetailVo;
import org.dromara.qms.mapper.QcDefectDetailMapper;
import org.dromara.qms.mapper.QcDefectInfoMapper;
import org.dromara.qms.service.IQcDefectDetailService;
import org.dromara.system.api.domain.vo.RemoteUserVo;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@RequiredArgsConstructor
@Service
@ -34,23 +24,25 @@ public class RemoteQmsApiServiceImpl implements RemotePdaQmsApiService {
private final QcDefectInfoMapper qcDefectInfoMapper;
private final QcDefectDetailMapper qcDefectDetailMapper;
private final IQcDefectDetailService iQcDefectDetailService;
/**
*
*
* @param defectType
* @param tenantId
* @return
* @throws UserException
*/
@Override
public List<RemoteDefectVo> remoteQueryDefectList(String defectType, String tenantId) throws UserException {
return TenantHelper.dynamic(tenantId, () -> {
QcDefectDetailBo bo=new QcDefectDetailBo();
QcDefectDetailBo bo = new QcDefectDetailBo();
bo.setDefectType(defectType);
bo.setTenantId("000000");
List<QcDefectDetailVo> DefectDetailVos = iQcDefectDetailService.queryList(bo);
RemoteDefectVo rem=new RemoteDefectVo();
List<RemoteDefectVo> remoteDefectVoList=new ArrayList<>();
for(QcDefectDetailVo qcDefectDetailVo:DefectDetailVos){
List<QcDefectDetailVo> DefectDetailVos = iQcDefectDetailService.queryList(bo);
List<RemoteDefectVo> remoteDefectVoList = new ArrayList<>();
for (QcDefectDetailVo qcDefectDetailVo : DefectDetailVos) {
RemoteDefectVo rem = new RemoteDefectVo();
rem.setDefectCode(qcDefectDetailVo.getDefectCode());
rem.setDefectDesc(qcDefectDetailVo.getDefectDesc());
remoteDefectVoList.add(rem);

@ -21,7 +21,8 @@ public class WmsPdaApiController extends BaseController {
private final IWmsReturnOrderService wmsReturnOrderService;
private final IWmsPsmStorePlaceService wmsPsmStorePlaceService;
private final IWmsBaseLocationService baseLocationService;
private final IWmsHppStorePlaceService wmsHppStorePlaceService;
/**
* 退-
@ -48,8 +49,6 @@ public class WmsPdaApiController extends BaseController {
return toAjax(result);
}
private final IWmsBaseLocationService baseLocationService;
@PostMapping("/raw/inSelectCode")
public R<WmsInstockPrintVo> inSelectCode(String code) {
@ -89,7 +88,6 @@ public class WmsPdaApiController extends BaseController {
/**
*
*
*/
@PostMapping("/raw/selectInVentoryByBatchCode")
public R<Void> rawSelectInVentoryByBatchCode(WmsOutstockRecord outstockRecord) {
@ -171,8 +169,6 @@ public class WmsPdaApiController extends BaseController {
return R.ok(wmsHppInStockDetailVo);
}
private final IWmsHppStorePlaceService wmsHppStorePlaceService;
/**
*
*
@ -217,14 +213,16 @@ public class WmsPdaApiController extends BaseController {
*/
@PostMapping("/seimMove/selectStore")
public R<List<WmsHppStorePlaceVo>> seimMoveSelectStore() {
List<WmsHppStorePlaceVo> list=apiService.seimMoveSelectStoreLocation();
return R.ok(list) ;
List<WmsHppStorePlaceVo> list = apiService.seimMoveSelectStoreLocation();
return R.ok(list);
}
@PostMapping("/seimMove/submit")
public R<Void> seimMoveSubmit(Long id,String placeId) {
Boolean result = apiService.seimMoveSubmit(id,placeId);
public R<Void> seimMoveSubmit(Long id, String placeId) {
Boolean result = apiService.seimMoveSubmit(id, placeId);
return result ? R.ok() : R.fail();
}
/**
*
*
@ -254,7 +252,7 @@ public class WmsPdaApiController extends BaseController {
/**
*
*
* @param type
* @param type
* @param storeId id
*/
@PostMapping("/storeCheck/selectInventorLocationList")
@ -267,15 +265,16 @@ public class WmsPdaApiController extends BaseController {
}
@PostMapping("/storeCheck/submitOrder")
public R<WmsInventoryCheck> storeCheckSubmitOrder(@RequestParam("storeId") Long storeId,@RequestParam("type") String type,@RequestParam("location") List<String> list) {
WmsInventoryCheck wmsInventoryCheck= apiService.storeCheckSubmitOrder(type,storeId,list);
public R<WmsInventoryCheck> storeCheckSubmitOrder(@RequestParam("storeId") Long storeId, @RequestParam("type") String type, @RequestParam("location") List<String> list) {
WmsInventoryCheck wmsInventoryCheck = apiService.storeCheckSubmitOrder(type, storeId, list);
return R.ok(wmsInventoryCheck);
}
// 根据库位查询库存
@PostMapping("/storeCheck/selectInventory")
public R< List<WmsInventoryVo>> storeCheckSelectInventory(String locationCode,String type) {
List<WmsInventoryVo> list=apiService.storeCheckSelectInventory(locationCode,type);
public R<List<WmsInventoryVo>> storeCheckSelectInventory(String locationCode, String type) {
List<WmsInventoryVo> list = apiService.storeCheckSelectInventory(locationCode, type);
if (list == null || list.isEmpty()) {
return R.fail();
}
@ -283,20 +282,26 @@ public class WmsPdaApiController extends BaseController {
}
@PostMapping("/storeCheck/submitCheckRecord")
public R< Void> storeCheckSubmitCheckRecord(@RequestBody WmsInventoryCheckRecord wmsInventoryCheckRecord) {
Boolean result=apiService.storeCheckSubmitCheckRecord(wmsInventoryCheckRecord);
public R<Void> storeCheckSubmitCheckRecord(@RequestBody WmsInventoryCheckRecord wmsInventoryCheckRecord) {
Boolean result = apiService.storeCheckSubmitCheckRecord(wmsInventoryCheckRecord);
return result ? R.ok() : R.fail();
}
/**
*
*
* @param checkCode
*/
@PostMapping("/storeCheck/storeCheckWorkOver")
public R<Void> storeCheckStoreCheckWorkOver(String checkCode) {
Boolean result=apiService.storeCheckStoreCheckWorkOver(checkCode);
Boolean result = apiService.storeCheckStoreCheckWorkOver(checkCode);
return result ? R.ok() : R.fail();
}
@PostMapping("/selectMachineInfo")
public R<List<BaseMachineInfo>> slectMachineInfo() {
List<BaseMachineInfo> list = apiService.slectMachineInfo();
return R.ok(list);
}
}

@ -0,0 +1,10 @@
package org.dromara.wms.domain;
import lombok.Data;
@Data
public class BaseMachineInfo {
private String machineCode,
machineName,
machineIp;
}

@ -97,4 +97,5 @@ public class WmsHppStorageDetail implements Serializable {
private Date minTime;
@TableField(exist = false)
private Date maxTime;
private String unitName;
}

@ -1,9 +1,7 @@
package org.dromara.wms.domain;
import org.dromara.common.tenant.core.TenantEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
import java.util.Date;
@ -18,8 +16,8 @@ import java.util.Date;
@TableName("wms_psm_store_place")
public class WmsPsmStorePlace {
@Serial
private static final long serialVersionUID = 1L;
// @Serial
// private static final long serialVersionUID = 1L;
/**
*
@ -45,7 +43,7 @@ public class WmsPsmStorePlace {
/**
* sap
*/
private String sapCode;
private Long storeArea;
/**
* id
*/
@ -72,7 +70,9 @@ public class WmsPsmStorePlace {
private Date updateTime;
@TableField(exist = false)
private String storeCode;
@TableField(exist = false)
private String storeName;
@TableField(exist = false)
private String storeTypeName;
}

@ -48,10 +48,9 @@ public class WmsPsmStorePlaceBo extends BaseEntity {
/**
* sap
*/
@NotBlank(message = "sap库区代码不能为空", groups = { AddGroup.class, EditGroup.class })
private String sapCode;
private String tenantId;
// @NotBlank(message = "sap库区代码不能为空", groups = { AddGroup.class, EditGroup.class })
private Long storeArea;
private String storeName;
private String storeTypeName;
}

@ -4,8 +4,6 @@ import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import org.dromara.wms.domain.WmsPsmStorePlace;
@ -58,7 +56,7 @@ public class WmsPsmStorePlaceVo implements Serializable {
* sap
*/
@ExcelProperty(value = "sap库区代码")
private String sapCode;
private Long storeArea;
/**
* id

@ -3,10 +3,7 @@ package org.dromara.wms.mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import org.dromara.wms.domain.ShiftChange;
import org.dromara.wms.domain.WmsPsmInLoad;
import org.dromara.wms.domain.WmsPsmInLoadDetail;
import org.dromara.wms.domain.WmsPsmInStock;
import org.dromara.wms.domain.*;
import org.dromara.wms.domain.vo.StoreInfoVo;
import org.dromara.wms.domain.vo.TeamInfoVo;
import org.dromara.wms.domain.vo.WmsBaseLocationVo;
@ -51,4 +48,5 @@ public interface WmsPdaApiMapper {
List<WmsBaseLocationVo> selectSemiCheckLocationList(Long storeId);
List<BaseMachineInfo> slectMachineInfo();
}

@ -4,6 +4,7 @@ import org.apache.ibatis.annotations.Select;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import org.dromara.wms.domain.WmsPsmStorePlace;
import org.dromara.wms.domain.vo.WmsPsmStorePlaceVo;
import org.springframework.stereotype.Repository;
/**
* Mapper
@ -11,6 +12,7 @@ import org.dromara.wms.domain.vo.WmsPsmStorePlaceVo;
* @author LionLi
* @date 2025-01-15
*/
@Repository
public interface WmsPsmStorePlaceMapper extends BaseMapperPlus<WmsPsmStorePlace, WmsPsmStorePlaceVo> {
@Select("select top 1 store_place_id,store_place_code, store_place_name, place.store_id," +
"sap_code, store_code, store_name,store_type_id from wms_psm_store_place place " +

@ -56,4 +56,6 @@ public interface IWmsPdaApiService {
List<WmsHppStorePlaceVo> seimMoveSelectStoreLocation();
Boolean seimMoveSubmit(Long id, String placeId);
List<BaseMachineInfo> slectMachineInfo();
}

@ -120,6 +120,7 @@ public class WmsPdaApiServiceImpl implements IWmsPdaApiService {
// System.out.println("更新成功");
WmsHppStorageDetail hppStorageDetail = new WmsHppStorageDetail();
BeanUtils.copyProperties(vo, hppStorageDetail);
hppStorageDetail.setObjId(null);
hppStorageDetail.setStorageNum(vo.getInstockNum());
BaseMaterialInfoVo baseMaterialInfoVo = baseMaterialInfoMapper.selectVoById(vo.getMaterialId());
@ -367,4 +368,9 @@ public class WmsPdaApiServiceImpl implements IWmsPdaApiService {
hppStorageDetail.setStorePlaceCode(placeId);
return hppStorageDetailMapper.updateById(hppStorageDetail) > 0;
}
@Override
public List<BaseMachineInfo> slectMachineInfo() {
return apiMapper.slectMachineInfo();
}
}

@ -12,6 +12,7 @@ import lombok.RequiredArgsConstructor;
import org.dromara.common.satoken.utils.LoginHelper;
import org.dromara.wms.domain.WmsPsmStore;
import org.dromara.wms.domain.WmsPsmStorePlace;
import org.dromara.wms.domain.WmsPsmStoreType;
import org.dromara.wms.domain.bo.WmsPsmStorePlaceBo;
import org.dromara.wms.domain.vo.WmsPsmStorePlaceVo;
import org.dromara.wms.mapper.WmsPsmStorePlaceMapper;
@ -41,7 +42,7 @@ public class WmsPsmStorePlaceServiceImpl implements IWmsPsmStorePlaceService {
* @return
*/
@Override
public WmsPsmStorePlaceVo queryById(Long storePlaceId){
public WmsPsmStorePlaceVo queryById(Long storePlaceId) {
return baseMapper.selectVoById(storePlaceId);
}
@ -74,14 +75,17 @@ public class WmsPsmStorePlaceServiceImpl implements IWmsPsmStorePlaceService {
private MPJLambdaWrapper<WmsPsmStorePlace> buildQueryWrapper(WmsPsmStorePlaceBo bo) {
Map<String, Object> params = bo.getParams();
MPJLambdaWrapper<WmsPsmStorePlace> lqw = JoinWrappers.lambda(WmsPsmStorePlace.class)
.selectAll(WmsPsmStorePlace.class).select(WmsPsmStore::getStoreCode)
.leftJoin(WmsPsmStore.class,WmsPsmStore::getStoreId,WmsPsmStorePlace::getStoreId)
.eq(bo.getStorePlaceId() != null, WmsPsmStorePlace::getStorePlaceId, bo.getStorePlaceId())
.eq(StringUtils.isNotBlank(bo.getStorePlaceCode()), WmsPsmStorePlace::getStorePlaceCode, bo.getStorePlaceCode())
.like(StringUtils.isNotBlank(bo.getStorePlaceName()), WmsPsmStorePlace::getStorePlaceName, bo.getStorePlaceName())
.eq(bo.getStoreId() != null, WmsPsmStorePlace::getStoreId, bo.getStoreId())
.eq(StringUtils.isNotBlank(bo.getSapCode()), WmsPsmStorePlace::getSapCode, bo.getSapCode())
.orderByDesc(WmsPsmStorePlace::getCreateTime);
.selectAll(WmsPsmStorePlace.class)
// 仓库
.leftJoin(WmsPsmStore.class, WmsPsmStore::getStoreId, WmsPsmStorePlace::getStoreId).select(WmsPsmStore::getStoreName)
// 区域
.leftJoin(WmsPsmStoreType.class,WmsPsmStoreType::getStoreTypeId,WmsPsmStorePlace::getStorePlaceId).select(WmsPsmStoreType::getStoreTypeName)
.eq(bo.getStorePlaceId() != null, WmsPsmStorePlace::getStorePlaceId, bo.getStorePlaceId())
.eq(StringUtils.isNotBlank(bo.getStorePlaceCode()), WmsPsmStorePlace::getStorePlaceCode, bo.getStorePlaceCode())
.like(StringUtils.isNotBlank(bo.getStorePlaceName()), WmsPsmStorePlace::getStorePlaceName, bo.getStorePlaceName())
.eq(bo.getStoreId() != null, WmsPsmStorePlace::getStoreId, bo.getStoreId())
// .eq(StringUtils.isNotBlank(bo.getSapCode()), WmsPsmStorePlace::getSapCode, bo.getSapCode())
.orderByDesc(WmsPsmStorePlace::getCreateTime);
return lqw;
}
@ -122,7 +126,7 @@ public class WmsPsmStorePlaceServiceImpl implements IWmsPsmStorePlaceService {
/**
*
*/
private void validEntityBeforeSave(WmsPsmStorePlace entity){
private void validEntityBeforeSave(WmsPsmStorePlace entity) {
//TODO 做一些数据校验,如唯一约束
}
@ -135,7 +139,7 @@ public class WmsPsmStorePlaceServiceImpl implements IWmsPsmStorePlaceService {
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
if (isValid) {
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteByIds(ids) > 0;

@ -99,7 +99,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
left join wms_hpp_store_place wsp on wsp.store_place_code = whsd.store_place_code
where wsp.store_id=#{storeId} group by whsd.store_place_code
</select>
<resultMap id="baseMachineMap" type="org.dromara.wms.domain.BaseMachineInfo">
</resultMap>
<select id="slectMachineInfo" resultMap="baseMachineMap">
select machine_code,
machine_name,
concat(machine_ip, ':', machine_port) as machine_ip
from prod_base_machine_info
</select>
</mapper>

Loading…
Cancel
Save