|
|
|
@ -256,6 +256,7 @@ public class WareHouseController {
|
|
|
|
|
orderEntity1.setFromCorp(addOrderRequest.getFromCorp());
|
|
|
|
|
orderEntity1.setFromCorpId(addOrderRequest.getFromCorpId());
|
|
|
|
|
orderEntity1.setLocStorageCode(addOrderRequest.getLocStorageCode());
|
|
|
|
|
orderEntity1.setOutChangeEnable(addOrderRequest.isOutChangeEnable());
|
|
|
|
|
orderService.updateOrder(orderEntity1);
|
|
|
|
|
WarehouseEntity warehouseEntity = new WarehouseEntity();
|
|
|
|
|
warehouseEntity.setOrderId(addOrderRequest.getOrderId());
|
|
|
|
@ -288,6 +289,39 @@ public class WareHouseController {
|
|
|
|
|
return ResultVOUtils.success();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@AuthRuleAnnotation("")
|
|
|
|
|
@PostMapping("warehouse/inout/expireTimeCheck")
|
|
|
|
|
public BaseResponse expireTimeCheck(@RequestBody AddOrderRequest addOrderRequest) {
|
|
|
|
|
UdiEntity udiEntity = FilterUdiUtils.getUdi(addOrderRequest.getCode());
|
|
|
|
|
if (udiEntity != null) {
|
|
|
|
|
//近效期提醒:
|
|
|
|
|
SystemParamConfigEntity recentParamConfigEntity = systemParamConfigService.selectByParamKey("recent_date_tip");
|
|
|
|
|
long recent = Long.parseLong(recentParamConfigEntity.getParamValue());
|
|
|
|
|
if (recent > 0) {
|
|
|
|
|
if (StrUtil.isNotEmpty(udiEntity.getExpireDate())) {
|
|
|
|
|
String expireDate = "20" + udiEntity.getExpireDate();
|
|
|
|
|
long expireTime = DateUtil.parseDateExpire(expireDate);
|
|
|
|
|
long recentTieme = Math.abs(recent * 24 * 60 * 60 * 1000);
|
|
|
|
|
long resultTime = expireTime - System.currentTimeMillis();
|
|
|
|
|
|
|
|
|
|
if (resultTime < 0) {
|
|
|
|
|
return ResultVOUtils.success();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
long time = resultTime / (24 * 60 * 60 * 1000);
|
|
|
|
|
if (resultTime < recentTieme) {
|
|
|
|
|
return ResultVOUtils.error(500, "当前产品临近过期,距过期还剩" + time + "天!");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return ResultVOUtils.success();
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//网页端数据上传调用接口
|
|
|
|
|
@AuthRuleAnnotation("")
|
|
|
|
|
@PostMapping("warehouse/inout/addOrderWeb")
|
|
|
|
@ -296,12 +330,49 @@ public class WareHouseController {
|
|
|
|
|
if (bindingResult.hasErrors()) {
|
|
|
|
|
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
|
|
|
|
|
}
|
|
|
|
|
AddCodeResult addCodeResult = new AddCodeResult();
|
|
|
|
|
BussinessTypeEntity bussinessTypeEntity = bussinessTypeService.findBTByAction(addOrderRequest.getAction());
|
|
|
|
|
String code = addOrderRequest.getCode();
|
|
|
|
|
if (StringUtils.isBlank(code)) return ResultVOUtils.error(ResultEnum.DATA_ERROR);
|
|
|
|
|
UdiEntity udiEntity = FilterUdiUtils.getUdi(code);
|
|
|
|
|
if (udiEntity == null)
|
|
|
|
|
return ResultVOUtils.error(500, "UDI码格式错误!");
|
|
|
|
|
return ResultVOUtils.error(500, "无效条码!");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//过期提醒:
|
|
|
|
|
SystemParamConfigEntity expireParamConfigEntity = systemParamConfigService.selectByParamKey("expire_date_tip");
|
|
|
|
|
if (expireParamConfigEntity.getParamValue().equals("1") && !addOrderRequest.isIgnoreExpire()) {
|
|
|
|
|
if (StrUtil.isNotEmpty(udiEntity.getExpireDate())) {
|
|
|
|
|
String expireDate = "20" + udiEntity.getExpireDate();
|
|
|
|
|
long expireTime = DateUtil.parseDateExpire(expireDate);
|
|
|
|
|
if (expireTime - System.currentTimeMillis() < 0) {
|
|
|
|
|
return ResultVOUtils.error(504, "当前产品已过期,是否确定继续添加?");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//失效期提醒
|
|
|
|
|
SystemParamConfigEntity recentParamConfigEntity = systemParamConfigService.selectByParamKey("recent_date_tip");
|
|
|
|
|
long recent = Long.parseLong(recentParamConfigEntity.getParamValue());
|
|
|
|
|
if (recent > 0 && !addOrderRequest.isIgnoreRecentExpire()) {
|
|
|
|
|
if (StrUtil.isNotEmpty(udiEntity.getExpireDate())) {
|
|
|
|
|
String expireDate = "20" + udiEntity.getExpireDate();
|
|
|
|
|
long expireTime = DateUtil.parseDateExpire(expireDate);
|
|
|
|
|
long recentTieme = Math.abs(recent * 24 * 60 * 60 * 1000);
|
|
|
|
|
long resultTime = expireTime - System.currentTimeMillis();
|
|
|
|
|
|
|
|
|
|
if (resultTime > 0) {
|
|
|
|
|
long time = resultTime / (24 * 60 * 60 * 1000);
|
|
|
|
|
if (resultTime < recentTieme) {
|
|
|
|
|
return ResultVOUtils.error(505, "当前产品临近过期,距过期还剩" + time + "天,是否确定继续添加?");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
String orderId = addOrderRequest.getOrderId();
|
|
|
|
|
if (addOrderRequest.getCustomerId() != null && (addOrderRequest.getFromCorpId() == null || "".equals(addOrderRequest.getFromCorpId()))) {
|
|
|
|
|
CompanyEntity companyEntity = companyService.findCompany(Long.parseLong(addOrderRequest.getCustomerId()));
|
|
|
|
@ -323,33 +394,10 @@ public class WareHouseController {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//先生产扫码单据
|
|
|
|
|
//先生成扫码单据
|
|
|
|
|
OrderEntity orderEntity = orderService.findById(orderId);
|
|
|
|
|
if (StringUtils.isBlank(orderId) || orderEntity == null) {
|
|
|
|
|
orderId = "SM" + CustomUtil.getId();
|
|
|
|
|
OrderEntity orderSaveRequest = new OrderEntity();
|
|
|
|
|
orderSaveRequest.setId(orderId);
|
|
|
|
|
if (addOrderRequest.getActDate() != null) {
|
|
|
|
|
orderSaveRequest.setActDate(addOrderRequest.getActDate());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Integer userId = customerService.getUserId();
|
|
|
|
|
orderSaveRequest.setMainAction(bussinessTypeEntity.getMainAction());
|
|
|
|
|
orderSaveRequest.setAction(bussinessTypeEntity.getAction());
|
|
|
|
|
orderSaveRequest.setActor(addOrderRequest.getActor());
|
|
|
|
|
orderSaveRequest.setCorpOrderId(addOrderRequest.getCorpOrderId());
|
|
|
|
|
orderSaveRequest.setLocStorageCode(addOrderRequest.getLocStorageCode());
|
|
|
|
|
orderSaveRequest.setFromCorpId(addOrderRequest.getFromCorpId());
|
|
|
|
|
orderSaveRequest.setFromCorp(addOrderRequest.getFromCorp());
|
|
|
|
|
orderSaveRequest.setFromType(ConstantStatus.FROM_WEBNEW);
|
|
|
|
|
orderSaveRequest.setStatus(ConstantStatus.ORDER_STATUS_TEMP_SAVE);
|
|
|
|
|
orderSaveRequest.setExportStatus(ConstantStatus.ORDER_EXPORT_UN);
|
|
|
|
|
orderSaveRequest.setContrastStatus(ConstantStatus.ORDER_CHECK_UN);
|
|
|
|
|
orderSaveRequest.setSignStatus(ConstantStatus.ORDER_SIGN_UN);
|
|
|
|
|
orderSaveRequest.setReceiveStatus(ConstantStatus.RECEIVE_UN);
|
|
|
|
|
orderSaveRequest.setCustomerId(customerService.getCustomerId() + "");
|
|
|
|
|
orderSaveRequest.setCreateUser(userId);
|
|
|
|
|
orderService.insertOrder(orderSaveRequest);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -386,45 +434,64 @@ public class WareHouseController {
|
|
|
|
|
warehouseEntity.setCount(1);
|
|
|
|
|
List<WarehouseEntity> warehouseEntityList = new ArrayList<>();
|
|
|
|
|
warehouseEntityList.add(warehouseEntity);
|
|
|
|
|
String unitFk = null;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//校验往来单位
|
|
|
|
|
if (bussinessTypeEntity.getCorpType() == ConstantStatus.CORP_TYPE_OUT) {
|
|
|
|
|
unitFk = warehouseEntity.getFromCorpId();
|
|
|
|
|
}
|
|
|
|
|
//产品是否可以以使用单元入库
|
|
|
|
|
List<UdiRelevanceResponse> udiRelevanceResponses = udiRelevanceService.selectAllByNameCode(warehouseEntity.getNameCode(), unitFk);
|
|
|
|
|
if (udiRelevanceResponses.size() == 1) {
|
|
|
|
|
UdiRelevanceResponse udiRelevanceResponse = udiRelevanceResponses.get(0);
|
|
|
|
|
if (udiRelevanceResponse == null) {
|
|
|
|
|
return ResultVOUtils.error(500, "该产品信息未维护!");
|
|
|
|
|
} else if (udiRelevanceResponse.getIsUseDy() == 0 && udiRelevanceResponse.getDiType() == ConstantStatus.DITYPE_SYDY) {
|
|
|
|
|
return ResultVOUtils.error(500, "该产品不允许以使用单元入库!");
|
|
|
|
|
}
|
|
|
|
|
} else if (udiRelevanceResponses.size() == 0) {
|
|
|
|
|
if (unitFk == null)
|
|
|
|
|
return ResultVOUtils.error(500, "耗材字典不存在此产品!");
|
|
|
|
|
else
|
|
|
|
|
return ResultVOUtils.error(500, "当前供应商不存在此配送产品!");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//校验供应商是否配送此产品
|
|
|
|
|
BaseResponse corpResponse = checkCorp(warehouseEntity, bussinessTypeEntity);
|
|
|
|
|
if (corpResponse != null) {
|
|
|
|
|
return corpResponse;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//过期提醒:
|
|
|
|
|
SystemParamConfigEntity expireParamConfigEntity = systemParamConfigService.selectByParamKey("expire_date_tip");
|
|
|
|
|
if (!"0".equals(expireParamConfigEntity.getParamValue())) {
|
|
|
|
|
if (udiEntity.getExpireDate() != null) {
|
|
|
|
|
String expireDate = "20" + udiEntity.getExpireDate();
|
|
|
|
|
long expireTime = DateUtil.parseDateExpire(expireDate);
|
|
|
|
|
if (expireTime - System.currentTimeMillis() < 0) {
|
|
|
|
|
return ResultVOUtils.error(500, "udi码:" + warehouseEntity.getCode() + "已经过期!");
|
|
|
|
|
}
|
|
|
|
|
OrderEntity isExit = orderService.findById(orderId);
|
|
|
|
|
if (isExit == null) {
|
|
|
|
|
OrderEntity orderSaveRequest = new OrderEntity();
|
|
|
|
|
orderSaveRequest.setId(orderId);
|
|
|
|
|
if (addOrderRequest.getActDate() != null) {
|
|
|
|
|
orderSaveRequest.setActDate(addOrderRequest.getActDate());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//近效期提醒:
|
|
|
|
|
SystemParamConfigEntity recentParamConfigEntity = systemParamConfigService.selectByParamKey("recent_date_tip");
|
|
|
|
|
long recent = Long.parseLong(recentParamConfigEntity.getParamValue());
|
|
|
|
|
if (recent > 0) {
|
|
|
|
|
if (udiEntity.getExpireDate() != null) {
|
|
|
|
|
String expireDate = "20" + udiEntity.getExpireDate();
|
|
|
|
|
long expireTime = DateUtil.parseDateExpire(expireDate);
|
|
|
|
|
long recentTieme = recent * 24 * 60 * 60 * 1000;
|
|
|
|
|
logger.error("recentTieme = " + recentTieme);
|
|
|
|
|
if (expireTime - System.currentTimeMillis() < recentTieme) {
|
|
|
|
|
return ResultVOUtils.error(500, "udi码:" + warehouseEntity.getCode() + "临近过期!");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
Integer userId = customerService.getUserId();
|
|
|
|
|
orderSaveRequest.setMainAction(bussinessTypeEntity.getMainAction());
|
|
|
|
|
orderSaveRequest.setAction(bussinessTypeEntity.getAction());
|
|
|
|
|
orderSaveRequest.setActor(addOrderRequest.getActor());
|
|
|
|
|
orderSaveRequest.setCorpOrderId(addOrderRequest.getCorpOrderId());
|
|
|
|
|
orderSaveRequest.setLocStorageCode(addOrderRequest.getLocStorageCode());
|
|
|
|
|
orderSaveRequest.setFromCorpId(addOrderRequest.getFromCorpId());
|
|
|
|
|
orderSaveRequest.setFromCorp(addOrderRequest.getFromCorp());
|
|
|
|
|
orderSaveRequest.setFromType(ConstantStatus.FROM_WEBNEW);
|
|
|
|
|
orderSaveRequest.setStatus(ConstantStatus.ORDER_STATUS_TEMP_SAVE);
|
|
|
|
|
orderSaveRequest.setExportStatus(ConstantStatus.ORDER_EXPORT_UN);
|
|
|
|
|
orderSaveRequest.setContrastStatus(ConstantStatus.ORDER_CHECK_UN);
|
|
|
|
|
orderSaveRequest.setSignStatus(ConstantStatus.ORDER_SIGN_UN);
|
|
|
|
|
orderSaveRequest.setReceiveStatus(ConstantStatus.RECEIVE_UN);
|
|
|
|
|
orderSaveRequest.setCustomerId(customerService.getCustomerId() + "");
|
|
|
|
|
orderSaveRequest.setCreateUser(userId);
|
|
|
|
|
orderService.insertOrder(orderSaveRequest);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
BaseResponse baseResponse = checkRelId(warehouseEntity);
|
|
|
|
|
BaseResponse baseResponse = checkRelId(bussinessTypeEntity, warehouseEntity);
|
|
|
|
|
warehouseEntity = codesTempService.findByUnique(warehouseEntity.getOrderId(), warehouseEntity.getCode());
|
|
|
|
|
if (baseResponse == null) {
|
|
|
|
|
baseResponse = checkSupId(bussinessTypeEntity, warehouseEntity);
|
|
|
|
@ -433,28 +500,20 @@ public class WareHouseController {
|
|
|
|
|
} else {
|
|
|
|
|
if (baseResponse.getCode() == 501) {
|
|
|
|
|
return baseResponse;
|
|
|
|
|
} else if (baseResponse.getCode() == 502) {
|
|
|
|
|
return baseResponse;
|
|
|
|
|
}
|
|
|
|
|
checkSupId(bussinessTypeEntity, warehouseEntity);
|
|
|
|
|
return baseResponse;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//产品是否可以以使用单元入库
|
|
|
|
|
List<UdiRelevanceResponse> udiRelevanceResponses = udiRelevanceService.selectAllByNameCode(warehouseEntity.getNameCode());
|
|
|
|
|
if (udiRelevanceResponses.size() == 1) {
|
|
|
|
|
UdiRelevanceResponse udiRelevanceResponse = udiRelevanceResponses.get(0);
|
|
|
|
|
if (udiRelevanceResponse == null) {
|
|
|
|
|
return ResultVOUtils.error(500, "udi码:" + warehouseEntity.getCode() + "该产品信息未维护!");
|
|
|
|
|
} else if (udiRelevanceResponse.getIsUseDy() == 0 && udiRelevanceResponse.getDiType() == ConstantStatus.DITYPE_SYDY) {
|
|
|
|
|
return ResultVOUtils.error(500, "udi码:" + warehouseEntity.getCode() + "该产品不允许以使用单元入库!");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
return ResultVOUtils.success(orderId);
|
|
|
|
|
addCodeResult.setOrderId(orderId);
|
|
|
|
|
return ResultVOUtils.success(addCodeResult);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//校验往来单位是否已维护
|
|
|
|
|
//校验供应商是否配送此产品
|
|
|
|
|
public BaseResponse checkCorp(WarehouseEntity warehouseEntity, BussinessTypeEntity bussinessTypeEntity) {
|
|
|
|
|
if (bussinessTypeEntity.getCorpType() == ConstantStatus.CORP_TYPE_OUT) {
|
|
|
|
|
CompanyProductRelevanceRequest companyProductRelevanceRequest = new CompanyProductRelevanceRequest();
|
|
|
|
@ -465,14 +524,19 @@ public class WareHouseController {
|
|
|
|
|
if (datas.size() <= 0) {
|
|
|
|
|
return ResultVOUtils.error(500, "当前供应商不存在此配送产品!");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public BaseResponse checkRelId(WarehouseEntity warehouseEntity) {
|
|
|
|
|
List<UdiRelevanceResponse> udiRelevanceEntities = udiRelevanceService.selectAllByNameCode(warehouseEntity.getNameCode());
|
|
|
|
|
public BaseResponse checkRelId(BussinessTypeEntity bussinessTypeEntity, WarehouseEntity warehouseEntity) {
|
|
|
|
|
|
|
|
|
|
String unitFk = null;
|
|
|
|
|
if (bussinessTypeEntity.getCorpType() == ConstantStatus.CORP_TYPE_OUT) {
|
|
|
|
|
unitFk = warehouseEntity.getFromCorpId();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
List<UdiRelevanceResponse> udiRelevanceEntities = udiRelevanceService.selectAllByNameCode(warehouseEntity.getNameCode(), unitFk);
|
|
|
|
|
if (udiRelevanceEntities != null && udiRelevanceEntities.size() > 1 && warehouseEntity.getRelId() == null) {//同一个DI绑定多个产品西信息
|
|
|
|
|
warehouseEntity.setRelId(null);
|
|
|
|
|
warehouseEntity.setStatus(ConstantStatus.ORDER_DETAIL_DI_MUTI);
|
|
|
|
@ -484,7 +548,7 @@ public class WareHouseController {
|
|
|
|
|
} else if (udiRelevanceEntities == null || udiRelevanceEntities.size() == 0) {//未找到产品信息,一般不会出现
|
|
|
|
|
warehouseEntity.setRelId(null);
|
|
|
|
|
warehouseEntity.setStatus(2);
|
|
|
|
|
return ResultVOUtils.error(501, "产品信息未维护!");
|
|
|
|
|
return ResultVOUtils.error(501, "耗材字典不存在此产品!");
|
|
|
|
|
} else {
|
|
|
|
|
warehouseEntity.setStatus(0);
|
|
|
|
|
if (warehouseEntity.getRelId() == null)
|
|
|
|
@ -531,9 +595,14 @@ public class WareHouseController {
|
|
|
|
|
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
|
|
|
|
|
}
|
|
|
|
|
boolean b = codesTempService.update(warehouseEntity);
|
|
|
|
|
if (warehouseEntity.getMySupId() != null) {
|
|
|
|
|
warehouseEntity.setSupId(warehouseEntity.getMySupId());
|
|
|
|
|
codesTempService.update(warehouseEntity);
|
|
|
|
|
} else if (warehouseEntity.getRelId() != null) {
|
|
|
|
|
|
|
|
|
|
if (warehouseEntity.getRelId() != null) {
|
|
|
|
|
warehouseEntity = codesTempService.selectById(warehouseEntity.getId());
|
|
|
|
|
warehouseEntity.setSupId("");
|
|
|
|
|
codesTempService.replaceCodesTempSingle(warehouseEntity);
|
|
|
|
|
BussinessTypeEntity bussinessTypeEntity = bussinessTypeService.findBTByAction(warehouseEntity.getAction());
|
|
|
|
|
BaseResponse baseResponse = checkSupId(bussinessTypeEntity, warehouseEntity);
|
|
|
|
|
if (baseResponse != null)
|
|
|
|
|