Merge remote-tracking branch 'origin/master'

master
郑明梁 2 years ago
commit fae35d058a

@ -8,6 +8,7 @@ import com.glxp.api.controller.BaseController;
import com.glxp.api.entity.auth.*;
import com.glxp.api.req.auth.AuthUserSaveRequest;
import com.glxp.api.req.auth.FilterInvLinkDataRequest;
import com.glxp.api.req.auth.FilterInvWarehouseRequest;
import com.glxp.api.req.auth.FilterNoSelectUserRequest;
import com.glxp.api.res.PageSimpleResponse;
import com.glxp.api.common.enums.ResultEnum;
@ -32,7 +33,8 @@ public class AuthUserController extends BaseController {
private AuthAdminService authAdminService;
@Resource
private WarehouseUserService warehouseUserService;
@Resource
DeptService deptService;
@AuthRuleAnnotation("admin/auth/admin/updateInv")
@PostMapping("/admin/auth/admin/updateInv")
@ -102,7 +104,11 @@ public class AuthUserController extends BaseController {
FilterNoSelectUserRequest filterNoSelectUserRequest = new FilterNoSelectUserRequest();
BeanUtils.copyProperties(filterInvLinkDataRequest, filterNoSelectUserRequest);
filterNoSelectUserRequest.setUserIds(userIds);
filterNoSelectUserRequest.setLocDeptCode(filterInvLinkDataRequest.getParentId());
//查询部门id
FilterInvWarehouseRequest filterInvWarehouseRequest = new FilterInvWarehouseRequest();
filterInvWarehouseRequest.setCode(filterInvLinkDataRequest.getParentId());
List<DeptEntity> deptEntities = deptService.filterGroupInvWarehouse(filterInvWarehouseRequest);
filterNoSelectUserRequest.setDeptId(deptEntities.get(0).getId());
List<AuthAdmin> hospitalUserList = authAdminService.selectNotSelectUser(filterNoSelectUserRequest);
PageInfo<AuthAdmin> authAdminPageInfo = new PageInfo<>(hospitalUserList);
PageSimpleResponse<AuthAdmin> authAdminPageSimpleResponse = new PageSimpleResponse<>();

@ -20,12 +20,10 @@ import com.glxp.api.req.thrsys.FilterBasicThirdSysRequest;
import com.glxp.api.res.PageSimpleResponse;
import com.glxp.api.res.auth.InvSubWarehouseResponse;
import com.glxp.api.res.auth.InvWarehouseThirdSysResponse;
import com.glxp.api.res.auth.WarehouseUserResponse;
import com.glxp.api.res.basic.BasicBussinessTypeResponse;
import com.glxp.api.service.auth.*;
import com.glxp.api.service.basic.IBasicBussinessTypeService;
import com.glxp.api.service.system.SystemParamConfigService;
import org.springframework.beans.BeanUtils;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
@ -299,6 +297,8 @@ public class InvWarehouseController extends BaseController {
if (!warehouseBussinessTypeEntities.isEmpty()) {
return ResultVOUtils.error(500, "请先移除该仓库关联用户和单据类型!");
}
//
// //判断此分库中是否还有库存
// InvWarehouseEntity invSubWarehouse = invWarehouseService.findById(deleteRequest.getId());

@ -62,6 +62,10 @@ public class BasicBusTypeChangeController {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
boolean result = basicBusTypeChangeService.verifyExists(basicBusTypeChangeEntity);
if (result) {
return ResultVOUtils.error(ResultEnum.DATA_REPEAT, "重复添加");
}
basicBusTypeChangeEntity.setUpdateTime(new Date());
basicBusTypeChangeService.insert(basicBusTypeChangeEntity);
return ResultVOUtils.success("更新成功");
@ -79,6 +83,10 @@ public class BasicBusTypeChangeController {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
boolean result = basicBusTypeChangeService.verifyExists(basicBusTypeChangeEntity);
if (result) {
return ResultVOUtils.error(ResultEnum.DATA_REPEAT, "重复添加");
}
basicBusTypeChangeEntity.setUpdateTime(new Date());
basicBusTypeChangeService.updateBasicBusTypeChange(basicBusTypeChangeEntity);
return ResultVOUtils.success("更新成功");

@ -162,6 +162,12 @@ public class BasicBusTypePreController {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
if (basicBusTypePreEntity != null) {
//判断是否重复添加
boolean result = basicBusTypePreService.verifyExists(basicBusTypePreEntity);
if (result) {
return ResultVOUtils.error(ResultEnum.DATA_REPEAT, "重复添加!");
}
basicBusTypePreService.updateBusChangeType(basicBusTypePreEntity);
} else {
ResultVOUtils.error(999, "参数错误");
@ -182,6 +188,12 @@ public class BasicBusTypePreController {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
if (basicBusTypePreEntity != null) {
//判断是否重复添加
boolean result = basicBusTypePreService.verifyExists(basicBusTypePreEntity);
if (result) {
return ResultVOUtils.error(ResultEnum.DATA_REPEAT, "重复添加!");
}
if (StrUtil.isNotBlank(basicBusTypePreEntity.getDefaultInvCode())) {
InvWarehouseEntity invWarehouse = invWarehouseService.findByInvSubByCode(basicBusTypePreEntity.getDefaultInvCode());
basicBusTypePreEntity.setDefaultDeptCode(invWarehouse.getParentId());

@ -108,6 +108,11 @@ public class BasicCorpController {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
boolean result = basicUnitMaintainService.verifyExists(basicUnitMaintainSaveRequest);
if (result) {
return ResultVOUtils.error(ResultEnum.DATA_REPEAT, "重复添加");
}
BasicCorpEntity basicUnitMaintainEntity = new BasicCorpEntity();
BeanUtils.copyProperties(basicUnitMaintainSaveRequest, basicUnitMaintainEntity);
basicUnitMaintainEntity.setErpId(CustomUtil.getId());
@ -127,6 +132,12 @@ public class BasicCorpController {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
boolean result = basicUnitMaintainService.verifyExists(basicUnitMaintainSaveRequest);
if (result) {
return ResultVOUtils.error(ResultEnum.DATA_REPEAT, "重复添加");
}
basicUnitMaintainService.updateById(basicUnitMaintainSaveRequest);
return ResultVOUtils.success("修改成功");
}

@ -8,10 +8,7 @@ import com.glxp.api.common.enums.ResultEnum;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.constant.ConstantStatus;
import com.glxp.api.entity.basic.FilterSysEntity;
import com.glxp.api.entity.basic.UdiEntity;
import com.glxp.api.entity.basic.UdiProductEntity;
import com.glxp.api.entity.basic.UdiRelevanceEntity;
import com.glxp.api.entity.basic.*;
import com.glxp.api.entity.system.SystemParamConfigEntity;
import com.glxp.api.entity.thrsys.ThrProductsEntity;
import com.glxp.api.entity.thrsys.ThrSystemEntity;
@ -25,10 +22,7 @@ import com.glxp.api.res.PageSimpleResponse;
import com.glxp.api.res.basic.BasicProductThirdSysResponse;
import com.glxp.api.res.basic.UdiRelevanceResponse;
import com.glxp.api.service.auth.CustomerService;
import com.glxp.api.service.basic.BasicBackUpdateProductService;
import com.glxp.api.service.basic.BasicUpdateProductService;
import com.glxp.api.service.basic.UdiProductService;
import com.glxp.api.service.basic.UdiRelevanceService;
import com.glxp.api.service.basic.*;
import com.glxp.api.service.system.SystemParamConfigService;
import com.glxp.api.service.thrsys.ThrDataService;
import com.glxp.api.service.thrsys.ThrSystemService;
@ -64,6 +58,9 @@ public class UdiRelevanceController {
private ThrSystemService thrSystemService;
@Resource
ThrDataService thrDataService;
@Resource
UdiRlSupService udiRlSupService;
@AuthRuleAnnotation("")
@GetMapping("/udi/udirel/download")
@ -93,7 +90,7 @@ public class UdiRelevanceController {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
List<UdiRelevanceResponse> udiRelevanceResponses = null;
udiRelevanceResponses = udiRelevanceService.selectAllByNameCode(filterUdiRelRequest.getNameCode(), filterUdiRelRequest.getUnitFk());
udiRelevanceResponses = udiRelevanceService.filterUdiJoinSup(filterUdiRelRequest);
PageInfo<UdiRelevanceResponse> pageInfo;
pageInfo = new PageInfo<>(udiRelevanceResponses);
PageSimpleResponse<UdiRelevanceResponse> pageSimpleResponse = new PageSimpleResponse<>();
@ -156,19 +153,17 @@ public class UdiRelevanceController {
}
udiRelevanceResponses = udiRelevanceService.filterUdiGp(filterUdiRelRequest);
//todo 供应商器械信息还未完成
// if (udiRelevanceResponses != null && udiRelevanceResponses.size() > 0) {
// for (UdiRelevanceResponse udiRelevanceResponse : udiRelevanceResponses) {
// CompanyProductRelevanceEntity companyProductRelevanceEntity =
// companyProductRelevanceService.findCompanyProductRelevanceByUdiRlIdFk(udiRelevanceResponse.getId() + "", filterUdiInfoRequest.getCustomerId());
// if (companyProductRelevanceEntity != null) {
// udiRelevanceResponse.setIsSelect(true);
// } else {
// udiRelevanceResponse.setIsSelect(false);
// }
// }
// }
if (udiRelevanceResponses != null && udiRelevanceResponses.size() > 0) {
for (UdiRelevanceResponse udiRelevanceResponse : udiRelevanceResponses) {
UdiRlSupEntity companyProductRelevanceEntity =
udiRlSupService.findCompanyProductRelevanceByUdiRlIdFk(udiRelevanceResponse.getId() + "", filterUdiRelRequest.getCustomerId());
if (companyProductRelevanceEntity != null) {
udiRelevanceResponse.setIsSelect(true);
} else {
udiRelevanceResponse.setIsSelect(false);
}
}
}
PageInfo<UdiRelevanceResponse> pageInfo;
pageInfo = new PageInfo<>(udiRelevanceResponses);

@ -1,5 +1,6 @@
package com.glxp.api.controller.basic;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.github.pagehelper.PageInfo;
import com.glxp.api.annotation.AuthRuleAnnotation;
@ -102,7 +103,17 @@ public class UdiRlSupController {
if (!companyProductRelevanceEntities.isEmpty()) {
List<String> erpIds = new ArrayList<>();
for (UdiRlSupEntity udiRlSupEntity : companyProductRelevanceEntities) {
erpIds.add(udiRlSupEntity.getUnitFk());
//过滤,如果默认已经有供应商了,则查出对应供应商即可
if (StrUtil.isNotEmpty(filterCompanyProductRelevanceRequest.getUnitFk())) {
if (udiRlSupEntity.getUnitFk().equals(filterCompanyProductRelevanceRequest.getUnitFk())) {
erpIds.add(udiRlSupEntity.getUnitFk());
}
} else {
erpIds.add(udiRlSupEntity.getUnitFk());
}
}
if (CollUtil.isEmpty(erpIds)) {
return ResultVOUtils.error(500, "该产品未关联供应商");
}
List<BasicCorpEntity> basicUnitMaintainEntities = basicUnitMaintainService.batchSelectByErpIdsAndName(erpIds, filterCompanyProductRelevanceRequest.getKey());
return ResultVOUtils.success(basicUnitMaintainEntities);

@ -16,6 +16,8 @@ import com.glxp.api.entity.basic.BasicCorpEntity;
import com.glxp.api.entity.basic.UdiEntity;
import com.glxp.api.entity.basic.UdiProductEntity;
import com.glxp.api.entity.inout.*;
import com.glxp.api.entity.inv.InvPreinDetailEntity;
import com.glxp.api.entity.inv.InvProductDetailEntity;
import com.glxp.api.entity.system.SystemParamConfigEntity;
import com.glxp.api.http.SpsDirectClient;
import com.glxp.api.req.basic.CompanyProductRelevanceRequest;
@ -30,6 +32,8 @@ import com.glxp.api.res.inout.AddCodeResult;
import com.glxp.api.service.auth.InvWarehouseService;
import com.glxp.api.service.basic.*;
import com.glxp.api.service.inout.*;
import com.glxp.api.service.inv.InvPreinDetailService;
import com.glxp.api.service.inv.InvProductDetailService;
import com.glxp.api.service.system.SystemParamConfigService;
import com.glxp.api.util.CustomUtil;
import com.glxp.api.util.DateUtil;
@ -80,6 +84,10 @@ public class IoCodeTempController extends BaseController {
InvWarehouseService invWarehouseService;
@Resource
IoCheckInoutService ioCheckInoutService;
@Resource
InvPreinDetailService invPreinDetailService;
@Resource
InvProductDetailService invProductDetailService;
//手持端扫码单据上传调用接口
@AuthRuleAnnotation("")
@ -414,70 +422,43 @@ public class IoCodeTempController extends BaseController {
}
}
//校验预验收是否已存在 todo
//校验预验收是否已存在
if (bussinessTypeEntity.isPreIn()) {
if (StrUtil.isNotEmpty(udiEntity.getSerialNo())) {
// List<InvProductDetailEntity> invProductDetailEntities = invPreInProductDetailService.findByOriginCode(code);
// if (CollUtil.isNotEmpty(invProductDetailEntities)) {
// return ResultVOUtils.error(500, "条码已存在!");
// }
List<InvPreinDetailEntity> invProductDetailEntities = invPreinDetailService.findByCode(code);
if (CollUtil.isNotEmpty(invProductDetailEntities)) {
return ResultVOUtils.error(500, "预验收库存已存在此UDI码,请检查后重试!");
}
}
}
//校验预验收库存是否已存在
if (addOrderRequest.isPreCheck()) {
// InvProductDetailEntity invProductDetailEntity = invPreInProductDetailService.statInvPreInDetail(code);
// if (invProductDetailEntity == null) {
// return ResultVOUtils.error(500, "预验收库存未存在此产品!");
// } else {
//
//
// if (StrUtil.isNotEmpty(invProductDetailEntity.getBatchNo()) && StrUtil.isNotEmpty(addOrderRequest.getBatchNo())
// && !invProductDetailEntity.getBatchNo().equals(addOrderRequest.getBatchNo())) {
// return ResultVOUtils.error(500, "当前批次号与预验收录入批次号不匹配!");
//
// }
//
//
// if (StrUtil.isNotEmpty(orderId)) {//非首次添加
// if (StrUtil.isEmpty(udiEntity.getSerialNo())) {//该单据已有该产品
// WarehouseQueryRequest warehouseQueryRequest = new WarehouseQueryRequest();
// warehouseQueryRequest.setOrderId(orderId);
// warehouseQueryRequest.setCode(code);
// List<WarehouseEntity> codeEnttitys = codesTempService.findByOrderIdAndCode(warehouseQueryRequest);
// if (CollUtil.isNotEmpty(codeEnttitys)) {
// WarehouseEntity codeEnttity = codeEnttitys.get(0);
// if (invProductDetailEntity.getCount() < (codeEnttity.getCount() + 1)) {
// return ResultVOUtils.error(500, "超出预验收库存数量");
// }
// }
// } else {
// if (invProductDetailEntity.getCount() < 1) {
// return ResultVOUtils.error(500, "超出预验收库存数量");
// }
// }
// }
// }
} else //校验库存是否存在
if (addOrderRequest.isVailInv()) {
// if (bussinessTypeEntity.isAdvanceType()) {
// int count = invPreProductDetailService.vailStockCount(code);
// if (count < 0) {
// return ResultVOUtils.error(500, "当前库存不足不允许0库存出库");
// }
// } else {
// int count = invProductDetailService.vailStockCount(code, addOrderRequest.getLocStorageCode(), addOrderRequest.getInvWarehouseCode(), null);
// if (count <= 0) {
// return ResultVOUtils.error(500, "当前库存不足不允许0库存出库");
// } else if (StrUtil.isNotBlank(addOrderRequest.getOrderId())) {
// //查询此单据已扫描的条码数量
// WarehouseEntity warehouse = codesTempService.findByUnique(addOrderRequest.getOrderId(), addOrderRequest.getCode());
// if (null != warehouse && warehouse.getCount() >= count) {
// return ResultVOUtils.error(500, "当前库存不足不允许0库存出库");
// }
// }
// }
InvPreinDetailEntity invProductDetailEntity = invPreinDetailService.findOneByCode(code);
if (invProductDetailEntity == null) {
return ResultVOUtils.error(500, "预验收库存未存在此产品!");
} else {
if (StrUtil.isNotEmpty(invProductDetailEntity.getBatchNo()) && StrUtil.isNotEmpty(addOrderRequest.getBatchNo())
&& !invProductDetailEntity.getBatchNo().equals(addOrderRequest.getBatchNo())) {
return ResultVOUtils.error(500, "当前批次号与预验收录入批次号不匹配!");
}
if (StrUtil.isNotEmpty(orderId)) {//非首次添加
if (StrUtil.isEmpty(udiEntity.getSerialNo())) {//该单据已有该产品
IoCodeTempEntity codeTempEntity = codeTempService.findByUnique(orderId, code);
if (codeTempEntity != null) {
if (invProductDetailEntity.getCount() < (codeTempEntity.getCount() + 1)) {
return ResultVOUtils.error(500, "超出预验收库存数量");
}
}
} else {
if (invProductDetailEntity.getCount() < 1) {
return ResultVOUtils.error(500, "超出预验收库存数量");
}
}
}
}
}
if (addOrderRequest.getFromCorp() == null) {
@ -515,6 +496,12 @@ public class IoCodeTempController extends BaseController {
exitLocalEntity.setCount(exitLocalEntity.getCount() + 1);
exitLocalEntity.setReCount(exitLocalEntity.getCount() * udiCalCountUtil.getActCount(udiRelevanceResponses.get(0)));
BaseResponse invRes = checkInv(bussinessTypeEntity, exitLocalEntity);
if (invRes != null) {
return invRes;
}
if (StringUtils.isBlank(exitLocalEntity.getSerialNo())) {
if (bussinessTypeEntity.isCheckEnable() && bussinessTypeEntity.isCheckWebNew()) {
String errMsg = ioCheckInoutService.checkCode(exitLocalEntity);
@ -602,7 +589,13 @@ public class IoCodeTempController extends BaseController {
BaseResponse baseResponse = checkRelId(codeEnttity, unitFk);
if (bussinessTypeEntity.isCheckEnable() && bussinessTypeEntity.isCheckWebNew()){
BaseResponse invRes = checkInv(bussinessTypeEntity, exitLocalEntity);
if (invRes != null) {
return invRes;
}
if (bussinessTypeEntity.isCheckEnable() && bussinessTypeEntity.isCheckWebNew()) {
String errMsg = ioCheckInoutService.checkCode(codeEnttity);
if (errMsg != null) {
return ResultVOUtils.error(500, errMsg);
@ -659,15 +652,20 @@ public class IoCodeTempController extends BaseController {
//校验供应商是否配送此产品
public BaseResponse checkCorp(IoCodeTempEntity codeEnttity, BasicBussinessTypeEntity bussinessTypeEntity, String unitFk) {
CompanyProductRelevanceRequest companyProductRelevanceRequest = new CompanyProductRelevanceRequest();
UdiEntity udiEntity = FilterUdiUtils.getUdi(codeEnttity.getCode());
companyProductRelevanceRequest.setNameCode(udiEntity.getUdi());
if (bussinessTypeEntity.getCorpType() == ConstantStatus.CORP_TYPE_OUT) {
CompanyProductRelevanceRequest companyProductRelevanceRequest = new CompanyProductRelevanceRequest();
companyProductRelevanceRequest.setUnitFk(unitFk);
UdiEntity udiEntity = FilterUdiUtils.getUdi(codeEnttity.getCode());
companyProductRelevanceRequest.setNameCode(udiEntity.getUdi());
List<UdiRlSupResponse> datas = udiRlSupService.filterUdiGp(companyProductRelevanceRequest);
if (datas.size() <= 0) {
return ResultVOUtils.error(500, "当前供应商不存在此配送产品!");
}
} else {
List<UdiRlSupResponse> datas = udiRlSupService.filterUdiGp(companyProductRelevanceRequest);
if (datas.size() <= 0) {
return ResultVOUtils.error(500, "此产品无指定供应商,请检查后添加!");
}
}
return null;
}
@ -762,6 +760,29 @@ public class IoCodeTempController extends BaseController {
return null;
}
public BaseResponse checkInv(BasicBussinessTypeEntity bussinessTypeEntity, IoCodeTempEntity codeTempEntity) {
if (bussinessTypeEntity.isVailInv()) {
if (bussinessTypeEntity.isAdvanceType()) {
// int count = invPreProductDetailService.vailStockCount(code); //todo 寄售
// if (count < 0) {
// return ResultVOUtils.error(500, "当前库存不足不允许0库存出库");
// }
} else {
int count = invProductDetailService.vailStockCount(codeTempEntity.getRelId(), codeTempEntity.getDeptCode(), codeTempEntity.getInvCode(), null);
if (count <= 0) {
return ResultVOUtils.error(500, "当前库存不足不允许0库存出库");
} else {
//查询此单据已扫描的条码数量
if (codeTempEntity.getReCount() >= count) {
return ResultVOUtils.error(500, "当前库存不足不允许0库存出库");
}
}
}
}
return null;
}
@AuthRuleAnnotation("")
@GetMapping("admin/warehouse/inout/findErrorByOrderId")
@ -776,7 +797,36 @@ public class IoCodeTempController extends BaseController {
return ResultVOUtils.success(pageSimpleResponse);
}
@AuthRuleAnnotation("")
@PostMapping("/udiwms/addCode/updateBindSup")
public BaseResponse updateBindSup(@RequestBody IoCodeTempEntity codeTempEntity, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
if (StrUtil.isNotEmpty(codeTempEntity.getSupId())) {
codeTempEntity.setSupId(codeTempEntity.getSupId());
codeTempService.updateById(codeTempEntity);
} else if (codeTempEntity.getRelId() != null) {
codeTempEntity = codeTempService.selectById(codeTempEntity.getId());
int reCount = udiCalCountUtil.getActCount(codeTempEntity);
codeTempEntity.setReCount(reCount);
codeTempService.updateById(codeTempEntity);
BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(codeTempEntity.getAction());
BaseResponse baseResponse = checkSupId(bussinessTypeEntity, codeTempEntity, codeTempEntity.getSupId());
if (baseResponse != null)
return baseResponse;
}
codeTempEntity = codeTempService.selectById(codeTempEntity.getId());
IoOrderEntity orderEntity = orderService.findByBillNo(codeTempEntity.getOrderId());
ioAddInoutService.genOrderDetailCode(orderEntity, codeTempEntity);
return ResultVOUtils.success("绑定成功");
}
@Resource
IoAddInoutService ioAddInoutService;
@Resource
IoOrderDetailCodeService ioOrderDetailCodeService;
@ -815,4 +865,38 @@ public class IoCodeTempController extends BaseController {
}
@AuthRuleAnnotation("")
@PostMapping("warehouse/inout/saveTempCode")
public BaseResponse saveCode(@RequestBody IoCodeTempEntity codeTempEntity) {
if (StrUtil.isNotEmpty(codeTempEntity.getSerialNo()) && codeTempEntity.getSerialNo().length() > 20) {
return ResultVOUtils.error(500, "无效条码!序列号超出最大范围");
}
if (StrUtil.isNotEmpty(codeTempEntity.getBatchNo()) && codeTempEntity.getBatchNo().length() > 20) {
return ResultVOUtils.error(500, "无效条码!批次号超出最大范围");
}
if (StrUtil.isBlank(codeTempEntity.getSerialNo()) && StrUtil.isBlank(codeTempEntity.getBatchNo())) {
return ResultVOUtils.error(500, "批次号不能为空!");
}
if (StrUtil.isNotEmpty(codeTempEntity.getSerialNo())) {
List<IoCodeTempEntity> codeTempEntityList = codeTempService.findByOrderId(codeTempEntity.getOrderId());
for (IoCodeTempEntity object : codeTempEntityList) {
if (object.getId() != codeTempEntity.getId() && object.getCode().equals(codeTempEntity.getCode()) && StrUtil.nullToEmpty(object.getCode()).equals(codeTempEntity.getSerialNo())) {
return ResultVOUtils.error(500, "条码重复!");
}
}
}
if (codeTempEntity.getCount() != null && codeTempEntity.getCount() <= 0) {
return ResultVOUtils.error(500, "数量不能小于0");
}
int b = codeTempService.updateById(codeTempEntity);
if (b > 0)
return ResultVOUtils.success("修改成功");
else return ResultVOUtils.error(500, "修改失败!");
}
}

@ -1,5 +1,6 @@
package com.glxp.api.controller.inout;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.github.pagehelper.PageInfo;
import com.glxp.api.annotation.AuthRuleAnnotation;
@ -98,20 +99,35 @@ public class IoOrderController {
}
@Resource
IoAddInoutService ioAddInoutService;
//单据提交
@AuthRuleAnnotation("")
@GetMapping("warehouse/inout/submitOrderWeb")
public BaseResponse submitOrderWeb(AddOrderRequest addOrderRequest) {
@PostMapping("warehouse/inout/submitOrderWeb")
public BaseResponse submitOrderWeb(@RequestBody AddOrderRequest addOrderRequest) {
//校验单据是否已完成
List<IoOrderDetailBizEntity> orderDetailBizEntities = orderDetailBizService.findByOrderId(addOrderRequest.getBillNo());
List<IoOrderDetailCodeEntity> orderDetailCodeEntities = orderDetailCodeService.findByOrderId(addOrderRequest.getBillNo());
String errMsg = checkInoutService.bizOrderCheck(orderDetailBizEntities, orderDetailCodeEntities);
if (StrUtil.isNotEmpty(errMsg)) {
return ResultVOUtils.error(500, "单据未校验完成,请检查后重新提交");
if (CollUtil.isEmpty(orderDetailCodeEntities)) {
return ResultVOUtils.error(500, "单据还未扫码");
}
saveOrderWeb(addOrderRequest);
checkInoutService.check(addOrderRequest.getBillNo());
if (CollUtil.isNotEmpty(orderDetailBizEntities)) {
String errMsg = checkInoutService.bizOrderCheck(orderDetailBizEntities, orderDetailCodeEntities);
if (StrUtil.isNotEmpty(errMsg)) {
return ResultVOUtils.error(500, "单据未校验完成,请检查后重新提交!");
}
saveOrderWeb(addOrderRequest);
checkInoutService.check(addOrderRequest.getBillNo());
} else {
IoOrderEntity orderEntity = orderService.findByBillNo(addOrderRequest.getBillNo());
ioAddInoutService.dealProcess(orderEntity);
}
return ResultVOUtils.success("提交成功!");
}

@ -125,7 +125,7 @@ public class IoOrderDetailBizController extends BaseController {
@AuthRuleAnnotation("")
@PostMapping("/udiwms/inout/order/updateBizProduct")
public BaseResponse updateBizProduct(@RequestBody IoOrderDetailBizEntity orderDetailBizEntity) {
boolean isExit = orderDetailBizService.isExit(orderDetailBizEntity.getBindRlFk(), orderDetailBizEntity.getBatchNo(), orderDetailBizEntity.getId());
boolean isExit = orderDetailBizService.isExit(orderDetailBizEntity.getBindRlFk(), orderDetailBizEntity.getBatchNo(), orderDetailBizEntity.getId(), orderDetailBizEntity.getOrderIdFk());
if (isExit) {
return ResultVOUtils.error(500, "存在相同产品,相同批次号,请检查后保存!");
}

@ -84,6 +84,18 @@ public class IoOrderReviewController extends BaseController {
}
@AuthRuleAnnotation("")
@PostMapping("/udiwms/stock/order/acceptClear")
public BaseResponse acceptClear(@RequestBody AcceptOrderResponse acceptOrderEntity) {
String billNo = acceptOrderEntity.getBillNo();
redisUtil.del(ConstantStatus.REDIS_BILLNO + billNo);
redisUtil.del(ConstantStatus.REDIS_BILLNO_CODES + billNo);
List<IoOrderDetailBizEntity> stockOrderDetailEntities = orderDetailBizService.findByOrderId(billNo);
acceptOrderEntity.setOrderDetailEntities(stockOrderDetailEntities);
return ResultVOUtils.success(acceptOrderEntity);
}
public BaseResponse updateReview(IoOrderEntity orderEntity) {
AuthAdmin authAdmin = getUser();
orderEntity.setStatus(ConstantStatus.ORDER_STATUS_AUDITED);

@ -0,0 +1,71 @@
package com.glxp.api.controller.inv;
import cn.hutool.core.util.StrUtil;
import com.github.pagehelper.PageInfo;
import com.glxp.api.common.enums.ResultEnum;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.req.inv.FilterInvPlaceRequest;
import com.glxp.api.res.inv.BindInvSpaceRequest;
import com.glxp.api.res.inv.InvPlaceDetailResponse;
import com.glxp.api.service.inv.InvPlaceService;
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.Valid;
import java.util.List;
/**
*
*/
@RestController
public class InvPlaceController {
@Resource
private InvPlaceService invPlaceService;
/**
*
*
* @return
*/
@GetMapping("/spms/inv/product/getPlaceDetailList")
public BaseResponse getPlaceDetailList(FilterInvPlaceRequest filterInvPlaceRequest) {
List<InvPlaceDetailResponse> list = invPlaceService.getPlaceDetailList(filterInvPlaceRequest);
PageInfo<InvPlaceDetailResponse> pageInfo = new PageInfo<>(list);
return ResultVOUtils.page(pageInfo);
}
/**
*
*
* @param bindInvSpaceRequest
* @return
*/
@PostMapping("/spms/inv/product/bindInvSpace")
public BaseResponse bindInvSpace(@RequestBody @Valid BindInvSpaceRequest bindInvSpaceRequest) {
if (null == bindInvSpaceRequest) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL);
}
invPlaceService.bindInvSpace(bindInvSpaceRequest);
return ResultVOUtils.success("绑定成功");
}
/**
*
*
* @param bindInvSpaceRequest
* @return
*/
@PostMapping("/spms/inv/product/checkCodeSpace")
public BaseResponse checkCodeSpace(@RequestBody BindInvSpaceRequest bindInvSpaceRequest) {
if (null == bindInvSpaceRequest || StrUtil.isBlank(bindInvSpaceRequest.getInvCode()) || StrUtil.isBlank(bindInvSpaceRequest.getInvSpaceCode()) || StrUtil.isBlank(bindInvSpaceRequest.getCode())) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL);
}
return invPlaceService.checkCodeSpace(bindInvSpaceRequest);
}
}

@ -0,0 +1,146 @@
package com.glxp.api.controller.inv;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.github.pagehelper.PageInfo;
import com.glxp.api.common.enums.ResultEnum;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.entity.inv.InvPreProductDetailEntity;
import com.glxp.api.entity.inv.InvPreProductEntity;
import com.glxp.api.req.inv.FilterInvPreProductDetailRequest;
import com.glxp.api.req.inv.FilterInvPreProductRequest;
import com.glxp.api.req.inv.FilterInvProductDetailRequest;
import com.glxp.api.req.system.DeleteRequest;
import com.glxp.api.res.PageSimpleResponse;
import com.glxp.api.res.inv.InvPreProductDetailResponse;
import com.glxp.api.res.inv.InvPreProductPageResponse;
import com.glxp.api.res.inv.InvPreProductResponse;
import com.glxp.api.service.auth.CustomerService;
import com.glxp.api.service.auth.WarehouseUserService;
import com.glxp.api.service.inv.InvPreProductDetailService;
import com.glxp.api.service.inv.InvPreProductService;
import com.glxp.api.util.udi.FilterUdiUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.BindingResult;
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 java.util.ArrayList;
import java.util.List;
/**
*
*/
@Slf4j
@RestController
public class InvPreProductController {
@Resource
private InvPreProductService invPreProductService;
@Resource
private InvPreProductDetailService invPreProductDetailService;
@Resource
private WarehouseUserService warehouseUserService;
@Resource
private CustomerService customerService;
/**
*
*
* @param filterInvPreProductRequest
* @return
*/
@GetMapping("/spms/inv/pre/product/filter")
public BaseResponse filterList(FilterInvPreProductRequest filterInvPreProductRequest) {
boolean showSup = false; //前端控制表格显示字段
if (StrUtil.isNotBlank(filterInvPreProductRequest.getUdiCode())) {
filterInvPreProductRequest.setNameCode(FilterUdiUtils.getDiStr(filterInvPreProductRequest.getUdiCode()));
}
if (StrUtil.isBlank(filterInvPreProductRequest.getInvCode())) {
List<String> invCodes = warehouseUserService.selectCodeByUser(customerService.getUserIdStr());
if (CollUtil.isNotEmpty(invCodes)) {
filterInvPreProductRequest.setInvCodes(invCodes);
}
}
List<InvPreProductResponse> list = invPreProductService.filterList(filterInvPreProductRequest);
PageInfo<InvPreProductResponse> pageInfo = new PageInfo<>(list);
InvPreProductPageResponse<InvPreProductResponse> pageResponse = new InvPreProductPageResponse<>();
pageResponse.setList(pageInfo.getList());
pageResponse.setTotal(pageInfo.getTotal());
pageResponse.setShowSup(showSup);
return ResultVOUtils.success(pageResponse);
}
/**
*
*
* @param detailRequest
* @return
*/
@GetMapping("/spms/inv/pre/product/filterDetail")
public BaseResponse filterInvPreProductDetail(FilterInvPreProductDetailRequest detailRequest) {
if (StrUtil.isBlank(detailRequest.getBatchNo())) {
detailRequest.setBatchNo("empty");
}
List<InvPreProductDetailEntity> invPreProductDetailEntities = invPreProductDetailService.filterPreProductDetailList(detailRequest);
PageInfo<InvPreProductDetailEntity> pageInfo = new PageInfo<>(invPreProductDetailEntities);
List<InvPreProductDetailResponse> list = new ArrayList<>();
if (CollUtil.isNotEmpty(invPreProductDetailEntities)) {
invPreProductDetailEntities.forEach(invPreProductDetailEntity -> {
InvPreProductDetailResponse response = new InvPreProductDetailResponse();
BeanUtil.copyProperties(invPreProductDetailEntity, response);
//设置单据类型名称等单据相关参数
invPreProductDetailService.setOrderInfo(response);
list.add(response);
});
}
PageSimpleResponse<InvPreProductDetailResponse> pageSimpleResponse = new PageSimpleResponse<>();
pageSimpleResponse.setList(list);
pageSimpleResponse.setTotal(pageInfo.getTotal());
return ResultVOUtils.success(pageSimpleResponse);
}
/**
*
*
* @param deleteRequest
* @param bindingResult
* @return
*/
@PostMapping("/spms/inv/pre/product/delete")
public BaseResponse deleteInvPreProduct(@RequestBody DeleteRequest deleteRequest, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
String id = deleteRequest.getId();
InvPreProductEntity invPreProductEntity = invPreProductService.findById(id);
if (null != invPreProductEntity) {
FilterInvProductDetailRequest detailRequest = new FilterInvProductDetailRequest();
detailRequest.setSupId(invPreProductEntity.getSupId());
detailRequest.setRelId(String.valueOf(invPreProductEntity.getRelIdFk()));
detailRequest.setInvCode(invPreProductEntity.getInvCode());
if (StrUtil.isBlank(invPreProductEntity.getBatchNo())) {
detailRequest.setBatchNo("empty");
} else {
detailRequest.setBatchNo(invPreProductEntity.getBatchNo());
}
invPreProductService.deleteById(id);
invPreProductDetailService.deleteInvPreProductDetail(detailRequest);
return ResultVOUtils.success("删除成功");
} else {
return ResultVOUtils.error(500, "删除失败");
}
}
}

@ -18,7 +18,6 @@ import com.glxp.api.res.inv.InvProductPageResponse;
import com.glxp.api.res.inv.InvProductResponse;
import com.glxp.api.service.auth.CustomerService;
import com.glxp.api.service.auth.WarehouseUserService;
import com.glxp.api.service.basic.IBasicBussinessTypeService;
import com.glxp.api.service.inv.InvProductDetailService;
import com.glxp.api.service.inv.InvProductService;
import com.glxp.api.util.udi.FilterUdiUtils;
@ -48,8 +47,6 @@ public class InvProductController {
private WarehouseUserService warehouseUserService;
@Resource
private CustomerService customerService;
@Resource
private IBasicBussinessTypeService bussinessTypeService;
/**
*
@ -126,7 +123,7 @@ public class InvProductController {
}
String id = deleteRequest.getId();
InvProductEntity invProductEntity = invProductService.findById(deleteRequest.getId());
InvProductEntity invProductEntity = invProductService.findById(id);
if (null != invProductEntity) {
FilterInvProductDetailRequest detailRequest = new FilterInvProductDetailRequest();
detailRequest.setSupId(invProductEntity.getSupId());
@ -145,4 +142,38 @@ public class InvProductController {
}
}
/**
*
*
* @param filterInvProductRequest
* @return
*/
@GetMapping("/spms/inv/product/stockStatistics")
public BaseResponse stockStatistics(FilterInvProductRequest filterInvProductRequest) {
boolean showSup = true;
if (StrUtil.isBlank(filterInvProductRequest.getInvCode())) {
List<String> invCodes = warehouseUserService.selectCodeByUser(customerService.getUserIdStr());
filterInvProductRequest.setInvCodes(invCodes);
}
List<InvProductResponse> invProductResponses;
if (StrUtil.isBlank(filterInvProductRequest.getCpmctymc()) && StrUtil.isBlank(filterInvProductRequest.getNameCode())
&& StrUtil.isBlank(filterInvProductRequest.getGgxh()) && StrUtil.isBlank(filterInvProductRequest.getZczbhhzbapzbh())
&& StrUtil.isBlank(filterInvProductRequest.getYlqxzcrbarmc()) && StrUtil.isBlank(filterInvProductRequest.getSupId())
&& StrUtil.isBlank(filterInvProductRequest.getInvCode()) && StrUtil.isBlank(filterInvProductRequest.getBatchNo())
) {
//查询参数为空,走库存查询逻辑
invProductResponses = invProductService.filterList(filterInvProductRequest);
} else {
//查询参数不为空,走库存统计逻辑
invProductResponses = invProductService.stockStatistics(filterInvProductRequest);
}
PageInfo<InvProductResponse> pageInfo = new PageInfo<>(invProductResponses);
InvProductPageResponse<InvProductResponse> pageResponse = new InvProductPageResponse<>();
pageResponse.setTotal(pageInfo.getTotal());
pageResponse.setList(pageInfo.getList());
pageResponse.setShowSup(showSup);
return ResultVOUtils.success(pageResponse);
}
}

@ -74,7 +74,7 @@ public interface AuthAdminDao {
*/
List<AuthAdmin> selectHospitalUser();
List<AuthAdmin> selectNotSelectUser(@Param("userIds") List<Long> userIds,@Param("locDeptCode") String locDeptCode);
List<AuthAdmin> selectNotSelectUser(@Param("userIds") List<Long> userIds,@Param("deptId") Integer deptId);
List<AuthAdmin> selectAllocatedList(FilterAuthUserRequest filterAuthUserRequest);

@ -86,4 +86,13 @@ public interface InvSubWarehouseDao extends BaseMapperPlus<InvSubWarehouseDao, I
* @return
*/
List<InvWarehouseEntity> selectInvListByUser(@Param("userId") Long userId);
/**
*
*
* @param invCode
* @return
*/
String selectParentIdByCode(@Param("invCode") String invCode);
}

@ -36,4 +36,13 @@ public interface BasicCorpDao {
boolean importBasicUnitMaintain(BasicCorpEntity basicUnitMaintainEntity);
List<BasicCorpEntity> batchSelectByErpIdsAndName(@Param("erpIds") List<String> erpIds, @Param("name") String name);
/**
*
*
* @param name
* @param creditNo
* @return
*/
List<BasicCorpEntity> selectByNameAndCreditNo(@Param("name") String name, @Param("creditNo") String creditNo);
}

@ -0,0 +1,31 @@
package com.glxp.api.dao.inv;
import com.glxp.api.dao.BaseMapperPlus;
import com.glxp.api.entity.inv.InvPreProductEntity;
import com.glxp.api.req.inv.FilterInvPreProductRequest;
import com.glxp.api.res.inv.InvPreProductResponse;
import java.util.List;
/**
* Dao
*/
public interface InvPreProductDao extends BaseMapperPlus<InvPreProductDao, InvPreProductEntity, InvPreProductEntity> {
/**
* VO
*
* @param invPreProductRequest
* @return
*/
List<InvPreProductResponse> filterList(FilterInvPreProductRequest invPreProductRequest);
/**
*
*
* @param invPreProductRequest
* @return
*/
List<InvPreProductEntity> filterPreProductList(FilterInvPreProductRequest invPreProductRequest);
}

@ -0,0 +1,30 @@
package com.glxp.api.dao.inv;
import com.glxp.api.dao.BaseMapperPlus;
import com.glxp.api.entity.inv.InvPreProductDetailEntity;
import com.glxp.api.req.inv.FilterInvPreProductDetailRequest;
import com.glxp.api.req.inv.FilterInvProductDetailRequest;
import java.util.List;
/**
* Dao
*/
public interface InvPreProductDetailDao extends BaseMapperPlus<InvPreProductDetailDao, InvPreProductDetailEntity, InvPreProductDetailEntity> {
/**
*
*
* @param invPreProductDetailRequest
* @return
*/
List<InvPreProductDetailEntity> filterPreProductDetailList(FilterInvPreProductDetailRequest invPreProductDetailRequest);
/**
*
*
* @param detailRequest
* @return
*/
boolean deleteInvPreProductDetail(FilterInvProductDetailRequest detailRequest);
}

@ -18,4 +18,12 @@ public interface InvProductDao extends BaseMapperPlus<InvProductDao, InvProductE
* @return
*/
List<InvProductResponse> filterList(FilterInvProductRequest filterInvProductRequest);
/**
*
*
* @param filterInvProductRequest
* @return
*/
List<InvProductResponse> stockStatistics(FilterInvProductRequest filterInvProductRequest);
}

@ -2,8 +2,12 @@ package com.glxp.api.dao.inv;
import com.glxp.api.dao.BaseMapperPlus;
import com.glxp.api.entity.inv.InvProductDetailEntity;
import com.glxp.api.req.inv.FilterInvPlaceRequest;
import com.glxp.api.req.inv.FilterInvProductDetailRequest;
import com.glxp.api.res.inv.BindInvSpaceRequest;
import com.glxp.api.res.inv.InvPlaceDetailResponse;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@ -18,5 +22,35 @@ public interface InvProductDetailDao extends BaseMapperPlus<InvProductDetailDao,
*/
List<InvProductDetailEntity> filterInvProductDetailList(FilterInvProductDetailRequest filterInvProductDetailRequest);
/**
*
*
* @param detailRequest
* @return
*/
boolean deleteInvProductDetail(FilterInvProductDetailRequest detailRequest);
/**
*
*
* @param filterInvPlaceRequest
* @return
*/
List<InvPlaceDetailResponse> selectPlaceDetailList(FilterInvPlaceRequest filterInvPlaceRequest);
/**
*
*
* @param ids
* @param invSpaceCode
*/
void batchBindSpace(@Param("ids") List<Integer> ids, @Param("invSpaceCode") String invSpaceCode);
/**
* UDI
*
* @param bindInvSpaceRequest
* @return
*/
InvProductDetailEntity selectByInvAndCode(BindInvSpaceRequest bindInvSpaceRequest);
}

@ -85,7 +85,7 @@ public class BasicBusTypePreEntity {
*
*/
@TableField(value = "changeEnable")
private Byte changeEnable;
private Boolean changeEnable;
/**
*

@ -137,5 +137,8 @@ public class IoCodeTempEntity {
@TableField(exist = false)
private Integer status; //条码校验状态
@TableField(exist = false)
private String mySupId; //更新供应商
}

@ -0,0 +1,165 @@
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 lombok.Data;
import java.util.Date;
/**
*
*/
@Data
@TableName(value = "inv_pre_product_detail")
public class InvPreProductDetailEntity {
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
/**
* UDI
*/
@TableField(value = "code")
private String code;
/**
*
*/
@TableField(value = "mainAction")
private String mainAction;
/**
*
*/
@TableField(value = "`action`")
private String action;
/**
*
*/
@TableField(value = "orderId")
private String orderId;
/**
* ID
*/
@TableField(value = "relId")
private Integer relId;
/**
*
*/
@TableField(value = "nameCode")
private String nameCode;
/**
*
*/
@TableField(value = "batchNo")
private String batchNo;
/**
*
*/
@TableField(value = "produceDate")
private String produceDate;
/**
*
*/
@TableField(value = "expireDate")
private String expireDate;
/**
*
*/
@TableField(value = "serialNo")
private String serialNo;
/**
*
*/
@TableField(value = "supId")
private String supId;
/**
*
*/
@TableField(value = "`count`")
private Integer count;
/**
*
*/
@TableField(value = "reCount")
private Integer reCount;
/**
*
*/
@TableField(value = "deptCode")
private String deptCode;
/**
*
*/
@TableField(value = "invCode")
private String invCode;
/**
*
*/
@TableField(value = "invSpaceCode")
private String invSpaceCode;
/**
*
*/
@TableField(value = "purchaseType")
private Byte purchaseType;
/**
*
*/
@TableField(value = "updateTime")
private Date updateTime;
public static final String COL_ID = "id";
public static final String COL_CODE = "code";
public static final String COL_MAINACTION = "mainAction";
public static final String COL_ACTION = "action";
public static final String COL_ORDERID = "orderId";
public static final String COL_RELID = "relId";
public static final String COL_NAMECODE = "nameCode";
public static final String COL_BATCHNO = "batchNo";
public static final String COL_PRODUCEDATE = "produceDate";
public static final String COL_EXPIREDATE = "expireDate";
public static final String COL_SERIALNO = "serialNo";
public static final String COL_SUPID = "supId";
public static final String COL_COUNT = "count";
public static final String COL_RECOUNT = "reCount";
public static final String COL_DEPTCODE = "deptCode";
public static final String COL_INVCODE = "invCode";
public static final String COL_INVSPACECODE = "invSpaceCode";
public static final String COL_PURCHASETYPE = "purchaseType";
public static final String COL_UPDATETIME = "updateTime";
}

@ -0,0 +1,133 @@
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 lombok.Data;
import java.util.Date;
/**
*
*/
@Data
@TableName(value = "inv_pre_product")
public class InvPreProductEntity {
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
/**
* ID
*/
@TableField(value = "relIdFk")
private Long relIdFk;
/**
*
*/
@TableField(value = "nameCode")
private String nameCode;
/**
*
*/
@TableField(value = "batchNo")
private String batchNo;
/**
*
*/
@TableField(value = "productionDate")
private String productionDate;
/**
*
*/
@TableField(value = "expireDate")
private String expireDate;
/**
*
*/
@TableField(value = "inCount")
private Integer inCount;
/**
*
*/
@TableField(value = "outCount")
private Integer outCount;
/**
*
*/
@TableField(value = "reCount")
private String reCount;
/**
* ID
*/
@TableField(value = "customerId")
private String customerId;
/**
* ID
*/
@TableField(value = "supId")
private String supId;
/**
*
*/
@TableField(value = "deptCode")
private String deptCode;
/**
*
*/
@TableField(value = "invCode")
private String invCode;
/**
*
*/
@TableField(value = "createTime")
private Date createTime;
/**
*
*/
@TableField(value = "updateTime")
private Date updateTime;
public static final String COL_ID = "id";
public static final String COL_RELIDFK = "relIdFk";
public static final String COL_NAMECODE = "nameCode";
public static final String COL_BATCHNO = "batchNo";
public static final String COL_PRODUCTIONDATE = "productionDate";
public static final String COL_EXPIREDATE = "expireDate";
public static final String COL_INCOUNT = "inCount";
public static final String COL_OUTCOUNT = "outCount";
public static final String COL_RECOUNT = "reCount";
public static final String COL_CUSTOMERID = "customerId";
public static final String COL_SUPID = "supId";
public static final String COL_DEPTCODE = "deptCode";
public static final String COL_INVCODE = "invCode";
public static final String COL_CREATETIME = "createTime";
public static final String COL_UPDATETIME = "updateTime";
}

@ -60,13 +60,13 @@ public class InvProductEntity {
*
*/
@TableField(value = "reCount")
private String reCount;
private Integer reCount;
/**
* ID
*/
@TableField(value = "customerId")
private Integer customerId;
private String customerId;
/**
* ID

@ -10,5 +10,5 @@ public class FilterNoSelectUserRequest extends ListPageRequest {
List<Long> userIds;
private String locDeptCode;
private Integer deptId;
}

@ -29,4 +29,9 @@ public class FilterBusTypeChangeRequest extends ListPageRequest {
*/
private String lastUpdateTime;
/**
*
*/
private Boolean enable;
}

@ -0,0 +1,27 @@
package com.glxp.api.req.inv;
import com.glxp.api.util.page.ListPageRequest;
import lombok.Data;
/**
*
*/
@Data
public class FilterInvPlaceRequest extends ListPageRequest {
/**
*
*/
private String deptCode;
/**
*
*/
private String invCode;
/**
*
*/
private String invSpaceCode;
}

@ -0,0 +1,79 @@
package com.glxp.api.req.inv;
import com.glxp.api.util.page.ListPageRequest;
import lombok.Data;
import java.util.List;
/**
*
*/
@Data
public class FilterInvPreProductDetailRequest extends ListPageRequest {
/**
* UDI
*/
private String code;
/**
*
*/
private String mainAction;
/**
*
*/
private String action;
/**
* ID
*/
private String supId;
/**
* ID
*/
private String relId;
/**
*
*/
private String nameCode;
/**
*
*/
private String orderId;
/**
*
*/
private String deptCode;
/**
*
*/
private String invCode;
/**
*
*/
private String invSpaceCode;
/**
*
*/
private String batchNo;
/**
* ID
*/
private List<String> productIdList;
/**
*
*/
private String updateTime;
}

@ -0,0 +1,101 @@
package com.glxp.api.req.inv;
import com.glxp.api.util.page.ListPageRequest;
import lombok.Data;
import java.util.List;
/**
*
*/
@Data
public class FilterInvPreProductRequest extends ListPageRequest {
private String id;
/**
*
*/
private String cpmctymc;
/**
* DI
*/
private String nameCode;
/**
* UDI
*/
private String udiCode;
/**
* ID
*/
private String relIdFk;
/**
*
*/
private String ggxh;
/**
*
*/
private String batchNo;
/**
*
*/
private String productionDate;
/**
*
*/
private String expireDate;
/**
*
*/
private String ylqxzcrbarmc;
/**
*
*/
private String zczbhhzbapzbh;
/**
* ID
*/
private String customerId;
/**
* ID
*/
private String supId;
/**
*
*/
private String supName;
/**
*
*/
private String deptCode;
/**
*
*/
private String invCode;
/**
*
*/
private List<String> invCodes;
/**
*
*/
private String cplb;
}

@ -84,6 +84,9 @@ public class UdiRelevanceResponse {
private String basicPrductRemak8;
private BigDecimal price;
private Boolean isSelect;
//关联查询字典
private String unitFk; //供应商ID
private String companyName; //供应商名称

@ -0,0 +1,43 @@
package com.glxp.api.res.inv;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import java.util.List;
/**
*
*/
@Data
public class BindInvSpaceRequest {
/**
*
*/
private String deptCode;
/**
*
*/
@NotBlank(message = "请选择仓库")
private String invCode;
/**
*
*/
@NotBlank(message = "请选择货位")
private String invSpaceCode;
/**
*
*/
@NotEmpty(message = "请扫描货物条码")
private List<String> codeArray;
/**
* UDI
*/
private String code;
}

@ -0,0 +1,101 @@
package com.glxp.api.res.inv;
import lombok.Data;
/**
*
*/
@Data
public class InvPlaceDetailResponse {
/**
* ID
*/
private Integer id;
/**
* UDI
*/
private String code;
/**
* ID
*/
private String relId;
/**
*
*/
private String productName;
/**
*
*/
private String ggxh;
/**
*
*/
private String mainAction;
/**
*
*/
private String batchNo;
/**
*
*/
private String productionDate;
/**
*
*/
private String expireDate;
/**
* DI
*/
private String nameCode;
/**
*
*/
private String zczbhhzbapzbh;
/**
*
*/
private String ylqxzcrbarmc;
/**
*
*/
private String deptCode;
/**
*
*/
private String invCode;
/**
*
*/
private String invSpaceCode;
/**
*
*/
private String deptName;
/**
*
*/
private String invName;
/**
*
*/
private String invSpaceName;
}

@ -0,0 +1,130 @@
package com.glxp.api.res.inv;
import lombok.Data;
import java.util.Date;
/**
* VO
*/
@Data
public class InvPreProductDetailResponse {
private Integer id;
/**
* UDI
*/
private String code;
/**
*
*/
private String orderId;
/**
* ID
*/
private Long relId;
/**
*
*/
private String nameCode;
/**
*
*/
private String batchNo;
/**
*
*/
private String produceDate;
/**
*
*/
private String expireDate;
/**
*
*/
private String serialNo;
/**
*
*/
private String supId;
/**
*
*/
private Integer count;
/**
*
*/
private Integer reCount;
/**
*
*/
private String deptCode;
/**
*
*/
private String invCode;
/**
*
*/
private String invSpaceCode;
/**
*
*/
private Integer purchaseType;
/**
*
*/
private Date updateTime;
/**
*
*/
private String mainAction;
/**
*
*/
private String action;
/**
*
*/
private String actionName;
/**
*
*/
private String mainActionStr;
/**
*
*/
private Integer inCount;
/**
*
*/
private Integer outCount;
/**
*
*/
private String orderTime;
}

@ -0,0 +1,17 @@
package com.glxp.api.res.inv;
import com.glxp.api.res.PageSimpleResponse;
import lombok.Data;
/**
*
*/
@Data
public class InvPreProductPageResponse<T> extends PageSimpleResponse<T> {
/**
*
*/
private boolean showSup;
}

@ -0,0 +1,108 @@
package com.glxp.api.res.inv;
import lombok.Data;
/**
* VO
*/
@Data
public class InvPreProductResponse {
private Integer id;
/**
* DI
*/
private String nameCode;
/**
*
*/
private String cpmctymc;
/**
* ID
*/
private String relIdFk;
/**
*
*/
private String ggxh;
/**
*
*/
private String batchNo;
/**
*
*/
private String productionDate;
/**
*
*/
private String expireDate;
/**
*
*/
private String ylqxzcrbarmc;
/**
*
*/
private String zczbhhzbapzbh;
/**
*
*/
private Integer inCount;
/**
*
*/
private Integer outCount;
/**
*
*/
private Integer reCount;
/**
* ID
*/
private String customerId;
/**
*
*/
private String supName;
/**
* ID
*/
private String supId;
/**
*
*/
private String deptName;
/**
*
*/
private String invName;
/**
*
*/
private String deptCode;
/**
*
*/
private String invCode;
}

@ -140,7 +140,7 @@ public class AuthAdminServiceImpl implements AuthAdminService {
int offset = (filterNoSelectUserRequest.getPage() - 1) * filterNoSelectUserRequest.getLimit();
PageHelper.offsetPage(offset, filterNoSelectUserRequest.getLimit());
}
return authAdminDao.selectNotSelectUser(filterNoSelectUserRequest.getUserIds(),filterNoSelectUserRequest.getLocDeptCode());
return authAdminDao.selectNotSelectUser(filterNoSelectUserRequest.getUserIds(),filterNoSelectUserRequest.getDeptId());
}

@ -1,8 +1,6 @@
package com.glxp.api.service.basic;
import com.glxp.api.entity.basic.BasicCorpEntity;
import com.glxp.api.req.basic.BasicUnitMaintainFilterRequest;
@ -40,4 +38,12 @@ public interface BasicCorpService {
List<BasicCorpEntity> batchSelectByErpIds(List<String> erpIds);
List<BasicCorpEntity> batchSelectByErpIdsAndName(List<String> erpIds, String name);
/**
*
*
* @param basicCorpEntity
* @return
*/
boolean verifyExists(BasicCorpEntity basicCorpEntity);
}

@ -40,4 +40,12 @@ public interface IBasicBusTypeChangeService {
* @param id
*/
boolean deleteById(String id);
/**
*
*
* @param basicBusTypeChangeEntity
* @return
*/
boolean verifyExists(BasicBusTypeChangeEntity basicBusTypeChangeEntity);
}

@ -71,6 +71,13 @@ public interface IBasicBusTypePreService {
List<BasicBusTypePreResponse> filterBusTypePreResList(FilterBusTypePreRequest filterBusTypePreRequest);
BasicBusTypePreEntity findByOriginAction(String orginAction);
BasicBusTypePreEntity findByOriginAction(String originAction);
/**
*
*
* @param basicBusTypePreEntity
* @return
*/
boolean verifyExists(BasicBusTypePreEntity basicBusTypePreEntity);
}

@ -1,5 +1,7 @@
package com.glxp.api.service.basic.impl;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.pagehelper.PageHelper;
import com.glxp.api.dao.basic.BasicBusTypeChangeDao;
import com.glxp.api.entity.basic.BasicBusTypeChangeEntity;
@ -54,6 +56,27 @@ public class BasicBusTypeChangeServiceImpl implements IBasicBusTypeChangeService
return basicBusTypeChangeDao.deleteById(id) != 0;
}
@Override
public boolean verifyExists(BasicBusTypeChangeEntity basicBusTypeChangeEntity) {
QueryWrapper<BasicBusTypeChangeEntity> wrapper = new QueryWrapper<>();
wrapper.eq("originAction", basicBusTypeChangeEntity.getOriginAction())
.eq("targetAction", basicBusTypeChangeEntity.getTargetAction())
.eq("originName", basicBusTypeChangeEntity.getOriginName());
List<BasicBusTypeChangeEntity> list = basicBusTypeChangeDao.selectList(wrapper);
if (CollUtil.isNotEmpty(list)) {
if (null != basicBusTypeChangeEntity.getId()) {
for (BasicBusTypeChangeEntity busTypeChangeEntity : list) {
if (busTypeChangeEntity.getId() != basicBusTypeChangeEntity.getId()) {
return true;
}
}
} else {
return true;
}
}
return false;
}
private void setUpdateInfo(BasicBusTypeChangeEntity basicBusTypeChangeEntity) {
Date now = new Date();
String userId = String.valueOf(customerService.getUserBean().getId());

@ -1,10 +1,10 @@
package com.glxp.api.service.basic.impl;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.pagehelper.PageHelper;
import com.glxp.api.dao.basic.BasicBusTypePreDao;
import com.glxp.api.entity.basic.BasicBusTypePreEntity;
import com.glxp.api.entity.inout.IoCodeEntity;
import com.glxp.api.req.basic.FilterBusTypeChangeRequest;
import com.glxp.api.req.basic.FilterBusTypePreRequest;
import com.glxp.api.res.basic.BasicBusTypePreResponse;
@ -80,6 +80,31 @@ public class BasicBusTypePreServiceImpl implements IBasicBusTypePreService {
return basicBusTypePreDao.selectOne(new QueryWrapper<BasicBusTypePreEntity>().eq("originAction", originAction));
}
@Override
public boolean verifyExists(BasicBusTypePreEntity basicBusTypePreEntity) {
QueryWrapper<BasicBusTypePreEntity> wrapper = new QueryWrapper<>();
wrapper.eq("action", basicBusTypePreEntity.getAction())
.eq("originAction", basicBusTypePreEntity.getOriginAction())
.eq("invCode", basicBusTypePreEntity.getInvCode())
.eq(null != basicBusTypePreEntity.getBeforeTime(), "beforeTime", basicBusTypePreEntity.getBeforeTime())
.eq(null != basicBusTypePreEntity.getDefaultInvCode(), "defaultInvCode", basicBusTypePreEntity.getDefaultInvCode())
.eq(null != basicBusTypePreEntity.getSupplementAll(), "supplementAll", basicBusTypePreEntity.getSupplementAll());
List<BasicBusTypePreEntity> list = basicBusTypePreDao.selectList(wrapper);
if (CollUtil.isNotEmpty(list)) {
if (null != basicBusTypePreEntity.getId()) {
for (BasicBusTypePreEntity busTypePreEntity : list) {
if (busTypePreEntity.getId() != basicBusTypePreEntity.getId()) {
return true;
}
}
} else {
return true;
}
}
return false;
}
/**
* /
*

@ -1,5 +1,6 @@
package com.glxp.api.service.basic.impl;
import cn.hutool.core.collection.CollUtil;
import com.github.pagehelper.PageHelper;
import com.glxp.api.dao.basic.BasicCorpDao;
import com.glxp.api.entity.basic.BasicCorpEntity;
@ -92,6 +93,23 @@ public class BasicCorpServiceImpl implements BasicCorpService {
return basicCorpDao.batchSelectByErpIdsAndName(erpIds, name);
}
@Override
public boolean verifyExists(BasicCorpEntity basicCorpEntity) {
List<BasicCorpEntity> list = basicCorpDao.selectByNameAndCreditNo(basicCorpEntity.getName(), basicCorpEntity.getCreditNo());
if (CollUtil.isNotEmpty(list)) {
if (null != basicCorpEntity.getId()) {
for (BasicCorpEntity corpEntity : list) {
if (corpEntity.getId() != basicCorpEntity.getId()) {
return true;
}
}
} else {
return true;
}
}
return false;
}
@Override
public BasicCorpEntity selectById(String id) {
return basicCorpDao.selectById(id);

@ -49,7 +49,6 @@ public class UdiRelevanceServiceImpl implements UdiRelevanceService {
int offset = (filterUdiRelRequest.getPage() - 1) * filterUdiRelRequest.getLimit();
PageHelper.offsetPage(offset, filterUdiRelRequest.getLimit());
}
List<UdiRelevanceResponse> data = udiRelevanceDao.filterUdiJoinSup(filterUdiRelRequest);
return data;
}

@ -18,18 +18,15 @@ import com.glxp.api.entity.inout.IoOrderDetailCodeEntity;
import com.glxp.api.entity.inout.IoOrderEntity;
import com.glxp.api.entity.inv.InvProductDetailEntity;
import com.glxp.api.entity.system.SystemParamConfigEntity;
import com.glxp.api.req.basic.CompanyProductRelevanceRequest;
import com.glxp.api.req.basic.FilterCompanyProductRelevanceRequest;
import com.glxp.api.req.inout.FilterOrderRequest;
import com.glxp.api.req.inout.PdaCodeEntity;
import com.glxp.api.req.inout.PostOrderRequest;
import com.glxp.api.res.basic.UdiRelevanceResponse;
import com.glxp.api.service.basic.BasicCorpService;
import com.glxp.api.service.basic.IBasicBussinessTypeService;
import com.glxp.api.service.basic.UdiRelevanceService;
import com.glxp.api.service.basic.UdiRlSupService;
import com.glxp.api.service.basic.IBasicBussinessTypeService;
import com.glxp.api.service.inv.InvProductDetailService;
import com.glxp.api.service.inv.InvProductService;
import com.glxp.api.service.system.SystemParamConfigService;
import com.glxp.api.util.CustomUtil;
import com.glxp.api.util.DateUtil;
@ -77,6 +74,7 @@ public class IoAddInoutService {
orderEntity.setRemark("正在处理!");
orderEntity.setStatus(ConstantStatus.ORDER_STATUS_PROCESSING);
orderEntity.setDealStatus(ConstantStatus.ORDER_DEAL_POST);
orderEntity.setUpdateTime(new Date());
orderService.update(orderEntity);
@ -209,15 +207,6 @@ public class IoAddInoutService {
}
if (CollUtil.isNotEmpty(insertList)) {
//临时表转正式表
List<IoCodeEntity> ioCodeEntities = new ArrayList<>();
for (IoCodeTempEntity codeTempEntity : insertList) {
IoCodeEntity codeEntity = new IoCodeEntity();
BeanUtils.copyProperties(codeTempEntity, codeEntity);
ioCodeEntities.add(codeEntity);
}
codeService.insertBatch(ioCodeEntities);
//生成扫码单据详情
if (!orderDetailCodeService.isExit(orderEntity.getBillNo())) {
for (IoCodeTempEntity codeTempEntity : insertList) {
@ -225,7 +214,6 @@ public class IoAddInoutService {
}
}
codeTempService.deleteByBillNo(orderEntity.getBillNo());
//进行单据校验
ioCheckInoutService.check(orderEntity.getBillNo());
}

@ -105,6 +105,12 @@ public class IoCheckInoutService {
}
public String checkCode(IoCodeTempEntity codeEntity) {
boolean isBillExit = orderDetailBizService.isExit(codeEntity.getOrderId());
if (!isBillExit) {
return "请先录入业务详情";
}
IoOrderDetailBizEntity bizEntity = orderDetailBizService.findByUnique(codeEntity.getOrderId(), codeEntity.getRelId(), codeEntity.getBatchNo());
if (bizEntity == null) {
return "非此单产品!";
@ -375,6 +381,7 @@ public class IoCheckInoutService {
}
if (orderEntity.getStatus() == ConstantStatus.ORDER_STATUS_AUDITED) {
orderEntity.setDealStatus(ConstantStatus.ORDER_DEAL_CHECK);
orderEntity.setUpdateTime(new Date());
orderService.update(orderEntity);
genInv(orderEntity, bussinessTypeEntity);

@ -101,8 +101,8 @@ public class IoGenInvService {
} else if (orderEntity.getMainAction().equals(ConstantType.TYPE_PUT)) {
invProductEntity.setInCount(invProductEntity.getInCount() + orderDetailResultEntity.getReCount());
}
invProductEntity.setReCount(invProductEntity.getInCount() - invProductEntity.getOutCount());
invProductEntity.setUpdateTime(new Date());
// invProductEntities.add(invProductEntity);
invProductService.update(invProductEntity);
}

@ -18,7 +18,9 @@ public interface IoOrderDetailBizService {
int deleteByOrderId(String billNo);
boolean isExit(Long relId, String bacthNo, Integer ignoreId);
boolean isExit(String billNo);
boolean isExit(Long relId, String bacthNo, Integer ignoreId,String orderId);
IoOrderDetailBizEntity findByUnique(String orderId, Long relId, String bacthNo);

@ -48,10 +48,15 @@ public class IoOrderDetailBizServiceImpl implements IoOrderDetailBizService {
return ioOrderDetailBizDao.delete(new QueryWrapper<IoOrderDetailBizEntity>().eq("orderIdFk", billNo));
}
@Override
public boolean isExit(String billNo) {
return ioOrderDetailBizDao.exists(new QueryWrapper<IoOrderDetailBizEntity>().eq("orderIdFk",billNo));
}
@Override
public boolean isExit(Long relId, String bacthNo, Integer ignoreId) {
return ioOrderDetailBizDao.exists(new QueryWrapper<IoOrderDetailBizEntity>().eq("bindRlFk", relId).eq("batchNo", bacthNo).ne("id", ignoreId));
public boolean isExit(Long relId, String bacthNo, Integer ignoreId,String orderId) {
return ioOrderDetailBizDao.exists(new QueryWrapper<IoOrderDetailBizEntity>().eq("bindRlFk", relId).eq("batchNo", bacthNo).eq("orderIdFk", orderId).ne("id", ignoreId));
}
@Override

@ -0,0 +1,37 @@
package com.glxp.api.service.inv;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.req.inv.FilterInvPlaceRequest;
import com.glxp.api.res.inv.BindInvSpaceRequest;
import com.glxp.api.res.inv.InvPlaceDetailResponse;
import java.util.List;
/**
* Service
*/
public interface InvPlaceService {
/**
*
*
* @param filterInvPlaceRequest
* @return
*/
List<InvPlaceDetailResponse> getPlaceDetailList(FilterInvPlaceRequest filterInvPlaceRequest);
/**
*
*
* @param bindInvSpaceRequest
*/
void bindInvSpace(BindInvSpaceRequest bindInvSpaceRequest);
/**
*
*
* @param bindInvSpaceRequest
* @return
*/
BaseResponse checkCodeSpace(BindInvSpaceRequest bindInvSpaceRequest);
}

@ -0,0 +1,42 @@
package com.glxp.api.service.inv;
import com.glxp.api.entity.inv.InvPreProductDetailEntity;
import com.glxp.api.req.inv.FilterInvPreProductDetailRequest;
import com.glxp.api.req.inv.FilterInvProductDetailRequest;
import com.glxp.api.res.inv.InvPreProductDetailResponse;
import java.util.List;
/**
* Service
*/
public interface InvPreProductDetailService {
int insert(InvPreProductDetailEntity invPreProductDetailEntity);
boolean update(InvPreProductDetailEntity invPreProductDetailEntity);
boolean deleteById(String id);
/**
*
*
* @param invPreProductDetailRequest
* @return
*/
List<InvPreProductDetailEntity> filterPreProductDetailList(FilterInvPreProductDetailRequest invPreProductDetailRequest);
/**
*
*
* @param response
*/
void setOrderInfo(InvPreProductDetailResponse response);
/**
*
*
* @param detailRequest
*/
boolean deleteInvPreProductDetail(FilterInvProductDetailRequest detailRequest);
}

@ -0,0 +1,43 @@
package com.glxp.api.service.inv;
import com.glxp.api.entity.inv.InvPreProductEntity;
import com.glxp.api.req.inv.FilterInvPreProductRequest;
import com.glxp.api.res.inv.InvPreProductResponse;
import java.util.List;
/**
* Service
*/
public interface InvPreProductService {
int insert(InvPreProductEntity invPreProductEntity);
boolean update(InvPreProductEntity invPreProductEntity);
boolean deleteById(String id);
/**
* VO
*
* @param invPreProductRequest
* @return
*/
List<InvPreProductResponse> filterList(FilterInvPreProductRequest invPreProductRequest);
/**
*
*
* @param invPreProductRequest
* @return
*/
List<InvPreProductEntity> filterPreProductList(FilterInvPreProductRequest invPreProductRequest);
/**
* ID
*
* @param id
* @return
*/
InvPreProductEntity findById(String id);
}

@ -6,9 +6,11 @@ import java.util.List;
public interface InvPreinDetailService {
public void insertList(List<InvPreinDetailEntity> invPreinDetailEntities);
void insertList(List<InvPreinDetailEntity> invPreinDetailEntities);
List<InvPreinDetailEntity> findByCode(String code);
InvPreinDetailEntity findOneByCode(String code);
int deleteByOrderId(String orderId);
}

@ -32,4 +32,9 @@ public interface InvProductDetailService {
* @param response
*/
void setOrderInfo(InvProductDetailResponse response);
int vailStockCount(Long relId, String invStorageCode, String invWarehouseCode, String invSpaceCode);
}

@ -40,4 +40,12 @@ public interface InvProductService {
* @return
*/
boolean deleteById(String id);
/**
*
*
* @param filterInvProductRequest
* @return
*/
List<InvProductResponse> stockStatistics(FilterInvProductRequest filterInvProductRequest);
}

@ -0,0 +1,85 @@
package com.glxp.api.service.inv.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.common.enums.ResultEnum;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.dao.auth.InvSpaceDao;
import com.glxp.api.dao.auth.InvSubWarehouseDao;
import com.glxp.api.dao.inv.InvProductDetailDao;
import com.glxp.api.entity.inv.InvProductDetailEntity;
import com.glxp.api.req.inv.FilterInvPlaceRequest;
import com.glxp.api.res.inv.BindInvSpaceRequest;
import com.glxp.api.res.inv.InvPlaceDetailResponse;
import com.glxp.api.service.inv.InvPlaceService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
@Slf4j
@Service
@Transactional(rollbackFor = Exception.class)
public class InvPlaceServiceImpl implements InvPlaceService {
@Resource
private InvProductDetailDao invProductDetailDao;
@Resource
private InvSubWarehouseDao invSubWarehouseDao;
@Resource
private InvSpaceDao invSpaceDao;
@Override
public List<InvPlaceDetailResponse> getPlaceDetailList(FilterInvPlaceRequest filterInvPlaceRequest) {
if (null == filterInvPlaceRequest) {
return Collections.emptyList();
}
if (null != filterInvPlaceRequest.getPage() && null != filterInvPlaceRequest.getLimit()) {
PageHelper.offsetPage((filterInvPlaceRequest.getPage() - 1) * filterInvPlaceRequest.getLimit(), filterInvPlaceRequest.getLimit());
}
return invProductDetailDao.selectPlaceDetailList(filterInvPlaceRequest);
}
@Override
public void bindInvSpace(BindInvSpaceRequest bindInvSpaceRequest) {
//查询仓库的部门ID
String deptCode = invSubWarehouseDao.selectParentIdByCode(bindInvSpaceRequest.getInvCode());
List<InvProductDetailEntity> list = invProductDetailDao.selectList(new QueryWrapper<InvProductDetailEntity>()
.select("id")
.eq("deptCode", deptCode)
.eq("invCode", bindInvSpaceRequest.getInvCode())
.in("code", bindInvSpaceRequest.getCodeArray())
);
if (CollUtil.isNotEmpty(list)) {
List<Integer> ids = list.stream().map(InvProductDetailEntity::getId).collect(Collectors.toList());
log.info("本次绑定货位的库存详情数量为:{} 条", ids.size());
invProductDetailDao.batchBindSpace(ids, bindInvSpaceRequest.getInvSpaceCode());
} else {
log.info("绑定货位列表查询无数据");
}
}
@Override
public BaseResponse checkCodeSpace(BindInvSpaceRequest bindInvSpaceRequest) {
//查询仓库的部门ID
String deptCode = invSubWarehouseDao.selectParentIdByCode(bindInvSpaceRequest.getInvCode());
bindInvSpaceRequest.setDeptCode(deptCode);
//查询此库存详情的信息
InvProductDetailEntity invProductDetailEntity = invProductDetailDao.selectByInvAndCode(bindInvSpaceRequest);
if (null == invProductDetailEntity) {
return ResultVOUtils.error(ResultEnum.DATA_ERROR, "此货物非当前仓库物品,无法绑定货位");
}
if (StrUtil.isNotBlank(invProductDetailEntity.getInvSpaceCode()) && !bindInvSpaceRequest.getInvSpaceCode().equals(invProductDetailEntity.getInvSpaceCode())) {
String invSpaceName = invSpaceDao.selectNameByCode(invProductDetailEntity.getDeptCode(), invProductDetailEntity.getInvCode(), invProductDetailEntity.getInvSpaceCode());
return ResultVOUtils.error(ResultEnum.DATA_REPEAT, "此货物已绑定 " + invSpaceName + " 货位,是否重新绑定?");
}
return ResultVOUtils.success();
}
}

@ -0,0 +1,86 @@
package com.glxp.api.service.inv.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.pagehelper.PageHelper;
import com.glxp.api.constant.ConstantType;
import com.glxp.api.dao.basic.BasicBussinessTypeDao;
import com.glxp.api.dao.inout.IoOrderDao;
import com.glxp.api.dao.inv.InvPreProductDetailDao;
import com.glxp.api.entity.basic.BasicBussinessTypeEntity;
import com.glxp.api.entity.inout.IoOrderEntity;
import com.glxp.api.entity.inv.InvPreProductDetailEntity;
import com.glxp.api.req.inv.FilterInvPreProductDetailRequest;
import com.glxp.api.req.inv.FilterInvProductDetailRequest;
import com.glxp.api.req.system.DeleteRequest;
import com.glxp.api.res.inv.InvPreProductDetailResponse;
import com.glxp.api.service.inv.InvPreProductDetailService;
import com.glxp.api.util.DateUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.Collections;
import java.util.List;
@Slf4j
@Service
@Transactional(rollbackFor = Exception.class)
public class InvPreProductDetailServiceImpl implements InvPreProductDetailService {
@Resource
private InvPreProductDetailDao invPreProductDetailDao;
@Resource
private BasicBussinessTypeDao bussinessTypeDao;
@Resource
private IoOrderDao orderDao;
@Override
public int insert(InvPreProductDetailEntity invPreProductDetailEntity) {
return invPreProductDetailDao.insert(invPreProductDetailEntity);
}
@Override
public boolean update(InvPreProductDetailEntity invPreProductDetailEntity) {
return invPreProductDetailDao.updateById(invPreProductDetailEntity) == 1 ? true : false;
}
@Override
public boolean deleteById(String id) {
return invPreProductDetailDao.deleteById(id) == 1 ? true : false;
}
@Override
public List<InvPreProductDetailEntity> filterPreProductDetailList(FilterInvPreProductDetailRequest invPreProductDetailRequest) {
if (null == invPreProductDetailRequest) {
return Collections.emptyList();
}
if (null != invPreProductDetailRequest.getPage() && null != invPreProductDetailRequest.getLimit()) {
PageHelper.offsetPage((invPreProductDetailRequest.getPage() - 1) * invPreProductDetailRequest.getLimit(), invPreProductDetailRequest.getLimit());
}
return invPreProductDetailDao.filterPreProductDetailList(invPreProductDetailRequest);
}
@Override
public void setOrderInfo(InvPreProductDetailResponse response) {
//设置出入库中文及出入库数量
if (response.getMainAction().equals(ConstantType.TYPE_OUT)) {
response.setMainActionStr("出库");
response.setOutCount(response.getCount());
} else {
response.setMainActionStr("入库");
response.setInCount(response.getCount());
}
//设置单据类型名称
BasicBussinessTypeEntity busType = bussinessTypeDao.selectOne(new QueryWrapper<BasicBussinessTypeEntity>().select("name").eq("action", response.getAction()));
response.setActionName(busType.getName());
//设置单据日期
IoOrderEntity order = orderDao.selectOne(new QueryWrapper<IoOrderEntity>().select("createTime").eq("billNo", response.getOrderId()));
response.setOrderTime(DateUtil.toDateStr(order.getCreateTime(), "yyyy-MM-dd HH:mm:ss"));
}
@Override
public boolean deleteInvPreProductDetail(FilterInvProductDetailRequest detailRequest) {
return invPreProductDetailDao.deleteInvPreProductDetail(detailRequest);
}
}

@ -0,0 +1,67 @@
package com.glxp.api.service.inv.impl;
import com.github.pagehelper.PageHelper;
import com.glxp.api.dao.inv.InvPreProductDao;
import com.glxp.api.entity.inv.InvPreProductEntity;
import com.glxp.api.req.inv.FilterInvPreProductRequest;
import com.glxp.api.res.inv.InvPreProductResponse;
import com.glxp.api.service.inv.InvPreProductService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.Collections;
import java.util.List;
@Slf4j
@Service
@Transactional(rollbackFor = Exception.class)
public class InvPreProductServiceImpl implements InvPreProductService {
@Resource
private InvPreProductDao invPreProductDao;
@Override
public int insert(InvPreProductEntity invPreProductEntity) {
return invPreProductDao.insert(invPreProductEntity);
}
@Override
public boolean update(InvPreProductEntity invPreProductEntity) {
return invPreProductDao.updateById(invPreProductEntity) == 1 ? true : false;
}
@Override
public boolean deleteById(String id) {
return invPreProductDao.deleteById(id) == 1 ? true : false;
}
@Override
public List<InvPreProductResponse> filterList(FilterInvPreProductRequest invPreProductRequest) {
if (null == invPreProductRequest) {
return Collections.emptyList();
}
if (null != invPreProductRequest.getProductionDate() && null != invPreProductRequest.getLimit()) {
PageHelper.offsetPage((invPreProductRequest.getPage() - 1) * invPreProductRequest.getLimit(), invPreProductRequest.getLimit());
}
return invPreProductDao.filterList(invPreProductRequest);
}
@Override
public List<InvPreProductEntity> filterPreProductList(FilterInvPreProductRequest invPreProductRequest) {
if (null == invPreProductRequest) {
return Collections.emptyList();
}
if (null != invPreProductRequest.getProductionDate() && null != invPreProductRequest.getLimit()) {
PageHelper.offsetPage((invPreProductRequest.getPage() - 1) * invPreProductRequest.getLimit(), invPreProductRequest.getLimit());
}
return invPreProductDao.filterPreProductList(invPreProductRequest);
}
@Override
public InvPreProductEntity findById(String id) {
return invPreProductDao.selectById(id);
}
}

@ -1,5 +1,6 @@
package com.glxp.api.service.inv.impl;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.glxp.api.dao.inv.InvPreinDetailDao;
import com.glxp.api.dao.inv.InvPreinOrderDao;
@ -28,6 +29,15 @@ public class InvPreinDetailServiceImpl implements InvPreinDetailService {
return invPreinDetailDao.selectList(new QueryWrapper<InvPreinDetailEntity>().eq("code", code));
}
@Override
public InvPreinDetailEntity findOneByCode(String code) {
List<InvPreinDetailEntity> invPreinDetailEntities = invPreinDetailDao.selectList(new QueryWrapper<InvPreinDetailEntity>().eq("code", code).last("limit 1"));
if (CollUtil.isNotEmpty(invPreinDetailEntities)) {
return invPreinDetailEntities.get(0);
}
return null;
}
@Override
public int deleteByOrderId(String orderId) {
return invPreinDetailDao.delete(new QueryWrapper<InvPreinDetailEntity>().eq("orderIdFk", orderId));

@ -1,6 +1,7 @@
package com.glxp.api.service.inv.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.constant.ConstantType;
@ -8,12 +9,14 @@ import com.glxp.api.dao.basic.BasicBussinessTypeDao;
import com.glxp.api.dao.inout.IoOrderDao;
import com.glxp.api.dao.inv.InvProductDetailDao;
import com.glxp.api.entity.basic.BasicBussinessTypeEntity;
import com.glxp.api.entity.basic.UdiEntity;
import com.glxp.api.entity.inout.IoOrderEntity;
import com.glxp.api.entity.inv.InvProductDetailEntity;
import com.glxp.api.req.inv.FilterInvProductDetailRequest;
import com.glxp.api.res.inv.InvProductDetailResponse;
import com.glxp.api.service.inv.InvProductDetailService;
import com.glxp.api.util.DateUtil;
import com.glxp.api.util.udi.FilterUdiUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -91,4 +94,25 @@ public class InvProductDetailServiceImpl implements InvProductDetailService {
IoOrderEntity order = orderDao.selectOne(new QueryWrapper<IoOrderEntity>().select("createTime").eq("billNo", response.getOrderId()));
response.setOrderTime(DateUtil.toDateStr(order.getCreateTime(), "yyyy-MM-dd HH:mm:ss"));
}
@Override
public int vailStockCount(Long relId, String deptCode, String invCode, String invSpaceCode) {
if (relId == null) {
return 0;
}
List<InvProductDetailEntity> datas =
invProductDetailDao.selectList(new QueryWrapper<InvProductDetailEntity>().eq("relIdFk", relId).eq("deptCode", deptCode).eq("invCode", invCode).eq("invSpaceCode", invSpaceCode));
int count = 0;
if (CollUtil.isNotEmpty(datas)) {
for (InvProductDetailEntity invProductDetailEntity : datas) {
if (invProductDetailEntity.getMainAction().equals(ConstantType.TYPE_PUT))
count = count + invProductDetailEntity.getCount();
else {
count = count - invProductDetailEntity.getCount();
}
}
}
return count;
}
}

@ -63,4 +63,15 @@ public class InvProductServiceImpl implements InvProductService {
return invProductDao.deleteById(id) == 1 ? true : false;
}
@Override
public List<InvProductResponse> stockStatistics(FilterInvProductRequest filterInvProductRequest) {
if (null == filterInvProductRequest) {
return Collections.emptyList();
}
if (null != filterInvProductRequest.getPage() && null != filterInvProductRequest.getLimit()) {
PageHelper.offsetPage((filterInvProductRequest.getPage() - 1) * filterInvProductRequest.getLimit(), filterInvProductRequest.getLimit());
}
return invProductDao.stockStatistics(filterInvProductRequest);
}
}

@ -1,5 +1,6 @@
package com.glxp.api.util.udi;
import com.glxp.api.entity.inout.IoCodeTempEntity;
import com.glxp.api.res.basic.UdiRelevanceResponse;
import com.glxp.api.service.basic.UdiRelevanceService;
import org.springframework.stereotype.Service;
@ -39,5 +40,14 @@ public class UdiCalCountUtil {
return actCount;
}
public int getActCount(IoCodeTempEntity codeTempEntity) {
if (codeTempEntity.getRelId() != null) {
UdiRelevanceResponse udiRelevanceResponse = udiRelevanceService.selectGroupById(codeTempEntity.getRelId());
int count = getActCount(udiRelevanceResponse);
return codeTempEntity.getCount() * count;
}
return 1;
}
}

@ -178,15 +178,15 @@
<select id="selectNotSelectUser" resultType="com.glxp.api.entity.auth.AuthAdmin">
select *
from auth_user
from auth_user left join auth_dept_user on auth_user.id=auth_dept_user.userId
<where>
userFlag != 0
<if test="locDeptCode != null and '' != locDeptCode">
AND locDeptCode = #{locDeptCode}
<if test="deptId != null and '' != deptId">
AND auth_dept_user.deptId = #{deptId}
</if>
<if test="userIds != null and userIds.size() != 0">
and id not in
and auth_user.id not in
<foreach collection="userIds" item="item" open="(" separator="," close=")">
#{item}

@ -341,4 +341,8 @@
inner join auth_warehouse_user on auth_warehouse.code = auth_warehouse_user.code
where userId = #{userId}
</select>
<select id="selectParentIdByCode" resultType="java.lang.String">
select parentId from auth_warehouse where code = #{invCode}
</select>
</mapper>

@ -29,14 +29,15 @@
<select id="selectBusTypePreResList" resultType="com.glxp.api.res.basic.BasicBusTypePreResponse">
SELECT basic_bustype_pre.*,
awA.name defaultInvName,
awB.name invName,
busTypeA.name originName,
busTypeA.name targetName
awA.name defaultInvName,
awB.name invName,
(select name from basic_bussiness_type where action = basic_bustype_pre.originAction) originName,
(select name from basic_bussiness_type where action = basic_bustype_pre.action) targetName
FROM basic_bustype_pre
left JOIN auth_warehouse awA on basic_bustype_pre.defaultInvCode = awA.code
left JOIN auth_warehouse awB on basic_bustype_pre.invCode = awB.code
left JOIN basic_bussiness_type busTypeA on basic_bustype_pre.originAction = busTypeA.action
left join basic_bussiness_type busTypeB on basic_bustype_pre.action = busTypeB.action
<where>
<if test="action != ''and action != null">
AND basic_bustype_pre.`action` = #{action}
@ -47,6 +48,9 @@
<if test="targetName != ''and targetName != null">
AND busTypeA.name LIKE CONCAT(#{targetName}, '%')
</if>
<if test="name != null and name != ''">
and (busTypeA.name like concat('%', #{name}, '%') or busTypeB.name like concat('%', #{name}, '%'))
</if>
<if test="originAction != ''and originAction != null">
AND basic_bustype_pre.`originAction` = #{originAction}
</if>

@ -292,4 +292,16 @@
</if>
</where>
</select>
<select id="selectByNameAndCreditNo" resultType="com.glxp.api.entity.basic.BasicCorpEntity">
select * from basic_corp
<where>
<if test="name != null and name != ''">
AND name = #{name}
</if>
<if test="creditNo != null and creditNo != ''">
AND creditNo = #{creditNo}
</if>
</where>
</select>
</mapper>

@ -0,0 +1,138 @@
<?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.InvPreProductDao">
<select id="filterList" resultType="com.glxp.api.res.inv.InvPreProductResponse">
select ipp.id,
ipp.nameCode,
bp.cpmctymc,
ipp.relIdFk,
bp.ggxh,
ipp.batchNo,
ipp.productionDate,
ipp.expireDate,
bp.ylqxzcrbarmc,
bp.zczbhhzbapzbh,
ipp.inCount,
ipp.outCount,
ipp.reCount,
ipp.customerId,
basic_corp.name supName,
ipp.supId,
auth_dept.name deptName,
auth_warehouse.name invName,
ipp.deptCode,
ipp.invCode
from inv_pre_product ipp
inner join basic_udirel on ipp.relIdFk = basic_udirel.id
inner join basic_products bp on basic_udirel.uuid = bp.uuid
left join basic_corp on ipp.supId = basic_corp.erpId
left join auth_dept on auth_dept.code = ipp.deptCode
left join auth_warehouse on auth_warehouse.code = ipp.invCode
<where>
bp.diType = 1
<if test="cpmctymc != null and cpmctymc != ''">
AND bp.cpmctymc like concat('%', #{cpmctymc}, '%')
</if>
<if test="nameCode != null and nameCode != ''">
AND ipp.nameCode like concat('%', #{nameCode}, '%')
</if>
<if test="relIdFk != null and relIdFk != ''">
AND ipp.relIdFk = #{relIdFk}
</if>
<if test="ggxh != null and ggxh != ''">
AND bp.ggxh like concat('%', #{ggxh}, '%')
</if>
<if test="batchNo != null and batchNo != ''">
AND ipp.batchNo like concat('%', #{batchNo}, '%')
</if>
<if test="productionDate != null and productionDate != ''">
AND ipp.productionDate = #{productionDate}
</if>
<if test="expireDate != null and expireDate != ''">
AND ipp.expireDate = #{expireDate}
</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="customerId != null and customerId != ''">
AND ipp.customerId = #{customerId}
</if>
<if test="supId != null and supId != ''">
AND ipp.supId = #{supId}
</if>
<if test="deptCode != null and deptCode != ''">
AND ipp.deptCode = #{deptCode}
</if>
<if test="invCode != null and invCode != ''">
AND ipp.invCode = #{invCode}
</if>
<if test="invCodes != null and invCodes.size() != 0">
AND ipp.invCode in
<foreach collection="invCodes" item="item" index="index" open="(" close=")" separator=",">
#{item}
</foreach>
</if>
</where>
</select>
<select id="filterPreProductList" resultType="com.glxp.api.entity.inv.InvPreProductEntity">
select ipp.*
from inv_pre_product ipp
inner join basic_udirel on ipp.relIdFk = basic_udirel.id
inner join basic_products bp on basic_udirel.uuid = bp.uuid
left join basic_corp on ipp.supId = basic_corp.erpId
left join auth_dept on auth_dept.code = ipp.deptCode
left join auth_warehouse on auth_warehouse.code = ipp.invCode
<where>
bp.diType = 1
<if test="cpmctymc != null and cpmctymc != ''">
AND bp.cpmctymc like concat('%', #{cpmctymc}, '%')
</if>
<if test="nameCode != null and nameCode != ''">
AND ipp.nameCode like concat('%', #{nameCode}, '%')
</if>
<if test="relIdFk != null and relIdFk != ''">
AND ipp.relIdFk = #{relIdFk}
</if>
<if test="ggxh != null and ggxh != ''">
AND bp.ggxh like concat('%', #{ggxh}, '%')
</if>
<if test="batchNo != null and batchNo != ''">
AND ipp.batchNo like concat('%', #{batchNo}, '%')
</if>
<if test="productionDate != null and productionDate != ''">
AND ipp.productionDate = #{productionDate}
</if>
<if test="expireDate != null and expireDate != ''">
AND ipp.expireDate = #{expireDate}
</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="customerId != null and customerId != ''">
AND ipp.customerId = #{customerId}
</if>
<if test="supId != null and supId != ''">
AND ipp.supId = #{supId}
</if>
<if test="deptCode != null and deptCode != ''">
AND ipp.deptCode = #{deptCode}
</if>
<if test="invCode != null and invCode != ''">
AND ipp.invCode = #{invCode}
</if>
<if test="invCodes != null and invCodes.size() != 0">
AND ipp.invCode in
<foreach collection="invCodes" item="item" index="index" open="(" close=")" separator=",">
#{item}
</foreach>
</if>
</where>
</select>
</mapper>

@ -0,0 +1,78 @@
<?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.InvPreProductDetailDao">
<select id="filterPreProductDetailList" resultType="com.glxp.api.entity.inv.InvPreProductDetailEntity">
select *
from inv_pre_product_detail
<where>
<if test="code != null and code != ''">
AND code = #{code}
</if>
<if test="mainAction != null and mainAction != ''">
AND mainAction = #{mainAction}
</if>
<if test="action != null and action != ''">
AND action = #{action}
</if>
<if test="supId != null and supId != ''">
and supId = #{supId}
</if>
<if test="relId != null and relId != ''">
AND relId = #{relId}
</if>
<if test="nameCode != null and nameCode != ''">
AND nameCode like concat('%', #{nameCode}, '%')
</if>
<if test="orderId != null and orderId != ''">
AND orderId = #{orderId}
</if>
<if test="deptCode != null and deptCode != ''">
AND deptCode = #{deptCode}
</if>
<if test="invCode != null and invCode != ''">
AND invCode = #{invCode}
</if>
<if test="invSpaceCode != null and invSpaceCode != ''">
AND invSpaceCode = #{invSpaceCode}
</if>
<if test="batchNo != null and batchNo != ''">
AND batchNo = #{batchNo}
</if>
<if test="batchNo == 'empty'">
AND batchNo is null
</if>
<if test="productIdList != null and productIdList.size() != 0">
AND relId in
<foreach collection="productIdList" item="item" index="index" open="(" close=")" separator=",">
#{item}
</foreach>
</if>
<if test="updateTime != null and updateTime != ''">
AND updateTime <![CDATA[ <= ]]> #{updateTime}
</if>
</where>
</select>
<delete id="deleteInvPreProductDetail">
delete
from inv_pre_product_detail
<where>
<if test="relId != null and relId != ''">
AND relId = #{relId}
</if>
<if test="batchNo != null and batchNo != '' and batchNo != 'empty'">
AND batchNo = #{batchNo}
</if>
<if test="batchNo == 'empty'">
AND batchNo is null
</if>
<if test="supId != null and supId != ''">
AND supId = #{supId}
</if>
<if test="invCode != null and invCode != ''">
AND invCode = #{invCode}
</if>
</where>
</delete>
</mapper>

@ -80,4 +80,62 @@
</if>
</where>
</select>
<select id="stockStatistics" resultType="com.glxp.api.res.inv.InvProductResponse">
select bp.cpmctymc,
bp.nameCode,
bp.ylqxzcrbarmc,
bp.zczbhhzbapzbh,
bc.name supName,
bp.ggxh,
aw.name invName,
ip.batchNo,
ip.relIdFk,
ip.productionDate,
ip.expireDate,
ip.customerId,
ip.supId,
sum(ip.inCount) inCount,
sum(ip.outCount) outCount,
sum(ip.reCount) reCount
from inv_product ip
inner join basic_udirel bu on ip.relIdFk = bu.id
inner join basic_products bp on bu.uuid = bp.uuid
left join basic_corp bc on ip.supId = bc.erpId
left join auth_warehouse aw on aw.code = ip.invCode
<where>
bp.diType = 1
<if test="cpmctymc != null and cpmctymc != ''">
AND bp.cpmctymc like concat('%', #{cpmctymc}, '%')
</if>
<if test="nameCode != null and nameCode != ''">
AND ip.nameCode like concat('%', #{nameCode}, '%')
</if>
<if test="ggxh != null and ggxh != ''">
AND bp.ggxh like concat('%', #{ggxh}, '%')
</if>
<if test="zczbhhzbapzbh != null and zczbhhzbapzbh != ''">
AND bp.zczbhhzbapzbh like concat('%', #{zczbhhzbapzbh}, '%')
</if>
<if test="ylqxzcrbarmc != null and ylqxzcrbarmc != ''">
AND bp.ylqxzcrbarmc like concat('%', #{ylqxzcrbarmc}, '%')
</if>
<if test="supId != null and supId != ''">
AND ip.supId like concat('%', #{supId}, '%')
</if>
<if test="invCode != null and invCode != ''">
AND invCode = #{invCode}
</if>
<if test="invCodes != null and invCodes.size() != 0">
AND invCode in
<foreach collection="invCodes" index="index" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</if>
<if test="batchNo != null and batchNo != ''">
AND batchNo like concat('%', #{batchNo}, '%')
</if>
group by ip.relIdFk, ip.batchNo
</where>
</select>
</mapper>

@ -77,4 +77,57 @@
</if>
</where>
</delete>
<select id="selectPlaceDetailList" resultType="com.glxp.api.res.inv.InvPlaceDetailResponse">
select pd.id,
pd.code,
pd.relId,
pd.batchNo,
pd.produceDate productionDate,
pd.expireDate,
bp.ggxh,
bp.cpmctymc productName,
bp.zczbhhzbapzbh,
bp.ylqxzcrbarmc,
bp.nameCode,
ad.name deptName,
aw.name invName,
sp.name invSpaceName
from inv_product_detail pd
left join basic_udirel bu on pd.relId = bu.id
left join basic_products bp on bp.uuid = bu.uuid
left join auth_dept ad on pd.deptCode = ad.code
left join auth_warehouse aw on pd.invCode = aw.code
left join auth_space sp on pd.invSpaceCode = sp.code
and sp.invStorageCode = pd.deptCode and sp.invWarehouseCode = pd.invCode
<where>
<if test="deptCode != null and deptCode != ''">
AND pd.deptCode = #{deptCode}
</if>
<if test="invCode != null and invCode != ''">
AND pd.invCode = #{invCode}
</if>
<if test="invSpaceCode != null and invSpaceCode != ''">
AND pd.invSpaceCode = #{invSpaceCode}
</if>
</where>
</select>
<update id="batchBindSpace">
update inv_product_detail
set invSpaceCode = #{invSpaceCode}
where id in
<foreach collection="ids" index="index" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</update>
<select id="selectByInvAndCode" resultType="com.glxp.api.entity.inv.InvProductDetailEntity">
select *
from inv_product_detail
where deptCode = #{deptCode}
and invCode = #{invCode}
and code = #{code}
limit 1
</select>
</mapper>

@ -18,27 +18,26 @@
<select id="selectLogininforList" parameterType="com.glxp.api.req.monitor.FilterLoginLogRequest"
resultMap="SysLogininforResult">
select *
FROM monitor_login_log
<where>
<if test="infoId != null ">
<if test="infoId != null">
and info_id = #{infoId}
</if>
<if test="userName != null and userName != '' ">
AND `user_name` = #{userName}
<if test="userName != null and userName != ''">
AND `user_name` like concat('%', #{userName}, '%')
</if>
<if test="status != null and status != '' ">
<if test="status != null and status != ''">
AND `status` = #{status}
</if>
<if test="ipaddr != null ">
<if test="ipaddr != null">
AND `ipaddr` = #{ipaddr}
</if>
<if test="loginLocation != null ">
<if test="loginLocation != null">
AND `login_location` = #{loginLocation}
</if>
</where>
order by login_time desc
</select>

@ -37,7 +37,7 @@
and oper_id = #{operId}
</if>
<if test="title != null and title != '' ">
AND `title` = #{title}
AND `title` like concat('%', #{title}, '%')
</if>
<if test="businessType != null and businessType != '' ">
AND `business_type` = #{businessType}
@ -68,6 +68,7 @@
AND `status` = #{status}
</if>
</where>
order by monitor_oper_log.oper_time desc
</select>

@ -36,7 +36,7 @@
AND thirdSysFk = #{thirdSysFk}
</if>
<if test="thirdSys != '' and thirdSys != null">
AND thirdSysFk = #{thirdSys}
AND thirdSys = #{thirdSys}
</if>
<if test="supName != '' and supName != null">
AND supName LIKE concat('%',#{supName},'%')

Loading…
Cancel
Save