Merge remote-tracking branch 'origin/master'
# Conflicts: # lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/inAndOut/service/impl/InBillServiceImpl.java
This commit is contained in:
@@ -728,6 +728,12 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic
|
||||
.build();
|
||||
logDto.setLog_level(4);
|
||||
luceneExecuteLogService.deviceExecuteLog(logDto);
|
||||
|
||||
//回传MES放货完毕 逻辑:acs-> lms -> mes
|
||||
String task_code = inst.getTask_code();
|
||||
JSONObject jsonObject = new JSONObject();
|
||||
jsonObject.put("task_code", task_code);
|
||||
acsToWmsService.uploadMes(jsonObject);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
@@ -224,6 +224,13 @@ public interface AcsToWmsService {
|
||||
*/
|
||||
ApplyPlugPullSitResponse actionCheckMaterialBucket(JSONObject jsonObject);
|
||||
|
||||
/**
|
||||
* 回传MES
|
||||
* @param jsonObject
|
||||
* @return
|
||||
*/
|
||||
ApplyPlugPullSitResponse uploadMes(JSONObject jsonObject);
|
||||
|
||||
/**
|
||||
* 横移请求
|
||||
* @param jsonObject
|
||||
|
||||
@@ -897,6 +897,46 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public ApplyPlugPullSitResponse uploadMes(JSONObject param) {
|
||||
log.info("向lms请求 ,lms向MES请求放料完成,请求参数{}", param);
|
||||
String result = "";
|
||||
try {
|
||||
MDC.put(log_file_type, log_type);
|
||||
ApplyPlugPullSitResponse applyPlugPullSitResponse = new ApplyPlugPullSitResponse();
|
||||
if (StrUtil.equals(paramService.findByCode(AcsConfig.HASWMS).getValue(), "1")) {
|
||||
String wmsUrl = paramService.findByCode(AcsConfig.WMSURL).getValue();
|
||||
AddressDto addressDto = addressService.findByCode("uploadMes");
|
||||
String methods_url = addressDto.getMethods_url();
|
||||
String url = wmsUrl + methods_url;
|
||||
log.info("向lms请求 ,lms向MES请求放料完成----请求参数:{}", JSONObject.toJSONString(param));
|
||||
try {
|
||||
result = HttpRequest.post(url)
|
||||
.addInterceptor(tLogHutoolhttpInterceptor)
|
||||
.header(Header.USER_AGENT, "Hutool http")
|
||||
.body(JSON.toJSONString(param))
|
||||
.execute().body();
|
||||
JSONObject jsonObject = JSONObject.parseObject(result);
|
||||
applyPlugPullSitResponse = JSONObject.toJavaObject(jsonObject, ApplyPlugPullSitResponse.class);
|
||||
LuceneLogDto luceneLogDto = new LuceneLogDto(4, "uploadMes", String.valueOf(applyPlugPullSitResponse.getstatus()),
|
||||
JSON.toJSONString(param), String.valueOf(result), "ACS向LMS发送物料已经放好");
|
||||
luceneLogService.interfaceExecuteLog(luceneLogDto);
|
||||
} catch (Exception e) {
|
||||
JSONObject jsonObject = JSONObject.parseObject(result);
|
||||
log.info("向lms请求 ,lms向MES请求放料完成----返回参数{}", e.getMessage());
|
||||
applyPlugPullSitResponse = JSONObject.toJavaObject(jsonObject, ApplyPlugPullSitResponse.class);
|
||||
LuceneLogDto luceneLogDto = new LuceneLogDto(4, "向lms请求 ,lms向MES请求放料完成", String.valueOf(applyPlugPullSitResponse.getstatus()),
|
||||
JSON.toJSONString(param),
|
||||
String.valueOf(result), "ACS向LMS发送物料已经放好");
|
||||
luceneLogService.interfaceExecuteLog(luceneLogDto);
|
||||
}
|
||||
}
|
||||
return applyPlugPullSitResponse;
|
||||
} finally {
|
||||
MDC.remove(log_file_type);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public ApplyPlugPullSitResponse actionMove(JSONObject param) {
|
||||
log.info("向lms请求横移,请求参数{}", param);
|
||||
|
||||
@@ -107,8 +107,6 @@ public class GroupController {
|
||||
.list(new LambdaUpdateWrapper<PmFormData>().eq(PmFormData::getCode, groupPlate.getExt_code()));
|
||||
|
||||
if (!CollectionUtils.isEmpty(pmFormDataList)) {
|
||||
|
||||
|
||||
if(!pmFormDataList.get(0).getMaterial_code().equals(groupPlate.getMaterial_code())){
|
||||
throw new BadRequestException("组盘的物料编码与单据的物料编码不一致,请核对!");
|
||||
}
|
||||
@@ -119,7 +117,6 @@ public class GroupController {
|
||||
.set(PmFormData::getUpdate_time, DateUtil.now())
|
||||
.set(PmFormData::getUpdate_name, SecurityUtils.getCurrentNickName())
|
||||
.eq(PmFormData::getCode, groupPlate.getExt_code()));
|
||||
|
||||
}
|
||||
}
|
||||
//修改点位表中的点位为有料
|
||||
@@ -130,7 +127,6 @@ public class GroupController {
|
||||
.set(SchBasePoint::getUpdate_name, SecurityUtils.getCurrentNickName())
|
||||
.eq(SchBasePoint::getVehicle_code, groupPlate.getStoragevehicle_code()));
|
||||
|
||||
|
||||
groupPlate.setSupp_code(supp.getSupp_code());
|
||||
groupPlate.setSupp_name(supp.getSupp_name());
|
||||
groupPlate.setGroup_id(IdUtil.getStringId());
|
||||
|
||||
@@ -28,6 +28,14 @@ public interface ISectattrService extends IService<Sectattr> {
|
||||
*/
|
||||
IPage<SectattrDto> queryAll(Map whereJson, PageQuery page);
|
||||
|
||||
/**
|
||||
* 获取所有数据,不分页
|
||||
*
|
||||
* @param whereJson 条件
|
||||
* @return Map<String, Object>
|
||||
*/
|
||||
List<SectattrDto> getAll(Map whereJson);
|
||||
|
||||
/**
|
||||
* 根据ID查询
|
||||
*
|
||||
|
||||
@@ -120,4 +120,12 @@ public interface IStructattrService extends IService<Structattr> {
|
||||
* @param changeDto
|
||||
*/
|
||||
void changeStruct(StructattrChangeDto changeDto);
|
||||
|
||||
/**
|
||||
* 根据仓位编码
|
||||
*
|
||||
* @param vehicleCode 仓位编码
|
||||
* @return Structattr
|
||||
*/
|
||||
Structattr getByVehicleCode(String vehicleCode);
|
||||
}
|
||||
|
||||
@@ -129,4 +129,8 @@ public class MdPbStoragevehicleinfo implements Serializable {
|
||||
*/
|
||||
private String ext_id;
|
||||
|
||||
/**
|
||||
* 推荐库区
|
||||
*/
|
||||
private String recommended_sect_code;
|
||||
}
|
||||
|
||||
@@ -38,6 +38,13 @@ public interface MdPbStoragevehicleextMapper extends BaseMapper<MdPbStoragevehic
|
||||
*/
|
||||
BigDecimal queryCanuseSum(@Param("pcsn") String pcsn,@Param("material_id") String material_id);
|
||||
|
||||
/**
|
||||
* 查询
|
||||
* @param whereJson 查询条件
|
||||
* @return IPage<List>
|
||||
*/
|
||||
List<JSONObject> queryAll( @Param("param") Map whereJson);
|
||||
|
||||
/**
|
||||
* 分页查询
|
||||
* @param page 分页条件
|
||||
|
||||
@@ -66,6 +66,8 @@
|
||||
ext.frozen_qty,
|
||||
ext.remark,
|
||||
ext.create_time,
|
||||
ext.supp_code,
|
||||
ext.supp_name,
|
||||
attr.struct_code,
|
||||
attr.struct_name,
|
||||
attr.stor_name,
|
||||
@@ -88,6 +90,12 @@
|
||||
attr.sect_id = #{param.sect_id}
|
||||
</if>
|
||||
|
||||
<if test="param.sect_code != null and param.sect_code != ''">
|
||||
AND
|
||||
attr.sect_code = #{param.sect_code}
|
||||
</if>
|
||||
|
||||
|
||||
<if test="param.struct_code != null and param.struct_code != ''">
|
||||
AND
|
||||
(attr.struct_code LIKE #{param.struct_code} or
|
||||
@@ -96,8 +104,8 @@
|
||||
|
||||
<if test="param.material_code != null and param.material_code != ''">
|
||||
AND
|
||||
(mater.material_code LIKE #{param.material_code} or
|
||||
mater.material_name LIKE #{param.material_code} )
|
||||
(mater.material_code LIKE CONCAT('%', #{param.material_code},'%') or
|
||||
mater.material_name LIKE CONCAT('%', #{param.material_code},'%') )
|
||||
</if>
|
||||
|
||||
<if test="param.pcsn != null and param.pcsn != ''">
|
||||
@@ -108,6 +116,67 @@
|
||||
ORDER BY ext.create_time Desc
|
||||
</select>
|
||||
|
||||
<select id="queryAll" resultType="com.alibaba.fastjson.JSONObject">
|
||||
SELECT
|
||||
ext.group_id as storagevehicleext_id,
|
||||
ext.storagevehicle_code,
|
||||
ext.pcsn,
|
||||
ext.qty_unit_name,
|
||||
ext.qty,
|
||||
ext.frozen_qty,
|
||||
ext.remark,
|
||||
ext.create_time,
|
||||
ext.supp_code,
|
||||
ext.supp_name,
|
||||
attr.struct_code,
|
||||
attr.struct_name,
|
||||
attr.stor_name,
|
||||
attr.sect_name,
|
||||
mater.material_code,
|
||||
mater.material_name
|
||||
FROM
|
||||
md_pb_groupplate ext
|
||||
INNER JOIN st_ivt_structattr attr ON ext.storagevehicle_code = attr.storagevehicle_code
|
||||
INNER JOIN md_me_materialbase mater ON mater.material_id = ext.material_id
|
||||
<where>
|
||||
1 = 1
|
||||
<if test="param.stor_id != null and param.stor_id != ''">
|
||||
AND
|
||||
attr.stor_id = #{param.stor_id}
|
||||
</if>
|
||||
|
||||
<if test="param.sect_id != null and param.sect_id != ''">
|
||||
AND
|
||||
attr.sect_id = #{param.sect_id}
|
||||
</if>
|
||||
|
||||
<if test="param.sect_code != null and param.sect_code != ''">
|
||||
AND
|
||||
attr.sect_code = #{param.sect_code}
|
||||
</if>
|
||||
|
||||
|
||||
<if test="param.struct_code != null and param.struct_code != ''">
|
||||
AND
|
||||
(attr.struct_code LIKE #{param.struct_code} or
|
||||
attr.struct_name LIKE #{param.struct_code} )
|
||||
</if>
|
||||
|
||||
<if test="param.material_code != null and param.material_code != ''">
|
||||
AND
|
||||
(mater.material_code LIKE CONCAT('%', #{param.material_code},'%') or
|
||||
mater.material_name LIKE CONCAT('%', #{param.material_code},'%') )
|
||||
</if>
|
||||
|
||||
<if test="param.pcsn != null and param.pcsn != ''">
|
||||
AND
|
||||
ext.pcsn LIKE #{param.pcsn}
|
||||
</if>
|
||||
</where>
|
||||
ORDER BY ext.create_time Desc
|
||||
</select>
|
||||
|
||||
|
||||
<select id="queryCanuseSum" resultType="java.math.BigDecimal">
|
||||
SELECT
|
||||
SUM(qty)
|
||||
|
||||
@@ -9,6 +9,7 @@ import org.nl.wms.basedata_manage.service.dao.BsrealStorattrDto;
|
||||
import org.nl.wms.basedata_manage.service.dao.Sectattr;
|
||||
import org.nl.wms.basedata_manage.service.dao.SectattrDto;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
@@ -20,4 +21,5 @@ public interface SectattrMapper extends BaseMapper<Sectattr> {
|
||||
|
||||
IPage<SectattrDto> queryAllByPage(Page<BsrealStorattrDto> page, @Param("params") Map params);
|
||||
|
||||
List<SectattrDto> queryAll( @Param("params") Map params);
|
||||
}
|
||||
|
||||
@@ -18,4 +18,30 @@
|
||||
</where>
|
||||
ORDER BY sect.update_time Desc
|
||||
</select>
|
||||
|
||||
<select id="queryAll" resultType="org.nl.wms.basedata_manage.service.dao.SectattrDto">
|
||||
SELECT sect.*,stor.stor_name FROM st_ivt_sectattr sect LEFT JOIN st_ivt_bsrealstorattr stor ON sect.stor_id = stor.stor_id
|
||||
<where>
|
||||
sect.is_delete = '0'
|
||||
<if test="params.search != null">
|
||||
AND
|
||||
sect.sect_code LIKE CONCAT('%', #{params.search}, '%')
|
||||
OR
|
||||
sect.sect_name LIKE CONCAT('%', #{params.search}, '%')
|
||||
</if>
|
||||
<if test="params.stor_id != null">
|
||||
AND
|
||||
sect.stor_id = #{params.stor_id}
|
||||
</if>
|
||||
<if test="params.sect_code != null ">
|
||||
AND
|
||||
sect.sect_code LIKE CONCAT('%', #{params.sect_code}, '%')
|
||||
</if>
|
||||
<if test="params.stor_code != null">
|
||||
AND
|
||||
stor.stor_code = #{params.stor_code}
|
||||
</if>
|
||||
</where>
|
||||
ORDER BY sect.update_time Desc
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
@@ -31,5 +31,4 @@ public class MdPbStoragevehicleextServiceImpl extends ServiceImpl<MdPbStorageveh
|
||||
whereJson);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -53,6 +53,11 @@ public class SectattrServiceImpl extends ServiceImpl<SectattrMapper, Sectattr> i
|
||||
return sectattrMapper.queryAllByPage(new Page<>(page.getPage() +1 ,page.getSize()), whereJson);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SectattrDto> getAll(Map whereJson) {
|
||||
return sectattrMapper.queryAll(whereJson);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Sectattr findById(String sect_id) {
|
||||
|
||||
|
||||
@@ -455,4 +455,16 @@ public class StructattrServiceImpl extends ServiceImpl<StructattrMapper, Structa
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Structattr getByVehicleCode(String vehicleCode) {
|
||||
Structattr one = this.getOne(
|
||||
new QueryWrapper<Structattr>().lambda()
|
||||
.eq(Structattr::getStoragevehicle_code, vehicleCode)
|
||||
);
|
||||
if (ObjectUtil.isEmpty(one)) {
|
||||
throw new BadRequestException("此载具不在仓位上【" + vehicleCode + "】");
|
||||
}
|
||||
return one;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSONObject;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.common.logging.annotation.Log;
|
||||
import org.nl.wms.ext_manage.service.AcsToWmsService;
|
||||
import org.redisson.executor.TasksService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
@@ -42,4 +43,12 @@ public class AcsToWmsController {
|
||||
return new ResponseEntity<>(acsToWmsService.emptyMove(param), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/upload-mes")
|
||||
@Log(value = "ACS给WMS反馈物料已经放好,WMS反馈给MES")
|
||||
@SaIgnore
|
||||
public ResponseEntity<Object> uploadMes(@RequestBody JSONObject param) {
|
||||
return new ResponseEntity<>(acsToWmsService.uploadMes(param), HttpStatus.OK);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -25,4 +25,6 @@ public interface AcsToWmsService {
|
||||
Map<String, Object> receiveTaskStatusAcs(String string);
|
||||
|
||||
AcsResponse emptyMove(JSONObject param);
|
||||
|
||||
AcsResponse uploadMes(JSONObject param);
|
||||
}
|
||||
|
||||
@@ -10,6 +10,7 @@ import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.common.exception.BadRequestException;
|
||||
import org.nl.wms.ext_manage.enums.ResultAcsStatus;
|
||||
import org.nl.wms.ext_manage.service.AcsToWmsService;
|
||||
import org.nl.wms.ext_manage.service.WmsToMesService;
|
||||
import org.nl.wms.ext_manage.service.util.AcsResponse;
|
||||
import org.nl.wms.sch_manage.enums.TaskStatus;
|
||||
import org.nl.wms.sch_manage.service.ISchBasePointService;
|
||||
@@ -20,6 +21,7 @@ import org.nl.wms.sch_manage.service.util.AbstractTask;
|
||||
import org.nl.wms.sch_manage.service.util.TaskFactory;
|
||||
import org.redisson.api.RLock;
|
||||
import org.redisson.api.RedissonClient;
|
||||
import org.redisson.executor.TasksService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -55,6 +57,13 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
||||
@Autowired
|
||||
private ISchBasePointService pointService;
|
||||
|
||||
/**
|
||||
* WMS回传MES
|
||||
*/
|
||||
@Autowired
|
||||
private WmsToMesService wmsToMesService;
|
||||
|
||||
|
||||
/**
|
||||
* 任务工厂服务
|
||||
*/
|
||||
@@ -133,4 +142,18 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
||||
pointService.updateBatchById(Arrays.asList(inPoint, outPoint));
|
||||
return AcsResponse.requestOk();
|
||||
}
|
||||
|
||||
@Override
|
||||
public AcsResponse uploadMes(JSONObject param) {
|
||||
SchBaseTask schBaseTask = iSchBaseTaskService.getByCode(param.getString("task_code"));
|
||||
if (schBaseTask == null) {
|
||||
return AcsResponse.requestOk();
|
||||
}
|
||||
JSONObject jsonObject = new JSONObject();
|
||||
jsonObject.put("status", 200);
|
||||
jsonObject.put("message", "成功");
|
||||
jsonObject.put("task_code", schBaseTask.getExt_task_code());
|
||||
wmsToMesService.uploadMes(jsonObject);
|
||||
return AcsResponse.requestOk();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -164,7 +164,7 @@ public class MesToWmsServiceImpl implements MesToWmsService {
|
||||
}
|
||||
|
||||
// 出库的仓位
|
||||
Structattr outStructAttr = structattrService.getByCode(dto.getStruct_code());
|
||||
Structattr outStructAttr = structattrService.getByVehicleCode(dto.getStruct_code());
|
||||
if (ObjectUtil.isEmpty(outStructAttr)) {
|
||||
throw new BadRequestException("仓位【" + dto.getStruct_code() + "】不存在!");
|
||||
}
|
||||
|
||||
@@ -11,6 +11,7 @@ import org.nl.common.base.TableDataInfo;
|
||||
import org.nl.common.logging.annotation.Log;
|
||||
import org.nl.wms.basedata_manage.service.dao.MdCsSupplierbase;
|
||||
import org.nl.wms.basedata_manage.service.dao.MdMeMaterialbase;
|
||||
import org.nl.wms.pda_manage.ios_manage.dto.ZwConfirmCheckParamDto;
|
||||
import org.nl.wms.pda_manage.ios_manage.dto.ZwConfirmInDto;
|
||||
import org.nl.wms.pda_manage.ios_manage.dto.ZwConfirmInParamDto;
|
||||
import org.nl.wms.pda_manage.ios_manage.service.PdaIosCheckService;
|
||||
@@ -94,6 +95,12 @@ public class PdaIosInController {
|
||||
return new ResponseEntity<>(pdaIosInService.getPdaSect(whereJson), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/getPdaCallMaterialSect")
|
||||
@Log("PDA叫料获取库区")
|
||||
public ResponseEntity<Object> getPdaCallMaterialSect(@RequestBody JSONObject whereJson) {
|
||||
return new ResponseEntity<>(pdaIosInService.getPdaCallMaterialSect(whereJson), HttpStatus.OK);
|
||||
}
|
||||
|
||||
|
||||
@PostMapping("/getPdaStruct")
|
||||
@Log("PDA获取库位")
|
||||
@@ -145,17 +152,15 @@ public class PdaIosInController {
|
||||
@PostMapping("/zwConfirmIn")
|
||||
@Log("中钨组盘入库确认")
|
||||
public ResponseEntity<Object> zwConfirmIn(@RequestBody ZwConfirmInDto dto) {
|
||||
if(StringUtils.isEmpty(dto.getForm_data_code())){
|
||||
throw new IllegalArgumentException("单据编码不能为空!");
|
||||
}
|
||||
|
||||
if(CollectionUtils.isEmpty(dto.getParam_list())){
|
||||
throw new IllegalArgumentException("请传入参数!");
|
||||
}
|
||||
|
||||
for(ZwConfirmInParamDto paramDto : dto.getParam_list()){
|
||||
if(StringUtils.isBlank(paramDto.getVehicle_code()) || StringUtils.isBlank(paramDto.getSite_code()))
|
||||
throw new IllegalArgumentException("载具且卸货区点位不能为空!");
|
||||
if(StringUtils.isBlank(paramDto.getVehicle_code()) || StringUtils.isBlank(paramDto.getSite_code())
|
||||
|| StringUtils.isBlank(paramDto.getForm_data_code()))
|
||||
throw new IllegalArgumentException("载具、卸货区点位、单据不能为空!");
|
||||
}
|
||||
|
||||
return new ResponseEntity<>(pdaIosInService.zwConfirmIn(dto), HttpStatus.OK);
|
||||
@@ -228,7 +233,7 @@ public class PdaIosInController {
|
||||
|
||||
@PostMapping("/inCheck")
|
||||
@Log("PDA来料入库校验点位和托盘码")
|
||||
public ResponseEntity<Object> inCheck(@RequestBody ZwConfirmInParamDto dto) {
|
||||
public ResponseEntity<Object> inCheck(@RequestBody ZwConfirmCheckParamDto dto) {
|
||||
return new ResponseEntity<>(pdaIosInService.inCheck(dto), HttpStatus.OK);
|
||||
}
|
||||
|
||||
|
||||
@@ -143,5 +143,12 @@ public class PdaIosOutController {
|
||||
return new ResponseEntity<>(pdaIosOutService.getMaterialSuppByVehicleCode(whereJson), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/getStructivtByMaterialAndSectCode")
|
||||
@Log("根据库区、物料信息获取库存信息")
|
||||
public ResponseEntity<Object> getStructivtByMaterialAndSectCode(@RequestBody JSONObject whereJson) {
|
||||
assertNotBlankJson(whereJson, "请求参数不能为空", "sect_code");
|
||||
return new ResponseEntity<>(pdaIosOutService.getStructivtByMaterialAndSectCode(whereJson), HttpStatus.OK);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
package org.nl.wms.pda_manage.ios_manage.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class ZwConfirmCheckParamDto {
|
||||
private String site_vehicle_code;
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
package org.nl.wms.pda_manage.ios_manage.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class ZwConfirmCheckParamRespondDto {
|
||||
private String site_code;
|
||||
private String vehicle_code;
|
||||
private String material_code;
|
||||
private String qty;
|
||||
private String form_data_code;
|
||||
}
|
||||
@@ -6,6 +6,5 @@ import java.util.List;
|
||||
|
||||
@Data
|
||||
public class ZwConfirmInDto {
|
||||
private String form_data_code;
|
||||
private List<ZwConfirmInParamDto> param_list;
|
||||
}
|
||||
|
||||
@@ -6,4 +6,5 @@ import lombok.Data;
|
||||
public class ZwConfirmInParamDto {
|
||||
private String site_code;
|
||||
private String vehicle_code;
|
||||
private String form_data_code;
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@ import org.nl.common.base.TableDataInfo;
|
||||
import org.nl.common.domain.vo.SelectItemVo;
|
||||
import org.nl.wms.basedata_manage.service.dao.MdCsSupplierbase;
|
||||
import org.nl.wms.basedata_manage.service.dao.MdMeMaterialbase;
|
||||
import org.nl.wms.pda_manage.ios_manage.dto.ZwConfirmCheckParamDto;
|
||||
import org.nl.wms.pda_manage.ios_manage.dto.ZwConfirmInDto;
|
||||
import org.nl.wms.pda_manage.ios_manage.dto.ZwConfirmInParamDto;
|
||||
import org.nl.wms.pda_manage.util.PdaResponse;
|
||||
@@ -103,6 +104,13 @@ public interface PdaIosInService {
|
||||
*/
|
||||
PdaResponse getPdaSect(JSONObject whereJson);
|
||||
|
||||
/**
|
||||
* 叫料查询库区
|
||||
*
|
||||
* @return PdaResponse
|
||||
*/
|
||||
PdaResponse getPdaCallMaterialSect(JSONObject whereJson);
|
||||
|
||||
/**
|
||||
* 查询库位
|
||||
*
|
||||
@@ -220,7 +228,7 @@ public interface PdaIosInService {
|
||||
|
||||
|
||||
|
||||
PdaResponse inCheck (ZwConfirmInParamDto dto);
|
||||
PdaResponse inCheck (ZwConfirmCheckParamDto dto);
|
||||
|
||||
/**
|
||||
* 通过载具编码获取点位
|
||||
|
||||
@@ -131,4 +131,11 @@ public interface PdaIosOutService {
|
||||
* @return PdaResponse
|
||||
*/
|
||||
PdaResponse getMaterialSuppByVehicleCode(JSONObject whereJson);
|
||||
|
||||
/**
|
||||
* 查询组盘信息通过载具编号
|
||||
*
|
||||
* @return PdaResponse
|
||||
*/
|
||||
PdaResponse getStructivtByMaterialAndSectCode(JSONObject whereJson);
|
||||
}
|
||||
|
||||
@@ -2,7 +2,6 @@ package org.nl.wms.pda_manage.ios_manage.service.impl;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
@@ -16,17 +15,14 @@ import org.nl.common.base.TableDataInfo;
|
||||
import org.nl.common.domain.query.PageQuery;
|
||||
import org.nl.common.domain.vo.SelectItemVo;
|
||||
import org.nl.common.exception.BadRequestException;
|
||||
import org.nl.common.utils.CodeUtil;
|
||||
import org.nl.common.utils.IdUtil;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.config.SpringContextHolder;
|
||||
import org.nl.wms.basedata_manage.enums.BaseDataEnum;
|
||||
import org.nl.wms.basedata_manage.service.*;
|
||||
import org.nl.wms.basedata_manage.service.dao.*;
|
||||
import org.nl.wms.basedata_manage.service.dao.mapper.SectattrMapper;
|
||||
import org.nl.wms.basedata_manage.service.dto.MaterialQuery;
|
||||
import org.nl.wms.basedata_manage.service.dto.StrategyStructMaterialVO;
|
||||
import org.nl.wms.basedata_manage.service.dto.StrategyStructParam;
|
||||
import org.nl.wms.pda_manage.ios_manage.dto.ZwConfirmCheckParamDto;
|
||||
import org.nl.wms.pda_manage.ios_manage.dto.ZwConfirmCheckParamRespondDto;
|
||||
import org.nl.wms.pda_manage.ios_manage.dto.ZwConfirmInDto;
|
||||
import org.nl.wms.pda_manage.ios_manage.dto.ZwConfirmInParamDto;
|
||||
import org.nl.wms.pda_manage.ios_manage.service.PdaIosInService;
|
||||
@@ -49,15 +45,10 @@ import org.nl.wms.sch_manage.service.dao.SchBaseTask;
|
||||
import org.nl.wms.sch_manage.service.dao.mapper.SchBasePointMapper;
|
||||
import org.nl.wms.sch_manage.service.util.AbstractTask;
|
||||
import org.nl.wms.sch_manage.service.util.tasks.BackInTask;
|
||||
import org.nl.wms.sch_manage.service.util.tasks.VehicleInTask;
|
||||
import org.nl.wms.sch_manage.service.util.tasks.VehicleOutTask;
|
||||
import org.nl.wms.sch_manage.service.util.tasks.zw.InBillTask;
|
||||
import org.nl.wms.system_manage.service.dict.dao.Dict;
|
||||
import org.nl.wms.system_manage.service.dict.dao.mapper.SysDictMapper;
|
||||
import org.nl.wms.system_manage.service.logicflow.dao.StageImage;
|
||||
import org.nl.wms.warehouse_manage.enums.IOSConstant;
|
||||
import org.nl.wms.warehouse_manage.enums.IOSEnum;
|
||||
import org.nl.wms.warehouse_manage.inAndOut.service.dao.IOStorInvDis;
|
||||
import org.nl.wms.warehouse_manage.inAndOut.service.dao.mapper.IOStorInvDisMapper;
|
||||
import org.nl.wms.warehouse_manage.service.IMdPbGroupplateService;
|
||||
import org.nl.wms.warehouse_manage.inAndOut.service.IInBillService;
|
||||
@@ -359,6 +350,25 @@ public class PdaIosInServiceImpl implements PdaIosInService {
|
||||
return PdaResponse.requestParamOk(selectList);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PdaResponse getPdaCallMaterialSect(JSONObject whereJson) {
|
||||
|
||||
Map <String,String> selectMap = new HashMap<>();
|
||||
|
||||
SchBasePoint schBasePoint = iSchBasePointService.getPointByCode(whereJson.getString("point_code"));
|
||||
if(schBasePoint != null && StringUtils.isNotBlank(schBasePoint.getRegion_code())){
|
||||
selectMap.put("sect_code",schBasePoint.getRegion_code().substring(0,2));
|
||||
}
|
||||
|
||||
selectMap.put("stor_code","LT");
|
||||
List<SectattrDto> sectattrList = iSectattrService.getAll(selectMap);
|
||||
List<SelectItemVo> selectList = new ArrayList<>();
|
||||
sectattrList.forEach(r ->
|
||||
selectList.add(SelectItemVo.builder().text( r.getSect_name()).value(r.getSect_id()).build())
|
||||
);
|
||||
return PdaResponse.requestParamOk(selectList);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PdaResponse getPdaStruct(JSONObject whereJson) {
|
||||
List<Structattr> structattrList = iStructattrService.list(new LambdaQueryWrapper<Structattr>()
|
||||
@@ -759,15 +769,20 @@ public class PdaIosInServiceImpl implements PdaIosInService {
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public PdaResponse zwConfirmIn(ZwConfirmInDto dto) {
|
||||
public PdaResponse zwConfirmIn(ZwConfirmInDto dtoList) {
|
||||
|
||||
Map<String, List<ZwConfirmInParamDto>> paramMap = dtoList.getParam_list().stream()
|
||||
.collect(Collectors.groupingBy(ZwConfirmInParamDto::getForm_data_code));
|
||||
|
||||
for (Map.Entry<String, List<ZwConfirmInParamDto>> entry : paramMap.entrySet()) {
|
||||
//校验是否重复
|
||||
if (dto.getParam_list().stream()
|
||||
if (entry.getValue().stream()
|
||||
.map(ZwConfirmInParamDto::getSite_code)
|
||||
.distinct()
|
||||
.count() != dto.getParam_list().size() || dto.getParam_list().stream()
|
||||
.count() != entry.getValue().size() || entry.getValue().stream()
|
||||
.map(ZwConfirmInParamDto::getVehicle_code)
|
||||
.distinct()
|
||||
.count() != dto.getParam_list().size()) {
|
||||
.count() != entry.getValue().size()) {
|
||||
throw new BadRequestException("存在重复的点位或托盘号,请核对!");
|
||||
}
|
||||
|
||||
@@ -780,11 +795,11 @@ public class PdaIosInServiceImpl implements PdaIosInService {
|
||||
}
|
||||
|
||||
List<PmFormData> formDataList = iPmFormDataService.list(new LambdaUpdateWrapper<PmFormData>()
|
||||
.eq(PmFormData::getCode, dto.getForm_data_code())
|
||||
.eq(PmFormData::getCode, entry.getValue().get(0).getForm_data_code())
|
||||
.eq(PmFormData::getStatus, StatusEnum.FORM_STATUS.code("完成")));
|
||||
|
||||
if(CollectionUtils.isNotEmpty(formDataList)){
|
||||
throw new BadRequestException("单据" +dto.getForm_data_code() +"已完成!");
|
||||
throw new BadRequestException("单据" + entry.getValue().get(0).getForm_data_code() +"已完成!");
|
||||
}
|
||||
|
||||
//循环判断每个 如果有问题,则抛出异常
|
||||
@@ -792,7 +807,7 @@ public class PdaIosInServiceImpl implements PdaIosInService {
|
||||
Integer taskGroupSeq = 0 ;
|
||||
String taskGroupId = IdUtil.getStringId();
|
||||
List<JSONObject> jsonObjectList = new ArrayList<>();
|
||||
for (ZwConfirmInParamDto paramDto : dto.getParam_list()) {
|
||||
for (ZwConfirmInParamDto paramDto : entry.getValue()) {
|
||||
|
||||
//判断点位和仓位是否有正在执行的任务
|
||||
List<SchBaseTask> schBaseTaskList = iSchBaseTaskService.list(new LambdaQueryWrapper<SchBaseTask>()
|
||||
@@ -932,12 +947,11 @@ public class PdaIosInServiceImpl implements PdaIosInService {
|
||||
whereJson.put("task_group_seq",taskGroupSeq);
|
||||
whereJson.put("task_group_id",taskGroupId);
|
||||
|
||||
whereJson.put("form_data_code",dto.getForm_data_code());
|
||||
whereJson.put("form_data_code", entry.getValue().get(0).getForm_data_code());
|
||||
|
||||
jsonObjectList.add(whereJson);
|
||||
//下一个的托盘放置点为本次的起点
|
||||
lastSchBasePoint = whereJson.getString("site_code");
|
||||
|
||||
}
|
||||
|
||||
//校验没有问题,则进行入库世纪操作
|
||||
@@ -961,6 +975,9 @@ public class PdaIosInServiceImpl implements PdaIosInService {
|
||||
.eq(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("组盘")));
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return PdaResponse.requestOk();
|
||||
}
|
||||
|
||||
@@ -1323,31 +1340,55 @@ public class PdaIosInServiceImpl implements PdaIosInService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public PdaResponse inCheck(ZwConfirmInParamDto dto) {
|
||||
public PdaResponse inCheck(ZwConfirmCheckParamDto dto) {
|
||||
|
||||
if(StringUtils.isBlank(dto.getSite_vehicle_code())){
|
||||
throw new BadRequestException("点位码/托盘码不能为空");
|
||||
}
|
||||
String site_code;
|
||||
String vehicle_code;
|
||||
|
||||
//查点位表
|
||||
SchBasePoint schBasePoint = iSchBasePointService
|
||||
.getOne(new LambdaQueryWrapper<SchBasePoint>().eq(SchBasePoint::getVehicle_code, dto.getSite_vehicle_code())
|
||||
.or()
|
||||
.eq(SchBasePoint::getPoint_code, dto.getSite_vehicle_code()));
|
||||
if(null == schBasePoint){
|
||||
//存在点位表,说明传入的是点位,则根据点位查询载具
|
||||
throw new BadRequestException("未找到载具/点位信息,请检查!");
|
||||
}
|
||||
|
||||
if(!"3".equals(schBasePoint.getPoint_status())){
|
||||
throw new BadRequestException("系统显示点位"+schBasePoint.getPoint_code()+"不是有料状态,请确认是否组盘!");
|
||||
}
|
||||
|
||||
site_code =schBasePoint.getPoint_code();
|
||||
vehicle_code =schBasePoint.getVehicle_code();
|
||||
|
||||
//判断点位和仓位是否有正在执行的任务
|
||||
List<SchBaseTask> schBaseTaskList = iSchBaseTaskService.list(new LambdaQueryWrapper<SchBaseTask>()
|
||||
.eq(SchBaseTask::getIs_delete, IOSConstant.IS_DELETE_NO)
|
||||
.and(wp -> wp
|
||||
.eq(SchBaseTask::getPoint_code2, dto.getSite_code())
|
||||
.eq(SchBaseTask::getPoint_code2, site_code)
|
||||
.or()
|
||||
.eq(SchBaseTask::getPoint_code3, dto.getSite_code())
|
||||
.eq(SchBaseTask::getPoint_code3, site_code)
|
||||
.or()
|
||||
.eq(SchBaseTask::getPoint_code1, dto.getSite_code())
|
||||
.eq(SchBaseTask::getPoint_code1, site_code)
|
||||
.or()
|
||||
.eq(SchBaseTask::getPoint_code4, dto.getSite_code())
|
||||
.eq(SchBaseTask::getPoint_code4, site_code)
|
||||
)
|
||||
.le(SchBaseTask::getTask_status, TaskStatus.EXECUTING.getCode()));
|
||||
|
||||
if(CollectionUtils.isNotEmpty(schBaseTaskList)){
|
||||
throw new BadRequestException("存在正在执行任务的点位"+dto.getSite_code());
|
||||
throw new BadRequestException("存在正在执行任务的点位"+site_code);
|
||||
}
|
||||
|
||||
JSONObject whereJson = new JSONObject();
|
||||
whereJson.put("vehicle_code", dto.getVehicle_code());
|
||||
whereJson.put("search", dto.getVehicle_code());
|
||||
whereJson.put("vehicle_code", vehicle_code);
|
||||
whereJson.put("search", vehicle_code);
|
||||
|
||||
//起点
|
||||
whereJson.put("site_code", dto.getSite_code());
|
||||
whereJson.put("site_code", site_code);
|
||||
whereJson.put("noEmptyVehicle", "1");
|
||||
String material_model = getVehicleMaterial(whereJson).getString("material_model");
|
||||
if (StringUtils.isEmpty(material_model)) {
|
||||
@@ -1355,8 +1396,6 @@ public class PdaIosInServiceImpl implements PdaIosInService {
|
||||
}
|
||||
|
||||
//判断每个物料是否都已经配置库区
|
||||
|
||||
|
||||
//查询字典表
|
||||
List<Dict> dictList = sysDictMapper.selectList(new LambdaQueryWrapper<Dict>()
|
||||
.eq(Dict::getCode, "MATERIAL_MODEL_SECT"));
|
||||
@@ -1377,22 +1416,22 @@ public class PdaIosInServiceImpl implements PdaIosInService {
|
||||
|
||||
whereJson.put("sect_id",sectattrList.get(0).getSect_id());
|
||||
|
||||
//获取起点
|
||||
SchBasePoint schBasePoint = iSchBasePointService
|
||||
.getOne(new LambdaQueryWrapper<SchBasePoint>().eq(SchBasePoint::getVehicle_code, whereJson.get("vehicle_code")));
|
||||
if (ObjectUtil.isEmpty(schBasePoint)) {
|
||||
throw new BadRequestException("未找到载具所在的点位信息,请检查该载具是否绑定点位");
|
||||
//通过载具查找组盘
|
||||
List<GroupPlate> groupPlates = iMdPbGroupplateService.list(new QueryWrapper<GroupPlate>()
|
||||
.eq("storagevehicle_code", vehicle_code)
|
||||
.lt("status", IOSEnum.GROUP_PLATE_STATUS.code("出库")));
|
||||
|
||||
if(CollectionUtils.isEmpty(groupPlates)) {
|
||||
throw new BadRequestException("载具" + vehicle_code + "未组盘,请先组盘!");
|
||||
}
|
||||
|
||||
if(!"3".equals(schBasePoint.getPoint_status())){
|
||||
throw new BadRequestException("系统显示点位"+schBasePoint.getPoint_code()+"不是有料状态,请确认是否组盘!");
|
||||
}
|
||||
|
||||
if (!schBasePoint.getPoint_code().equals(dto.getSite_code())) {
|
||||
throw new BadRequestException("载具" + dto.getVehicle_code() + "不在" + dto.getSite_code() + "上");
|
||||
}
|
||||
|
||||
return PdaResponse.requestOk();
|
||||
ZwConfirmCheckParamRespondDto respDto = new ZwConfirmCheckParamRespondDto();
|
||||
respDto.setQty(String.valueOf(groupPlates.get(0).getQty()));
|
||||
respDto.setMaterial_code(groupPlates.get(0).getMaterial_code());
|
||||
respDto.setForm_data_code(groupPlates.get(0).getExt_code());
|
||||
respDto.setVehicle_code(vehicle_code);
|
||||
respDto.setSite_code(site_code);
|
||||
return PdaResponse.requestParamOk(respDto);
|
||||
|
||||
}
|
||||
|
||||
@@ -1404,7 +1443,18 @@ public class PdaIosInServiceImpl implements PdaIosInService {
|
||||
if(schBasePointList.isEmpty()){
|
||||
return PdaResponse.requestOk();
|
||||
}
|
||||
return PdaResponse.requestParamOk(schBasePointList.get(0).getPoint_code());
|
||||
|
||||
JSONObject outJson = new JSONObject();
|
||||
//查询托盘的
|
||||
MdPbStoragevehicleinfo mdPbStoragevehicleinfo = iMdPbStoragevehicleinfoService.getByCode(whereJson.getString("vehicle_code"));
|
||||
if(mdPbStoragevehicleinfo != null ){
|
||||
|
||||
}
|
||||
|
||||
outJson.put("point_code",schBasePointList.get(0).getPoint_code());
|
||||
outJson.put("recommended_sect_code",mdPbStoragevehicleinfo.getRecommended_sect_code());
|
||||
|
||||
return PdaResponse.requestParamOk(outJson);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -80,6 +80,9 @@ import static org.nl.wms.warehouse_manage.enums.IOSEnum.GROUP_PLATE_STATUS;
|
||||
public class PdaIosOutServiceImpl implements PdaIosOutService {
|
||||
@Autowired
|
||||
private Map<String, AbstractTask> applyTaskMap;
|
||||
|
||||
@Autowired
|
||||
private MdPbStoragevehicleextMapper mdPbStoragevehicleextMapper;
|
||||
/**
|
||||
* 组盘记录mapper
|
||||
*/
|
||||
@@ -110,11 +113,6 @@ public class PdaIosOutServiceImpl implements PdaIosOutService {
|
||||
*/
|
||||
@Autowired
|
||||
private IMdMeMaterialbaseService iMdMeMaterialbaseService;
|
||||
/**
|
||||
* 载具扩展属性服务
|
||||
*/
|
||||
@Autowired
|
||||
private MdPbStoragevehicleextMapper mdPbStoragevehicleextMapper;
|
||||
|
||||
/**
|
||||
* 点位服务
|
||||
@@ -421,7 +419,7 @@ public class PdaIosOutServiceImpl implements PdaIosOutService {
|
||||
|
||||
//查找状态为入库状态的组盘表
|
||||
List<GroupPlate> groupPlateList = iMdPbGroupPlateService.list(new QueryWrapper<GroupPlate>().lambda()
|
||||
.eq(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("入库"))
|
||||
.eq(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("组盘"))
|
||||
.ne(GroupPlate::getPcsn, "空托盘入库")
|
||||
.eq(GroupPlate::getStoragevehicle_code, whereJson.getString("vehicle_code"))
|
||||
);
|
||||
@@ -435,7 +433,6 @@ public class PdaIosOutServiceImpl implements PdaIosOutService {
|
||||
throw new BadRequestException("载具组盘信息重复,请核对!");
|
||||
}
|
||||
|
||||
|
||||
JSONObject outJson = new JSONObject();
|
||||
|
||||
//根据物料id获取物料名称等信息
|
||||
@@ -453,6 +450,11 @@ public class PdaIosOutServiceImpl implements PdaIosOutService {
|
||||
return PdaResponse.requestParamOk(outJson);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PdaResponse getStructivtByMaterialAndSectCode(JSONObject whereJson) {
|
||||
return PdaResponse.requestParamOk(mdPbStoragevehicleextMapper.queryAll(whereJson));
|
||||
}
|
||||
|
||||
|
||||
private String createOutBills(JSONObject whereJson) {
|
||||
String now = DateUtil.now();
|
||||
|
||||
@@ -56,6 +56,13 @@ public class SchBasePointController {
|
||||
}
|
||||
|
||||
|
||||
@PostMapping("/getInBillPointList")
|
||||
@Log("查询入库点位清单")
|
||||
public ResponseEntity<Object> getInBillPointList(@Validated @RequestBody SchBasePoint entity) {
|
||||
return new ResponseEntity<>(schBasePointService.getInBillPointList(entity),HttpStatus.OK);
|
||||
}
|
||||
|
||||
|
||||
@Log("删除点位管理")
|
||||
@DeleteMapping
|
||||
public ResponseEntity<Object> delete(@RequestBody Set<String> ids) {
|
||||
|
||||
@@ -48,6 +48,13 @@ public interface ISchBasePointService extends IService<SchBasePoint> {
|
||||
*/
|
||||
PdaResponse updatePointType(SchBasePoint entity);
|
||||
|
||||
/**
|
||||
* 编辑点位类型
|
||||
*
|
||||
* @param entity /
|
||||
*/
|
||||
PdaResponse getInBillPointList(SchBasePoint entity);
|
||||
|
||||
/**
|
||||
* 多选删除
|
||||
*
|
||||
@@ -137,4 +144,6 @@ public interface ISchBasePointService extends IService<SchBasePoint> {
|
||||
List<SchBasePoint> getPointList2(SchBasePoint region);
|
||||
|
||||
List<SchBasePoint> getPointsByCode(String regions);
|
||||
|
||||
SchBasePoint getPointByCode(String pointCode);
|
||||
}
|
||||
|
||||
@@ -28,6 +28,13 @@ public interface SchBasePointMapper extends BaseMapper<SchBasePoint> {
|
||||
*/
|
||||
List<SchBasePoint> getAllUnlockAbnormalPoints();
|
||||
|
||||
/**
|
||||
* 获得原料卸车区所有点位
|
||||
*
|
||||
* @return List<SchBasePoint>
|
||||
*/
|
||||
List<SchBasePoint> getInBillPointList(String point_code);
|
||||
|
||||
/**
|
||||
* 行锁获取id的点位
|
||||
*
|
||||
|
||||
@@ -19,6 +19,14 @@
|
||||
WHERE p.ing_task_code IS NOT NULL
|
||||
AND p.ing_task_code != '' AND (t.task_status = '5' OR t.task_status = '6')
|
||||
</select>
|
||||
<select id="getInBillPointList" resultType="org.nl.wms.sch_manage.service.dao.SchBasePoint">
|
||||
SELECT p.point_code,p.point_name,p.point_type
|
||||
FROM `sch_base_point` p
|
||||
WHERE region_code = 'YLXCQ'
|
||||
<if test="point_code != null and point_code != ''">
|
||||
AND p.point_code like CONCAT('%', #{point_code}, '%')
|
||||
</if>
|
||||
</select>
|
||||
<select id="selectByIdLock" resultType="org.nl.wms.sch_manage.service.dao.SchBasePoint">
|
||||
SELECT p.*
|
||||
FROM `sch_base_point` p
|
||||
|
||||
@@ -164,6 +164,11 @@ public class SchBasePointServiceImpl extends ServiceImpl<SchBasePointMapper, Sch
|
||||
return PdaResponse.requestOk();
|
||||
}
|
||||
|
||||
@Override
|
||||
public PdaResponse getInBillPointList(SchBasePoint entity) {
|
||||
return PdaResponse.requestParamOk( pointMapper.getInBillPointList(entity.getPoint_code()));
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public void deleteAll(Set<String> ids) {
|
||||
@@ -353,4 +358,15 @@ public class SchBasePointServiceImpl extends ServiceImpl<SchBasePointMapper, Sch
|
||||
return schBasePointList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public SchBasePoint getPointByCode(String pointCode) {
|
||||
List<SchBasePoint> schBasePointList = pointMapper.selectList(new LambdaQueryWrapper<SchBasePoint>()
|
||||
.eq(SchBasePoint::getPoint_code, pointCode));
|
||||
|
||||
if(schBasePointList.isEmpty()){
|
||||
return null;
|
||||
}
|
||||
return schBasePointList.get(0);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -32,6 +32,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
@@ -146,6 +147,28 @@ public class SchBaseTaskServiceImpl extends ServiceImpl<SchBaseTaskMapper, SchBa
|
||||
break;
|
||||
// 强制完成
|
||||
case "forceFinish":
|
||||
// 判断同一个任务组中,上一个任务是否已经完成,不允许跳着完成
|
||||
SchBaseTask currentTask = getByCode(task_code);
|
||||
if (currentTask != null && StringUtils.isNotEmpty(currentTask.getTask_group_id())) {
|
||||
// 获取当前任务的任务组ID和顺序号
|
||||
String taskGroupId = currentTask.getTask_group_id();
|
||||
BigDecimal currentSeq = currentTask.getTask_group_seq();
|
||||
|
||||
if (currentSeq != null && currentSeq.compareTo(BigDecimal.ZERO) > 0) {
|
||||
// 查询同一任务组中,顺序号小于当前任务的所有任务
|
||||
LambdaQueryWrapper<SchBaseTask> wrapper = new QueryWrapper<SchBaseTask>().lambda();
|
||||
wrapper.eq(SchBaseTask::getTask_group_id, taskGroupId);
|
||||
wrapper.lt(SchBaseTask::getTask_group_seq, currentSeq);
|
||||
wrapper.ne(SchBaseTask::getTask_status, TaskStatus.FINISHED.getCode());
|
||||
wrapper.ne(SchBaseTask::getIs_delete, BaseDataEnum.IS_YES_NOT.code("是"));
|
||||
|
||||
List<SchBaseTask> unfinishedTasks = this.list(wrapper);
|
||||
if (!unfinishedTasks.isEmpty()) {
|
||||
throw new BadRequestException("同一任务组中存在未完成的前置任务,不允许跳过完成");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
abstractTask.forceFinish(task_code);
|
||||
break;
|
||||
case "cancel":
|
||||
|
||||
@@ -4,6 +4,7 @@ import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
@@ -37,6 +38,8 @@ import org.springframework.transaction.annotation.Transactional;
|
||||
import javax.annotation.Resource;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
|
||||
/**
|
||||
@@ -209,6 +212,15 @@ public class InBillTask extends AbstractTask {
|
||||
.set(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("入库"))
|
||||
.eq(GroupPlate::getStoragevehicle_code,taskObj.getVehicle_code2()));
|
||||
|
||||
//删除组盘表
|
||||
//删除
|
||||
Set<String> groupSet = iMdPbGroupplateService.list(new QueryWrapper<GroupPlate>().lambda()
|
||||
.in(GroupPlate::getStoragevehicle_code, taskObj.getVehicle_code()))
|
||||
.stream().map(GroupPlate::getGroup_id).collect(Collectors.toSet());
|
||||
if(CollectionUtils.isNotEmpty(groupSet)) {
|
||||
iMdPbGroupplateService.delete(groupSet);
|
||||
}
|
||||
|
||||
//更新formdata
|
||||
updateFormData(taskObj);
|
||||
}
|
||||
|
||||
@@ -12,6 +12,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.nl.common.domain.query.PageQuery;
|
||||
import org.nl.common.exception.BadRequestException;
|
||||
import org.nl.common.utils.CodeUtil;
|
||||
@@ -992,8 +993,18 @@ public class InBillServiceImpl extends ServiceImpl<IOStorInvMapper, IOStorInv> i
|
||||
finish_map.put("inv_type", null);
|
||||
finish_map.put("inv_id", null);
|
||||
finish_map.put("inv_code", null);
|
||||
finish_map.put("occupancy_state", "3");
|
||||
iStructattrService.updateStatusByCode("1", finish_map);
|
||||
finish_map.put("occupancy_state","3");
|
||||
iStructattrService.updateStatusByCode("1",finish_map);
|
||||
|
||||
List<MdPbStoragevehicleinfo> mdPbStoragevehicleinfoList = mdPbStoragevehicleinfoMapper.selectList(new LambdaQueryWrapper<>(MdPbStoragevehicleinfo.class)
|
||||
.eq(MdPbStoragevehicleinfo::getStoragevehicle_code, ioStorInvDis.getStoragevehicle_code())
|
||||
);
|
||||
|
||||
if(CollectionUtils.isNotEmpty(mdPbStoragevehicleinfoList)){
|
||||
mdPbStoragevehicleinfoList.get(0).setRecommended_sect_code(ioStorInvDis.getSect_code());
|
||||
mdPbStoragevehicleinfoList.get(0).setUpdate_time(DateUtil.now());
|
||||
mdPbStoragevehicleinfoMapper.updateById(mdPbStoragevehicleinfoList.get(0));
|
||||
}
|
||||
//库存变动
|
||||
StructattrChangeDto changeDto = StructattrChangeDto.builder()
|
||||
.inv(ioStorInv.getIostorinv_id())
|
||||
|
||||
@@ -78,6 +78,9 @@ public class OutBillServiceImpl extends ServiceImpl<IOStorInvMapper,IOStorInv> i
|
||||
@Resource
|
||||
private ISchBasePointService pointService;
|
||||
|
||||
@Resource
|
||||
private IMdPbGroupplateService iMdPbGroupplateService;
|
||||
|
||||
/**
|
||||
* 载具扩展属性mapper
|
||||
*/
|
||||
@@ -1270,6 +1273,9 @@ public class OutBillServiceImpl extends ServiceImpl<IOStorInvMapper,IOStorInv> i
|
||||
.storagevehicleCode(ioStorInvDis.getStoragevehicle_code())
|
||||
.structCode(ioStorInvDis.getStruct_code()).taskType(task.getConfig_code()).inBound(false).build();
|
||||
iStructattrService.changeStruct(changeDto);
|
||||
//出库完成后删除组盘
|
||||
iMdPbGroupplateService.delete(Collections.singleton(task.getGroup_id()));
|
||||
|
||||
// 查询该明细下是否还有未完成的分配明细
|
||||
int countDis = ioStorInvDisMapper.selectCount(new LambdaQueryWrapper<>(IOStorInvDis.class)
|
||||
.eq(IOStorInvDis::getIostorinvdtl_id,ioStorInvDis.getIostorinvdtl_id())
|
||||
|
||||
@@ -119,8 +119,9 @@ public class StIvtMoveinvServiceImpl extends ServiceImpl<StIvtMoveinvMapper, StI
|
||||
|
||||
//只能本库移动或移动到不合格区
|
||||
for (JSONObject jsonObject : dto.getTableData()) {
|
||||
if (!jsonObject.getString("turnout_sect_code").equals(jsonObject.getString("turnin_sect_code")) || !jsonObject.getString("turnin_sect_code").equals("BHG")) {
|
||||
throw new IllegalArgumentException("只能移动不合格区或在本库区移库!");
|
||||
|
||||
if (!jsonObject.getString("turnout_sect_code").equals(jsonObject.getString("turnin_sect_code")) && !jsonObject.getString("turnin_sect_code").equals("BHG")) {
|
||||
throw new IllegalArgumentException("只能移动到不合格区或在本库区移库!");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -87,7 +87,7 @@
|
||||
<el-table-column prop="pcsn" label="批次号" :min-width="flexWidth('pcsn',crud.data,'批次号')" />
|
||||
<el-table-column prop="storagevehicle_code" label="载具号" :min-width="flexWidth('storagevehicle_code',crud.data,'载具号')" />
|
||||
<el-table-column prop="qty" label="总数" :formatter="crud.formatNum3" :min-width="100" />
|
||||
<el-table-column label="可用数" :min-width="100" >
|
||||
<el-table-column label="可用数" :min-width="100">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ scope.row.qty - scope.row.frozen_qty }}</span>
|
||||
</template>
|
||||
@@ -96,6 +96,8 @@
|
||||
<el-table-column prop="qty_unit_name" label="计量单位" :min-width="flexWidth('qty_unit_name',crud.data,'计量单位')" />
|
||||
<el-table-column prop="remark" label="备注" :min-width="flexWidth('remark',crud.data,'备注')" />
|
||||
<el-table-column prop="create_time" label="入库时间" :min-width="flexWidth('insert_time',crud.data,'入库时间')" />
|
||||
<el-table-column prop="supp_code" label="供应商编码" :min-width="flexWidth('supp_code',crud.data,'供应商编码')" />
|
||||
<el-table-column prop="supp_name" label="供应商名称" :min-width="flexWidth('supp_name',crud.data,'供应商名称')" />
|
||||
</el-table>
|
||||
<!--分页组件-->
|
||||
<pagination />
|
||||
@@ -154,15 +156,15 @@ export default {
|
||||
sectQueryChange(val) {
|
||||
if (val.length === 1) {
|
||||
this.query.stor_id = val[0]
|
||||
this.query.sect_id = ''
|
||||
this.query.sect_code = ''
|
||||
}
|
||||
if (val.length === 0) {
|
||||
this.query.sect_id = ''
|
||||
this.query.sect_code = ''
|
||||
this.query.stor_id = ''
|
||||
}
|
||||
if (val.length === 2) {
|
||||
this.query.stor_id = val[0]
|
||||
this.query.sect_id = val[1]
|
||||
this.query.sect_code = val[1]
|
||||
}
|
||||
this.crud.toQuery()
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user