fix:1.修复输送线命令下发是否校验库存;
2.组盘导入增加新物料;
3.删除组盘信息,关联删除载具物料表;
This commit is contained in:
@@ -55,9 +55,8 @@ public class EndDecisionChainer extends DecisionerChain<List> {
|
||||
IStIvtStructattrService iStIvtStructattrService = SpringContextHolder.getBean(IStIvtStructattrService.class);
|
||||
IMdPbVehicleMaterService iMdPbVehicleMaterService = SpringContextHolder.getBean(IMdPbVehicleMaterService.class);
|
||||
List<String> structs = new ArrayList<>();
|
||||
StIvtStructattr structattr = (StIvtStructattr) transfers.get(0);
|
||||
try {
|
||||
if (in_storage) {
|
||||
StIvtStructattr structattr = (StIvtStructattr) transfers.get(0);
|
||||
UpdateWrapper<StIvtStructattr> updateWrapper = new UpdateWrapper<StIvtStructattr>()
|
||||
.set("vehicle_code", startParam.getString("vehicle_code"))
|
||||
.set("lock_type", StatusEnum.LOCK.code("入库锁"))
|
||||
@@ -78,6 +77,7 @@ public class EndDecisionChainer extends DecisionerChain<List> {
|
||||
for (StructattrVechielDto vechielDto : vechielDtos) {
|
||||
iMdPbVehicleMaterService.update(new UpdateWrapper<MdPbVehicleMater>()
|
||||
.set("frozen_qty", vechielDto.getFrozen_qty())
|
||||
.set("update_time", DateUtil.now())
|
||||
.eq("id", vechielDto.getVm_id()));
|
||||
}
|
||||
List<String> structCodes = vechielDtos.stream().map(StructattrVechielDto::getStruct_code).collect(Collectors.toList());
|
||||
@@ -90,9 +90,6 @@ public class EndDecisionChainer extends DecisionerChain<List> {
|
||||
System.out.println("载具绑定成功" + collect);
|
||||
structs = collect;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error("库位:" + structattr.getStruct_code() + "异常:" + e.getMessage());
|
||||
}
|
||||
return structs;
|
||||
}
|
||||
|
||||
|
||||
@@ -7,6 +7,9 @@
|
||||
FROM
|
||||
`sch_base_task` t
|
||||
<where>
|
||||
<if test="whereJson.task_id != null">
|
||||
AND t.id = #{whereJson.task_id}
|
||||
</if>
|
||||
<if test="whereJson.task_code != null">
|
||||
AND t.task_code = #{whereJson.task_code}
|
||||
</if>
|
||||
|
||||
@@ -10,6 +10,7 @@ import java.io.Serializable;
|
||||
**/
|
||||
@Data
|
||||
public class SchBaseTaskQuery implements Serializable {
|
||||
private String task_id;
|
||||
private String task_code;
|
||||
private String vehicle_code;
|
||||
private String point_code;
|
||||
|
||||
@@ -67,7 +67,7 @@ public class MdGruopDickController {
|
||||
@Log("删除桶记录表")
|
||||
public ResponseEntity<Object> delete(@RequestBody String[] ids) {
|
||||
if (ids != null && ids.length >0){
|
||||
iMdGruopDickService.removeByIds(Arrays.asList(ids));
|
||||
iMdGruopDickService.delete(ids);
|
||||
}
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@ import org.nl.wms.md_manage.group_dick.service.dao.MdGruopDick;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import org.nl.wms.md_manage.group_dick.service.dto.GroupDickQuery;
|
||||
import org.nl.wms.md_manage.vehicleMater.service.dto.MdPbVehicleMaterVo;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
@@ -26,6 +27,8 @@ public interface IMdGruopDickService extends IService<MdGruopDick> {
|
||||
Object queryAll(GroupDickQuery query, PageQuery page);
|
||||
|
||||
void groupDick(JSONObject form);
|
||||
void delete(@RequestBody String[] ids);
|
||||
|
||||
|
||||
/**
|
||||
* 导入组盘信息
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package org.nl.wms.md_manage.group_dick.service.impl;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.poi.excel.ExcelReader;
|
||||
import cn.hutool.poi.excel.ExcelUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
@@ -45,10 +46,7 @@ import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.InputStream;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
@@ -62,8 +60,6 @@ import java.util.stream.Collectors;
|
||||
@Service
|
||||
public class MdGruopDickServiceImpl extends ServiceImpl<MdGruopDickMapper, MdGruopDick> implements IMdGruopDickService {
|
||||
|
||||
@Autowired
|
||||
private SyncFormMappingServiceImpl syncFormMappingServiceImpl;
|
||||
@Autowired
|
||||
private IMdPbVehicleMaterService iMdPbVehicleMaterService;
|
||||
@Autowired
|
||||
@@ -76,6 +72,8 @@ public class MdGruopDickServiceImpl extends ServiceImpl<MdGruopDickMapper, MdGru
|
||||
private ErpServiceUtils erpServiceUtils;
|
||||
@Autowired
|
||||
private SyncErpBillsScheduleService syncErpBillsScheduleService;
|
||||
@Autowired
|
||||
private SyncFormMappingServiceImpl syncFormMappingServiceImpl;
|
||||
|
||||
@Override
|
||||
public Object queryAll(GroupDickQuery query, PageQuery pageQuery) {
|
||||
@@ -215,6 +213,22 @@ public class MdGruopDickServiceImpl extends ServiceImpl<MdGruopDickMapper, MdGru
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public void delete(String[] ids) {
|
||||
if (ids != null && ids.length > 0) {
|
||||
this.removeByIds(Arrays.asList(ids));
|
||||
List<MdPbVehicleMater> vehicleMaterList = iMdPbVehicleMaterService.list(new QueryWrapper<MdPbVehicleMater>().select("id").in("group_id", ids));
|
||||
if (ObjectUtil.isNotEmpty(vehicleMaterList)) {
|
||||
iMdPbVehicleMaterService.removeByIds(vehicleMaterList.stream().map(MdPbVehicleMater::getId).collect(Collectors.toList()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 组盘导入
|
||||
*/
|
||||
@Override
|
||||
@Transactional
|
||||
public void excelImport(MultipartFile file, HttpServletRequest request, HttpServletResponse response) {
|
||||
@@ -253,7 +267,7 @@ public class MdGruopDickServiceImpl extends ServiceImpl<MdGruopDickMapper, MdGru
|
||||
if (!queryMaterialInfo) {
|
||||
throw new BadRequestException("第" + (i + 1) + "行," + material_code + "在ERP系统上检索不到相关物料信息,请检查!");
|
||||
}
|
||||
materialCode = mdMeMaterialbaseService.getOne(new QueryWrapper<MdMeMaterialbase>().eq("material_code", material_code));
|
||||
materialCode = mdMeMaterialbaseService.getOne(new QueryWrapper<MdMeMaterialbase>().eq("material_code", material_code));
|
||||
}
|
||||
materialCode.setSingle_weight(new BigDecimal(single_weight));
|
||||
//更新单重
|
||||
|
||||
@@ -2,10 +2,8 @@ package org.nl.wms.pda_manage.devicemanage;
|
||||
|
||||
|
||||
import cn.dev33.satoken.annotation.SaIgnore;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.lang.Assert;
|
||||
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 org.apache.commons.lang3.ObjectUtils;
|
||||
@@ -13,24 +11,18 @@ import org.apache.commons.lang3.StringUtils;
|
||||
import org.nl.common.TableDataInfo;
|
||||
import org.nl.common.anno.Log;
|
||||
import org.nl.common.domain.exception.BadRequestException;
|
||||
import org.nl.common.domain.exception.handler.ApiError;
|
||||
import org.nl.common.enums.StatusEnum;
|
||||
import org.nl.common.utils.*;
|
||||
import org.nl.common.utils.MapOf;
|
||||
import org.nl.common.utils.RedissonUtils;
|
||||
import org.nl.wms.base_manage.vehicle.service.IBmVehicleInfoService;
|
||||
import org.nl.wms.base_manage.vehicle.service.dao.BmVehicleInfo;
|
||||
import org.nl.wms.dispatch_manage.point.service.ISchBasePointService;
|
||||
import org.nl.wms.dispatch_manage.point.service.dao.SchBasePoint;
|
||||
import org.nl.wms.dispatch_manage.task.handler.impl.TranforTask;
|
||||
import org.nl.wms.dispatch_manage.task.service.ISchBaseTaskService;
|
||||
import org.nl.wms.dispatch_manage.task.service.dao.SchBaseTask;
|
||||
import org.nl.wms.external_system.acs.service.AcsToWmsService;
|
||||
import org.nl.wms.external_system.acs.service.WmsToAcsService;
|
||||
import org.nl.wms.md_manage.vehicleMater.service.IMdPbVehicleMaterService;
|
||||
import org.nl.wms.md_manage.vehicleMater.service.dao.MdPbVehicleMater;
|
||||
import org.nl.wms.md_manage.vehicleMater.service.dto.MdPbVehicleMaterVo;
|
||||
import org.nl.wms.pda_manage.devicemanage.dto.ComTp;
|
||||
import org.nl.wms.pda_manage.palletio.service.PalletIostorinvService;
|
||||
import org.nl.wms.pda_manage.palletio.service.dto.LabelValueVo;
|
||||
import org.nl.wms.stor_manage.struct.service.IStIvtStructattrService;
|
||||
import org.nl.wms.stor_manage.struct.service.dao.StIvtStructattr;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@@ -42,7 +34,6 @@ import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.text.Format;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
@@ -112,40 +103,46 @@ public class DeviceManageController {
|
||||
@SaIgnore
|
||||
@Log("下发输送线运动命令")
|
||||
public ResponseEntity<TableDataInfo> toCommandTP(@RequestBody ComTp form) {
|
||||
Assert.noNullElements(new Object[]{form.getDevice_code(),form.getVehicle_code()},"请求参数不能为空");
|
||||
Assert.noNullElements(new Object[]{form.getDevice_code(), form.getVehicle_code()}, "请求参数不能为空");
|
||||
String device_code = form.getDevice_code();
|
||||
String vehicleCode = form.getVehicle_code();
|
||||
String is_check = form.getIs_check();
|
||||
if (StringUtils.isBlank(is_check)) {
|
||||
is_check = "1";
|
||||
}
|
||||
SchBasePoint code = iSchBasePointService.getOne(new QueryWrapper<SchBasePoint>().eq("code", device_code));
|
||||
if (code!=null && !code.getIs_used()){
|
||||
throw new BadRequestException(String.format("输送线%s模式不正确不允许下发运动",device_code));
|
||||
if (code != null && !code.getIs_used()) {
|
||||
throw new BadRequestException(String.format("输送线%s模式不正确不允许下发运动", device_code));
|
||||
}
|
||||
BmVehicleInfo vehicleInfo = iBmVehicleInfoService.getOne(new QueryWrapper<BmVehicleInfo>()
|
||||
.eq("vehicle_code", vehicleCode));
|
||||
if (vehicleInfo == null ){
|
||||
throw new BadRequestException(String.format(vehicleCode+"载具信息不存在"));
|
||||
if (vehicleInfo == null) {
|
||||
throw new BadRequestException(String.format(vehicleCode + "载具信息不存在"));
|
||||
}
|
||||
List<MdPbVehicleMaterVo> item = iMdPbVehicleMaterService.getVehicleMaters(vehicleCode);
|
||||
if (CollectionUtils.isEmpty(item)){
|
||||
throw new BadRequestException(String.format(vehicleCode+"载具组盘信息不存在"));
|
||||
if (CollectionUtils.isEmpty(item)) {
|
||||
throw new BadRequestException(String.format(vehicleCode + "载具组盘信息不存在"));
|
||||
}
|
||||
for (MdPbVehicleMaterVo materVo : item) {
|
||||
if (materVo.getQty().intValue() == 0){
|
||||
throw new BadRequestException(String.format(vehicleCode+"组盘异常,确认是否出库后组盘"));
|
||||
if (materVo.getQty().intValue() == 0) {
|
||||
throw new BadRequestException(String.format(vehicleCode + "组盘异常,确认是否出库后组盘"));
|
||||
}
|
||||
}
|
||||
//校验料箱是否还存在库存
|
||||
RedissonUtils.lock(() -> {
|
||||
QueryWrapper<StIvtStructattr> query = new QueryWrapper<StIvtStructattr>()
|
||||
.eq("is_used", true)
|
||||
.eq("lock_type", StatusEnum.LOCK.code("无锁"))
|
||||
.eq("vehicle_code", vehicleCode);
|
||||
List<StIvtStructattr> list = iStIvtStructattrService.list(query);
|
||||
if (ObjectUtils.isNotEmpty(list)) {
|
||||
throw new BadRequestException(String.format("扫码失败:当前载具号在立库的库位中未出库:%s中,请核查库存记录!", list.get(0).getStruct_code()));
|
||||
}
|
||||
}, StatusEnum.STRATEGY_TYPE.code("入库") + vehicleCode, 5);
|
||||
wmsToAcsService.toCommand(device_code,"1",vehicleInfo.getH());
|
||||
return new ResponseEntity<>(TableDataInfo.build(),HttpStatus.OK);
|
||||
if ("1".equals(is_check)) {
|
||||
//校验料箱是否还存在库存
|
||||
RedissonUtils.lock(() -> {
|
||||
QueryWrapper<StIvtStructattr> query = new QueryWrapper<StIvtStructattr>()
|
||||
.eq("is_used", true)
|
||||
.eq("lock_type", StatusEnum.LOCK.code("无锁"))
|
||||
.eq("vehicle_code", vehicleCode);
|
||||
List<StIvtStructattr> list = iStIvtStructattrService.list(query);
|
||||
if (ObjectUtils.isNotEmpty(list)) {
|
||||
throw new BadRequestException(String.format("扫码失败:当前载具号在立库的库位中未出库:%s中,请核查库存记录!", list.get(0).getStruct_code()));
|
||||
}
|
||||
}, StatusEnum.STRATEGY_TYPE.code("入库") + vehicleCode, 5);
|
||||
}
|
||||
wmsToAcsService.toCommand(device_code, "1", vehicleInfo.getH());
|
||||
return new ResponseEntity<>(TableDataInfo.build(), HttpStatus.OK);
|
||||
}
|
||||
@PostMapping("transf")
|
||||
@SaIgnore
|
||||
|
||||
@@ -16,4 +16,9 @@ public class ComTp {
|
||||
* 载具编码
|
||||
*/
|
||||
private String vehicle_code ;
|
||||
/**
|
||||
* 是否库存检查
|
||||
*/
|
||||
private String is_check ;
|
||||
|
||||
}
|
||||
|
||||
@@ -197,6 +197,7 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl<StIvtIostorinvOutMapp
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private List<MdPbVehicleMater> groupVehicle(JSONObject form, List<Map> tmpItemO, StIvtIostorinvdtl dtl) {
|
||||
String now = DateUtil.now();
|
||||
String user = SecurityUtils.getCurrentNickName();
|
||||
|
||||
Reference in New Issue
Block a user