价格相关修改,新增库存定量设置

test
anthonywj 2 years ago
parent d9d4ca1771
commit 1c202156b4

@ -2,6 +2,7 @@ package com.glxp.api.controller.basic;
import com.glxp.api.dao.basic.UdiRelevanceDao;
import com.glxp.api.service.inout.impl.IoCodeService;
import com.glxp.api.service.inv.impl.InvProductService;
import org.springframework.beans.BeanUtils;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
@ -29,7 +30,6 @@ import com.glxp.api.res.basic.UdiRelevanceResponse;
import com.glxp.api.service.auth.CustomerService;
import com.glxp.api.service.basic.*;
import com.glxp.api.service.inv.InvPreProductService;
import com.glxp.api.service.inv.InvProductService;
import com.glxp.api.service.system.SystemParamConfigService;
import com.glxp.api.service.thrsys.ThrDataService;
import com.glxp.api.service.thrsys.ThrSystemService;

@ -27,7 +27,7 @@ import com.glxp.api.res.basic.UdiRelevanceResponse;
import com.glxp.api.res.basic.UdiRlSupResponse;
import com.glxp.api.service.auth.AuthAdminService;
import com.glxp.api.service.basic.*;
import com.glxp.api.service.purchase.PurApplyDetailService;
import com.glxp.api.service.purchase.impl.PurApplyDetailService;
import com.glxp.api.service.system.CompanyService;
import com.glxp.api.util.BeanCopyUtils;
import com.glxp.api.util.SupplementVailUtil;
@ -177,6 +177,57 @@ public class UdiRlSupController extends BaseController {
return ResultVOUtils.success(pageSimpleResponse);
}
@AuthRuleAnnotation("")
@GetMapping("/company/product/plan/rationSet/filter")
public BaseResponse rationSetAdd(CompanyProductRelevanceRequest companyProductRelevanceRequest,
BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
if (StrUtil.isNotEmpty(companyProductRelevanceRequest.getCustomerId())) {
String customerId = getCustomerId();
if (customerId.equals("110")) {
companyProductRelevanceRequest.setCustomerId(null);
}
}
companyProductRelevanceRequest.setIsDisable(false);
if (StrUtil.isNotEmpty(companyProductRelevanceRequest.getUdiCode())) {
UdiEntity udiEntity = FilterUdiUtils.getUdi(companyProductRelevanceRequest.getUdiCode());
if (udiEntity != null) {
companyProductRelevanceRequest.setNameCode(udiEntity.getUdi());
companyProductRelevanceRequest.setUnionCode(udiEntity.getUdi());
}
}
//如果输入DI标识精确找到不同层级对应的产品信息
if (StrUtil.isNotEmpty(companyProductRelevanceRequest.getUnionCode())) {
FilterUdiRelRequest filterUdiInfoRequest = new FilterUdiRelRequest();
filterUdiInfoRequest.setNameCode(companyProductRelevanceRequest.getUnionCode());
List<UdiRelevanceResponse> temps = udiRelevanceService.filterUdiGp(filterUdiInfoRequest);
if (temps != null && temps.size() > 0) {
companyProductRelevanceRequest.setOriginUuid(temps.get(0).getOriginUuid());
companyProductRelevanceRequest.setNameCode(filterUdiInfoRequest.getNameCode());
companyProductRelevanceRequest.setUnionCode(null);
}
} else {
//只查找主标识产品信息
companyProductRelevanceRequest.setDiType(1);
}
List<UdiRelevanceResponse> udiRelevanceResponses = null;
FilterUdiRelRequest filterUdiRelRequest = new FilterUdiRelRequest();
BeanCopyUtils.copy(companyProductRelevanceRequest, filterUdiRelRequest);
udiRelevanceResponses = udiRelevanceService.filterUdiJoinSup(filterUdiRelRequest);
PageInfo<UdiRelevanceResponse> pageInfo;
pageInfo = new PageInfo<>(udiRelevanceResponses);
PageSimpleResponse<UdiRelevanceResponse> pageSimpleResponse = new PageSimpleResponse<>();
pageSimpleResponse.setTotal(pageInfo.getTotal());
pageSimpleResponse.setList(udiRelevanceResponses);
return ResultVOUtils.success(pageSimpleResponse);
}
@AuthRuleAnnotation("")
@GetMapping("/sale/info/company/product/corp/filter")
public BaseResponse filterRlCorp(FilterCompanyProductRelevanceRequest filterCompanyProductRelevanceRequest,
@ -319,7 +370,7 @@ public class UdiRlSupController extends BaseController {
basicDataRequest.setDeleteCompanyFileRequest(deleteCompanyFileRequest);
basicDataRequest.setKey(SyncDelType.BASIC_MANAGE);
Long userId = getUserId();
spGetHttpClient.deleteBasicData(basicDataRequest,userId+"");
spGetHttpClient.deleteBasicData(basicDataRequest, userId + "");
return ResultVOUtils.success("成功");
}

@ -762,7 +762,7 @@ public class IoCodeTempController extends BaseController {
return invRes;
}
}
codeEnttity.setPrice(udiRelevanceResponse.getPrice());
//是否边扫边校验
if (bussinessTypeEntity.getCheckWebNew() == 1 && bussinessTypeEntity.isCheckEnable()) {
String errMsg = ioCheckInoutService.checkCode(codeEnttity);
@ -777,7 +777,7 @@ public class IoCodeTempController extends BaseController {
} else
codeTempService.insert(codeEnttity);
} else {
checkPrice(codeEnttity, bussinessTypeEntity, inBatch);
checkPrice(codeEnttity, bussinessTypeEntity, inBatch, codeEnttitys);
codeTempService.insert(codeEnttity);
}
}
@ -788,7 +788,7 @@ public class IoCodeTempController extends BaseController {
return ResultVOUtils.success(addCodeResult);
}
public void checkPrice(IoCodeTempEntity codeTempEntity, BasicBussinessTypeEntity bussinessTypeEntity, String inBatch) {
public void checkPrice(IoCodeTempEntity codeTempEntity, BasicBussinessTypeEntity bussinessTypeEntity, String inBatch, List<IoCodeTempEntity> codeTempEntities) {
// 校验价格
String priceFifo = systemParamConfigService.selectValueByParamKey("price_fifo");
if (IntUtil.value(priceFifo) > 0) {
@ -796,10 +796,44 @@ public class IoCodeTempController extends BaseController {
if (bussinessTypeEntity.getMainAction().equals(ConstantType.TYPE_PUT)) {
codeTempEntity.setInBatchNo(inBatch);
} else {
List<IoCodeTempEntity> filteredAndSorted = codeTempEntities.stream()
.filter(person -> IntUtil.value(person.getRelId()) == IntUtil.value(codeTempEntity.getRelId())
&& StrUtil.trimToEmpty(person.getBatchNo()).equals(StrUtil.trimToEmpty(codeTempEntity.getBatchNo()))
)
.sorted(Comparator.comparing(IoCodeTempEntity::getInBatchNo))
.collect(Collectors.toList());
Map<String, List<IoCodeTempEntity>> stringListMap = null;
if (CollUtil.isNotEmpty(filteredAndSorted)) {
stringListMap = filteredAndSorted.stream()
.collect(Collectors.groupingBy(person -> StrUtil.trimToEmpty(person.getInBatchNo()))
);
}
List<IoCodeTempEntity> lastList = null;
if (stringListMap != null) {
lastList = stringListMap.entrySet().stream().findFirst().get().getValue();
}
int exitCount = 0;
int extiReCount = 0;
if (CollUtil.isNotEmpty(lastList)) {
for (IoCodeTempEntity ioCodeTempEntity : lastList) {
exitCount = exitCount + ioCodeTempEntity.getCount();
extiReCount = extiReCount + ioCodeTempEntity.getReCount();
}
}
//出库时填写价格与入库批次
//1.获取出库最新批次
InvProductDetailEntity invProductDetailEntity = invProductDetailService.selectLastInBatch(bussinessTypeEntity, codeTempEntity.getRelId() + "", codeTempEntity.getBatchNo(), codeTempEntity.getInvCode(), codeTempEntity.getMainAction());
if (invProductDetailEntity == null) {
String lastInBatch = null;
if (exitCount > 0) {
lastInBatch = lastList.get(0).getInBatchNo();
} else {
InvProductDetailEntity invProductDetailEntity = invProductDetailService.selectLastInBatch(bussinessTypeEntity, codeTempEntity.getRelId() + "", codeTempEntity.getBatchNo(), codeTempEntity.getInvCode(), codeTempEntity.getMainAction());
if (invProductDetailEntity != null)
lastInBatch = invProductDetailEntity.getInBatchNo();
}
if (lastInBatch == null && exitCount == 0) {
//首次出库,获取入库最早批次
InvProductDetailEntity inProductDetail = invProductDetailService.selectFirstInBatch(bussinessTypeEntity, codeTempEntity.getRelId() + "", codeTempEntity.getBatchNo(), codeTempEntity.getInvCode(), ConstantType.TYPE_PUT);
if (inProductDetail != null) {
@ -809,16 +843,16 @@ public class IoCodeTempController extends BaseController {
} else {
//非首次出库
//1.获取当前批次已出库数量
Integer outCount = invProductDetailService.selectCountByInBatch(bussinessTypeEntity, invProductDetailEntity.getInBatchNo(), ConstantType.TYPE_OUT);
Integer outCount = IntUtil.value(invProductDetailService.selectCountByInBatch(bussinessTypeEntity, lastInBatch, ConstantType.TYPE_OUT));
//2.获取当前批次入库数量
Integer inCount = invProductDetailService.selectCountByInBatch(bussinessTypeEntity, invProductDetailEntity.getInBatchNo(), ConstantType.TYPE_PUT);
Integer inCount = IntUtil.value(invProductDetailService.selectCountByInBatch(bussinessTypeEntity, lastInBatch, ConstantType.TYPE_PUT));
//3.若数量还有剩,则此次出库为当前批次
if (inCount > outCount) {
codeTempEntity.setPrice(invProductDetailEntity.getPrice());
codeTempEntity.setInBatchNo(invProductDetailEntity.getInBatchNo());
if (inCount >= (outCount + extiReCount + codeTempEntity.getReCount())) {
codeTempEntity.setPrice(lastList.get(0).getPrice());
codeTempEntity.setInBatchNo(lastList.get(0).getInBatchNo());
} else {
// 4.若数量不足,则出下一批次
InvProductDetailEntity nextInvProduct = invProductDetailService.selectNextInBatch(bussinessTypeEntity, codeTempEntity.getRelId() + "", codeTempEntity.getBatchNo(), codeTempEntity.getInvCode(), codeTempEntity.getMainAction(), invProductDetailEntity.getInBatchNo());
InvProductDetailEntity nextInvProduct = invProductDetailService.selectNextInBatch(bussinessTypeEntity, codeTempEntity.getRelId() + "", codeTempEntity.getBatchNo(), codeTempEntity.getInvCode(), ConstantType.TYPE_PUT, lastList.get(0).getInBatchNo());
if (nextInvProduct != null) {
codeTempEntity.setPrice(nextInvProduct.getPrice());
codeTempEntity.setInBatchNo(nextInvProduct.getInBatchNo());

@ -42,10 +42,12 @@ import com.glxp.api.service.auth.InvWarehouseService;
import com.glxp.api.service.basic.*;
import com.glxp.api.service.inout.*;
import com.glxp.api.service.inout.impl.IoOrderInvoiceService;
import com.glxp.api.service.purchase.PurOrderDetailService;
import com.glxp.api.service.inout.impl.ReceiveDetailService;
import com.glxp.api.service.inout.impl.ReceiveService;
import com.glxp.api.service.purchase.PurOrderService;
import com.glxp.api.service.purchase.SupCertService;
import com.glxp.api.service.purchase.SupProductService;
import com.glxp.api.service.purchase.impl.PurOrderDetailService;
import com.glxp.api.service.system.SystemParamConfigService;
import com.glxp.api.service.thrsys.ThrOrderDetailService;
import com.glxp.api.service.thrsys.ThrOrderService;
@ -91,7 +93,7 @@ public class IoOrderDetailBizController extends BaseController {
@Resource
ReceiveService receiveService;
@Resource
ReceivedetailService receivedetailService;
ReceiveDetailService receivedetailService;
@Resource
IBasicBusTypeChangeService basicBusTypeChangeService;
@Resource
@ -233,7 +235,6 @@ public class IoOrderDetailBizController extends BaseController {
}
//选入第三方单据至业务单据
@AuthRuleAnnotation("")
@PostMapping("/udiwms/inout/order/addThrOrder")

@ -142,8 +142,6 @@ public class InnerOrderController {
innerOrderDetailService.deleteByOrderId(id + "");
}
}
return ResultVOUtils.success("删除成功");
}

@ -1,6 +1,7 @@
package com.glxp.api.controller.inv;
import com.glxp.api.service.inv.impl.InvProductDetailService;
import com.glxp.api.service.inv.impl.InvProductService;
import org.springframework.beans.BeanUtils;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
@ -29,7 +30,6 @@ import com.glxp.api.service.auth.CustomerService;
import com.glxp.api.service.auth.InvWarehouseService;
import com.glxp.api.service.auth.WarehouseUserService;
import com.glxp.api.service.basic.IBasicBussinessTypeService;
import com.glxp.api.service.inv.InvProductService;
import com.glxp.api.util.udi.FilterUdiUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.BindingResult;

@ -0,0 +1,148 @@
package com.glxp.api.controller.inv;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.github.pagehelper.PageInfo;
import com.glxp.api.annotation.Log;
import com.glxp.api.annotation.RepeatSubmit;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.constant.BusinessType;
import com.glxp.api.controller.BaseController;
import com.glxp.api.entity.inv.InvProductRationEntity;
import com.glxp.api.req.inv.InvAddRationRequest;
import com.glxp.api.req.inv.InvProductRationRequest;
import com.glxp.api.req.system.DeleteRequest;
import com.glxp.api.res.inv.InvProductRationResponse;
import com.glxp.api.service.inv.InvProductRationService;
import com.glxp.api.service.inv.impl.InvProductService;
import com.glxp.api.util.IntUtil;
import lombok.extern.slf4j.Slf4j;
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 javax.annotation.Resource;
import javax.validation.constraints.NotEmpty;
import java.util.Date;
import java.util.List;
@Slf4j
@RestController
public class InvProductRationController extends BaseController {
@Resource
private InvProductRationService invProductRationService;
@Resource
InvProductService invProductService;
/**
*
*
* @param invProductRationRequest
* @return
*/
@GetMapping("/udiwms/inv/project/ration/filter")
@Log(title = "定量管理设置", businessType = BusinessType.INSERT)
public BaseResponse filterList(InvProductRationRequest invProductRationRequest) {
List<InvProductRationResponse> list = invProductRationService.filterList(invProductRationRequest);
list.stream().forEach(item ->
item.setInvCount(IntUtil.value(invProductService.selectExitCount(item.getCurInvCode(), item.getSupId(), item.getRelId())))
);
PageInfo<InvProductRationResponse> pageInfo = new PageInfo<>(list);
return ResultVOUtils.page(pageInfo);
}
/**
*
*/
@RepeatSubmit()
@PostMapping("udiwms/inv/project/ration/add")
@Log(title = "定量管理设置", businessType = BusinessType.INSERT)
public BaseResponse add(@RequestBody InvAddRationRequest invAddRationRequest) {
String user = getUserId() + "";
if (invAddRationRequest.getInvProductRationEntity() != null) {
InvProductRationEntity invProductRationEntity = invAddRationRequest.getInvProductRationEntity();
invProductRationEntity.setCreateUser(user);
invProductRationEntity.setCreateTime(new Date());
invProductRationEntity.setUpdateUser(user);
invProductRationEntity.setUpdateTime(new Date());
invProductRationService.save(invProductRationEntity);
}
List<InvProductRationEntity> rationEntities = invAddRationRequest.getRationEntities();
if (CollUtil.isNotEmpty(rationEntities)) {
for (InvProductRationEntity rationEntity : rationEntities) {
rationEntity.setCreateUser(user);
rationEntity.setCreateTime(new Date());
rationEntity.setUpdateUser(user);
rationEntity.setUpdateTime(new Date());
}
}
invProductRationService.saveBatch(rationEntities);
return ResultVOUtils.success("新增成功!");
}
/**
*
*/
@RepeatSubmit()
@PostMapping("udiwms/inv/project/ration/edit")
@Log(title = "定量管理设置", businessType = BusinessType.UPDATE)
public BaseResponse edit(@RequestBody InvProductRationEntity invProductRationEntity) {
if (StrUtil.isNotEmpty(invProductRationEntity.getBusType())) {
switch (invProductRationEntity.getBusType()) {
case "HCLY":
invProductRationEntity.setLyInvCode(invProductRationEntity.getBusInvCode());
break;
case "CPSG":
invProductRationEntity.setSgInvCode(invProductRationEntity.getBusInvCode());
break;
case "CGJH":
invProductRationEntity.setJhInvCode(invProductRationEntity.getBusInvCode());
break;
case "CGDD":
invProductRationEntity.setCgInvCode(invProductRationEntity.getBusInvCode());
break;
default:
break;
}
}
invProductRationService.updateById(invProductRationEntity);
return ResultVOUtils.success("修改成功");
}
/**
*
*/
@PostMapping("udiwms/inv/project/ration/remove")
@Log(title = "定量管理设置", businessType = BusinessType.DELETE)
public BaseResponse remove(@NotEmpty(message = "主键不能为空")
@RequestBody DeleteRequest deleteRequest) {
invProductRationService.removeById(deleteRequest.getId());
return ResultVOUtils.success("删除成功");
}
/**
*
*/
@RepeatSubmit()
@PostMapping("udiwms/inv/project/ration/genOrder")
@Log(title = "定量管理设置", businessType = BusinessType.UPDATE)
public BaseResponse genOrder(@RequestBody InvAddRationRequest invAddRationRequest) {
if (CollUtil.isNotEmpty(invAddRationRequest.getRationEntities())) {
invProductRationService.genOrder(invAddRationRequest.getRationEntities());
}
return ResultVOUtils.success("修改成功");
}
}

@ -14,13 +14,16 @@ import com.glxp.api.entity.inout.IoOrderEntity;
import com.glxp.api.entity.inout.PurReceiveDetailEntity;
import com.glxp.api.entity.inout.PurReceiveEntity;
import com.glxp.api.entity.purchase.*;
import com.glxp.api.service.basic.CompanyProductRelevanceService;
import com.glxp.api.service.basic.IBasicBusTypeChangeService;
import com.glxp.api.service.inout.IoOrderDetailBizService;
import com.glxp.api.service.inout.IoOrderService;
import com.glxp.api.service.inout.ReceiveService;
import com.glxp.api.service.inout.ReceivedetailService;
import com.glxp.api.service.inout.impl.ReceiveDetailService;
import com.glxp.api.service.inout.impl.ReceiveService;
import com.glxp.api.service.purchase.*;
import com.glxp.api.service.purchase.impl.PurApplyDetailService;
import com.glxp.api.service.purchase.impl.PurApplyService;
import com.glxp.api.service.purchase.impl.PurOrderDetailService;
import com.glxp.api.service.purchase.impl.PurPlanDetailService;
import com.glxp.api.util.CustomUtil;
import com.glxp.api.util.MsDateUtil;
import com.glxp.api.util.GennerOrderUtils;
@ -28,7 +31,6 @@ import com.glxp.api.util.OrderNoTypeBean;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.awt.geom.QuadCurve2D;
import java.math.BigDecimal;
import java.text.ParseException;
import java.text.SimpleDateFormat;
@ -45,7 +47,7 @@ public class IoPurChangeService {
@Resource
ReceiveService receiveService;
@Resource
ReceivedetailService receivedetailService;
ReceiveDetailService receivedetailService;
@Resource
PurApplyService purApplyService;
@Resource

@ -1,5 +1,8 @@
package com.glxp.api.controller.purchase;
import com.glxp.api.service.purchase.impl.PurApplyDetailService;
import com.glxp.api.service.purchase.impl.PurOrderDetailService;
import com.glxp.api.service.purchase.impl.PurPlanDetailService;
import org.springframework.beans.BeanUtils;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;

@ -1,5 +1,7 @@
package com.glxp.api.controller.purchase;
import com.glxp.api.service.purchase.impl.PurOrderDetailService;
import com.glxp.api.service.purchase.impl.PurPlanDetailService;
import org.springframework.beans.BeanUtils;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.StrUtil;
@ -25,13 +27,10 @@ import com.glxp.api.res.purchase.PurOrderResponse;
import com.glxp.api.service.auth.CustomerService;
import com.glxp.api.service.inout.IoOrderDetailBizService;
import com.glxp.api.service.inout.IoOrderService;
import com.glxp.api.service.purchase.PurOrderDetailService;
import com.glxp.api.service.purchase.PurOrderService;
import com.glxp.api.service.purchase.PurPlanDetailService;
import com.glxp.api.util.GennerOrderUtils;
import com.glxp.api.util.OrderNoTypeBean;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;

@ -47,12 +47,16 @@ import com.glxp.api.service.basic.IBasicBusTypeChangeService;
import com.glxp.api.service.basic.UdiProductService;
import com.glxp.api.service.inout.IoOrderDetailBizService;
import com.glxp.api.service.inout.IoOrderService;
import com.glxp.api.service.inout.ReceiveService;
import com.glxp.api.service.inout.ReceivedetailService;
import com.glxp.api.service.inout.impl.ReceiveDetailService;
import com.glxp.api.service.inout.impl.ReceiveService;
import com.glxp.api.service.inv.InvPreProductService;
import com.glxp.api.service.inv.InvPreinProductService;
import com.glxp.api.service.inv.InvProductService;
import com.glxp.api.service.inv.impl.InvProductService;
import com.glxp.api.service.purchase.*;
import com.glxp.api.service.purchase.impl.PurApplyDetailService;
import com.glxp.api.service.purchase.impl.PurApplyService;
import com.glxp.api.service.purchase.impl.PurOrderDetailService;
import com.glxp.api.service.purchase.impl.PurPlanDetailService;
import com.glxp.api.util.CustomUtil;
import com.glxp.api.util.GennerOrderUtils;
import com.glxp.api.util.OrderNoTypeBean;
@ -75,7 +79,7 @@ public class PurOrderReceiveController extends BaseController {
@Resource
ReceiveService receiveService;
@Resource
ReceivedetailService receivedetailService;
ReceiveDetailService receivedetailService;
@Resource
CustomerService customerService;
@Resource

@ -1,5 +1,8 @@
package com.glxp.api.controller.purchase;
import com.glxp.api.service.purchase.impl.PurApplyDetailService;
import com.glxp.api.service.purchase.impl.PurOrderDetailService;
import com.glxp.api.service.purchase.impl.PurPlanDetailService;
import org.springframework.beans.BeanUtils;
import cn.hutool.core.util.StrUtil;
import com.github.pagehelper.PageInfo;
@ -463,8 +466,8 @@ public class PurPlanController {
@PostMapping("/purchase/plan/addPlanDetail")
public BaseResponse addPlanDetail(@RequestBody PurPlanDetailEntity purPlanDetailEntity) {
boolean falg = purPlanDetailService.insert(purPlanDetailEntity);
if (falg) {
int falg = purPlanDetailService.insert(purPlanDetailEntity);
if (falg > 0) {
return ResultVOUtils.success("添加成功");
} else {
return ResultVOUtils.success("添加失败");

@ -85,8 +85,11 @@ public interface InvProductDao extends BaseMapperPlus<InvProductDao, InvProductE
/**
*
*
* @param filterProductNames
* @return
*/
List<InvProductResponse> filterProductNames(FilterInvProductRequest filterInvProductRequest);
Integer selectExitCount(@Param("invCode") String invCode, @Param("supId") Long supId, @Param("relIdFk") Long relIdFk);
}

@ -0,0 +1,15 @@
package com.glxp.api.dao.inv;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.glxp.api.entity.inv.InvProductRationEntity;
import com.glxp.api.req.inv.InvProductRationRequest;
import com.glxp.api.res.inv.InvProductRationResponse;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@Mapper
public interface InvProductRationMapper extends BaseMapper<InvProductRationEntity> {
List<InvProductRationResponse> filterList(InvProductRationRequest invProductRationRequest);
}

@ -1,6 +1,9 @@
package com.glxp.api.dao.purchase;
import com.glxp.api.dao.BaseMapperPlus;
import com.glxp.api.dao.inout.ReceiveDao;
import com.glxp.api.entity.inout.PurReceiveEntity;
import com.glxp.api.entity.purchase.PurApplyEntity;
import com.glxp.api.req.purchase.PurApplyRequest;
import com.glxp.api.res.purchase.PurApplyResponse;
@ -10,11 +13,11 @@ import org.apache.ibatis.annotations.Param;
import java.util.List;
@Mapper
public interface PurApplyDao {
public interface PurApplyDao extends BaseMapperPlus<PurApplyDao, PurApplyEntity, PurApplyEntity> {
List<PurApplyResponse> queryPageList(PurApplyRequest purApplyRequest);
Integer insert(PurApplyEntity purApplyRequest);
int insert(PurApplyEntity purApplyRequest);
Boolean update(PurApplyEntity purApplyRequest);

@ -1,6 +1,8 @@
package com.glxp.api.dao.purchase;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.glxp.api.entity.inv.InvProductRationEntity;
import com.glxp.api.entity.purchase.PurApplyDetailEntity;
import com.glxp.api.req.purchase.PurApplyDetailRequest;
import com.glxp.api.res.purchase.PurOrderDetailResponse;
@ -10,13 +12,14 @@ import org.apache.ibatis.annotations.Param;
import java.util.List;
@Mapper
public interface PurApplyDetailDao {
public interface PurApplyDetailDao extends BaseMapper<PurApplyDetailEntity> {
List<PurApplyDetailEntity> queryPageList(PurApplyDetailRequest purApplyRequest);
List<PurOrderDetailResponse> joinQueryList(PurApplyDetailRequest purApplyRequest);
Boolean insert(PurApplyDetailEntity purApplyDetailEntity);
int insert(PurApplyDetailEntity purApplyDetailEntity);
Boolean update(PurApplyDetailEntity purApplyRequest);

@ -1,7 +1,9 @@
package com.glxp.api.dao.purchase;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.glxp.api.entity.basic.BasicProductsEntity;
import com.glxp.api.entity.inv.InvProductRationEntity;
import com.glxp.api.entity.purchase.PurPlanDetailEntity;
import com.glxp.api.req.purchase.PurPlanDetailRequest;
import com.glxp.api.res.purchase.PurOrderDetailResponse;
@ -11,16 +13,16 @@ import org.apache.ibatis.annotations.Param;
import java.util.List;
@Mapper
public interface PurPlanDetailDao {
public interface PurPlanDetailDao extends BaseMapper<PurPlanDetailEntity> {
List<PurPlanDetailEntity> queryPageList(PurPlanDetailRequest purApplyRequest);
List<PurOrderDetailResponse> joinQueryList(PurPlanDetailRequest purPlanDetailRequest);
Boolean insert(PurPlanDetailEntity purPlanDetailRequest);
int insert(PurPlanDetailEntity purPlanDetailRequest);
Boolean update(PurPlanDetailEntity purPlanDetailRequest);
Boolean deleteByIds(@Param("ids")List<Long> ids);
Boolean deleteByIds(@Param("ids") List<Long> ids);
Boolean deleteByOrderId(@Param("orderIdFk") String orderIdFk);

@ -0,0 +1,181 @@
package com.glxp.api.entity.inv;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.Date;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@ApiModel(value = "com-glxp-api-entity-inv-InvProductRationEntity")
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "inv_product_ration")
public class InvProductRationEntity implements Serializable {
@TableId(value = "id", type = IdType.INPUT)
@ApiModelProperty(value = "")
private Integer id;
/**
* ID
*/
@TableField(value = "relId")
@ApiModelProperty(value = "产品ID")
private Long relId;
/**
* ID
*/
@TableField(value = "supId")
@ApiModelProperty(value = "供应商ID")
private Long supId;
/**
*
*/
@TableField(value = "rationCount")
@ApiModelProperty(value = "定量数")
private Integer rationCount;
/**
*
*/
@TableField(value = "invCount")
@ApiModelProperty(value = "库存数")
private Integer invCount;
/**
*
*/
@TableField(value = "busType")
@ApiModelProperty(value = "业务单据类型")
private String busType;
/**
*
*/
@TableField(value = "scanType")
@ApiModelProperty(value = "扫码单据类型")
private String scanType;
/**
*
*/
@TableField(value = "curInvCode")
@ApiModelProperty(value = "当前仓库")
private String curInvCode;
/**
*
*/
@TableField(value = "lyInvCode")
@ApiModelProperty(value = "领用仓库")
private String lyInvCode;
/**
* -
*/
@TableField(value = "sgInvCode")
@ApiModelProperty(value = "业务-申购采购仓库")
private String sgInvCode;
/**
* -
*/
@TableField(value = "jhInvCode")
@ApiModelProperty(value = "业务-计划采购仓库")
private String jhInvCode;
/**
* -
*/
@TableField(value = "cgInvCode")
@ApiModelProperty(value = "业务-订单采购仓库")
private String cgInvCode;
/**
* -
*/
@TableField(value = "fromInvCode")
@ApiModelProperty(value = "出入库-往来仓库")
private String fromInvCode;
/**
*
*/
@TableField(value = "updateTime")
@ApiModelProperty(value = "更新时间")
private Date updateTime;
/**
*
*/
@TableField(value = "updateUser")
@ApiModelProperty(value = "更新人")
private String updateUser;
/**
*
*/
@TableField(value = "createTime")
@ApiModelProperty(value = "创建时间")
private Date createTime;
/**
*
*/
@TableField(value = "`createUser`")
@ApiModelProperty(value = "创建人")
private String createUser;
@TableField(value = "remark")
@ApiModelProperty(value = "备注")
private String remark;
/**
* 1:稿2:
*/
@TableField(value = "busAuditStatus")
@ApiModelProperty(value = "业务单生成后审核状态 1:草稿2:未审核")
private Integer busAuditStatus;
/**
* 1:稿2:
*/
@TableField(value = "auditStatus")
@ApiModelProperty(value = "出入库单生成后审核状态 1:草稿2:未审核")
private Integer auditStatus;
/**
*
*/
@TableField(value = "scanOrder")
@ApiModelProperty(value = "出入库单号")
private String scanOrder;
/**
*
*/
@TableField(value = "busOrder")
@ApiModelProperty(value = "业务单号")
private String busOrder;
@TableField(exist = false)
private String busInvCode;
private static final long serialVersionUID = 1L;
}

@ -0,0 +1,16 @@
package com.glxp.api.req.inv;
import com.glxp.api.entity.inv.InvProductRationEntity;
import lombok.Data;
import java.util.List;
@Data
public class InvAddRationRequest {
private List<InvProductRationEntity> rationEntities;
InvProductRationEntity invProductRationEntity;
}

@ -0,0 +1,17 @@
package com.glxp.api.req.inv;
import com.glxp.api.util.page.ListPageRequest;
import lombok.Data;
@Data
public class InvProductRationRequest extends ListPageRequest {
private String curInvCode;
private String cpmctymc;
private String nameCode;
private Long relId;
private String ggxh;
private String ylqxzcrbarmc;
private String zczbhhzbapzbh;
private String supId;
}

@ -146,5 +146,7 @@ public class IoCodeTempResponse {
private Integer checkStatus;
private String price;
}

@ -0,0 +1,117 @@
package com.glxp.api.res.inv;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
@Data
public class InvProductRationResponse {
private Integer id;
/**
* ID
*/
private Long relId;
/**
* ID
*/
private Long supId;
/**
*
*/
private Integer rationCount;
/**
*
*/
private Integer invCount;
/**
*
*/
private String busType;
/**
*
*/
private String scanType;
/**
*
*/
private String curInvCode;
/**
*
*/
private String lyInvCode;
/**
* -
*/
private String sgInvCode;
/**
* -
*/
private String jhInvCode;
/**
* -
*/
private String cgInvCode;
/**
* -
*/
private String fromInvCode;
/**
*
*/
private Date updateTime;
/**
*
*/
private String updateUser;
/**
*
*/
private Date createTime;
/**
*
*/
private String createUser;
/**
*
*/
private String remark;
private String cpmctymc;
private String measname;
private String ggxh;
private String ylqxzcrbarmc;
private String zczbhhzbapzbh;
private String nameCode;
private String supName;
private String invName;
/**
* 1:稿2:
*/
private Integer busAuditStatus;
/**
* 1:稿2:
*/
private Integer auditStatus;
}

@ -45,4 +45,7 @@ public interface UdiRlSupService {
* @return
*/
boolean findExist(CompanyProductRelevanceRequest companyProductRelevanceRequest);
UdiRlSupResponse findByRelUnitFk(String udiRlIdFk, String unitFk);
}

@ -1,5 +1,7 @@
package com.glxp.api.service.basic.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.pagehelper.PageHelper;
import com.glxp.api.dao.basic.UdiRlSupDao;
@ -131,4 +133,18 @@ public class UdiRlSupServiceImpl implements UdiRlSupService {
Long count = udiRlSupDao.selectSupRlCount(companyProductRelevanceRequest);
return null != count && count != 0;
}
@Override
public UdiRlSupResponse findByRelUnitFk(String udiRlIdFk, String unitFk) {
if (StrUtil.isEmpty(udiRlIdFk) || StrUtil.isEmpty(unitFk)) {
return null;
}
CompanyProductRelevanceRequest companyProductRelevanceRequest = new CompanyProductRelevanceRequest();
companyProductRelevanceRequest.setId(udiRlIdFk);
companyProductRelevanceRequest.setCustomerId(unitFk);
List<UdiRlSupResponse> udiRlSupResponses = filterUdiGp(companyProductRelevanceRequest);
if (CollUtil.isNotEmpty(udiRlSupResponses))
return udiRlSupResponses.get(0);
return null;
}
}

@ -922,11 +922,10 @@ public class IoAddInoutService {
IoCodeTempEntity codeEntity = temps.get(0);
InvProductDetailEntity invProductDetailEntity = invProductDetailService.selectLastInBatch(bussinessTypeEntity, codeEntity.getRelId() + "", codeEntity.getBatchNo(), codeEntity.getInvCode(), codeEntity.getMainAction());
Map<String, Integer> lastCountMap = new HashMap<>();
invProductDetailEntity = invProductDetailService.selectFirstInBatch(bussinessTypeEntity, codeEntity.getRelId() + "", codeEntity.getBatchNo(), codeEntity.getInvCode(), ConstantType.TYPE_PUT);
for (IoCodeTempEntity codeTempEntity : temps) {
if (invProductDetailEntity == null) {
//首次出库,获取入库最早批次
invProductDetailEntity = invProductDetailService.selectFirstInBatch(bussinessTypeEntity, codeTempEntity.getRelId() + "", codeTempEntity.getBatchNo(), codeTempEntity.getInvCode(), ConstantType.TYPE_PUT);
if (invProductDetailEntity != null) {
int count = IntUtil.value(invProductDetailEntity.getCount());
int reCount = IntUtil.value(invProductDetailEntity.getReCount());

@ -370,6 +370,8 @@ public class IoCheckInoutService {
if (curCount > bizEntity.getCount()) {
return "当前产品数量超出!";
}
if (bizEntity.getPrice() != null)
codeEntity.setPrice(bizEntity.getPrice());
return null;
}
@ -393,6 +395,8 @@ public class IoCheckInoutService {
if (curCount > bizEntity.getCount()) {
return "当前产品数量超出!";
}
if (bizEntity.getPrice() != null)
codeTempEntity.setPrice(bizEntity.getPrice());
return null;
}

@ -2,6 +2,7 @@ package com.glxp.api.service.inout;
import com.glxp.api.service.inout.impl.IoCodeService;
import com.glxp.api.service.inv.impl.InvProductDetailService;
import com.glxp.api.service.inv.impl.InvProductService;
import org.springframework.beans.BeanUtils;
import cn.hutool.core.util.StrUtil;
import com.glxp.api.constant.BusinessType;

@ -1,28 +0,0 @@
package com.glxp.api.service.inout;
import com.glxp.api.entity.basic.BasicProductsEntity;
import com.glxp.api.entity.inout.PurReceiveEntity;
import com.glxp.api.req.inout.FilterReceiveRequest;
import com.glxp.api.res.inout.ReceiveResponse;
import java.util.List;
/**
*
*/
public interface ReceiveService {
PurReceiveEntity selectById(Long id);
int insertOrder(PurReceiveEntity purReceiveEntity);
int updateOrder(PurReceiveEntity purReceiveEntity);
List<ReceiveResponse> filterList(FilterReceiveRequest filterReceiveRequest);
boolean delReceive(String orderIdFk);
}

@ -1,27 +0,0 @@
package com.glxp.api.service.inout;
import com.glxp.api.entity.basic.BasicProductsEntity;
import com.glxp.api.entity.inout.PurReceiveDetailEntity;
import com.glxp.api.req.inout.FilterReceiveDetailRequest;
import com.glxp.api.req.inout.FilterReceiveRequest;
import com.glxp.api.req.inout.UpdateReceiveDetailRequest;
import com.glxp.api.res.inout.ReceiveDetailResponse;
import com.glxp.api.res.inout.ReceiveResponse;
import java.util.List;
public interface ReceivedetailService {
List<PurReceiveDetailEntity> selectByOrderId(String orderId);
List<ReceiveDetailResponse> filterList(FilterReceiveDetailRequest filterReceiveDetailRequest);
int insert(PurReceiveDetailEntity receiveDetailEntity);
boolean updateReceiveDetail(UpdateReceiveDetailRequest updateReceiveDetailRequest);
boolean delDetail(String id);
BasicProductsEntity selectIoOrderDetailBiz(long id);
}

@ -1,6 +1,7 @@
package com.glxp.api.service.inout.impl;
import com.glxp.api.service.inv.impl.InvProductDetailService;
import com.glxp.api.service.inv.impl.InvProductService;
import org.springframework.beans.BeanUtils;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.lang.UUID;

@ -1,15 +1,16 @@
package com.glxp.api.service.inout.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageHelper;
import com.glxp.api.dao.inout.ReceiveDetailDao;
import com.glxp.api.dao.inv.InvProductRationMapper;
import com.glxp.api.entity.basic.BasicProductsEntity;
import com.glxp.api.entity.inout.PurReceiveDetailEntity;
import com.glxp.api.entity.inv.InvProductRationEntity;
import com.glxp.api.req.inout.FilterReceiveDetailRequest;
import com.glxp.api.req.inout.UpdateReceiveDetailRequest;
import com.glxp.api.res.inout.ReceiveDetailResponse;
import com.glxp.api.service.inout.ReceivedetailService;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -19,17 +20,17 @@ import java.util.List;
@Service
@Transactional(rollbackFor = Exception.class)
public class ReceiveDetailServiceImpl implements ReceivedetailService {
public class ReceiveDetailService extends ServiceImpl<ReceiveDetailDao, PurReceiveDetailEntity> {
@Resource
ReceiveDetailDao receiveDetailDao;
@Override
public List<PurReceiveDetailEntity> selectByOrderId(String orderId) {
return receiveDetailDao.selectList(new QueryWrapper<PurReceiveDetailEntity>().eq("orderIdFk", orderId));
}
@Override
public List<ReceiveDetailResponse> filterList(FilterReceiveDetailRequest filterReceiveDetailRequest) {
if (null == filterReceiveDetailRequest) {
return Collections.emptyList();
@ -40,23 +41,23 @@ public class ReceiveDetailServiceImpl implements ReceivedetailService {
return receiveDetailDao.filterList(filterReceiveDetailRequest);
}
@Override
public int insert(PurReceiveDetailEntity receiveDetailEntity) {
return receiveDetailDao.insert(receiveDetailEntity);
}
@Override
public boolean updateReceiveDetail(UpdateReceiveDetailRequest updateReceiveDetailRequest) {
return receiveDetailDao.updateReceiveDetail(updateReceiveDetailRequest);
}
@Override
public boolean delDetail(String id) {
receiveDetailDao.deleteById(id);
return true;
}
@Override
public BasicProductsEntity selectIoOrderDetailBiz(long id) {
return receiveDetailDao.selectIoOrderDetailBiz(id);
}

@ -1,6 +1,7 @@
package com.glxp.api.service.inout.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageHelper;
import com.glxp.api.dao.inout.ReceiveDao;
import com.glxp.api.dao.inout.ReceiveDetailDao;
@ -8,7 +9,6 @@ import com.glxp.api.entity.inout.PurReceiveDetailEntity;
import com.glxp.api.entity.inout.PurReceiveEntity;
import com.glxp.api.req.inout.FilterReceiveRequest;
import com.glxp.api.res.inout.ReceiveResponse;
import com.glxp.api.service.inout.ReceiveService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -18,7 +18,7 @@ import java.util.List;
@Service
@Transactional(rollbackFor = Exception.class)
public class ReceiveServiceImpl implements ReceiveService {
public class ReceiveService extends ServiceImpl<ReceiveDao, PurReceiveEntity> {
@Resource
ReceiveDao receiveDao;
@ -26,24 +26,29 @@ public class ReceiveServiceImpl implements ReceiveService {
@Resource
ReceiveDetailDao receiveDetailDao;
@Override
public PurReceiveEntity selectByBillNo(String billNo) {
return receiveDao.selectOne(new QueryWrapper<PurReceiveEntity>().eq("billNo", billNo).last("limit 1"));
}
public PurReceiveEntity selectById(Long id) {
return receiveDao.selectById(id);
}
@Override
public int insertOrder(PurReceiveEntity purReceiveEntity) {
return receiveDao.insert(purReceiveEntity);
}
@Override
public int updateOrder(PurReceiveEntity purReceiveEntity) {
QueryWrapper<PurReceiveEntity> ew = new QueryWrapper<>();
ew.eq("billNo", purReceiveEntity.getBillNo());
return receiveDao.update(purReceiveEntity, ew);
}
@Override
public List<ReceiveResponse> filterList(FilterReceiveRequest filterReceiveRequest) {
if (null == filterReceiveRequest) {
return Collections.emptyList();
@ -54,7 +59,7 @@ public class ReceiveServiceImpl implements ReceiveService {
return receiveDao.filterList(filterReceiveRequest);
}
@Override
public boolean delReceive(String orderIdFk) {
QueryWrapper<PurReceiveEntity> ew = new QueryWrapper<>();
ew.eq("billNo", orderIdFk);

@ -0,0 +1,433 @@
package com.glxp.api.service.inv;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.github.pagehelper.PageHelper;
import com.glxp.api.constant.Constant;
import com.glxp.api.constant.ConstantStatus;
import com.glxp.api.entity.auth.InvWarehouseEntity;
import com.glxp.api.entity.basic.BasicBussinessTypeEntity;
import com.glxp.api.entity.inout.*;
import com.glxp.api.entity.purchase.*;
import com.glxp.api.req.inv.InvProductRationRequest;
import com.glxp.api.res.basic.UdiRlSupResponse;
import com.glxp.api.res.inv.InvProductRationResponse;
import com.glxp.api.service.auth.InvWarehouseService;
import com.glxp.api.service.basic.IBasicBussinessTypeService;
import com.glxp.api.service.basic.UdiRlSupService;
import com.glxp.api.service.inout.IoOrderDetailBizService;
import com.glxp.api.service.inout.IoOrderService;
import com.glxp.api.service.inout.impl.ReceiveDetailService;
import com.glxp.api.service.inout.impl.ReceiveService;
import com.glxp.api.service.purchase.PurOrderService;
import com.glxp.api.service.purchase.PurPlanService;
import com.glxp.api.service.purchase.impl.PurApplyDetailService;
import com.glxp.api.service.purchase.impl.PurApplyService;
import com.glxp.api.service.purchase.impl.PurOrderDetailService;
import com.glxp.api.service.purchase.impl.PurPlanDetailService;
import com.glxp.api.util.CustomUtil;
import com.glxp.api.util.GennerOrderUtils;
import com.glxp.api.util.IntUtil;
import com.glxp.api.util.OrderNoTypeBean;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.glxp.api.entity.inv.InvProductRationEntity;
import com.glxp.api.dao.inv.InvProductRationMapper;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.*;
import java.util.stream.Collectors;
@Service
public class InvProductRationService extends ServiceImpl<InvProductRationMapper, InvProductRationEntity> {
@Resource
InvProductRationMapper invProductRationMapper;
public List<InvProductRationResponse> filterList(InvProductRationRequest invProductRationRequest) {
if (invProductRationRequest == null) {
return Collections.emptyList();
}
if (invProductRationRequest.getPage() != null) {
int offset = (invProductRationRequest.getPage() - 1) * invProductRationRequest.getLimit();
PageHelper.offsetPage(offset, invProductRationRequest.getLimit());
}
List<InvProductRationResponse> data = invProductRationMapper.filterList(invProductRationRequest);
return data;
}
public void genOrder(List<InvProductRationEntity> invProductRationEntities) {
//1.生成业务单
Map<String, List<InvProductRationEntity>> stringListMap = invProductRationEntities.stream()
.collect(Collectors.groupingBy(item -> item.getBusType() + ":" + item.getBusAuditStatus()));
stringListMap.forEach((key, rationEntityList) -> {
InvProductRationEntity invProductRationEntity = rationEntityList.get(0);
if (StrUtil.isNotEmpty(invProductRationEntity.getBusType())) {
switch (invProductRationEntity.getBusType()) {
case "HCLY":
genLyOrder(rationEntityList);
break;
case "CPSG":
genSgOrder(rationEntityList);
break;
case "CGJH":
genJhOrder(rationEntityList);
break;
case "CGDD":
genCgddOrder(rationEntityList);
break;
default:
break;
}
}
});
//2.生成出入库单
Map<String, List<InvProductRationEntity>> inoutList = invProductRationEntities.stream()
.collect(Collectors.groupingBy(item -> item.getScanType()));
for (String key : inoutList.keySet()) {
BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(key);
if (bussinessTypeEntity != null) {
if (bussinessTypeEntity.getCorpType() == ConstantStatus.CORP_TYPE_INNOR) {
genIoOrder(inoutList.get(key), bussinessTypeEntity);
} else if (bussinessTypeEntity.getCorpType() == ConstantStatus.CORP_TYPE_OUT) {
Map<String, List<InvProductRationEntity>> listMap = inoutList.get(key).stream()
.collect(Collectors.groupingBy(item -> item.getSupId() + ""));
stringListMap.forEach((supId, rationEntityList) -> {
genIoOrder(listMap.get(supId), bussinessTypeEntity);
}
);
}
}
}
}
@Resource
GennerOrderUtils gennerOrderUtils;
@Resource
InvWarehouseService invWarehouseService;
@Resource
UdiRlSupService udiRlSupService;
@Resource
ReceiveService receiveService;
@Resource
ReceiveDetailService receivedetailService;
/**
*
*/
public void genLyOrder(List<InvProductRationEntity> invProductRationEntities) {
InvProductRationEntity invProductRationEntity = invProductRationEntities.get(0);
InvWarehouseEntity curWarehouseEntity = invWarehouseService.findByInvSubByCode(invProductRationEntity.getCurInvCode());
InvWarehouseEntity targetWarehouseEntity = invWarehouseService.findByInvSubByCode(invProductRationEntity.getLyInvCode());
PurReceiveEntity purReceiveEntity = new PurReceiveEntity();
purReceiveEntity.setStatus(invProductRationEntity.getBusAuditStatus());
purReceiveEntity.setCreateUser(invProductRationEntity.getCreateUser());
purReceiveEntity.setBillDate(new Date());
purReceiveEntity.setCreateTime(new Date());
purReceiveEntity.setUpdateTime(new Date());
purReceiveEntity.setBillType("HCLY");
String orderNo = gennerOrderUtils.createStOrderNo(new OrderNoTypeBean(Constant.LIN_YONG, "yyyyMMdd"));
purReceiveEntity.setBillNo(orderNo);
purReceiveEntity.setInvCode(curWarehouseEntity.getCode());
purReceiveEntity.setTargetDeptCode(targetWarehouseEntity.getCode());
purReceiveEntity.setDeptCode(curWarehouseEntity.getParentId());
purReceiveEntity.setTargetDeptCode(targetWarehouseEntity.getParentId());
purReceiveEntity.setRemark("定量不足生成");
List<PurReceiveDetailEntity> purReceiveDetailEntities = new ArrayList<>();
//生成单据详情
for (InvProductRationEntity rationEntity : invProductRationEntities) {
if (StrUtil.isNotEmpty(rationEntity.getBusOrder())) {
PurReceiveEntity temp = receiveService.selectByBillNo(rationEntity.getBusOrder());
if (temp != null && IntUtil.value(temp.getStatus()) <= 2) {
continue;
}
}
int count = IntUtil.value(rationEntity.getRationCount()) - IntUtil.value(rationEntity.getInvCount());
if (count > 0) {
PurReceiveDetailEntity purReceiveDetailEntity = new PurReceiveDetailEntity();
purReceiveDetailEntity.setOrderIdFk(purReceiveEntity.getBillNo());
purReceiveDetailEntity.setRelIdFk(rationEntity.getRelId());
UdiRlSupResponse udiRlSupResponse = udiRlSupService.findByRelUnitFk(rationEntity.getRelId() + "", rationEntity.getSupId() + "");
purReceiveDetailEntity.setNameCode(udiRlSupResponse.getNameCode());
purReceiveDetailEntity.setSupId(rationEntity.getSupId() + "");
purReceiveDetailEntity.setCount(count);
purReceiveDetailEntities.add(purReceiveDetailEntity);
}
}
if (CollUtil.isNotEmpty(purReceiveDetailEntities)) {
receiveService.insertOrder(purReceiveEntity);
receivedetailService.saveBatch(purReceiveDetailEntities);
invProductRationEntity.setBusOrder(orderNo);
invProductRationMapper.updateById(invProductRationEntity);
}
}
@Resource
PurApplyService purApplyService;
@Resource
PurApplyDetailService purApplyDetailService;
/**
*
*/
public void genSgOrder(List<InvProductRationEntity> invProductRationEntities) {
InvProductRationEntity invProductRationEntity = invProductRationEntities.get(0);
InvWarehouseEntity curWarehouseEntity = invWarehouseService.findByInvSubByCode(invProductRationEntity.getCurInvCode());
InvWarehouseEntity targetWarehouseEntity = invWarehouseService.findByInvSubByCode(invProductRationEntity.getSgInvCode());
PurApplyEntity purApplyEntity = new PurApplyEntity();
purApplyEntity.setCreateUser(invProductRationEntity.getCreateUser());
purApplyEntity.setBillDate(new Date());
purApplyEntity.setCreateTime(new Date());
purApplyEntity.setUpdateTime(new Date());
purApplyEntity.setBillType(ConstantStatus.BUS_ORDER_CPSG);
purApplyEntity.setStatus(invProductRationEntity.getBusAuditStatus());
String billNo = gennerOrderUtils.createStOrderNo(new OrderNoTypeBean(Constant.SG_ORDER, "yyyyMMdd"));
purApplyEntity.setBillNo(billNo);
purApplyEntity.setInvCode(curWarehouseEntity.getCode());
purApplyEntity.setTargetDeptCode(targetWarehouseEntity.getCode());
purApplyEntity.setDeptCode(curWarehouseEntity.getParentId());
purApplyEntity.setTargetDeptCode(targetWarehouseEntity.getParentId());
purApplyEntity.setRemark("定量不足生成");
List<PurApplyDetailEntity> purApplyDetailEntities = new ArrayList<>();
//生成单据详情
for (InvProductRationEntity rationEntity : invProductRationEntities) {
if (StrUtil.isNotEmpty(rationEntity.getBusOrder())) {
PurApplyEntity temp = purApplyService.selectByBillNo(rationEntity.getBusOrder());
if (temp != null && IntUtil.value(temp.getStatus()) <= 2) {
continue;
}
}
int count = IntUtil.value(rationEntity.getRationCount()) - IntUtil.value(rationEntity.getInvCount());
if (count > 0) {
PurApplyDetailEntity purApplyDetailEntity = new PurApplyDetailEntity();
purApplyDetailEntity.setOrderIdFk(purApplyEntity.getBillNo());
purApplyDetailEntity.setProductId(rationEntity.getRelId());
UdiRlSupResponse udiRlSupResponse = udiRlSupService.findByRelUnitFk(rationEntity.getRelId() + "", rationEntity.getSupId() + "");
purApplyDetailEntity.setProductName(udiRlSupResponse.getCpmctymc());
purApplyDetailEntity.setCount(count);
purApplyDetailEntity.setZczbhhzbapzbh(udiRlSupResponse.getZczbhhzbapzbh());
purApplyDetailEntity.setSupId(rationEntity.getSupId() + "");
purApplyDetailEntities.add(purApplyDetailEntity);
}
}
if (CollUtil.isNotEmpty(purApplyDetailEntities)) {
purApplyService.insert(purApplyEntity);
purApplyDetailService.saveBatch(purApplyDetailEntities);
invProductRationEntity.setBusOrder(billNo);
invProductRationMapper.updateById(invProductRationEntity);
}
}
@Resource
PurPlanService purPlanService;
@Resource
PurPlanDetailService purPlanDetailService;
/**
*
*/
public void genJhOrder(List<InvProductRationEntity> invProductRationEntities) {
InvProductRationEntity invProductRationEntity = invProductRationEntities.get(0);
InvWarehouseEntity curWarehouseEntity = invWarehouseService.findByInvSubByCode(invProductRationEntity.getCurInvCode());
InvWarehouseEntity targetWarehouseEntity = invWarehouseService.findByInvSubByCode(invProductRationEntity.getSgInvCode());
PurPlanEntity purPlanEntity = new PurPlanEntity();
purPlanEntity.setCreateUser(invProductRationEntity.getCreateUser());
purPlanEntity.setBillDate(new Date());
purPlanEntity.setCreateTime(new Date());
purPlanEntity.setUpdateTime(new Date());
purPlanEntity.setBillType(ConstantStatus.BUS_ORDER_CPSG);
purPlanEntity.setStatus(invProductRationEntity.getBusAuditStatus());
String billNo = gennerOrderUtils.createStOrderNo(new OrderNoTypeBean(Constant.SG_ORDER, "yyyyMMdd"));
purPlanEntity.setBillNo(billNo);
purPlanEntity.setInvCode(targetWarehouseEntity.getCode());
purPlanEntity.setApplyInv(curWarehouseEntity.getCode());
purPlanEntity.setDeptCode(targetWarehouseEntity.getParentId());
purPlanEntity.setRemark("定量不足生成");
List<PurPlanDetailEntity> purPlanDetailEntityList = new ArrayList<>();
//生成单据详情
for (InvProductRationEntity rationEntity : invProductRationEntities) {
int count = IntUtil.value(rationEntity.getRationCount()) - IntUtil.value(rationEntity.getInvCount());
if (count > 0) {
PurPlanDetailEntity purPlanDetailEntity = new PurPlanDetailEntity();
purPlanDetailEntity.setOrderIdFk(purPlanEntity.getBillNo());
purPlanDetailEntity.setProductId(rationEntity.getRelId());
UdiRlSupResponse udiRlSupResponse = udiRlSupService.findByRelUnitFk(rationEntity.getRelId() + "", rationEntity.getSupId() + "");
purPlanDetailEntity.setProductName(udiRlSupResponse.getCpmctymc());
purPlanDetailEntity.setCount(count);
purPlanDetailEntity.setZczbhhzbapzbh(udiRlSupResponse.getZczbhhzbapzbh());
purPlanDetailEntity.setSupId(rationEntity.getSupId() + "");
purPlanDetailEntityList.add(purPlanDetailEntity);
}
}
if (CollUtil.isNotEmpty(purPlanDetailEntityList)) {
purPlanService.insert(purPlanEntity);
purPlanDetailService.saveBatch(purPlanDetailEntityList);
}
}
@Resource
PurOrderService purOrderService;
@Resource
PurOrderDetailService purOrderDetailService;
/**
*
*/
public void genCgddOrder(List<InvProductRationEntity> invProductRationEntities) {
Map<String, List<InvProductRationEntity>> stringListMap = invProductRationEntities.stream()
.collect(Collectors.groupingBy(item -> item.getSupId() + ""));
stringListMap.forEach((key, rationEntityList) -> {
InvProductRationEntity invProductRationEntity = rationEntityList.get(0);
InvWarehouseEntity curWarehouseEntity = invWarehouseService.findByInvSubByCode(invProductRationEntity.getCurInvCode());
InvWarehouseEntity targetWarehouseEntity = invWarehouseService.findByInvSubByCode(invProductRationEntity.getSgInvCode());
PurOrderEntity purOrderEntity = new PurOrderEntity();
purOrderEntity.setCreateUser(invProductRationEntity.getCreateUser());
purOrderEntity.setBillDate(new Date());
purOrderEntity.setCreateTime(new Date());
purOrderEntity.setUpdateTime(new Date());
purOrderEntity.setBillType(ConstantStatus.BUS_ORDER_CPSG);
purOrderEntity.setStatus(invProductRationEntity.getBusAuditStatus());
String billNo = gennerOrderUtils.createStOrderNo(new OrderNoTypeBean(Constant.SG_ORDER, "yyyyMMdd"));
purOrderEntity.setBillNo(billNo);
purOrderEntity.setInvCode(targetWarehouseEntity.getCode());
purOrderEntity.setApplyInv(curWarehouseEntity.getCode());
purOrderEntity.setDeptCode(targetWarehouseEntity.getParentId());
purOrderEntity.setRemark("定量不足生成");
List<PurOrderDetailEntity> purOrderDetailEntities = new ArrayList<>();
//生成单据详情
for (InvProductRationEntity rationEntity : rationEntityList) {
if (StrUtil.isNotEmpty(rationEntity.getBusOrder())) {
PurOrderEntity temp = purOrderService.selectByBillNo(rationEntity.getBusOrder());
if (temp != null && IntUtil.value(temp.getStatus()) <= 2) {
continue;
}
}
int count = IntUtil.value(rationEntity.getRationCount()) - IntUtil.value(rationEntity.getInvCount());
if (count > 0) {
PurOrderDetailEntity purOrderDetailEntity = new PurOrderDetailEntity();
purOrderDetailEntity.setOrderIdFk(purOrderEntity.getBillNo());
purOrderDetailEntity.setProductId(rationEntity.getRelId());
UdiRlSupResponse udiRlSupResponse = udiRlSupService.findByRelUnitFk(rationEntity.getRelId() + "", rationEntity.getSupId() + "");
purOrderDetailEntity.setProductName(udiRlSupResponse.getCpmctymc());
purOrderDetailEntity.setCount(count);
purOrderDetailEntity.setZczbhhzbapzbh(udiRlSupResponse.getZczbhhzbapzbh());
purOrderDetailEntity.setSupId(rationEntity.getSupId() + "");
purOrderDetailEntities.add(purOrderDetailEntity);
}
}
if (CollUtil.isNotEmpty(purOrderDetailEntities)) {
purOrderService.insert(purOrderEntity);
purOrderDetailService.saveBatch(purOrderDetailEntities);
invProductRationEntity.setBusOrder(billNo);
invProductRationMapper.updateById(invProductRationEntity);
}
}
);
}
@Resource
private IoOrderService orderService;
@Resource
IoOrderDetailBizService orderDetailBizService;
@Resource
private IBasicBussinessTypeService basicBussinessTypeService;
/**
*
*/
public void genIoOrder(List<InvProductRationEntity> rationEntities, BasicBussinessTypeEntity bussinessTypeEntity) {
InvProductRationEntity invProductRationEntity = rationEntities.get(0);
IoOrderEntity orderEntity = new IoOrderEntity();
InvWarehouseEntity curWarehouseEntity = invWarehouseService.findByInvSubByCode(invProductRationEntity.getCurInvCode());
if (bussinessTypeEntity.getCorpType() == ConstantStatus.CORP_TYPE_INNOR) {
InvWarehouseEntity targetWarehouseEntity = invWarehouseService.findByInvSubByCode(invProductRationEntity.getSgInvCode());
orderEntity.setFromInvCode(targetWarehouseEntity.getCode());
orderEntity.setFromDeptCode(targetWarehouseEntity.getParentId());
} else {
orderEntity.setFromCorp(invProductRationEntity.getSupId() + "");
}
String orderNo = gennerOrderUtils.createScOrderNo(new OrderNoTypeBean(Constant.SCAN_ORDER + StrUtil.trimToEmpty(bussinessTypeEntity.getPrefix()), "yyyyMMdd"));
orderEntity.setBillNo(orderNo);
orderEntity.setCorpOrderId(CustomUtil.getId());
orderEntity.setAction(bussinessTypeEntity.getAction());
orderEntity.setMainAction(bussinessTypeEntity.getMainAction());
orderEntity.setRemark("定量不足自动生成");
orderEntity.setDeptCode(curWarehouseEntity.getParentId());
orderEntity.setInvCode(curWarehouseEntity.getCode());
orderEntity.setFromType(ConstantStatus.FROM_CHANGE);
orderEntity.setStatus(invProductRationEntity.getAuditStatus() == 1 ? 1 : 3);
orderEntity.setDealStatus(orderEntity.getStatus());
orderEntity.setCreateUser(invProductRationEntity.getCreateUser());
orderEntity.setCreateTime(new Date());
orderEntity.setUpdateUser(invProductRationEntity.getCreateUser());
orderEntity.setUpdateTime(new Date());
orderEntity.setCustomerId("110");
orderEntity.setOrderType(1);
orderEntity.setExportStatus(0);
//生成单据详情
List<IoOrderDetailBizEntity> orderDetailBizEntities = new ArrayList<>();
for (InvProductRationEntity rationEntity : rationEntities) {
if (StrUtil.isNotEmpty(rationEntity.getScanOrder())) {
IoOrderEntity temp = orderService.findByBillNo(rationEntity.getScanOrder());
if (temp != null && IntUtil.value(temp.getStatus()) < 2) {
continue;
}
}
int count = IntUtil.value(rationEntity.getRationCount()) - IntUtil.value(rationEntity.getInvCount());
if (count > 0) {
IoOrderDetailBizEntity orderDetailBizEntity = new IoOrderDetailBizEntity();
orderDetailBizEntity.setOrderIdFk(orderEntity.getBillNo());
orderDetailBizEntity.setBindRlFk(rationEntity.getRelId());
UdiRlSupResponse udiRlSupResponse = udiRlSupService.findByRelUnitFk(rationEntity.getRelId() + "", rationEntity.getSupId() + "");
orderDetailBizEntity.setUuidFk(udiRlSupResponse.getUuid());
orderDetailBizEntity.setNameCode(udiRlSupResponse.getNameCode());
orderDetailBizEntity.setCoName(udiRlSupResponse.getCpmctymc());
orderDetailBizEntity.setYlqxzcrbarmc(udiRlSupResponse.getYlqxzcrbarmc());
orderDetailBizEntity.setManufacturer(udiRlSupResponse.getManufactory());
orderDetailBizEntity.setMeasname(udiRlSupResponse.getMeasname());
orderDetailBizEntity.setSpec(udiRlSupResponse.getGgxh());
orderDetailBizEntity.setPrice(new BigDecimal(udiRlSupResponse.getPrice()));
orderDetailBizEntity.setCount(count);
orderDetailBizEntity.setCertCode(udiRlSupResponse.getZczbhhzbapzbh());
orderDetailBizEntity.setSupId(rationEntity.getSupId() + "");
orderDetailBizService.insert(orderDetailBizEntity);
orderDetailBizEntities.add(orderDetailBizEntity);
}
}
if (CollUtil.isNotEmpty(orderDetailBizEntities)) {
orderService.insertOrder(orderEntity);
invProductRationEntity.setScanOrder(orderNo);
invProductRationMapper.updateById(invProductRationEntity);
}
}
}

@ -1,99 +0,0 @@
package com.glxp.api.service.inv;
import com.glxp.api.entity.inv.InvProductEntity;
import com.glxp.api.req.inv.FilterInvProductRequest;
import com.glxp.api.res.inv.InvProductResponse;
import java.math.BigDecimal;
import java.util.List;
public interface InvProductService {
int insert(InvProductEntity invProductEntity);
int update(InvProductEntity invProductEntity);
boolean updateBatch(List<InvProductEntity> invProductEntities);
InvProductEntity selectByUnique(Long relId, String batchNo, String supId, String deptCode, String invCode, BigDecimal price);
InvProductEntity selectByUnique(Long relId, String batchNo, String supId);
/**
*
*
* @param filterInvProductRequest
* @return
*/
List<InvProductResponse> filterList(FilterInvProductRequest filterInvProductRequest);
/**
*
*
* @param filterInvProductRequest
* @return
*/
List<InvProductResponse> filterListStock(FilterInvProductRequest filterInvProductRequest);
/**
*
*
* @param filterInvProductRequest
* @return
*/
List<InvProductResponse> filterListProduct(FilterInvProductRequest filterInvProductRequest);
List<InvProductResponse> findGroupBySpace(FilterInvProductRequest filterInvProductRequest);
/**
* ID
*
* @param id
* @return
*/
InvProductEntity findById(String id);
/**
*
*
* @param id
* @return
*/
boolean deleteById(String id);
/**
*
*
* @param filterInvProductRequest
* @return
*/
List<InvProductResponse> stockStatistics(FilterInvProductRequest filterInvProductRequest);
/**
*
*
* @param filterInvProductRequest
* @return
*/
List<InvProductResponse> getInvMAProducts(FilterInvProductRequest filterInvProductRequest);
/**
*
*
* @param filterInvProductRequest
* @return
*/
List<InvProductResponse> getCountInvProduct(FilterInvProductRequest filterInvProductRequest);
/**
*
*
* @param filterInvProductRequest
* @return
*/
List<InvProductResponse> filterProductNames(FilterInvProductRequest filterInvProductRequest);
boolean isExitByRelId(String relId);
}

@ -2,13 +2,14 @@ package com.glxp.api.service.inv.impl;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageHelper;
import com.glxp.api.dao.inv.InvProductDao;
import com.glxp.api.dao.inv.InvProductDetailDao;
import com.glxp.api.entity.inv.InvProductEntity;
import com.glxp.api.req.inv.FilterInvProductRequest;
import com.glxp.api.res.inv.InvProductResponse;
import com.glxp.api.service.inv.InvProductService;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -19,30 +20,30 @@ import java.util.List;
@Service
@Transactional(rollbackFor = Exception.class)
public class InvProductServiceImpl implements InvProductService {
public class InvProductService extends ServiceImpl<InvProductDao, InvProductEntity> {
@Resource
InvProductDao invProductDao;
@Resource
InvProductDetailDao invProductDetailDao;
@Override
public int insert(InvProductEntity invProductEntity) {
invProductEntity.setId(null);
return invProductDao.insert(invProductEntity);
}
@Override
public int update(InvProductEntity invProductEntity) {
return invProductDao.updateById(invProductEntity);
}
@Override
public boolean updateBatch(List<InvProductEntity> invProductEntities) {
return invProductDao.updateBatchById(invProductEntities);
}
@Override
public InvProductEntity selectByUnique(Long relId, String batchNo, String supId, String deptCode, String invCode, BigDecimal price) {
return invProductDao.selectOne(new QueryWrapper<InvProductEntity>().eq("relIdFk", relId)
.eq(StrUtil.isNotEmpty(batchNo), "batchNo", batchNo).isNull(StrUtil.isEmpty(batchNo), "batchNo")
@ -53,13 +54,13 @@ public class InvProductServiceImpl implements InvProductService {
);
}
@Override
public InvProductEntity selectByUnique(Long relId, String batchNo, String supId) {
return invProductDao.selectOne(new QueryWrapper<InvProductEntity>().eq("relIdFk", relId).eq(StrUtil.isNotEmpty(batchNo), "batchNo", batchNo)
.isNull(StrUtil.isEmpty(batchNo), "batchNo").eq("supId", supId).last("limit 1"));
}
@Override
public List<InvProductResponse> filterList(FilterInvProductRequest filterInvProductRequest) {
if (null == filterInvProductRequest) {
return Collections.emptyList();
@ -70,7 +71,7 @@ public class InvProductServiceImpl implements InvProductService {
return invProductDao.filterProductList(filterInvProductRequest);
}
@Override
public List<InvProductResponse> filterListStock(FilterInvProductRequest filterInvProductRequest) {
if (null == filterInvProductRequest) {
return Collections.emptyList();
@ -82,7 +83,6 @@ public class InvProductServiceImpl implements InvProductService {
}
@Override
public List<InvProductResponse> filterListProduct(FilterInvProductRequest filterInvProductRequest) {
if (null == filterInvProductRequest) {
return Collections.emptyList();
@ -93,7 +93,7 @@ public class InvProductServiceImpl implements InvProductService {
return invProductDao.filterList(filterInvProductRequest);
}
@Override
public List<InvProductResponse> findGroupBySpace(FilterInvProductRequest filterInvProductRequest) {
if (null == filterInvProductRequest) {
return Collections.emptyList();
@ -105,17 +105,17 @@ public class InvProductServiceImpl implements InvProductService {
}
@Override
public InvProductEntity findById(String id) {
return invProductDao.selectById(id);
}
@Override
public boolean deleteById(String id) {
return invProductDao.deleteById(id) == 1 ? true : false;
}
@Override
public List<InvProductResponse> stockStatistics(FilterInvProductRequest filterInvProductRequest) {
if (null == filterInvProductRequest) {
return Collections.emptyList();
@ -126,7 +126,7 @@ public class InvProductServiceImpl implements InvProductService {
return invProductDao.stockStatistics(filterInvProductRequest);
}
@Override
public List<InvProductResponse> getInvMAProducts(FilterInvProductRequest filterInvProductRequest) {
if (null == filterInvProductRequest) {
return Collections.emptyList();
@ -137,7 +137,7 @@ public class InvProductServiceImpl implements InvProductService {
return invProductDao.getMAInvProducts(filterInvProductRequest);
}
@Override
public List<InvProductResponse> getCountInvProduct(FilterInvProductRequest filterInvProductRequest) {
if (null == filterInvProductRequest) {
return Collections.emptyList();
@ -148,7 +148,7 @@ public class InvProductServiceImpl implements InvProductService {
return invProductDao.getCountInvProduct(filterInvProductRequest);
}
@Override
public List<InvProductResponse> filterProductNames(FilterInvProductRequest filterInvProductRequest) {
if (null == filterInvProductRequest) {
return Collections.emptyList();
@ -159,10 +159,19 @@ public class InvProductServiceImpl implements InvProductService {
return invProductDao.filterProductNames(filterInvProductRequest);
}
@Override
public boolean isExitByRelId(String relId) {
return invProductDao.exists(new QueryWrapper<InvProductEntity>().eq("relIdFk", relId));
}
/**
*
*
* @return
*/
public Integer selectExitCount(String invCode, Long supId, Long relIdFk) {
return invProductDao.selectExitCount(invCode, supId, relIdFk);
}
}

@ -1,38 +0,0 @@
package com.glxp.api.service.purchase;
import com.glxp.api.entity.purchase.PurApplyDetailEntity;
import com.glxp.api.req.purchase.PurApplyDetailRequest;
import com.glxp.api.res.purchase.PurOrderDetailResponse;
import java.util.List;
public interface PurApplyDetailService {
List<PurApplyDetailEntity> queryPageList(PurApplyDetailRequest purApplyRequest);
List<PurApplyDetailEntity> findByOrderId(String orderId);
List<PurOrderDetailResponse> joinQueryList(PurApplyDetailRequest purApplyRequest);
Boolean insert(PurApplyDetailEntity purApplyRequest);
Boolean update(PurApplyDetailEntity purApplyRequest);
Boolean deleteByIds(List<Long> ids);
Boolean deleteByOrderId(String orderIdfK);
List<PurApplyDetailEntity> selectPurApplyDetailList(PurApplyDetailRequest purApplyRequest);
boolean insertPurApplyDetailEntity(List<PurApplyDetailEntity> purApplyDetailEntityList);
/**
*
*
* @param purApplyDetailRequest
* @return
*/
List<PurOrderDetailResponse> getDetailList(PurApplyDetailRequest purApplyDetailRequest);
}

@ -1,22 +0,0 @@
package com.glxp.api.service.purchase;
import com.glxp.api.entity.purchase.PurApplyEntity;
import com.glxp.api.req.purchase.PurApplyRequest;
import com.glxp.api.res.purchase.PurApplyResponse;
import java.util.List;
public interface PurApplyService {
List<PurApplyResponse> queryPageList(PurApplyRequest purApplyRequest);
Integer insert(PurApplyEntity purApplyEntity);
Boolean update(PurApplyEntity purApplyRequest);
Boolean deleteByIds(List<Long> ids);
Boolean deleteById(long id);
}

@ -1,38 +0,0 @@
package com.glxp.api.service.purchase;
import com.glxp.api.entity.basic.BasicCorpEntity;
import com.glxp.api.entity.basic.BasicProductsEntity;
import com.glxp.api.entity.purchase.PurOrderDetailEntity;
import com.glxp.api.req.purchase.PurOrderDetailRequest;
import com.glxp.api.res.purchase.PurOrderDetailResponse;
import java.util.List;
public interface PurOrderDetailService {
List<PurOrderDetailResponse> joinQueryList(PurOrderDetailRequest purOrderDetailRequest);
List<PurOrderDetailEntity> findByOrderId(String orderId);
List<PurOrderDetailEntity> queryPageList(PurOrderDetailRequest purOrderDetailRequest);
List<PurOrderDetailEntity> getPurOrderDetailEntityList(PurOrderDetailRequest purOrderDetailRequest);
Boolean insert(PurOrderDetailEntity purOrderDetailEntity);
Boolean update(PurOrderDetailEntity purOrderDetailEntity);
Boolean deleteByIds(List<Long> ids);
Boolean deleteByOrderId(String orderIdfK);
boolean insertPurOrderDetailEntity(List<PurOrderDetailEntity> purOrderDetailEntityList);
BasicProductsEntity selectIoOrderDetailBiz(long id);
List<PurOrderDetailResponse> getDetailList(PurOrderDetailRequest purOrderDetailRequest);
List<BasicCorpEntity> selectsupList(PurOrderDetailEntity purOrderDetailEntity);
}

@ -1,35 +0,0 @@
package com.glxp.api.service.purchase;
import com.glxp.api.entity.basic.BasicProductsEntity;
import com.glxp.api.entity.purchase.PurPlanDetailEntity;
import com.glxp.api.req.purchase.PurPlanDetailRequest;
import com.glxp.api.res.purchase.PurOrderDetailResponse;
import java.util.List;
public interface PurPlanDetailService {
List<PurOrderDetailResponse> joinQueryList(PurPlanDetailRequest purApplyRequest);
List<PurPlanDetailEntity> findByOrderId(String orderId);
List<PurPlanDetailEntity> queryPageList(PurPlanDetailRequest purPlanDetailRequest);
List<PurPlanDetailEntity> getPurPlanDetailEntityList(PurPlanDetailRequest purPlanDetailRequest);
Boolean insert(PurPlanDetailEntity purPlanDetailRequest);
Boolean update(PurPlanDetailEntity purPlanDetailRequest);
Boolean deleteByIds(List<Long> ids);
Boolean deleteByOrderId(String orderIdfK);
boolean insertPurPlanDetailEntity(List<PurPlanDetailEntity> purPlanDetailEntityList);
BasicProductsEntity selectIoOrderDetailBiz(long id);
List<PurOrderDetailResponse> getDetailList(PurPlanDetailRequest purPlanDetailRequest);
}

@ -1,11 +1,13 @@
package com.glxp.api.service.purchase.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageHelper;
import com.glxp.api.dao.inv.InvProductRationMapper;
import com.glxp.api.dao.purchase.PurApplyDetailDao;
import com.glxp.api.entity.inv.InvProductRationEntity;
import com.glxp.api.entity.purchase.PurApplyDetailEntity;
import com.glxp.api.req.purchase.PurApplyDetailRequest;
import com.glxp.api.res.purchase.PurOrderDetailResponse;
import com.glxp.api.service.purchase.PurApplyDetailService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -15,13 +17,13 @@ import java.util.List;
@Service
@Transactional(rollbackFor = Exception.class)
public class PurApplyDetailImplService implements PurApplyDetailService {
public class PurApplyDetailService extends ServiceImpl<PurApplyDetailDao, PurApplyDetailEntity> {
@Resource
PurApplyDetailDao purApplyDetailDao;
@Override
public List<PurApplyDetailEntity> queryPageList(PurApplyDetailRequest purApplyRequest) {
if (purApplyRequest == null) {
return Collections.emptyList();
@ -34,7 +36,7 @@ public class PurApplyDetailImplService implements PurApplyDetailService {
return data;
}
@Override
public List<PurApplyDetailEntity> findByOrderId(String orderId) {
if (orderId == null) {
return null;
@ -45,7 +47,7 @@ public class PurApplyDetailImplService implements PurApplyDetailService {
return data;
}
@Override
public List<PurOrderDetailResponse> joinQueryList(PurApplyDetailRequest purApplyRequest) {
if (purApplyRequest == null) {
return Collections.emptyList();
@ -58,37 +60,37 @@ public class PurApplyDetailImplService implements PurApplyDetailService {
return data;
}
@Override
public Boolean insert(PurApplyDetailEntity purApplyRequest) {
public int insert(PurApplyDetailEntity purApplyRequest) {
return purApplyDetailDao.insert(purApplyRequest);
}
@Override
public Boolean update(PurApplyDetailEntity purApplyRequest) {
return purApplyDetailDao.update(purApplyRequest);
}
@Override
public Boolean deleteByIds(List<Long> ids) {
return purApplyDetailDao.deleteByIds(ids);
}
@Override
public Boolean deleteByOrderId(String orderIdfK) {
return purApplyDetailDao.deleteByOrderId(orderIdfK);
}
@Override
public List<PurApplyDetailEntity> selectPurApplyDetailList(PurApplyDetailRequest purApplyRequest) {
return purApplyDetailDao.queryPageList(purApplyRequest);
}
@Override
public boolean insertPurApplyDetailEntity(List<PurApplyDetailEntity> purApplyDetailEntityList) {
return purApplyDetailDao.insertPurApplyDetailEntity(purApplyDetailEntityList);
}
@Override
public List<PurOrderDetailResponse> getDetailList(PurApplyDetailRequest purApplyDetailRequest) {
if (purApplyDetailRequest == null) {
return Collections.emptyList();
@ -102,5 +104,4 @@ public class PurApplyDetailImplService implements PurApplyDetailService {
}
}

@ -1,11 +1,14 @@
package com.glxp.api.service.purchase.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageHelper;
import com.glxp.api.dao.inout.ReceiveDao;
import com.glxp.api.dao.purchase.PurApplyDao;
import com.glxp.api.entity.inout.PurReceiveEntity;
import com.glxp.api.entity.purchase.PurApplyEntity;
import com.glxp.api.req.purchase.PurApplyRequest;
import com.glxp.api.res.purchase.PurApplyResponse;
import com.glxp.api.service.purchase.PurApplyService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -15,12 +18,16 @@ import java.util.List;
@Service
@Transactional(rollbackFor = Exception.class)
public class PurApplyServiceImpl implements PurApplyService {
public class PurApplyService extends ServiceImpl<PurApplyDao, PurApplyEntity> {
@Resource
PurApplyDao purApplyDao;
@Override
public PurApplyEntity selectByBillNo(String billNo) {
return purApplyDao.selectOne(new QueryWrapper<PurApplyEntity>().eq("billNo", billNo).last("limit 1"));
}
public List<PurApplyResponse> queryPageList(PurApplyRequest purApplyRequest) {
if (purApplyRequest == null) {
return Collections.emptyList();
@ -33,22 +40,22 @@ public class PurApplyServiceImpl implements PurApplyService {
return data;
}
@Override
public Integer insert(PurApplyEntity purApplyEntity) {
return purApplyDao.insert(purApplyEntity);
}
@Override
public Boolean update(PurApplyEntity purApplyRequest) {
return purApplyDao.update(purApplyRequest);
}
@Override
public Boolean deleteByIds(List<Long> ids) {
return purApplyDao.deleteByIds(ids);
}
@Override
public Boolean deleteById(long id) {
return purApplyDao.deleteById(id);
}

@ -1,13 +1,15 @@
package com.glxp.api.service.purchase.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageHelper;
import com.glxp.api.dao.inv.InvProductRationMapper;
import com.glxp.api.dao.purchase.PurOrderDetailDao;
import com.glxp.api.entity.basic.BasicCorpEntity;
import com.glxp.api.entity.basic.BasicProductsEntity;
import com.glxp.api.entity.inv.InvProductRationEntity;
import com.glxp.api.entity.purchase.PurOrderDetailEntity;
import com.glxp.api.req.purchase.PurOrderDetailRequest;
import com.glxp.api.res.purchase.PurOrderDetailResponse;
import com.glxp.api.service.purchase.PurOrderDetailService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -17,12 +19,12 @@ import java.util.List;
@Service
@Transactional(rollbackFor = Exception.class)
public class PurOrderDetailServiceImpl implements PurOrderDetailService {
public class PurOrderDetailService extends ServiceImpl<PurOrderDetailDao, PurOrderDetailEntity> {
@Resource
PurOrderDetailDao purOrderDetailDao;
@Override
public List<PurOrderDetailResponse> joinQueryList(PurOrderDetailRequest purOrderDetailRequest) {
if (purOrderDetailRequest == null) {
return Collections.emptyList();
@ -35,7 +37,7 @@ public class PurOrderDetailServiceImpl implements PurOrderDetailService {
return data;
}
@Override
public List<PurOrderDetailEntity> findByOrderId(String orderId) {
PurOrderDetailRequest purOrderDetailRequest = new PurOrderDetailRequest();
purOrderDetailRequest.setOrderIdFk(orderId);
@ -43,7 +45,7 @@ public class PurOrderDetailServiceImpl implements PurOrderDetailService {
return data;
}
@Override
public List<PurOrderDetailEntity> queryPageList(PurOrderDetailRequest purOrderDetailRequest) {
if (purOrderDetailRequest == null) {
return Collections.emptyList();
@ -56,43 +58,43 @@ public class PurOrderDetailServiceImpl implements PurOrderDetailService {
return data;
}
@Override
public List<PurOrderDetailEntity> getPurOrderDetailEntityList(PurOrderDetailRequest purOrderDetailRequest) {
return purOrderDetailDao.queryPageList(purOrderDetailRequest);
}
@Override
public Boolean insert(PurOrderDetailEntity purOrderDetailEntity) {
return purOrderDetailDao.insert(purOrderDetailEntity)>0 ? true:false;
return purOrderDetailDao.insert(purOrderDetailEntity) > 0 ? true : false;
}
@Override
public Boolean update(PurOrderDetailEntity purOrderDetailEntity) {
return purOrderDetailDao.update(purOrderDetailEntity);
}
@Override
public Boolean deleteByIds(List<Long> ids) {
return purOrderDetailDao.deleteByIds(ids);
}
@Override
public Boolean deleteByOrderId(String orderIdfK) {
return purOrderDetailDao.deleteByOrderId(orderIdfK);
}
@Override
public boolean insertPurOrderDetailEntity(List<PurOrderDetailEntity> purOrderDetailEntityList) {
return purOrderDetailDao.insertPurOrderDetailEntity(purOrderDetailEntityList);
}
@Override
public BasicProductsEntity selectIoOrderDetailBiz(long id) {
return purOrderDetailDao.selectIoOrderDetailBiz(id);
}
@Override
public List<PurOrderDetailResponse> getDetailList(PurOrderDetailRequest purOrderDetailRequest) {
if (null == purOrderDetailRequest) {
return Collections.emptyList();
@ -103,7 +105,7 @@ public class PurOrderDetailServiceImpl implements PurOrderDetailService {
return purOrderDetailDao.selectDetailList(purOrderDetailRequest);
}
@Override
public List<BasicCorpEntity> selectsupList(PurOrderDetailEntity purOrderDetailEntity) {
return purOrderDetailDao.selectsupList(purOrderDetailEntity);
}

@ -1,12 +1,14 @@
package com.glxp.api.service.purchase.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageHelper;
import com.glxp.api.dao.inv.InvProductRationMapper;
import com.glxp.api.dao.purchase.PurPlanDetailDao;
import com.glxp.api.entity.basic.BasicProductsEntity;
import com.glxp.api.entity.inv.InvProductRationEntity;
import com.glxp.api.entity.purchase.PurPlanDetailEntity;
import com.glxp.api.req.purchase.PurPlanDetailRequest;
import com.glxp.api.res.purchase.PurOrderDetailResponse;
import com.glxp.api.service.purchase.PurPlanDetailService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -16,12 +18,12 @@ import java.util.List;
@Service
@Transactional(rollbackFor = Exception.class)
public class PurPlanDetailServiceImpl implements PurPlanDetailService {
public class PurPlanDetailService extends ServiceImpl<PurPlanDetailDao, PurPlanDetailEntity> {
@Resource
PurPlanDetailDao purPlanDetailDao;
@Override
public List<PurOrderDetailResponse> joinQueryList(PurPlanDetailRequest purApplyRequest) {
if (purApplyRequest == null) {
return Collections.emptyList();
@ -34,7 +36,7 @@ public class PurPlanDetailServiceImpl implements PurPlanDetailService {
return data;
}
@Override
public List<PurPlanDetailEntity> findByOrderId(String orderId) {
PurPlanDetailRequest purPlanDetailRequest = new PurPlanDetailRequest();
purPlanDetailRequest.setOrderIdFk(orderId);
@ -42,7 +44,7 @@ public class PurPlanDetailServiceImpl implements PurPlanDetailService {
return data;
}
@Override
public List<PurPlanDetailEntity> queryPageList(PurPlanDetailRequest purPlanDetailRequest) {
if (purPlanDetailRequest == null) {
return Collections.emptyList();
@ -55,43 +57,43 @@ public class PurPlanDetailServiceImpl implements PurPlanDetailService {
return data;
}
@Override
public List<PurPlanDetailEntity> getPurPlanDetailEntityList(PurPlanDetailRequest purPlanDetailRequest) {
return purPlanDetailDao.queryPageList(purPlanDetailRequest);
}
@Override
public Boolean insert(PurPlanDetailEntity purPlanDetailRequest) {
public int insert(PurPlanDetailEntity purPlanDetailRequest) {
return purPlanDetailDao.insert(purPlanDetailRequest);
}
@Override
public Boolean update(PurPlanDetailEntity purPlanDetailRequest) {
return purPlanDetailDao.update(purPlanDetailRequest);
}
@Override
public Boolean deleteByIds(List<Long> ids) {
return purPlanDetailDao.deleteByIds(ids);
}
@Override
public Boolean deleteByOrderId(String orderIdfK) {
return purPlanDetailDao.deleteByOrderId(orderIdfK);
}
@Override
public boolean insertPurPlanDetailEntity(List<PurPlanDetailEntity> purPlanDetailEntityList) {
return purPlanDetailDao.insertPurPlanDetailEntity(purPlanDetailEntityList);
}
@Override
public BasicProductsEntity selectIoOrderDetailBiz(long id) {
return purPlanDetailDao.selectIoOrderDetailBiz(id);
}
@Override
public List<PurOrderDetailResponse> getDetailList(PurPlanDetailRequest purPlanDetailRequest) {
if (null == purPlanDetailRequest) {
return Collections.emptyList();

@ -1,6 +1,7 @@
package com.glxp.api.service.sync;
import com.glxp.api.service.inout.impl.IoCodeService;
import com.glxp.api.service.purchase.impl.PurOrderDetailService;
import org.springframework.beans.BeanUtils;
import cn.hutool.core.collection.CollUtil;
import com.glxp.api.constant.ConstantStatus;
@ -26,12 +27,10 @@ import com.glxp.api.service.basic.IBasicBusTypePreService;
import com.glxp.api.service.basic.IBasicBussinessTypeService;
import com.glxp.api.service.inout.*;
import com.glxp.api.service.inout.impl.IoOrderInvoiceService;
import com.glxp.api.service.purchase.PurOrderDetailService;
import com.glxp.api.service.purchase.PurOrderService;
import com.glxp.api.service.system.*;
import com.glxp.api.service.thrsys.IThrBusTypeOriginService;
import com.glxp.api.util.MsDateUtil;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;

@ -2,53 +2,65 @@ package com.glxp.api.task;
import javax.annotation.Resource;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.thread.ThreadUtil;
import com.glxp.api.entity.inv.InvProductRationEntity;
import com.glxp.api.service.inv.InvProductRationService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.SchedulingConfigurer;
import org.springframework.scheduling.config.ScheduledTaskRegistrar;
import org.springframework.scheduling.support.CronTrigger;
import org.springframework.stereotype.Component;
import com.glxp.api.dao.schedule.ScheduledDao;
import com.glxp.api.entity.system.ScheduledEntity;
import com.glxp.api.idc.service.IdcService;
import com.glxp.api.req.system.ScheduledRequest;
import org.springframework.stereotype.Component;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
//
//@Component
//@EnableScheduling
public class AsyncUdiTask implements SchedulingConfigurer {
@Component
@EnableScheduling
public class AsyncInvRationTask implements SchedulingConfigurer {
final Logger logger = LoggerFactory.getLogger(AsyncUdiTask.class);
final Logger logger = LoggerFactory.getLogger(AsyncInvRationTask.class);
@Resource
private ScheduledDao scheduledDao;
@Resource
private IdcService idcService;
InvProductRationService invProductRationService;
@Override
public void configureTasks(ScheduledTaskRegistrar scheduledTaskRegistrar) {
scheduledTaskRegistrar.addTriggerTask(() -> process(),
triggerContext -> {
ScheduledRequest scheduledRequest = new ScheduledRequest();
scheduledRequest.setCronName("syncIdcUdi");
logger.info("syncIdcUdi----------------");
scheduledRequest.setCronName("syncInvRation");
ScheduledEntity scheduledEntity = scheduledDao.findScheduled(scheduledRequest);
String cron = scheduledEntity != null ? scheduledEntity.getCron() : "0 0/1 * * * ?";
String cron = scheduledEntity != null ? scheduledEntity.getCron() : "0 0/10 * * * ?";
if (cron.isEmpty()) {
logger.error("cron is null");
}
logger.info("syncIdcUdi----------------");
return new CronTrigger(cron).nextExecutionTime(triggerContext);
});
}
private void process() {
logger.info("syncIdcUdi----process------------");
idcService.asyncUdiTask();
ThreadUtil.execAsync(() -> {
List<InvProductRationEntity> invProductRationEntities = invProductRationService.list();
if (CollUtil.isNotEmpty(invProductRationEntities)) {
Map<String, List<InvProductRationEntity>> stringListMap = invProductRationEntities.stream()
.collect(Collectors.groupingBy(item -> item.getCurInvCode()));
stringListMap.forEach((key, rationEntityList) -> {
invProductRationService.genOrder(rationEntityList);
});
}
});
}
}

@ -12,13 +12,11 @@ import com.glxp.api.res.PageSimpleResponse;
import com.glxp.api.res.inv.InvProductResponse;
import com.glxp.api.service.inv.InvPreProductService;
import com.glxp.api.service.inv.InvPreinProductService;
import com.glxp.api.service.inv.InvProductService;
import com.glxp.api.service.inv.impl.InvProductService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.SchedulingConfigurer;
import org.springframework.scheduling.config.ScheduledTaskRegistrar;
import org.springframework.scheduling.support.CronTrigger;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.List;

@ -0,0 +1,79 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.glxp.api.dao.inv.InvProductRationMapper">
<resultMap id="BaseResultMap" type="com.glxp.api.entity.inv.InvProductRationEntity">
<!--@mbg.generated-->
<!--@Table inv_product_ration-->
<id column="id" jdbcType="INTEGER" property="id"/>
<result column="relId" jdbcType="BIGINT" property="relId"/>
<result column="supId" jdbcType="BIGINT" property="supId"/>
<result column="rationCount" jdbcType="INTEGER" property="rationCount"/>
<result column="invCount" jdbcType="INTEGER" property="invCount"/>
<result column="busType" jdbcType="VARCHAR" property="busType"/>
<result column="scanType" jdbcType="VARCHAR" property="scanType"/>
<result column="curInvCode" jdbcType="VARCHAR" property="curInvCode"/>
<result column="lyInvCode" jdbcType="VARCHAR" property="lyInvCode"/>
<result column="sgInvCode" jdbcType="VARCHAR" property="sgInvCode"/>
<result column="jhInvCode" jdbcType="VARCHAR" property="jhInvCode"/>
<result column="cgInvCode" jdbcType="VARCHAR" property="cgInvCode"/>
<result column="fromInvCode" jdbcType="VARCHAR" property="fromInvCode"/>
<result column="updateTime" jdbcType="TIMESTAMP" property="updateTime"/>
<result column="updateUser" jdbcType="TIMESTAMP" property="updateUser"/>
<result column="createTime" jdbcType="TIMESTAMP" property="createTime"/>
<result column="createUser" jdbcType="VARCHAR" property="createUser"/>
<result column="remark" jdbcType="VARCHAR" property="remark"/>
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
id, relId, rationCount, invCount, busType, scanType, curInvCode, lyInvCode, sgInvCode,
jhInvCode, cgInvCode, fromInvCode, updateTime, updateUser, createTime, `createUser`,
remark
</sql>
<select id="filterList" resultType="com.glxp.api.res.inv.InvProductRationResponse"
parameterType="com.glxp.api.req.inv.InvProductRationRequest">
select ip.*,
bp.cpmctymc,
bp.measname,
bp.ggxh,
bp.ylqxzcrbarmc,
bp.zczbhhzbapzbh,
bp.nameCode,
basic_corp.name supName,
auth_warehouse.name invName
from inv_product_ration ip
inner join basic_udirel on ip.relId = basic_udirel.id
inner join basic_products bp on basic_udirel.uuid = bp.uuid
left join basic_corp on ip.supId = basic_corp.erpId
left join auth_warehouse on auth_warehouse.code = ip.curInvCode
<where>
bp.diType = 1
<if test="cpmctymc != null and cpmctymc != ''">
AND bp.cpmctymc like concat('%', #{cpmctymc}, '%')
</if>
<if test="nameCode != null and nameCode != ''">
AND bp.nameCode like concat('%', #{nameCode}, '%')
</if>
<if test="relId != null and relId != ''">
AND ip.relId = #{relId}
</if>
<if test="ggxh != null and ggxh != ''">
AND bp.ggxh like concat('%', #{ggxh}, '%')
</if>
<if test="ylqxzcrbarmc != null and ylqxzcrbarmc != ''">
AND bp.ylqxzcrbarmc like concat('%', #{ylqxzcrbarmc}, '%')
</if>
<if test="zczbhhzbapzbh != null and zczbhhzbapzbh != ''">
AND bp.zczbhhzbapzbh like concat('%', #{zczbhhzbapzbh}, '%')
</if>
<if test="supId != null and supId != ''">
AND ip.supId = #{supId}
</if>
<if test="curInvCode != null and curInvCode != ''">
AND ip.curInvCode = #{curInvCode}
</if>
</where>
order by ip.updateTime desc
</select>
</mapper>

@ -493,4 +493,20 @@
having reCount > 0
order by ip.updateTime desc
</select>
<select id="selectExitCount" resultType="java.lang.Integer">
select sum(reCount)
from inv_product
<where>
<if test="relIdFk != null">
AND relIdFk = #{relIdFk}
</if>
<if test="supId != null">
AND supId = #{supId}
</if>
<if test="invCode != null and invCode != ''">
AND invCode = #{invCode}
</if>
</where>
</select>
</mapper>

Loading…
Cancel
Save