|
|
@ -5,29 +5,52 @@ import cn.hutool.core.util.IdUtil;
|
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
|
import com.github.pagehelper.PageHelper;
|
|
|
|
import com.github.pagehelper.PageHelper;
|
|
|
|
|
|
|
|
import com.glxp.api.common.util.ResultVOUtils;
|
|
|
|
|
|
|
|
import com.glxp.api.constant.Constant;
|
|
|
|
|
|
|
|
import com.glxp.api.constant.ConstantStatus;
|
|
|
|
import com.glxp.api.dao.inout.IoOrderDetailBizDao;
|
|
|
|
import com.glxp.api.dao.inout.IoOrderDetailBizDao;
|
|
|
|
|
|
|
|
import com.glxp.api.entity.auth.AuthAdmin;
|
|
|
|
|
|
|
|
import com.glxp.api.entity.auth.InvWarehouseEntity;
|
|
|
|
import com.glxp.api.entity.basic.BasicBussinessTypeEntity;
|
|
|
|
import com.glxp.api.entity.basic.BasicBussinessTypeEntity;
|
|
|
|
|
|
|
|
import com.glxp.api.entity.basic.BasicSkPrescribeItemEntity;
|
|
|
|
|
|
|
|
import com.glxp.api.entity.basic.BasicSkProjectDetailEntity;
|
|
|
|
import com.glxp.api.entity.inout.IoOrderDetailBizEntity;
|
|
|
|
import com.glxp.api.entity.inout.IoOrderDetailBizEntity;
|
|
|
|
import com.glxp.api.entity.inout.IoOrderDetailCodeEntity;
|
|
|
|
import com.glxp.api.entity.inout.IoOrderDetailCodeEntity;
|
|
|
|
import com.glxp.api.entity.inout.IoOrderDetailResultEntity;
|
|
|
|
import com.glxp.api.entity.inout.IoOrderDetailResultEntity;
|
|
|
|
import com.glxp.api.entity.inout.IoOrderEntity;
|
|
|
|
import com.glxp.api.entity.inout.IoOrderEntity;
|
|
|
|
|
|
|
|
import com.glxp.api.entity.system.SystemParamConfigEntity;
|
|
|
|
|
|
|
|
import com.glxp.api.exception.JsonException;
|
|
|
|
|
|
|
|
import com.glxp.api.req.inout.AddBizProductReqeust;
|
|
|
|
|
|
|
|
import com.glxp.api.req.inout.AddWarlockBagProductReqeust;
|
|
|
|
import com.glxp.api.req.inout.FilterOrderDetailBizRequest;
|
|
|
|
import com.glxp.api.req.inout.FilterOrderDetailBizRequest;
|
|
|
|
import com.glxp.api.req.inout.FilterOrderDetailCodeRequest;
|
|
|
|
import com.glxp.api.req.inout.FilterOrderDetailCodeRequest;
|
|
|
|
|
|
|
|
import com.glxp.api.res.basic.UdiRelevanceResponse;
|
|
|
|
import com.glxp.api.res.inout.IoOrderDetailBizResponse;
|
|
|
|
import com.glxp.api.res.inout.IoOrderDetailBizResponse;
|
|
|
|
import com.glxp.api.res.inout.IoOrderDetailCodeResponse;
|
|
|
|
import com.glxp.api.res.inout.IoOrderDetailCodeResponse;
|
|
|
|
import com.glxp.api.res.inout.IoOrderDetailResultResponse;
|
|
|
|
import com.glxp.api.res.inout.IoOrderDetailResultResponse;
|
|
|
|
import com.glxp.api.res.inout.IoOrderInvoiceResponse;
|
|
|
|
import com.glxp.api.res.inout.IoOrderInvoiceResponse;
|
|
|
|
|
|
|
|
import com.glxp.api.service.auth.CustomerService;
|
|
|
|
|
|
|
|
import com.glxp.api.service.auth.InvWarehouseService;
|
|
|
|
|
|
|
|
import com.glxp.api.service.basic.BasicSkPrescirbeDetailService;
|
|
|
|
|
|
|
|
import com.glxp.api.service.basic.BasicSkProjectService;
|
|
|
|
import com.glxp.api.service.basic.IBasicBussinessTypeService;
|
|
|
|
import com.glxp.api.service.basic.IBasicBussinessTypeService;
|
|
|
|
|
|
|
|
import com.glxp.api.service.basic.UdiRelevanceService;
|
|
|
|
import com.glxp.api.service.inout.IoCheckInoutService;
|
|
|
|
import com.glxp.api.service.inout.IoCheckInoutService;
|
|
|
|
import com.glxp.api.service.inout.IoOrderDetailBizService;
|
|
|
|
import com.glxp.api.service.inout.IoOrderDetailBizService;
|
|
|
|
import com.glxp.api.service.inout.IoOrderDetailCodeService;
|
|
|
|
import com.glxp.api.service.inout.IoOrderDetailCodeService;
|
|
|
|
import com.glxp.api.service.inout.IoOrderService;
|
|
|
|
import com.glxp.api.service.inout.IoOrderService;
|
|
|
|
|
|
|
|
import com.glxp.api.service.system.SystemParamConfigService;
|
|
|
|
|
|
|
|
import com.glxp.api.util.GennerOrderUtils;
|
|
|
|
|
|
|
|
import com.glxp.api.util.IntUtil;
|
|
|
|
|
|
|
|
import com.glxp.api.util.OrderNoTypeBean;
|
|
|
|
import org.springframework.context.annotation.Lazy;
|
|
|
|
import org.springframework.context.annotation.Lazy;
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
|
import javax.annotation.Resource;
|
|
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
|
import java.util.Collections;
|
|
|
|
import java.util.Collections;
|
|
|
|
|
|
|
|
import java.util.Date;
|
|
|
|
import java.util.List;
|
|
|
|
import java.util.List;
|
|
|
|
|
|
|
|
|
|
|
|
@Service
|
|
|
|
@Service
|
|
|
@ -37,6 +60,23 @@ public class IoOrderDetailBizServiceImpl implements IoOrderDetailBizService {
|
|
|
|
@Resource
|
|
|
|
@Resource
|
|
|
|
@Lazy
|
|
|
|
@Lazy
|
|
|
|
IoOrderDetailBizDao ioOrderDetailBizDao;
|
|
|
|
IoOrderDetailBizDao ioOrderDetailBizDao;
|
|
|
|
|
|
|
|
@Resource
|
|
|
|
|
|
|
|
SystemParamConfigService systemParamConfigService;
|
|
|
|
|
|
|
|
@Resource
|
|
|
|
|
|
|
|
CustomerService customerService;
|
|
|
|
|
|
|
|
@Resource
|
|
|
|
|
|
|
|
private IBasicBussinessTypeService basicBussinessTypeService;
|
|
|
|
|
|
|
|
@Resource
|
|
|
|
|
|
|
|
InvWarehouseService invWarehouseService;
|
|
|
|
|
|
|
|
@Resource
|
|
|
|
|
|
|
|
GennerOrderUtils gennerOrderUtils;
|
|
|
|
|
|
|
|
@Resource
|
|
|
|
|
|
|
|
BasicSkProjectService basicSkProjectService;
|
|
|
|
|
|
|
|
@Resource
|
|
|
|
|
|
|
|
private UdiRelevanceService udiRelevanceService;
|
|
|
|
|
|
|
|
@Resource
|
|
|
|
|
|
|
|
IoOrderDetailBizService orderDetailBizService;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public IoOrderDetailBizEntity selectById(Long id) {
|
|
|
|
public IoOrderDetailBizEntity selectById(Long id) {
|
|
|
@ -154,6 +194,124 @@ public class IoOrderDetailBizServiceImpl implements IoOrderDetailBizService {
|
|
|
|
return ioOrderDetailBizDao.insertBatch(bizEntities);
|
|
|
|
return ioOrderDetailBizDao.insertBatch(bizEntities);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
|
|
|
public IoOrderEntity addWarlockBagProduct(AddWarlockBagProductReqeust addWarlockBagProductReqeust) {
|
|
|
|
|
|
|
|
SystemParamConfigEntity systemParamConfigEntity = systemParamConfigService.selectByParamKey("vail_product_cert");
|
|
|
|
|
|
|
|
// boolean isVailCert = systemParamConfigEntity.getParamValue().equals("1") ? true : false;
|
|
|
|
|
|
|
|
AuthAdmin authAdmin = customerService.getUserBean();
|
|
|
|
|
|
|
|
if (addWarlockBagProductReqeust.getId() == null )
|
|
|
|
|
|
|
|
throw new JsonException("未选择术士组套信息");
|
|
|
|
|
|
|
|
if (addWarlockBagProductReqeust.getOrderEntity() == null)
|
|
|
|
|
|
|
|
throw new JsonException(500, "未指定订单");
|
|
|
|
|
|
|
|
IoOrderEntity orderEntity = addWarlockBagProductReqeust.getOrderEntity();
|
|
|
|
|
|
|
|
IoOrderEntity isExit = orderService.findByBillNo(orderEntity.getBillNo());
|
|
|
|
|
|
|
|
if (StrUtil.isEmpty(orderEntity.getBillNo()) || isExit == null) {
|
|
|
|
|
|
|
|
BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(orderEntity.getAction());
|
|
|
|
|
|
|
|
InvWarehouseEntity invWarehouseEntity = invWarehouseService.findByInvSubByCode(orderEntity.getInvCode());
|
|
|
|
|
|
|
|
String orderNo = gennerOrderUtils.createScOrderNo(new OrderNoTypeBean(Constant.SCAN_ORDER + StrUtil.trimToEmpty(bussinessTypeEntity.getPrefix()), "yyyyMMdd"));
|
|
|
|
|
|
|
|
orderEntity.setBillNo(orderNo);
|
|
|
|
|
|
|
|
orderEntity.setCreateUser(authAdmin.getId() + "");
|
|
|
|
|
|
|
|
orderEntity.setCreateTime(new Date());
|
|
|
|
|
|
|
|
orderEntity.setMainAction(bussinessTypeEntity.getMainAction());
|
|
|
|
|
|
|
|
if (StrUtil.isNotEmpty(orderEntity.getFromInvCode())) {
|
|
|
|
|
|
|
|
InvWarehouseEntity fromEntity = invWarehouseService.findByInvSubByCode(orderEntity.getInvCode());
|
|
|
|
|
|
|
|
orderEntity.setFromDeptCode(fromEntity.getParentId());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
orderEntity.setFromType(ConstantStatus.FROM_WEBNEW);
|
|
|
|
|
|
|
|
orderEntity.setStatus(ConstantStatus.ORDER_STATUS_TEMP_SAVE);
|
|
|
|
|
|
|
|
orderEntity.setDealStatus(ConstantStatus.ORDER_DEAL_DRAFT);
|
|
|
|
|
|
|
|
orderEntity.setCreateUser(authAdmin.getId() + "");
|
|
|
|
|
|
|
|
orderEntity.setCreateTime(new Date());
|
|
|
|
|
|
|
|
orderEntity.setUpdateUser(authAdmin.getId() + "");
|
|
|
|
|
|
|
|
orderEntity.setUpdateTime(new Date());
|
|
|
|
|
|
|
|
orderEntity.setCustomerId(authAdmin.getCustomerId() + "");
|
|
|
|
|
|
|
|
orderEntity.setDeptCode(invWarehouseEntity.getParentId());
|
|
|
|
|
|
|
|
orderEntity.setInvCode(orderEntity.getInvCode());
|
|
|
|
|
|
|
|
orderEntity.setBusType(bussinessTypeEntity.getBusType());
|
|
|
|
|
|
|
|
orderService.insertOrder(orderEntity);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
String pId = addWarlockBagProductReqeust.getId();
|
|
|
|
|
|
|
|
List<BasicSkProjectDetailEntity> list = basicSkProjectService.selectListByPId(pId);
|
|
|
|
|
|
|
|
if (CollUtil.isEmpty(list)) throw new JsonException("术士套包数据为空!");
|
|
|
|
|
|
|
|
List<AddBizProductReqeust> datas = new ArrayList<>();
|
|
|
|
|
|
|
|
list.forEach( x -> {
|
|
|
|
|
|
|
|
AddBizProductReqeust addBizProductReqeust = new AddBizProductReqeust();
|
|
|
|
|
|
|
|
addBizProductReqeust.setOrderEntity(orderEntity);
|
|
|
|
|
|
|
|
addBizProductReqeust.setSupId(String.valueOf(x.getSupId()));
|
|
|
|
|
|
|
|
addBizProductReqeust.setRelId(x.getRelId());
|
|
|
|
|
|
|
|
// TODO: 2024/4/15 单据数量 需要添加进去 页面效果需要优化 其他页面需要使用到 术士组套 该功能
|
|
|
|
|
|
|
|
datas.add(addBizProductReqeust);
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for (AddBizProductReqeust item : datas) {
|
|
|
|
|
|
|
|
UdiRelevanceResponse udiRelevanceResponse = udiRelevanceService.selectSupGroupById(item.getRelId(), item.getSupId());
|
|
|
|
|
|
|
|
BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(orderEntity.getAction());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//是否校验产品采购类型 :1:校验;2.无需校验
|
|
|
|
|
|
|
|
if(IntUtil.value(bussinessTypeEntity.getVailProductAttributes()) == 1){
|
|
|
|
|
|
|
|
Integer purType = IntUtil.value(udiRelevanceResponse.getPurType()); //1:普通入账产品;2.预验收产品。3:寄售产品
|
|
|
|
|
|
|
|
int actionType = IntUtil.value(bussinessTypeEntity.getActionType()); //1:带票(正常);2.预验收。3:寄售
|
|
|
|
|
|
|
|
if (purType != actionType){
|
|
|
|
|
|
|
|
//包装友好提示
|
|
|
|
|
|
|
|
String msg = "";
|
|
|
|
|
|
|
|
switch (actionType) {
|
|
|
|
|
|
|
|
case 1:
|
|
|
|
|
|
|
|
msg = "普通入账产品";
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 2:
|
|
|
|
|
|
|
|
msg = "预验收产品";
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 3:
|
|
|
|
|
|
|
|
msg = "寄售产品";
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
String msg2 = "";
|
|
|
|
|
|
|
|
switch (purType) {
|
|
|
|
|
|
|
|
case 1:
|
|
|
|
|
|
|
|
msg2 = "普通入账产品";
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 2:
|
|
|
|
|
|
|
|
msg2 = "预验收产品";
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 3:
|
|
|
|
|
|
|
|
msg2 = "寄售产品";
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
throw new JsonException( "单据只允许录入" + msg +",当前录入产品为"+msg2+",请检查后重试!");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
IoOrderDetailBizEntity ioOrderDetailBizEntity = new IoOrderDetailBizEntity();
|
|
|
|
|
|
|
|
ioOrderDetailBizEntity.setOrderIdFk(orderEntity.getBillNo());
|
|
|
|
|
|
|
|
ioOrderDetailBizEntity.setBindRlFk(udiRelevanceResponse.getId());
|
|
|
|
|
|
|
|
ioOrderDetailBizEntity.setUuidFk(udiRelevanceResponse.getUuid());
|
|
|
|
|
|
|
|
ioOrderDetailBizEntity.setNameCode(udiRelevanceResponse.getNameCode());
|
|
|
|
|
|
|
|
ioOrderDetailBizEntity.setCoName(udiRelevanceResponse.getCpmctymc());
|
|
|
|
|
|
|
|
ioOrderDetailBizEntity.setYlqxzcrbarmc(udiRelevanceResponse.getYlqxzcrbarmc());
|
|
|
|
|
|
|
|
ioOrderDetailBizEntity.setManufacturer(udiRelevanceResponse.getManufactory());
|
|
|
|
|
|
|
|
ioOrderDetailBizEntity.setMeasname(udiRelevanceResponse.getMeasname());
|
|
|
|
|
|
|
|
ioOrderDetailBizEntity.setSpec(udiRelevanceResponse.getGgxh());
|
|
|
|
|
|
|
|
ioOrderDetailBizEntity.setPrice(udiRelevanceResponse.getPrice());
|
|
|
|
|
|
|
|
ioOrderDetailBizEntity.setProductDate(item.getProductDate());
|
|
|
|
|
|
|
|
ioOrderDetailBizEntity.setExpireDate(item.getExpireDate());
|
|
|
|
|
|
|
|
ioOrderDetailBizEntity.setBatchNo(item.getBatchNo());
|
|
|
|
|
|
|
|
ioOrderDetailBizEntity.setSupId(item.getSupId());
|
|
|
|
|
|
|
|
// if (null == addBizProductReqeust.getZczbhhzbapzbh() || "".equals(addBizProductReqeust.getZczbhhzbapzbh())) {
|
|
|
|
|
|
|
|
// ioOrderDetailBizEntity.setCertCode(udiRelevanceResponse.getZczbhhzbapzbh());
|
|
|
|
|
|
|
|
// } else {
|
|
|
|
|
|
|
|
// ioOrderDetailBizEntity.setCertCode(addBizProductReqeust.getZczbhhzbapzbh());
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
orderDetailBizService.insert(ioOrderDetailBizEntity);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
orderEntity.setUpdateTime(new Date());
|
|
|
|
|
|
|
|
orderEntity.setUpdateUser(authAdmin.getId() + "");
|
|
|
|
|
|
|
|
orderService.update(orderEntity);
|
|
|
|
|
|
|
|
return orderEntity;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public IoOrderDetailBizEntity selectByBatchNoAndBindRlFk(String batchNo, String bindRlFk) {
|
|
|
|
public IoOrderDetailBizEntity selectByBatchNoAndBindRlFk(String batchNo, String bindRlFk) {
|
|
|
|
QueryWrapper<IoOrderDetailBizEntity> ew = new QueryWrapper<>();
|
|
|
|
QueryWrapper<IoOrderDetailBizEntity> ew = new QueryWrapper<>();
|
|
|
|