单据流程相关迁移到UDI管理系统

master
anthonywj 2 years ago
parent aca8b1b682
commit 0b746a5a09

@ -10,12 +10,16 @@ public class Constant {
public static final String SERIAL_CACHE_PREFIX_STAT = "serialstat_";
public static final String SERIAL_CACHE_SYNC_UDI = "syncUdi";
public static final String SCAN_ORDER = "MS";
public static final String SCAN_ORDER = "MS"; //出入库单据
public static final String BUS_ORDER = "MY";
public static final String LIN_YONG = "ML";
public static final String SG_ORDER = "SG";
public static final String JH_ORDER = "JH";
public static final String NBM_ORDER = "NBM";
public static final String LIN_YONG = "ML"; //领用
public static final String SG_ORDER = "SG"; //申购
public static final String JH_ORDER = "JH"; //计划
public static final String NBM_ORDER = "NBM"; //内部码
public static final String CG_ORDER = "CG"; //采购订单
public static final String SH_ORDER = "SH"; //送货单
public static final String DH_ORDER = "DH"; //到货
public static final String TH_ORDER = "TH"; //退货
/**
@ -184,7 +188,6 @@ public class Constant {
public static final String ORDER_STATUS_NEW_ORDER = "newOrder";
/**
* -
*/
@ -205,5 +208,28 @@ public class Constant {
*/
public static final String ORDER_STATUS_AUDITED = "audited";
/**
* -
*/
public static final String ORDER_STATUS_SUP_SEARCH = "supSearch";
/**前端页面查询相关单据类型标识*/
/**
* supDelivery
* supArrival
* 退 supReturned
* supPurchase
* supInvoice
* norDetail
* preDetail
*/
public static final String ORDER_ACTION_NOR_DETAIL = "norDetail";
public static final String ORDER_ACTION_PRE_DETAIL = "preDetail";
public static final String ORDER_ACTION_SUP_DELIVERY = "supDelivery";
public static final String ORDER_ACTION_SUP_INVOICE = "supInvoice";
}

@ -37,6 +37,13 @@ public class ConstantStatus {
*/
public static final Integer ORDER_STATUS_CHECK_FAIL = 6;
/**
*
*/
public static final Integer ORDER_STATUS_CHECK_REW = 10;
/**
*
*/
@ -53,6 +60,10 @@ public class ConstantStatus {
public static final Integer ORDER_STATUS_PROCESSING = 9;
public static final Integer ORDER_DELIVERY_STATUS_UN = 1;
public static final Integer ORDER_DELIVERY_STATUS_ED = 2;
/**
* 2.13
*/
@ -60,15 +71,31 @@ public class ConstantStatus {
public static final Integer ORDER_TYPE_SCAN = 2;
public static final Integer ORDER_TYPE_NORMAL = 3;
/**
*
*/
public static final Integer BUS_TYPE_NORMAL = 1; //正常出入库单据(入账)
public static final Integer BUS_TYPE_DELIVERY = 2; //送货出入库单据
public static final Integer BUS_TYPE_ARRIVAL = 3; //到货出库单据类型
public static final Integer BUS_TYPE_RETURNED = 4; //退货单单据类型
public static final Integer BUS_TYPE_INVOICE = 4; //退货单单据类型
public static final Integer ACTION_TYPE_NORMAL = 1; //带票
public static final Integer ACTION_TYPE_PREIN = 2; //预验收
public static final Integer ACTION_TYPE_ADVANCE = 3; //寄售
public static final Integer ORDER_STATUS_ADDITIONAL = 5; //补录单据
// public static final Integer ORDER_STATUS_RECEIVEED = 7;
//订单处理状态
public static final Integer ORDER_DEAL_DRAFT = 1; //草稿
public static final Integer ORDER_DEAL_POST = 2; //已提交
public static final Integer ORDER_DEAL_POST = 2; //已提交,待交接
public static final Integer ORDER_DEAL_REW = 4; //交接中,待审核
public static final Integer ORDER_DEAL_CHECK = 3; //已审核
//ERP校验状态
public static final Integer ORDER_CHECK_SUCCESS = 2; //校验成功
public static final Integer ORDER_CHECK_FAIL = 1; //校验失败
@ -214,6 +241,9 @@ public class ConstantStatus {
public static final String REDIS_BILLNO = "ACCEPT_"; //缓存单据前缀
public static final String REDIS_BILLNO_CODES = "ACCEPT_CODES";
public static final String REDIS_DELIVERY_BILLNO = "PUR_DELIVERY_ACCEPT_"; //送货单单据前缀
public static final String REDIS_DELIVERY_CODES = "PUR_DELIVERY_CODES"; //送货单条码明细
public static final int APPLY_DRAFT = 1;//草稿
public static final int APPLY_UN_AUDIT = 2;//未审核
@ -239,5 +269,11 @@ public class ConstantStatus {
public static final int PRINT_SUCCESS = 1; //已打印
//预验收库存状态 1:在库2已退回3.已使用
public static final int INVIN_IN = 1;
public static final int INVIN_BACK = 2;
public static final int INVIN_USE = 3;
}

@ -56,14 +56,14 @@ public class BasicBusTypePreController {
if (CollUtil.isEmpty(basicBusTypePreEntities)) {
//创建对应单据流转
if (filterBusTypePreRequest.getType() != null && "changEnable".equals(filterBusTypePreRequest.getType())) {
if (ConstantType.TYPE_OUT.equals(basicBussinessType.getMainAction()) && !basicBussinessType.isAdvanceType()) {
if (ConstantType.TYPE_OUT.equals(basicBussinessType.getMainAction()) && basicBussinessType.getActionType() != ConstantStatus.ACTION_TYPE_ADVANCE) {
BasicBusTypePreEntity basicBusTypePreEntity = new BasicBusTypePreEntity();
basicBusTypePreEntity.setChangeType(ConstantStatus.ORDER_CHANGE_INNOR_NORMAL_IN);
basicBusTypePreEntity.setIndex(1);
basicBusTypePreEntity.setAction(filterBusTypePreRequest.getAction());
basicBusTypePreEntity.setBeforeTime(1);
basicBusTypePreService.insertBusChangeType(basicBusTypePreEntity);
} else if (ConstantType.TYPE_OUT.equals(basicBussinessType.getMainAction()) && basicBussinessType.isAdvanceType()) {
} else if (ConstantType.TYPE_OUT.equals(basicBussinessType.getMainAction()) && basicBussinessType.getActionType() != ConstantStatus.ACTION_TYPE_ADVANCE) {
BasicBusTypePreEntity basicBusTypePreEntity = new BasicBusTypePreEntity();
basicBusTypePreEntity.setChangeType(ConstantStatus.ORDER_CHANGE_ADVANCE_IN);
basicBusTypePreEntity.setIndex(1);
@ -167,7 +167,7 @@ public class BasicBusTypePreController {
if (result) {
return ResultVOUtils.error(ResultEnum.DATA_REPEAT, "重复添加!");
}
basicBusTypePreService.updateBusChangeType(basicBusTypePreEntity);
} else {
ResultVOUtils.error(999, "参数错误");

@ -25,8 +25,6 @@ import com.glxp.api.util.CustomUtil;
import com.glxp.api.util.FileUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.http.HttpRequest;
import org.springframework.http.server.ServletServerHttpRequest;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
@ -41,9 +39,6 @@ import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
*
@ -179,16 +174,29 @@ public class BasicBussinessTypeController extends BaseController {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
bussinessTypeFilterRequest.setUserId(getUserId());
List<BasicBussinessTypeResponse> bussinessTypeEntities;
bussinessTypeEntities = basicBussinessTypeService.filterJoinByUser(
bussinessTypeFilterRequest);
PageInfo<BasicBussinessTypeResponse> pageInfo;
pageInfo = new PageInfo<>(bussinessTypeEntities);
PageSimpleResponse<BasicBussinessTypeResponse> pageSimpleResponse = new PageSimpleResponse<>();
pageSimpleResponse.setTotal(pageInfo.getTotal());
pageSimpleResponse.setList(bussinessTypeEntities);
return ResultVOUtils.success(pageSimpleResponse);
if (StrUtil.isNotEmpty(bussinessTypeFilterRequest.getVueType())) {
List<BasicBussinessTypeEntity> bussinessTypeEntities = basicBussinessTypeService.findByVueType(bussinessTypeFilterRequest.getVueType());
PageInfo<BasicBussinessTypeEntity> pageInfo;
pageInfo = new PageInfo<>(bussinessTypeEntities);
PageSimpleResponse<BasicBussinessTypeEntity> pageSimpleResponse = new PageSimpleResponse<>();
pageSimpleResponse.setTotal(pageInfo.getTotal());
pageSimpleResponse.setList(bussinessTypeEntities);
return ResultVOUtils.success(pageSimpleResponse);
} else {
bussinessTypeFilterRequest.setUserId(getUserId());
List<BasicBussinessTypeResponse> bussinessTypeEntities;
bussinessTypeEntities = basicBussinessTypeService.filterJoinByUser(
bussinessTypeFilterRequest);
PageInfo<BasicBussinessTypeResponse> pageInfo;
pageInfo = new PageInfo<>(bussinessTypeEntities);
PageSimpleResponse<BasicBussinessTypeResponse> pageSimpleResponse = new PageSimpleResponse<>();
pageSimpleResponse.setTotal(pageInfo.getTotal());
pageSimpleResponse.setList(bussinessTypeEntities);
return ResultVOUtils.success(pageSimpleResponse);
}
}
@ -236,10 +244,10 @@ public class BasicBussinessTypeController extends BaseController {
@PostMapping("/udiwms/bussinessType/file/upload")
public BaseResponse uploadProducts(@RequestParam("file") List<MultipartFile> files, HttpServletRequest servletServerHttpRequest) {
String cookie=servletServerHttpRequest.getHeader("cookie");
if(cookie!=null){
cookie= Arrays.asList(cookie.split(";")).get(0);
cookie=cookie.substring(9);
String cookie = servletServerHttpRequest.getHeader("cookie");
if (cookie != null) {
cookie = Arrays.asList(cookie.split(";")).get(0);
cookie = cookie.substring(9);
}
@ -254,7 +262,7 @@ public class BasicBussinessTypeController extends BaseController {
List<BasicBussinessTypeEntity> bussinessTypeEntities = JSON.parseArray(json, BasicBussinessTypeEntity.class);
if (bussinessTypeEntities != null && bussinessTypeEntities.size() > 0) {
for (BasicBussinessTypeEntity bussinessTypeEntity : bussinessTypeEntities) {
basicBussinessTypeService.insertIgnoreBussinessType(bussinessTypeEntity,cookie);
basicBussinessTypeService.insertIgnoreBussinessType(bussinessTypeEntity, cookie);
}
}
} catch (Exception e) {

@ -198,4 +198,4 @@ public class BasicOrderPrintController {
JasperUtils.jasperReport(request, response, param, systemPDFTemplateEntity.getPath(), "pdf");
}
}
}

@ -8,6 +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.controller.BaseController;
import com.glxp.api.entity.basic.*;
import com.glxp.api.entity.system.SystemParamConfigEntity;
import com.glxp.api.entity.thrsys.ThrProductsEntity;
@ -28,6 +29,7 @@ import com.glxp.api.service.thrsys.ThrDataService;
import com.glxp.api.service.thrsys.ThrSystemService;
import com.glxp.api.util.GennerOrderUtils;
import com.glxp.api.util.udi.FilterUdiUtils;
import com.glxp.api.util.udi.UdiInfoUtil;
import org.springframework.beans.BeanUtils;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.GetMapping;
@ -42,7 +44,7 @@ import java.util.Date;
import java.util.List;
@RestController
public class UdiRelevanceController {
public class UdiRelevanceController extends BaseController {
@Resource
GennerOrderUtils gennerOrderUtils;
@Resource
@ -117,7 +119,7 @@ public class UdiRelevanceController {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
if (StrUtil.isNotEmpty(filterUdiRelRequest.getUdiCode()) || StrUtil.isNotEmpty(filterUdiRelRequest.getUnionCode())) {
if (StrUtil.isNotEmpty(filterUdiRelRequest.getUdiCode()) && StrUtil.isEmpty(filterUdiRelRequest.getUnionCode())) {
if (StrUtil.isNotEmpty(filterUdiRelRequest.getUdiCode())) {
UdiEntity udiEntity = FilterUdiUtils.getUdi(filterUdiRelRequest.getUdiCode());
filterUdiRelRequest.setNameCode(udiEntity.getUdi());
@ -160,7 +162,6 @@ public class UdiRelevanceController {
filterUdiRelRequest.setDiType(1);
}
udiRelevanceResponses = udiRelevanceService.filterUdiGp(filterUdiRelRequest);
if (udiRelevanceResponses != null && udiRelevanceResponses.size() > 0) {
for (UdiRelevanceResponse udiRelevanceResponse : udiRelevanceResponses) {
UdiRlSupEntity companyProductRelevanceEntity =
@ -288,12 +289,14 @@ public class UdiRelevanceController {
}
//更新关联表
if(udiRelevanceSaveRequest.getIsDateBy()!=null && udiRelevanceSaveRequest.getIsDateBy()==1){
if(udiRelevanceSaveRequest.getRecentDateTime()!=null){
int time=udiRelevanceSaveRequest.getRecentDateTime()*24;
if (udiRelevanceSaveRequest.getIsDateBy() != null && udiRelevanceSaveRequest.getIsDateBy() == 1) {
if (udiRelevanceSaveRequest.getRecentDateTime() != null) {
int time = udiRelevanceSaveRequest.getRecentDateTime() * 24;
udiRelevanceSaveRequest.setRecentDateTime(time);
}
}
//更新关联表
UdiRelevanceEntity udiRelevanceEntity = new UdiRelevanceEntity();
BeanUtils.copyProperties(udiRelevanceSaveRequest, udiRelevanceEntity);
udiRelevanceEntity.setId(udiRelevanceSaveRequest.getId());
@ -323,6 +326,7 @@ public class UdiRelevanceController {
udiProductEntity.setBasicPrductRemak6(udiRelevanceSaveRequest.getBasicPrductRemak6());
udiProductEntity.setBasicPrductRemak7(udiRelevanceSaveRequest.getBasicPrductRemak7());
udiProductEntity.setBasicPrductRemak8(udiRelevanceSaveRequest.getBasicPrductRemak8());
// udiProductEntity = UdiInfoUtil.initUdiInfoEntity(udiProductEntity);
if (StrUtil.isNotEmpty(udiRelevanceSaveRequest.getOriginUuid())) {
udiProductEntity.setProductType(ConstantStatus.PRODUCT_TYPE_UDI);
}
@ -511,7 +515,8 @@ public class UdiRelevanceController {
for (ThrSystemEntity thrSystemEntity : basicThirdSysEntities) {
if (thrSystemEntity.getThirdId().equals("thirdId")) {
BasicProductThirdSysResponse basicProductThirdSysResponse = new BasicProductThirdSysResponse();
basicProductThirdSysResponse.setThirdId(udiRelevanceEntity.getThirdId());
if (StrUtil.isNotEmpty(udiRelevanceEntity.getThirdId()))
basicProductThirdSysResponse.setThirdId(udiRelevanceEntity.getThirdId());
basicProductThirdSysResponse.setSysName(thrSystemEntity.getThirdName());
basicProductThirdSysResponse.setSysId(thrSystemEntity.getThirdId());
if (udiRelevanceEntity.getThirdId() != null && !udiRelevanceEntity.getThirdId().isEmpty()) {
@ -530,7 +535,8 @@ public class UdiRelevanceController {
}
if (thrSystemEntity.getThirdId().equals("thirdId1")) {
BasicProductThirdSysResponse basicProductThirdSysResponse = new BasicProductThirdSysResponse();
basicProductThirdSysResponse.setThirdId(udiRelevanceEntity.getThirdId1());
if (StrUtil.isNotEmpty(udiRelevanceEntity.getThirdId1()))
basicProductThirdSysResponse.setThirdId(udiRelevanceEntity.getThirdId1());
basicProductThirdSysResponse.setSysName(thrSystemEntity.getThirdName());
basicProductThirdSysResponse.setSysId(thrSystemEntity.getThirdId());
if (udiRelevanceEntity.getThirdId1() != null && !udiRelevanceEntity.getThirdId1().isEmpty()) {
@ -546,7 +552,8 @@ public class UdiRelevanceController {
}
if (thrSystemEntity.getThirdId().equals("thirdId2")) {
BasicProductThirdSysResponse basicProductThirdSysResponse = new BasicProductThirdSysResponse();
basicProductThirdSysResponse.setThirdId(udiRelevanceEntity.getThirdId2());
if (StrUtil.isNotEmpty(udiRelevanceEntity.getThirdId2()))
basicProductThirdSysResponse.setThirdId(udiRelevanceEntity.getThirdId2());
basicProductThirdSysResponse.setSysName(thrSystemEntity.getThirdName());
basicProductThirdSysResponse.setSysId(thrSystemEntity.getThirdId());
if (udiRelevanceEntity.getThirdId2() != null && !udiRelevanceEntity.getThirdId2().isEmpty()) {
@ -562,7 +569,8 @@ public class UdiRelevanceController {
}
if (thrSystemEntity.getThirdId().equals("thirdId3")) {
BasicProductThirdSysResponse basicProductThirdSysResponse = new BasicProductThirdSysResponse();
basicProductThirdSysResponse.setThirdId(udiRelevanceEntity.getThirdId3());
if (StrUtil.isNotEmpty(udiRelevanceEntity.getThirdId3()))
basicProductThirdSysResponse.setThirdId(udiRelevanceEntity.getThirdId3());
basicProductThirdSysResponse.setSysName(thrSystemEntity.getThirdName());
basicProductThirdSysResponse.setSysId(thrSystemEntity.getThirdId());
if (udiRelevanceEntity.getThirdId3() != null && !udiRelevanceEntity.getThirdId3().isEmpty()) {
@ -579,7 +587,8 @@ public class UdiRelevanceController {
}
if (thrSystemEntity.getThirdId().equals("thirdId4")) {
BasicProductThirdSysResponse basicProductThirdSysResponse = new BasicProductThirdSysResponse();
basicProductThirdSysResponse.setThirdId(udiRelevanceEntity.getThirdId4());
if (StrUtil.isNotEmpty(udiRelevanceEntity.getThirdId4()))
basicProductThirdSysResponse.setThirdId(udiRelevanceEntity.getThirdId4());
basicProductThirdSysResponse.setSysName(thrSystemEntity.getThirdName());
basicProductThirdSysResponse.setSysId(thrSystemEntity.getThirdId());
if (udiRelevanceEntity.getThirdId4() != null && !udiRelevanceEntity.getThirdId4().isEmpty()) {
@ -631,6 +640,22 @@ public class UdiRelevanceController {
}
@AuthRuleAnnotation("")
@PostMapping("/udi/udirel/updateById")
public BaseResponse updateById(@RequestBody UdiProductEntity udiProductEntity, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
boolean falg = udiProductService.updateUdiInfoById(udiProductEntity);
if (falg) {
return ResultVOUtils.success("更新成功");
} else {
return ResultVOUtils.error(999, "更新失败");
}
}
//业务单据选入耗材字典查询列表

@ -94,7 +94,6 @@ public class IoCodeTempController extends BaseController {
@Resource
IoOrderDetailBizService orderDetailBizService;
//手持端扫码单据上传调用接口
@AuthRuleAnnotation("")
@PostMapping("warehouse/inout/postOrders")
@ -388,21 +387,21 @@ public class IoCodeTempController extends BaseController {
BaseResponse checkOriginCodeRes = checkOriginCode(udiEntity);
if (checkOriginCodeRes != null) {
// IoCodeLostEntity codeLostEntity = codeLostService.findByCode(code);
// if (codeLostEntity == null) {
// if (StrUtil.isNotEmpty(orderId)) {
// List<IoCodeTempEntity> ioCodeEnttities = codeTempService.findByOrderId(orderId);
// IoCodeTempEntity ioCodeEnttity = isExitLocal(code, ioCodeEnttities);
// if (ioCodeEnttity == null) {
// return checkOriginCodeRes;
// }
// } else
// return checkOriginCodeRes;
// } else {
// udiEntity.setBatchNo(codeLostEntity.getBatchNo());
// udiEntity.setExpireDate(codeLostEntity.getExpireDate());
// udiEntity.setProduceDate(codeLostEntity.getProduceDate());
// }
IoCodeLostEntity codeLostEntity = codeLostService.findByCode(code);
if (codeLostEntity == null) {
if (StrUtil.isNotEmpty(orderId)) {
List<IoCodeTempEntity> ioCodeEnttities = codeTempService.findByOrderId(orderId);
IoCodeTempEntity ioCodeEnttity = isExitLocal(code, ioCodeEnttities);
if (ioCodeEnttity == null) {
return checkOriginCodeRes;
}
} else
return checkOriginCodeRes;
} else {
udiEntity.setBatchNo(codeLostEntity.getBatchNo());
udiEntity.setExpireDate(codeLostEntity.getExpireDate());
udiEntity.setProduceDate(codeLostEntity.getProduceDate());
}
if (StrUtil.isNotEmpty(orderId)) {
List<IoCodeTempEntity> ioCodeEnttities = codeTempService.findByOrderId(orderId);
@ -448,9 +447,9 @@ public class IoCodeTempController extends BaseController {
}
//校验预验收是否已存在
if (bussinessTypeEntity.isPreIn()) {
if (bussinessTypeEntity.getActionType() == ConstantStatus.ACTION_TYPE_PREIN) {
if (StrUtil.isNotEmpty(udiEntity.getSerialNo())) {
List<InvPreinDetailEntity> invProductDetailEntities = invPreinDetailService.findByCode(code);
List<InvPreinDetailEntity> invProductDetailEntities = invPreinDetailService.findUseByCode(code);
if (CollUtil.isNotEmpty(invProductDetailEntities)) {
return ResultVOUtils.error(500, "预验收库存已存在此UDI码,请检查后重试!");
}
@ -459,7 +458,7 @@ public class IoCodeTempController extends BaseController {
//校验预验收库存是否已存在
if (bussinessTypeEntity.isScanPreIn()) {
InvPreinDetailEntity invProductDetailEntity = invPreinDetailService.findOneByCode(code);
InvPreinDetailEntity invProductDetailEntity = invPreinDetailService.findUseOneByCode(code);
if (invProductDetailEntity == null) {
return ResultVOUtils.error(500, "预验收库存未存在此产品!");
} else {
@ -471,7 +470,7 @@ public class IoCodeTempController extends BaseController {
if (StrUtil.isEmpty(udiEntity.getSerialNo())) {//该单据已有该产品
//无序列号,则可能存在多个预验收入库单
IoCodeTempEntity codeTempEntity = codeTempService.findByUnique(orderId, code);
List<InvPreinDetailEntity> invPreinDetailEntities = invPreinDetailService.findByCode(code);
List<InvPreinDetailEntity> invPreinDetailEntities = invPreinDetailService.findUseByCode(code);
int count = 0;
for (InvPreinDetailEntity temp : invPreinDetailEntities) {
count = count + temp.getCount();
@ -575,13 +574,26 @@ public class IoCodeTempController extends BaseController {
}
//产品是否可以以使用单元入库
udiRelevanceResponses = udiRelevanceService.selectGroupByNameCode(codeEnttity.getNameCode(), false);
if (udiRelevanceResponses.size() == 1) {
if (udiRelevanceResponses.size() >= 1) {
UdiRelevanceResponse udiRelevanceResponse = udiRelevanceResponses.get(0);
if (udiRelevanceResponse == null) {
return ResultVOUtils.error(500, "该产品信息未维护!");
} else if (!udiRelevanceResponse.getUseDy() && udiRelevanceResponse.getDiType() == ConstantStatus.DITYPE_SYDY) {
return ResultVOUtils.error(500, "该产品不允许以使用单元入库!");
}
if (bussinessTypeEntity.isVailDispatch() && !udiRelevanceResponse.isDispatch()) {
return ResultVOUtils.error(500, "该产品不可配送,请联系院方!");
}
if (bussinessTypeEntity.getVailGroupBuy() == 1 && !udiRelevanceResponse.isGroupBuy()) { //只采集集采产品
return ResultVOUtils.error(500, bussinessTypeEntity.getName() + "单只允许录入集采产品!");
}
if (bussinessTypeEntity.getVailGroupBuy() == 2 && udiRelevanceResponse.isGroupBuy()) { //只采集非集采产品
return ResultVOUtils.error(500, bussinessTypeEntity.getName() + "单只允许录入非集采产品!");
}
//计算实际数量
codeEnttity.setReCount(codeEnttity.getMyCount() * udiCalCountUtil.getActCount(udiRelevanceResponse));
} else if (udiRelevanceResponses.size() == 0) {
@ -622,26 +634,25 @@ public class IoCodeTempController extends BaseController {
orderEntity.setDeptCode(invWarehouseEntity.getParentId());
orderEntity.setInvCode(addOrderRequest.getInvCode());
orderEntity.setOrderType(addOrderRequest.getOrderType());
orderEntity.setBusType(bussinessTypeEntity.getBusType());
orderService.insertOrder(orderEntity);
}
BaseResponse baseResponse = checkRelId(codeEnttity, unitFk);
if (addOrderRequest.getOrderType() == ConstantStatus.ORDER_TYPE_NORMAL && bussinessTypeEntity.isCheckEnable() && bussinessTypeEntity.isCheckWebNew()) {
boolean isBillExit = orderDetailBizService.isExit(orderEntity.getBillNo());
if (!isBillExit) {
return ResultVOUtils.error(500, "请先录入业务详情");
}
}
BaseResponse baseResponse = checkRelId(codeEnttity, unitFk);
BaseResponse invRes = checkInv(bussinessTypeEntity, codeEnttity);
if (invRes != null) {
return invRes;
}
//是否边扫边校验
if (addOrderRequest.getOrderType() == ConstantStatus.ORDER_TYPE_NORMAL && bussinessTypeEntity.isCheckEnable() && bussinessTypeEntity.isCheckWebNew()) {
String errMsg = ioCheckInoutService.checkCode(codeEnttity);
if (errMsg != null) {
return ResultVOUtils.error(500, errMsg);
} else
codeTempService.insert(codeEnttity);
} else {
codeTempService.insert(codeEnttity);
}
genDetaiEntity = codeEnttity;
if (baseResponse == null) {
baseResponse = checkSupId(bussinessTypeEntity, codeEnttity, unitFk);
@ -656,6 +667,17 @@ public class IoCodeTempController extends BaseController {
checkSupId(bussinessTypeEntity, codeEnttity, unitFk);
return baseResponse;
}
//是否边扫边校验
if (addOrderRequest.getOrderType() == ConstantStatus.ORDER_TYPE_NORMAL && bussinessTypeEntity.isCheckEnable() && bussinessTypeEntity.isCheckWebNew()) {
String errMsg = ioCheckInoutService.checkCode(codeEnttity);
if (errMsg != null) {
return ResultVOUtils.error(500, errMsg);
} else
codeTempService.insert(codeEnttity);
} else {
codeTempService.insert(codeEnttity);
}
}
addCodeResult.setOrderId(orderId);
transInoutService.genOrderDetailCode(orderEntity, genDetaiEntity);
@ -800,7 +822,7 @@ public class IoCodeTempController extends BaseController {
public BaseResponse checkInv(BasicBussinessTypeEntity bussinessTypeEntity, IoCodeTempEntity codeTempEntity) {
if (bussinessTypeEntity.isVailInv()) {
if (bussinessTypeEntity.isAdvanceType()) {
if (bussinessTypeEntity.getActionType() == ConstantStatus.ACTION_TYPE_ADVANCE) {
// int count = invPreProductDetailService.vailStockCount(code); //todo 寄售
// if (count < 0) {
// return ResultVOUtils.error(500, "当前库存不足不允许0库存出库");
@ -852,13 +874,11 @@ public class IoCodeTempController extends BaseController {
codeTempEntity.setSupId(codeSaveRequest.getMySupId());
codeTempService.updateById(codeSaveRequest);
}
if(StrUtil.isNotEmpty(codeSaveRequest.getSupId())){
if (StrUtil.isNotEmpty(codeSaveRequest.getSupId())) {
codeTempEntity.setSupId(codeSaveRequest.getSupId());
codeTempService.updateById(codeSaveRequest);
}
//更新耗材字典
if (codeSaveRequest.getRelId() != null) {

@ -16,6 +16,8 @@ import com.glxp.api.entity.auth.AuthAdmin;
import com.glxp.api.entity.auth.InvWarehouseEntity;
import com.glxp.api.entity.basic.*;
import com.glxp.api.entity.inout.*;
import com.glxp.api.entity.purchase.SupProductEntity;
import com.glxp.api.entity.system.SystemParamConfigEntity;
import com.glxp.api.entity.thrsys.ThrOrderDetailEntity;
import com.glxp.api.entity.thrsys.ThrOrderEntity;
import com.glxp.api.entity.thrsys.ThrSystemBusApiEntity;
@ -25,9 +27,12 @@ import com.glxp.api.req.thrsys.FilterThrOrderDetailRequest;
import com.glxp.api.res.PageSimpleResponse;
import com.glxp.api.res.basic.UdiRelevanceResponse;
import com.glxp.api.res.inout.IoOrderDetailBizResponse;
import com.glxp.api.res.inout.IoOrderInvoiceResponse;
import com.glxp.api.service.auth.InvWarehouseService;
import com.glxp.api.service.basic.*;
import com.glxp.api.service.inout.*;
import com.glxp.api.service.purchase.SupProductService;
import com.glxp.api.service.system.SystemParamConfigService;
import com.glxp.api.service.thrsys.ThrOrderDetailService;
import com.glxp.api.service.thrsys.ThrOrderService;
import com.glxp.api.service.thrsys.ThrSystemBusApiService;
@ -35,10 +40,7 @@ import com.glxp.api.util.GennerOrderUtils;
import com.glxp.api.util.OrderNoTypeBean;
import org.springframework.beans.BeanUtils;
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 org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.ArrayList;
@ -77,6 +79,10 @@ public class IoOrderDetailBizController extends BaseController {
@Resource
IBasicBusTypeChangeService basicBusTypeChangeService;
@Resource
IoOrderInvoiceService ioOrderInvoiceService;
//获取单据业务详情---临时接口查询
@AuthRuleAnnotation("")
@GetMapping("udiwms/inout/order/draft/biz")
@ -88,12 +94,17 @@ public class IoOrderDetailBizController extends BaseController {
return ResultVOUtils.success(pageSimpleResponse);
}
@Resource
SupProductService supProductService;
@Resource
SystemParamConfigService systemParamConfigService;
//录入业务单据详情
@AuthRuleAnnotation("")
@PostMapping("/udiwms/inout/order/addBizProduct")
public BaseResponse addBizProduct(@RequestBody AddBizProductReqeust addBizProductReqeust) {
SystemParamConfigEntity systemParamConfigEntity = systemParamConfigService.selectByParamKey("vail_product_cert");
boolean isVailCert = systemParamConfigEntity.getParamValue().equals("1") ? true : false;
AuthAdmin authAdmin = getUser();
if (addBizProductReqeust.getRelId() == null && CollUtil.isEmpty(addBizProductReqeust.getDatas()))
return ResultVOUtils.error(500, "未选择产品信息");
@ -122,6 +133,7 @@ public class IoOrderDetailBizController extends BaseController {
orderEntity.setCustomerId(authAdmin.getCustomerId() + "");
orderEntity.setDeptCode(invWarehouseEntity.getParentId());
orderEntity.setInvCode(orderEntity.getInvCode());
orderEntity.setBusType(bussinessTypeEntity.getBusType());
orderService.insertOrder(orderEntity);
}
@ -132,7 +144,19 @@ public class IoOrderDetailBizController extends BaseController {
datas.add(addBizProductReqeust);
}
for (AddBizProductReqeust item : datas) {
UdiRelevanceResponse udiRelevanceResponse = udiRelevanceService.selectGroupById(item.getRelId());
UdiRelevanceResponse udiRelevanceResponse = udiRelevanceService.selectSupGroupById(item.getRelId());
// todo 查询产品是否已经通过认证
// if (isVailCert && udiRelevanceResponse.isNeedCert()) {
// SupProductEntity supProductEntity = supProductService.findByRelIdFk(udiRelevanceResponse.getId() + "");
// if (supProductEntity != null && (supProductEntity.getAuditStatus() == ConstantStatus.AUDIT_PASS || supProductEntity.getAuditStatus() == ConstantStatus.AUDIT_CHANGE_PASS)) {
//
// } else {
// return ResultVOUtils.error(500, "产品资质证书未通过审核!");
// }
// }
IoOrderDetailBizEntity ioOrderDetailBizEntity = new IoOrderDetailBizEntity();
ioOrderDetailBizEntity.setOrderIdFk(orderEntity.getBillNo());
ioOrderDetailBizEntity.setBindRlFk(udiRelevanceResponse.getId());
@ -158,6 +182,7 @@ public class IoOrderDetailBizController extends BaseController {
return ResultVOUtils.success(orderEntity);
}
//修改业务单据详情
@AuthRuleAnnotation("")
@PostMapping("/udiwms/inout/order/updateBizProduct")
@ -239,6 +264,7 @@ public class IoOrderDetailBizController extends BaseController {
orderEntity.setDealStatus(ConstantStatus.ORDER_DEAL_DRAFT);
orderEntity.setFromType(ConstantStatus.FROM_THRORDER);
orderEntity.setOrderType(ConstantStatus.ORDER_TYPE_BIZ);
orderEntity.setBusType(bussinessTypeEntity.getBusType());
orderService.insertOrder(orderEntity);
for (ThrOrderDetailEntity thrOrderDetailEntity : thrOrderDetailEntities) {
@ -337,6 +363,7 @@ public class IoOrderDetailBizController extends BaseController {
orderEntity.setOrderType(ConstantStatus.ORDER_TYPE_BIZ);
orderEntity.setFromDeptCode(purReceiveEntity.getDeptCode());
orderEntity.setFromInvCode(purReceiveEntity.getInvCode());
orderEntity.setBusType(bussinessTypeEntity.getBusType());
orderService.insertOrder(orderEntity);
for (PurReceiveDetailEntity purReceiveDetailEntity : purReceiveDetailEntities) {
IoOrderDetailBizEntity ioOrderDetailBizEntity = new IoOrderDetailBizEntity();
@ -385,6 +412,13 @@ public class IoOrderDetailBizController extends BaseController {
return ResultVOUtils.page(pageInfo);
}
@GetMapping("/udiwms/inout/bizDetail/filterListInvoice")
public BaseResponse filterListInvoice(FilterOrderDetailBizRequest orderDetailBizRequest) {
List<IoOrderInvoiceResponse> list = orderDetailBizService.filterListInv(orderDetailBizRequest);
PageInfo<IoOrderInvoiceResponse> pageInfo = new PageInfo<>(list);
return ResultVOUtils.page(pageInfo);
}
@AuthRuleAnnotation("")
@PostMapping("/udiwms/inout/biz/updateBind")
@ -404,4 +438,53 @@ public class IoOrderDetailBizController extends BaseController {
}
/**
*
*
* @param id
* @return
*/
@GetMapping("/udiwms/inout/biz/deleteById")
public BaseResponse deleteById(Integer id) {
return ResultVOUtils.success(ioOrderInvoiceService.deleteByInvId(id));
}
/**
*
*
* @param ioOrderInvoiceRequest
* @return
*/
@PostMapping("/udiwms/inout/biz/updateById")
public BaseResponse deleteById(@RequestBody IoOrderInvoiceRequest ioOrderInvoiceRequest) {
return ResultVOUtils.success(ioOrderInvoiceService.updateByInvId(ioOrderInvoiceRequest));
}
@PostMapping("/udiwms/inout/biz/insertInvoice")
public BaseResponse insertInvoice(@RequestBody List<IoOrderDetailResultEntity> list) {
if (CollUtil.isEmpty(list)) {
return ResultVOUtils.error(500, "请选入产品!");
}
for (IoOrderDetailResultEntity ioOrderDetailResultEntity : list) {
IoOrderInvoiceEntity ioOrderInvoiceEntity = new IoOrderInvoiceEntity();
ioOrderInvoiceEntity.setOrderIdFk(ioOrderDetailResultEntity.getOrderIdFk());
ioOrderInvoiceEntity.setBindRlFk(ioOrderDetailResultEntity.getBindRlFk() + "");
ioOrderInvoiceEntity.setBatchNo(ioOrderDetailResultEntity.getBatchNo());
ioOrderInvoiceEntity.setProductDate(ioOrderDetailResultEntity.getProductDate());
ioOrderInvoiceEntity.setExpireDate(ioOrderDetailResultEntity.getExpireDate());
boolean b = ioOrderInvoiceService.insertInvoice(ioOrderInvoiceEntity);
}
return ResultVOUtils.success("成功");
}
}

@ -1,17 +1,20 @@
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;
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.controller.BaseController;
import com.glxp.api.entity.basic.BasicBussinessTypeEntity;
import com.glxp.api.entity.inout.IoOrderDetailBizEntity;
import com.glxp.api.entity.inout.IoOrderDetailCodeEntity;
import com.glxp.api.entity.inout.IoOrderEntity;
import com.glxp.api.req.inout.FilterCodeRequest;
import com.glxp.api.req.inout.FilterOrderDetailResultRequest;
import com.glxp.api.req.inout.FilterOrderRequest;
import com.glxp.api.res.inout.IoCodeResponse;
import com.glxp.api.res.inout.IoOrderDetailResultResponse;
import com.glxp.api.service.basic.IBasicBussinessTypeService;
@ -27,7 +30,7 @@ import java.util.List;
*
*/
@RestController
public class IoOrderDetailResultController {
public class IoOrderDetailResultController extends BaseController {
@Resource
IoOrderService orderService;
@Resource
@ -51,6 +54,32 @@ public class IoOrderDetailResultController {
return ResultVOUtils.page(pageInfo);
}
/**
*
*
* @param orderDetailResultRequest
* @return
*/
@AuthRuleAnnotation("")
@GetMapping("/udiwms/inout/resultDetail/filterOrderList")
public BaseResponse filterOrderList(FilterOrderDetailResultRequest orderDetailResultRequest) {
FilterOrderRequest filterOrderRequest = new FilterOrderRequest();
filterOrderRequest.setVueType(orderDetailResultRequest.getActionType());
List<String> actions = orderService.setActions(filterOrderRequest);
if (CollUtil.isEmpty(actions)) {
return ResultVOUtils.success("");
}
orderDetailResultRequest.setActions(actions);
List<IoOrderDetailResultResponse> list = orderDetailResultService.filterOrderList(orderDetailResultRequest);
// for (IoOrderDetailResultResponse orderDetailResultResponse : list) {
// if(orderDetailResultResponse.get)
// }
PageInfo<IoOrderDetailResultResponse> pageInfo = new PageInfo<>(list);
return ResultVOUtils.page(pageInfo);
}
/**
* pda
*/

@ -83,8 +83,30 @@ public class IoOrderReviewController extends BaseController {
}
//获取验收单据业务详情
@AuthRuleAnnotation("")
@GetMapping("/udiwms/stock/order/accept/getStatus")
public BaseResponse getStatus(String billNo) {
if (StrUtil.isBlank(billNo)) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL);
}
AcceptOrderResponse acceptOrderEntity = new AcceptOrderResponse();
acceptOrderEntity.setBillNo(billNo);
List<IoOrderDetailResultResponse> datas = (List<IoOrderDetailResultResponse>) redisUtil.get(ConstantStatus.REDIS_BILLNO + billNo);
if (CollUtil.isNotEmpty(datas)) {
boolean isFinish = vailFinish(datas);
if (isFinish)
return ResultVOUtils.success("单据已验收完成");
else
return ResultVOUtils.error(500, "单据未验收完成");
} else {
return ResultVOUtils.error(500, "单据未验收完成");
}
}
//前端直接验收完成
//前端二次审核
@AuthRuleAnnotation("")
@PostMapping("/spms/inout/order/web/updateStatus")
public BaseResponse webUpdateStatus(@RequestBody ReviewFinishRequest updateExportStatusRequest,
@ -97,9 +119,34 @@ public class IoOrderReviewController extends BaseController {
if (orderEntity == null) {
return ResultVOUtils.error(500, "未找到该业务单据");
}
return updateReview(getUser(), orderEntity);
if (orderEntity.getStatus() == ConstantStatus.ORDER_STATUS_CHECK_REW) {
return updateReview(getUser(), orderEntity);
} else if (orderEntity.getStatus() == ConstantStatus.ORDER_STATUS_CHECK_SUCCESS) {
return thirdUpdateReview(getUser(), orderEntity);
} else {
return ResultVOUtils.error(500, "当前单据状态非处于审核状态!");
}
}
//前端第三次验收
@AuthRuleAnnotation("")
@PostMapping("/spms/inout/order/third/updateStatus")
public BaseResponse thirdUpdateStatus(@RequestBody ReviewFinishRequest updateExportStatusRequest,
BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
IoOrderEntity orderEntity = orderService.findByBillNo(updateExportStatusRequest.getOrderId());
if (orderEntity == null) {
return ResultVOUtils.error(500, "未找到该业务单据");
}
return thirdUpdateReview(getUser(), orderEntity);
}
@Resource
IoCodeService codeService;
@Resource
@ -346,5 +393,19 @@ public class IoOrderReviewController extends BaseController {
return ResultVOUtils.success("更新成功");
}
//前端第三次验收
public BaseResponse thirdUpdateReview(AuthAdmin authAdmin, IoOrderEntity orderEntity) {
orderEntity.setStatus(ConstantStatus.ORDER_STATUS_CHECK_REW);
orderEntity.setReviewUser(authAdmin.getId() + "");
orderEntity.setUpdateTime(new Date());
orderEntity.setAuditTime(new Date());
orderEntity.setDeliveryStatus(ConstantStatus.ORDER_DELIVERY_STATUS_ED);
orderService.update(orderEntity);
redisUtil.del(ConstantStatus.REDIS_BILLNO + orderEntity.getBillNo());
redisUtil.del(ConstantStatus.REDIS_BILLNO_CODES + orderEntity.getBillNo());
//验收完成->进入流程
ioCheckInoutService.checkThird(orderEntity);
return ResultVOUtils.success("更新成功");
}
}

@ -42,6 +42,8 @@ public class InvPreinOrderController extends BaseController {
@GetMapping("/udiwms/inv/prein/filter")
public BaseResponse filterOrder(FilterInvPreinRequest filterInvPreinRequest) {
List<InvPreinOrderResponse> list = invPreinOrderService.filterList(filterInvPreinRequest);
PageInfo<InvPreinOrderResponse> pageInfo = new PageInfo<>(list);
return ResultVOUtils.page(pageInfo);
@ -72,7 +74,7 @@ public class InvPreinOrderController extends BaseController {
@AuthRuleAnnotation("")
@GetMapping("spms/prein/inv/products/getDetaiByCode")
public BaseResponse getDetaiByCode(FilterInvProductDetailRequest filterInvProductDetailRequest) {
InvPreinDetailEntity invProductDetailEntity = invPreinDetailService.findOneByCode(filterInvProductDetailRequest.getCode());
InvPreinDetailEntity invProductDetailEntity = invPreinDetailService.findUseOneByCode(filterInvProductDetailRequest.getCode());
if (invProductDetailEntity == null) {
return ResultVOUtils.error(500, "预验收库存未存在此产品!");
} else {
@ -83,7 +85,7 @@ public class InvPreinOrderController extends BaseController {
UdiEntity udiEntity = FilterUdiUtils.getUdi(filterInvProductDetailRequest.getCode());
if (StrUtil.isEmpty(udiEntity.getSerialNo())) {//该单据已有该产品
//无序列号,则可能存在多个预验收入库单
List<InvPreinDetailEntity> invPreinDetailEntities = invPreinDetailService.findByCode(filterInvProductDetailRequest.getCode());
List<InvPreinDetailEntity> invPreinDetailEntities = invPreinDetailService.findUseByCode(filterInvProductDetailRequest.getCode());
int count = 0;
for (InvPreinDetailEntity temp : invPreinDetailEntities) {
count = count + temp.getCount();

@ -1,6 +1,7 @@
package com.glxp.api.dao.basic;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.glxp.api.dao.BaseMapperPlus;
import com.glxp.api.entity.basic.BasicBussinessTypeEntity;
import com.glxp.api.req.basic.FilterBussinessTypeRequest;
import com.glxp.api.res.basic.BasicBussinessTypeResponse;
@ -10,7 +11,7 @@ import org.apache.ibatis.annotations.Param;
import java.util.List;
@Mapper
public interface BasicBussinessTypeDao extends BaseMapper<BasicBussinessTypeEntity> {
public interface BasicBussinessTypeDao extends BaseMapperPlus<BasicBussinessTypeDao, BasicBussinessTypeEntity, BasicBussinessTypeEntity> {
/**

@ -2,6 +2,7 @@ package com.glxp.api.dao.basic;
import com.glxp.api.entity.basic.UdiProductEntity;
import com.glxp.api.req.basic.FilterUdiRelRequest;
import com.glxp.api.req.basic.UdiInfoRequest;
import com.glxp.api.res.basic.UdiRelevanceResponse;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@ -35,6 +36,11 @@ public interface UdiProductDao {
*/
boolean updateUdiInfoByUuid(UdiProductEntity udiProductEntity);
/**
* ID
*/
boolean updateUdiInfoById(UdiProductEntity udiProductEntity);
boolean deleteById(@Param("id") String id);
boolean deleteByUuid(@Param("uuid") String uuid);
@ -68,4 +74,6 @@ public interface UdiProductDao {
* @return
*/
List<String> selectGgxhList(@Param("relId") String relId);
boolean updateUdiInfoNotAll(UdiInfoRequest udiInfoRequest);
}

@ -1,9 +1,14 @@
package com.glxp.api.dao.inout;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.glxp.api.dao.BaseMapperPlus;
import com.glxp.api.entity.inout.IoCodeLostEntity;
import com.glxp.api.res.inout.IoCodeLostResponse;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@Mapper
public interface IoCodeLostMapper extends BaseMapper<IoCodeLostEntity> {
public interface IoCodeLostMapper extends BaseMapperPlus<IoCodeLostMapper, IoCodeLostEntity, IoCodeLostEntity> {
List<IoCodeLostResponse> selectLost(IoCodeLostEntity ioCodeLostEntity);
}

@ -4,6 +4,7 @@ import com.glxp.api.dao.BaseMapperPlus;
import com.glxp.api.entity.inout.IoOrderDetailBizEntity;
import com.glxp.api.req.inout.FilterOrderDetailBizRequest;
import com.glxp.api.res.inout.IoOrderDetailBizResponse;
import com.glxp.api.res.inout.IoOrderInvoiceResponse;
import java.util.List;
@ -17,4 +18,6 @@ public interface IoOrderDetailBizDao extends BaseMapperPlus<IoOrderDetailBizDao,
*/
List<IoOrderDetailBizResponse> filterList(FilterOrderDetailBizRequest orderDetailBizRequest);
List<IoOrderInvoiceResponse> filterListInv(FilterOrderDetailBizRequest orderDetailBizRequest);
}

@ -17,4 +17,13 @@ public interface IoOrderDetailResultDao extends BaseMapperPlus<IoOrderDetailBizD
*/
List<IoOrderDetailResultResponse> filterList(FilterOrderDetailResultRequest orderDetailResultRequest);
/**
* VO
*
* @param orderDetailResultRequest
* @return
*/
List<IoOrderDetailResultResponse> filterOrderList(FilterOrderDetailResultRequest orderDetailResultRequest);
}

@ -0,0 +1,13 @@
package com.glxp.api.dao.inout;
import com.glxp.api.dao.BaseMapperPlus;
import com.glxp.api.entity.inout.IoOrderInvoiceEntity;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface IoOrderInvoiceMapper extends BaseMapperPlus<IoOrderInvoiceMapper, IoOrderInvoiceEntity, IoOrderInvoiceEntity> {
boolean insertInvoice(IoOrderInvoiceEntity ioOrderInvoiceEntity);
}

@ -81,6 +81,19 @@ public class BasicBusTypeChangeEntity {
@TableField(value = "remark")
private String remark;
@TableField(value = "auditStatus")
private Integer auditStatus;
@TableField(value = "busAuditStatus")
private Integer busAuditStatus;
@TableField(value = "targetBusAction")
private String targetBusAction;
@TableField(value = "beforeTime")
private Integer beforeTime;
@TableField(value = "busBeforeTime")
private Integer busBeforeTime;
public static final String COL_ID = "id";
public static final String COL_ORIGINACTION = "originAction";
@ -104,4 +117,4 @@ public class BasicBusTypeChangeEntity {
public static final String COL_UPDATETIME = "updateTime";
public static final String COL_REMARK = "remark";
}
}

@ -123,6 +123,19 @@ public class BasicBusTypePreEntity {
@TableField(value = "remark")
private String remark;
/**
*
*/
@TableField(value = "targetBusAction")
private String targetBusAction;
@TableField(value = "busBeforeTime")
private Integer busBeforeTime;
@TableField(value = "auditStatus")
private Integer auditStatus;
@TableField(value = "busAuditStatus")
private Integer busAuditStatus;
public static final String COL_ID = "id";
public static final String COL_INTRO = "intro";
@ -158,4 +171,4 @@ public class BasicBusTypePreEntity {
public static final String COL_UPDATETIME = "updateTime";
public static final String COL_REMARK = "remark";
}
}

@ -166,7 +166,7 @@ public class BasicBussinessTypeEntity {
private boolean secCheckSp;
/**
* 123 4
*
*/
@TableField(value = "corpType")
private int corpType;
@ -294,8 +294,8 @@ public class BasicBussinessTypeEntity {
/**
*
*/
@TableField(value = "advanceType")
private boolean advanceType;
// @TableField(value = "advanceType")
// private boolean advanceType;
/**
*
@ -312,8 +312,8 @@ public class BasicBussinessTypeEntity {
/**
*
*/
@TableField(value = "preIn")
private boolean preIn;
// @TableField(value = "preIn")
// private boolean preIn;
@TableField(value = "preInBack")
@ -354,4 +354,47 @@ public class BasicBussinessTypeEntity {
@TableField(value = "vailGroupBuy")
private int vailGroupBuy; //校验是否集采产品 0:全部1只采集集采产品2只采集非集采产品
@TableField(value = "busType")
private Integer busType; //1:正常2送货3.到货,4:退货
@TableField(value = "inStock") //是否更改库存10
private boolean inStock;
@TableField(value = "actionType")
private int actionType; //1带票正常2.预验收。3寄售
@TableField(value = "thrCheckEnable")
private boolean thrCheckEnable;
@TableField(value = "thrCheckWebNew")
private boolean thrCheckWebNew;
@TableField(value = "thrCheckPdaUn")
private boolean thrCheckPdaUn;
@TableField(value = "thrCheckPdaEd")
private boolean thrCheckPdaEd;
@TableField(value = "thrCheckUdims")
private boolean thrCheckUdims;
@TableField(value = "thrCheckPc")
private boolean thrCheckPc;
@TableField(value = "thrCheckSp")
private boolean thrCheckSp;
@TableField(value = "thrCheckChange")
private boolean thrCheckChange;
@TableField(value = "thrCheckBalance")
private boolean thrCheckBalance;
@TableField(value = "thrCheckCopy")
private boolean thrCheckCopy;
@TableField(value = "fillCodeRel")
private boolean fillCodeRel;
@TableField(value = "checkVailDate")
private boolean checkVailDate;
@TableField(value = "checkExpire")
private boolean checkExpire;
@TableField(value = "checkCertExpire")
private boolean checkCertExpire;
}

@ -72,6 +72,24 @@ public class IoCodeLostEntity {
@TableField(value = "remark")
private String remark;
@TableField(value = "nameCode")
private String nameCode;
@TableField(exist = false)
private String cpmctymc;
@TableField(exist = false)
private String ggxh;
@TableField(exist = false)
private String startTime;
@TableField(exist = false)
private String endTime;
public static final String COL_ID = "id";
public static final String COL_CODE = "code";

@ -213,4 +213,17 @@ public class IoOrderEntity {
@TableField(value = "exportStatus")
private Integer exportStatus;
@TableField(value = "busType")
private Integer busType; //1:正常2送货3.到货
@TableField(value = "deliveryStatus")
private Integer deliveryStatus; //单据送货验收状态
@TableField(value = "processStatus")
private Integer processStatus; //退货单据处理状态
@TableField(value = "inCodeStatus")
private int inCodeStatus; //内部码生成状态
}

@ -0,0 +1,129 @@
package com.glxp.api.entity.inout;
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 = "io_order_invoice")
public class IoOrderInvoiceEntity {
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
/**
*
*/
@TableField(value = "orderIdFk")
private String orderIdFk;
/**
*
*/
@TableField(value = "machineNo")
private String machineNo;
/**
*
*/
@TableField(value = "invoiceCode")
private String invoiceCode;
/**
*
*/
@TableField(value = "invoiceEncode")
private String invoiceEncode;
/**
*
*/
@TableField(value = "invoiceDate")
private String invoiceDate;
/**
*
*/
@TableField(value = "price")
private String price;
/**
*
*/
@TableField(value = "updateTime")
private Date updateTime;
/**
*
*/
@TableField(value = "`createUser`")
private String createUser;
/**
*
*/
@TableField(value = "createTime")
private Date createTime;
/**
*
*/
@TableField(value = "updateUser")
private String updateUser;
@TableField(value = "bindRlFk")
private String bindRlFk;
/**
*
*/
@TableField(value = "batchNo")
private String batchNo;
/**
*
*/
@TableField(value = "productDate")
private String productDate;
/**
*
*/
@TableField(value = "expireDate")
private String expireDate;
@TableField(value = "licenseUrl")
private String licenseUrl;
@TableField(value = "remark")
private String remark;
public static final String COL_ID = "id";
public static final String COL_ORDERIDFK = "orderIdFk";
public static final String COL_MACHINENO = "machineNo";
public static final String COL_INVOICECODE = "invoiceCode";
public static final String COL_INVOICEENCODE = "invoiceEncode";
public static final String COL_INVOICEDATE = "invoiceDate";
public static final String COL_PRICE = "price";
public static final String COL_UPDATETIME = "updateTime";
public static final String COL_CREATEUSER = "createUser";
public static final String COL_CREATETIME = "createTime";
public static final String COL_UPDATEUSER = "updateUser";
public static final String COL_REMARK = "remark";
}

@ -60,6 +60,19 @@ public class InvPreinDetailEntity {
@TableField(value = "relId")
private Long relId;
/**
*
*/
@TableField(value = "`originCount`")
private int originCount;
/**
*
*/
@TableField(value = "originReCount")
private int originReCount;
/**
*
*/
@ -72,4 +85,10 @@ public class InvPreinDetailEntity {
@TableField(value = "reCount")
private int reCount;
/**
* 1:2退3.使
*/
@TableField(value = "status")
private int status;
}

@ -4,7 +4,9 @@ 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 java.util.Date;
import lombok.Data;
@Data
@ -175,4 +177,4 @@ public class PurOrderEntity {
public static final String COL_APPLYBILLNO = "applyBillNo";
public static final String COL_STOCKORDERNO = "stockOrderNo";
}
}

@ -1,5 +1,6 @@
package com.glxp.api.req.basic;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Data;
import javax.validation.constraints.NotBlank;
@ -274,5 +275,29 @@ public class BussinessTypeSaveRequest {
private boolean preInBack;
private boolean vailDispatch; //校验是否可配送
private int vailGroupBuy; //校验是否集采产品 0:全部1只采集集采产品2只采集非集采产品
private Integer busType; //1:正常2送货3.到货
private int actionType; //1带票正常2.预验收。3寄售
private boolean inStock;
private boolean thrCheckEnable;
private boolean thrCheckWebNew;
private boolean thrCheckPdaUn;
private boolean thrCheckPdaEd;
private boolean thrCheckUdims;
private boolean thrCheckPc;
private boolean thrCheckSp;
private boolean thrCheckChange;
private boolean thrCheckBalance;
private boolean thrCheckCopy;
private boolean fillCodeRel;
private boolean checkVailDate;
private boolean checkExpire;
private boolean checkCertExpire;
}

@ -103,5 +103,9 @@ public class FilterBussinessTypeRequest extends ListPageRequest {
*/
private Boolean preIn;
private Integer busType;
private Boolean inStock;
private Boolean fillCodeRel;
private String vueType;
}

@ -3,6 +3,8 @@ package com.glxp.api.req.inout;
import com.glxp.api.util.page.ListPageRequest;
import lombok.Data;
import java.util.List;
/**
*
*/
@ -32,5 +34,16 @@ public class FilterOrderDetailResultRequest extends ListPageRequest {
private int showType;
private String productName;
private String coName;
private String spec;
private String formName;
private String startTime;
private String endTime;
private String fromCorpName;
private String startAduditTime; //起始日期
private String endAduditTime; //结束日期
private String fromCorp;
private String actionType;
private String manufacturer;
private String zczbhhzbapzbh;
private List<String> actions;
}

@ -48,6 +48,17 @@ public class FilterOrderRequest extends ListPageRequest {
*/
private String endTime;
/**
*
*/
private String startAduditTime;
/**
*
*/
private String endAduditTime;
/**
*
*/
@ -128,9 +139,26 @@ public class FilterOrderRequest extends ListPageRequest {
*/
private String statusType;
/**
* supDelivery
* supArrival
* 退 supReturned
* supPurchase
* supInvoice
* norDetail
* preDetail
*/
private String vueType; //页面类型
private Integer orderType;
private Integer syncStatus;
/**
*
*/
private List<String> actions;
/**
*
*/
@ -146,4 +174,6 @@ public class FilterOrderRequest extends ListPageRequest {
private String corpName;
private Integer busType;
}

@ -0,0 +1,86 @@
package com.glxp.api.req.inout;
import lombok.Data;
import java.util.Date;
/**
* @author : zhangsan
* @date : 2023/3/15 10:02
* @modyified By :
*/
@Data
public class IoOrderInvoiceRequest {
private Integer id;
private String orderIdFk;
private String machineNo;
private String invoiceCode;
private String invoiceEncode;
private String invoiceDate;
private String price;
private Date updateTime;
private String createUser;
private Date createTime;
private String updateUser;
private String bindRlFk;
private String batchNo;
private String productDate;
private String expireDate;
private String licenseUrl;
private String remark;
public static final String COL_ID = "id";
public static final String COL_ORDERIDFK = "orderIdFk";
public static final String COL_MACHINENO = "machineNo";
public static final String COL_INVOICECODE = "invoiceCode";
public static final String COL_INVOICEENCODE = "invoiceEncode";
public static final String COL_INVOICEDATE = "invoiceDate";
public static final String COL_PRICE = "price";
public static final String COL_UPDATETIME = "updateTime";
public static final String COL_CREATEUSER = "createUser";
public static final String COL_CREATETIME = "createTime";
public static final String COL_UPDATEUSER = "updateUser";
public static final String COL_REMARK = "remark";
}

@ -8,4 +8,17 @@ public class FilterInvPreinDetailRequest extends ListPageRequest {
private String orderId;
private String code;
private String productName;
private String ggxh;
private String manufactory;
private String zczbhhzbapzbh;
private String auditTime;
private String billNo;
private String invCode;
private String batchNo;
private String produceDate;
private String expireDate;
private String startAduditTime;
private String endAduditTime;
private String nameCode;
}

@ -28,5 +28,5 @@ public class BasicBusTypePreResponse extends BasicBusTypePreEntity {
*
*/
private String defaultInvName;
private String targetBusName;
}

@ -1,5 +1,6 @@
package com.glxp.api.res.basic;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Data;
/**
@ -41,7 +42,7 @@ public class BasicBussinessTypeResponse {
/**
*
*/
private Boolean advanceType;
// private Boolean advanceType;
private Boolean changeEnable;
private Boolean genUnit;
private String defaultUnit;
@ -81,7 +82,7 @@ public class BasicBussinessTypeResponse {
private String prefix;
private String localPrefix;
private boolean preIn;
// private boolean preIn;
private boolean preInBack;
private boolean outToSpms;
private boolean ullageFill;
@ -126,5 +127,25 @@ public class BasicBussinessTypeResponse {
private boolean vailDispatch; //校验是否可配送
private int vailGroupBuy; //校验是否集采产品 0:全部1只采集集采产品2只采集非集采产品
private Integer busType; //1:正常2送货3.到货
private int actionType; //1带票正常2.预验收。3寄售
private boolean inStock;
private boolean thrCheckEnable;
private boolean thrCheckWebNew;
private boolean thrCheckPdaUn;
private boolean thrCheckPdaEd;
private boolean thrCheckUdims;
private boolean thrCheckPc;
private boolean thrCheckSp;
private boolean thrCheckChange;
private boolean thrCheckBalance;
private boolean thrCheckCopy;
private boolean fillCodeRel;
private boolean checkVailDate;
private boolean checkExpire;
private boolean checkCertExpire;
}

@ -96,7 +96,6 @@ public class UdiRelevanceResponse {
private Integer isDateBy;
private String relCode;
//关联查询字典
private String unitFk; //供应商ID
private String companyName; //供应商名称
@ -105,6 +104,10 @@ public class UdiRelevanceResponse {
private Long relId;
private boolean dispatch; //是否可配送
private boolean groupBuy; //是否集采产品
private boolean needCert; //是否需要资质材料
private String classifyName; //物资分类名称
public int getBhzxxsbzsl() {
if (bhzxxsbzsl == null || bhzxxsbzsl == 0) {
@ -138,13 +141,4 @@ public class UdiRelevanceResponse {
return false;
return isUseDy;
}
public Integer getIsDateBy() {
return isDateBy;
}
public void setIsDateBy(Integer isDateBy) {
this.isDateBy = isDateBy;
}
}

@ -0,0 +1,69 @@
package com.glxp.api.res.inout;
import lombok.Data;
import java.util.Date;
/**
* @author : zhangsan
* @date : 2023/3/22 11:08
* @modyified By :
*/
@Data
public class IoCodeLostResponse {
private Integer id;
private String code;
private String batchNo;
private String produceDate;
private String expireDate;
private String serialNo;
private String supId;
private Date createTime;
private Date updateTime;
private String remark;
//产品名称
private String cpmctymc;
//规格型号
private String ggxh;
public static final String COL_ID = "id";
public static final String COL_CODE = "code";
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_CREATETIME = "createTime";
public static final String COL_UPDATETIME = "updateTime";
public static final String COL_REMARK = "remark";
}

@ -0,0 +1,111 @@
package com.glxp.api.res.inout;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.util.Date;
@Data
@TableName(value = "io_order_invoice")
public class IoOrderInvoiceResponse {
private Integer id;
/**
*
*/
private String orderIdFk;
/**
*
*/
private String machineNo;
/**
*
*/
private String invoiceCode;
/**
*
*/
private String invoiceEncode;
/**
*
*/
private String invoiceDate;
/**
*
*/
private String price;
/**
*
*/
private Date updateTime;
/**
*
*/
private String createUser;
/**
*
*/
private Date createTime;
/**
*
*/
private String updateUser;
private String bindRlFk;
/**
*
*/
private String batchNo;
/**
*
*/
private String productDate;
/**
*
*/
private String expireDate;
private String remark;
private String cpmctymc;
private String ggxh;
private String licenseUrl;
public static final String COL_ID = "id";
public static final String COL_ORDERIDFK = "orderIdFk";
public static final String COL_MACHINENO = "machineNo";
public static final String COL_INVOICECODE = "invoiceCode";
public static final String COL_INVOICEENCODE = "invoiceEncode";
public static final String COL_INVOICEDATE = "invoiceDate";
public static final String COL_PRICE = "price";
public static final String COL_UPDATETIME = "updateTime";
public static final String COL_CREATEUSER = "createUser";
public static final String COL_CREATETIME = "createTime";
public static final String COL_UPDATEUSER = "updateUser";
public static final String COL_REMARK = "remark";
}

@ -216,12 +216,20 @@ public class IoOrderResponse {
*/
private Integer exportStatus;
private Integer deliveryStatus;
private Integer processStatus;
private int inCodeStatus;
/**
*
*/
private String errMsg;
private Integer busType; //1:正常2送货3.到货
public String getFromName() {
if (StrUtil.isNotEmpty(fromCorpName))

@ -56,11 +56,23 @@ public class InvPreinDetailResponse {
*/
private int count;
private Integer originReCount;
/**
*
*/
private int reCount;
private Integer status;
private String productName;
private String ggxh;
private String manufactory;
private String zczbhhzbapzbh;
private String auditTime;
private String billNo;
private String invName;
private String measname;
private String fromName;
}

@ -67,7 +67,7 @@ public interface IBasicBussinessTypeService {
*
* @param bussinessTypeEntity
*/
boolean insertIgnoreBussinessType(BasicBussinessTypeEntity bussinessTypeEntity,String id);
boolean insertIgnoreBussinessType(BasicBussinessTypeEntity bussinessTypeEntity, String id);
/**
*
@ -110,4 +110,7 @@ public interface IBasicBussinessTypeService {
boolean checkBusTypeNameExists(String name, Integer id);
List<BasicBussinessTypeEntity> selectIgnoreSelf(String action);
List<BasicBussinessTypeEntity> findByVueType(String vueType);
}

@ -2,6 +2,7 @@ package com.glxp.api.service.basic;
import com.glxp.api.entity.basic.UdiProductEntity;
import com.glxp.api.req.basic.FilterUdiRelRequest;
import com.glxp.api.req.basic.UdiInfoRequest;
import com.glxp.api.res.basic.UdiRelevanceResponse;
import org.apache.ibatis.annotations.Param;
@ -36,6 +37,8 @@ public interface UdiProductService {
boolean updateUdiInfoByUuid(UdiProductEntity udiProductEntity);
boolean updateUdiInfoById(UdiProductEntity udiProductEntity);
boolean deleteById(String id);
boolean deleteByUuid(String uuid);
@ -47,4 +50,7 @@ public interface UdiProductService {
* @return
*/
List<String> getGgxhList(String relId);
boolean updateUdiInfoNotAll(UdiInfoRequest udiInfoRequest);
}

@ -21,6 +21,7 @@ public interface UdiRelevanceService {
UdiRelevanceResponse selectByNameCode(String nameCode);
UdiRelevanceResponse selectSupGroupById(Long id);
//根据DI查询产品信息
List<UdiRelevanceResponse> selectAllByNameCode(String nameCode);

@ -4,6 +4,8 @@ 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.Constant;
import com.glxp.api.constant.ConstantStatus;
import com.glxp.api.constant.ConstantType;
import com.glxp.api.dao.basic.BasicBussinessTypeDao;
import com.glxp.api.entity.basic.BasicBussinessTypeEntity;
@ -19,6 +21,7 @@ import javax.annotation.Resource;
import java.util.Collections;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
@Slf4j
@Service
@ -126,8 +129,8 @@ public class BasicBussinessTypeServiceImpl implements IBasicBussinessTypeService
}
@Override
public boolean insertIgnoreBussinessType(BasicBussinessTypeEntity bussinessTypeEntity,String id) {
setUpdateInfoById(bussinessTypeEntity,id);
public boolean insertIgnoreBussinessType(BasicBussinessTypeEntity bussinessTypeEntity, String id) {
setUpdateInfoById(bussinessTypeEntity, id);
return basicBussinessTypeDao.insertIgnoreBussinessType(bussinessTypeEntity);
}
@ -188,6 +191,39 @@ public class BasicBussinessTypeServiceImpl implements IBasicBussinessTypeService
return list;
}
@Override
public List<BasicBussinessTypeEntity> findByVueType(String vueType) {
List<BasicBussinessTypeEntity> bussinessTypeEntities = null;
switch (vueType) {
case Constant.ORDER_ACTION_NOR_DETAIL:
bussinessTypeEntities = basicBussinessTypeDao.selectList(new QueryWrapper<BasicBussinessTypeEntity>()
.eq("actionType", 1).eq("inStock", true));
break;
case Constant.ORDER_ACTION_PRE_DETAIL:
bussinessTypeEntities = basicBussinessTypeDao.selectList(new QueryWrapper<BasicBussinessTypeEntity>()
.eq("actionType", 3).eq("inStock", true));
break;
case Constant.ORDER_ACTION_SUP_DELIVERY:
bussinessTypeEntities = basicBussinessTypeDao.selectList(new QueryWrapper<BasicBussinessTypeEntity>()
.eq("mainAction", ConstantType.TYPE_PUT).eq("corpType", ConstantStatus.CORP_TYPE_OUT)
.eq("spUse", true).eq("inStock", false));
break;
case Constant.ORDER_ACTION_SUP_INVOICE:
bussinessTypeEntities = basicBussinessTypeDao.selectList(new QueryWrapper<BasicBussinessTypeEntity>()
.eq("mainAction", ConstantType.TYPE_PUT).eq("corpType", ConstantStatus.CORP_TYPE_OUT)
.eq("spUse", true).eq("actionType", 1));
break;
default:
break;
}
return bussinessTypeEntities;
}
/**
* /
*
@ -205,7 +241,7 @@ public class BasicBussinessTypeServiceImpl implements IBasicBussinessTypeService
}
private void setUpdateInfoById(BasicBussinessTypeEntity bussinessTypeEntity,String id) {
private void setUpdateInfoById(BasicBussinessTypeEntity bussinessTypeEntity, String id) {
Date now = new Date();

@ -6,6 +6,7 @@ import com.github.pagehelper.PageHelper;
import com.glxp.api.dao.basic.UdiProductDao;
import com.glxp.api.entity.basic.UdiProductEntity;
import com.glxp.api.req.basic.FilterUdiRelRequest;
import com.glxp.api.req.basic.UdiInfoRequest;
import com.glxp.api.res.basic.UdiRelevanceResponse;
import com.glxp.api.service.basic.UdiProductService;
import com.glxp.api.util.udi.FilterUdiUtils;
@ -115,6 +116,12 @@ public class UdiProductServiceImpl implements UdiProductService {
return udiProductDao.updateUdiInfoByUuid(udiProductEntity);
}
@Override
public boolean updateUdiInfoById(UdiProductEntity udiProductEntity) {
return udiProductDao.updateUdiInfoById(udiProductEntity);
}
@Override
public boolean deleteById(String id) {
return udiProductDao.deleteById(id);
@ -129,4 +136,11 @@ public class UdiProductServiceImpl implements UdiProductService {
public List<String> getGgxhList(String relId) {
return udiProductDao.selectGgxhList(relId);
}
@Override
public boolean updateUdiInfoNotAll(UdiInfoRequest udiInfoRequest) {
if (StrUtil.isEmpty(udiInfoRequest.getUuid()))
return false;
return udiProductDao.updateUdiInfoNotAll(udiInfoRequest);
}
}

@ -69,6 +69,17 @@ public class UdiRelevanceServiceImpl implements UdiRelevanceService {
return udiRelevanceResponses;
}
@Override
public UdiRelevanceResponse selectSupGroupById(Long id) {
FilterUdiRelRequest filterUdiRelRequest = new FilterUdiRelRequest();
filterUdiRelRequest.setId(id);
filterUdiRelRequest.setDiType(1);
List<UdiRelevanceResponse> data = udiRelevanceDao.filterUdiJoinSup(filterUdiRelRequest);
if (data != null && data.size() > 0)
return data.get(0);
return null;
}
@Override
public UdiRelevanceResponse selectByNameCode(String nameCode) {
FilterUdiRelRequest filterUdiRelRequest = new FilterUdiRelRequest();

@ -356,7 +356,7 @@ public class IoAddInoutService {
BasicBussinessTypeEntity supplementType = basicBussinessTypeService.findByAction(bussinessTypeEntity.getSupplementOrderType());
supplementOrder.setMainAction(supplementType.getMainAction());
supplementOrder.setAction(supplementType.getAction());
supplementOrder.setBusType(supplementType.getBusType());
//复制码表
List<IoCodeEntity> codes = codeService.findByOrderId(orderId);
List<IoCodeTempEntity> supplementCodes = new ArrayList<>();
@ -448,6 +448,7 @@ public class IoAddInoutService {
orderSaveRequest.setCreateUser(postOrderRequest.getUserId() + "");
orderSaveRequest.setUpdateUser(postOrderRequest.getUserId() + "");
orderSaveRequest.setUpdateTime(new Date());
orderSaveRequest.setBusType(bussinessTypeEntity.getBusType());
orderSaveRequest.setOrderType(ConstantStatus.ORDER_TYPE_SCAN);
if (postOrder.getErpOrders() != null && postOrder.getErpOrders().size() > 0)
orderSaveRequest.setFromType(ConstantStatus.FROM_PDAED);

@ -0,0 +1,253 @@
package com.glxp.api.service.inout;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.glxp.api.constant.Constant;
import com.glxp.api.constant.ConstantStatus;
import com.glxp.api.constant.ConstantType;
import com.glxp.api.entity.auth.InvWarehouseEntity;
import com.glxp.api.entity.basic.BasicBusTypePreEntity;
import com.glxp.api.entity.basic.BasicBussinessTypeEntity;
import com.glxp.api.entity.inout.IoCodeEntity;
import com.glxp.api.entity.inout.IoCodeTempEntity;
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.service.auth.InvWarehouseService;
import com.glxp.api.service.basic.IBasicBusTypePreService;
import com.glxp.api.service.basic.IBasicBussinessTypeService;
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;
import com.glxp.api.util.GennerOrderUtils;
import com.glxp.api.util.OrderNoTypeBean;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.*;
/**
*
*/
@Service
public class IoChangeInoutService {
@Resource
IBasicBusTypePreService basicBusTypePreService;
@Resource
IoCodeService codeService;
@Resource
IoOrderService orderService;
@Resource
InvProductDetailService invProductDetailService;
@Resource
IBasicBussinessTypeService basicBussinessTypeService;
@Resource
GennerOrderUtils gennerOrderUtils;
@Resource
IoAddInoutService addInoutService;
@Resource
IoCheckInoutService ioCheckInoutService;
@Resource
InvWarehouseService invWarehouseService;
@Resource
SystemParamConfigService systemParamConfigService;
@Resource
IoCodeTempService codeTempService;
public void changeOrder(IoOrderEntity orderEntity) {
BasicBusTypePreEntity basicBusTypePreEntity = basicBusTypePreService.findByOriginAction(orderEntity.getAction());
List<IoCodeEntity> codeEnttities = codeService.findByOrderId(orderEntity.getBillNo());
if (basicBusTypePreEntity != null) {
buildInOrder(basicBusTypePreEntity, codeEnttities, orderEntity);
}else {
//结束,不生成库存,
}
}
//后续做修改
public void changeBusOrder(IoOrderEntity orderEntity) {
}
//普通出入库单据流转
public void genNewOrder(IoOrderEntity orderEntity, List<InvProductDetailEntity> invProductDetailEntities) {
BasicBusTypePreEntity basicBusTypePreEntity = basicBusTypePreService.findByOriginAction(orderEntity.getAction());
List<IoCodeEntity> codeEnttities = codeService.findByOrderId(orderEntity.getBillNo());
if (basicBusTypePreEntity.getSupplementAll()) {//全量补单
invProductDetailService.insertList(invProductDetailEntities);
buildInOrder(basicBusTypePreEntity, codeEnttities, orderEntity);
} else { //缺量补单
List<IoCodeEntity> inList = new ArrayList<>();
for (IoCodeEntity warehouseEntity : codeEnttities) {
Integer invCount = getInvCount(warehouseEntity);
Integer count = warehouseEntity.getMyReCount();
if (invCount > 0) {//仓库已存在该产品
if (count > invCount) { //当前数量>结余数量,说明该产品是无序列号或者是多级包装
if (count > invCount) { //该产品实际数量大于结余数量,说明是多级包装,直接补
inList.add(warehouseEntity);
} else if (warehouseEntity.getSerialNo() == null) { //无序列号(多级包装无序列号的已在上一步被排除),补齐数量
int lea = count - invCount;
warehouseEntity.setCount(lea / (count)); //
inList.add(warehouseEntity);
}
}
} else { //结余数量《=0直接补
inList.add(warehouseEntity);
}
InvProductDetailEntity invProductDetailEntity = filterInvByCode(invProductDetailEntities, warehouseEntity.getCode());
invProductDetailService.insert(invProductDetailEntity);
}
buildInOrder(basicBusTypePreEntity, inList, orderEntity);
}
}
public InvProductDetailEntity filterInvByCode(List<InvProductDetailEntity> invProductDetailEntities, String
code) {
for (InvProductDetailEntity invProductDetailEntity : invProductDetailEntities) {
if (invProductDetailEntity.getCode().equals(code)) {
return invProductDetailEntity;
}
}
return null;
}
//计算当前库存数量
public int getInvCount(IoCodeEntity codeEntity) {
List<InvProductDetailEntity> resultLists = invProductDetailService.selectByUnique(codeEntity.getRelId(), codeEntity.getBatchNo(), codeEntity.getSupId(), codeEntity.getDeptCode(), codeEntity.getInvCode());
int invCount = 0;
if (CollUtil.isNotEmpty(resultLists)) {
for (InvProductDetailEntity invProductDetailEntity : resultLists) {
if (invProductDetailEntity.getMainAction().equals(ConstantType.TYPE_OUT)) {
invCount = invCount - invProductDetailEntity.getReCount();
} else {
invCount = invCount + invProductDetailEntity.getReCount();
}
}
}
return invCount;
}
//生成单据
public void buildInOrder(BasicBusTypePreEntity bussinessChangeTypeEntity, List<IoCodeEntity> useInList, IoOrderEntity orderEntity) {
if (useInList.size() <= 0) {
return;
}
Map<String, List<IoCodeEntity>> filterSupMaps = new HashMap<>();
BasicBussinessTypeEntity targetBustypeEntity = basicBussinessTypeService.findByAction(bussinessChangeTypeEntity.getAction());
//过滤供应商
if (targetBustypeEntity.getCorpType() == ConstantStatus.CORP_TYPE_OUT) {
for (IoCodeEntity warehouseEntity : useInList) {
if (warehouseEntity.getSupId() != null) {
if (filterSupMaps.get(warehouseEntity.getSupId()) == null) {
List<IoCodeEntity> temps = new ArrayList<>();
temps.add(warehouseEntity);
filterSupMaps.put(warehouseEntity.getSupId(), temps);
} else {
filterSupMaps.get(warehouseEntity.getSupId()).add(warehouseEntity);
}
}
}
} else {
// 原先单据流程
filterSupMaps.put("test", useInList);
// filterSupMaps.put(bussinessChangeTypeEntity.getDefaultInvCode(), useInList);
}
//根据往来单位生成入库单
for (String corpName : filterSupMaps.keySet()) {
List<IoCodeEntity> temps;
temps = filterSupMaps.get(corpName);
IoOrderEntity outOrder = new IoOrderEntity();
BeanUtils.copyProperties(orderEntity, outOrder);
outOrder.setId(null);
outOrder.setSupplementNo(null);//补单需置空
if (bussinessChangeTypeEntity.getBeforeTime() != null)
outOrder.setCreateTime(DateUtil.getBeforeDay(DateUtil.fromDate(orderEntity), bussinessChangeTypeEntity.getBeforeTime()));
else
outOrder.setCreateTime(DateUtil.fromDate(orderEntity));
outOrder.setAction(targetBustypeEntity.getAction());
outOrder.setMainAction(targetBustypeEntity.getMainAction());
outOrder.setBusType(targetBustypeEntity.getBusType());
outOrder.setFromType(ConstantStatus.FROM_CHANGE);
String orderNo = gennerOrderUtils.createScOrderNo(new OrderNoTypeBean(Constant.SCAN_ORDER + StrUtil.trimToEmpty(targetBustypeEntity.getPrefix()), "yyyyMMdd"));
outOrder.setBillNo(orderNo);
if (targetBustypeEntity.getCorpType() == ConstantStatus.CORP_TYPE_OUT) {
outOrder.setCustomerId(corpName);
outOrder.setFromCorp(corpName);
outOrder.setFromInvCode(null);
outOrder.setFromDeptCode(null);
} else {
outOrder.setCustomerId(Constant.SYSTEM_CUSTOMER_ID);
InvWarehouseEntity curInv = invWarehouseService.findByInvSubByCode(orderEntity.getInvCode());
InvWarehouseEntity upInv = invWarehouseService.findByInvSubByCode(curInv.getParentCode());
outOrder.setFromInvCode(upInv.getCode());
outOrder.setFromDeptCode(upInv.getParentId());
//原先流程---使用流转单据默认仓库
// outOrder.setFromInvCode(bussinessChangeTypeEntity.getDefaultInvCode());
// outOrder.setFromDeptCode(bussinessChangeTypeEntity.getDefaultDeptCode());
outOrder.setFromCorp(null);
}
outOrder.setCorpOrderId(CustomUtil.getId() + "x");
//原先流程---使用流转单据默认仓库
// InvWarehouseEntity invWarehouseEntity = invWarehouseService.findByInvSubByCode(bussinessChangeTypeEntity.getInvCode());
// outOrder.setInvCode(invWarehouseEntity.getCode());
// outOrder.setDeptCode(invWarehouseEntity.getParentId());
InvWarehouseEntity invWarehouseEntity = invWarehouseService.findByInvSubByCode(orderEntity.getInvCode());
outOrder.setInvCode(invWarehouseEntity.getCode());
outOrder.setDeptCode(invWarehouseEntity.getParentId());
SystemParamConfigEntity systemParamConfigEntity = systemParamConfigService.selectByParamKey("additional_auto_submit");
if ("1".equals(systemParamConfigEntity.getParamValue())) {
outOrder.setStatus(ConstantStatus.ORDER_STATUS_PROCESS);
} else {
outOrder.setStatus(ConstantStatus.ORDER_STATUS_ADDITIONAL);
}
//互填单号
orderEntity.setUllageSupNo(outOrder.getBillNo());
orderEntity.setUpdateTime(new Date());
orderService.update(orderEntity);
outOrder.setOriginUllageSupNo(orderEntity.getBillNo());
outOrder.setCreateUser(null);
outOrder.setReviewUser(null);
orderService.insertOrder(outOrder);
List<IoCodeTempEntity> codeTempEntities = new ArrayList<>();
for (IoCodeEntity warehouseEntity : temps) {
IoCodeTempEntity codeTempEntity = new IoCodeTempEntity();
BeanUtils.copyProperties(warehouseEntity, codeTempEntity);
codeTempEntity.setId(null);
codeTempEntity.setOrderId(outOrder.getBillNo());
codeTempEntity.setAction(outOrder.getAction());
codeTempEntity.setMainAction(outOrder.getMainAction());
codeTempEntities.add(codeTempEntity);
}
codeTempService.insertBatch(codeTempEntities);
//根据单据设置状态 1:草稿
if (bussinessChangeTypeEntity.getAuditStatus() == 1) {
orderEntity.setStatus(ConstantStatus.ORDER_STATUS_TEMP_SAVE);
orderService.update(orderEntity);
} else if (bussinessChangeTypeEntity.getAuditStatus() == 2 || bussinessChangeTypeEntity.getAuditStatus() == 3) {
addInoutService.dealProcess(outOrder);
if (!ioCheckInoutService.checkManual(outOrder.getBillNo())) {
ioCheckInoutService.check(outOrder.getBillNo());
}
}
}
}
}

@ -6,6 +6,7 @@ import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.constant.ConstantStatus;
import com.glxp.api.constant.ConstantType;
import com.glxp.api.entity.basic.BasicBussinessTypeEntity;
import com.glxp.api.entity.basic.UdiEntity;
import com.glxp.api.entity.inout.*;
import com.glxp.api.entity.inv.InvPreinDetailEntity;
import com.glxp.api.res.inout.IoOrderCheckResultResponse;
@ -16,6 +17,7 @@ import com.glxp.api.service.inv.InvPreinDetailService;
import com.glxp.api.service.inv.InvPreinOrderService;
import com.glxp.api.util.udi.FilterUdiUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@ -96,7 +98,7 @@ public class IoCheckInoutService {
}
}
//校验流程
//校验流程 //一次校验
public void check(String orderId) {
IoOrderEntity orderEntity = orderService.findByBillNo(orderId);
//过滤非未校验或校验异常
@ -156,6 +158,49 @@ public class IoCheckInoutService {
}
}
@Resource
IoCodeLostService codeLostService;
@Async
public void genLostCode(String orderId) {
List<IoCodeEntity> ioCodeEntities = codeService.findByOrderId(orderId);
for (IoCodeEntity codeEntity : ioCodeEntities) {
UdiEntity udiEntity = FilterUdiUtils.getUdi(codeEntity.getCode());
IoCodeLostEntity codeLostEntity = codeLostService.findByCode(codeEntity.getCode());
if (codeLostEntity == null)
codeLostEntity = new IoCodeLostEntity();
//校验是否写入缺失表
boolean isTrue = false;
if (udiEntity != null) {
if (!StrUtil.trimToEmpty(codeEntity.getBatchNo()).equals(StrUtil.trimToEmpty(udiEntity.getBatchNo()))) {
if (StrUtil.isNotEmpty(codeEntity.getBatchNo())) {
codeLostEntity.setBatchNo(codeEntity.getBatchNo());
isTrue = true;
}
}
if (!StrUtil.trimToEmpty(codeEntity.getProduceDate()).equals(StrUtil.trimToEmpty(udiEntity.getProduceDate()))) {
if (StrUtil.isNotEmpty(codeEntity.getProduceDate())) {
codeLostEntity.setProduceDate(codeEntity.getProduceDate());
isTrue = true;
}
}
if (!StrUtil.trimToEmpty(codeEntity.getExpireDate()).equals(StrUtil.trimToEmpty(udiEntity.getExpireDate()))) {
if (StrUtil.isNotEmpty(codeEntity.getExpireDate())) {
codeLostEntity.setExpireDate(codeEntity.getExpireDate());
isTrue = true;
}
}
if (isTrue)
codeLostService.insertOrUpdate(codeLostEntity);
}
}
}
public String checkCode(IoCodeTempEntity codeEntity) {
boolean isBillExit = orderDetailBizService.isExit(codeEntity.getOrderId());
@ -229,9 +274,11 @@ public class IoCheckInoutService {
orderEntity.setDealStatus(ConstantStatus.ORDER_DEAL_POST);
orderEntity.setUpdateTime(new Date());
orderService.update(orderEntity);
checkSecond(orderEntity);
// genLostCode(orderEntity.getBillNo());
checkThird(orderEntity);
}
//一次校验完成
public void checkFirstFinish(IoOrderEntity orderEntity) {
List<IoOrderDetailCodeEntity> orderDetailCodeEntities = orderDetailCodeService.findByOrderId(orderEntity.getBillNo());
@ -332,7 +379,11 @@ public class IoCheckInoutService {
orderEntity.setDealStatus(ConstantStatus.ORDER_DEAL_POST);
orderEntity.setUpdateTime(new Date());
orderService.update(orderEntity);
checkSecond(orderEntity);
//生成缺失码
// genLostCode(orderEntity.getBillNo());
checkThird(orderEntity);
}
}
@ -431,6 +482,8 @@ public class IoCheckInoutService {
bizEntity.setCheckSuccess(true);
codeEntity.setCheckSuccess(true);
bizEntity.setScanCount(codeEntity.getReCount());
ioOrderCheckResultResponse.setScanCount(bizEntity.getScanCount());
ioOrderCheckResultResponse.setCheckSuccess(true);
isPass = true;
orderCheckResultResponses.add(ioOrderCheckResultResponse);
break;
@ -456,6 +509,7 @@ public class IoCheckInoutService {
ioOrderCheckResultResponse.setSProductDate(codeEntity.getProductDate());
ioOrderCheckResultResponse.setSExpireDate(codeEntity.getExpireDate());
ioOrderCheckResultResponse.setCount(0);
ioOrderCheckResultResponse.setScanCount(codeEntity.getReCount());
orderCheckResultResponses.add(ioOrderCheckResultResponse);
}
}
@ -533,6 +587,59 @@ public class IoCheckInoutService {
}
//三次校验(中间层)
public void checkThird(IoOrderEntity orderEntity) {
BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(orderEntity.getAction());
if (orderEntity.getStatus() != ConstantStatus.ORDER_STATUS_AUDITED && orderEntity.getStatus() != ConstantStatus.ORDER_STATUS_CHECK_REW) {
if (bussinessTypeEntity.isThrCheckEnable()) {
if (orderEntity.getFromType().intValue() == ConstantStatus.FROM_UDIMS) {
if (!bussinessTypeEntity.isThrCheckUdims()) {
orderEntity.setStatus(ConstantStatus.ORDER_STATUS_CHECK_REW);
}
} else if (orderEntity.getFromType().intValue() == ConstantStatus.FROM_WEBNEW) {
if (!bussinessTypeEntity.isThrCheckWebNew()) {
orderEntity.setStatus(ConstantStatus.ORDER_STATUS_CHECK_REW);
}
} else if (orderEntity.getFromType().intValue() == ConstantStatus.FROM_PDAED) {
if (!bussinessTypeEntity.isThrCheckPdaEd()) {
orderEntity.setStatus(ConstantStatus.ORDER_STATUS_CHECK_REW);
}
} else if (orderEntity.getFromType().intValue() == ConstantStatus.FROM_PDAUN) {
if (!bussinessTypeEntity.isThrCheckPdaUn()) {
orderEntity.setStatus(ConstantStatus.ORDER_STATUS_CHECK_REW);
}
} else if (orderEntity.getFromType().intValue() == ConstantStatus.FROM_PC) {
if (!bussinessTypeEntity.isThrCheckPc()) {
orderEntity.setStatus(ConstantStatus.ORDER_STATUS_CHECK_REW);
}
} else if (orderEntity.getFromType().intValue() == ConstantStatus.FROM_CHANGE) {
if (!bussinessTypeEntity.isThrCheckChange()) {
orderEntity.setStatus(ConstantStatus.ORDER_STATUS_CHECK_REW);
}
} else if (orderEntity.getFromType().intValue() == ConstantStatus.FROM_PEACE_CHANGE) {
if (!bussinessTypeEntity.isThrCheckBalance()) {
orderEntity.setStatus(ConstantStatus.ORDER_STATUS_CHECK_REW);
}
} else if (orderEntity.getFromType().intValue() == ConstantStatus.FROM_COPY) {
if (!bussinessTypeEntity.isThrCheckCopy()) {
orderEntity.setStatus(ConstantStatus.ORDER_STATUS_CHECK_REW);
}
}
} else {
orderEntity.setStatus(ConstantStatus.ORDER_STATUS_CHECK_REW);
}
}
if (orderEntity.getStatus() == ConstantStatus.ORDER_STATUS_CHECK_REW) {
orderEntity.setDealStatus(ConstantStatus.ORDER_DEAL_REW);
orderEntity.setUpdateTime(new Date());
orderEntity.setAuditTime(new Date());
orderService.update(orderEntity);
checkSecond(orderEntity);
}
}
//二次校验
public void checkSecond(IoOrderEntity orderEntity) {
BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(orderEntity.getAction());
@ -579,11 +686,15 @@ public class IoCheckInoutService {
if (orderEntity.getStatus() == ConstantStatus.ORDER_STATUS_AUDITED) {
orderEntity.setDealStatus(ConstantStatus.ORDER_DEAL_CHECK);
orderEntity.setUpdateTime(new Date());
orderEntity.setAuditTime(new Date());
orderService.update(orderEntity);
genInv(orderEntity, bussinessTypeEntity);
}
}
@Resource
IoChangeInoutService changeInoutService;
//校验完成后生成库存
public void genInv(IoOrderEntity orderEntity, BasicBussinessTypeEntity bussinessTypeEntity) {
@ -596,8 +707,12 @@ public class IoCheckInoutService {
for (IoCodeEntity warehouseEntity : codeList) {
List<InvPreinDetailEntity> invProductDetailEntities = invPreinDetailService.findByCode(warehouseEntity.getCode());
if (invProductDetailEntities.size() > 0) {
for (InvPreinDetailEntity invPreinDetailEntity : invProductDetailEntities)
for (InvPreinDetailEntity invPreinDetailEntity : invProductDetailEntities) {
preInOrder.put(invPreinDetailEntity.getOrderId(), invPreinDetailEntity.getOrderId());
invPreinDetailEntity.setStatus(ConstantStatus.INVIN_USE);
invPreinDetailService.update(invPreinDetailEntity);
}
}
}
if (preInOrder.size() > 0) {
@ -612,7 +727,8 @@ public class IoCheckInoutService {
BasicBussinessTypeEntity preBusType = basicBussinessTypeService.findByAction(preInEntity.getAction());
//预验收不删除单号,方便后续查询
if (preBusType.isPreInBack()) { //预验收如果带回,则清空相关预验收库存;
invPreinDetailService.deleteByOrderId(preInEntity.getBillNo());
invPreinDetailService.updateBack(preInEntity.getBillNo());
// invPreinDetailService.deleteByOrderId(preInEntity.getBillNo());
} else { //预验收如果不带回,则清除已出库相关库存
for (IoCodeEntity codeEntity : codeList) {
if (StrUtil.isEmpty(codeEntity.getSerialNo())) {
@ -627,15 +743,17 @@ public class IoCheckInoutService {
if (count >= 0) {
isBreak = true;
if (count == 0) {
invPreinDetailService.deleteByCode(key, codeEntity.getCode());
// invPreinDetailService.deleteByCode(key, codeEntity.getCode());
} else {
invPreinDetailEntity.setStatus(ConstantStatus.INVIN_IN);
invPreinDetailEntity.setCount(count);
invPreinDetailService.update(invPreinDetailEntity);
}
int reCount = invPreinDetailEntity.getReCount() - codeEntity.getMyReCount();
if (reCount == 0) {
invPreinDetailService.deleteByCode(key, codeEntity.getCode());
// invPreinDetailService.deleteByCode(key, codeEntity.getCode());
} else {
invPreinDetailEntity.setStatus(ConstantStatus.INVIN_IN);
invPreinDetailEntity.setReCount(reCount);
invPreinDetailService.update(invPreinDetailEntity);
}
@ -644,7 +762,7 @@ public class IoCheckInoutService {
}
} else {
invPreinDetailService.deleteByCode(key, codeEntity.getCode());
// invPreinDetailService.deleteByCode(key, codeEntity.getCode());
}
}
@ -658,15 +776,24 @@ public class IoCheckInoutService {
}
}
//生成库存
if (bussinessTypeEntity.isPreIn()) {
genInvService.genPreInInv(orderEntity.getBillNo());
} else if (bussinessTypeEntity.isAdvanceType()) {
genInvService.genPreInv(orderEntity.getBillNo());
//校验是否是不入库存单据
if (bussinessTypeEntity.isInStock()) {
// if (bussinessTypeEntity.getBusType() == ConstantStatus.BUS_TYPE_NORMAL) {
//生成库存
if (bussinessTypeEntity.getActionType() == ConstantStatus.ACTION_TYPE_PREIN) {
genInvService.genPreInInv(orderEntity.getBillNo());
} else if (bussinessTypeEntity.getActionType() == ConstantStatus.ACTION_TYPE_ADVANCE) {
genInvService.genPreInv(orderEntity.getBillNo());
} else {
genInvService.genNorInv(orderEntity.getBillNo());
}
} else {
genInvService.genNorInv(orderEntity.getBillNo());
//不入库存,直接进行单据流转
changeInoutService.changeOrder(orderEntity);
}
}

@ -1,13 +1,20 @@
package com.glxp.api.service.inout;
import com.glxp.api.entity.inout.IoCodeLostEntity;
import com.glxp.api.res.inout.IoCodeLostResponse;
import java.util.List;
public interface IoCodeLostService {
List<IoCodeLostResponse> selectLost(IoCodeLostEntity ioCodeLostEntity);
IoCodeLostEntity findByCode(String code);
int insert(IoCodeLostEntity ioCodeLostEntity);
boolean insertOrUpdate(IoCodeLostEntity ioCodeLostEntity);
int deleteByCode(String code);

@ -8,6 +8,7 @@ import com.glxp.api.constant.ConstantType;
import com.glxp.api.entity.auth.InvWarehouseEntity;
import com.glxp.api.entity.basic.BasicBusTypePreEntity;
import com.glxp.api.entity.basic.BasicBussinessTypeEntity;
import com.glxp.api.entity.basic.UdiRelevanceEntity;
import com.glxp.api.entity.inout.IoCodeEntity;
import com.glxp.api.entity.inout.IoCodeTempEntity;
import com.glxp.api.entity.inout.IoOrderDetailResultEntity;
@ -42,8 +43,7 @@ public class IoGenInvService {
InvPreinOrderService invPreinOrderService;
@Resource
InvPreinDetailService invPreinDetailService;
@Resource
IBasicBussinessTypeService basicBussinessTypeService;
@Resource
IoOrderService orderService;
@Resource
@ -52,14 +52,10 @@ public class IoGenInvService {
IoCodeService codeService;
@Resource
IBasicBusTypePreService basicBusTypePreService;
@Resource
GennerOrderUtils gennerOrderUtils;
@Resource
InvWarehouseService invWarehouseService;
@Resource
SystemParamConfigService systemParamConfigService;
@Resource
IoCodeTempService codeTempService;
IoChangeInoutService ioChangeInoutService;
//生成普通库存
@ -111,7 +107,7 @@ public class IoGenInvService {
}
BasicBusTypePreEntity basicBusTypePreEntity = basicBusTypePreService.findByOriginAction(orderEntity.getAction());
if (basicBusTypePreEntity != null) { //进行单据流转
genNewOrder(orderEntity, invProductDetailEntities);
ioChangeInoutService.genNewOrder(orderEntity, invProductDetailEntities);
} else { //生成库存结束
invProductDetailService.insertList(invProductDetailEntities);
}
@ -125,6 +121,7 @@ public class IoGenInvService {
@Resource
InvPreProductDetailService invPreProductDetailService;
//生成寄售库存
public void genPreInv(String orderId) {
IoOrderEntity orderEntity = orderService.findByBillNo(orderId);
List<IoOrderDetailResultEntity> orderDetailResultEntities = orderDetailResultService.findByOrderId(orderId);
@ -189,6 +186,9 @@ public class IoGenInvService {
InvPreinDetailEntity invPreinDetailEntity = new InvPreinDetailEntity();
BeanUtils.copyProperties(codeEntity, invPreinDetailEntity);
invPreinDetailEntity.setId(null);
invPreinDetailEntity.setStatus(ConstantStatus.INVIN_IN);
invPreinDetailEntity.setOriginCount(codeEntity.getCount());
invPreinDetailEntity.setOriginReCount(codeEntity.getReCount());
invPreinDetailEntities.add(invPreinDetailEntity);
});
@ -197,163 +197,4 @@ public class IoGenInvService {
}
//单据流转
public void genNewOrder(IoOrderEntity orderEntity, List<InvProductDetailEntity> invProductDetailEntities) {
BasicBusTypePreEntity basicBusTypePreEntity = basicBusTypePreService.findByOriginAction(orderEntity.getAction());
List<IoCodeEntity> codeEnttities = codeService.findByOrderId(orderEntity.getBillNo());
if (basicBusTypePreEntity.getSupplementAll()) {//全量补单
invProductDetailService.insertList(invProductDetailEntities);
buildInOrder(basicBusTypePreEntity, codeEnttities, orderEntity);
} else { //缺量补单
List<IoCodeEntity> inList = new ArrayList<>();
for (IoCodeEntity warehouseEntity : codeEnttities) {
Integer invCount = getInvCount(warehouseEntity);
Integer count = warehouseEntity.getMyReCount();
if (invCount > 0) {//仓库已存在该产品
if (count > invCount) { //当前数量>结余数量,说明该产品是无序列号或者是多级包装
if (count > invCount) { //该产品实际数量大于结余数量,说明是多级包装,直接补
inList.add(warehouseEntity);
} else if (warehouseEntity.getSerialNo() == null) { //无序列号(多级包装无序列号的已在上一步被排除),补齐数量
int lea = count - invCount;
warehouseEntity.setCount(lea / (count)); //
inList.add(warehouseEntity);
}
}
} else { //结余数量《=0直接补
inList.add(warehouseEntity);
}
InvProductDetailEntity invProductDetailEntity = filterInvByCode(invProductDetailEntities, warehouseEntity.getCode());
invProductDetailService.insert(invProductDetailEntity);
}
buildInOrder(basicBusTypePreEntity, inList, orderEntity);
}
}
public InvProductDetailEntity filterInvByCode(List<InvProductDetailEntity> invProductDetailEntities, String
code) {
for (InvProductDetailEntity invProductDetailEntity : invProductDetailEntities) {
if (invProductDetailEntity.getCode().equals(code)) {
return invProductDetailEntity;
}
}
return null;
}
//生成单据
public void buildInOrder(BasicBusTypePreEntity bussinessChangeTypeEntity, List<IoCodeEntity> useInList, IoOrderEntity orderEntity) {
if (useInList.size() <= 0) {
return;
}
Map<String, List<IoCodeEntity>> filterSupMaps = new HashMap<>();
BasicBussinessTypeEntity targetBustypeEntity = basicBussinessTypeService.findByAction(bussinessChangeTypeEntity.getAction());
//过滤供应商
if (targetBustypeEntity.getCorpType() == ConstantStatus.CORP_TYPE_OUT) {
for (IoCodeEntity warehouseEntity : useInList) {
if (warehouseEntity.getSupId() != null) {
if (filterSupMaps.get(warehouseEntity.getSupId()) == null) {
List<IoCodeEntity> temps = new ArrayList<>();
temps.add(warehouseEntity);
filterSupMaps.put(warehouseEntity.getSupId(), temps);
} else {
filterSupMaps.get(warehouseEntity.getSupId()).add(warehouseEntity);
}
}
}
} else {
filterSupMaps.put(bussinessChangeTypeEntity.getDefaultInvCode(), useInList);
}
//根据往来单位生成入库单
for (String corpName : filterSupMaps.keySet()) {
List<IoCodeEntity> temps;
temps = filterSupMaps.get(corpName);
IoOrderEntity outOrder = new IoOrderEntity();
BeanUtils.copyProperties(orderEntity, outOrder);
outOrder.setId(null);
outOrder.setSupplementNo(null);//补单需置空
if (bussinessChangeTypeEntity.getBeforeTime() != null)
outOrder.setCreateTime(DateUtil.getBeforeDay(DateUtil.fromDate(orderEntity), bussinessChangeTypeEntity.getBeforeTime()));
else
outOrder.setCreateTime(DateUtil.fromDate(orderEntity));
outOrder.setAction(targetBustypeEntity.getAction());
outOrder.setMainAction(targetBustypeEntity.getMainAction());
outOrder.setFromType(ConstantStatus.FROM_CHANGE);
String orderNo = gennerOrderUtils.createScOrderNo(new OrderNoTypeBean(Constant.SCAN_ORDER + StrUtil.trimToEmpty(targetBustypeEntity.getPrefix()), "yyyyMMdd"));
outOrder.setBillNo(orderNo);
if (targetBustypeEntity.getCorpType() == ConstantStatus.CORP_TYPE_OUT) {
outOrder.setCustomerId(corpName);
outOrder.setFromCorp(corpName);
outOrder.setFromInvCode(null);
outOrder.setFromDeptCode(null);
} else {
outOrder.setCustomerId(Constant.SYSTEM_CUSTOMER_ID);
outOrder.setFromInvCode(bussinessChangeTypeEntity.getDefaultInvCode());
outOrder.setFromDeptCode(bussinessChangeTypeEntity.getDefaultDeptCode());
outOrder.setFromCorp(null);
}
outOrder.setCorpOrderId(CustomUtil.getId() + "x");
InvWarehouseEntity invWarehouseEntity = invWarehouseService.findByInvSubByCode(bussinessChangeTypeEntity.getInvCode());
outOrder.setInvCode(invWarehouseEntity.getCode());
outOrder.setDeptCode(invWarehouseEntity.getParentId());
SystemParamConfigEntity systemParamConfigEntity = systemParamConfigService.selectByParamKey("additional_auto_submit");
if ("1".equals(systemParamConfigEntity.getParamValue())) {
outOrder.setStatus(ConstantStatus.ORDER_STATUS_PROCESS);
} else {
outOrder.setStatus(ConstantStatus.ORDER_STATUS_ADDITIONAL);
}
//互填单号
orderEntity.setUllageSupNo(outOrder.getBillNo());
orderEntity.setUpdateTime(new Date());
orderService.update(orderEntity);
outOrder.setOriginUllageSupNo(orderEntity.getBillNo());
outOrder.setCreateUser(null);
outOrder.setReviewUser(null);
orderService.insertOrder(outOrder);
List<IoCodeTempEntity> codeTempEntities = new ArrayList<>();
for (IoCodeEntity warehouseEntity : temps) {
IoCodeTempEntity codeTempEntity = new IoCodeTempEntity();
BeanUtils.copyProperties(warehouseEntity, codeTempEntity);
codeTempEntity.setId(null);
codeTempEntity.setOrderId(outOrder.getBillNo());
codeTempEntity.setAction(outOrder.getAction());
codeTempEntity.setMainAction(outOrder.getMainAction());
codeTempEntities.add(codeTempEntity);
}
codeTempService.insertBatch(codeTempEntities);
addInoutService.dealProcess(outOrder);
if (!ioCheckInoutService.checkManual(outOrder.getBillNo())) {
ioCheckInoutService.check(outOrder.getBillNo());
}
}
}
@Resource
IoAddInoutService addInoutService;
@Resource
IoCheckInoutService ioCheckInoutService;
//计算当前库存数量
public int getInvCount(IoCodeEntity codeEntity) {
List<InvProductDetailEntity> resultLists = invProductDetailService.selectByUnique(codeEntity.getRelId(), codeEntity.getBatchNo(), codeEntity.getSupId(), codeEntity.getDeptCode(), codeEntity.getInvCode());
int invCount = 0;
if (CollUtil.isNotEmpty(resultLists)) {
for (InvProductDetailEntity invProductDetailEntity : resultLists) {
if (invProductDetailEntity.getMainAction().equals(ConstantType.TYPE_OUT)) {
invCount = invCount - invProductDetailEntity.getReCount();
} else {
invCount = invCount + invProductDetailEntity.getReCount();
}
}
}
return invCount;
}
}

@ -3,6 +3,7 @@ package com.glxp.api.service.inout;
import com.glxp.api.entity.inout.IoOrderDetailBizEntity;
import com.glxp.api.req.inout.FilterOrderDetailBizRequest;
import com.glxp.api.res.inout.IoOrderDetailBizResponse;
import com.glxp.api.res.inout.IoOrderInvoiceResponse;
import java.util.List;
@ -34,4 +35,7 @@ public interface IoOrderDetailBizService {
IoOrderDetailBizEntity selectByBatchNoAndBindRlFk(String batchNo,String bindRlFk);
List<IoOrderDetailBizEntity> checkOrderList(String orderId);
List<IoOrderInvoiceResponse> filterListInv(FilterOrderDetailBizRequest orderDetailBizRequest);
}

@ -22,4 +22,6 @@ public interface IoOrderDetailResultService {
List<IoOrderDetailResultResponse> filterList(FilterOrderDetailResultRequest orderDetailResultRequest);
List<IoOrderDetailResultResponse> filterOrderList(FilterOrderDetailResultRequest orderDetailResultRequest);
}

@ -0,0 +1,15 @@
package com.glxp.api.service.inout;
import com.glxp.api.entity.inout.IoOrderInvoiceEntity;
import com.glxp.api.req.inout.IoOrderInvoiceRequest;
public interface IoOrderInvoiceService {
boolean deleteByInvId(Integer id);
boolean updateByInvId(IoOrderInvoiceRequest ioOrderInvoiceRequest);
boolean insertInvoice(IoOrderInvoiceEntity ioOrderInvoiceEntity);
}

@ -74,6 +74,8 @@ public interface IoOrderService {
*/
void setFilterStatus(FilterOrderRequest filterOrderRequest);
List<String> setActions(FilterOrderRequest filterOrderRequest);
/**
*
*

@ -1,6 +1,7 @@
package com.glxp.api.service.inout.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.glxp.api.res.inout.IoCodeLostResponse;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@ -9,6 +10,8 @@ import com.glxp.api.dao.inout.IoCodeLostMapper;
import com.glxp.api.entity.inout.IoCodeLostEntity;
import com.glxp.api.service.inout.IoCodeLostService;
import java.util.List;
@Service
public class IoCodeLostServiceImpl implements IoCodeLostService {
@ -16,6 +19,11 @@ public class IoCodeLostServiceImpl implements IoCodeLostService {
IoCodeLostMapper codeLostEntityMapper;
@Override
public List<IoCodeLostResponse> selectLost(IoCodeLostEntity ioCodeLostEntity) {
return codeLostEntityMapper.selectLost(ioCodeLostEntity);
}
@Override
public IoCodeLostEntity findByCode(String code) {
@ -24,9 +32,15 @@ public class IoCodeLostServiceImpl implements IoCodeLostService {
@Override
public int insert(IoCodeLostEntity ioCodeLostEntity) {
return codeLostEntityMapper.insert(ioCodeLostEntity);
}
@Override
public boolean insertOrUpdate(IoCodeLostEntity ioCodeLostEntity) {
return codeLostEntityMapper.insertOrUpdate(ioCodeLostEntity);
}
@Override
public int deleteByCode(String code) {
return codeLostEntityMapper.delete(new QueryWrapper<IoCodeLostEntity>().eq("code", code));

@ -8,6 +8,7 @@ import com.glxp.api.entity.inout.IoOrderDetailBizEntity;
import com.glxp.api.entity.inout.IoOrderDetailCodeEntity;
import com.glxp.api.req.inout.FilterOrderDetailBizRequest;
import com.glxp.api.res.inout.IoOrderDetailBizResponse;
import com.glxp.api.res.inout.IoOrderInvoiceResponse;
import com.glxp.api.service.inout.IoCheckInoutService;
import com.glxp.api.service.inout.IoOrderDetailBizService;
import com.glxp.api.service.inout.IoOrderDetailCodeService;
@ -39,9 +40,9 @@ public class IoOrderDetailBizServiceImpl implements IoOrderDetailBizService {
if(StrUtil.isNotEmpty(orderId)){
ew.eq("orderIdFk",orderId);
}
if(chack){
ew.isNull("nameCode");
}
// if(chack){
// ew.isNull("nameCode");
// }
List<IoOrderDetailBizEntity> ioOrderDetailBizEntityList=ioOrderDetailBizDao.selectList(ew);
return ioOrderDetailBizEntityList;
}
@ -125,4 +126,9 @@ public class IoOrderDetailBizServiceImpl implements IoOrderDetailBizService {
return orderDetailBizEntities;
}
@Override
public List<IoOrderInvoiceResponse> filterListInv(FilterOrderDetailBizRequest orderDetailBizRequest) {
return ioOrderDetailBizDao.filterListInv(orderDetailBizRequest);
}
}

@ -58,4 +58,16 @@ public class IoOrderDetailResultServiceImpl implements IoOrderDetailResultServic
}
return orderDetailResultDao.filterList(orderDetailResultRequest);
}
@Override
public List<IoOrderDetailResultResponse> filterOrderList(FilterOrderDetailResultRequest orderDetailResultRequest) {
if (null == orderDetailResultRequest) {
return Collections.emptyList();
}
if (null != orderDetailResultRequest.getPage() && null != orderDetailResultRequest.getLimit()) {
PageHelper.offsetPage((orderDetailResultRequest.getPage() - 1) * orderDetailResultRequest.getLimit(), orderDetailResultRequest.getLimit());
}
return orderDetailResultDao.filterOrderList(orderDetailResultRequest);
}
}

@ -0,0 +1,33 @@
package com.glxp.api.service.inout.impl;
import com.glxp.api.dao.inout.IoOrderInvoiceMapper;
import com.glxp.api.entity.inout.IoOrderInvoiceEntity;
import com.glxp.api.req.inout.IoOrderInvoiceRequest;
import com.glxp.api.service.inout.IoOrderInvoiceService;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@Service
public class IoOrderInvoiceServiceImpl implements IoOrderInvoiceService {
@Resource
IoOrderInvoiceMapper ioOrderInvoiceMapper;
@Override
public boolean deleteByInvId(Integer id) {
return this.ioOrderInvoiceMapper.deleteById(id)>0;
}
@Override
public boolean updateByInvId(IoOrderInvoiceRequest ioOrderInvoiceRequest) {
IoOrderInvoiceEntity ioOrderInvoiceEntity = new IoOrderInvoiceEntity();
BeanUtils.copyProperties(ioOrderInvoiceRequest,ioOrderInvoiceEntity);
return this.ioOrderInvoiceMapper.updateById(ioOrderInvoiceEntity)>0;
}
@Override
public boolean insertInvoice(IoOrderInvoiceEntity ioOrderInvoiceEntity) {
return ioOrderInvoiceMapper.insertInvoice(ioOrderInvoiceEntity);
}
}

@ -184,10 +184,10 @@ public class IoOrderServiceImpl implements IoOrderService {
if (orderEntity.getStatus() == ConstantStatus.ORDER_STATUS_AUDITED) {
BasicBussinessTypeEntity basicBussinessTypeEntity = basicBussinessTypeService.findByAction(orderEntity.getAction());
//判断单据是否是预验收单据,如果是预验收单据,则删除预验收库库存
if (basicBussinessTypeEntity.isPreIn()) {
if (basicBussinessTypeEntity.getActionType() == ConstantStatus.ACTION_TYPE_PREIN) {
preinOrderService.deleteByOrderId(billNo);
preinDetailService.deleteByOrderId(billNo);
} else if (basicBussinessTypeEntity.isAdvanceType()) {
} else if (basicBussinessTypeEntity.getActionType() == ConstantStatus.ACTION_TYPE_ADVANCE) {
//是否寄售,删除寄售库存
List<InvPreProductDetailEntity> invProductDetailEntities = invPreProductDetailService.selectByOrderIdFk(billNo);
if (CollUtil.isNotEmpty(invProductDetailEntities)) {
@ -279,7 +279,7 @@ public class IoOrderServiceImpl implements IoOrderService {
BasicBussinessTypeEntity basicBussinessTypeEntity = basicBussinessTypeService.findByAction(orderEntity.getAction());
//预验收库存
if (basicBussinessTypeEntity.isPreIn()) {
if (basicBussinessTypeEntity.getActionType() == ConstantStatus.ACTION_TYPE_PREIN) {
InvPreinDetailEntity invPreinDetailEntity = preinDetailService.findByCode(billNo, code);
int count = invPreinDetailEntity.getCount() - 1;
@ -292,7 +292,7 @@ public class IoOrderServiceImpl implements IoOrderService {
preinDetailService.update(invPreinDetailEntity);
}
} else if (basicBussinessTypeEntity.isAdvanceType()) { //寄售库存
} else if (basicBussinessTypeEntity.getActionType() == ConstantStatus.ACTION_TYPE_ADVANCE) { //寄售库存
InvPreProductDetailEntity invProductDetailEntity = invPreProductDetailService.selectByCode(billNo, code);
int count = invProductDetailEntity.getCount() - 1;
if (count == 0) {
@ -378,7 +378,7 @@ public class IoOrderServiceImpl implements IoOrderService {
BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(orderEntity.getAction());
//预验收撤回---直接删除预验收库存
if (bussinessTypeEntity.isPreIn()) {
if (bussinessTypeEntity.getActionType() == ConstantStatus.ACTION_TYPE_PREIN) {
invPreinOrderService.deleteByOrderId(billNo);
invPreinDetailService.deleteByOrderId(billNo);
} else {
@ -526,13 +526,30 @@ public class IoOrderServiceImpl implements IoOrderService {
break;
case Constant.ORDER_STATUS_AUDITED:
filterOrderRequest.setStatuses(Arrays.asList(7));
filterOrderRequest.setDealStatuses(Arrays.asList(3));
filterOrderRequest.setDealStatuses(Arrays.asList(3, 4));
break;
case Constant.ORDER_STATUS_SUP_SEARCH:
filterOrderRequest.setStatuses(Arrays.asList(5, 7));
filterOrderRequest.setDealStatuses(Arrays.asList(2, 3));
break;
default:
break;
}
}
@Override
public List<String> setActions(FilterOrderRequest filterOrderRequest) {
List<BasicBussinessTypeEntity> bussinessTypeEntities;
List<String> actions = null;
if (filterOrderRequest.getVueType() == null)
return null;
bussinessTypeEntities = basicBussinessTypeService.findByVueType(filterOrderRequest.getVueType());
actions = bussinessTypeEntities.stream().map(BasicBussinessTypeEntity::getAction).collect(Collectors.toList());
filterOrderRequest.setActions(actions);
return actions;
}
@Override
public List<IoOrderEntity> filterOrderTrace(String billNo) {
IoOrderEntity order = orderDao.selectOne(new QueryWrapper<IoOrderEntity>().eq("billNo", billNo));

@ -17,7 +17,12 @@ public interface InvPreinDetailService {
List<InvPreinDetailEntity> findByCode(String code);
InvPreinDetailEntity findOneByCode(String code);
// InvPreinDetailEntity findOneByCode(String code);
List<InvPreinDetailEntity> findUseByCode(String code);
InvPreinDetailEntity findUseOneByCode(String code);
int deleteByOrderId(String orderId);
@ -29,4 +34,6 @@ public interface InvPreinDetailService {
int update(InvPreinDetailEntity invPreinDetailEntity);
int updateBack(String orderId);
}

@ -8,6 +8,7 @@ import com.glxp.api.dao.basic.UdiRelevanceDao;
import com.glxp.api.dao.inv.InvInnerOrderPrintDao;
import com.glxp.api.entity.basic.UdiProductEntity;
import com.glxp.api.entity.inout.IoOrderDetailBizEntity;
import com.glxp.api.entity.inout.IoOrderEntity;
import com.glxp.api.entity.inv.InnerOrderDetailEntity;
import com.glxp.api.entity.inv.InvInnerOrderPdfTempEntity;
import com.glxp.api.entity.inv.InvInnerOrderPrintEntity;
@ -23,6 +24,7 @@ import com.glxp.api.service.auth.CustomerService;
import com.glxp.api.service.basic.UdiProductService;
import com.glxp.api.service.basic.UdiRelevanceService;
import com.glxp.api.service.inout.IoOrderDetailBizService;
import com.glxp.api.service.inout.IoOrderService;
import com.glxp.api.service.inv.InnerOrderDetailService;
import com.glxp.api.service.inv.InvInnerOrderPdfTempService;
import com.glxp.api.service.inv.InvInnerOrderPrintService;
@ -118,7 +120,7 @@ public class InvInnerOrderPrintServiceImpl implements InvInnerOrderPrintService
String udiCode = "#" + udiProductEntity.getNameCode() + "#" + obj.getProductDate() + "#" + obj.getExpireDate() +
"#" + obj.getBatchNo() + "#" + udiProductEntity.getSerialNo() + "#" + udiProductEntity.getWarehouseCode() + "#" + udiProductEntity.getDeptCode();
udiCode = udiCode.replaceAll("#null","");
udiCode = udiCode.replaceAll("#null", "#");
innerOrderPrintEntity.setUdiCode(udiCode);
invInnerOrderPrintDao.insert(innerOrderPrintEntity);
}
@ -244,24 +246,29 @@ public class InvInnerOrderPrintServiceImpl implements InvInnerOrderPrintService
return null;
}
@Resource
IoOrderService orderService;
//-----------------------------------------------------------业务单据打印-----------------------------//
@Override
public Boolean addInCodeList(String orderIdFk,boolean check) {
public Boolean addInCodeList(String orderIdFk, boolean check) {
//先删除数据
QueryWrapper<InvInnerOrderPrintEntity> ew = new QueryWrapper<>();
ew.eq("orderIdFk", orderIdFk);
invInnerOrderPrintDao.delete(ew);
List<IoOrderDetailBizEntity> ioOrderDetailBizEntityList = ioOrderDetailBizService.findByOrderIdAndNameCode(orderIdFk,check);
if(ioOrderDetailBizEntityList.size()==0){
IoOrderEntity orderEntity = orderService.findByBillNo(orderIdFk);
List<IoOrderDetailBizEntity> ioOrderDetailBizEntityList = ioOrderDetailBizService.findByOrderIdAndNameCode(orderIdFk, check);
if (ioOrderDetailBizEntityList.size() == 0) {
return false;
}
for (IoOrderDetailBizEntity obj : ioOrderDetailBizEntityList) {
//todo 暂时这样子,以后要过滤
if (check && obj.getNameCode().length() == 14) {
continue;
}
InvInnerOrderPrintEntity innerOrderPrintEntity = new InvInnerOrderPrintEntity();
innerOrderPrintEntity.setOrderIdFk(obj.getOrderIdFk());
innerOrderPrintEntity.setProductId(obj.getBindRlFk()+"");
innerOrderPrintEntity.setProductId(obj.getBindRlFk() + "");
innerOrderPrintEntity.setExpireDate(obj.getExpireDate());
innerOrderPrintEntity.setProductDate(obj.getProductDate());
innerOrderPrintEntity.setProductName(obj.getCoName());
@ -282,12 +289,14 @@ public class InvInnerOrderPrintServiceImpl implements InvInnerOrderPrintService
String udiCode = "#" + obj.getNameCode() + "#" + obj.getProductDate() + "#" + obj.getExpireDate() +
"#" + obj.getBatchNo() + "#" + udiProductEntity.getSerialNo() + "#" + udiProductEntity.getWarehouseCode() + "#" + udiProductEntity.getDeptCode();
udiCode = udiCode.replaceAll("#null","");
udiCode = udiCode.replaceAll("#null", "#");
innerOrderPrintEntity.setUdiCode(udiCode);
invInnerOrderPrintDao.insert(innerOrderPrintEntity);
}
orderEntity.setInCodeStatus(1);//
orderService.update(orderEntity);
return true;
}
}
}

@ -3,6 +3,7 @@ package com.glxp.api.service.inv.impl;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.pagehelper.PageHelper;
import com.glxp.api.constant.ConstantStatus;
import com.glxp.api.dao.inv.InvPreinDetailDao;
import com.glxp.api.dao.inv.InvPreinOrderDao;
import com.glxp.api.entity.inv.InvPreProductDetailEntity;
@ -41,19 +42,34 @@ public class InvPreinDetailServiceImpl implements InvPreinDetailService {
}
@Override
public List<InvPreinDetailEntity> findByCode(String code) {
return invPreinDetailDao.selectList(new QueryWrapper<InvPreinDetailEntity>().eq("code", code));
public List<InvPreinDetailEntity> findUseByCode(String code) {
return invPreinDetailDao.selectList(new QueryWrapper<InvPreinDetailEntity>().eq("code", code).eq("status", ConstantStatus.INVIN_IN));
}
@Override
public InvPreinDetailEntity findOneByCode(String code) {
List<InvPreinDetailEntity> invPreinDetailEntities = invPreinDetailDao.selectList(new QueryWrapper<InvPreinDetailEntity>().eq("code", code).last("limit 1"));
public InvPreinDetailEntity findUseOneByCode(String code) {
List<InvPreinDetailEntity> invPreinDetailEntities = invPreinDetailDao.selectList(new QueryWrapper<InvPreinDetailEntity>().eq("code", code)
.eq("status", ConstantStatus.INVIN_IN).last("limit 1"));
if (CollUtil.isNotEmpty(invPreinDetailEntities)) {
return invPreinDetailEntities.get(0);
}
return null;
}
@Override
public List<InvPreinDetailEntity> findByCode(String code) {
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("orderId", orderId));
@ -81,8 +97,18 @@ public class InvPreinDetailServiceImpl implements InvPreinDetailService {
@Override
public int update(InvPreinDetailEntity invPreinDetailEntity) {
return invPreinDetailDao.updateById(invPreinDetailEntity);
}
@Override
public int updateBack(String orderId) {
InvPreinDetailEntity invPreinDetailEntity = new InvPreinDetailEntity();
invPreinDetailEntity.setStatus(ConstantStatus.INVIN_BACK);
invPreinDetailDao.update(invPreinDetailEntity, new QueryWrapper<InvPreinDetailEntity>().eq("orderId", orderId).ne("status", ConstantStatus.INVIN_USE));
return 1;
}
}

@ -4,7 +4,7 @@ server:
spring:
datasource:
driver-class-name: com.p6spy.engine.spy.P6SpyDriver
jdbc-url: jdbc:p6spy:mysql://192.168.0.66:3364/udi_wms_glxp?allowMultiQueries=true&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true
jdbc-url: jdbc:p6spy:mysql://192.168.0.66:3364/udi_wms_wmd?allowMultiQueries=true&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true
username: root
password: Glxp@6066
hikari:

@ -3,7 +3,7 @@ server:
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
jdbc-url: jdbc:mysql://127.0.0.1:3306/udi_wms?allowMultiQueries=true&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true
jdbc-url: jdbc:mysql://192.168.0.66:3364/udi_wms_glxp?allowMultiQueries=true&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true
username: root
password: Glxp@6066
hikari:

@ -175,14 +175,14 @@
<select id="getIdByCode" resultType="java.lang.Long">
select id
from auth_dept
where code = #{fromCorpId}
where id = #{fromCorpId}
</select>
<insert id="insertInvWarehouse" keyProperty="id"
parameterType="com.glxp.api.entity.auth.DeptEntity">
replace
INTO auth_dept
(pid, code, `name`, advanceType, isDefault,
status, updateTime, remark,`level`,pcode,spUse, thirdId, thirdId1, thirdId2, thirdId3, thirdId4)
status, updateTime, remark,`level`,pcode,spUse, thirdId, thirdId1, thirdId2, thirdId3, thirdId4)
values (
#{pid},
#{code},
@ -283,4 +283,4 @@
<select id="selectNameByCode" resultType="java.lang.String">
select name from auth_dept where code = #{code}
</select>
</mapper>
</mapper>

@ -2,9 +2,10 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.glxp.api.dao.basic.BasicBusTypeChangeDao">
<select id="filterList" resultType="com.glxp.api.res.basic.BasicBusTypeChangeResponse">
select bc.*, bu.name targetBusName
select bc.*, bu.name targetName, bbc.originName targetBusName
from basic_bustype_change bc
left join basic_bussiness_type bu on bc.targetAction = bu.action
left join basic_bussiness_type bu on bc.targetAction = bu.action
left join basic_bustype_change bbc on bc.originAction = bbc.targetAction
<where>
<if test="originAction != null and originAction != ''">
AND bc.originAction = #{originAction}
@ -26,4 +27,4 @@
</if>
</where>
</select>
</mapper>
</mapper>

@ -19,25 +19,30 @@
<select id="findByAction" resultType="com.glxp.api.entity.basic.BasicBusTypePreEntity">
select basic_bustype_pre.*,
basic_bussiness_type.name
basic_bussiness_type.name
from basic_bustype_pre
left join basic_bussiness_type on basic_bustype_pre.originAction = basic_bussiness_type.action
left join auth_dept on basic_bustype_pre.defaultDeptCode = auth_dept.code
left join auth_warehouse on basic_bustype_pre.defaultInvCode = auth_warehouse.code
left join basic_bussiness_type on basic_bustype_pre.originAction = basic_bussiness_type.action
left join auth_dept on basic_bustype_pre.defaultDeptCode = auth_dept.code
left join auth_warehouse on basic_bustype_pre.defaultInvCode = auth_warehouse.code
where basic_bustype_pre.action = #{action}
</select>
<select id="selectBusTypePreResList" resultType="com.glxp.api.res.basic.BasicBusTypePreResponse">
SELECT basic_bustype_pre.*,
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
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 basic_bussiness_type.action = basic_bustype_pre.action) targetName,
(select basic_bustype_change.originName
from basic_bustype_change
where basic_bustype_change.originAction = basic_bustype_pre.targetBusAction) targetBusName
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
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}
@ -56,4 +61,4 @@
</if>
</where>
</select>
</mapper>
</mapper>

@ -12,8 +12,9 @@
<if test="action != null and action != ''">
AND bu.action like concat('%', #{action}, '%')
</if>
<if test="advanceType != null">
AND bu.advanceType = #{advanceType}
<if test="inStock != null">
AND bu.inStock = #{inStock}
</if>
<if test="enable != null">
AND bu.enable = #{enable}
@ -33,6 +34,9 @@
<if test="secCheckEnable != null">
AND bu.secCheckEnable = #{secCheckEnable}
</if>
<if test="busType != null">
AND bu.busType = #{busType}
</if>
<if test="preIn != null">
AND bu.preIn = #{preIn}
</if>
@ -54,70 +58,76 @@
<insert id="insertIgnoreBussinessType" parameterType="com.glxp.api.entity.basic.BasicBussinessTypeEntity">
insert
ignore
ignore
into basic_bussiness_type (mainAction, action, name, enable, remark, thirdSysFk, genUnit,
innerOrder, secCheckEnable, checkEnable, checkUdims, checkPdaEd,
checkPdaUn, checkPc, checkWebNew, checkSp, checkChange, secCheckUdims,
secCheckPdaEd, secCheckPdaUn, secCheckPc, secCheckWebNew,
secCheckChange, secCheckSp, corpType, supplementOrderType,
checkBalance, secCheckBalance, useDyCount, expireTip, updateTime,
defaultUnit, prefix, outToSpms, ullageFill, scanPreIn, vailInv,
entrutSpms, codeFillCheck, defaultSubInv, defaultInv, orderVisibleType,
checkCopy, secCheckCopy, originAction, advanceType, changeEnable,
spUse, preIn, supplementAll, createUser, createTime, preInBack, vailDispatch,
vailGroupBuy)
innerOrder, secCheckEnable, checkEnable, checkUdims, checkPdaEd,
checkPdaUn, checkPc, checkWebNew, checkSp, checkChange, secCheckUdims,
secCheckPdaEd, secCheckPdaUn, secCheckPc, secCheckWebNew,
secCheckChange, secCheckSp, corpType, supplementOrderType,
checkBalance, secCheckBalance, useDyCount, expireTip, updateTime,
defaultUnit, prefix, outToSpms, ullageFill, scanPreIn, vailInv,
entrutSpms, codeFillCheck, defaultSubInv, defaultInv, orderVisibleType,
checkCopy, secCheckCopy, originAction, changeEnable,
spUse, preIn, supplementAll, createUser, createTime, preInBack, vailDispatch,
vailGroupBuy, busType, inStock, actionType
, thrCheckEnable, thrCheckWebNew, thrCheckPdaUn, thrCheckPdaEd, thrCheckUdims, thrCheckPc, thrCheckSp
, thrCheckChange, thrCheckBalance, thrCheckCopy, fillCodeRel,checkVailDate,checkCertExpire)
values (#{mainAction},
#{action},
#{name},
#{enable},
#{remark},
#{thirdSysFk},
#{genUnit},
#{innerOrder},
#{secCheckEnable},
#{checkEnable},
#{checkUdims},
#{checkPdaEd},
#{checkPdaUn},
#{checkPc},
#{checkWebNew},
#{checkSp},
#{checkChange},
#{secCheckUdims},
#{secCheckPdaEd},
#{secCheckPdaUn},
#{secCheckPc},
#{secCheckWebNew},
#{secCheckChange},
#{secCheckSp},
#{corpType},
#{supplementOrderType},
#{checkBalance},
#{secCheckBalance},
#{useDyCount},
#{expireTip},
#{updateTime},
#{defaultUnit},
#{prefix},
#{outToSpms},
#{ullageFill},
#{scanPreIn},
#{vailInv},
#{entrutSpms},
#{codeFillCheck},
#{defaultSubInv},
#{defaultInv},
#{orderVisibleType},
#{checkCopy},
#{secCheckCopy},
#{originAction},
#{advanceType},
#{changeEnable},
#{spUse},
#{preIn},
#{supplementAll},
#{createUser},
#{createTime}, #{preInBack}, #{vailDispatch}, #{vailGroupBuy})
#{action},
#{name},
#{enable},
#{remark},
#{thirdSysFk},
#{genUnit},
#{innerOrder},
#{secCheckEnable},
#{checkEnable},
#{checkUdims},
#{checkPdaEd},
#{checkPdaUn},
#{checkPc},
#{checkWebNew},
#{checkSp},
#{checkChange},
#{secCheckUdims},
#{secCheckPdaEd},
#{secCheckPdaUn},
#{secCheckPc},
#{secCheckWebNew},
#{secCheckChange},
#{secCheckSp},
#{corpType},
#{supplementOrderType},
#{checkBalance},
#{secCheckBalance},
#{useDyCount},
#{expireTip},
#{updateTime},
#{defaultUnit},
#{prefix},
#{outToSpms},
#{ullageFill},
#{scanPreIn},
#{vailInv},
#{entrutSpms},
#{codeFillCheck},
#{defaultSubInv},
#{defaultInv},
#{orderVisibleType},
#{checkCopy},
#{secCheckCopy},
#{originAction},
#{changeEnable},
#{spUse},
#{preIn},
#{supplementAll},
#{createUser},
#{createTime}, #{preInBack}, #{vailDispatch}, #{vailGroupBuy}, #{busType}, #{inStock}, #{actionType}
, #{thrCheckEnable}, #{thrCheckWebNew}, #{thrCheckPdaUn}, #{thrCheckPdaEd}, #{thrCheckUdims},
#{thrCheckPc}
, #{thrCheckSp}, #{thrCheckChange}, #{thrCheckBalance}, #{thrCheckCopy}, #{fillCodeRel}
, #{checkVailDate}, #{checkExpire}, #{checkCertExpire}
)
</insert>
<select id="selectBusList" resultType="com.glxp.api.entity.basic.BasicBussinessTypeEntity">
@ -130,9 +140,6 @@
<if test="action != null and action != ''">
AND bu.action like concat('%', #{action}, '%')
</if>
<if test="advanceType != null">
AND bu.advanceType = #{advanceType}
</if>
<if test="enable != null">
AND bu.enable = #{enable}
</if>
@ -154,6 +161,10 @@
<if test="preIn != null">
AND bu.preIn = #{preIn}
</if>
<if test="busType != null">
AND bu.busType = #{busType}
</if>
<if test="actionList != null and actionList.size() != 0">
AND bu.action in
<foreach collection="actionList" index="index" item="item" separator="," open="(" close=")">
@ -181,15 +192,15 @@
select name, action
from basic_bussiness_type
where mainAction = #{mainAction}
and corpType = 3
and (supplementOrderType is null
or supplementOrderType = '')
and corpType = 3
and (supplementOrderType is null
or supplementOrderType = '')
</select>
<select id="selectByUser" resultType="com.glxp.api.entity.basic.BasicBussinessTypeEntity">
select basic_bussiness_type.*
from basic_bussiness_type
inner join auth_user_bustype on basic_bussiness_type.action = auth_user_bustype.scAction
inner join auth_user_bustype on basic_bussiness_type.action = auth_user_bustype.scAction
<where>
<if test="name != null and name != ''">
AND basic_bussiness_type.name like concat('%', #{name}, '%')
@ -209,6 +220,9 @@
<if test="userId != null">
AND auth_user_bustype.userId = #{userId}
</if>
<if test="busType != null">
AND busType = #{busType}
</if>
</where>
group by basic_bussiness_type.action
</select>
@ -217,11 +231,15 @@
resultType="com.glxp.api.res.basic.BasicBussinessTypeResponse">
SELECT basic_bussiness_type.*
FROM basic_bussiness_type
INNER JOIN auth_user_bustype ON basic_bussiness_type.action = auth_user_bustype.scAction
left JOIN auth_user_bustype ON basic_bussiness_type.action = auth_user_bustype.scAction
<where>
<if test="name != ''and name != null">
AND basic_bussiness_type.name LIKE concat('%', #{name}, '%')
</if>
<if test="inStock != null">
AND basic_bussiness_type.inStock = #{inStock}
</if>
<if test="action != ''and action != null">
AND basic_bussiness_type.action = #{action}
</if>
@ -237,6 +255,12 @@
<if test="userId != ''and userId != null">
AND auth_user_bustype.`userId` = #{userId}
</if>
<if test="spUse != null">
AND basic_bussiness_type.spUse = #{spUse}
</if>
<if test="busType != null">
AND busType = #{busType}
</if>
</where>
group by basic_bussiness_type.action
</select>

@ -129,7 +129,7 @@
ylqxzcrbarmc,zczbhhzbapzbh,ylqxzcrbarywmc,sydycpbs,sjcpbm,versionNumber,diType,ybbm,sptm,manufactory,measname,productType,scbssfbhph,scbssfbhxlh,scbssfbhscrq,scbssfbhsxrq,cpms,allowNoBatch,allowNoExpire,
allowNoProduct,spmc,cplx,hchzsb,cpdls,price,basicPrductRemak1,basicPrductRemak2,basicPrductRemak3,basicPrductRemak4,basicPrductRemak5,basicPrductRemak6,basicPrductRemak7,basicPrductRemak8)
values
(
(
#{uuid},
#{originUuid},
#{nameCode},
@ -279,7 +279,7 @@
<if test="cplb != null">cplb=#{cplb},</if>
<if test="flbm != null">flbm=#{flbm},</if>
<if test="ggxh != null">ggxh=#{ggxh},</if>
<if test="qxlb != null">qxlb !==#{qxlb !=},</if>
<if test="qxlb != null">qxlb=#{qxlb},</if>
<if test="tyshxydm != null">tyshxydm=#{tyshxydm},</if>
<if test="ylqxzcrbarmc != null">ylqxzcrbarmc=#{ylqxzcrbarmc},</if>
<if test="zczbhhzbapzbh != null">zczbhhzbapzbh=#{zczbhhzbapzbh},</if>
@ -375,6 +375,63 @@
where uuid = #{uuid}
</update>
<update id="updateUdiInfoById" parameterType="com.glxp.api.entity.basic.UdiProductEntity">
update basic_products
<trim prefix="set" suffixOverrides=",">
<if test="originUuid != null">originUuid=#{originUuid},</if>
<if test="nameCode != null">nameCode=#{nameCode},</if>
<if test="deviceRecordKey != null">deviceRecordKey=#{deviceRecordKey},</if>
<if test="packRatio != null">packRatio=#{packRatio},</if>
<if test="packLevel != null">packLevel=#{packLevel},</if>
<if test="packUnit != null">packUnit=#{packUnit},</if>
<if test="bhxjsl != null">bhxjsl=#{bhxjsl},</if>
<if test="bhzxxsbzsl != null">bhzxxsbzsl=#{bhzxxsbzsl},</if>
<if test="zxxsbzbhsydysl != null">zxxsbzbhsydysl=#{zxxsbzbhsydysl},</if>
<if test="bhxjcpbm != null">bhxjcpbm=#{bhxjcpbm},</if>
<if test="bzcj != null">bzcj=#{bzcj},</if>
<if test="cpmctymc != null">cpmctymc=#{cpmctymc},</if>
<if test="cplb != null">cplb=#{cplb},</if>
<if test="flbm != null">flbm=#{flbm},</if>
<if test="ggxh != null">ggxh=#{ggxh},</if>
<if test="qxlb != null">qxlb !==#{qxlb !=},</if>
<if test="tyshxydm != null">tyshxydm=#{tyshxydm},</if>
<if test="ylqxzcrbarmc != null">ylqxzcrbarmc=#{ylqxzcrbarmc},</if>
<if test="zczbhhzbapzbh != null">zczbhhzbapzbh=#{zczbhhzbapzbh},</if>
<if test="ylqxzcrbarywmc != null">ylqxzcrbarywmc=#{ylqxzcrbarywmc},</if>
<if test="sydycpbs != null">sydycpbs=#{sydycpbs},</if>
<if test="sjcpbm != null">sjcpbm=#{sjcpbm},</if>
<if test="versionNumber != null">versionNumber=#{versionNumber},</if>
<if test="diType != null">diType=#{diType},</if>
<if test="ybbm != null">ybbm=#{ybbm},</if>
<if test="sptm != null">sptm=#{sptm},</if>
<if test="manufactory != null">manufactory=#{manufactory},</if>
<if test="measname != null">measname=#{measname},</if>
<if test="productType != null">productType=#{productType},</if>
<if test="scbssfbhph != null">scbssfbhph=#{scbssfbhph},</if>
<if test="scbssfbhxlh != null">scbssfbhxlh=#{scbssfbhxlh},</if>
<if test="scbssfbhscrq != null">scbssfbhscrq=#{scbssfbhscrq},</if>
<if test="scbssfbhsxrq != null">scbssfbhsxrq=#{scbssfbhsxrq},</if>
<if test="cpms != null">cpms=#{cpms},</if>
<if test="allowNoBatch != null">allowNoBatch=#{allowNoBatch},</if>
<if test="allowNoExpire != null">allowNoExpire=#{allowNoExpire},</if>
<if test="allowNoProduct != null">allowNoProduct=#{allowNoProduct},</if>
<if test="spmc != null">spmc=#{spmc},</if>
<if test="cplx != null">cplx=#{cplx},</if>
<if test="hchzsb != null">hchzsb=#{hchzsb},</if>
<if test="cpdls != null">cpdls=#{cpdls},</if>
<if test="price != null">price=#{price},</if>
<if test="basicPrductRemak1 != null">basicPrductRemak1=#{basicPrductRemak1},</if>
<if test="basicPrductRemak2 != null">basicPrductRemak2=#{basicPrductRemak2},</if>
<if test="basicPrductRemak3 != null">basicPrductRemak3=#{basicPrductRemak3},</if>
<if test="basicPrductRemak4 != null">basicPrductRemak4=#{basicPrductRemak4},</if>
<if test="basicPrductRemak5 != null">basicPrductRemak5=#{basicPrductRemak5},</if>
<if test="basicPrductRemak6 != null">basicPrductRemak6=#{basicPrductRemak6},</if>
<if test="basicPrductRemak7 != null">basicPrductRemak7=#{basicPrductRemak7},</if>
<if test="basicPrductRemak8 != null">basicPrductRemak8=#{basicPrductRemak8},</if>
</trim>
where id = #{id}
</update>
<select id="batchSelectByUuid" resultType="com.glxp.api.entity.basic.UdiProductEntity">
select *
from basic_products where uuid in
@ -399,7 +456,59 @@
<select id="selectGgxhList" resultType="java.lang.String">
select distinct ggxh
from basic_products
left join basic_udirel on basic_products.uuid = basic_udirel.uuid
left join basic_udirel on basic_products.uuid = basic_udirel.uuid
where basic_udirel.id = #{relId}
</select>
</mapper>
<update id="updateUdiInfoNotAll" parameterType="com.glxp.api.req.basic.UdiInfoRequest">
UPDATE basic_products
<trim prefix="set" suffixOverrides=",">
<if test="packRatio != null">packRatio=#{packRatio},</if>
<if test="packLevel != null">packLevel=#{packLevel},</if>
<if test="bhxjsl != null">bhxjsl=#{bhxjsl},</if>
<if test="bhzxxsbzsl != null">bhzxxsbzsl=#{bhzxxsbzsl},</if>
<if test="zxxsbzbhsydysl != null">zxxsbzbhsydysl=#{zxxsbzbhsydysl},</if>
<if test="bhxjcpbm != null">bhxjcpbm=#{bhxjcpbm},</if>
<if test="bzcj != null">bzcj=#{bzcj},</if>
<if test="addType != null">addType=#{addType},</if>
<if test="deviceRecordKey != null">deviceRecordKey=#{deviceRecordKey},</if>
<if test="cpmctymc != null">cpmctymc=#{cpmctymc},</if>
<if test="cplb != null">cplb=#{cplb},</if>
<if test="flbm != null">flbm=#{flbm},</if>
<if test="ggxh != null">ggxh=#{ggxh},</if>
<if test="qxlb != null">qxlb=#{qxlb},</if>
<if test="tyshxydm != null">tyshxydm=#{tyshxydm},</if>
<if test="ylqxzcrbarmc != null">ylqxzcrbarmc=#{ylqxzcrbarmc},</if>
<if test="ylqxzcrbarywmc != null">ylqxzcrbarywmc=#{ylqxzcrbarywmc},</if>
<if test="uuid != null">uuid=#{uuid},</if>
<if test="sjcpbm != null">sjcpbm=#{sjcpbm},</if>
<if test="versionNumber != null">versionNumber=#{versionNumber},</if>
<if test="sptm != null">sptm=#{sptm},</if>
<if test="manufactory != null">manufactory=#{manufactory},</if>
<if test="ybbm != null">ybbm=#{ybbm},</if>
<if test="measname != null">measname=#{measname},</if>
<if test="diType != null">diType=#{diType},</if>
<if test="productType != null">productType=#{productType},</if>
<if test="scbssfbhph != null">scbssfbhph=#{scbssfbhph},</if>
<if test="scbssfbhxlh != null">scbssfbhxlh=#{scbssfbhxlh},</if>
<if test="scbssfbhscrq != null">scbssfbhscrq=#{scbssfbhscrq},</if>
<if test="scbssfbhsxrq != null">scbssfbhsxrq=#{scbssfbhsxrq},</if>
<if test="cpms != null">cpms=#{cpms},</if>
<if test="originUuid != null">originUuid=#{originUuid},</if>
<if test="spmc != null">spmc=#{spmc},</if>
<if test="cpdls != null">cpdls=#{cpdls},</if>
<if test="basicPrductRemak1 != null">basicPrductRemak1=#{basicPrductRemak1},</if>
<if test="basicPrductRemak2 != null">basicPrductRemak2=#{basicPrductRemak2},</if>
<if test="basicPrductRemak3 != null">basicPrductRemak3=#{basicPrductRemak3},</if>
<if test="basicPrductRemak4 != null">basicPrductRemak4=#{basicPrductRemak4},</if>
<if test="basicPrductRemak5 != null">basicPrductRemak5=#{basicPrductRemak5},</if>
<if test="basicPrductRemak6 != null">basicPrductRemak6=#{basicPrductRemak6},</if>
<if test="basicPrductRemak7 != null">basicPrductRemak7=#{basicPrductRemak7},</if>
<if test="basicPrductRemak8 != null">basicPrductRemak8=#{basicPrductRemak8},</if>
</trim>
WHERE uuid = #{uuid}
</update>
</mapper>

@ -1,4 +1,28 @@
<?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.inout.IoCodeLostMapper">
<select id="selectLost" parameterType="com.glxp.api.entity.inout.IoCodeLostEntity"
resultType="com.glxp.api.res.inout.IoCodeLostResponse">
select io_code_lost.*, basic_products.cpmctymc, basic_products.ggxh
from io_code_lost
LEFT JOIN basic_products on io_code_lost.nameCode = basic_products.nameCode
<where>
<if test="code != '' and code != null">
and code like concat('%', #{code}, '%')
</if>
<if test="cpmctymc != '' and cpmctymc != null">
and basic_products.cpmctymc like concat('%', #{cpmctymc}, '%')
</if>
<if test="ggxh != '' and ggxh != null">
and basic_products.ggxh like concat('%', #{ggxh}, '%')
</if>
<if test="batchNo != '' and batchNo != null">
and batchNo like concat('%', #{batchNo}, '%')
</if>
<if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
AND date_format(io_code_lost.createTime, '%Y-%m-%d') between date_format(#{startTime}, '%Y-%m-%d') and date_format(#{endTime}, '%Y-%m-%d')
</if>
</where>
</select>
</mapper>

@ -4,8 +4,8 @@
<select id="filterList" resultType="com.glxp.api.res.inout.IoOrderDetailBizResponse">
select io_order_detail_biz.*
from io_order_detail_biz
left join basic_udirel bu on bu.id = io_order_detail_biz.bindRlFk
left join basic_products bp on bu.uuid = bp.uuid
left join basic_udirel bu on bu.id = io_order_detail_biz.bindRlFk
left join basic_products bp on bu.uuid = bp.uuid
<where>
<if test="orderIdFk != null and orderIdFk != ''">
AND orderIdFk = #{orderIdFk}
@ -22,4 +22,20 @@
</where>
group by io_order_detail_biz.id
</select>
</mapper>
<select id="filterListInv" resultType="com.glxp.api.res.inout.IoOrderInvoiceResponse">
SELECT ic.*,
(select cpmctymc from basic_products where basic_products.uuid = bu.uuid) cpmctymc,
(select ggxh from basic_products where basic_products.uuid = bu.uuid) ggxh
FROM io_order_invoice ic
LEFT JOIN basic_udirel bu ON bu.id = ic.bindRlFk
LEFT JOIN basic_products bp ON bu.uuid = bp.uuid
LEFT JOIN io_order_detail_biz io ON bu.id = io.bindRlFk
<where>
<if test="orderIdFk != null and orderIdFk != ''">
AND ic.orderIdFk = #{orderIdFk}
</if>
</where>
GROUP BY ic.bindRlFk
</select>
</mapper>

@ -22,4 +22,55 @@
</if>
</where>
</select>
</mapper>
<select id="filterOrderList" resultType="com.glxp.api.res.inout.IoOrderDetailResultResponse">
SELECT a2.*,
a1.mainAction,
b1.NAME AS fromCorpName,
(SELECT NAME FROM basic_bussiness_type bus WHERE bus.action = a1.action) billTypeName
FROM io_order_detail_result a2
LEFT JOIN io_order a1 ON a1.billNo = a2.orderIdFk
LEFT JOIN basic_corp b1 ON b1.erpId = a1.fromCorp
<where>
<if test="orderIdFk != null and orderIdFk != ''">
AND a2.orderIdFk = #{orderIdFk}
</if>
<if test="nameCode != null and nameCode != ''">
AND a2.nameCode = #{nameCode}
</if>
<if test="spec != null and spec != ''">
AND a2.spec = #{spec}
</if>
<if test="fromCorp != null and fromCorp != ''">
AND a1.fromCorp = #{fromCorp}
</if>
<if test="fromCorpName != null and fromCorpName != ''">
AND b1.name = #{fromCorpName}
</if>
<if test="manufacturer != null and manufacturer != ''">
AND a2.manufacturer = #{manufacturer}
</if>
<if test="zczbhhzbapzbh != null and zczbhhzbapzbh != ''">
AND a2.certCode = #{zczbhhzbapzbh}
</if>
<if test="startAduditTime != null and startAduditTime != '' and endAduditTime != null and endAduditTime != ''">
AND date_format(a1.auditTime, '%Y-%m-%d') between date_format(#{startAduditTime}, '%Y-%m-%d') and date_format(#{endAduditTime}, '%Y-%m-%d')
</if>
<if test="batchNo != null and batchNo != ''">
AND a2.batchNo = #{batchNo}
</if>
<if test="coName != null and coName != ''">
AND a2.coName = #{coName}
</if>
<if test="productName != null and productName != ''">
AND a2.coName like concat('%', #{productName}, '%')
</if>
<if test="actions != null and actions.size() != 0">
AND a1.`action` in
<foreach collection="actions" index="index" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</if>
</where>
</select>
</mapper>

@ -0,0 +1,12 @@
<?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.inout.IoOrderInvoiceMapper">
<insert id="insertInvoice" parameterType="com.glxp.api.entity.inout.IoOrderInvoiceEntity">
INSERT INTO io_order_invoice(orderIdFk, bindRlFk, batchNo, productDate, expireDate)
values (#{orderIdFk},
#{bindRlFk},
#{batchNo},
#{productDate},
#{expireDate})
</insert>
</mapper>

@ -4,16 +4,51 @@
<select id="filterList" parameterType="com.glxp.api.req.inv.FilterInvPreinDetailRequest"
resultType="com.glxp.api.res.inv.InvPreinDetailResponse">
select ic.*,
bp.cpmctymc productName
bp.cpmctymc productName,
bp.ggxh,
bp.manufactory,
bp.zczbhhzbapzbh,
bp.measname,
inv_prein_order.auditTime,
inv_prein_order.billNo,
aw.name invName,
bc.name fromName
from inv_prein_detail ic
left join basic_udirel bu on bu.id = ic.relId
left join basic_products bp on bu.uuid = bp.uuid
inner join inv_prein_order on orderId = inv_prein_order.billNo
left join basic_udirel bu on bu.id = ic.relId
left join basic_products bp on bu.uuid = bp.uuid
left join auth_warehouse aw on inv_prein_order.invCode = aw.code
left join basic_corp bc on inv_prein_order.fromCorp = bc.erpId
<where>
<if test="orderId != null and orderId != ''">
AND ic.orderId = #{orderId}
</if>
<if test="code != null and code != ''">
and ic.code like concat('%',#{code},'%')
and ic.code like concat('%', #{code}, '%')
</if>
<if test="batchNo != null and batchNo != ''">
AND ic.batchNo = #{batchNo}
</if>
<if test="nameCode != null and nameCode != ''">
AND ic.nameCode = #{nameCode}
</if>
<if test="invCode != null and invCode != ''">
AND inv_prein_order.invCode = #{invCode}
</if>
<if test="productName != null and productName != ''">
AND bp.cpmctymc = #{productName}
</if>
<if test="ggxh != null and ggxh != ''">
and bp.ggxh like concat('%', #{ggxh}, '%')
</if>
<if test="manufactory != null and manufactory != ''">
AND bp.manufactory = #{manufactory}
</if>
<if test="zczbhhzbapzbh != null and zczbhhzbapzbh != ''">
AND bp.zczbhhzbapzbh = #{zczbhhzbapzbh}
</if>
<if test="startAduditTime != null and startAduditTime != '' and endAduditTime != null and endAduditTime != ''">
AND date_format(inv_prein_order.auditTime, '%Y-%m-%d') between date_format(#{startAduditTime}, '%Y-%m-%d') and date_format(#{endAduditTime}, '%Y-%m-%d')
</if>
</where>
group by ic.id

@ -1,7 +1,12 @@
-- 字段新增 表名字段名字段类型修改方式1新增2修改3删除
# 字段新增 表名字段名字段类型修改方式1新增2修改3删除
CALL Pro_Temp_ColumnWork('io_order', 'fromReceiveBillNo', 'varchar(255) ', 1);
CALL Pro_Temp_ColumnWork('io_order', 'fromThrBillNo', 'varchar(255) ', 1);
CALL Pro_Temp_ColumnWork('io_order', 'syncStatus', 'tinyint ', 1);
CALL Pro_Temp_ColumnWork('io_order', 'busType', 'tinyint ', 1);
CALL Pro_Temp_ColumnWork('io_order', 'deliveryStatus', 'tinyint ', 1);
CALL Pro_Temp_ColumnWork('io_order', 'inCodeStatus', 'tinyint ', 1);
CALL Pro_Temp_ColumnWork('io_order', 'processStatus', 'tinyint ', 1);
CALL Pro_Temp_ColumnWork('io_code_lost', 'nameCode', 'varchar(255) ', 1);
CALL Pro_Temp_ColumnWork('thr_bustype_origin', 'thirdSysName', 'varchar(255) ', 3);
CALL Pro_Temp_ColumnWork('thr_system_bus_api', 'thirdBuyName', 'varchar(255) ', 3);
@ -9,14 +14,79 @@ CALL Pro_Temp_ColumnWork('thr_system_bus_api', 'thirdBuyName', 'varchar(255) ',
CALL Pro_Temp_ColumnWork('io_order_detail_biz', 'bindRlIds', 'varchar(255) ', 1);
CALL Pro_Temp_ColumnWork('auth_warehouse', 'advanceType', 'tinyint', 1);
CALL Pro_Temp_ColumnWork('auth_warehouse', 'spUse', 'tinyint', 1);
CALL Pro_Temp_ColumnWork('basic_udirel', 'relCode', 'varchar(255) ', 1);
CALL Pro_Temp_ColumnWork('basic_udirel', 'lowStockNum', 'tinyint ', 1);
CALL Pro_Temp_ColumnWork('basic_udirel', 'overStockNum', 'tinyint ', 1);
CALL Pro_Temp_ColumnWork('basic_udirel', 'recentDateTime', 'tinyint ', 1);
CALL Pro_Temp_ColumnWork('basic_udirel', 'isDateBy', 'tinyint', 1);
CALL Pro_Temp_ColumnWork('basic_udirel', 'lowStockNum', 'varchar(255) ', 1);
CALL Pro_Temp_ColumnWork('basic_udirel', 'useExpireTime', 'int', 1);
CALL Pro_Temp_ColumnWork('basic_udirel', 'dispatch', 'tinyint', 1);
CALL Pro_Temp_ColumnWork('basic_udirel', 'groupBuy', 'tinyint', 1);
CALL Pro_Temp_ColumnWork('basic_udirel', 'isDateBy', 'tinyint', 1);
CALL Pro_Temp_ColumnWork('basic_udirel', 'needCert', 'tinyint', 1);
CALL Pro_Temp_ColumnWork('basic_bussiness_type', 'vailDispatch', 'tinyint', 1);
CALL Pro_Temp_ColumnWork('basic_bussiness_type', 'vailGroupBuy', 'tinyint', 1);
CALL Pro_Temp_ColumnWork('basic_bussiness_type', 'busType', 'tinyint', 1);
CALL Pro_Temp_ColumnWork('basic_bussiness_type', 'inStock', 'tinyint', 1);
CALL Pro_Temp_ColumnWork('basic_bussiness_type', 'actionType', 'tinyint', 1);
CALL Pro_Temp_ColumnWork('basic_bussiness_type', 'thrCheckEnable', 'tinyint', 1);
CALL Pro_Temp_ColumnWork('basic_bussiness_type', 'thrCheckWebNew', 'tinyint', 1);
CALL Pro_Temp_ColumnWork('basic_bussiness_type', 'thrCheckPdaUn', 'tinyint', 1);
CALL Pro_Temp_ColumnWork('basic_bussiness_type', 'thrCheckPdaEd', 'tinyint', 1);
CALL Pro_Temp_ColumnWork('basic_bussiness_type', 'thrCheckUdims', 'tinyint', 1);
CALL Pro_Temp_ColumnWork('basic_bussiness_type', 'thrCheckPc', 'tinyint', 1);
CALL Pro_Temp_ColumnWork('basic_bussiness_type', 'thrCheckSp', 'tinyint', 1);
CALL Pro_Temp_ColumnWork('basic_bussiness_type', 'thrCheckChange', 'tinyint', 1);
CALL Pro_Temp_ColumnWork('basic_bussiness_type', 'thrCheckBalance', 'tinyint', 1);
CALL Pro_Temp_ColumnWork('basic_bussiness_type', 'thrCheckCopy', 'tinyint', 1);
CALL Pro_Temp_ColumnWork('basic_bussiness_type', 'fillCodeRel', 'tinyint', 1);
CALL Pro_Temp_ColumnWork('basic_bussiness_type', 'checkVailDate', 'tinyint', 1);
CALL Pro_Temp_ColumnWork('basic_bussiness_type', 'checkExpire', 'tinyint', 1);
CALL Pro_Temp_ColumnWork('basic_bussiness_type', 'checkCertExpire', 'tinyint', 1);
CALL Pro_Temp_ColumnWork('pur_delivery_detail', 'batchNo', 'varchar(255) ', 1);
CALL Pro_Temp_ColumnWork('pur_delivery_detail', 'productDate', 'varchar(255) ', 1);
CALL Pro_Temp_ColumnWork('pur_delivery_detail', 'expireDate', 'varchar(255) ', 1);
CALL Pro_Temp_ColumnWork('pur_arrival_detail', 'batchNo', 'varchar(255) ', 1);
CALL Pro_Temp_ColumnWork('pur_arrival_detail', 'productDate', 'varchar(255) ', 1);
CALL Pro_Temp_ColumnWork('pur_arrival_detail', 'expireDate', 'varchar(255) ', 1);
CALL Pro_Temp_ColumnWork('pur_arrival_detail', 'arrivalCount', 'int ', 1);
CALL Pro_Temp_ColumnWork('pur_arrival', 'supId', 'varchar(255) ', 1);
CALL Pro_Temp_ColumnWork('pur_returned_detail', 'batchNo', 'varchar(255) ', 1);
CALL Pro_Temp_ColumnWork('pur_returned_detail', 'productDate', 'varchar(255) ', 1);
CALL Pro_Temp_ColumnWork('pur_returned_detail', 'expireDate', 'varchar(255) ', 1);
CALL Pro_Temp_ColumnWork('pur_delivery', 'supId', 'varchar(255) ', 1);
CALL Pro_Temp_ColumnWork('pur_returned', 'supId', 'varchar(255) ', 1);
CALL Pro_Temp_ColumnWork('basic_bustype_pre', 'targetBusAction', 'varchar(255)', 1);
CALL Pro_Temp_ColumnWork('basic_bustype_pre', 'busBeforeTime', 'tinyint', 1);
CALL Pro_Temp_ColumnWork('basic_bustype_pre', 'beforeTime', 'tinyint', 1);
CALL Pro_Temp_ColumnWork('basic_bustype_pre', 'auditStatus', 'tinyint', 1);
CALL Pro_Temp_ColumnWork('basic_bustype_pre', 'busAuditStatus', 'tinyint', 1);
CALL Pro_Temp_ColumnWork('basic_bustype_change', 'auditStatus', 'tinyint', 1);
CALL Pro_Temp_ColumnWork('basic_bustype_change', 'busAuditStatus', 'tinyint', 1);
CALL Pro_Temp_ColumnWork('basic_bustype_change', 'targetBusAction', 'varchar(255)', 1);
CALL Pro_Temp_ColumnWork('basic_bustype_change', 'beforeTime', 'tinyint', 1);
CALL Pro_Temp_ColumnWork('basic_bustype_change', 'busBeforeTime', 'tinyint', 1);
CALL Pro_Temp_ColumnWork('pur_order', 'emergency', 'varchar(255)', 1);
CALL Pro_Temp_ColumnWork('pur_order', 'supId', 'varchar(255)', 1);
CALL Pro_Temp_ColumnWork('pur_order', 'arrivalTime', 'datetime', 1);
CALL Pro_Temp_ColumnWork('pur_order_detail', 'planCount', 'tinyint', 1);
CALL Pro_Temp_ColumnWork('inv_prein_detail', 'status', 'tinyint', 1);
CALL Pro_Temp_ColumnWork('inv_prein_detail', 'originCount', 'int', 1);
CALL Pro_Temp_ColumnWork('inv_prein_detail', 'originReCount', 'int', 1);
CALL Pro_Temp_ColumnWork('io_code_lost', 'nameCode', 'varchar(255)', 1);

Loading…
Cancel
Save