|
|
|
@ -5,20 +5,32 @@ import cn.hutool.core.util.StrUtil;
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
|
|
import com.github.pagehelper.PageHelper;
|
|
|
|
|
import com.glxp.api.common.util.ResultVOUtils;
|
|
|
|
|
import com.glxp.api.dao.inout.IoCodeTempDao;
|
|
|
|
|
import com.glxp.api.entity.basic.BasicBussinessTypeEntity;
|
|
|
|
|
import com.glxp.api.entity.inout.IoCodeTempEntity;
|
|
|
|
|
import com.glxp.api.entity.inout.IoOrderDetailCodeEntity;
|
|
|
|
|
import com.glxp.api.entity.inout.IoOrderEntity;
|
|
|
|
|
import com.glxp.api.req.inout.FilterCodeRequest;
|
|
|
|
|
import com.glxp.api.res.basic.UdiRelevanceResponse;
|
|
|
|
|
import com.glxp.api.res.inout.IoCodeResponse;
|
|
|
|
|
import com.glxp.api.res.inout.IoCodeTempResponse;
|
|
|
|
|
import com.glxp.api.service.basic.IBasicBussinessTypeService;
|
|
|
|
|
import com.glxp.api.service.basic.UdiRelevanceService;
|
|
|
|
|
import com.glxp.api.service.inout.IoCodeTempService;
|
|
|
|
|
import com.glxp.api.service.inout.IoOrderDetailBizService;
|
|
|
|
|
import com.glxp.api.service.inout.IoOrderDetailCodeService;
|
|
|
|
|
import com.glxp.api.service.inout.IoOrderService;
|
|
|
|
|
import com.glxp.api.util.BeanCopyUtils;
|
|
|
|
|
import com.glxp.api.util.IntUtil;
|
|
|
|
|
import com.glxp.api.util.page.PageQuery;
|
|
|
|
|
import com.glxp.api.util.page.TableDataInfo;
|
|
|
|
|
import com.glxp.api.util.udi.UdiCalCountUtil;
|
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
|
|
import java.util.Date;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
|
|
|
|
|
@Service
|
|
|
|
@ -154,20 +166,90 @@ public class IoCodeTempServiceImpl implements IoCodeTempService {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public IoCodeTempEntity selectByCode(String code,String batchNo,String action) {
|
|
|
|
|
public IoCodeTempEntity selectByCode(String code, String batchNo, String action) {
|
|
|
|
|
QueryWrapper<IoCodeTempEntity> ew = new QueryWrapper<>();
|
|
|
|
|
ew.eq("code",code);
|
|
|
|
|
ew.eq("code", code);
|
|
|
|
|
ew.eq(StrUtil.isNotEmpty(batchNo), "batchNo", batchNo);
|
|
|
|
|
ew.eq(StrUtil.isNotEmpty(action), "action", action);
|
|
|
|
|
return ioCodeTempDao.selectOne(ew);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public List<IoCodeTempEntity> selectByCodes(List<String> codeList,String orderId) {
|
|
|
|
|
public List<IoCodeTempEntity> selectByCodes(List<String> codeList, String orderId) {
|
|
|
|
|
QueryWrapper<IoCodeTempEntity> ew = new QueryWrapper<>();
|
|
|
|
|
ew.eq("orderId",orderId);
|
|
|
|
|
ew.eq("orderId", orderId);
|
|
|
|
|
ew.in("code", codeList);
|
|
|
|
|
return ioCodeTempDao.selectList(ew);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Resource
|
|
|
|
|
private IoOrderService orderService;
|
|
|
|
|
@Resource
|
|
|
|
|
private IBasicBussinessTypeService basicBussinessTypeService;
|
|
|
|
|
@Resource
|
|
|
|
|
UdiRelevanceService udiRelevanceService;
|
|
|
|
|
@Resource
|
|
|
|
|
UdiCalCountUtil udiCalCountUtil;
|
|
|
|
|
@Resource
|
|
|
|
|
IoOrderDetailCodeService ioOrderDetailCodeService;
|
|
|
|
|
@Resource
|
|
|
|
|
IoOrderDetailBizService orderDetailBizService;
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public Boolean removeCodeById(IoCodeTempEntity codeTempEntity) {
|
|
|
|
|
|
|
|
|
|
IoOrderEntity orderEntity = orderService.findByBillNo(codeTempEntity.getOrderId());
|
|
|
|
|
BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(orderEntity.getAction());
|
|
|
|
|
UdiRelevanceResponse udiRelevanceResponses = udiRelevanceService.selectByNameCode(codeTempEntity.getNameCode());
|
|
|
|
|
|
|
|
|
|
if (codeTempEntity.getMyCount() > 1) {
|
|
|
|
|
codeTempEntity.setCount(codeTempEntity.getMyCount() - 1);
|
|
|
|
|
if (bussinessTypeEntity.isUse()) {
|
|
|
|
|
codeTempEntity.setReCount(codeTempEntity.getMyReCount() - udiCalCountUtil.getUseActCount(udiRelevanceResponses));
|
|
|
|
|
} else {
|
|
|
|
|
codeTempEntity.setReCount(codeTempEntity.getMyReCount() - udiCalCountUtil.getCirActCount(udiRelevanceResponses));
|
|
|
|
|
}
|
|
|
|
|
updateById(codeTempEntity);
|
|
|
|
|
} else {
|
|
|
|
|
deleteById(codeTempEntity.getId());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//更新扫码详情
|
|
|
|
|
IoOrderDetailCodeEntity orderDetailCodeEntity = ioOrderDetailCodeService.findByUnique(orderEntity.getBillNo(), codeTempEntity.getRelId(), codeTempEntity.getBatchNo(), codeTempEntity.getPrice());
|
|
|
|
|
if (orderDetailCodeEntity != null) {
|
|
|
|
|
//扫码数量-1
|
|
|
|
|
int orderCount = IntUtil.value(orderDetailCodeEntity.getCount());
|
|
|
|
|
int orderReCount = IntUtil.value(orderDetailCodeEntity.getReCount());
|
|
|
|
|
if (orderCount > 1) {
|
|
|
|
|
orderDetailCodeEntity.setCount(orderCount - 1);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (bussinessTypeEntity.isUse()) {
|
|
|
|
|
orderDetailCodeEntity.setReCount(orderReCount - udiCalCountUtil.getUseActCount(udiRelevanceResponses));
|
|
|
|
|
// codeTempEntity.setReCount(codeTempEntity.getMyReCount() - udiCalCountUtil.getUseActCount(udiRelevanceResponses);
|
|
|
|
|
} else {
|
|
|
|
|
orderDetailCodeEntity.setReCount(orderReCount - udiCalCountUtil.getCirActCount(udiRelevanceResponses));
|
|
|
|
|
// codeTempEntity.setReCount(codeTempEntity.getMyReCount() - udiCalCountUtil.getCirActCount(udiRelevanceResponses);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ioOrderDetailCodeService.update(orderDetailCodeEntity);
|
|
|
|
|
} else {
|
|
|
|
|
ioOrderDetailCodeService.deleteById(orderDetailCodeEntity.getId());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
boolean r1 = orderDetailBizService.isExit(orderEntity.getBillNo());
|
|
|
|
|
boolean r2 = ioOrderDetailCodeService.isExit(orderEntity.getBillNo());
|
|
|
|
|
if (!r1 && !r2) {
|
|
|
|
|
if (StrUtil.isNotEmpty(orderDetailCodeEntity.getOrderIdFk()))
|
|
|
|
|
orderService.deleteByBillNo(orderDetailCodeEntity.getOrderIdFk());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
orderEntity.setUpdateTime(new Date());
|
|
|
|
|
orderService.update(orderEntity);
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|