新增工位剔除接口

dev_2.5_optimize
yewj 5 months ago
parent c63a3eb5c6
commit 12154b85ab

@ -48,8 +48,7 @@ public class IoCollectOrderCodeAutoController extends BaseController {
* @return
*/
@GetMapping("/udiwms/ioSplit/collect/auto/code/filter")
public BaseResponse filterByCode(IoSplitCodeRequest splitCodeRequest,
BindingResult bindingResult) {
public BaseResponse filterByCode(IoSplitCodeRequest splitCodeRequest, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
@ -67,8 +66,7 @@ public class IoCollectOrderCodeAutoController extends BaseController {
* @return
*/
@GetMapping("/udiwms/ioSplit/collect/auto/order/filter")
public BaseResponse filterByBillNo(CollectOrderCodeAutoRequest collectOrderCodeAutoRequest,
BindingResult bindingResult) {
public BaseResponse filterByBillNo(CollectOrderCodeAutoRequest collectOrderCodeAutoRequest, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
@ -89,8 +87,7 @@ public class IoCollectOrderCodeAutoController extends BaseController {
* @return
*/
@GetMapping("/udiwms/ioSplit/collect/auto/order/result")
public BaseResponse filterResultByBillNo(CollectOrderBizRequest collectOrderBizRequest,
BindingResult bindingResult) {
public BaseResponse filterResultByBillNo(CollectOrderBizRequest collectOrderBizRequest, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
@ -101,8 +98,7 @@ public class IoCollectOrderCodeAutoController extends BaseController {
CollectOrderBizResponse collectOrderBizResponse = new CollectOrderBizResponse();
BeanUtils.copyProperties(collectOrderBiz, collectOrderBizResponse);
for (IoCollectOrderCodeAuto collectOrderCodeAuto : collectOrderCodeAutos) {
if (collectOrderCodeAuto.getRelId().equals(collectOrderBiz.getRelId()) &&
(StrUtil.isNotEmpty(collectOrderCodeAuto.getBatchNo()) && StrUtil.emptyIfNull(collectOrderBiz.getBatchNo()).equals(collectOrderCodeAuto.getBatchNo()))) {
if (collectOrderCodeAuto.getRelId().equals(collectOrderBiz.getRelId()) && (StrUtil.isNotEmpty(collectOrderCodeAuto.getBatchNo()) && StrUtil.emptyIfNull(collectOrderBiz.getBatchNo()).equals(collectOrderCodeAuto.getBatchNo()))) {
collectOrderBizResponse.setUdiCode(StrUtil.trimToEmpty(collectOrderBizResponse.getUdiCode()) + "," + collectOrderCodeAuto.getUdiCode());
} else if (collectOrderCodeAuto.getRelId().equals(collectOrderBiz.getRelId())) {
collectOrderBizResponse.setUdiCode(StrUtil.trimToEmpty(collectOrderBizResponse.getUdiCode()) + "," + collectOrderCodeAuto.getUdiCode());
@ -127,8 +123,7 @@ public class IoCollectOrderCodeAutoController extends BaseController {
* @return
*/
@GetMapping("/udiwms/ioSplit/collect/code/filter")
public BaseResponse filterByTagCode(CollectOrderCodeAutoRequest collectOrderCodeAutoRequest,
BindingResult bindingResult) {
public BaseResponse filterByTagCode(CollectOrderCodeAutoRequest collectOrderCodeAutoRequest, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}

@ -165,4 +165,8 @@ public class IoFifoDesOrderController extends BaseController {
return ResultVOUtils.success("损耗出库成功");
}
}

@ -8,6 +8,7 @@ import com.glxp.api.entity.auth.SysWorkplace;
import com.glxp.api.entity.basic.*;
import com.glxp.api.entity.collect.*;
import com.glxp.api.exception.JsonException;
import com.glxp.api.req.collect.AddInvDesDetaiRequest;
import com.glxp.api.req.collect.CollectOrderBizRequest;
import com.glxp.api.req.collect.CollectOrderRequest;
import com.glxp.api.res.collect.CollectOrderBizResponse;
@ -600,7 +601,7 @@ public class IoCodeTempController extends BaseController {
}
if (IntUtil.value(udiEntity.getProductType()) == 2) {
try {
baseResponse = addDrugOrder(addOrderRequest, udiEntity, code,groupNumber);
baseResponse = addDrugOrder(addOrderRequest, udiEntity, code, groupNumber);
} catch (JsonException e) {
if (e.getCode() == 507) {
baseResponse = ResultVOUtils.error(e.getCode(), e.getMessage());
@ -692,7 +693,7 @@ public class IoCodeTempController extends BaseController {
}
if (IntUtil.value(udiEntity.getProductType()) == 2) {
Integer groupNumber = getMaxGroupNumber() == null ? 1 : getMaxGroupNumber() + 1;
return addDrugOrder(addOrderRequest, udiEntity, code,groupNumber);
return addDrugOrder(addOrderRequest, udiEntity, code, groupNumber);
} else {
return addMaterOrder(addOrderRequest, udiEntity, code);
}
@ -1363,9 +1364,8 @@ public class IoCodeTempController extends BaseController {
RelCodeBatchService relCodeBatchService;
// @Transactional(rollbackFor = Exception.class)
public BaseResponse addDrugOrder(AddOrderRequest addOrderRequest, UdiEntity udiEntity, String code,Integer groupNumber) {
// @Transactional(rollbackFor = Exception.class)
public BaseResponse addDrugOrder(AddOrderRequest addOrderRequest, UdiEntity udiEntity, String code, Integer groupNumber) {
AddCodeResult addCodeResult = new AddCodeResult();
BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(addOrderRequest.getAction());
InvWarehouseEntity invWarehouseEntity = invWarehouseService.findByInvSubByCode(addOrderRequest.getInvCode());
@ -1942,14 +1942,12 @@ public class IoCodeTempController extends BaseController {
}
public Integer getMaxGroupNumber(){
public Integer getMaxGroupNumber() {
Integer groupNumber = codeTempService.selectMaxGroupNumber();
return groupNumber;
}
public void updateRelCode(BasicBussinessTypeEntity bussinessTypeEntity, String code) {
if (!(bussinessTypeEntity.getAction().equals(ConstantType.SPLIT_OUT) || bussinessTypeEntity.getAction().equals(ConstantType.SPLIT_RETURN)))
relCodeBatchService.threadUpdateIoCodeTempEntity(code);
@ -2014,7 +2012,7 @@ public class IoCodeTempController extends BaseController {
addOrderRequest.setBillNo(ioOrderEntity.getBillNo());
}
Integer groupNumber = getMaxGroupNumber() == null ? 1 : getMaxGroupNumber() + 1;
return addDrugOrder(addOrderRequest, udiEntity, code,groupNumber);
return addDrugOrder(addOrderRequest, udiEntity, code, groupNumber);
}
public void checkPrice(IoCodeTempEntity codeTempEntity, BasicBussinessTypeEntity bussinessTypeEntity, String
@ -3036,7 +3034,7 @@ public class IoCodeTempController extends BaseController {
addOrderRequest.setCode(code);
if (IntUtil.value(udiEntity.getProductType()) == 2) {
try {
baseResponse = addDrugOrder(addOrderRequest, udiEntity, code,groupNumber);
baseResponse = addDrugOrder(addOrderRequest, udiEntity, code, groupNumber);
} catch (JsonException e) {
if (e.getCode() == 507) {
baseResponse = ResultVOUtils.error(e.getCode(), e.getMessage());
@ -3094,7 +3092,6 @@ public class IoCodeTempController extends BaseController {
for (IoCodeTempResponse ioSplitCodeResponse : list) {
if (StrUtil.isEmpty(ioSplitCodeResponse.getGgxh())) {
ioSplitCodeResponse.setGgxh(ioSplitCodeResponse.getBzgg());
}
}
// if (list.size() == 0 || list == null) {
@ -3107,4 +3104,21 @@ public class IoCodeTempController extends BaseController {
return ResultVOUtils.success(pageSimpleResponse);
}
/**
*
*
* @param bindingResult
* @return
*/
@PostMapping("/udiwms/warehouse/inout/removeCodes")
public BaseResponse removeCodes(@RequestBody FilterCodeRequest filterCodeRequest,
BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
ioSplitFifoInvService.removeByCodes(filterCodeRequest.getCodeList(), filterCodeRequest.getWorkPlaceCode());
return ResultVOUtils.success("损耗出库成功");
}
}

@ -72,4 +72,9 @@ public class FilterCodeRequest extends ListPageRequest {
*
*/
private List<String> codeList;
/**
*
*/
private Long workPlaceCode;
}

@ -122,30 +122,7 @@ public class IoSplitFifoInvService extends ServiceImpl<IoSplitFifoInvMapper, IoS
splitFifoInv.setAvailableCount(IntUtil.value(splitFifoInv.getAvailableCount()) + IntUtil.value(ioSplitFifoCodeEntity.getTotalCount()));
updateById(splitFifoInv);
} else {
splitFifoInv = IoSplitFifoInv.builder()
.id(IdUtil.getSnowflakeNextId())
.workPlaceCode(ioSplitFifoCodeEntity.getWorkPlaceCode())
.deptCode(ioSplitFifoCodeEntity.getDeptCode())
.invCode(ioSplitFifoCodeEntity.getInvCode())
.productType(ioSplitFifoCodeEntity.getProductType())
.fifoSplit(ioSplitFifoCodeEntity.getFifoSplit())
.relId(ioSplitFifoCodeEntity.getRelId())
.inCodeCount(ioSplitFifoCodeEntity.getScanCount())
.batchNo(ioSplitFifoCodeEntity.getBatchNo())
.produceDate(ioSplitFifoCodeEntity.getProduceDate())
.expireDate(ioSplitFifoCodeEntity.getExpireDate())
.supId(ioSplitFifoCodeEntity.getSupId())
.inCount(ioSplitFifoCodeEntity.getTotalCount())
.outCount(0)
.reCount(IntUtil.value(ioSplitFifoCodeEntity.getTotalCount()))
.availableCount(IntUtil.value(ioSplitFifoCodeEntity.getTotalCount()))
.lockCount(0)
.createTime(new Date())
.updateTime(new Date())
.remark(null)
.enableRemind(false)
.invRemindCount(0)
.workPlaceQueueCode(orderEntity.getWorkPlaceQueueCode() == null ? setQueueCode(ioSplitFifoCodeEntity.getWorkPlaceCode(), orderEntity.getCreateUser()) : orderEntity.getWorkPlaceQueueCode()).build();
splitFifoInv = IoSplitFifoInv.builder().id(IdUtil.getSnowflakeNextId()).workPlaceCode(ioSplitFifoCodeEntity.getWorkPlaceCode()).deptCode(ioSplitFifoCodeEntity.getDeptCode()).invCode(ioSplitFifoCodeEntity.getInvCode()).productType(ioSplitFifoCodeEntity.getProductType()).fifoSplit(ioSplitFifoCodeEntity.getFifoSplit()).relId(ioSplitFifoCodeEntity.getRelId()).inCodeCount(ioSplitFifoCodeEntity.getScanCount()).batchNo(ioSplitFifoCodeEntity.getBatchNo()).produceDate(ioSplitFifoCodeEntity.getProduceDate()).expireDate(ioSplitFifoCodeEntity.getExpireDate()).supId(ioSplitFifoCodeEntity.getSupId()).inCount(ioSplitFifoCodeEntity.getTotalCount()).outCount(0).reCount(IntUtil.value(ioSplitFifoCodeEntity.getTotalCount())).availableCount(IntUtil.value(ioSplitFifoCodeEntity.getTotalCount())).lockCount(0).createTime(new Date()).updateTime(new Date()).remark(null).enableRemind(false).invRemindCount(0).workPlaceQueueCode(orderEntity.getWorkPlaceQueueCode() == null ? setQueueCode(ioSplitFifoCodeEntity.getWorkPlaceCode(), orderEntity.getCreateUser()) : orderEntity.getWorkPlaceQueueCode()).build();
// if (isOnlyInv) {
// splitFifoInv.setBusType(ioSplitFifoCodeEntity.getBusType());
// }
@ -184,16 +161,10 @@ public class IoSplitFifoInvService extends ServiceImpl<IoSplitFifoInvMapper, IoS
}
SysWorkplaceQueue workplaceQueue = queues.get(0);
// 使用流来过滤掉匹配的元素
List<SysWorkplaceQueue> filteredQueues = queues.stream()
.filter(queue -> {
IoSplitFifoInv one = getOne(
new LambdaQueryWrapper<IoSplitFifoInv>()
.eq(IoSplitFifoInv::getWorkPlaceQueueCode, queue.getCode())
);
return one == null; // 只保留那些没有匹配的槽位
})
.sorted((queue1, queue2) -> queue1.getCode().compareTo(queue2.getCode()))
.collect(Collectors.toList());
List<SysWorkplaceQueue> filteredQueues = queues.stream().filter(queue -> {
IoSplitFifoInv one = getOne(new LambdaQueryWrapper<IoSplitFifoInv>().eq(IoSplitFifoInv::getWorkPlaceQueueCode, queue.getCode()));
return one == null; // 只保留那些没有匹配的槽位
}).sorted((queue1, queue2) -> queue1.getCode().compareTo(queue2.getCode())).collect(Collectors.toList());
if (filteredQueues.size() > 0) {
//还有剩余的槽位 可分配
SysWorkplaceQueue sysWorkplaceQueue = filteredQueues.get(0);
@ -248,8 +219,7 @@ public class IoSplitFifoInvService extends ServiceImpl<IoSplitFifoInvMapper, IoS
}
}
} else {
if (ioSplitFifoCodeEntity != null)
splitCodeEntities.add(ioSplitFifoCodeEntity);
if (ioSplitFifoCodeEntity != null) splitCodeEntities.add(ioSplitFifoCodeEntity);
}
}
}
@ -268,14 +238,37 @@ public class IoSplitFifoInvService extends ServiceImpl<IoSplitFifoInvMapper, IoS
}
@Transactional(rollbackFor = Exception.class)
public void removeByCodes(List<String> codes, Long workPlaceCode) {
List<IoSplitFifoCodeEntity> splitCodeEntities = new ArrayList<>();
for (String code : codes) {
IoSplitFifoCodeEntity ioSplitFifoCodeEntity = splitFifoCodeService.findByCode(code, workPlaceCode);
if (ioSplitFifoCodeEntity == null) {
throw new JsonException(500, "工位队列不存在!");
}
splitCodeEntities.add(ioSplitFifoCodeEntity);
}
if (CollUtil.isNotEmpty(splitCodeEntities)) {
splitFifoCodeService.removeBatchByIds(splitCodeEntities);
for (IoSplitFifoCodeEntity ioSplitFifoCodeEntity : splitCodeEntities) {
IoSplitFifoInv splitFifoInv = findByFifoCode(ioSplitFifoCodeEntity);
if (splitFifoInv != null) {
splitFifoInv.setOutCount(IntUtil.value(splitFifoInv.getOutCount()) + IntUtil.value(ioSplitFifoCodeEntity.getTotalCount()));
splitFifoInv.setOutCodeCount(IntUtil.value(splitFifoInv.getOutCodeCount()) + 1);
splitFifoInv.setReCount(IntUtil.value(splitFifoInv.getInCount()) - IntUtil.value(splitFifoInv.getOutCount()));
splitFifoInv.setReCodeCount(IntUtil.value(splitFifoInv.getInCodeCount()) - IntUtil.value(splitFifoInv.getOutCodeCount()));
splitFifoInv.setAvailableCount(IntUtil.value(splitFifoInv.getInCount()) - IntUtil.value(splitFifoInv.getOutCount()) - IntUtil.value(splitFifoInv.getLockCount()));
updateById(splitFifoInv);
}
}
}
}
public IoSplitFifoInv findByFifoCode(IoSplitFifoCodeEntity ioSplitFifoCodeEntity) {
// Boolean isOnlyInv = sysWorkplaceDocumentService.isOnlyInv(ioSplitFifoCodeEntity.getWorkPlaceCode(), ioSplitFifoCodeEntity.getBusType());
IoSplitFifoInv splitFifoInv = getOne(new LambdaQueryWrapper<IoSplitFifoInv>()
.eq(IoSplitFifoInv::getRelId, ioSplitFifoCodeEntity.getRelId())
.eq(IoSplitFifoInv::getWorkPlaceCode, ioSplitFifoCodeEntity.getWorkPlaceCode())
.eq(StrUtil.isNotEmpty(ioSplitFifoCodeEntity.getBatchNo()), IoSplitFifoInv::getBatchNo, ioSplitFifoCodeEntity.getBatchNo())
.eq(ioSplitFifoCodeEntity.getSupId() != null, IoSplitFifoInv::getSupId, ioSplitFifoCodeEntity.getSupId()).last("limit 1"));
IoSplitFifoInv splitFifoInv = getOne(new LambdaQueryWrapper<IoSplitFifoInv>().eq(IoSplitFifoInv::getRelId, ioSplitFifoCodeEntity.getRelId()).eq(IoSplitFifoInv::getWorkPlaceCode, ioSplitFifoCodeEntity.getWorkPlaceCode()).eq(StrUtil.isNotEmpty(ioSplitFifoCodeEntity.getBatchNo()), IoSplitFifoInv::getBatchNo, ioSplitFifoCodeEntity.getBatchNo()).eq(ioSplitFifoCodeEntity.getSupId() != null, IoSplitFifoInv::getSupId, ioSplitFifoCodeEntity.getSupId()).last("limit 1"));
// .eq(StrUtil.isNotEmpty(ioSplitFifoCodeEntity.getBusType()) && isOnlyInv, IoSplitFifoInv::getBusType, ioSplitFifoCodeEntity.getBusType())
return splitFifoInv;
}
@ -337,7 +330,7 @@ public class IoSplitFifoInvService extends ServiceImpl<IoSplitFifoInvMapper, IoS
t.setRemindState(1);
}
Integer suggestOutCount = t.getSuggestOutCount();
if (suggestOutCount != null && suggestOutCount <0){
if (suggestOutCount != null && suggestOutCount < 0) {
t.setSuggestOutCount(0);
}
});
@ -357,12 +350,7 @@ public class IoSplitFifoInvService extends ServiceImpl<IoSplitFifoInvMapper, IoS
Assert.notNull(ioSplitFifoInvRequest.getId(), "Id不能为空");
IoSplitFifoInv old = this.getById(ioSplitFifoInvRequest.getId());
Assert.notNull(old, "不存在该库存预警设置");
this.lambdaUpdate()
.set(ioSplitFifoInvRequest.getEnableRemind() != null, IoSplitFifoInv::getEnableRemind, ioSplitFifoInvRequest.getEnableRemind() ? 1 : 0)
.set(ioSplitFifoInvRequest.getInvRemindCount() != null, IoSplitFifoInv::getInvRemindCount, ioSplitFifoInvRequest.getInvRemindCount())
.set(IoSplitFifoInv::getUpdateTime, new Date())
.eq(IoSplitFifoInv::getId, ioSplitFifoInvRequest.getId())
.update();
this.lambdaUpdate().set(ioSplitFifoInvRequest.getEnableRemind() != null, IoSplitFifoInv::getEnableRemind, ioSplitFifoInvRequest.getEnableRemind() ? 1 : 0).set(ioSplitFifoInvRequest.getInvRemindCount() != null, IoSplitFifoInv::getInvRemindCount, ioSplitFifoInvRequest.getInvRemindCount()).set(IoSplitFifoInv::getUpdateTime, new Date()).eq(IoSplitFifoInv::getId, ioSplitFifoInvRequest.getId()).update();
}
}

Loading…
Cancel
Save