出入库单据,生产订单重复上传问题

cert
anthonywj 2 years ago
parent c93c02e6f6
commit 884aa89a31

@ -7,16 +7,12 @@ import com.glxp.api.annotation.AuthRuleAnnotation;
import com.glxp.api.common.enums.ResultEnum;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.entity.purchase.SupCertRemindMsgEntity;
import com.glxp.api.entity.sup.UserCertEntity;
import com.glxp.api.entity.trace.TraceManuCodeRelEntity;
import com.glxp.api.entity.trace.TraceManuOrderEntity;
import com.glxp.api.req.trace.*;
import com.glxp.api.res.PageSimpleResponse;
import com.glxp.api.res.trace.TraceManuCodeRellResponse;
import com.glxp.api.res.trace.TraceManuOrderResponse;
import com.glxp.api.res.trace.TraceRecordResponse;
import com.glxp.api.res.trace.TraceTaskDlResponse;
import com.glxp.api.service.trace.TraceManuCodeRelService;
import com.glxp.api.service.trace.TraceManuOrderService;
import com.glxp.api.service.trace.TraceTaskService;

@ -1,37 +1,19 @@
package com.glxp.api.controller.trace;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.IdUtil;
import com.github.pagehelper.PageInfo;
import com.glxp.api.annotation.AuthRuleAnnotation;
import com.glxp.api.common.enums.ResultEnum;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.entity.trace.TraceManuCodeRelEntity;
import com.glxp.api.entity.trace.TraceManuOrderEntity;
import com.glxp.api.req.trace.TraceManuDetailRequest;
import com.glxp.api.req.trace.TraceManuOrderRequest;
import com.glxp.api.req.trace.TraceManuOrderUploadRequest;
import com.glxp.api.req.trace.TraceTaskDetailRequest;
import com.glxp.api.res.PageSimpleResponse;
import com.glxp.api.res.trace.TraceManuCodeRellResponse;
import com.glxp.api.res.trace.TraceManuOrderResponse;
import com.glxp.api.res.trace.TraceTaskDlResponse;
import com.glxp.api.service.trace.TraceManuCodeRelService;
import com.glxp.api.service.trace.TraceManuOrderService;
import com.glxp.api.service.trace.TraceTaskService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import springfox.documentation.annotations.ApiIgnore;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

@ -28,6 +28,7 @@ import com.glxp.api.util.GennerOrderUtils;
import com.glxp.api.util.udi.FilterUdiUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
@ -263,6 +264,7 @@ public class UdiTraceController extends BaseController {
* @param bindingResult
* @return
*/
@Transactional
@AuthRuleAnnotation("udi/trace/order/upload")
@PostMapping("udi/trace/order/upload")
public BaseResponse uploadOrder(@RequestBody TraceOrderUploadRequest traceOrderUploadRequest, BindingResult bindingResult) {
@ -275,6 +277,9 @@ public class UdiTraceController extends BaseController {
return ResultVOUtils.error(500, "任务已过期,或任务不存在!");
}
//清空历史数据
traceOrderService.deleteByCompanyId(taskNoticeEntity.getProdudctRecordIdFk(), taskNoticeEntity.getCompanyIdFk());
TraceOrderEntity traceOrderEntity = new TraceOrderEntity();
BeanUtils.copyProperties(traceOrderUploadRequest, traceOrderEntity);
traceOrderEntity.setId(IdUtil.getSnowflakeNextId());
@ -296,6 +301,7 @@ public class UdiTraceController extends BaseController {
* @param bindingResult
* @return
*/
@Transactional
@AuthRuleAnnotation("udi/trace/manuOrder/upload")
@PostMapping("udi/trace/manuOrder/upload")
public BaseResponse uploadManuOrder(@RequestBody TraceManuOrderUploadRequest traceManuOrderUploadRequest, BindingResult bindingResult) {
@ -308,10 +314,21 @@ public class UdiTraceController extends BaseController {
if (taskNoticeEntity == null) {
return ResultVOUtils.error(500, "任务已过期,或任务不存在!");
}
//清除历史数据
TraceManuOrderEntity originOrder = traceManuOrderService.findByBillNo(traceManuOrderUploadRequest.getBillNo(), taskNoticeEntity.getProdudctRecordIdFk(), taskNoticeEntity.getCompanyIdFk());
if (originOrder != null) {
traceManuOrderService.removeById(originOrder.getId());
traceManuCodeRelService.remove(new QueryWrapper<TraceManuCodeRelEntity>().eq("manuOrderIdFk", originOrder.getId()));
}
//新增生产订单
TraceManuOrderEntity traceManuOrderEntity = new TraceManuOrderEntity();
BeanUtils.copyProperties(traceManuOrderUploadRequest, traceManuOrderEntity);
traceManuOrderEntity.setId(IdUtil.getSnowflakeNextId());
traceManuOrderService.save(traceManuOrderEntity);
//新增订单关联明细
List<TraceManuDetailRequest> traceManuDetailRequests = traceManuOrderUploadRequest.getDetails();
if (CollUtil.isNotEmpty(traceManuDetailRequests)) {
for (TraceManuDetailRequest traceManuDetailRequest : traceManuDetailRequests) {

@ -1,19 +1,45 @@
package com.glxp.api.service.trace;
import com.glxp.api.entity.trace.TraceManuOrderEntity;
import com.baomidou.mybatisplus.extension.service.IService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.pagehelper.PageHelper;
import com.glxp.api.req.trace.TraceManuOrderRequest;
import com.glxp.api.req.trace.TraceRecordRequest;
import com.glxp.api.res.trace.TraceManuOrderResponse;
import com.glxp.api.res.trace.TraceRecordResponse;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.glxp.api.entity.trace.TraceManuOrderEntity;
import com.glxp.api.dao.trace.TraceManuOrderMapper;
import javax.annotation.Resource;
import java.util.Collections;
import java.util.List;
public interface TraceManuOrderService extends IService<TraceManuOrderEntity> {
@Service
public class TraceManuOrderService extends ServiceImpl<TraceManuOrderMapper, TraceManuOrderEntity> {
List<TraceManuOrderResponse> filterTraces(TraceManuOrderRequest traceManuOrderRequest);
@Resource
TraceManuOrderMapper traceManuOrderMapper;
public List<TraceManuOrderResponse> filterTraces(TraceManuOrderRequest traceManuOrderRequest) {
if (traceManuOrderRequest == null) {
return Collections.emptyList();
}
if (traceManuOrderRequest.getPage() != null) {
int offset = (traceManuOrderRequest.getPage() - 1) * traceManuOrderRequest.getLimit();
PageHelper.offsetPage(offset, traceManuOrderRequest.getLimit());
}
return traceManuOrderMapper.filterTraces(traceManuOrderRequest);
}
public TraceManuOrderEntity findByBillNo(String billNo, Long traceProductIdFk, Long companyIdFk) {
TraceManuOrderEntity traceManuOrderEntity =
traceManuOrderMapper.selectOne(new QueryWrapper<TraceManuOrderEntity>()
.eq("billNo", billNo)
.eq("traceProductIdFk", traceProductIdFk)
.eq("companyIdFk", companyIdFk)
);
return traceManuOrderEntity;
}
}

@ -4,7 +4,9 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.pagehelper.PageHelper;
import com.glxp.api.entity.trace.TraceRecordLogEntity;
import com.glxp.api.req.trace.TraceOrderDetailRequest;
import com.glxp.api.req.trace.TraceProductRecordRequest;
import com.glxp.api.res.trace.TraceOrderResponse;
import com.glxp.api.res.trace.TraceProductRecordResponse;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.glxp.api.dao.trace.TraceOrderMapper;
@ -33,10 +35,26 @@ public class TraceOrderService extends ServiceImpl<TraceOrderMapper, TraceOrderE
return traceOrderMapper.queryTraceOrderList(traceOrderDetailRequest);
}
public List<TraceOrderEntity> findByProductIdFk(Long traceProductIdFk) {
return traceOrderMapper.selectList(new QueryWrapper<TraceOrderEntity>().eq("traceProductIdFk", traceProductIdFk));
}
public List<TraceOrderEntity> findByCompanyId(Long traceProductIdFk, Long companyId) {
return traceOrderMapper.selectList(new QueryWrapper<TraceOrderEntity>()
.eq("traceProductIdFk", traceProductIdFk)
.eq("companyIdFk", companyId));
}
public boolean deleteByCompanyId(Long traceProductIdFk, Long companyId) {
return traceOrderMapper.delete(new QueryWrapper<TraceOrderEntity>()
.eq("traceProductIdFk", traceProductIdFk)
.eq("companyIdFk", companyId)) > 0;
}
public List<TraceOrderEntity> findByRecordId(Long recordId) {
TraceRecordLogEntity traceRecordLogEntity = traceRecordService.getById(recordId);
if (traceRecordLogEntity == null)
@ -44,5 +62,13 @@ public class TraceOrderService extends ServiceImpl<TraceOrderMapper, TraceOrderE
return traceOrderMapper.selectList(new QueryWrapper<TraceOrderEntity>().eq("traceProductIdFk", traceRecordLogEntity.getTraceProductIdFk()));
}
public List<TraceProductRecordResponse> filterBatchNo(TraceProductRecordRequest traceProductRecordRequest) {
if (traceProductRecordRequest == null) {
return Collections.emptyList();
}
int offset = (traceProductRecordRequest.getPage() - 1) * traceProductRecordRequest.getLimit();
PageHelper.offsetPage(offset, traceProductRecordRequest.getLimit());
List<TraceProductRecordResponse> data = traceOrderMapper.filterBatchNo(traceProductRecordRequest);
return data;
}
}

@ -164,7 +164,6 @@ public class UdiTraceService {
}
// 创建现场检查询任务
public void createCheckTraceTask(TraceProductDetailEntity traceProductDetailEntity, Long companyId) {
//1.查询出入库单消息是否已经上传

@ -1,39 +0,0 @@
package com.glxp.api.service.trace.impl;
import com.github.pagehelper.PageHelper;
import com.glxp.api.dao.trace.TraceRecordMapper;
import com.glxp.api.req.trace.TraceManuOrderRequest;
import com.glxp.api.req.trace.TraceRecordRequest;
import com.glxp.api.res.trace.TraceManuOrderResponse;
import com.glxp.api.res.trace.TraceRecordResponse;
import com.glxp.api.service.trace.TraceManuOrderService;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.glxp.api.entity.trace.TraceManuOrderEntity;
import com.glxp.api.dao.trace.TraceManuOrderMapper;
import javax.annotation.Resource;
import java.util.Collections;
import java.util.List;
@Service
public class TraceManuOrderServiceImpl extends ServiceImpl<TraceManuOrderMapper, TraceManuOrderEntity> implements TraceManuOrderService {
@Resource
TraceManuOrderMapper traceManuOrderMapper;
@Override
public List<TraceManuOrderResponse> filterTraces(TraceManuOrderRequest traceManuOrderRequest) {
if (traceManuOrderRequest == null) {
return Collections.emptyList();
}
if (traceManuOrderRequest.getPage() != null) {
int offset = (traceManuOrderRequest.getPage() - 1) * traceManuOrderRequest.getLimit();
PageHelper.offsetPage(offset, traceManuOrderRequest.getLimit());
}
return traceManuOrderMapper.filterTraces(traceManuOrderRequest);
}
}

@ -1,50 +0,0 @@
package com.glxp.api.service.trace.impl;
import com.github.pagehelper.PageHelper;
import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.entity.sup.UserCompanyEntity;
import com.glxp.api.req.auth.FilterUserComapanyRequest;
import com.glxp.api.req.trace.TraceOrderDetailRequest;
import com.glxp.api.req.trace.TraceOrderRequest;
import com.glxp.api.req.trace.TraceProductRecordRequest;
import com.glxp.api.res.trace.TraceOrderResponse;
import com.glxp.api.res.trace.TraceProductRecordResponse;
import com.glxp.api.service.trace.TraceOrderService;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.glxp.api.dao.trace.TraceOrderMapper;
import com.glxp.api.entity.trace.TraceOrderEntity;
import javax.annotation.Resource;
import java.util.Collections;
import java.util.List;
@Service
public class TraceOrderServiceImpl extends ServiceImpl<TraceOrderMapper, TraceOrderEntity> implements TraceOrderService {
@Resource
TraceOrderMapper traceOrderMapper;
@Override
public List<TraceOrderResponse> queryTraceOrderList(TraceOrderDetailRequest traceOrderDetailRequest) {
if (traceOrderDetailRequest == null) {
return Collections.emptyList();
}
if (traceOrderDetailRequest.getPage() != null) {
int offset = (traceOrderDetailRequest.getPage() - 1) * traceOrderDetailRequest.getLimit();
PageHelper.offsetPage(offset, traceOrderDetailRequest.getLimit());
}
return traceOrderMapper.queryTraceOrderList(traceOrderDetailRequest);
}
@Override
public List<TraceProductRecordResponse> filterBatchNo(TraceProductRecordRequest traceProductRecordRequest) {
if (traceProductRecordRequest == null) {
return Collections.emptyList();
}
int offset = (traceProductRecordRequest.getPage() - 1) * traceProductRecordRequest.getLimit();
PageHelper.offsetPage(offset, traceProductRecordRequest.getLimit());
List<TraceProductRecordResponse> data = traceOrderMapper.filterBatchNo(traceProductRecordRequest);
return data;
}
}
Loading…
Cancel
Save