单据号自动生成,bug修复

master
anthonyywj2 3 years ago
parent 0b38bfd616
commit a6990442d8

@ -198,44 +198,4 @@ public class CorpImportLogController {
return ResultVOUtils.success("上传成功");
}
public boolean filterEmpty(Row row) {
if (row.getCell(0) != null) {
row.getCell(0).setCellType(CellType.STRING);
}
if (row.getCell(1) != null) {
row.getCell(1).setCellType(CellType.STRING);
}
if (row.getCell(2) != null) {
row.getCell(2).setCellType(CellType.STRING);
}
if (row.getCell(3) != null) {
row.getCell(3).setCellType(CellType.STRING);
}
if (row.getCell(4) != null) {
row.getCell(4).setCellType(CellType.STRING);
}
if (row.getCell(5) != null) {
row.getCell(5).setCellType(CellType.STRING);
}
if (row.getCell(6) != null) {
row.getCell(6).setCellType(CellType.STRING);
}
if ((row.getCell(0) == null && row.getCell(1) == null && row.getCell(2) == null
&& row.getCell(3) == null && row.getCell(4) == null && row.getCell(5) == null && row.getCell(6) == null) ||
(
(row.getCell(0) != null && row.getCell(1) != null && row.getCell(2) != null
&& row.getCell(3) != null && row.getCell(4) != null && row.getCell(5) != null && row.getCell(6) != null) &&
("".equals(row.getCell(0).getStringCellValue())
&& "".equals(row.getCell(1).getStringCellValue())
&& "".equals(row.getCell(2).getStringCellValue())
&& "".equals(row.getCell(3).getStringCellValue())
&& "".equals(row.getCell(4).getStringCellValue())
&& "".equals(row.getCell(5).getStringCellValue())
&& "".equals(row.getCell(6).getStringCellValue()))
)) {
return true;
}
return false;
}
}

@ -92,7 +92,6 @@ public class UdiRelevanceController {
@Resource
RedisUtil redisUtil;
//客户端器械信息下载
@AuthRuleAnnotation("")
@GetMapping("/udi/udirel/download")
public BaseResponse downloadProducts(FilterUdiInfoRequest filterUdiInfoRequest,
@ -112,7 +111,6 @@ public class UdiRelevanceController {
return ResultVOUtils.success(pageSimpleResponse);
}
//客户端器械信息下载
@AuthRuleAnnotation("")
@GetMapping("/udi/udirel/mutil/download")
public BaseResponse downloadMutilProducts(FilterUdiInfoRequest filterUdiInfoRequest,

@ -35,10 +35,7 @@ import com.glxp.sale.admin.service.inout.*;
import com.glxp.sale.admin.service.inventory.InvStockPrintService;
import com.glxp.sale.admin.service.inventory.InvWarehouseService;
import com.glxp.sale.admin.service.param.SystemParamConfigService;
import com.glxp.sale.admin.util.CustomUtil;
import com.glxp.sale.admin.util.DateUtil;
import com.glxp.sale.admin.util.JasperUtils;
import com.glxp.sale.admin.util.StockOrderBillNoUtils;
import com.glxp.sale.admin.util.*;
import com.glxp.sale.common.enums.ResultEnum;
import com.glxp.sale.common.res.BaseResponse;
import com.glxp.sale.common.util.ResultVOUtils;
@ -100,6 +97,8 @@ public class StockOrderController {
InvWarehouseService invWarehouseService;
@Resource
WarehouseUserService warehouseUserService;
@Resource
GennerOrderUtils gennerOrderUtils;
@AuthRuleAnnotation("")
@GetMapping("/udiwms/stock/order/error")
@ -149,27 +148,6 @@ public class StockOrderController {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
Integer userId = customerService.getUserId();
boolean noRepeatBillNo = false;
boolean newBillNo = false;
StockOrderFilterRequest stockOrderFilterRequest = new StockOrderFilterRequest();
while (!noRepeatBillNo) {
if (newBillNo) {
String billNo = StockOrderBillNoUtils.getBillNo(stockOrderPostRequest.getBillType());
stockOrderPostRequest.setBillNo(billNo);
}
if (StringUtils.isBlank(stockOrderPostRequest.getBillNo())) {
newBillNo = true;
continue;
}
stockOrderFilterRequest.setBillNo(stockOrderPostRequest.getBillNo());
if (stockOrderService.findOne(stockOrderFilterRequest) == null) {
noRepeatBillNo = true;
newBillNo = false;
} else {
newBillNo = true;
}
}
StockOrderEntity stockOrderEntity = new StockOrderEntity();
BeanUtils.copyProperties(stockOrderPostRequest, stockOrderEntity);
stockOrderEntity.setCreateUser(userId);
@ -189,6 +167,12 @@ public class StockOrderController {
}
}
if (StringUtils.isBlank(stockOrderEntity.getId())) {
BussinessLocalTypeEntity bussinessLocalTypeEntity = bussinessLocalTypeService.findBTByAction(stockOrderEntity.getBillType());
if (StrUtil.isEmpty(stockOrderPostRequest.getBillNo())) {
String orderNo = gennerOrderUtils.createStOrderNo(new OrderNoTypeBean("ZY" + MyStrUtil.trim(bussinessLocalTypeEntity.getLocalPrefix()), "yyyyMMdd"));
stockOrderPostRequest.setBillNo(orderNo);
stockOrderEntity.setBillNo(orderNo);
}
if (!getCustomerId().equals(Constant.SYSTEM_CUSTOMER_ID)) {
CompanyEntity companyEntity = companyService.findCompany(Long.parseLong(stockOrderPostRequest.getCustomerId()));
stockOrderEntity.setCorpId(companyEntity.getUnitIdFk());
@ -197,7 +181,6 @@ public class StockOrderController {
} else {
if (stockOrderPostRequest.getCorpId() == null) {
BasicUnitMaintainEntity basicUnitMaintainEntity = basicUnitMaintainService.selectByName(stockOrderPostRequest.getCorpName());
BussinessLocalTypeEntity bussinessLocalTypeEntity = bussinessLocalTypeService.findBTByAction(stockOrderEntity.getBillType());
if (basicUnitMaintainEntity == null && bussinessLocalTypeEntity.getCorpType() == ConstantStatus.CORP_TYPE_INPUT && bussinessLocalTypeEntity.isGenUnit()) {
basicUnitMaintainEntity = new BasicUnitMaintainEntity();
basicUnitMaintainEntity.setErpId(CustomUtil.getUnitId());

@ -335,7 +335,7 @@ public class StockQRCodeTextController {
@RequestBody InspectionPDFTemplateRequest inspectionPDFTemplateRequest) throws Exception {
StockOrderEntity stockOrderEntity =
stockOrderService.findById(inspectionPDFTemplateRequest.getOrderId());
stockOrderService.findById(inspectionPDFTemplateRequest.getQueryId());
if (stockOrderEntity == null) {
return ResultVOUtils.error(ResultEnum.DATA_NOT, "未找到该订单");
}

@ -12,10 +12,7 @@ import com.glxp.sale.admin.entity.basic.BasicUnitMaintainEntity;
import com.glxp.sale.admin.entity.basic.BussinessTypeEntity;
import com.glxp.sale.admin.entity.info.CompanyEntity;
import com.glxp.sale.admin.entity.info.CompanyProductRelevanceEntity;
import com.glxp.sale.admin.entity.inout.ErpOrderEntity;
import com.glxp.sale.admin.entity.inout.OrderEntity;
import com.glxp.sale.admin.entity.inout.WarehouseEntity;
import com.glxp.sale.admin.entity.inout.WarehouseUserEntity;
import com.glxp.sale.admin.entity.inout.*;
import com.glxp.sale.admin.entity.param.SystemParamConfigEntity;
import com.glxp.sale.admin.entity.udid.UdiEntity;
import com.glxp.sale.admin.exception.JsonException;
@ -38,9 +35,7 @@ import com.glxp.sale.admin.service.info.CompanyService;
import com.glxp.sale.admin.service.inout.*;
import com.glxp.sale.admin.service.param.SystemParamConfigService;
import com.glxp.sale.admin.thread.IoTransInoutService;
import com.glxp.sale.admin.util.CustomUtil;
import com.glxp.sale.admin.util.DateUtil;
import com.glxp.sale.admin.util.FilterUdiUtils;
import com.glxp.sale.admin.util.*;
import com.glxp.sale.common.enums.ResultEnum;
import com.glxp.sale.common.res.BaseResponse;
import com.glxp.sale.common.util.ResultVOUtils;
@ -65,8 +60,6 @@ public class WareHouseController {
private CodesService codesService;
@Resource
private OrderService orderService;
@Resource
private MyErpOrderService myErpOrderService;
@Resource
private IoTransInoutService ioTransInoutService;
@ -95,7 +88,10 @@ public class WareHouseController {
@Resource
SystemParamConfigService systemParamConfigService;
Logger logger = LoggerFactory.getLogger(StockOrderController.class);
@Resource
StockOrderService stockOrderService;
@Resource
GennerOrderUtils gennerOrderUtils;
@AuthRuleAnnotation("")
@GetMapping("admin/warehouse/inout/list")
public BaseResponse list(WarehouseQueryRequest warehouseQueryRequest) {
@ -169,6 +165,12 @@ public class WareHouseController {
@AuthRuleAnnotation("")
@GetMapping("spms/inout/dlcode/findByOrderId")
public BaseResponse downloadCodesByOrderId(WarehouseQueryRequest warehouseQueryRequest) {
StockOrderEntity stockOrderEntity = stockOrderService.findByBillNo(warehouseQueryRequest.getOrderId());
if (stockOrderEntity != null) {
warehouseQueryRequest.setOrderId(stockOrderEntity.getOrderIdFk());
}
List<WarehouseEntity> warehouseEntityList = codesService.findByOrderId(warehouseQueryRequest);
PageInfo<WarehouseEntity> pageInfo;
pageInfo = new PageInfo<>(warehouseEntityList);
@ -367,8 +369,6 @@ public class WareHouseController {
return ResultVOUtils.error(505, "当前产品临近过期,距过期还剩" + time + "天,是否确定继续添加?");
}
}
}
}
@ -397,10 +397,10 @@ public class WareHouseController {
//先生成扫码单据
OrderEntity orderEntity = orderService.findById(orderId);
if (StringUtils.isBlank(orderId) || orderEntity == null) {
orderId = "SM" + CustomUtil.getId();
String orderNo = gennerOrderUtils.createScOrderNo(new OrderNoTypeBean("MS" + MyStrUtil.trim(bussinessTypeEntity.getPrefix()), "yyyyMMdd"));
orderId = orderNo;
}
WarehouseQueryRequest warehouseQueryRequest = new WarehouseQueryRequest();
warehouseQueryRequest.setOrderId(orderId);
warehouseQueryRequest.setCode(code);
@ -671,19 +671,6 @@ public class WareHouseController {
}
public void updateErpOrderId(List<ErpOrderEntity> erpOrderEntities, String oldId, String newId) {
if (erpOrderEntities != null) {
List<ErpOrderEntity> inserts = new ArrayList<>();
for (ErpOrderEntity erpOrderEntity : erpOrderEntities) {
if (erpOrderEntity.getOrderIdFk().equals(oldId)) {
erpOrderEntity.setOrderIdFk(newId);
inserts.add(erpOrderEntity);
}
}
myErpOrderService.insertErpOrders(inserts);
}
}
@AuthRuleAnnotation("")
@PostMapping("/admin/warehouse/inout/save")

@ -49,274 +49,12 @@ public class ContrastErpUtil {
UdiDlHttpClient udiDlHttpClient;
public ContrastErpUtil() {
}
public ContrastErpUtil(String udiUrl) {
this.udiUrl = udiUrl;
}
public void contrastErp(UdiInfoService udiInfoService, UdiRelevanceService udiRelevanceService,
OrderDetailService orderDetailService,
OrderService orderService,
List<WarehouseEntity> warehouseEntityList, SystemParamConfigService setupService, BussinessTypeEntity bussinessTypeEntity) {
//单据详情初始化
String orderIdFk = warehouseEntityList.get(0).getOrderId();
FilterErpOrderRequest filterErpOrderRequest = new FilterErpOrderRequest();
filterErpOrderRequest.setOrderId(orderIdFk);
mErpOrderEntities = orderDetailService.filterAllMyErpOrder(filterErpOrderRequest);
if (mErpOrderEntities != null && mErpOrderEntities.size() > 0)
for (ErpOrderEntity erpOrderEntity : mErpOrderEntities) {
erpTotalCount = erpTotalCount + erpOrderEntity.getErpCount();
erpOrderEntity.setCount(0);
}
String errMsg = null;
String resultMsg = null;
//获取当前订单
OrderFilterRequest orderFilterRequest = new OrderFilterRequest();
orderFilterRequest.setId(orderIdFk);
OrderEntity orderEntity = orderService.findOne(orderFilterRequest);
//校验单据详情是否有包含一个di多个绑定
errMsg = vailMutiDi();
if (errMsg != null) {
orderEntity.setContrastStatus(ConstantStatus.ORDER_CHECK_FAIL);
orderEntity.setRemark(errMsg);
orderEntity.setUpdateTime(new Date());
orderService.updateOrder(orderEntity);
return;
}
//校验业务单据是否被其他扫码单校验
ErpOrderEntity vailExitMsg = vailErpExit(orderDetailService, mErpOrderEntities, orderIdFk);
SystemParamConfigRequest systemParamConfigRequest = new SystemParamConfigRequest();
systemParamConfigRequest.setParamKey("erp_forbidSameErp");
SystemParamConfigEntity systemParamConfigEntity = setupService.selectByParamKey(systemParamConfigRequest);
if (vailExitMsg != null && systemParamConfigEntity != null && systemParamConfigEntity.getParamValue().equals("1")) {
errMsg = "所选ERP单" + vailExitMsg.getErpOrderId() + "已被其他出入库单" + vailExitMsg.getOrderIdFk() + "绑定!";
}
//开始校验
List<WarehouseEntity> errorData = new ArrayList<>();
for (WarehouseEntity warehouseEntity : warehouseEntityList) {
// if (warehouseEntity.getCode().substring(0, 1).equals("#")) {
// UdiRelevanceResponse udiRelevanceResponse = udiRelevanceService.selectGroupById(warehouseEntity.getNameCode());
// if (udiRelevanceResponse != null) {
// //校验单据详情
// errMsg = vaildOrder(warehouseEntityList, warehouseEntity, udiRelevanceResponse);
// if (errMsg != null && (errMsg.equals("产品信息不匹配") || errMsg.equals("非此单产品批次号"))) {
// errorData.add(warehouseEntity);
// }
// } else {
// errMsg = "产品信息未维护";
// errorData.add(warehouseEntity);
// }
//
// } else {
//
// FilterUdiInfoRequest filterUdiInfoRequest = new FilterUdiInfoRequest();
// filterUdiInfoRequest.setNameCode(warehouseEntity.getNameCode());
// List<UdiRelevanceResponse> udiRelevanceEntities = udiRelevanceService.filterUdiRelevance(filterUdiInfoRequest);
// if (udiRelevanceEntities != null && udiRelevanceEntities.size() > 1 && erpOrderEntity.getBindRlFk() == null) {
// erpOrderEntity.setBindStatus(ConstantStatus.ORDER_DETAIL_DI_MUTI);
// myErpOrderService.updateErpOrder(erpOrderEntity);
// errMsg = "该产品DI绑定多个产品ID请在扫码单据详情绑定对应产品ID";
// }
//
// }
UdiInfoEntity udiInfoEntity = null;
udiInfoEntity = new InoutUtils(udiUrl).getUdiInfoByRlId(udiInfoService, udiRelevanceService, warehouseEntity.getCode(), udiDlHttpClient);
if (warehouseEntity.getCount() > 1) {
udiInfoEntity.setCount(warehouseEntity.getCount());
}
List<UdiRelevanceEntity> udiRelevanceEntities = udiRelevanceService.selectByUuid(udiInfoEntity.getUuid());
if (udiRelevanceEntities != null && udiRelevanceEntities.size() > 0) {
UdiRelevanceEntity udiRelevanceEntity = checkGoodsId(udiRelevanceEntities, bussinessTypeEntity);
if (udiRelevanceEntity != null) {
udiInfoEntity.setThirdId(udiRelevanceEntity.getThirdId());
udiInfoEntity.setThirdName(udiRelevanceEntity.getThirdName());
udiInfoEntity.setWarehouseCode(warehouseEntity.getWarehouseCode());
errMsg = vaildErpOrder(warehouseEntityList, udiInfoEntity);
if (errMsg != null && (errMsg.equals("产品信息不匹配") || errMsg.equals("非此单产品批次号"))) {
errorData.add(warehouseEntity);
}
} else {
errMsg = "产品信息不匹配";
errorData.add(warehouseEntity);
}
} else {
errMsg = "产品信息未维护";
errorData.add(warehouseEntity);
}
if (resultMsg == null && errMsg != null) {
resultMsg = errMsg;
}
}
if (mErpOrderEntities != null && mErpOrderEntities.size() > 0)
for (ErpOrderEntity erpOrderEntity : mErpOrderEntities) {
if (erpOrderEntity.getErpCount() != erpOrderEntity.getCount()) {
errMsg = "所选ERP单" + erpOrderEntity.getErpOrderId() + "下" + erpOrderEntity.getGoodsname() + "数量不匹配";
}
}
if (errMsg != null) {
orderEntity.setContrastStatus(ConstantStatus.ORDER_CHECK_FAIL);
orderEntity.setRemark(errMsg);
orderEntity.setUpdateTime(new Date());
orderService.updateOrder(orderEntity);
} else {
orderEntity.setContrastStatus(ConstantStatus.ORDER_CHECK_SUCCESS);
orderEntity.setUpdateTime(new Date());
orderService.updateOrder(orderEntity);
ioTransInoutService.printOrder(orderEntity.getId());
if (orderEntity.getCustomerId().equals(Constant.SYSTEM_CUSTOMER_ID)) {
InvProductsTrService.genInvProducts(orderEntity.getId());
}
}
if (errorData.size() > 0) {
new InoutUtils(udiUrl).generateConstrastDetail(udiInfoService, udiRelevanceService, orderDetailService, errorData, udiDlHttpClient);
}
}
//验证产品ID,批次号,仓位号
public String vaildOrder(List<WarehouseEntity> warehouseEntityList, WarehouseEntity warehouseEntity) {
String errMsg = "产品信息不匹配";
if (mErpOrderEntities.size() > 0) {
for (ErpOrderEntity erpOrderEntity : mErpOrderEntities) {
errMsg = vailCode(erpOrderEntity, warehouseEntity, null);
if (errMsg == null) {
int erpCount = erpOrderEntity.getCount() + warehouseEntity.getCount();
if (erpOrderEntity.getErpCount() != erpCount) {
erpOrderEntity.setCount(erpCount);
if (erpOrderEntity.getErpCount() != erpCount)
return "该" + warehouseEntity.getBatchNo() + "批次号下" + "订单数目不匹配";
}
erpOrderEntity.setCount(erpCount);
return null;
}
}
}
if (errMsg == null && getSelectedCount(warehouseEntityList) + warehouseEntity.getCount() != erpTotalCount) {
return "订单数目匹配失败";
}
return errMsg;
}
public String vailMutiDi() {
String errMsg = null;
for (ErpOrderEntity erpOrderEntity : mErpOrderEntities) {
FilterUdiInfoRequest filterUdiInfoRequest = new FilterUdiInfoRequest();
filterUdiInfoRequest.setNameCode(erpOrderEntity.getNameCode());
List<UdiRelevanceResponse> udiRelevanceEntities = udiRelevanceService.filterUdiRelevance(filterUdiInfoRequest);
if (udiRelevanceEntities != null && udiRelevanceEntities.size() > 1 && erpOrderEntity.getBindRlFk() == null) {
erpOrderEntity.setBindStatus(ConstantStatus.ORDER_DETAIL_DI_MUTI);
myErpOrderService.updateErpOrder(erpOrderEntity);
errMsg = "该产品维护了多个产品信息请在扫码单据详情绑定对应产品ID";
}
}
return errMsg;
}
public String vailCode(ErpOrderEntity erpOrderEntity, WarehouseEntity warehouseEntity, String udiRl) {
String errMsg = null;
if (erpOrderEntity.getBatchNo().equals(warehouseEntity.getBatchNo())) {
if (erpOrderEntity.getGoodsid().equals(udiRl)) {
if (erpOrderEntity.getWarehouseCode() != null && warehouseEntity.getWarehouseCode() != null) {
if (erpOrderEntity.getWarehouseCode().equals(warehouseEntity.getWarehouseCode())) {
return null;
} else
errMsg = "仓位号不匹配";
} else
return null;
} else
errMsg = "产品信息不匹配";
} else {
errMsg = "非此单产品批次号";
}
return errMsg;
}
public String checkRlId(ErpOrderEntity erpOrderEntity, WarehouseEntity warehouseEntity) {
FilterUdiInfoRequest filterUdiInfoRequest = new FilterUdiInfoRequest();
filterUdiInfoRequest.setNameCode(warehouseEntity.getNameCode());
List<UdiRelevanceResponse> udiRelevanceEntities = udiRelevanceService.filterUdiRelevance(filterUdiInfoRequest);
if (udiRelevanceEntities.size() > 1) {
for (UdiRelevanceResponse udiRelevanceResponse : udiRelevanceEntities) {
}
}
return null;
}
public String checkBatchNo() {
return null;
}
public String checkWarehouse() {
return null;
}
public String checkProduceDate() {
return null;
}
public String checkExpireDate() {
return null;
}
public UdiRelevanceEntity checkGoodsId(List<UdiRelevanceEntity> udiRelevanceEntities, BussinessTypeEntity bussinessTypeEntity) {
if (mErpOrderEntities.size() > 0) {
for (ErpOrderEntity erpOrderEntity : mErpOrderEntities) {
for (UdiRelevanceEntity udiRelevanceEntity : udiRelevanceEntities) {
if (bussinessTypeEntity.getThirdSysFk() == null) {
if (erpOrderEntity.getGoodsid().equals(udiRelevanceEntity.getThirdId())) {
return udiRelevanceEntity;
}
} else if (bussinessTypeEntity.getThirdSysFk().equals("thirdId")) {
if (erpOrderEntity.getGoodsid().equals(udiRelevanceEntity.getThirdId())) {
return udiRelevanceEntity;
}
} else if (bussinessTypeEntity.getThirdSysFk().equals("thirdId1")) {
if (erpOrderEntity.getGoodsid().equals(udiRelevanceEntity.getThirdId1())) {
udiRelevanceEntity.setThirdId(udiRelevanceEntity.getThirdId1());
udiRelevanceEntity.setThirdName(udiRelevanceEntity.getThirdName1());
return udiRelevanceEntity;
}
} else if (bussinessTypeEntity.getThirdSysFk().equals("thirdId2")) {
if (erpOrderEntity.getGoodsid().equals(udiRelevanceEntity.getThirdId2())) {
udiRelevanceEntity.setThirdId(udiRelevanceEntity.getThirdId2());
udiRelevanceEntity.setThirdName(udiRelevanceEntity.getThirdName2());
return udiRelevanceEntity;
}
} else if (bussinessTypeEntity.getThirdSysFk().equals("thirdId3")) {
if (erpOrderEntity.getGoodsid().equals(udiRelevanceEntity.getThirdId3())) {
udiRelevanceEntity.setThirdId(udiRelevanceEntity.getThirdId3());
udiRelevanceEntity.setThirdName(udiRelevanceEntity.getThirdName3());
return udiRelevanceEntity;
}
} else if (bussinessTypeEntity.getThirdSysFk().equals("thirdId4")) {
if (erpOrderEntity.getGoodsid().equals(udiRelevanceEntity.getThirdId4())) {
udiRelevanceEntity.setThirdId(udiRelevanceEntity.getThirdId4());
udiRelevanceEntity.setThirdName(udiRelevanceEntity.getThirdName4());
return udiRelevanceEntity;
}
}
}
}
}
return null;
}
public int getSelectedCount(List<WarehouseEntity> warehouseEntityList) {
int total = 0;
@ -326,29 +64,6 @@ public class ContrastErpUtil {
return total;
}
//验证产品ID,批次号,仓位号
public String vaildErpOrder(List<WarehouseEntity> warehouseEntityList, UdiInfoEntity udiInfoEntity) {
String errMsg = "产品信息不匹配";
if (mErpOrderEntities.size() > 0) {
for (ErpOrderEntity erpOrderEntity : mErpOrderEntities) {
errMsg = isPass(erpOrderEntity, udiInfoEntity);
if (errMsg == null) {
int erpCount = erpOrderEntity.getCount() + udiInfoEntity.getCount();
if (erpOrderEntity.getErpCount() != erpCount) {
erpOrderEntity.setCount(erpCount);
if (erpOrderEntity.getErpCount() != erpCount)
return "该" + udiInfoEntity.getBatchNo() + "批次号下" + udiInfoEntity.getCpmctymc() + "订单数目不匹配";
}
erpOrderEntity.setCount(erpCount);
return null;
}
}
}
if (errMsg == null && getSelectedCount(warehouseEntityList) + udiInfoEntity.getCount() != erpTotalCount) {
return "订单数目匹配失败";
}
return errMsg;
}
public String isPass(ErpOrderEntity erpOrderEntity, UdiInfoEntity udiInfoEntity) {
String errMsg = null;
@ -369,48 +84,6 @@ public class ContrastErpUtil {
return errMsg;
}
// public List<ErpOrderEntity> transErp(List<ErpOrderEntity> erpOrderEntities, UdiRelevanceService udiRelevanceService, String orderFk) {
// List<ErpOrderEntity> returnOrders = new ArrayList<>();
// Map<String, ErpOrderEntity> filterMap = new HashMap<>();
// if (erpOrderEntities != null && erpOrderEntities.size() > 0) {
// for (ErpOrderEntity erpOrderEntity : erpOrderEntities) {
//
// FilterUdiInfoRequest filterUdiInfoRequest = new FilterUdiInfoRequest();
// filterUdiInfoRequest.setThirdId(erpOrderEntity.getGoodsid());
// filterUdiInfoRequest.setPage(1);
// filterUdiInfoRequest.setLimit(100);
// List<UdiRelevanceResponse> udiRelevanceEntities = udiRelevanceService.filterUdiRelevance(filterUdiInfoRequest);
//
// if (udiRelevanceEntities != null && udiRelevanceEntities.size() > 0) {
// UdiRelevanceResponse temp = udiRelevanceEntities.get(0);
// erpOrderEntity.setCoName(temp.getCpmctymc());
// erpOrderEntity.setAuthCode(temp.getZczbhhzbapzbh());
// erpOrderEntity.setPackSpec(temp.getGgxh());
// erpOrderEntity.setPackRatio(temp.getPackRatio());
// erpOrderEntity.setProductCompany(temp.getYlqxzcrbarmc());
// erpOrderEntity.setOrderIdFk(orderFk);
// }
// erpOrderEntity.setOrderIdFk(orderFk);
// String key = erpOrderEntity.getBatchNo() + erpOrderEntity.getGoodsid() + erpOrderEntity.getWarehouseCode();
// ErpOrderEntity filterTemp = filterMap.get(key);
// if (filterTemp != null) {
// filterTemp.setErpCount(filterTemp.getErpCount() + erpOrderEntity.getErpCount());
// filterTemp.setErpOrderId(filterTemp.getErpOrderId() + "," + erpOrderEntity.getErpOrderId());
// } else {
// filterTemp = erpOrderEntity;
// }
// filterMap.put(key, filterTemp);
// }
// for (Map.Entry<String, ErpOrderEntity> entry : filterMap.entrySet()) {
// returnOrders.add(entry.getValue());
// }
// }
//
//
// return returnOrders;
// }
public List<String> getDocids(List<ErpOrderEntity> erpOrderEntities) {
Map<String, String> filter = new HashMap<>();
List<String> docids = new ArrayList<>();

@ -1,8 +1,14 @@
package com.glxp.sale.admin.controller.inout.utils;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.glxp.sale.admin.constant.ConstantStatus;
import com.glxp.sale.admin.constant.ConstantType;
import com.glxp.sale.admin.dao.inout.UdimsOrderDetailDao;
import com.glxp.sale.admin.entity.basic.UdiInfoEntity;
import com.glxp.sale.admin.entity.basic.UdiRelevanceEntity;
import com.glxp.sale.admin.entity.inout.OrderEntity;
import com.glxp.sale.admin.entity.inout.UdimsOrderDetailBean;
import com.glxp.sale.admin.entity.param.SystemParamConfigEntity;
import com.glxp.sale.admin.entity.inout.ErpOrderEntity;
import com.glxp.sale.admin.entity.inout.WarehouseEntity;
@ -11,6 +17,7 @@ import com.glxp.sale.admin.req.param.SystemParamConfigRequest;
import com.glxp.sale.admin.res.basic.UdiRelevanceResponse;
import com.glxp.sale.admin.service.basic.UdiInfoService;
import com.glxp.sale.admin.service.basic.UdiRelevanceService;
import com.glxp.sale.admin.service.inout.OrderService;
import com.glxp.sale.admin.service.param.SystemParamConfigService;
import com.glxp.sale.admin.service.inout.CodesService;
import com.glxp.sale.admin.service.inout.OrderDetailService;
@ -18,13 +25,22 @@ import com.glxp.sale.admin.thread.UdiDlHttpClient;
import com.glxp.sale.admin.util.DateUtil;
import com.glxp.sale.admin.util.FilterUdiUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Service
public class InoutUtils {
@Resource
UdimsOrderDetailDao udimsOrderDetailDao;
@Resource
OrderService orderService;
String udiUrl = "";
public InoutUtils() {
@ -226,6 +242,7 @@ public class InoutUtils {
OrderDetailService orderDetailService,
List<WarehouseEntity> warehouseEntityList, UdiDlHttpClient udiDlHttpClient) {
if (warehouseEntityList != null && warehouseEntityList.size() > 0) {
List<UdiInfoEntity> udiInfoEntities = new ArrayList<>();
for (WarehouseEntity warehouseEntity : warehouseEntityList) {
UdiInfoEntity udiInfoEntity = null;
@ -238,7 +255,8 @@ public class InoutUtils {
udiInfoEntities.add(udiInfoEntity);
}
}
String orderId = warehouseEntityList.get(0).getOrderId();
OrderEntity orderEntity = orderService.findById(orderId);
List<UdiInfoEntity> returnOrderDetail = new ArrayList<>();
Map<String, UdiInfoEntity> sortMaps = new HashMap<>();
for (UdiInfoEntity detailCodeEntity : udiInfoEntities) {
@ -254,6 +272,11 @@ public class InoutUtils {
System.out.println("key = " + entry.getKey() + ", value = " + entry.getValue());
returnOrderDetail.add(entry.getValue());
}
List<UdimsOrderDetailBean> udimsOrderDetailBeans = null;
if (orderEntity.getFromType() == ConstantStatus.FROM_UDIMS) {
udimsOrderDetailBeans = udimsOrderDetailDao.filterOrderDetails(orderId);
}
List<ErpOrderEntity> erpOrderEntities = new ArrayList<>();
for (UdiInfoEntity erpDetailCodeEntity : returnOrderDetail) {
@ -273,14 +296,45 @@ public class InoutUtils {
erpOrderEntity.setPackSpec(erpDetailCodeEntity.getGgxh());
erpOrderEntity.setUuidFk(erpDetailCodeEntity.getUuid());
erpOrderEntity.setSupId(erpDetailCodeEntity.getSupId());
UdimsOrderDetailBean udimsOrderDetailBean = vailUdiMs(udimsOrderDetailBeans, udiRelevanceService, erpOrderEntity);
if (udimsOrderDetailBean != null) {
erpOrderEntity.setFirstSalesInvNo(udimsOrderDetailBean.getFirstSalesInvNo());
erpOrderEntity.setInvoiceDate(udimsOrderDetailBean.getInvoiceDate());
erpOrderEntity.setPrice(udimsOrderDetailBean.getPrice());
erpOrderEntity.setSecSalesListNo(udimsOrderDetailBean.getSecSalesListNo());
erpOrderEntity.setSecSalesInvNo(udimsOrderDetailBean.getSecSalesInvNo());
}
erpOrderEntities.add(erpOrderEntity);
}
if (!erpOrderEntities.isEmpty())
if (!erpOrderEntities.isEmpty()) {
orderDetailService.insertErpOrders(erpOrderEntities);
if (orderEntity.getFromType() == ConstantStatus.FROM_UDIMS) {
udimsOrderDetailDao.deleteById(orderId);
}
}
}
}
public UdimsOrderDetailBean vailUdiMs(List<UdimsOrderDetailBean> udimsOrderDetailBeans, UdiRelevanceService udiRelevanceService, ErpOrderEntity erpOrderEntity) {
if (CollUtil.isNotEmpty(udimsOrderDetailBeans)) {
for (UdimsOrderDetailBean udimsOrderDetailBean : udimsOrderDetailBeans) {
List<UdiRelevanceEntity> udiRelevanceEntities = udiRelevanceService.selectByUuid(udimsOrderDetailBean.getUuidFk());
if (CollUtil.isNotEmpty(udiRelevanceEntities)) {
for (UdiRelevanceEntity udiRelevanceEntity : udiRelevanceEntities) {
if (udiRelevanceEntity.getId().equals(erpOrderEntity.getBindRlFk()) && StrUtil.isNotEmpty(udimsOrderDetailBean.getBatchNo()) &&
StrUtil.isNotEmpty(erpOrderEntity.getBatchNo())&& udimsOrderDetailBean.getBatchNo().equals(erpOrderEntity.getBatchNo())) {
return udimsOrderDetailBean;
}
}
}
}
}
return null;
}
public int getActCount(WarehouseEntity warehouseEntity, UdiRelevanceService udiRelevanceService) {
UdiRelevanceResponse udiInfoBean = udiRelevanceService.selectByNameCode(warehouseEntity.getNameCode());
if (udiInfoBean != null) {

@ -0,0 +1,19 @@
package com.glxp.sale.admin.dao.inout;
import com.glxp.sale.admin.entity.inout.UdimsOrderDetailBean;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@Mapper
public interface UdimsOrderDetailDao {
List<UdimsOrderDetailBean> filterOrderDetails(@Param("orderId") String orderId);
boolean insertOrderDetail(@Param("details") List<UdimsOrderDetailBean> udimsOrderDetailBean);
boolean deleteById(@Param("orderId") String orderId);
}

@ -26,4 +26,6 @@ public class BussinessLocalTypeEntity {
private String thirdAction;
private String thirdSys;
private Date updateTime;
private String prefix;
private String localPrefix;
}

@ -54,4 +54,7 @@ public class BussinessTypeEntity {
private boolean expireTip;
private Date updateTime;
private String prefix;
private String localPrefix;
}

@ -0,0 +1,18 @@
package com.glxp.sale.admin.entity.inout;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class UdimsOrderDetailBean {
private String uuidFk;
private BigDecimal price;
private String firstSalesInvNo;
private String secSalesInvNo;
private String secSalesListNo;
private String invoiceDate;
private String orderIdFk;
private String batchNo;
}

@ -7,7 +7,7 @@ import java.util.Date;
@Data
public class SystemPDFModuleEntity {
private int id;
private Integer id;
private String name;
private String param;
private String fieldExplain;

@ -1,6 +1,7 @@
package com.glxp.sale.admin.req.inout;
import com.glxp.sale.admin.entity.inout.OrderEntity;
import com.glxp.sale.admin.entity.inout.UdimsOrderDetailBean;
import com.glxp.sale.admin.entity.inout.WarehouseEntity;
import lombok.Data;
@ -25,6 +26,7 @@ public class PostUdimsOrderRequest {
private String fromCorp;
private String remark;
private List<CodeBean> codes;
private List<UdimsOrderDetailBean> orderDetails;
@Data
public static class CodeBean {
@ -54,6 +56,7 @@ public class PostUdimsOrderRequest {
private Integer status;
private String locStorageCode;
}
}

@ -55,5 +55,6 @@ public class BussinessTypResponse {
private boolean useDyCount;
private boolean expireTip;
private String prefix;
private String localPrefix;
}

@ -76,7 +76,7 @@ public class SyncUdiService {
// return ResultVOUtils.error(500, "请输入完整的产品通用名称!");
// }
productInfoFilterRequest.setIsNewest(1);
productInfoFilterRequest.setDiType("1");
// productInfoFilterRequest.setDiType("1");
List<ProductInfoEntity> productInfoEntityList = productInfoService.filterUdi(productInfoFilterRequest);
PageInfo<ProductInfoEntity> pageInfo;
pageInfo = new PageInfo<>(productInfoEntityList);

@ -24,7 +24,8 @@ public class CompanyProductsRelService {
@Async
public void insertCompanyProducts(UdiInfoExportRequest udiInfoExportRequest) {
//选中导出
if (udiInfoExportRequest.getRlIds() != null && udiInfoExportRequest.getRlIds().size() > 0) {
if (udiInfoExportRequest.getRlIds().size() > 0) {
if (udiInfoExportRequest.getRlIds() != null) {
List<String> rlIdS = udiInfoExportRequest.getRlIds();
for (String uuid : rlIdS) {
CompanyProductRelevanceEntity companyProductRelevanceEntity = new CompanyProductRelevanceEntity();
@ -52,6 +53,23 @@ public class CompanyProductsRelService {
// companyProductRelevanceEntity.setProductUuid(udiRelevanceResponse.getUuid());
// companyProductRelevanceEntity.setCustomerId(udiInfoExportRequest.getCustomerId());
// boolean b = companyProductRelevanceService.insertCompanyProductRelevance(companyProductRelevanceEntity);
// }
}
} else {//一键导出 //todo暂时去掉
// FilterUdiInfoRequest filterUdiInfoRequest = new FilterUdiInfoRequest();
// BeanUtils.copyProperties(udiInfoExportRequest, filterUdiInfoRequest);
// filterUdiInfoRequest.setPage(null);
// List<UdiRelevanceResponse> udiRelevanceResponses = udiRelevanceService.filterUdiRelevance(filterUdiInfoRequest);
// for (UdiRelevanceResponse udiRelevanceResponse : udiRelevanceResponses) {
// CompanyProductRelevanceEntity companyProductRelevanceEntity = new CompanyProductRelevanceEntity();
// companyProductRelevanceEntity.setCreate_time(new Date());
// companyProductRelevanceEntity.setUpdate_time(new Date());
// companyProductRelevanceEntity.setAuditStatus("3");
// companyProductRelevanceEntity.setUnitFk(udiInfoExportRequest.getUnitFk());
// companyProductRelevanceEntity.setUdiRlIdFk(udiRelevanceResponse.getId());
// companyProductRelevanceEntity.setProductUuid(udiRelevanceResponse.getUuid());
// companyProductRelevanceEntity.setCustomerId(udiInfoExportRequest.getCustomerId());
// boolean b = companyProductRelevanceService.insertCompanyProductRelevance(companyProductRelevanceEntity);
// }
}
}

@ -1,5 +1,6 @@
package com.glxp.sale.admin.thread;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.glxp.sale.admin.config.WebSocketServer;
import com.glxp.sale.admin.constant.Constant;
@ -9,6 +10,7 @@ import com.glxp.sale.admin.controller.inout.utils.CheckOrderUtils;
import com.glxp.sale.admin.controller.inout.utils.ContrastErpUtil;
import com.glxp.sale.admin.controller.inout.utils.DataTransUtil;
import com.glxp.sale.admin.controller.inout.utils.InoutUtils;
import com.glxp.sale.admin.dao.inout.UdimsOrderDetailDao;
import com.glxp.sale.admin.entity.basic.BasicThirdSysDetailEntity;
import com.glxp.sale.admin.entity.basic.BasicUnitMaintainEntity;
import com.glxp.sale.admin.entity.basic.BussinessTypeEntity;
@ -115,6 +117,8 @@ public class IoTransInoutService {
InvPreProductService invPreProductService;
@Resource
UdiDlHttpClient udiDlHttpClient;
@Resource
UdimsOrderDetailDao udimsOrderDetailDao;
//web端新增订单
@Async
@ -258,7 +262,7 @@ public class IoTransInoutService {
orderEntity.setId(orderId);
orderEntity.setCreateUser(postUdimsOrderRequest.getUserId());
orderEntity.setMainAction(ConstantType.TYPE_PUT);
orderEntity.setActDate(DateUtil.getDate());
orderEntity.setActDate(DateUtil.formatDateTime(new Date()));
orderEntity.setStatus(ConstantStatus.ORDER_STATUS_PROCESS);
orderEntity.setExportStatus(ConstantStatus.ORDER_EXPORT_UN);
orderEntity.setContrastStatus(ConstantStatus.ORDER_CHECK_UN);
@ -289,7 +293,13 @@ public class IoTransInoutService {
UdiEntity udiEntity = FilterUdiUtils.getUdi(temp.getCode());
temp.setNameCode(udiEntity.getUdi());
}
if (CollUtil.isNotEmpty(postUdimsOrderRequest.getOrderBeans())) {
List<UdimsOrderDetailBean> udimsOrderDetailBeans = orderBean.getOrderDetails();
for (UdimsOrderDetailBean udimsOrderDetailBean : udimsOrderDetailBeans) {
udimsOrderDetailBean.setOrderIdFk(orderId);
}
udimsOrderDetailDao.insertOrderDetail(udimsOrderDetailBeans);
}
codesTempService.insertCodesTemp(warehouseEntities);
}
}
@ -321,7 +331,7 @@ public class IoTransInoutService {
public void transInout(OrderEntity orderEntity) {
orderEntity.setRemark("正在处理!");
orderEntity.setStatus(ConstantStatus.ORDER_STATUS_DOING);
// orderEntity.setStatus(ConstantStatus.ORDER_STATUS_DOING);
orderEntity.setUpdateTime(new Date());
orderService.updateOrder(orderEntity);
@ -330,7 +340,7 @@ public class IoTransInoutService {
orderFilterRequest.setCustomerId(orderEntity.getCustomerId());
orderFilterRequest.setStatus(ConstantStatus.ORDER_STATUS_SUCCESS);
List<OrderEntity> orderEntities = orderService.findAllOrders(orderFilterRequest);
if (orderEntities.size() > 1) {
if (orderEntities.size() > 0) {
orderEntity.setRemark("单据重复上传");
orderEntity.setStatus(ConstantStatus.ORDER_STATUS_FAIL);
orderEntity.setUpdateTime(new Date());
@ -341,6 +351,10 @@ public class IoTransInoutService {
BussinessTypeEntity bussinessTypeEntity = bussinessTypeService.findBTByAction(orderEntity.getAction());
if (bussinessTypeEntity == null) {
orderEntity.setRemark("单据类型不存在");
orderEntity.setStatus(ConstantStatus.ORDER_STATUS_FAIL);
orderEntity.setUpdateTime(new Date());
orderService.updateOrder(orderEntity);
return;
}
if (orderEntity.getFromCorp() == null) {
@ -764,8 +778,11 @@ public class IoTransInoutService {
return null;
}
@Resource
InoutUtils inoutUtils;
public void genOrderDetail(List<WarehouseEntity> warehouseEntityList) {
new InoutUtils(udiUrl).generateConstrastDetail(udiInfoService, udiRelevanceService, myErpOrderService, warehouseEntityList, udiDlHttpClient);
inoutUtils.generateConstrastDetail(udiInfoService, udiRelevanceService, myErpOrderService, warehouseEntityList, udiDlHttpClient);
}
@ -811,6 +828,11 @@ public class IoTransInoutService {
stockOrderDetailEntity.setProductName(erpOrderEntity.getGoodsname());
stockOrderDetailEntity.setYlqxzcrbarmc(udiRelevanceEntity.getYlqxzcrbarmc());
stockOrderDetailEntity.setManufactory(udiRelevanceEntity.getManufactory());
stockOrderDetailEntity.setPrice(erpOrderEntity.getPrice());
stockOrderDetailEntity.setFirstSalesInvNo(erpOrderEntity.getFirstSalesInvNo());
stockOrderDetailEntity.setSecSalesInvNo(erpOrderEntity.getSecSalesInvNo());
stockOrderDetailEntity.setInvoiceDate(erpOrderEntity.getInvoiceDate());
stockOrderDetailEntity.setSecSalesListNo(erpOrderEntity.getSecSalesListNo());
stockOrderDetailEntity.setZczbhhzbapzbh(erpOrderEntity.getAuthCode());
if (erpOrderEntity.getGoodsid() == null)
stockOrderDetailEntity.setProductId(erpOrderEntity.getNameCode());

@ -13,4 +13,8 @@ public class Constant {
public static final String CAPTCHAS = "captchas:";
public static final String SERIAL_CACHE_PREFIX = "serial_";
public static final String SERIAL_CACHE_PREFIX_ST = "serialst_";
}

@ -0,0 +1,148 @@
package com.glxp.sale.admin.util;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Calendar;
import java.util.Random;
@Service
public class GennerOrderUtils {
@Resource
RedisUtil redisUtil;
/**
*
*/
private static String getFormNoPrefix(OrderNoTypeBean orderNoTypeEnum) {
//格式化时间
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(orderNoTypeEnum.getDatePattern());
StringBuffer sb = new StringBuffer();
sb.append(orderNoTypeEnum.getPrefix());
sb.append(formatter.format(LocalDateTime.now()));
return sb.toString();
}
/**
* Key
*
* @param serialPrefix
* @return Key
*/
private static String getStCacheKey(String serialPrefix) {
return Constant.SERIAL_CACHE_PREFIX_ST.concat(serialPrefix);
}
private static String getScCacheKey(String serialPrefix) {
return Constant.SERIAL_CACHE_PREFIX.concat(serialPrefix);
}
/**
*
*
* @param serialPrefix
* @param incrementalSerial
* @author mengqiang
* @date 2019/1/1
*/
private static String completionSerial(String serialPrefix, Long incrementalSerial,
OrderNoTypeBean orderNoTypeEnum) {
StringBuffer sb = new StringBuffer(serialPrefix);
//需要补0的长度=流水号长度 -当日自增计数长度
int length = orderNoTypeEnum.getSerialLength() - String.valueOf(incrementalSerial).length();
//补零
for (int i = 0; i < length; i++) {
sb.append("0");
}
//redis当日自增数
sb.append(incrementalSerial);
return sb.toString();
}
/**
*
*
* @param serialWithPrefix
* @param orderNoTypeEnum
* @author mengqiang
* @date 2019/1/1
*/
private static String completionRandom(String serialWithPrefix, OrderNoTypeBean orderNoTypeEnum) {
StringBuilder sb = new StringBuilder(serialWithPrefix);
//随机数长度
int length = orderNoTypeEnum.getRandomLength();
if (length > 0) {
Random random = new Random();
for (int i = 0; i < length; i++) {
//十以内随机数补全
sb.append(random.nextInt(10));
}
}
return sb.toString();
}
/**
* @param orderNoTypeEnum:
* @Description redis( + )
* @author wangliangzhi
* @Date: 2021/12/21
* @time: 14:15
* @return: java.lang.String
**/
public String createScOrderNo(OrderNoTypeBean orderNoTypeEnum) {
//获得单号前缀
//格式 固定前缀 +时间前缀 示例
String formNoPrefix = getFormNoPrefix(orderNoTypeEnum);
//获得缓存key
String cacheKey = getScCacheKey(formNoPrefix);
//获得当日自增数
Long incrementalSerial = redisUtil.incr(cacheKey, 1);
// 设置key过期时间, 保证每天的流水号从1开始
if (incrementalSerial == 1) {
//设置失效时间 凌晨过期
redisUtil.expire(cacheKey, getSecondsNextEarlyMorning());
}
//组合单号并补全流水号
String serialWithPrefix = completionSerial(formNoPrefix, incrementalSerial, orderNoTypeEnum);
//补全随机数
return completionRandom(serialWithPrefix, orderNoTypeEnum);
}
public String createStOrderNo(OrderNoTypeBean orderNoTypeEnum) {
//获得单号前缀
//格式 固定前缀 +时间前缀 示例
String formNoPrefix = getFormNoPrefix(orderNoTypeEnum);
//获得缓存key
String cacheKey = getStCacheKey(formNoPrefix);
//获得当日自增数
Long incrementalSerial = redisUtil.incr(cacheKey, 1);
// 设置key过期时间, 保证每天的流水号从1开始
if (incrementalSerial == 1) {
//设置失效时间 凌晨过期
redisUtil.expire(cacheKey, getSecondsNextEarlyMorning());
}
//组合单号并补全流水号
String serialWithPrefix = completionSerial(formNoPrefix, incrementalSerial, orderNoTypeEnum);
//补全随机数
return completionRandom(serialWithPrefix, orderNoTypeEnum);
}
private Long getSecondsNextEarlyMorning() {
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DAY_OF_YEAR, 1);
// 改成这样就好了
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.MILLISECOND, 0);
return (cal.getTimeInMillis() - System.currentTimeMillis()) / 1000;
}
}

@ -0,0 +1,11 @@
package com.glxp.sale.admin.util;
public class MyStrUtil {
public static String trim(String data) {
if (data == null)
return "";
return data;
}
}

@ -0,0 +1,45 @@
package com.glxp.sale.admin.util;
import lombok.Data;
@Data
public class OrderNoTypeBean {
private String prefix;
/**
*
* yyyyMMdd
*/
private String datePattern;
/**
* --
*/
private Integer serialLength;
/**
* --使
*/
private Integer randomLength;
/**
*
*/
private Integer totalLength;
public OrderNoTypeBean(String prefix, String datePattern, Integer serialLength, Integer randomLength, Integer totalLength) {
this.prefix = prefix;
this.datePattern = datePattern;
this.serialLength = serialLength;
this.randomLength = randomLength;
this.totalLength = totalLength;
}
public OrderNoTypeBean(String prefix, String datePattern) {
this.prefix = prefix;
this.datePattern = datePattern;
this.serialLength = 4;
this.randomLength = 0;
this.totalLength = 5;
}
}

@ -28,9 +28,9 @@ logging.level.com.glxp.api.admin.dao.inout=debug
logging.level.com.glxp.api.admin.dao.inventory=debug
logging.level.com.glxp.api.admin.dao.thrsys=debug
# \u8F93\u51FA\u65E5\u5FD7\u5230\u9879\u76EE\u6839\u76EE\u5F55\u4E0B\u7684springboot.log\u6587\u4EF6\u4E2D // \u914D\u7F6E logback-spring.xml\u65F6 \u6B64\u65E5\u5FD7\u8F93\u51FA\u65B9\u5F0F\u4F1A\u88AB\u8986\u76D6\u3002
logging.file=D:/1s/udiwms/udiwms.log
logging.file=D:/glxpdata/udiwms/udiwms.log
#file_path=/home/glxpdata/udiwms
file_path=D:/1s/udiwms
file_path=D:/glxpdata/udiwms
#UDI\u6570\u636E\u4E0B\u8F7D
UDI_KEY=6b137c66-6286-46c6-8efa-c2f5dd9237df
UDI_SERVER_URL=https://www.udims.com/UDI_DL_Server_test

@ -75,8 +75,8 @@
parameterType="com.glxp.sale.admin.entity.basic.BasicUnitMaintainEntity">
REPLACE
INTO basic_corp
(thirdId,erpId,name,spell,
addr,status,type,creditNo,contact,mobile,thirdId1,thirdId2,thirdId3,thirdId4,
(thirdId,erpId,`name`,spell,
addr,status,`type`,creditNo,contact,mobile,thirdId1,thirdId2,thirdId3,thirdId4,
thirdName,thirdName1,thirdName2,thirdName3,thirdName4,updateTime,corpType,outType)
values
(
@ -111,8 +111,8 @@
insert
ignore
INTO basic_corp
(thirdId,erpId,name,spell,
addr,status,type,creditNo,contact,mobile,thirdId1,thirdId2,thirdId3,thirdId4,
(thirdId,erpId,`name`,spell,
addr,status,`type`,creditNo,contact,mobile,thirdId1,thirdId2,thirdId3,thirdId4,
thirdName,thirdName1,thirdName2,thirdName3,thirdName4,updateTime,corpType,outType)
values
(
@ -136,14 +136,15 @@
#{thirdName3},
#{thirdName4},
#{updateTime},
#{corpType},#{outType}
#{corpType},
#{outType}
)
</insert>
<insert id="insert" parameterType="com.glxp.sale.admin.entity.basic.BasicUnitMaintainEntity">
insert INTO basic_corp(thirdId, erpId, name, spell, addr,
status, type, creditNo, contact, mobile, thirdId1, thirdId2, thirdId3, thirdId4,
insert INTO basic_corp(thirdId, erpId, `name`, spell, addr,
status, `type`, creditNo, contact, mobile, thirdId1, thirdId2, thirdId3, thirdId4,
thirdName, thirdName1, thirdName2, thirdName3, thirdName4, updateTime, corpType, outType)
values (#{thirdId},
#{erpId},
@ -156,7 +157,8 @@
#{contact},
#{mobile},
#{thirdId1}, #{thirdId2}, #{thirdId3}, #{thirdId4},
#{thirdName}, #{thirdName1}, #{thirdName2}, #{thirdName3}, #{thirdName4}, #{updateTime}, #{corpType},#{outType})
#{thirdName}, #{thirdName1}, #{thirdName2}, #{thirdName3}, #{thirdName4}, #{updateTime}, #{corpType},
#{outType})
</insert>
@ -165,11 +167,11 @@
<trim prefix="set" suffixOverrides=",">
<if test="thirdId != null">thirdId=#{thirdId},</if>
<if test="erpId != null">erpId=#{erpId},</if>
<if test="name != null">name=#{name},</if>
<if test="name != null">`name`=#{name},</if>
<if test="spell != null">spell=#{spell},</if>
<if test="addr != null">addr=#{addr},</if>
<if test="status != null">status=#{status},</if>
<if test="type != null">type=#{type},</if>
<if test="type != null">`type`=#{type},</if>
<if test="creditNo != null">creditNo=#{creditNo},</if>
<if test="contact != null">contact=#{contact},</if>
<if test="mobile != null">mobile=#{mobile},</if>
@ -230,8 +232,8 @@
<insert id="importBasicUnitMaintain" keyProperty="id">
REPLACE
INTO basic_corp
( thirdId, erpId, name, spell,
addr, status, type, creditNo, contact, mobile, thirdId1, thirdId2, thirdId3, thirdId4,
( thirdId, erpId, `name`, spell,
addr, status, `type`, creditNo, contact, mobile, thirdId1, thirdId2, thirdId3, thirdId4,
thirdName, thirdName1, thirdName2, thirdName3, thirdName4, updateTime, corpType,outType)
values (
#{thirdId},
@ -254,7 +256,8 @@
#{thirdName3},
#{thirdName4},
#{updateTime},
#{corpType},#{outType}
#{corpType},
#{outType}
)
</insert>
</mapper>

@ -55,6 +55,7 @@
basic_bussiness_type.name ,
basic_bussiness_type.action,basic_bussiness_type.checkEnable,basic_bustype_local.advanceType,basic_bustype_local.changeEnable,
basic_bustype_local.spUse,basic_bussiness_type.storageCode,basic_bussiness_type.corpType,basic_bussiness_type.mainAction
,basic_bussiness_type.prefix,basic_bustype_local.prefix localPrefix
FROM basic_bustype_local
inner join basic_bussiness_type
on basic_bustype_local.action = basic_bussiness_type.localAction
@ -84,7 +85,7 @@
basic_bussiness_type.action,basic_bussiness_type.checkEnable,basic_bustype_local.advanceType,basic_bustype_local.changeEnable,
basic_bustype_local.spUse,basic_bussiness_type.storageCode,basic_bussiness_type.corpType,basic_bussiness_type.mainAction,
basic_bussiness_type.defaultUnit,basic_bussiness_type.genUnit,basic_bustype_origin.action
thirdAction,basic_bustype_origin.thirdSys
thirdAction,basic_bustype_origin.thirdSys,basic_bussiness_type.prefix,basic_bustype_local.prefix localPrefix
FROM basic_bustype_local
inner join basic_bussiness_type on basic_bustype_local.action = basic_bussiness_type.localAction
INNER JOIN inv_warehouse_bussiness_type on basic_bussiness_type.action = inv_warehouse_bussiness_type.action
@ -122,6 +123,7 @@
basic_bussiness_type.name ,
basic_bussiness_type.action,basic_bussiness_type.checkEnable,basic_bustype_local.advanceType,basic_bustype_local.changeEnable,
basic_bustype_local.spUse,basic_bussiness_type.storageCode,basic_bussiness_type.corpType,basic_bussiness_type.mainAction
,basic_bussiness_type.prefix,basic_bustype_local.prefix localPrefix
FROM basic_bustype_local
LEFT JOIN basic_bussiness_type on basic_bussiness_type.localAction = basic_bustype_local.action
<where>
@ -141,10 +143,10 @@
<insert id="insertBussinessType" keyProperty="id"
parameterType="com.glxp.sale.admin.entity.basic.BussinessLocalTypeEntity">
replace INTO basic_bustype_local
(action, name, remark, originAction, advanceType, changeEnable, spUse,updateTime)
(action, name, remark, originAction, advanceType, changeEnable, spUse,updateTime,prefix)
values (#{action},
#{name},
#{remark}, #{originAction}, #{advanceType}, #{changeEnable}, #{spUse},#{updateTime})
#{remark}, #{originAction}, #{advanceType}, #{changeEnable}, #{spUse},#{updateTime},#{prefix})
</insert>
<update id="updateBusLocalType" parameterType="com.glxp.sale.admin.entity.basic.BussinessLocalTypeEntity">
@ -158,7 +160,7 @@
<if test="changeEnable != null">changeEnable = #{changeEnable},</if>
<if test="spUse != null">spUse = #{spUse},</if>
<if test="updateTime != null">updateTime = #{updateTime},</if>
<if test="prefix != null">prefix = #{prefix},</if>
</trim>
WHERE id = #{id}
</update>

@ -73,12 +73,17 @@
<insert id="insertBusOriginType" keyProperty="id"
parameterType="com.glxp.sale.admin.entity.basic.BussinessOriginTypeEntity">
replace INTO basic_bustype_origin
replace
INTO basic_bustype_origin
(`action`, `name`, enable, remark, thirdSys, thirdSysName)
values (#{action},
values (
#{action},
#{name},
#{enable},
#{remark}, #{thirdSys}, #{thirdSysName})
#{remark},
#{thirdSys},
#{thirdSysName}
)
</insert>

@ -17,7 +17,8 @@
basic_bustype_local.changeEnable,basic_bussiness_type.genUnit,basic_bussiness_type.innerOrder,
basic_bustype_local.spUse,corpType,basic_bussiness_type.storageCode,basic_bussiness_type.checkBalacne,
basic_bussiness_type.secCheckBalacne, defaultUnit,basic_bustype_origin.action
thirdAction,basic_bustype_origin.thirdSys,basic_bussiness_type.useDyCount,basic_bussiness_type.expireTip
thirdAction,basic_bustype_origin.thirdSys,basic_bussiness_type.useDyCount,basic_bussiness_type.expireTip,basic_bussiness_type.prefix,basic_bustype_local.prefix
localPrefix
FROM basic_bussiness_type LEFT JOIN basic_bustype_local
on basic_bussiness_type.localAction = basic_bustype_local.action
left join basic_bustype_origin on basic_bustype_local.originAction = basic_bustype_origin.action
@ -80,7 +81,9 @@
select basic_bussiness_type.*,
basic_bustype_local.name localName,basic_bussiness_type.checkEnable, basic_bustype_local.advanceType,
basic_bustype_local.changeEnable,basic_bussiness_type.genUnit,basic_bussiness_type.innerOrder,defaultUnit,
basic_bustype_local.spUse,basic_bussiness_type.storageCode,basic_bussiness_type.expireTip from
basic_bustype_local.spUse,basic_bussiness_type.storageCode,basic_bussiness_type.expireTip,
basic_bustype_local.prefix localPrefix
localPrefix from
basic_bussiness_type LEFT JOIN
basic_third_sys on basic_bussiness_type.thirdSysFk =
basic_third_sys.thirdId LEFT JOIN basic_bustype_local on basic_bussiness_type.localAction =
@ -128,7 +131,8 @@
basic_bustype_local.changeEnable,basic_bussiness_type.genUnit,basic_bussiness_type.innerOrder,
basic_bustype_local.spUse,corpType,basic_bussiness_type.storageCode,basic_bussiness_type.checkBalacne,defaultUnit,
basic_bussiness_type.secCheckBalacne,basic_bustype_origin.action
thirdAction,basic_bustype_origin.thirdSys,useDyCount,basic_bussiness_type.expireTip
thirdAction,basic_bustype_origin.thirdSys,useDyCount,basic_bussiness_type.expireTip,basic_bussiness_type.prefix,basic_bustype_local.prefix
localPrefix
FROM basic_bussiness_type LEFT JOIN basic_bustype_local
on basic_bussiness_type.localAction = basic_bustype_local.action
left join basic_bustype_origin on basic_bustype_local.originAction = basic_bustype_origin.action
@ -175,7 +179,7 @@
checkUdims,checkPdaEd,checkPdaUn,checkPc,checkWebNew,checkChange
,secCheckUdims,secCheckPdaEd,secCheckPdaUn,secCheckPc,secCheckWebNew,
secCheckChange,corpType,basic_bussiness_type.storageCode,checkBalacne,
secCheckBalacne,supplementOrderType,defaultUnit,useDyCount,expireTip,updateTime)
secCheckBalacne,supplementOrderType,defaultUnit,useDyCount,expireTip,updateTime,prefix)
values
(
#{action},
@ -208,7 +212,8 @@
#{supplementOrderType},
#{defaultUnit},
#{useDyCount},
#{expireTip},#{updateTime}
#{expireTip},
#{updateTime},#{prefix}
)
</insert>
@ -222,7 +227,7 @@
checkEnable,genUnit,innerOrder,secCheckEnable,
checkUdims,checkPdaEd,checkPdaUn,checkPc,checkWebNew,checkChange
,secCheckUdims,secCheckPdaEd,secCheckPdaUn,secCheckPc,secCheckWebNew,
secCheckChange,corpType,storageCode,checkBalacne,secCheckBalacne,supplementOrderType,defaultUnit,useDyCount,expireTip,updateTime)
secCheckChange,corpType,storageCode,checkBalacne,secCheckBalacne,supplementOrderType,defaultUnit,useDyCount,expireTip,updateTime,prefix)
values
(
#{index},
@ -256,7 +261,8 @@
#{supplementOrderType},
#{defaultUnit},
#{useDyCount},
#{expireTip},#{updateTime}
#{expireTip},
#{updateTime},#{prefix}
)
</insert>
@ -296,6 +302,7 @@
<if test="useDyCount != null">useDyCount=#{useDyCount},</if>
<if test="expireTip != null">expireTip=#{expireTip},</if>
<if test="updateTime != null">updateTime=#{updateTime},</if>
<if test="prefix != null">prefix=#{prefix},</if>
thirdSysFk=#{thirdSysFk},
</trim>
WHERE id = #{id}

@ -284,8 +284,7 @@
</where>
ORDER BY updateTime DESC
</select>
<!-- GROUP BY
uuid,basic_udirel.thirdId,basic_udirel.thirdId1,basic_udirel.thirdId2,basic_udirel.thirdId3,basic_udirel.thirdId4-->
<select id="selectByUuid" parameterType="java.lang.String"
resultType="com.glxp.sale.admin.entity.basic.UdiRelevanceEntity">
select * FROM basic_udirel
@ -326,7 +325,6 @@
AND mainId = #{mainId}
</if>
</where>
limit 1
</select>

@ -164,7 +164,7 @@
<if test="relId != null">relId=#{relId},</if>
<if test="fromCorp != null">fromCorp=#{fromCorp},</if>
<if test="fromCorpId != null">fromCorpId=#{fromCorpId},</if>
<if test="count != null">count=#{count},</if>
<if test="count != null">`count`=#{count},</if>
<if test="status != null">status=#{status},</if>
<if test="supId != null">supId=#{supId},</if>
<if test="invStorageCode != null">invStorageCode=#{invStorageCode},</if>

@ -481,9 +481,6 @@
<if test="corpOrderId != '' and corpOrderId !=null">
and corpOrderId =#{corpOrderId}
</if>
<if test="fromCorpId != '' and fromCorpId!=null">
and fromCorpId =#{fromCorpId}
</if>
<if test="action != '' and action!=null">
and `action` =#{action}
</if>

@ -117,7 +117,7 @@
batchNoId,goodsname,companyname,
batchNo,erpCount,credate,nameCode,productCompany,
coName,authCode,packSpec,packRatio,bhzxxsbzsl,
zxxsbzbhsydysl,orderIdFk,count,reCount,productDate,expireDate,bindStatus,bindRlFk,uuidFk,supId,bindSupStatus
zxxsbzbhsydysl,orderIdFk,`count`,reCount,productDate,expireDate,bindStatus,bindRlFk,uuidFk,supId,bindSupStatus
,ylqxzcrbarmc,secSalesListNo,firstSalesInvNo,secSalesInvNo,invoiceDate,price)
values(
#{id},

@ -62,7 +62,7 @@
replace
INTO stock_order_detail(id,
orderIdFk,productId,productName,spec,batchNo,productDate,
expireDate,count,reCount,sweepCount,ylqxzcrbarmc,zczbhhzbapzbh,price,relId,manufactory)
expireDate,count,reCount,sweepCount,ylqxzcrbarmc,zczbhhzbapzbh,price,relId,manufactory,firstSalesInvNo,secSalesInvNo,secSalesListNo,invoiceDate)
values(
#{id},
#{orderIdFk},
@ -76,14 +76,14 @@
#{reCount},
#{sweepCount},
#{ylqxzcrbarmc},
#{zczbhhzbapzbh},#{price},#{relId},#{manufactory}
#{zczbhhzbapzbh},#{price},#{relId},#{manufactory},#{firstSalesInvNo},#{secSalesInvNo},#{secSalesListNo},#{invoiceDate}
)
</insert>
<insert id="insertStockOrderDetails" keyProperty="id" parameterType="com.glxp.sale.admin.entity.inout.StockOrderDetailEntity">
replace INTO stock_order_detail(id,
orderIdFk,productId,productName,spec,batchNo,productDate,
expireDate,count,reCount,sweepCount,ylqxzcrbarmc,zczbhhzbapzbh,price,relId,manufactory)
expireDate,count,reCount,sweepCount,ylqxzcrbarmc,zczbhhzbapzbh,price,relId,manufactory,firstSalesInvNo,secSalesInvNo,secSalesListNo,invoiceDate)
values
<foreach collection="stockOrderDetailEntities" item="item" index="index"
separator=",">
@ -100,7 +100,7 @@
#{item.reCount},
#{item.sweepCount},
#{item.ylqxzcrbarmc},
#{item.zczbhhzbapzbh},#{item.price},#{item.relId},#{item.manufactory}
#{item.zczbhhzbapzbh},#{item.price},#{item.relId},#{item.manufactory},#{item.firstSalesInvNo},#{item.secSalesInvNo},#{item.secSalesListNo},#{item.invoiceDate}
)
</foreach>

@ -0,0 +1,42 @@
<?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.sale.admin.dao.inout.UdimsOrderDetailDao">
<delete id="deleteById" parameterType="Map">
DELETE
FROM io_order_ms_detail
WHERE orderIdFk = #{orderId}
</delete>
<select id="filterOrderDetails" parameterType="Map"
resultType="com.glxp.sale.admin.entity.inout.UdimsOrderDetailBean">
SELECT *
FROM io_order_ms_detail
WHERE `orderIdFk` = #{orderId}
</select>
<insert id="insertOrderDetail" keyProperty="id"
parameterType="com.glxp.sale.admin.entity.inout.UdimsOrderDetailBean">
replace INTO io_order_ms_detail(
uuidFk,price,firstSalesInvNo,secSalesInvNo,secSalesListNo,invoiceDate,orderIdFk,batchNo
)
values
<foreach collection="details" item="item" index="index"
separator=",">
(
#{item.uuidFk},
#{item.price},
#{item.firstSalesInvNo},
#{item.secSalesInvNo},
#{item.secSalesListNo},
#{item.invoiceDate},
#{item.orderIdFk},#{item.batchNo}
)
</foreach>
</insert>
</mapper>

@ -17,10 +17,10 @@
AND mainAction = #{mainAction}
</if>
<if test="action != '' and action != null">
AND action = #{action}
AND `action` = #{action}
</if>
<if test="count != '' and count != null">
AND count = #{count}
AND `count` = #{count}
</if>
<if test="purchaseType != null">
@ -104,7 +104,7 @@
<insert id="insertInvProductDetail" keyProperty="id"
parameterType="com.glxp.sale.admin.entity.inventory.InvProductDetailEntity">
insert INTO inv_product_detail
(code, productIdFk, orderIdFk, customerId, mainAction, action, count, updateTime,
(code, productIdFk, orderIdFk, customerId, mainAction, `action`, `count`, updateTime,
purchaseType, batchNo, productionDate, expireDate, unitFk, stockIdFk, supId, originCode, invStorageCode,
invWarehouseCode)
values (#{code},
@ -118,7 +118,7 @@
<insert id="insertInvProductDetails" keyProperty="id"
parameterType="com.glxp.sale.admin.entity.inventory.InvProductDetailEntity">
insert INTO inv_product_detail
(code, productIdFk, orderIdFk, customerId, mainAction, action, count, updateTime,
(code, productIdFk, orderIdFk, customerId, mainAction, `action`, `count`, updateTime,
purchaseType, batchNo, productionDate, expireDate, unitFk, stockIdFk, supId,originCode, invStorageCode,
invWarehouseCode)
values
@ -169,8 +169,8 @@
<if test="productIdFk != null">productIdFk=#{productIdFk},</if>
<if test="customerId != null">customerId=#{customerId},</if>
<if test="mainAction != null">mainAction=#{mainAction},</if>
<if test="action != null">action=#{action},</if>
<if test="count != null">count=#{count},</if>
<if test="action != null">`action`=#{action},</if>
<if test="count != null">`count`=#{count},</if>
<if test="unitFk != null">unitFk=#{unitFk},</if>
<if test="purchaseType != null">purchaseType=#{purchaseType},</if>
<if test="batchNo != null">batchNo=#{batchNo},</if>
@ -198,7 +198,7 @@
AND mainAction = #{mainAction}
</if>
<if test="action != '' and action != null">
AND action = #{action}
AND `action` = #{action}
</if>
<if test="purchaseType != null">
AND purchaseType = #{purchaseType}
@ -244,7 +244,7 @@
AND mainAction = #{mainAction}
</if>
<if test="action != '' and action != null">
AND action = #{action}
AND `action` = #{action}
</if>
<if test="purchaseType != null">
AND purchaseType = #{purchaseType}

@ -172,7 +172,7 @@
replace
INTO inv_warehouse
(pid, code, `name`, advanceType, isDefault,
status, updateTime, remark,`level`,pcode,spUse)
status, updateTime, remark,`level`,pcode,spUse, thirdId, thirdId1, thirdId2, thirdId3, thirdId4)
values (
#{pid},
#{code},
@ -184,7 +184,11 @@
#{remark},
#{level},
#{pcode},
#{spUse}
#{spUse}, #{thirdId},
#{thirdId1},
#{thirdId2},
#{thirdId3},
#{thirdId4}
)
</insert>

@ -144,7 +144,7 @@
AND pcode = #{pcode}
</if>
<if test="level != null">
AND level = #{level}
AND `level` = #{level}
</if>
</where>
</select>

Loading…
Cancel
Save