扫码关联关系等相关修改

dev_unify
yewj 8 months ago
parent 4223be84b5
commit b250e7b930

@ -8,7 +8,9 @@ import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.constant.RedissonCacheKey;
import com.glxp.api.controller.BaseController;
import com.glxp.api.dao.inout.IoCodeTempDao;
import com.glxp.api.entity.collect.RelCodeBatch;
import com.glxp.api.entity.inout.IoCodeTempEntity;
import com.glxp.api.req.collect.RelCodeBatchRequest;
import com.glxp.api.req.collect.RelCodeDetailRequest;
import com.glxp.api.res.PageSimpleResponse;
@ -32,6 +34,7 @@ public class RelCodeBatchController extends BaseController {
/**
*
*
* @param uuid
* @param file
* @return
@ -46,6 +49,7 @@ public class RelCodeBatchController extends BaseController {
/**
*
*
* @param relCodeBatchRequest
* @return
*/
@ -58,6 +62,7 @@ public class RelCodeBatchController extends BaseController {
/**
*
*
* @param relCodeBatchRequest
* @return
*/
@ -100,7 +105,6 @@ public class RelCodeBatchController extends BaseController {
}
@GetMapping("/udiwms/relCode/batch/deleteDetail")
public BaseResponse deleteDetail(@RequestParam("curCode") String curCode) {
relCodeBatchService.deleteDetail(curCode);
@ -117,6 +121,7 @@ public class RelCodeBatchController extends BaseController {
/**
*
*
* @param parentCode
* @return
*/
@ -127,16 +132,23 @@ public class RelCodeBatchController extends BaseController {
}
@Resource
IoCodeTempDao ioCodeTempDao;
/**
*
*
* @param parentCode
* @return
*/
@GetMapping("/udiwms/relCode/updateIoCodeTempEntity")
public BaseResponse threadUpdateIoCodeTempEntity(@RequestParam("parentCode") String parentCode) {
public BaseResponse threadUpdateIoCodeTempEntity(@RequestParam("parentCode") String parentCode, @RequestParam("id") Integer id) {
if (StrUtil.isBlank(parentCode)) return ResultVOUtils.error(500, "层级编码格式错误!");
IoCodeTempEntity codeTempEntity = new IoCodeTempEntity();
codeTempEntity.setId(id);
codeTempEntity.setDrugLink(1);
ioCodeTempDao.updateById(codeTempEntity);
relCodeBatchService.threadUpdateIoCodeTempEntity(parentCode);
return ResultVOUtils.success();
}
}

@ -1,5 +1,6 @@
package com.glxp.api.controller.inout;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.thread.ThreadUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@ -16,6 +17,7 @@ import com.glxp.api.req.collect.CollectOrderBizRequest;
import com.glxp.api.req.collect.CollectOrderRequest;
import com.glxp.api.res.collect.CollectOrderBizResponse;
import com.glxp.api.res.collect.IoCollectOrderResponse;
import com.glxp.api.res.collect.RelCodeDetailResponse;
import com.glxp.api.res.inout.IoOrderDetailCodeResponse;
import com.glxp.api.res.inout.VailCodeResultResponse;
import com.glxp.api.service.collect.*;
@ -1446,6 +1448,11 @@ public class IoCodeTempController extends BaseController {
if (StrUtil.isEmpty(exitLocalEntity.getSupId()) || exitLocalEntity.getRelId() == null) {
return ResultVOUtils.error(500, "当前药品追溯码已存在,且存在异常未处理!");
}
if (StringUtils.isNotBlank(exitLocalEntity.getSerialNo())) {
return ResultVOUtils.error(500, "重复扫码!");
}
udiRelevanceResponses = udiRelevanceService.selectGroupByNameCode(exitLocalEntity.getNameCode(), null);
BeanUtils.copyProperties(exitLocalEntity, genDetaiEntity);
genDetaiEntity.setCount(1);
@ -1464,9 +1471,6 @@ public class IoCodeTempController extends BaseController {
exitLocalEntity.setReCount(exitLocalEntity.getMyReCount() * udiCalCountUtil.getCirActCount(udiRelevanceResponses.get(0)));
}
if (!StringUtils.isBlank(exitLocalEntity.getSerialNo())) {
return ResultVOUtils.error(500, "重复扫码!");
}
//校验库存
BaseResponse invRes = null;
if (IntUtil.value(bussinessTypeEntity.getUseDyCount()) == 2) {
@ -1535,6 +1539,9 @@ public class IoCodeTempController extends BaseController {
}
}
if (exitLocalEntity == null) {
if (codeTempService.ieExitRel(code, orderId)) {
return ResultVOUtils.error(500, "当前追溯码已上传关联关系,请勿重复扫码!");
}
IoCodeTempEntity codeEnttity = new IoCodeTempEntity();
codeEnttity.setCode(code);
codeEnttity.setOrderId(orderId);
@ -1787,6 +1794,9 @@ public class IoCodeTempController extends BaseController {
return ResultVOUtils.success(addCodeResult);
}
@Resource
RelCodeDetailService relCodeDetailService;
//前端扫码提交(药品)
@RepeatSubmit()
@AuthRuleAnnotation("")
@ -1822,6 +1832,21 @@ public class IoCodeTempController extends BaseController {
if (StrUtil.isNotEmpty(addOrderRequest.getSerialNo())) {
udiEntity.setSerialNo(addOrderRequest.getSerialNo());
}
if (StrUtil.isEmpty(udiEntity.getBatchNo())) {
IoCodeLostEntity codeLostEntity = codeLostService.findByCode(code);
if (codeLostEntity != null) {
udiEntity.setBatchNo(codeLostEntity.getBatchNo());
udiEntity.setProduceDate(codeLostEntity.getProduceDate());
udiEntity.setExpireDate(codeLostEntity.getExpireDate());
} else {
RelCodeDetailResponse codeRelEntity = relCodeDetailService.findByCode(code);
if (codeRelEntity != null) {
udiEntity.setBatchNo(codeRelEntity.getBatchNo());
udiEntity.setProduceDate(MsDateUtil.formatDate(codeRelEntity.getMadeDate(), "yyMMdd"));
udiEntity.setExpireDate(MsDateUtil.formatDate(codeRelEntity.getValidateDate(), "yyMMdd"));
}
}
}
IoOrderEntity ioOrderEntity = orderService.findCorpOrderId(addOrderRequest.getCorpOrderId());
if (ioOrderEntity != null) {
addOrderRequest.setBillNo(ioOrderEntity.getBillNo());

@ -19,7 +19,6 @@ import com.glxp.api.res.inv.InvPreinDetailResponse;
import com.glxp.api.res.inv.InvPreinOrderResponse;
import com.glxp.api.service.auth.InvWarehouseService;
import com.glxp.api.service.basic.IBasicBussinessTypeService;
import com.glxp.api.service.inout.IoCodeTempService;
import com.glxp.api.service.inout.impl.IoCodeService;
import com.glxp.api.service.inv.InvPreinDetailService;
import com.glxp.api.service.inv.InvPreinOrderService;

@ -202,7 +202,6 @@ public class IoCodeTempEntity {
private Integer drugLink;
public int getMyCount() {
if (count == null)
return 0;
@ -216,4 +215,9 @@ public class IoCodeTempEntity {
return reCount;
}
/**
*
*/
@TableField(value = "parentCode")
private String parentCode;
}

@ -444,7 +444,7 @@ public class IoCollectOrderCodeManService extends ServiceImpl<IoCollectOrderCode
.orderIdFk(collectOrder.getBillNo())
.bizIdFk(collectOrderBiz.getId())
.relId(collectOrderBiz.getRelId())
.nameCode(udiRelevanceResponse.getNameCode())
.nameCode(udiEntity.getUdi())
.batchNo(udiEntity.getBatchNo())
.serialNo(udiEntity.getSerialNo())
.productDate(udiEntity.getProduceDate())
@ -513,7 +513,7 @@ public class IoCollectOrderCodeManService extends ServiceImpl<IoCollectOrderCode
.ybbm(udiRelevanceResponse.getYbbm())
.payFeeCode(udiRelevanceResponse.getPayFeeCode())
.cpmctymc(udiRelevanceResponse.getCpmctymc())
.nameCode(udiRelevanceResponse.getNameCode())
.nameCode(udiEntity.getUdi())
.ggxh(StrUtil.isNotEmpty(udiRelevanceResponse.getGgxh()) ? udiRelevanceResponse.getGgxh() : udiRelevanceResponse.getBzgg())
.batchNo(udiEntity.getBatchNo())
.productDate(udiEntity.getProduceDate())

@ -17,6 +17,7 @@ import com.glxp.api.dao.inout.IoCodeTempDao;
import com.glxp.api.entity.auth.AuthAdmin;
import com.glxp.api.entity.basic.ProductInfoEntity;
import com.glxp.api.entity.basic.UdiEntity;
import com.glxp.api.entity.basic.UdiProductEntity;
import com.glxp.api.entity.collect.RelCodeDetail;
import com.glxp.api.entity.inout.IoCodeTempEntity;
import com.glxp.api.entity.thrsys.ThrSystemEntity;
@ -31,6 +32,7 @@ import com.glxp.api.res.collect.RelCodeDetailByParentCodeResponse;
import com.glxp.api.res.inv.ThrInvResultResponse;
import com.glxp.api.service.auth.CustomerService;
import com.glxp.api.service.basic.ProductInfoService;
import com.glxp.api.service.basic.UdiProductService;
import com.glxp.api.util.HttpClient;
import com.glxp.api.util.udi.FilterUdiUtils;
import lombok.extern.slf4j.Slf4j;
@ -68,6 +70,7 @@ public class RelCodeBatchService extends ServiceImpl<RelCodeBatchMapper, RelCode
/**
*
*
* @param file
*/
@Transactional(rollbackFor = Exception.class)
@ -164,6 +167,7 @@ public class RelCodeBatchService extends ServiceImpl<RelCodeBatchMapper, RelCode
/**
*
*
* @param relCodeBatchRequest
*/
@Transactional(rollbackFor = Exception.class)
@ -175,8 +179,7 @@ public class RelCodeBatchService extends ServiceImpl<RelCodeBatchMapper, RelCode
List<RelCodeBatch> list = this.list(new LambdaQueryWrapper<RelCodeBatch>()
.eq(RelCodeBatch::getProductCode, productCode)
.eq(RelCodeBatch::getSubTypeNo, subTypeNo)
.eq(RelCodeBatch::getBatchNo, batchNo))
;
.eq(RelCodeBatch::getBatchNo, batchNo));
if (CollUtil.isNotEmpty(list)) {
throw new JsonException("层级编码:【" + productCode + "】;类型编码:【" + subTypeNo + "】;批次号:【" + batchNo + "】已存在!");
}
@ -351,9 +354,10 @@ public class RelCodeBatchService extends ServiceImpl<RelCodeBatchMapper, RelCode
}
@Resource
IoCodeTempDao ioCodeTempDao;
@Resource
UdiProductService udiProductService;
public void threadUpdateIoCodeTempEntity(String parentCode) {
List<IoCodeTempEntity> ioCodeTempEntities = ioCodeTempDao.selectList(new LambdaQueryWrapper<IoCodeTempEntity>().eq(IoCodeTempEntity::getCode, parentCode));
@ -361,12 +365,15 @@ public class RelCodeBatchService extends ServiceImpl<RelCodeBatchMapper, RelCode
//1、排除掉层级是1的
UdiEntity udi = FilterUdiUtils.getUdi(parentCode);
if (udi == null)
return;
String udi1 = udi.getUdi();
ProductInfoEntity byNameCode = productInfoService.findByNameCode(udi1);
UdiProductEntity udiProductEntity = udiProductService.findByNameCode(udi1);
if (udiProductEntity == null)
return;
List<RelCodeBatch> navList = this.list(new LambdaQueryWrapper<RelCodeBatch>()
.eq(RelCodeBatch::getParentCode, parentCode));
if ( (byNameCode != null && "1".equals(byNameCode.getPackLevel()))
if ((udiProductEntity != null && "1".equals(udiProductEntity.getPackLevel()))
|| (CollUtil.isNotEmpty(navList))
) {
//打上匹配到了药品关联关系的标记
@ -375,7 +382,6 @@ public class RelCodeBatchService extends ServiceImpl<RelCodeBatchMapper, RelCode
ioCodeTempEntity.setDrugLink(1);
ioCodeTempDao.updateById(ioCodeTempEntity);
}
} else {
ThreadUtil.execAsync(() -> {
asynThreadUpdateIoCodeTempEntity(parentCode, ioCodeTempEntities);

@ -13,13 +13,16 @@ import com.glxp.api.req.collect.RelCodeDetailRequest;
import com.glxp.api.res.collect.RelCodeDetailResponse;
import com.glxp.api.util.udi.FilterUdiUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Collections;
import java.util.Currency;
import java.util.List;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.glxp.api.dao.collect.RelCodeDetailMapper;
import com.glxp.api.entity.collect.RelCodeDetail;
@Service
public class RelCodeDetailService extends ServiceImpl<RelCodeDetailMapper, RelCodeDetail> {
@ -28,6 +31,7 @@ public class RelCodeDetailService extends ServiceImpl<RelCodeDetailMapper, RelCo
/**
*
*
* @param relCodeDetailRequest
* @return
*/
@ -99,6 +103,7 @@ public class RelCodeDetailService extends ServiceImpl<RelCodeDetailMapper, RelCo
/**
*
*
* @param relCodeDetailRequest
* @return
*/
@ -113,4 +118,15 @@ public class RelCodeDetailService extends ServiceImpl<RelCodeDetailMapper, RelCo
return this.baseMapper.filterList(relCodeDetailRequest);
}
public RelCodeDetailResponse findByCode(String code) {
RelCodeDetailRequest relCodeDetailRequest = new RelCodeDetailRequest();
relCodeDetailRequest.setCurCode(code);
List<RelCodeDetailResponse> relCodeDetailResponse = filterList(relCodeDetailRequest);
if (CollUtil.isNotEmpty(relCodeDetailResponse)) {
return relCodeDetailResponse.get(0);
} else {
return null;
}
}
}

@ -33,7 +33,6 @@ import com.glxp.api.service.basic.UdiRelevanceService;
import com.glxp.api.service.basic.UdiRlSupService;
import com.glxp.api.service.inout.IoAddInoutService;
import com.glxp.api.service.inout.IoCheckInoutService;
import com.glxp.api.service.inout.IoCodeTempService;
import com.glxp.api.service.inout.IoOrderService;
import com.glxp.api.service.inout.impl.IoCodeService;
import com.glxp.api.service.inv.impl.InvProductService;

@ -1,59 +1,274 @@
package com.glxp.api.service.inout;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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.dao.inout.IoCodeTempDao;
import com.glxp.api.entity.basic.BasicBussinessTypeEntity;
import com.glxp.api.entity.collect.RelCodeDetail;
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.collect.RelCodeDetailService;
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;
public interface IoCodeTempService {
@Service
@Transactional(rollbackFor = Exception.class)
public class IoCodeTempService {
@Resource
IoCodeTempDao ioCodeTempDao;
IoCodeTempEntity selectById(Integer id);
int insert(IoCodeTempEntity codeEnttity);
public IoCodeTempEntity selectById(Integer id) {
return ioCodeTempDao.selectById(id);
}
public int insert(IoCodeTempEntity codeEnttity) {
codeEnttity.setId(null);
return ioCodeTempDao.insert(codeEnttity);
}
public int deleteById(Integer id) {
return ioCodeTempDao.deleteById(id);
}
public boolean insertBatch(List<IoCodeTempEntity> codeEnttities) {
return ioCodeTempDao.insertBatch(codeEnttities);
}
public List<IoCodeTempEntity> findByOrderId(String billNo) {
return ioCodeTempDao.selectList(new QueryWrapper<IoCodeTempEntity>().eq("orderId", billNo));
}
public List<IoCodeResponse> findJoinByOrderId(String billNo) {
if (StrUtil.isEmpty(billNo))
return null;
FilterCodeRequest filterCodeRequest = new FilterCodeRequest();
filterCodeRequest.setOrderId(billNo);
return ioCodeTempDao.filterJoinProduct(filterCodeRequest);
}
public int updateById(IoCodeTempEntity codeEnttity) {
return ioCodeTempDao.updateById(codeEnttity);
}
public int updateByOrderId(IoCodeTempEntity codeTempEntity) {
return ioCodeTempDao.update(codeTempEntity, new QueryWrapper<IoCodeTempEntity>().eq("orderId", codeTempEntity.getOrderId()));
}
public IoCodeTempEntity findByUnique(String orderId, String code) {
List<IoCodeTempEntity> codeTempEntities = ioCodeTempDao.selectList(new QueryWrapper<IoCodeTempEntity>().eq("orderId", orderId).eq("code", code));
if (CollUtil.isNotEmpty(codeTempEntities)) {
IoCodeTempEntity codeTempEntity = codeTempEntities.get(0);
if (codeTempEntities.size() > 1) {
for (int i = 1; i < codeTempEntities.size(); i++) {
codeTempEntity.setCount(codeTempEntity.getCount() + codeTempEntities.get(i).getCount());
codeTempEntity.setReCount(codeTempEntity.getReCount() + codeTempEntities.get(i).getReCount());
}
}
return codeTempEntity;
int deleteById(Integer id);
}
boolean insertBatch(List<IoCodeTempEntity> codeEnttities);
return null;
}
int updateById(IoCodeTempEntity codeEnttity);
public TableDataInfo<IoCodeTempEntity> findByOrderId(FilterCodeRequest filterCodeRequest) {
PageQuery pageQuery = new PageQuery();
BeanCopyUtils.copy(filterCodeRequest, pageQuery);
Page<IoCodeTempEntity> page = ioCodeTempDao.selectPage(pageQuery.build(), new QueryWrapper<IoCodeTempEntity>().eq("orderId", filterCodeRequest.getOrderId()));
return TableDataInfo.build(page);
}
int updateByOrderId(IoCodeTempEntity codeTempEntity);
IoCodeTempEntity findByUnique(String orderId, String code);
public int deleteByBillNo(String orderId) {
return ioCodeTempDao.delete(new QueryWrapper<IoCodeTempEntity>().eq("orderId", orderId));
}
List<IoCodeTempEntity> findByOrderId(String billNo);
List<IoCodeResponse> findJoinByOrderId(String billNo);
public List<IoCodeTempResponse> findCodeList(FilterCodeRequest filterCodeRequest) {
if (null != filterCodeRequest && null != filterCodeRequest.getPage() && null != filterCodeRequest.getLimit()) {
PageHelper.offsetPage((filterCodeRequest.getPage() - 1) * filterCodeRequest.getLimit(), filterCodeRequest.getLimit());
}
return ioCodeTempDao.selectCodeList(filterCodeRequest);
}
TableDataInfo<IoCodeTempEntity> findByOrderId(FilterCodeRequest filterCodeRequest);
int deleteByBillNo(String orderId);
public boolean isExit(String orderId) {
return ioCodeTempDao.exists(new QueryWrapper<IoCodeTempEntity>().eq("orderId", orderId));
}
/**
*
*
* @param filterCodeRequest
* @return
*/
List<IoCodeTempResponse> findCodeList(FilterCodeRequest filterCodeRequest);
boolean isExit(String orderId);
public Integer selectExitCount(String orderId, String bacthNo, Long relId, String supId) {
FilterCodeRequest filterCodeRequest = new FilterCodeRequest();
filterCodeRequest.setOrderId(orderId);
filterCodeRequest.setBatchNo(bacthNo);
filterCodeRequest.setRelId(relId + "");
filterCodeRequest.setSupId(supId);
return ioCodeTempDao.selectExitCount(filterCodeRequest);
}
Integer selectExitCount(String orderId, String bacthNo, Long relId, String supId);
Integer selectExitCount(String orderId, String code);
public Integer selectExitCount(String orderId, String code) {
FilterCodeRequest filterCodeRequest = new FilterCodeRequest();
filterCodeRequest.setOrderId(orderId);
filterCodeRequest.setCode(code);
return ioCodeTempDao.selectExitCount(filterCodeRequest);
}
Boolean checkTempCode(IoCodeTempEntity ioCodeTempEntity);
IoCodeTempEntity selectByCode(String code, String batchNo, String action);
public Boolean checkTempCode(IoCodeTempEntity ioCodeTempEntity) {
List<IoCodeTempEntity> selectByCodes(List<String> codeList, String orderId);
QueryWrapper<IoCodeTempEntity> ew = new QueryWrapper<>();
ew.eq("code", ioCodeTempEntity.getCode());
ew.eq("corpOrderId", ioCodeTempEntity.getCorpOrderId());
ew.eq("batchNo", ioCodeTempEntity.getBatchNo());
ew.eq("produceDate", ioCodeTempEntity.getProduceDate());
ew.eq("expireDate", ioCodeTempEntity.getExpireDate());
ew.eq("serialNo", ioCodeTempEntity.getSerialNo());
Long count = ioCodeTempDao.selectCount(ew);
if (count > 0) {
return false;
}
return true;
}
public IoCodeTempEntity selectByCode(String code, String batchNo, String action) {
QueryWrapper<IoCodeTempEntity> ew = new QueryWrapper<>();
ew.eq("code", code);
ew.eq(StrUtil.isNotEmpty(batchNo), "batchNo", batchNo);
ew.eq(StrUtil.isNotEmpty(action), "action", action);
return ioCodeTempDao.selectOne(ew);
}
public List<IoCodeTempEntity> selectByCodes(List<String> codeList, String orderId) {
QueryWrapper<IoCodeTempEntity> ew = new QueryWrapper<>();
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;
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;
}
@Resource
RelCodeDetailService relCodeDetailService;
public boolean ieExitRel(String code, String orderId) {
boolean ret = false;
RelCodeDetail relCodeDetail = relCodeDetailService.getOne(new LambdaQueryWrapper<RelCodeDetail>().eq(RelCodeDetail::getCurCode, code));
if (relCodeDetail != null) {
ret = ioCodeTempDao.exists(new LambdaQueryWrapper<IoCodeTempEntity>().eq(IoCodeTempEntity::getOrderId, orderId).eq(IoCodeTempEntity::getCode, relCodeDetail.getParentCode()));
if (!ret) {
ret = ioCodeTempDao.exists(new LambdaQueryWrapper<IoCodeTempEntity>().eq(IoCodeTempEntity::getOrderId, orderId).eq(IoCodeTempEntity::getParentCode, code));
}
}
return ret;
}
Boolean removeCodeById(IoCodeTempEntity codeTempEntity);
}

@ -1,255 +0,0 @@
package com.glxp.api.service.inout.impl;
import cn.hutool.core.collection.CollUtil;
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
@Transactional(rollbackFor = Exception.class)
public class IoCodeTempServiceImpl implements IoCodeTempService {
@Resource
IoCodeTempDao ioCodeTempDao;
@Override
public IoCodeTempEntity selectById(Integer id) {
return ioCodeTempDao.selectById(id);
}
@Override
public int insert(IoCodeTempEntity codeEnttity) {
codeEnttity.setId(null);
return ioCodeTempDao.insert(codeEnttity);
}
@Override
public int deleteById(Integer id) {
return ioCodeTempDao.deleteById(id);
}
@Override
public boolean insertBatch(List<IoCodeTempEntity> codeEnttities) {
return ioCodeTempDao.insertBatch(codeEnttities);
}
@Override
public List<IoCodeTempEntity> findByOrderId(String billNo) {
return ioCodeTempDao.selectList(new QueryWrapper<IoCodeTempEntity>().eq("orderId", billNo));
}
@Override
public List<IoCodeResponse> findJoinByOrderId(String billNo) {
if (StrUtil.isEmpty(billNo))
return null;
FilterCodeRequest filterCodeRequest = new FilterCodeRequest();
filterCodeRequest.setOrderId(billNo);
return ioCodeTempDao.filterJoinProduct(filterCodeRequest);
}
@Override
public int updateById(IoCodeTempEntity codeEnttity) {
return ioCodeTempDao.updateById(codeEnttity);
}
@Override
public int updateByOrderId(IoCodeTempEntity codeTempEntity) {
return ioCodeTempDao.update(codeTempEntity, new QueryWrapper<IoCodeTempEntity>().eq("orderId", codeTempEntity.getOrderId()));
}
@Override
public IoCodeTempEntity findByUnique(String orderId, String code) {
List<IoCodeTempEntity> codeTempEntities = ioCodeTempDao.selectList(new QueryWrapper<IoCodeTempEntity>().eq("orderId", orderId).eq("code", code));
if (CollUtil.isNotEmpty(codeTempEntities)) {
IoCodeTempEntity codeTempEntity = codeTempEntities.get(0);
if (codeTempEntities.size() > 1) {
for (int i = 1; i < codeTempEntities.size(); i++) {
codeTempEntity.setCount(codeTempEntity.getCount() + codeTempEntities.get(i).getCount());
codeTempEntity.setReCount(codeTempEntity.getReCount() + codeTempEntities.get(i).getReCount());
}
}
return codeTempEntity;
}
return null;
}
@Override
public TableDataInfo<IoCodeTempEntity> findByOrderId(FilterCodeRequest filterCodeRequest) {
PageQuery pageQuery = new PageQuery();
BeanCopyUtils.copy(filterCodeRequest, pageQuery);
Page<IoCodeTempEntity> page = ioCodeTempDao.selectPage(pageQuery.build(), new QueryWrapper<IoCodeTempEntity>().eq("orderId", filterCodeRequest.getOrderId()));
return TableDataInfo.build(page);
}
@Override
public int deleteByBillNo(String orderId) {
return ioCodeTempDao.delete(new QueryWrapper<IoCodeTempEntity>().eq("orderId", orderId));
}
@Override
public List<IoCodeTempResponse> findCodeList(FilterCodeRequest filterCodeRequest) {
if (null != filterCodeRequest && null != filterCodeRequest.getPage() && null != filterCodeRequest.getLimit()) {
PageHelper.offsetPage((filterCodeRequest.getPage() - 1) * filterCodeRequest.getLimit(), filterCodeRequest.getLimit());
}
return ioCodeTempDao.selectCodeList(filterCodeRequest);
}
@Override
public boolean isExit(String orderId) {
return ioCodeTempDao.exists(new QueryWrapper<IoCodeTempEntity>().eq("orderId", orderId));
}
@Override
public Integer selectExitCount(String orderId, String bacthNo, Long relId, String supId) {
FilterCodeRequest filterCodeRequest = new FilterCodeRequest();
filterCodeRequest.setOrderId(orderId);
filterCodeRequest.setBatchNo(bacthNo);
filterCodeRequest.setRelId(relId + "");
filterCodeRequest.setSupId(supId);
return ioCodeTempDao.selectExitCount(filterCodeRequest);
}
@Override
public Integer selectExitCount(String orderId, String code) {
FilterCodeRequest filterCodeRequest = new FilterCodeRequest();
filterCodeRequest.setOrderId(orderId);
filterCodeRequest.setCode(code);
return ioCodeTempDao.selectExitCount(filterCodeRequest);
}
@Override
public Boolean checkTempCode(IoCodeTempEntity ioCodeTempEntity) {
QueryWrapper<IoCodeTempEntity> ew = new QueryWrapper<>();
ew.eq("code", ioCodeTempEntity.getCode());
ew.eq("corpOrderId", ioCodeTempEntity.getCorpOrderId());
ew.eq("batchNo", ioCodeTempEntity.getBatchNo());
ew.eq("produceDate", ioCodeTempEntity.getProduceDate());
ew.eq("expireDate", ioCodeTempEntity.getExpireDate());
ew.eq("serialNo", ioCodeTempEntity.getSerialNo());
Long count = ioCodeTempDao.selectCount(ew);
if (count > 0) {
return false;
}
return true;
}
@Override
public IoCodeTempEntity selectByCode(String code, String batchNo, String action) {
QueryWrapper<IoCodeTempEntity> ew = new QueryWrapper<>();
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) {
QueryWrapper<IoCodeTempEntity> ew = new QueryWrapper<>();
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;
}
}

@ -10,7 +10,6 @@ import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson2.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.github.pagehelper.PageHelper;
import com.glxp.api.common.enums.ResultEnum;
@ -19,7 +18,6 @@ import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.dao.inout.*;
import com.glxp.api.entity.inout.*;
import com.glxp.api.entity.system.PlatformEntity;
import com.glxp.api.idc.service.FileService;
import com.glxp.api.req.inout.PlatformLinkRequest;
import com.glxp.api.res.inout.IoUploadOrderResponse;
import com.glxp.api.res.inout.PlatformLinkResponse;
@ -36,7 +34,6 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.io.File;
import java.io.IOException;
import java.net.URLEncoder;
import java.util.*;
import java.util.concurrent.TimeUnit;

@ -4686,3 +4686,6 @@ CALL Pro_Temp_ColumnWork('sys_workplace_queue', 'assignmentTerms1',
CALL Pro_Temp_ColumnWork('sys_workplace_queue', 'assignmentTerms2',
'varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT ''分配条件2''',
1);
CALL Pro_Temp_ColumnWork('io_code_temp', 'parentCode',
' varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT ''父级编码''',
1);
Loading…
Cancel
Save