单据类型转换,耗材字典新增问题

master
anthonywj 2 years ago
parent f14e4c2b78
commit fbcc23540d

@ -85,7 +85,10 @@ public class BasicBussinessTypeController extends BaseController {
if (isHosUser()) { if (isHosUser()) {
bussinessTypeFilterRequest.setUserId(getUserId()); bussinessTypeFilterRequest.setUserId(getUserId());
} else { } else {
// 供应商用户默认获取全部单据类型
bussinessTypeFilterRequest.setUserId(null); bussinessTypeFilterRequest.setUserId(null);
bussinessTypeFilterRequest.setCode(null);
} }
List<BasicBussinessTypeResponse> bussinessTypeEntities; List<BasicBussinessTypeResponse> bussinessTypeEntities;
bussinessTypeEntities = basicBussinessTypeService.filterJoinByUser( bussinessTypeEntities = basicBussinessTypeService.filterJoinByUser(

@ -515,7 +515,8 @@ public class UdiRelevanceController {
for (ThrSystemEntity thrSystemEntity : basicThirdSysEntities) { for (ThrSystemEntity thrSystemEntity : basicThirdSysEntities) {
if (thrSystemEntity.getThirdId().equals("thirdId")) { if (thrSystemEntity.getThirdId().equals("thirdId")) {
BasicProductThirdSysResponse basicProductThirdSysResponse = new BasicProductThirdSysResponse(); BasicProductThirdSysResponse basicProductThirdSysResponse = new BasicProductThirdSysResponse();
basicProductThirdSysResponse.setThirdId(udiRelevanceEntity.getThirdId()); if (StrUtil.isNotEmpty(udiRelevanceEntity.getThirdId()))
basicProductThirdSysResponse.setThirdId(udiRelevanceEntity.getThirdId());
basicProductThirdSysResponse.setSysName(thrSystemEntity.getThirdName()); basicProductThirdSysResponse.setSysName(thrSystemEntity.getThirdName());
basicProductThirdSysResponse.setSysId(thrSystemEntity.getThirdId()); basicProductThirdSysResponse.setSysId(thrSystemEntity.getThirdId());
if (udiRelevanceEntity.getThirdId() != null && !udiRelevanceEntity.getThirdId().isEmpty()) { if (udiRelevanceEntity.getThirdId() != null && !udiRelevanceEntity.getThirdId().isEmpty()) {
@ -534,7 +535,8 @@ public class UdiRelevanceController {
} }
if (thrSystemEntity.getThirdId().equals("thirdId1")) { if (thrSystemEntity.getThirdId().equals("thirdId1")) {
BasicProductThirdSysResponse basicProductThirdSysResponse = new BasicProductThirdSysResponse(); BasicProductThirdSysResponse basicProductThirdSysResponse = new BasicProductThirdSysResponse();
basicProductThirdSysResponse.setThirdId(udiRelevanceEntity.getThirdId1()); if (StrUtil.isNotEmpty(udiRelevanceEntity.getThirdId1()))
basicProductThirdSysResponse.setThirdId(udiRelevanceEntity.getThirdId1());
basicProductThirdSysResponse.setSysName(thrSystemEntity.getThirdName()); basicProductThirdSysResponse.setSysName(thrSystemEntity.getThirdName());
basicProductThirdSysResponse.setSysId(thrSystemEntity.getThirdId()); basicProductThirdSysResponse.setSysId(thrSystemEntity.getThirdId());
if (udiRelevanceEntity.getThirdId1() != null && !udiRelevanceEntity.getThirdId1().isEmpty()) { if (udiRelevanceEntity.getThirdId1() != null && !udiRelevanceEntity.getThirdId1().isEmpty()) {
@ -550,7 +552,8 @@ public class UdiRelevanceController {
} }
if (thrSystemEntity.getThirdId().equals("thirdId2")) { if (thrSystemEntity.getThirdId().equals("thirdId2")) {
BasicProductThirdSysResponse basicProductThirdSysResponse = new BasicProductThirdSysResponse(); BasicProductThirdSysResponse basicProductThirdSysResponse = new BasicProductThirdSysResponse();
basicProductThirdSysResponse.setThirdId(udiRelevanceEntity.getThirdId2()); if (StrUtil.isNotEmpty(udiRelevanceEntity.getThirdId2()))
basicProductThirdSysResponse.setThirdId(udiRelevanceEntity.getThirdId2());
basicProductThirdSysResponse.setSysName(thrSystemEntity.getThirdName()); basicProductThirdSysResponse.setSysName(thrSystemEntity.getThirdName());
basicProductThirdSysResponse.setSysId(thrSystemEntity.getThirdId()); basicProductThirdSysResponse.setSysId(thrSystemEntity.getThirdId());
if (udiRelevanceEntity.getThirdId2() != null && !udiRelevanceEntity.getThirdId2().isEmpty()) { if (udiRelevanceEntity.getThirdId2() != null && !udiRelevanceEntity.getThirdId2().isEmpty()) {
@ -566,7 +569,8 @@ public class UdiRelevanceController {
} }
if (thrSystemEntity.getThirdId().equals("thirdId3")) { if (thrSystemEntity.getThirdId().equals("thirdId3")) {
BasicProductThirdSysResponse basicProductThirdSysResponse = new BasicProductThirdSysResponse(); BasicProductThirdSysResponse basicProductThirdSysResponse = new BasicProductThirdSysResponse();
basicProductThirdSysResponse.setThirdId(udiRelevanceEntity.getThirdId3()); if (StrUtil.isNotEmpty(udiRelevanceEntity.getThirdId3()))
basicProductThirdSysResponse.setThirdId(udiRelevanceEntity.getThirdId3());
basicProductThirdSysResponse.setSysName(thrSystemEntity.getThirdName()); basicProductThirdSysResponse.setSysName(thrSystemEntity.getThirdName());
basicProductThirdSysResponse.setSysId(thrSystemEntity.getThirdId()); basicProductThirdSysResponse.setSysId(thrSystemEntity.getThirdId());
if (udiRelevanceEntity.getThirdId3() != null && !udiRelevanceEntity.getThirdId3().isEmpty()) { if (udiRelevanceEntity.getThirdId3() != null && !udiRelevanceEntity.getThirdId3().isEmpty()) {
@ -583,7 +587,8 @@ public class UdiRelevanceController {
} }
if (thrSystemEntity.getThirdId().equals("thirdId4")) { if (thrSystemEntity.getThirdId().equals("thirdId4")) {
BasicProductThirdSysResponse basicProductThirdSysResponse = new BasicProductThirdSysResponse(); BasicProductThirdSysResponse basicProductThirdSysResponse = new BasicProductThirdSysResponse();
basicProductThirdSysResponse.setThirdId(udiRelevanceEntity.getThirdId4()); if (StrUtil.isNotEmpty(udiRelevanceEntity.getThirdId4()))
basicProductThirdSysResponse.setThirdId(udiRelevanceEntity.getThirdId4());
basicProductThirdSysResponse.setSysName(thrSystemEntity.getThirdName()); basicProductThirdSysResponse.setSysName(thrSystemEntity.getThirdName());
basicProductThirdSysResponse.setSysId(thrSystemEntity.getThirdId()); basicProductThirdSysResponse.setSysId(thrSystemEntity.getThirdId());
if (udiRelevanceEntity.getThirdId4() != null && !udiRelevanceEntity.getThirdId4().isEmpty()) { if (udiRelevanceEntity.getThirdId4() != null && !udiRelevanceEntity.getThirdId4().isEmpty()) {
@ -643,11 +648,11 @@ public class UdiRelevanceController {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
} }
boolean falg=udiProductService.updateUdiInfoById(udiProductEntity); boolean falg = udiProductService.updateUdiInfoById(udiProductEntity);
if(falg){ if (falg) {
return ResultVOUtils.success("更新成功"); return ResultVOUtils.success("更新成功");
}else{ } else {
return ResultVOUtils.error(999,"更新失败"); return ResultVOUtils.error(999, "更新失败");
} }
} }

@ -16,6 +16,7 @@ import com.glxp.api.entity.basic.UdiProductEntity;
import com.glxp.api.entity.basic.UdiRelevanceEntity; import com.glxp.api.entity.basic.UdiRelevanceEntity;
import com.glxp.api.entity.thrsys.ThrProductsAddDiEntity; import com.glxp.api.entity.thrsys.ThrProductsAddDiEntity;
import com.glxp.api.entity.thrsys.ThrProductsEntity; import com.glxp.api.entity.thrsys.ThrProductsEntity;
import com.glxp.api.entity.thrsys.ThrSystemEntity;
import com.glxp.api.exception.JsonException; import com.glxp.api.exception.JsonException;
import com.glxp.api.req.basic.SupplementRequest; import com.glxp.api.req.basic.SupplementRequest;
import com.glxp.api.req.basic.UdiCombineRequest; import com.glxp.api.req.basic.UdiCombineRequest;
@ -31,6 +32,7 @@ import com.glxp.api.service.auth.CustomerService;
import com.glxp.api.service.basic.*; import com.glxp.api.service.basic.*;
import com.glxp.api.service.thrsys.ThrProductsAddDiService; import com.glxp.api.service.thrsys.ThrProductsAddDiService;
import com.glxp.api.service.thrsys.ThrProductsService; import com.glxp.api.service.thrsys.ThrProductsService;
import com.glxp.api.service.thrsys.ThrSystemService;
import com.glxp.api.util.CustomUtil; import com.glxp.api.util.CustomUtil;
import com.glxp.api.util.SupplementVailUtil; import com.glxp.api.util.SupplementVailUtil;
import lombok.Data; import lombok.Data;
@ -81,7 +83,6 @@ public class ThrProductsAddDiController {
CustomerService customerService; CustomerService customerService;
/** /**
* DI * DI
* *
@ -151,6 +152,10 @@ public class ThrProductsAddDiController {
return authAdmin.getCustomerId() + ""; return authAdmin.getCustomerId() + "";
} }
@Resource
ThrSystemService thrSystemService;
/** /**
* DI * DI
* *
@ -165,86 +170,88 @@ public class ThrProductsAddDiController {
} }
thrProductsAddDiEntity.setAuditTime(new Date()); thrProductsAddDiEntity.setAuditTime(new Date());
thrProductsAddDiEntity.setAuditUser(customerService.getUserId()+""); thrProductsAddDiEntity.setAuditUser(customerService.getUserId() + "");
thrProductsAddDiService.updateDiProduct(thrProductsAddDiEntity); thrProductsAddDiService.updateDiProduct(thrProductsAddDiEntity);
thrProductsAddDiEntity = thrProductsAddDiService.selecById(thrProductsAddDiEntity.getId()); thrProductsAddDiEntity = thrProductsAddDiService.selecById(thrProductsAddDiEntity.getId());
//自增的数据就再到第三方产品里面 //自增的数据就再到第三方产品里面
if(thrProductsAddDiEntity.getType()==2){
ThrProductsEntity thrProductsEntity=new ThrProductsEntity();
BeanUtils.copyProperties(thrProductsAddDiEntity,thrProductsEntity);
thrProductsService.insertThrProducts(thrProductsEntity);
}
ThrProductsAddDiResponse thrProductsAddDiResponse = thrProductsAddDiService.selecById(thrProductsAddDiEntity.getId()); ThrProductsAddDiResponse thrProductsAddDiResponse = thrProductsAddDiService.selecById(thrProductsAddDiEntity.getId());
if (thrProductsAddDiEntity.getStatus() == 2) { //审核通过 if (thrProductsAddDiEntity.getStatus() == 2) { //审核通过
//审核通过后追加到耗材字典中 //第三方产品审核通过
UdiCombineRequest combineRequest = new UdiCombineRequest(); if (thrProductsAddDiEntity.getType() == 2) {
combineRequest.setCustomerId(Long.valueOf(thrProductsAddDiEntity.getCustomerId())); ThrProductsEntity thrProductsEntity = new ThrProductsEntity();
//插入数据,并获取关联主键 BeanUtils.copyProperties(thrProductsAddDiEntity, thrProductsEntity);
if (udiContrastService.isExit(thrProductsAddDiEntity.getUuid(), null, null)) { thrProductsService.insertThrProducts(thrProductsEntity);
return ResultVOUtils.error(500, "已存在该DI且未对照请联系供应商自行选入产品"); ThrSystemEntity basicThirdSysEntity = thrSystemService.selectMainThrSys();
} else { if (basicThirdSysEntity.getThirdId().equals(thrProductsAddDiEntity.getThirdSysFk()))
Long udiRelIdFk = udiContrastService.createOnlyUuid(combineRequest, thrProductsAddDiEntity.getUuid()); if (!udiContrastService.isExit(null, thrProductsAddDiEntity.getCode(), null)) {
udiContrastService.createOnlyMainId(thrProductsAddDiEntity.getCode());
//字段更新 }
UdiRelevanceEntity udiRelevanceEntity = udiRelevanceService.selectById(udiRelIdFk);
//更新产品信息 } else { //选入DI信息审核通过
UdiProductEntity udiProductEntity = udiProductService.findByUuid(udiRelevanceEntity.getUuid()); //审核通过后追加到耗材字典中
UdiCombineRequest combineRequest = new UdiCombineRequest();
udiProductEntity.setSptm(thrProductsAddDiResponse.getSptm()); combineRequest.setCustomerId(Long.valueOf(thrProductsAddDiEntity.getCustomerId()));
udiProductEntity.setYbbm(thrProductsAddDiResponse.getYbbm()); //插入数据,并获取关联主键
udiProductEntity.setMeasname(thrProductsAddDiResponse.getMeasname()); if (udiContrastService.isExit(thrProductsAddDiEntity.getUuid(), null, null)) {
udiProductEntity.setManufactory(thrProductsAddDiResponse.getManufactory()); return ResultVOUtils.error(500, "已存在该DI且未对照请联系供应商自行选入产品");
udiProductEntity.setSpmc(thrProductsAddDiResponse.getSpmc()); } else {
udiProductEntity.setCpms(thrProductsAddDiResponse.getCpms()); Long udiRelIdFk = udiContrastService.createOnlyUuid(combineRequest, thrProductsAddDiEntity.getUuid());
udiProductEntity.setPrice(thrProductsAddDiResponse.getPrice()); //字段更新
udiProductEntity.setBasicPrductRemak1(thrProductsAddDiResponse.getBasicPrductRemak1()); UdiRelevanceEntity udiRelevanceEntity = udiRelevanceService.selectById(udiRelIdFk);
udiProductEntity.setBasicPrductRemak2(thrProductsAddDiResponse.getBasicPrductRemak2()); //更新产品信息
udiProductEntity.setBasicPrductRemak3(thrProductsAddDiResponse.getBasicPrductRemak3()); UdiProductEntity udiProductEntity = udiProductService.findByUuid(udiRelevanceEntity.getUuid());
udiProductEntity.setBasicPrductRemak4(thrProductsAddDiResponse.getBasicPrductRemak4());
udiProductEntity.setBasicPrductRemak5(thrProductsAddDiResponse.getBasicPrductRemak5()); udiProductEntity.setSptm(thrProductsAddDiResponse.getSptm());
udiProductEntity.setBasicPrductRemak6(thrProductsAddDiResponse.getBasicPrductRemak6()); udiProductEntity.setYbbm(thrProductsAddDiResponse.getYbbm());
udiProductEntity.setBasicPrductRemak7(thrProductsAddDiResponse.getBasicPrductRemak7()); udiProductEntity.setMeasname(thrProductsAddDiResponse.getMeasname());
udiProductEntity.setBasicPrductRemak8(thrProductsAddDiResponse.getBasicPrductRemak8()); udiProductEntity.setManufactory(thrProductsAddDiResponse.getManufactory());
udiProductService.updateUdiInfo(udiProductEntity); udiProductEntity.setSpmc(thrProductsAddDiResponse.getSpmc());
udiProductEntity.setCpms(thrProductsAddDiResponse.getCpms());
UdiRelevanceEntity udiRelevanceEntity1=new UdiRelevanceEntity(); udiProductEntity.setPrice(thrProductsAddDiResponse.getPrice());
BeanUtils.copyProperties(udiRelevanceEntity,udiRelevanceEntity1); udiProductEntity.setBasicPrductRemak1(thrProductsAddDiResponse.getBasicPrductRemak1());
udiRelevanceService.updateUdiRelevance(udiRelevanceEntity1); udiProductEntity.setBasicPrductRemak2(thrProductsAddDiResponse.getBasicPrductRemak2());
udiProductEntity.setBasicPrductRemak3(thrProductsAddDiResponse.getBasicPrductRemak3());
udiProductEntity.setBasicPrductRemak4(thrProductsAddDiResponse.getBasicPrductRemak4());
udiProductEntity.setBasicPrductRemak5(thrProductsAddDiResponse.getBasicPrductRemak5());
udiProductEntity.setBasicPrductRemak6(thrProductsAddDiResponse.getBasicPrductRemak6());
udiProductEntity.setBasicPrductRemak7(thrProductsAddDiResponse.getBasicPrductRemak7());
udiProductEntity.setBasicPrductRemak8(thrProductsAddDiResponse.getBasicPrductRemak8());
udiProductService.updateUdiInfo(udiProductEntity);
UdiRelevanceEntity udiRelevanceEntity1 = new UdiRelevanceEntity();
BeanUtils.copyProperties(udiRelevanceEntity, udiRelevanceEntity1);
udiRelevanceService.updateUdiRelevance(udiRelevanceEntity1);
// udiInfoService.updateUdiInfo(udiInfoEntity); // udiInfoService.updateUdiInfo(udiInfoEntity);
//回填关联关系到关联表 //回填关联关系到关联表
CompanyProductRelevanceEntity companyProductRelevanceEntity = new CompanyProductRelevanceEntity(); CompanyProductRelevanceEntity companyProductRelevanceEntity = new CompanyProductRelevanceEntity();
companyProductRelevanceEntity.setCustomerId(thrProductsAddDiEntity.getCustomerId()); companyProductRelevanceEntity.setCustomerId(thrProductsAddDiEntity.getCustomerId());
companyProductRelevanceEntity.setUdiRlIdFk(udiRelIdFk); companyProductRelevanceEntity.setUdiRlIdFk(udiRelIdFk);
companyProductRelevanceEntity.setCreateTime(new Date()); companyProductRelevanceEntity.setCreateTime(new Date());
companyProductRelevanceEntity.setUpdateTime(new Date()); companyProductRelevanceEntity.setUpdateTime(new Date());
companyProductRelevanceEntity.setUnitFk(thrProductsAddDiEntity.getCustomerId().toString()); companyProductRelevanceEntity.setUnitFk(thrProductsAddDiEntity.getCustomerId().toString());
companyProductRelevanceEntity.setAuditStatus("1"); companyProductRelevanceEntity.setAuditStatus("1");
if (StrUtil.isNotEmpty(thrProductsAddDiEntity.getPrice())) if (StrUtil.isNotEmpty(thrProductsAddDiEntity.getPrice()))
companyProductRelevanceEntity.setPrice(new BigDecimal(thrProductsAddDiEntity.getPrice())); companyProductRelevanceEntity.setPrice(new BigDecimal(thrProductsAddDiEntity.getPrice()));
companyProductRelevanceService.insertCompanyProductRelevance(companyProductRelevanceEntity);
companyProductRelevanceService.insertCompanyProductRelevance(companyProductRelevanceEntity); if (StrUtil.isNotEmpty(thrProductsAddDiEntity.getSelectThridSysStr())) {
List<String> thirdSysList = JSONUtil.toList(thrProductsAddDiEntity.getSelectThridSysStr(), String.class);
if (thirdSysList.size() > 0) {
if (StrUtil.isNotEmpty(thrProductsAddDiEntity.getSelectThridSysStr())) { for (String thirdSys : thirdSysList) {
List<String> thirdSysList = JSONUtil.toList(thrProductsAddDiEntity.getSelectThridSysStr(), String.class); BasicNewUploadDiEntity newUploadDiEntity = new BasicNewUploadDiEntity();
if (thirdSysList.size() > 0) { newUploadDiEntity.setRelId(udiRelIdFk + "");
for (String thirdSys : thirdSysList) { newUploadDiEntity.setUpdateTime(new Date());
BasicNewUploadDiEntity newUploadDiEntity = new BasicNewUploadDiEntity(); newUploadDiEntity.setUploadStatus(0);
newUploadDiEntity.setRelId(udiRelIdFk + ""); newUploadDiEntity.setThirdSysFk(thirdSys);
newUploadDiEntity.setUpdateTime(new Date()); basicNewUploadDiService.insertNewUploadDi(newUploadDiEntity);
newUploadDiEntity.setUploadStatus(0); }
newUploadDiEntity.setThirdSysFk(thirdSys);
basicNewUploadDiService.insertNewUploadDi(newUploadDiEntity);
} }
} }
} }
} }

@ -81,6 +81,19 @@ public class BasicBusTypeChangeEntity {
@TableField(value = "remark") @TableField(value = "remark")
private String 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_ID = "id";
public static final String COL_ORIGINACTION = "originAction"; public static final String COL_ORIGINACTION = "originAction";

@ -123,6 +123,19 @@ public class BasicBusTypePreEntity {
@TableField(value = "remark") @TableField(value = "remark")
private String 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_ID = "id";
public static final String COL_INTRO = "intro"; public static final String COL_INTRO = "intro";

@ -29,4 +29,7 @@ public class BasicBusTypePreResponse extends BasicBusTypePreEntity {
*/ */
private String defaultInvName; private String defaultInvName;
private String targetBusName;
} }

@ -0,0 +1,233 @@
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.inv.InvProductService;
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());
buildInOrder(basicBusTypePreEntity, codeEnttities, orderEntity);
}
//后续做修改
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(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);
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);
//根据单据设置状态 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());
}
}
}
}
}

@ -584,6 +584,9 @@ public class IoCheckInoutService {
} }
} }
@Resource
IoChangeInoutService changeInoutService;
//校验完成后生成库存 //校验完成后生成库存
public void genInv(IoOrderEntity orderEntity, BasicBussinessTypeEntity bussinessTypeEntity) { public void genInv(IoOrderEntity orderEntity, BasicBussinessTypeEntity bussinessTypeEntity) {
@ -658,15 +661,22 @@ public class IoCheckInoutService {
} }
} }
//生成库存 //校验是否是不入库存单据
if (bussinessTypeEntity.isPreIn()) { if (bussinessTypeEntity.getBusType() == ConstantStatus.BUS_TYPE_NORMAL) {
genInvService.genPreInInv(orderEntity.getBillNo()); //生成库存
} else if (bussinessTypeEntity.isAdvanceType()) { if (bussinessTypeEntity.isPreIn()) {
genInvService.genPreInv(orderEntity.getBillNo()); genInvService.genPreInInv(orderEntity.getBillNo());
} else if (bussinessTypeEntity.isAdvanceType()) {
genInvService.genPreInv(orderEntity.getBillNo());
} else {
genInvService.genNorInv(orderEntity.getBillNo());
}
} else { } else {
genInvService.genNorInv(orderEntity.getBillNo()); //不入库存,直接进行单据流转
changeInoutService.changeOrder(orderEntity);
} }
} }

@ -43,8 +43,7 @@ public class IoGenInvService {
InvPreinOrderService invPreinOrderService; InvPreinOrderService invPreinOrderService;
@Resource @Resource
InvPreinDetailService invPreinDetailService; InvPreinDetailService invPreinDetailService;
@Resource
IBasicBussinessTypeService basicBussinessTypeService;
@Resource @Resource
IoOrderService orderService; IoOrderService orderService;
@Resource @Resource
@ -53,14 +52,10 @@ public class IoGenInvService {
IoCodeService codeService; IoCodeService codeService;
@Resource @Resource
IBasicBusTypePreService basicBusTypePreService; IBasicBusTypePreService basicBusTypePreService;
@Resource @Resource
GennerOrderUtils gennerOrderUtils; IoChangeInoutService ioChangeInoutService;
@Resource
InvWarehouseService invWarehouseService;
@Resource
SystemParamConfigService systemParamConfigService;
@Resource
IoCodeTempService codeTempService;
//生成普通库存 //生成普通库存
@ -112,7 +107,7 @@ public class IoGenInvService {
} }
BasicBusTypePreEntity basicBusTypePreEntity = basicBusTypePreService.findByOriginAction(orderEntity.getAction()); BasicBusTypePreEntity basicBusTypePreEntity = basicBusTypePreService.findByOriginAction(orderEntity.getAction());
if (basicBusTypePreEntity != null) { //进行单据流转 if (basicBusTypePreEntity != null) { //进行单据流转
genNewOrder(orderEntity, invProductDetailEntities); ioChangeInoutService.genNewOrder(orderEntity, invProductDetailEntities);
} else { //生成库存结束 } else { //生成库存结束
invProductDetailService.insertList(invProductDetailEntities); invProductDetailService.insertList(invProductDetailEntities);
} }
@ -199,163 +194,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.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);
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;
}
} }

@ -5,6 +5,7 @@
select bc.*, bu.name targetBusName select bc.*, bu.name targetBusName
from basic_bustype_change bc 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> <where>
<if test="originAction != null and originAction != ''"> <if test="originAction != null and originAction != ''">
AND bc.originAction = #{originAction} AND bc.originAction = #{originAction}

@ -21,9 +21,9 @@
select basic_bustype_pre.*, select basic_bustype_pre.*,
basic_bussiness_type.name basic_bussiness_type.name
from basic_bustype_pre from basic_bustype_pre
left join basic_bussiness_type on basic_bustype_pre.originAction = basic_bussiness_type.action 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_dept on basic_bustype_pre.defaultDeptCode = auth_dept.code
left join auth_warehouse on basic_bustype_pre.defaultInvCode = auth_warehouse.code left join auth_warehouse on basic_bustype_pre.defaultInvCode = auth_warehouse.code
where basic_bustype_pre.action = #{action} where basic_bustype_pre.action = #{action}
</select> </select>
@ -32,12 +32,17 @@
awA.name defaultInvName, awA.name defaultInvName,
awB.name invName, 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.originAction) originName,
(select name from basic_bussiness_type where action = basic_bustype_pre.action) targetName (select name
from basic_bussiness_type
where basic_bussiness_type.originAction = 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 FROM basic_bustype_pre
left JOIN auth_warehouse awA on basic_bustype_pre.defaultInvCode = awA.code 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 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 busTypeA on basic_bustype_pre.originAction = busTypeA.action
left join basic_bussiness_type busTypeB on basic_bustype_pre.action = busTypeB.action left join basic_bussiness_type busTypeB on basic_bustype_pre.action = busTypeB.action
<where> <where>
<if test="action != ''and action != null"> <if test="action != ''and action != null">
AND basic_bustype_pre.`action` = #{action} AND basic_bustype_pre.`action` = #{action}

@ -227,7 +227,7 @@
resultType="com.glxp.api.res.basic.BasicBussinessTypeResponse"> resultType="com.glxp.api.res.basic.BasicBussinessTypeResponse">
SELECT basic_bussiness_type.* SELECT basic_bussiness_type.*
FROM 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> <where>
<if test="name != ''and name != null"> <if test="name != ''and name != null">
AND basic_bussiness_type.name LIKE concat('%', #{name}, '%') AND basic_bussiness_type.name LIKE concat('%', #{name}, '%')

@ -41,3 +41,16 @@ 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_delivery', 'supId', 'varchar(255) ', 1);
CALL Pro_Temp_ColumnWork('pur_returned', '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);

Loading…
Cancel
Save