单据生成问题

workplace
anthonywj 11 months ago
parent fed1c4174d
commit f32ac0d5a7

@ -163,5 +163,11 @@ public class IoCollectOrderController extends BaseController {
return ResultVOUtils.success("绑定成功");
}
@GetMapping("/udiwms/collect/order/import")
public BaseResponse importOrder() {
collectOrderService.importOrder();
return ResultVOUtils.success();
}
}

@ -143,6 +143,8 @@ public class IoCodeTempController extends BaseController {
originCode = "";
code = originCode + addEnterCodeRequest.getCode();
String newCode = addEnterCodeRequest.getCode();
//重复判断
if (StrUtil.isNotEmpty(addEnterCodeRequest.getOriginCode())) {
String tempOriginCode = addEnterCodeRequest.getOriginCode();
@ -228,6 +230,11 @@ public class IoCodeTempController extends BaseController {
baseResponse.setData(originCode);
return baseResponse;
}
if (IntUtil.value(udiEntity.getProductType()) == 2) {
//药品
udiEntity.setCode(code);
return ResultVOUtils.success(udiEntity);
}
if (StrUtil.isNotEmpty(udiEntity.getBatchNo())) {
if (code.endsWith("10" + udiEntity.getBatchNo())) {
@ -324,9 +331,7 @@ public class IoCodeTempController extends BaseController {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
AddCodeResult addCodeResult = new AddCodeResult();
BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(addOrderRequest.getAction());
InvWarehouseEntity invWarehouseEntity = invWarehouseService.findByInvSubByCode(addOrderRequest.getInvCode());
String code = addOrderRequest.getCode();
if (StringUtils.isBlank(code)) return ResultVOUtils.error(ResultEnum.DATA_ERROR);
if (code.endsWith("\u001D")) {
@ -348,6 +353,21 @@ public class IoCodeTempController extends BaseController {
if (StrUtil.isNotEmpty(addOrderRequest.getSerialNo())) {
udiEntity.setSerialNo(addOrderRequest.getSerialNo());
}
if (IntUtil.value(udiEntity.getProductType()) == 2) {
return adddGrugOrder(addOrderRequest, udiEntity, code);
} else {
return addMaterOrder(addOrderRequest, udiEntity, code);
}
}
public BaseResponse addMaterOrder(AddOrderRequest addOrderRequest, UdiEntity udiEntity, String code) {
AddCodeResult addCodeResult = new AddCodeResult();
BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(addOrderRequest.getAction());
InvWarehouseEntity invWarehouseEntity = invWarehouseService.findByInvSubByCode(addOrderRequest.getInvCode());
if (StrUtil.isNotEmpty(udiEntity.getSerialNo()) && udiEntity.getSerialNo().length() > 20) {
return ResultVOUtils.error(500, "无效条码!序列号超出最大范围");
@ -908,41 +928,10 @@ public class IoCodeTempController extends BaseController {
return ResultVOUtils.success(addCodeResult);
}
//前端扫码提交(药品)
@RepeatSubmit()
@AuthRuleAnnotation("")
@PostMapping("warehouse/inout/drug/addOrderWeb")
@CusRedissonAnnotation(cacheName = RedissonCacheKey.WEB_ADD_CODE, key = {"#addOrderRequest.corpOrderId", "#addOrderRequest.code"}, timeOutMsg = "系统正在处理,请勿重复扫码")
@Log(title = "单据管理", businessType = BusinessType.INSERT)
public BaseResponse addDrugOrderWeb(@RequestBody AddOrderRequest addOrderRequest, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
public BaseResponse adddGrugOrder(AddOrderRequest addOrderRequest, UdiEntity udiEntity, String code) {
AddCodeResult addCodeResult = new AddCodeResult();
BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(addOrderRequest.getAction());
InvWarehouseEntity invWarehouseEntity = invWarehouseService.findByInvSubByCode(addOrderRequest.getInvCode());
String code = addOrderRequest.getCode();
if (StringUtils.isBlank(code)) return ResultVOUtils.error(ResultEnum.DATA_ERROR);
if (code.endsWith("\u001D")) {
code = code.replace("\u001D", "");
}
UdiEntity udiEntity = FilterUdiUtils.getUdi(code);
if (udiEntity == null)
return ResultVOUtils.error(500, "无效条码!");
if (StrUtil.isNotEmpty(addOrderRequest.getBatchNo())) {
udiEntity.setBatchNo(addOrderRequest.getBatchNo());
}
if (StrUtil.isNotEmpty(addOrderRequest.getProduceDate())) {
udiEntity.setProduceDate(addOrderRequest.getProduceDate());
}
if (StrUtil.isNotEmpty(addOrderRequest.getExpireDate())) {
udiEntity.setExpireDate(addOrderRequest.getExpireDate());
}
if (StrUtil.isNotEmpty(addOrderRequest.getSerialNo())) {
udiEntity.setSerialNo(addOrderRequest.getSerialNo());
}
//批次号校验
@ -1302,7 +1291,7 @@ public class IoCodeTempController extends BaseController {
} else
codeTempService.insert(codeEnttity);
// } else if (bussinessTypeEntity.getCheckWebNew() == 2 && bussinessTypeEntity.isCheckEnable()) {
} else if (addOrderRequest.getOrderType() == ConstantStatus.ORDER_TYPE_WAIT && bussinessTypeEntity.isCheckEnable()) {
} else if (IntUtil.value(addOrderRequest.getOrderType()) == ConstantStatus.ORDER_TYPE_WAIT && bussinessTypeEntity.isCheckEnable()) {
String errMsg = ioCheckInoutService.checkDrugNoPiCode(codeEnttity);
if (errMsg != null) {
return ResultVOUtils.error(500, errMsg);
@ -1318,8 +1307,46 @@ public class IoCodeTempController extends BaseController {
return ResultVOUtils.success(addCodeResult);
}
//前端扫码提交(药品)
@RepeatSubmit()
@AuthRuleAnnotation("")
@PostMapping("warehouse/inout/drug/addOrderWeb")
@CusRedissonAnnotation(cacheName = RedissonCacheKey.WEB_ADD_CODE, key = {"#addOrderRequest.corpOrderId", "#addOrderRequest.code"}, timeOutMsg = "系统正在处理,请勿重复扫码")
@Log(title = "单据管理", businessType = BusinessType.INSERT)
public BaseResponse addDrugOrderWeb(@RequestBody AddOrderRequest addOrderRequest, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
String code = addOrderRequest.getCode();
if (StringUtils.isBlank(code)) return ResultVOUtils.error(ResultEnum.DATA_ERROR);
if (code.endsWith("\u001D")) {
code = code.replace("\u001D", "");
}
UdiEntity udiEntity = FilterUdiUtils.getUdi(code);
if (udiEntity == null)
return ResultVOUtils.error(500, "无效条码!");
if (StrUtil.isNotEmpty(addOrderRequest.getBatchNo())) {
udiEntity.setBatchNo(addOrderRequest.getBatchNo());
}
if (StrUtil.isNotEmpty(addOrderRequest.getProduceDate())) {
udiEntity.setProduceDate(addOrderRequest.getProduceDate());
}
if (StrUtil.isNotEmpty(addOrderRequest.getExpireDate())) {
udiEntity.setExpireDate(addOrderRequest.getExpireDate());
}
if (StrUtil.isNotEmpty(addOrderRequest.getSerialNo())) {
udiEntity.setSerialNo(addOrderRequest.getSerialNo());
}
return adddGrugOrder(addOrderRequest, udiEntity, code);
}
public void checkPrice(IoCodeTempEntity codeTempEntity, BasicBussinessTypeEntity bussinessTypeEntity, String inBatch, List<IoCodeTempEntity> codeTempEntities) {
public void checkPrice(IoCodeTempEntity codeTempEntity, BasicBussinessTypeEntity bussinessTypeEntity, String
inBatch, List<IoCodeTempEntity> codeTempEntities) {
String priceFifo = systemParamConfigService.selectValueByParamKey("price_fifo");
if (IntUtil.value(priceFifo) > 0) {
//入库时添加入库批号
@ -1362,7 +1389,8 @@ public class IoCodeTempController extends BaseController {
}
//校验供应商是否配送此产品
public BaseResponse checkCorp(IoCodeTempEntity codeEnttity, BasicBussinessTypeEntity bussinessTypeEntity, String unitFk) {
public BaseResponse checkCorp(IoCodeTempEntity codeEnttity, BasicBussinessTypeEntity
bussinessTypeEntity, String unitFk) {
CompanyProductRelevanceRequest companyProductRelevanceRequest = new CompanyProductRelevanceRequest();
UdiEntity udiEntity = FilterUdiUtils.getUdi(codeEnttity.getCode());
companyProductRelevanceRequest.setNameCode(udiEntity.getUdi());
@ -1440,7 +1468,8 @@ public class IoCodeTempController extends BaseController {
}
//校验供应商唯一性
public BaseResponse checkSupId(BasicBussinessTypeEntity bussinessTypeEntity, IoCodeTempEntity codeEnttity, String unitFk) {
public BaseResponse checkSupId(BasicBussinessTypeEntity bussinessTypeEntity, IoCodeTempEntity
codeEnttity, String unitFk) {
String originSupId = unitFk;
if (originSupId != null) {
codeEnttity.setSupId(originSupId);
@ -2200,7 +2229,8 @@ public class IoCodeTempController extends BaseController {
/**
* @param purType 1:23
*/
public boolean checkDiAttribute(BasicBussinessTypeEntity bussinessTypeEntity, UdiRelevanceResponse udiRelevanceEntity, Integer purType) {
public boolean checkDiAttribute(BasicBussinessTypeEntity bussinessTypeEntity, UdiRelevanceResponse
udiRelevanceEntity, Integer purType) {
if (bussinessTypeEntity.getUseDyCount() == 2) {
if (IntUtil.value(udiRelevanceEntity.getPurType()) == IntUtil.value(purType)) {
return true;

@ -172,6 +172,7 @@ public class IoOrderDetailBizController extends BaseController {
orderEntity.setDeptCode(invWarehouseEntity.getParentId());
orderEntity.setInvCode(orderEntity.getInvCode());
orderEntity.setBusType(bussinessTypeEntity.getBusType());
orderEntity.setProductType(1);
orderService.insertOrder(orderEntity);
}
@ -401,6 +402,7 @@ public class IoOrderDetailBizController extends BaseController {
orderEntity.setFromType(ConstantStatus.FROM_THRORDER);
orderEntity.setOrderType(ConstantStatus.ORDER_TYPE_BIZ);
orderEntity.setBusType(bussinessTypeEntity.getBusType());
orderEntity.setProductType(1);
orderService.insertOrder(orderEntity);
for (ThrOrderDetailEntity thrOrderDetailEntity : thrOrderDetailEntities) {
@ -506,7 +508,9 @@ public class IoOrderDetailBizController extends BaseController {
orderEntity.setOrderType(ConstantStatus.ORDER_TYPE_BIZ);
orderEntity.setFromDeptCode(purReceiveEntity.getDeptCode());
orderEntity.setFromInvCode(purReceiveEntity.getInvCode());
orderEntity.setProductType(1);
orderEntity.setBusType(bussinessTypeEntity.getBusType());
orderService.insertOrder(orderEntity);
for (PurReceiveDetailEntity purReceiveDetailEntity : purReceiveDetailEntities) {
IoOrderDetailBizEntity ioOrderDetailBizEntity = new IoOrderDetailBizEntity();
@ -578,6 +582,7 @@ public class IoOrderDetailBizController extends BaseController {
orderEntity.setFromType(ConstantStatus.FROM_RECEIVE);
orderEntity.setOrderType(ConstantStatus.ORDER_TYPE_BIZ);
orderEntity.setBusType(bussinessTypeEntity.getBusType());
orderEntity.setProductType(1);
orderService.insertOrder(orderEntity);
for (PurOrderDetailEntity purReceiveDetailEntity : purOrderDetailEntities) {
IoOrderDetailBizEntity ioOrderDetailBizEntity = new IoOrderDetailBizEntity();

@ -18,6 +18,8 @@ public class UdiEntity {
private String serialNo;
private String udi;
private Integer productType;
@Override
public String toString() {
return "UdiEntity{" +

@ -40,12 +40,21 @@ public class BasicCollectBustypeService extends ServiceImpl<BasicCollectBustypeM
return basicCollectBustypeMapper.selectOne(new LambdaQueryWrapper<BasicCollectBustypeEntity>().eq(BasicCollectBustypeEntity::getCode, code).last("limit 1 "));
}
public BasicCollectBustypeEntity findByAddr(String addr) {
return basicCollectBustypeMapper.selectOne(new LambdaQueryWrapper<BasicCollectBustypeEntity>().eq(BasicCollectBustypeEntity::getFromInterAddress, addr).last("limit 1 "));
}
public BasicCollectBustypeEntity findByName(String name) {
return basicCollectBustypeMapper.selectOne(new LambdaQueryWrapper<BasicCollectBustypeEntity>().eq(BasicCollectBustypeEntity::getName, name).last("limit 1 "));
}
public String genCode() {
String code = this.getCode();
return code;
return code;
}
private String getCode(){
private String getCode() {
long workerId = IdUtil.getSnowflakeNextId();
String s = String.valueOf(workerId);
Random random = new Random();
@ -53,7 +62,7 @@ public class BasicCollectBustypeService extends ServiceImpl<BasicCollectBustypeM
int randomStart = random.nextInt(startRange + 1);
String randomNumber = "SP" + s.substring(randomStart, randomStart + 6);
BasicCollectBustypeEntity basicCollectBustypeEntity = basicCollectBustypeMapper.selectOne(new LambdaQueryWrapper<BasicCollectBustypeEntity>().eq(BasicCollectBustypeEntity::getCode, randomNumber));
if (basicCollectBustypeEntity != null){
if (basicCollectBustypeEntity != null) {
String code1 = this.getCode();
return code1;
}
@ -61,5 +70,4 @@ public class BasicCollectBustypeService extends ServiceImpl<BasicCollectBustypeM
}
}

@ -1,16 +1,26 @@
package com.glxp.api.service.collect;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageHelper;
import com.glxp.api.dao.collect.IoCollectOrderMapper;
import com.glxp.api.entity.basic.BasicCollectBustypeEntity;
import com.glxp.api.entity.collect.IoCollectOrder;
import com.glxp.api.entity.collect.IoCollectOrderBiz;
import com.glxp.api.entity.inout.IoOrderDetailBizEntity;
import com.glxp.api.entity.inout.IoOrderEntity;
import com.glxp.api.req.collect.CollectOrderRequest;
import com.glxp.api.res.collect.IoCollectOrderResponse;
import com.glxp.api.service.basic.BasicCollectBustypeService;
import com.glxp.api.service.inout.IoOrderDetailBizService;
import com.glxp.api.service.inout.IoOrderService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.List;
@Service
@ -36,4 +46,67 @@ public class IoCollectOrderService extends ServiceImpl<IoCollectOrderMapper, IoC
}
@Resource
IoOrderService orderService;
@Resource
IoOrderDetailBizService orderDetailBizService;
@Resource
BasicCollectBustypeService collectBustypeService;
@Resource
IoCollectOrderBizService collectOrderBizService;
/**
*
*/
public void importOrder() {
List<IoOrderEntity> list = orderService.selectAll();
List<IoCollectOrder> collectOrderList = new ArrayList<>();
for (IoOrderEntity ioOrderEntity : list) {
BasicCollectBustypeEntity collectBustypeEntity = collectBustypeService.findByAddr(ioOrderEntity.getAction());
if (collectBustypeEntity == null)
continue;
if (collectOrderMapper.exists(new LambdaQueryWrapper<IoCollectOrder>().eq(IoCollectOrder::getBillNo, ioOrderEntity.getBillNo()))) {
continue;
}
IoCollectOrder collectOrder = IoCollectOrder.builder()
.billNo(ioOrderEntity.getBillNo())
.busType(collectBustypeEntity.getCode())
.fromType("内部单据")
.fromCorp(ioOrderEntity.getFromCorp())
.billTime(ioOrderEntity.getCreateTime())
.createTime(ioOrderEntity.getCreateTime())
.createUser(ioOrderEntity.getCreateUser())
.fromCorp(ioOrderEntity.getFromCorp())
.updateTime(new Date())
.splitStatus(0)
.tagStatus(0)
.build();
collectOrderList.add(collectOrder);
List<IoOrderDetailBizEntity> orderDetailBizEntities = orderDetailBizService.findByOrderId(ioOrderEntity.getBillNo());
List<IoCollectOrderBiz> collectOrderBizs = new ArrayList<>();
for (IoOrderDetailBizEntity bizEntity : orderDetailBizEntities) {
IoCollectOrderBiz collectOrderBiz = IoCollectOrderBiz.builder().orderIdFk(collectOrder.getBillNo())
.relId(bizEntity.getBindRlFk())
.cpmctymc(bizEntity.getCoName())
.nameCode(bizEntity.getNameCode())
.ggxh(bizEntity.getSpec())
.batchNo(bizEntity.getBatchNo())
.productDate(bizEntity.getProductDate())
.expireDate(bizEntity.getExpireDate())
.count(bizEntity.getCount())
.measureUnit(bizEntity.getMeasname())
.tagStatus(1)
.unTagCount(bizEntity.getCount()).build();
collectOrderBizs.add(collectOrderBiz);
}
if (CollUtil.isNotEmpty(collectOrderBizs))
collectOrderBizService.saveBatch(collectOrderBizs);
}
if (CollUtil.isNotEmpty(collectOrderList))
saveBatch(collectOrderList);
}
}

@ -185,6 +185,8 @@ public class IoOrderServiceImpl implements IoOrderService {
}
orderEntity.setExportStatus(0); //上传状态:未上传
orderEntity.setInCodeStatus(0);
if (orderEntity.getProductType() == null)
orderEntity.setProductType(1);
return orderDao.insert(orderEntity);
}
@ -819,8 +821,8 @@ public class IoOrderServiceImpl implements IoOrderService {
@Override
public List<IoOrderEntity> filterOrderTrace(String billNo,Integer productType) {
IoOrderEntity order = orderDao.selectOne(new QueryWrapper<IoOrderEntity>().eq("billNo", billNo).eq("productType",productType).in("status", 5, 7, 10).in("dealStatus", 2, 3, 4));
public List<IoOrderEntity> filterOrderTrace(String billNo, Integer productType) {
IoOrderEntity order = orderDao.selectOne(new QueryWrapper<IoOrderEntity>().eq("billNo", billNo).eq("productType", productType).in("status", 5, 7, 10).in("dealStatus", 2, 3, 4));
if (null == order) {
return Collections.emptyList();

@ -179,6 +179,7 @@ public class FilterUdiUtils {
udiEntity.setProduceDate(null);
udiEntity.setUdi(prefix);
udiEntity.setSerialNo(serialNo);
udiEntity.setProductType(2);
return udiEntity;
}

Loading…
Cancel
Save